BSD
------------------------------------------------------------------------------------------------------
이번에 유닉스를 처음으로 접하게 되었는데요
유닉스가 나온 이후로 SystemV와 BSD로 나뉘어져서 발전해가서...
이 두개가 유닉스의 양대산맥이니 뭐니 그러는데요.
이두가지는 다른건가요??
두가지의 큰 차이점이나 특징같은거 있으면 몇가지만 알려주세요~~
이런게 잘 나와있는 사이트나 책을 추천해주셔두 무지무지 감사하겠습니다~
그럼 오늘도 좋은 하루되세요~ ^^
------------------------------------------------------------------------------------------------------
는 정통 유닉스 운영체제 입니다.
FreeBSD는 NetBSD, OpenBSD, BSDI와 함께 버클리 CSRG(Computer Systems Research Group)의 마지막 작품인 4.4BSD-Lite2에 기반한 정통 유닉스 운영체제로써, BSD 시스템의 전통을 계승합니다. 현재 FreeBSD는 x86(i386 이상)과 알파 기종에서 운용 가능하며, 더욱 다양한 기종을 지원하기 위해 노력하고 있습니다.
FreeBSD는 자발적 참여로 구성된 팀에 의해 오픈 소스 개발 모델을 기반으로 전 세계의 수많은 프로그래머들에 의해 개발되며, FTP, WWW, CVS 시스템을 통해 모든 소스와 관련 문서가 공개됩니다.
오픈 소스 개발 모델을 따르는 운영체제의 두 양대 산맥인 FreeBSD와 리눅스는 그 개발 모델과 인터페이스가 유사하지만, FreeBSD 라이센스는 리눅스의 GPL에 비해 자유롭고, 같은 사양의 시스템에서 20-30% 향상된 성능을 보이며, 동기화 IO를 기본으로 하기 때문에 데이터베이스와 같은 트랙젝션 기반 응용에서도 안정성이 보장됩니다.
FreeBSD는 강력하며 안정적입니다.
FreeBSD 프로젝트는 실제 상황의 로드에서 최대와 성능과 신뢰도를 제공하기 위해 시스템을 정교하게 튜닝하는데 수천시간을 들였으며, 그 결과로 다른 운영체제에서 보기 힘든 진보된 네트워킹과, 향상된 퍼포먼스를 제공합니다.
수백 수천의 동시 다발적 접속으로 야기되는 폭발적 네트워크 부하를 다년간 유연히 지탱해온 상당수의 FreeBSD 서버에 대한 근거자료 또한 FreeBSD의 신뢰성과 안정성을 돋보이게 합니다.
하루 800GB가 넘는 트래픽을 처리하는 Walnut Creek의 ftp.cdrom.com을 비롯해, Yahoo! 그리고 극단적으로 마이크로소프트의 HotMail 서비스 또한 FreeBSD로 운영됩니다.
수천의 어플리케이션이 제공됩니다.
포트 콜랙션이란 명칭으로 소스 코드와 함께 제공되는 수천의 어플리케이션들은 FreeBSD의 또 다른 자랑거리 입니다.
잘 구분되어 정리된 어플리케이션 목록을 사용해 몇번의 키조작으로 원하는 어플리케이션을 손쉽게 찾아 설치할 수 있습니다. 많은 사람들은 FreeBSD의 포트 콜렉션이 소프트웨어를 손쉽게 얻고 사용할 수 있게 한다고 말합니다.
설치가 손쉽습니다.
FreeBSD는 좀더 강력한 설치 옵션을 제공하기 위해, 주위의 다른 OS 인스톨러에 비해 고려해야할 점이 많아 초심자에겐 어렵다는 말을 합니다. 하지만, FreeBSD를 설치해 본 사람들은 사용자 입장에서 설계된 손쉽고 강력한 인스톨러라 입을 모읍니다.
------------------------------------------------------------------------------------------------------
FreeBSD 소개
최준호 <cjh@kr.FreeBSD.org> 저.
2001년 4월
- FreeBSD란
- FreeBSD의 역사
- FreeBSD의 개발과 배포 방식
- 개발 도구로서의 CVS
- 개발자
- 의사소통 수단
- 배포 방식
- 문서화
- 패키지 시스템
- 최근의 개발 현황
- 현재의 안정 버전: 4-stable
- 현재의 개발 버전: 5-current
- 다른 BSD 운영체제
- 라이센스
- FreeBSD vs Linux
- 국내의 현황
FreeBSD를 직접 사용해 본 적은 없더라도 FreeBSD라는 또다른 공개 운영체제에 대해 관심을 갖거나, 적어도 들어본 적은 있으리라 생각한다. FreeBSD는 자신만의 독특한 영역을 갖고 있는 공개 유닉스 운영체제로, 리눅스와는 다른 또다른 재미를 느낄 수 있다. FreeBSD에 대한 전반적인 소개와 특징에 대해서 알아보자.
FreeBSD란
FreeBSD는 한마디로 말하면 4.4BSD-Lite2에 기반한 공개 BSD 유닉스 운영체제이다. 처음에는 x86 아키텍처에 최적화하는 것을 목적으로 시작하였지만, 이에 대한 성과를 바탕으로 현재 알파 시스템에 대해서도 동시 릴리즈가 되고 있고, IA64나 PowerPC 등와 같은 아키텍처에도 포팅이 진행중이다. FreeBSD의 큰 특징이라 한다면 다음과 같은 점을 들 수 있다.
- 유닉스 운영체제의 모든 특징 포함 (다중 프로세스, 다중 사용자)
- 안정적이고 고성능의 TCP/IP 스택
- 기본적인 IPv6 지원(버전 4부터, 버전 2와 3은 KAME 키트 사용)
- 다른 운영체제(리눅스, SCO, 솔라리스 등)의 바이너리 실행 가능
- 통합된 가상메모리/버퍼 설계와 관리
- 멀티프로세서 지원
- 기본적인 개발 환경 지원(C/C++, Perl)
- 자유로운 라이센스
FreeBSD는 위와 같은 장점을 바탕으로 주로 다음 분야에서 널리 쓰이고 있다.
- 웹, 프록시, FTP, 뉴스, 전자우편 등의 각종 인터넷 서버
- 방화벽, 라우터, NAT 게이트웨이
- 유닉스 프로그램 개발
- X 윈도우를 사용하는 데스크탑
- 학술용의 실험 플랫폼
FreeBSD의 역사
FreeBSD의 기반이 되는 4.4BSD 유닉스는 캘리포니아 버클리 대학교의 CSRG(Computer System Research Group)에서 최후의 작품으로 남겨놓은 BSD 유닉스이다. CSRG는 약 20여년간 미 국방성의 후원 하에 TCP/IP 구현을 포함하는 BSD 유닉스 운영체제를 연구해 왔으며, 그 성과를 BSD 배포본이라는 형태로 일반에게 공개해 왔다. 원래의 유닉스 소스에서 출발하였기 때문에 AT&T의 유닉스 라이센스에서 자유로울 수 없었던 BSD 유닉스는 90년 초반의 노벨(AT&T의 유닉스 라이센스를 갖고 있던 USL을 사들인)과의 버클리 대학간의 법정 소송 끝에 저작권에 문제가 되는 파일 몇가지를 제외하고는 완전한 공개 소프트웨어의 형태로 릴리즈할 수 있었다. 마지막 버전인 4.4BSD-Lite2는 1995년이 끝이었는데, FreeBSD는 그 이전 버전인 4.3BSD Net/2 부터 시작한 것이다.
4.3BSD Net/2는 버클리에서 AT&T의 유닉스 라이센스에서 자유롭고자 하는 시도에서 비롯된 것이었다. 기존의 BSD 유닉스 배포본은 유닉스 소스 라이센스를 얻어야만 구입이 가능하였으며, 그러한 부담을 덜어주고 표준의 TCP/IP 스택 구현을 제공하고자 하는 목적으로 유닉스 라이센스를 얻을 필요가 없는 버클리에서 새로 구현한 TCP/IP 코드만을 포함하는 것이 4.3BSD Net/1 릴리즈였다. 이 릴리즈는 이후 거의 모든 운영체제에서 TCP/IP 구현의 기반으로 사용되는데, 이의 성공을 바탕으로 Net/2는 거의 모든 유틸리티와 시스템을 BSD 라이센스로 구현하게 된다. 이는 라이센스상의 문제가 거의 없었지만 시스템 핵심 커널의 여섯 개 파일만은 저작권 문제로 빠지게 된다.
이를 80386 상에서 재구현하여 탄생한 것이 1992년 Bill Jolitz 교수의 386BSD였는데, 이는 80386 이상에서 실행할 수 있는 최초의 완전한 공개 BSD 유닉스였다. 불행히도 Jolitz 교수는 시스템을 만들어내기는 하였으나 이를 관리하는데는 소홀하였다. 새로운 운영체제에 대한 사람들의 관심은 그에게 운영체제의 수정 패치와 기능 추가에 대한 건의 사항이 밀려들게 하였는데, 느린 피드백 때문에 패치를 제출하고도 공식 배포본에 반영되는 것이 점점 늦어지자 이를 기다리지 못한 일련의 사람들이 386BSD를 기반으로 버그 수정 패치를 적용하고 새로운 기능을 추가해 가면서 새로운 운영체제의 두가지의 그룹을 형성하는데, 하나는 PC에 특화되고 성능을 중요시하는 FreeBSD 그룹과, 기존의 BSD 개발 방식을 이어받으며 멀티플랫폼의 공통 유닉스 시스템을 개발하려 하는 NetBSD 그룹이다. 이어 NetBSD의 개발자였던 Theo de Raadt가 개발 방식에 대한 의견차로 NetBSD 개발팀에서 독립하여 OpenBSD를 새로이 시작하게 된다.
1993년부터 시작한 FreeBSD의 우선적인 목표는 PC 아키텍처에서의 편리한 사용과 최대의 성능을 내는 것이었다. 프로젝트 초기에서부터 FreeBSD를 사용해 온 야후!나 Walnut Creek CDROM과 같은 든든한 후원자에 힘입어 FreeBSD는 지속적으로 사용자 기반을 넓혀 나가고, 새롭고 독자적인 기능을 많이 추가하여 오늘에 이르고 있다.
FreeBSD의 개발과 배포 방식
FreeBSD는 일반적인 오픈 소스 어플리케이션보다는 훨씬 대규모의 운영체제이므로, 보다 일관성 있고 합리적인 개발 방식에 대한 운영이 필요하다. 프로젝트 초기와 현재의 구성은 약간 다르지만 전체적으로는 동일한 구조를 갖고 있다.
BSD는 에릭 레이몬드의 유명한 글 "성당과 시장"에서 살펴볼 수 있는 것과 같은 성당 방식의 개발 구조를 채택하고 있었다. 하지만 이것은 버클리 대학교 내에서 개발될 때의 일이고(당시에는 인터넷의 보급 부족 등으로 시장 방식의 개발은 거의 불가능하였다) 현재의 모든 BSD기반 운영체제는 시장 방식의 개발 구조를 채택하고 있다. 이는 인터넷의 보급에 힘입어 대부분의 개발자와 사용자간의 직접적인 의사소통이 가능하였기 때문이며 이러한 구조는 운영체제와 같은 거대한 프로젝트가 무리 없이 이끌어 나갈 수 있는 기반을 제공한다.
성당과 시장: http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html
개발 도구로서의 CVS
FreeBSD의 소스 코드는 리눅스와 달리 커널와 관련 시스템 유틸리티, ls나 vi와 같은 일반 어플리케이션까지를 모두 포괄하여 전체 운영체제를 구성한다. 따라서 기본 소스 베이스가 상당히 커지게 되는데, 현재는 CVS를 사용하여 전체 소스를 관리하고, 개발 버전과 안정 버전과 같은 여러가지 가지를 관리하고 있다. CVS(Concurrent Versions System)은 유닉스 뿐 아니라 윈도우에서도 사용할 수 있는 소스 관리 체제인데, 보통 사용되어 오던 RCS나 SCCS등의 단점을 극복하여 네트워크 환경에서 대량의 모듈을 관리할 수 있는 구조로 되어 있다. FreeBSD의 소스 트리는 항상 바뀌고 있는데, 이는 CVS 트리를 직접 볼 수 있는 방법과, cvs-all과 같이 변동 사항에 대한 것을 보고해 주는 메일링 리스트를 통해 직접 접할 수 있다.
소스 관리 시스템을 사용하여 얻을 수 있는 잇점 중 하나는 가지(branch)의 관리가 가능하다는 것이다. FreeBSD는 나중에 자세히 설명하겠지만 릴리즈의 기준이 되는 안정 버전과 개발 버전의 두가지 큰 개발 가지를 갖고 있는데, 대부분의 신기능의 개발은 개발 버전에서 이루어지고 안정화된 기능은 나중에 안정 버전으로 역포팅되는 (이것을 FreeBSD용어로 MFC(Merged From -Current)라고 한다) 방식으로 진행되고 있다.
--------+----------------+------------------------> | | 개발 버전(-current) +----------> +---------> 3-stable 4-stable
즉 항상 개발 버전에서 안정 버전은 가지를 치는 형식으로 분리되어 안정 버전의 릴리즈를 하게 된다. 이는 CVS의 가지(branch)기능을 사용하는 것이다.
이러한 하나의 소스의 여러 가지를 관리해야 하는 부담을 CVS를 통하여 해결하고 있다. 또 하나의 특징은 네트워크를 통한 개발이 가능하다는 것인데, 소스 트리를 클라이언트/서버 방식으로 제공하기 때문에 해당 소스 트리를 관리하고 있는 서버에 로그인하지 않아도 원격으로 소스 트리를 읽어들이거나 고칠 수 있다는 것이다. 이는 전세계에 분포되어 있는 FreeBSD개발자들이 위치와 시간에 구애받지 않고 개발을 할 수 있게 해 준다.
개발자
FreeBSD의 소스 트리는 누구나 얻을 수 있지만 고치는 일은 소스 트리의 수정 권한을 갖는 사람들로 한정된다. 이는 무분별한 수정을 막기 위함인데, FreeBSD의 개발자들은 대략 세 부류로 구성된다.
-
코어 팀(core team)
코어 팀은 FreeBSD의 핵심 개발자들이라고 할 수 있다. 이들은 전체 운영체제의 방향을 결정하며, 중요한 기능이나 운영체제의 변화에 대해 최종적으로 결정을 내리며, 프로젝트의 원활한 진행을 돕는 역할을 하고 있다. 코어 팀 자체는 다음에 설명하게 되는 커미터들이며, 직접 소스 트리를 고치기도 하고 메일링 리스트에서 오가게 되는 여러가지 사항에 대해 직접 토론한다. 코어 팀은 새로운 커미터를 받아들일 때 최종적으로 승인하는 역할도 하고 있다. 코어 팀은 FreeBSD 프로젝트 초기에 결성된 이래로 계속 바뀌어 왔지만, 그 선출 방식은 아주 민주적인 절차에 따르는 것은 아니었다. 이 문제를 해결하기 위해 2000년에 오랜 기간의 토론 끝에 코어 팀을 커미터들이 직접 선출하게 되었다. 후보를 위한 토론과 투표 끝에 2000년 10월에 9명의 코어 팀이 선출되어 앞으로 2년간의 프로젝트 운영을 맡게 되었다. 코어 선출 기사: http://www.FreeBSD.org/news/press-rel-5.html
-
커미터(committer)
커미터는 FreeBSD의 소스 트리에 쓰기 권한을 갖는 사람들이다. 코어 팀은 물론 커미터이며, 그 외에 자신이 관심을 갖는 분야(커널, 메모리 관리, 장치 드라이버, 일반 유틸리티, 포트, 국제화 등)에 따라 소스의 해당 분야를 수정하고 새로운 기능을 추가하는 사람들이다. 커미터들은 일반적으로 FreeBSD 운영체제에 많은 공헌을 한 사람들을 대상으로 기존의 커미터들이 코어 팀에 추천하는 방식으로 커미터에 합류하게 된다. 이 경우 새 커미터를 데려온 기존의 커미터는 새로운 커미터가 FreeBSD의 소스 트리 관리와 커미터간의 분위기에 익숙할 수 있도록 도와주는 스승(mentor) 역할을 하게 된다. 커미터라고 하여 소스 트리의 아무 부분이나 마음대로 고칠 수 있는 것은 아니다. 소스 트리는 여러가지의 모듈로 나누어져 있고(대략적으로 디렉토리별로 구분되는) 해당 모듈은 그 모듈을 작성한 사람이나 가장 잘 아는 사람이 모듈 관리자 역할을 하고 있으므로, 해당 모듈을 수정하게 될 때에는 먼저 관련 개발자들과 변경 사항에 대해 토론하는 것이 좋다. 일단 변경 사항을 추가하고 나중에 고치는 것은 권장하는 것이 아니므로, 사전에 충분한 토의를 하는 것이 더 나은 코드를 위한 도움이 된다. 그 외에 커미터들은 크게는 소스(src), 문서(doc), 포트(ports) 커미터로 구분이 되는데, 자신의 분야 이외에 참가하고 싶으면 별도의 승인이 필요하지만 CVS 트리 에서는 모두 동등한 권한을 갖는다.
-
공헌자(contributor)
공헌자들은 FreeBSD에 관심을 갖고 버그 리포트나 새로운 기능의 제안하거나 패치를 제출하는 사람들을 통칭하는 말로 구체적으로 정할 수 있는 범위는 없다고 할 수 있다. FreeBSD는 버그와 신기능의 일관성 있는 관리를 위해 gnats 소프트웨어를 사용하여 버그 추적 시스템을 운영하는데, 시스템에서 send-pr(1) 명령을 사용하거나 웹을 통하여 알릴 수 있다. 커미터가 아니라도 버그 리포트의 형식으로 FreeBSD의 개발에 참여할 수 있는 방법이 제공되는 것인데, 유용한 버그 리포트를 많이 제출한 사람은 공헌자 명단(핸드북에 있는)에 오르게 되고, 더 활발한 활동을 보인다면다른 커미터들이 그를 커미터가 되게 할 것이다. 하지만 많은 공헌을 하고도 커미터가 되지 않는 사람도 있다.
의사소통 수단
FreeBSD의 개발자간의 의사소통은 주로 버그 데이터베이스와 메일링 리스트를 통해 이루어진다. 개발자들에게 보고하는 버그나 새로운 포트 등의 제안은 모두 버그 추적 시스템을 통해 이루어지며(gnats의 send-pr(1)명령나 FreeBSD 홈페이지의 웹 인터페이스를 통해 가능하다), 이외의 모든 사항에 대한 토론이 메일링 리스트를 통해 이루어진다. 이중 일반적인 질문을 다루는 freebsd-questions@ 메일링 리스트는 하루에만 메일이 200통 이상 오가는 오픈 소스 관련 메일링 리스트 중 가장 활발한 메일링 리스트 중 하나이다(리눅스 커널 메일링 리스트가 이정도 수준이다). 메일링 리스트가 크게 활성화되어 있는 관계로 뉴스그룹과 같은 다른 매체는 상대적으로 활동이 저조한 편이다.
메일링 리스트는 FreeBSD 프로젝트에 직접 운영하며, 그 사용 목적에 따라 수십가지로 나누어진다. 이중에는 커미터들만 참여할 수 있는 developers@ 나 코어 팀 전용의 core@, 미러 사이트 관리자들을 위한 hubs@ 등이 있지만, 그외의 메일링 리스트는 모두 일반 사용자들이 자유롭게 가입할 수 있다. 대표적이 메일링 리스트에는 다음과 같은 것들이 있다.
- freebsd-announce@freebsd.org 프로젝트의 공지 사항
- freebsd-questions@freebsd.org 일반적인 질문과 답변
- freebsd-hackers@freebsd.org 기술적인 토의
- freebsd-security@freebsd.org 보안 문제
- freebsd-stable@freebsd.org 안정 버전 사용자용
- freebsd-current@freebsd.org 개발 버전 사용자용
가입 방법에 대해서는 핸드북이나 홈페이지의 메일링 리스트 섹션을 참조하기 바란다.
배포 방식
FreeBSD는 주로 네트워크를 통한 배포 방식을 취한다. 사용자들은 자신의 네트워크 실정에 맞게 여러가지 방법을 사용할 수 있다. 물론 설치시에는 이와는 다른 방법을 제공하는 경우도 있지만, 주로 배포본과 소스의 입수를 중심으로 생각해 보면 다음과 같다.
-
FTP
FTP는 인터넷에서는 전통적인 파일 배포 시스템이다. FreeBSD는 세계 최고의 FTP 사이트인 ftp.freesoftware.com의 운영체제이기도 하지만, 이 사이트가 ftp.freebsd.org 로서 중앙 배포 사이트이기도 하다(이 사이트는 슬랙웨어 리눅스의 배포처이기도 하다). 일반적으로 FreeBSD는 이 사이트를 포함한 각 미러 사이트의 /pub/FreeBSD 디렉토리에서 구할 수 있다. 최근에는 FTP에서 설치 가능한 배포본 이외에 ISO 이미지를 배포하기 시작하였는데, 이는 네트워크 전송 속도가 빠른 사용자들이 늘어나고 있기 때문에 큰 파일도 무리 없이 받을 수 있다는 시대적 인식을 반영한 것다.
-
CDROM
네트워크를 통해 배포본을 입수하기 어려운 경우에는 CD-ROM을 구입하는 방법이 있다. 공식 CD-ROM은 FTP에도 릴리즈되지만, 현재 BSDi에서 판매하고 있다. 국내에서는 FreeBSD Mall Korea를 통해 구할 수 있다.
- Walnut Creek CDROM/BSDi: http://www.wccdrom.com
- FreeBSD Mall Korea: http://bsd.openbird.com
-
Anonymous CVS
개발 도구로 쓰이는 CVS를 읽기 전용으로 접근할 수 있도록 한 것이다. 속도는 느리지만 원하는 버전의 소스를 정확하게 얻을 수 있기도 하다. 다만 설치를 원한다면 Anonymous CVS를 사용할 수는 없고, 새 버전으로 업그레이드하거나 어떤 모듈의 특정 버전 소스를 얻고할 때 유용하다,
-
CVSup
CVSup은 기본적으로 rsync와 유사한 TCP/IP상의 파일 배포 시스템이다. 이는 큰 파일 트리를 클라이언트 측에서 서버와 동기화할 수 있는 기능을 제공하는데, CVSup은 CVS 트리를 위해서 특화된 기능을 갖고 있어 CVS 트리의 특정 태그가 붙은 버전을 제공할 수 있다. 가령 특정 릴리즈나 최신 개발 버전, 포트 트리를 얻는데 유용하며 기본적으로 가장 손쉽게 쓸 수 있는 소스 트리 다운로드 도구이다.
-
CTM
CTM은 그날그날의 소스 변경 사항을 메일로 보내주는 시스템이다. 사용자는 자신의 메일 설정을 바꾸어서 그날 변경된 사항을 자신의 소스 트리에 적용할 수 있다. CTM은 주로 상시 인터넷 접속이 불가능한 사람들을 위해서 만들어진 것이며, 최근에는 그리 널리 사용되지는 않는다.
문서화
좋은 오픈 소스 프로젝트에 빠질 수 없는 것이 좋은 문서화이다. FreeBSD는 자체적인 문서화 프로젝트 팀을 갖고 있으며, FreeBSD의 모든 사항을 다루는 여러가지 문서를 작성하여 FreeBSD를 시작하는 사람이나 기존의 사용자에게 여러가지 유용한 정보를 제공하고 있다. FreeBSD 문서화 프로젝트에서는 다음과 같은 문서를 제공하고 있다.
-
핸드북
FreeBSD 핸드북은 FreeBSD의 소개, 역사, 설치, 사용을 다루는 FreeBSD에 대한 하나의 거대한 책이다. 출력하는 것만으로 수백페이지에 달하며, 안정 버전을 기준으로 FreeBSD 운영 전반의 거의 모든 사항을 다루고 있다. FreeBSD에 대한 기본적인 것은 모두 핸드북에서 얻을 수 있다고 해도 과언이 아니다.
-
FAQ
FAQ는 FreeBSD 메일링 리스트나 뉴스그룹에서 자주 논의되는 사항을 정리하여 놓은 것이다. 핸드북에서 다룰 수 없는 주제나 일반적으로 사람들이 궁금해 하는 사항에 대해 주제별로 다루고 있다.
-
매뉴얼 페이지
매뉴얼 페이지도 문서화의 범위에 속한다. FreeBSD는 기본적인 시스템 장치, 명령어 등에 대한 상세한 매뉴얼 페이지를 제공하므로 어떤 시스템 명령어나 장치 드라이버에 대해 모르는 것이 있을 때에는 매뉴얼 페이지를 찾아보면 된다. 물론 GNU info 로 제공되는 것들은 info 명령을 사용해서 보아야 한다(주로 GNU 프로젝트의 도구들)
-
기사
그외 유용하고 큰 문서로, 포트를 작성하고자 하는 개발자용의 The Porter's Handbook, 문서화 프로젝트에 참여하고자 하는 사람용의 The FreeBSD Documentation Project Primer for New Contributors, PPP 사용자를 위한 The Pedantic PPP Primer 등이 있으며, 이외 짧은 기사로 Dialup firewalling with FreeBSD, Fonts and FreeBSD 등의 여러가지 기사를 문서화 프로젝트에서 얻을 수 있다. 이러한 문서는 리눅스에서는 주로 HOWTO 문서라고 하는데, FreeBSD에서는 HOWTO라고 부르는 경우는 거의 없다.
-
그외 문서
이외 4.4BSD의 문서 세트와 GNU info 문서 등이 있다. 이들은 원래 FreeBSD의 문서는 아니지만, 4.4BSD의 문서는 FreeBSD의 기반을 설명하고 있고, info문서는 FreeBSD에 포함된 많은 GNU 프로젝트의 어플리케이션을 설명하고 있으므로 도움이 많이 될 것이다.
대부분의 문서는 /usr/share/doc 디렉토리에서 직접 구할 수 있고, 문서화 프로젝트에서 관리하고 있다.
문서화 프로젝트의 모든 문서는 독자적인 포맷으로 관리하고 있는데, 핸드북 등의 문서의 경우 DocBook SGML포맷으로 쓰여지고 있으며, 매뉴얼 페이지 등은 전통적인 troff 언어로 작성되고 있다. DocBook SGML로 쓰여진 문서의 경우는 하나의 소스에서 일반 텍스트, HTML, PDF 등의 여러가지 포맷으로 만들 수 있다는 점이 가장 큰 장점이다.
문서화 프로젝트는 국제화되어 있다. 이는 현재 문서화 프로젝트의 기존 문서를 다른 언어로 번역하는 것을 시작으로 하고 있는데, 한국어 번역 팀도 구성되어 현재 핸드북 번역을 하고 있다.
패키지 시스템: ports/packages
FreeBSD를 하나의 배포본으로 본다면, 크게 두가지 구조로 나눌 수 있다. 바로 기본 배포본(distribution)과 패키지(packages)이다.
-
배포본(distribution)
FreeBSD에서 배포본이라 하면 FreeBSD 소스 트리를 컴파일하여 얻어진 커널와 사용자 바이너리, 문서, 기타 파일의 집합체를 의미한다. 배포본은 종류별로 여러가지로 나누어 놓았는데, 모두 하나의 소스 트리에서 컴파일되는 것이다. 시스템 부팅과 기본적인 사용을 위해서는 bin 배포본만으로 충분하지만 별도로 필요한 것이 있다면 설치하여 사용할 수 있다.
배포본으로 취급하지만 FreeBSD 소스에 속하지 않는 것은 바로 X 윈도우 시스템인 XFree86이다. FreeBSD는 아직 XFree86 4.0 버전으로 이행하지 않아서 기본적으로는 XFree86 3.3.6이 설치되도록 되어 있다. 4.0 버전을 사용하고 싶은 사람은 기존의 XFree86 시스템을 지우고 4.0 버전을 포트에서 새로 빌드하는 것으로 충분하다.
배포본만 설치하여도 시스템의 기본적인 사용에는 아무런 지장이 없다. 기본 시스템만으로도 전자우편, DNS 서버 등을 운영할 수 있지만, 기본 시스템에서 관리되지 않는 여러 프로그램의 경우(apache 웹서버, MySQL과 같은 데이터베이스, GNOME/KDE 그래픽 환경 등) 별도로 설치해야 한다.
-
패키지(packages)
패키지는 FreeBSD 프로젝트에서 직접 관리하지 않는 별도의 프로그램을 의미한다. 다양한 패키지 콜렉션이 FreeBSD의 큰 자랑거리인데, 현재 4500가지가 넘는 다양한 패키지를 제공하고 있다.
패키지는 모두 ports라고 하는 시스템에서 컴파일된 바이너리를 tgz(tar.gz) 형태로 묶어놓은 것이다. 이러한 패키지는 pkg_add 명령으로 설치되며, 필요한 의존성이 있는 경우 같이 설치하게 된다.
-
포트(ports)
포트는 패키지를 컴파일하기 위한 일종의 틀이다. 포트는 /usr/ports 아래에 카테고리별로 있는 하나의 디렉토리가 하나 이상의 어플리케이션을 의미한다. 포트는 프로그램을 자신의 입맛에 맞게 수정하며 빌드할 수 있도록 도와주는 역할을 할 수도 있으며, 시스템 최적화 등을 가능하게 한다.
포트는 해당 프로그램의 소스를 포함하지 않지만 소스가 있는 곳의 위치를 알고 있다. 이를 바탕으로 포트는 자신이 필요로 하는 소스 파일을 인터넷에서 직접 다운로드받아서 필요한 패치를 하고 컴파일하여 설치하게 되므로, 인터넷과 오픈 소스 소프트웨어의 성질을 잘 따른다고 할 수 있다. 포트는 BSD make의 Makefile로 작성되어 있으므로 설치는 일반적인 make를 사용하는 방법과 동일하다. 가령 hanterm을 설치하고 싶다면
# cd /usr/ports/korean/hanterm # make install clean
위 두줄만으로 인터넷에서 hanterm의 소스를 받아서 FreeBSD용으로 알맞게 패치하여 설치하는 일이 가능하다. 즉 프로그램을 포팅할 때 드는 노력을 최소화할 수 있도록 해 준다.
패키지는 이러한 포트의 최종 단계인 설치 과정 이후 설치된 파일을 묶어서 나중에 다시 설치할 때 컴파일하는 과정을 거치지 않아도 되도록 바이너리 형태로 보관된 것을 말한다. 설치할 때 패키지까지 같이 만들고 싶다면 make install 대신 make package 명령을 주면 .tgz 형식의 패키지까지 같이 만들어 준다.
최근의 개발 현황
FreeBSD는 한번에 복수의 버전 트리를 관리하고 있다. 이것은 최신 기능을 포함하고 지속적으로 수정하는 개발 버전과, 릴리즈를 위한 안정 버전의 두가지이다. 안정 버전의 기능을 묶어서 일년에 서너번 정도 릴리즈 버전을 내게 된다. 각 버전은 메이저 버전과 마이너 버전으로 구성이 되는데, 메이저 버전은 현재 버전 트리를 가리키며, 마이너 버전은 릴리즈때마다 1씩 올라간다. 릴리즈를 하지 않아야 할 때이지만 중간에 중요한 버그나 기능상의 변화가 올 때에는 포인트 릴리즈라 해서 세번째 자리수를 붙이기도 한다. 현재의 안정 버전인 버전 4에 대해서 알아보면 지금까지의 릴리즈 상태는 다음과 같다.
- 4.0-RELEASE (2000/3/13)
- 4.1-RELEASE (2000/7/27)
- 4.1.1-RELEASE (2000/9/25)
- 4.2-RELEASE (2000/11/21)
- 4.3-RELEASE (2000/3/??)
버전 4의 경우 1998년 후반부터 작업이 시작되어 오다가, 버전 3 트리가 최종화될 무렵(버전 3의 최종 버전인 3.5.1이 릴리즈되기 이전이다) 4-current 트리의 기능을 묶어서 4.0-RELEASE를 발표하였다. 릴리즈가 되면 해당 소스 트리는 -stable이 되며, 다음의 메이저 버전이 -current 개발 트리가 된다. 따라서 4.0 릴리즈를 기점으로(약간의 시간상의 전후차는 있을 수 있다) 5.0-current 트리가 생성되어 개발 버전의 역할을 하게 되었으며, 4.0-stable 트리가 생성되어 안정 버전의 트리 역할을 담당하게 된다. 버전 4는 지금까지 4회 릴리즈가 있었는데, 약 4개월 간격으로 이루어지고 있다. 버전 4.1.1은 릴리즈 시점은 아니었지만 암호화 알고리즘인 RSA의 미국 외 수출 규제가 풀린 것을 기념하여, 국제적으로 통일된 암호화 코드를 포함하여 릴리즈한 것이다. 다음의 안정 버전은 4.3 릴리즈로, 이달 말에서 다음달 초에 릴리즈될 것이다.
보통 새 안정 버전 트리가 생성되면 이전의 안정 버전 트리는(현재의 경우 3-stable이다) 관리 상태로 들어가는데, 이는 새로운 기능의 개발보다는 보안 버그 등의 심각한 버그의 수정만이 이루어진다. 이전의 안정 버전을 사용하고 있던 사람은 새 버전의 릴리즈를 기점으로 새 버전으로 이전할 지를 정해야 한다. 하지만 기본 시스템과는 달리 포트 시스템은 꽤 오랜 기간동안 이전 버전까지 지원하게 되므로, 기본 시스템에 큰 변화를 줄 수 없는 경우라면 패키지 버전만을 올리면서(가령 apache 버전) 시스템을 유지하는 일도 가능하다.
하지만 새 메이저 안정 버전의 릴리즈 이후에도 이전 버전이 한번 정도 릴리즈되는데, 가령 4.0-RELEASE 이후에도 3.5-RELEASE와 3.5.1-RELEASE가 있었다는 점을 들 수 있다. 이 경우에 버전 3 트리에는 큰 변경 사항은 없게 되며, 주로 그동안의 문제점을 모두 해결하고 새 안정 버전 트리가 실제 사용에 쓰일 수 있도록 하는 시간 간격을 제시한다.
새로 만들어진 개발 버전은 새로운 시스템 구성, 새로운 기능을 시험하는 시험대가 된다. 즉 -current 트리는 FreeBSD에 익숙하고 문제를 스스로 해결할 수 있는 사람만이 사용해야 하며, current@freebsd.org 와 같은 메일링 리스트에 가입해서 서로 의견을 나누고 어떤 것이 바뀌고 있는지를 반드시 알아야 한다. 메일링 리스트를 보지 않고 -current를 운영한다면 많은 문제를 겪을 것이다.
현재의 안정 버전: 4-stable
안정 버전에는 -stable을 붙여서 표기한다. 현재의 안정 버전 트리는 4-stable로, 해당 릴리즈 이후에는 4.1-stable, 4.2-stable과 같이 해당 릴리즈 이후의 안정 버전임을 표시하기도 한다. 버전 4는 2000년 3월에 개발 버전에서 안정 버전 트리로 변경되었으며, 중요한 기능은 다음과 같다.
- NFS v3과 가상메모리 시스템의 대폭적인 향상
- 새 ATAPI/ATA 드라이버
- 버전 3보다 향상된 SMP 기능 지원
- IPv6/IPsec 통합
- OpenSSH/OpenSSL 통합
- FFS 파일시스템의 소프트업데이트 기능 내장
- USB 장치 지원
다른 패키지상의 기능은 별도로 관리되는 포트 트리에 의해 유지되므로 별도로 생각하는 것이 좋다. 가령 새 웹 서버나 데이터베이스 시스템은 꼭 최근의 안정 버전을 운영하지 않아도 포트만을 업그레이드하여 설치할 수 있기 때문이다.
버전 4는 이미 릴리즈된지 1년여가 지나고 있는데, 최근의 경우 메이저 버전의 수명이 2년이 좀 못된다는 사실을 생각해 보면 버전 4도 이제 후반부에 들어섰다고 할 수 있을 것이다.
새로 발표될 버전 4.3은 4.2 발표 이후의 모든 변경 사항 - 시스템 기능 향상, 보안 버그 수정, 최신 패키지 - 를 모두 포함하고 있다. 아마 이 글을 읽을 무렵에는 최신 버전의 발표 소식을 들을 수 있을 것이다. 버전 4.3의 최신 변경 사항에 대해서 잠시 알아보면 다음과 같다.
- 3Ware Escalade, Cisco Aironet, Webgear Aviator, Adaptec FSA PCI-SCSI RAID 장치 지원
- ATAPI 장치 쓰기 지원으로 DVD-RAM, PD 장치 지원
- TCP의 동작에 대한 기능 향상
- CMedia CMI8338/CMI8738, CS4281 사운드 장치 지원
- procfs, ipfw, crontab, inetd, bind 등의 보안 버그 수정
- 여러가지 프로그램의 포맷팅 버그 수정
- binutils 2.10.1, OpenSSL 0.9.6, file 3.33, roff 1.16.1, OpenSSH 2.3.0 등의 시스템 구성 요소 업그레이드
- 4600가지 이상의 최신 패키지 제공
물론 이것 이외의 사소한 변경 사항은 훨씬 많다.
현재의 개발 버전: 5-current
개발 버전은 -current를 뒤에 붙이는데, 현재의 릴리즈 버전보다 하나 높은 숫자를 갖는다. 현재는 버전 4가 릴리즈되는 안정 버전이므로 5.0-current 또는 5-current라고 부르고 있다. 개발 버전의 목적은 안정 버전에서 받아들일 수 없는 시스템의 급격한 변화와, 새로운 장치 드라이버 등의 테스트를 위한 것이다. 개발 버전에서 먼저 추가된 기능은 필요에 따라 안정 버전으로 다시 포팅되는데, 이를 MFC(Merged From -Current)라는 용어로 많이 쓰이므로 메일링 리스트 등에서 쉽게 찾아볼 수 있을 것이다.
하지만 안정 버전으로 기능을 돌려주기 위한 시험대만이 -current의 목적이 아니다. -current는 그 외에도 많은 기능을 새로 시험하고 있다. 현재 -current에서는 안정 버전과 달리 다음의 기능이 추가되거나 변경되고 있다.
- SMPng: 보다 세분화된 SMP 지원 프로젝트
- KSE: 커널 스레드
- 포트/패키지의 업데이트과 검사 시스템(pkg_update(1), pkg_check(1))
- libc의 멀티스레드 지원
- newbus, ACPI, cardbus 등의 새 하드웨어 지원 프레임워크
- IA/64, PPC, ARM등에 포팅
- devfs의 기본 채용
- vn(4) 대신 md(4) 장치와 mdconfig(8)명령 채용
- perl 5.6
- FFS의 크기 변경 유틸리티인 growfs(8) 추가
- 국제화기능 향상(LC_MONETARY, LC_NUMERIC, LC_MESSAGES)
물론 이것 이외에 수많은 기능이 추가되고 향상되었다.
개발 버전은 릴리즈되지 않으므로, current.freebsd.org 에서 스냅샷을 받아 설치하거나 기존의 안정 버전에 업그레이드해서 사용해야 한다. 그만큼 손이 많이 가고, 패키지도 포트에서 직접 빌드해서 사용해야 하므로 디스크 용량이 있고, FreeBSD에 익숙한 사용자이고 정보를 얻는데 주저하지 않는다면 큰 문제 없이 사용할 수 있을 것이다.
필자는 현재 5-current를 일주일 단위로 업그레이드해서 사용한지 6개월이 넘었는데, 아직 큰 문제를 겪은 적은 없지만 최근에 일어난 libc 관련 변화 때에는 기존의 바이너리 호환성이 잠시 깨진 적이 있어서 큰 주의를 필요로 해야 했다.
다만 -current를 써서 얻을 수 있는 잇점은 새로운 기능을 그때그때 사용해 볼 수 있고, 개발의 최전선에 서 있다는 즐거움일 것이다.
다른 BSD 운영체제
FreeBSD가 386BSD에서 갈라져 나왔다는 사실에 대해서는 앞서 설명한 바 있다. 386BSD에서는 세가지의 운영체제가 나오게 되는데, 이것이 바로 FreeBSD, NetBSD, OpenBSD이다. 이들은 모두 오픈 소스이지만 BSD/OS와 같은 상업용 유닉스 운영체제도 있으며, 애플은 이것을 받아들여서 자신의 새 운영체제의 핵심 엔진으로 사용하였다.
-
NetBSD (http://www.netbsd.org)
NetBSD는 주로 멀티플랫폼 영역에 관심을 두는 관계로 시스템의 소스 구성이 깔끔하고 여러 아키텍처를 동시에 지원할 수 있도록 시스템 의존부(MD, Machine Dependent)와 시스템 비의존부(MI, Machine Independent)로 나누어 두고 있다. NetBSD는 시스템 비의존부를 최대로 하여 새로운 아키텍처에 대한 포팅이나 드라이버 개발을 최대한 쉽게 할 수 있도록 하고 있으며, 현재 30여가지 플랫폼에 포팅이 이루어져 있고, 포팅 중에 있는 플랫폼을 추가하면 그보다 훨씬 많다.
-
OpenBSD (http://www.openbsd.org)
OpenBSD는 NetBSD에서 갈라져 나온 것으로, 소스 전체에 대한 감사를 통해 보안 문제가 있을 부분을 모두 수정하고, 암호화 프로토콜 등의 충실한 지원을 통하여 가장 안전한 운영체제로 만들려는 것에 가장 큰 노력을 기울이고 있다. OpenBSD는 NetBSD에서 갈라져 나온 만큼 또한 멀티플랫폼 운영체제이며, ssh의 오픈 소스 버전인 OpenSSH나 OpenSSL 프로젝트 등을 통해서 자신의 운영체제 뿐 아니라 모든 오픈 소스 진영을 위한 암호화 소프트웨어를 만들고 있다.
-
BSD/OS (http://www.bsdi.com)
BSD/OS는 동일한 BSD 소스를 바탕으로 한 상업적 운영체제이다. 이 운영체제를 유닉스라고 선전하였던 것에서부터 BSD와 유닉스 상표권자간의 소송이 시작되었기도 하다. BSD/OS는 BSDi 사에서 제작, 판매하고 있는 상업용 유닉스이며, 구입하는 경우에만 소스를 제공한다. BSD/OS는 FreeBSD와 유사하게 x86 플랫폼에서만 동작하고 있으며, 공개할 수 없는 하드웨어에 대한 드라이버와, 충실한 멀티프로세서 지원이 특징이다.
작년 봄에 BSDi사는 FreeBSD의 최대 후원자이자 공식 CD-ROM 발매원인 Walnut Creek CDROM과 합병하여 FreeBSD와 BSD/OS를 모두 지원 목록에 포함하고 두 운영체제간의 간격을 좁히려 하고 있다. 사실 BSD/OS의 개발자들은 FreeBSD에서 많은 기능을 받아들였고, 합병 이전에도 doscmd(도스 에뮬레이터)의 소스를 FreeBSD에 제공하는 등 서로 협력하는 관계에 있었다. 합병 이후 FreeBSD는 BSD/OS의 SMP 디자인을 바탕으로 자이언트 락을 사용하지 않고 필요한 부분과 CPU단위의 락킹을 할 수 있는 SMP코드의 개발에 들어갔으며, 5.0 릴리즈에서는 어떠한 형태로든 이 성과를 볼 수 있을 것이다.
-
MacOS X (http://www.apple.com/macosx)
애플사의 차세대 매킨토시 운영체제인 MacOS X(X는 10의 로마숫자 표기이다)는 기본적으로 FreeBSD 3.2와 Mach 마이크로커널을 기반으로 하고 있다. MacOS X의 코어 부분을 Darwin이라고 하는데, Darwin은 애플의 오픈 소스 라이센스 하에 공개되어 있다. MacOS X는 이전 애플의 스티스 잡스가 NeXT사에서 만들었던 NeXTSTEP의 기능도 일부 포함하고 있으며 Darwin의 코어 엔진에 그래픽 유저 인터페이스를 엊은 형태이다. 일반적인 유닉스와 달리 이것은 X 윈도우 시스템이 아니며, 이는 새로운 MacOS가 결국 BSD 유닉스를 기반으로 하게 되었다는 사실을 의미한다. 실제로 csh등의 유닉스 소프트웨어가 동작하고 있다.
라이센스
FreeBSD는 FreeBSD 라이센스를 갖고 있다. 이것은 BSD 라이센스에 기반한 것으로, 프로젝트의 공헌자 목록을 파생 소프트웨어(기존의 BSD 라이센스를 갖는 소프트웨어를 고친 것)에 표기해야 하는 BSD 라이센스의 제 3항을 삭제한 것이다. 나중에 BSD 라이센스 원본도 이 점을 삭제하였다. 이것은 공헌자 목록을 일일이 나열해야 하는 단점을 없애 준다. 실제로 GNU의 리차드 스톨만은 이 점을 들어 BSD 라이센스를 사용하지 말 것을 권장하기도 하였다.
The BSD License Problem: http://www.gnu.org/philosophy/bsd.html
실질적으로 BSD 라이센스에서 이 문구를 삭제한지 2년이 지났는데 아직 GNU 홈페이지에 이 글이 실려 있는 것은 조금 유감스러운 일이기도 하다.
BSD 라이센스는 대표적으로 아파치, BSD 계열 운영체제, X 윈도우 시스템에서 채택하고 있다. 각자 자신의 라이센스명으로 부르지만 그 내용은 BSD 라이센스와 동일하고 주체 명을 바꾼 정도이다.
BSD 라이센스는 소프트웨어 라이센스라도고 할 수 없을 만큼 미약하여, 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있다. 다만 수정본의 재배포는 의무적인 사항이 아니므로 BSD 라이센스를 갖는 프로그램은 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있다.
이것이 GNU GPL과의 가장 큰 차이점인데, GPL은 파생된 소프트웨어도 GPL과 같은 라이센스를 갖도록 의무화하고 있다. 즉 파생물의 경우에도 소스 코드가 반드시 배포되도록 하는 것인데, 이것은 GPL을 만들어낸 리차드 스톨만의 의지에 따른 결과이다. BSD 라이센스의 경우에는 BSD 자체가 공공기관에서 만들어낸 것이므로 공공의 몫으로 돌려주자는 의미가 강하므로 라이센스 자체에는 아무런 제한 없이 누구나 자신의 용도로 사용할 수 있도록 한 것이고, GPL의 경우에는 프리 소프트웨어의 철학을 실천하고자 하는 의도가 반영되어 있다고 할 수 있다.
FreeBSD의 소스 트리는 기본적으로 FreeBSD 라이센스를 따르지만 그렇지 않은 부분도 있다. 가령 거의 모든 오픈 소스 운영체제는 컴파일러 툴체인으로 GNU의 컴파일러와 링커, 어셈블러를 사용하는데(gcc와 binutils), 이것은 GPL을 따르고 있다. 또한 수치연산 보조 프로세서 에뮬레이터의 경우에도 BSD 라이센스 버전과 GPL버전이 동시에 제공되고 있으며, gzip, GNU tar 와 같은 GNU 어플리케이션도 다수 포함하고 있다. 이러한 GPL을 따르는 부분은 GPL의 라이센스 전염성을 막기 위해 별도의 디렉토리에 보관되고 있다. 따라서 FreeBSD의 모든 소스가 완전하게 FreeBSD 라이센스를 따른다고는 할 수 없다.
FreeBSD 라이센스: http://www.freebsd.org/copyright/freebsd-license.html
주의해야 할 것은 포트/패키지에서 제공하는 어플리케이션들은 모두 각자의 라이센스에 따른다는 것이다. 포트 시스템 자체는 FreeBSD 라이센스이지만 실제 어플리케이션 소스는 각자의 것에 따른다(이것이 포트 시스템이 소스를 포함하지 않는 이유이기도 하다). 따라서 공식 CD-ROM으로 배포되는 패키지와 FTP에 공개된 패키지간에도 차이가 있을 수 있다.
FreeBSD vs Linux
사람들이 논쟁하기 좋아하는 요소 중 하나는 운영체제간의 장단점의 논의이다. 이러한 것은 종종 뉴스그룹이나 메일링 리스트, 웹 사이트 상에서 열띤 토론으로 바뀌기 쉬운데, 이중 많이 논의되는 주제 중 하나가 FreeBSD vs Linux이다. 가령 slashdot.org와 같은 사이트에서 새 FreeBSD 릴리즈 발표 소식이(다른 BSD도 마찬가지로) 나면 이에 대해 긴 스레드가 형성되는 것을 볼 수 있다.
FreeBSD와 리눅스를 동시에 이해하는데 있어서 가장 쉬운 방법은 두 운영체제 모두를 사용해 보는 것이다. 직접 사용해 보지 않는다면 그 운영체제가 어떤 느낌으로 다가오는지 확인하기 어렵기 때문이다. 그렇지 못한 환경에 있다면 다음 몇가지 사항은 알아 두도록 하자.
- FreeBSD는 그 자체로 운영체제의 모든 사항을 포함하고 있지만, Linux는 좁은 의미로는 Linux 커널, 넓은 의미로 배포본을 의미한다. 하지만 Linux의 배포본 수는 상당히 많고, 같은 Linux라고 해도 래드햇과 데비안은 사용자 입장에서는 완전히 다른 운영체제로 접하게 되는 경우가 있는데, 사용자 관리에서부터 시스템 관리, 패키지 관리의 측면이 서로 많이 다르기 때문이다. 따라서 FreeBSD vs Linux라기 보다는 FreeBSD vs Redhat이나 FreeBSD vs Debian과 같은 비교가 더 정확할 지 모른다.
- FreeBSD, NetBSD, OpenBSD는 BSD계열이기는 하지만 오랜 기간의 코드 분리(forking)의 결과로 이제는 서로 다른 운영체제라고 해도 좋을 정도이다. 따라서 세 BSD를 서로 다른 Linux 배포본와 같이 생각해서는 안되며, 각각 서로 다른 운영체제라고 생각하는 편이 낫다.
- 대부분의 오픈 소스 Linux 어플리케이션은 Linux 뿐 아니라 FreeBSD, NetBSD, OpenBSD는 물론 솔라리스와 같은 상용 유닉스에서도 잘 동작한다. 대표적인 것이 GNOME/KDE의 경우인데, 이들은 운영체제에 따라 지원하는 기능이 일부 제한될 수 있지만 기본적으로는 모두 동일하게 사용할 수 있다. FreeBSD의 포트 콜렉션에는 이러한 패키지들이 아주 많이 포함되어 있다. 따라서 오픈 소스 어플리케이션은 거의 모든 유닉스에서 공통적으로 동작할 수 있다는 점에 주의해야 한다.
운영체제 비교의 주 대상이 되는 것은 토론을 읽어 보면 안정성이나 성능, 장치 지원이 중요한 요소가 되는 경우가 많다. FreeBSD는 Linux보다 장치 지원은 조금 부족하지만 일반적인 하드웨어에서는 모두 이상 없이 동작하고, 안정성이나 성능은 여러 벤치마크에서 나타나듯이 엇갈린 결과가 혼재하지만, 다른 운영체제에 비해 부족함이 없거나 뛰어난 경우가 많다.
오픈 소스 운영체제 또는 어플리케이션을 옹호하는 일은 보통 advocacy라고 부르는데, 뉴스그룹이나 유명 뉴스 사이트에서는 이러한 advocacy가 항상 계속되고 있다. 이러한 advocacy를 지켜보거나 실제로 의견을 표현하는 입장이 된다면, 느낌보다는 정확한 근거를 바탕으로 남의 의견을 존중하면서 자신의 의견을 표현하도록 하자. 무조건적인 비난이나 경멸, 근거 없는 주장은 논점을 흐리고 자신이 좋아하는 운영체제나 어플리케이션의 입장에서도 아무런 도움이 되지 않는다.
국내의 현황
리눅스에 비해 널리 알려지지는 않았지만 FreeBSD는 오래전부터 사람들에게 알려져 있었고, 또 사용되어 왔다. 최초의 FreeBSD 국내 미러 사이트(ftp.kr.freebsd.org)가 등장한 것은 1996년경의 일이며, 1998년에 본격적으로 FreeBSD의 한국 사용자 그룹이 운영되고 있다. 사용자 그룹은 FreeBSD의 각종 리소스를 미러링하고 있으며, 국내 사용자간의 의사소통을 위해 FreeBSD 프로젝트의 방식을 따라 메일링 리스트 위주로 운영하고 있다. 또한 국내 사용자를 위한 포트/패키지, 문서 번역도 하고 있으므로 관심 있는 사람은 언제나 메일링 리스트에 가입하여 참여할 수 있다.
Korea FreeBSD Users Group(KFUG): http://www.kr.freebsd.org/
실제적으로, FreeBSD는 국내에서 대학의 연구 시스템에서부터 거대 포탈 사이트까지 다양한 곳에서 사용되고 있다. Dreamwiz, Sayclub, Yahoo! Korea 등은 FreeBSD로 운영되는 유명한 사이트라 할 수 있으며, 여러 웹 호스팅 업체들도 FreeBSD를 사용한 웹 호스팅 서비스를 제공하고 있다. 이러한 사이트의 목록을 위해서는 KFUG 내의 갤러리 프로젝트의 목록을 보면 알 수 있다.
FreeBSD-KR 갤러리: http://www.kr.freebsd.org/gallery/
FreeBSD는 현재 오픈 소스 운영체제 중에서는 가장 많고 충실한 한글 환경을 지원한다. 포트/패키지의 한국어 카테고리에서 60여개가 넘는 한국어 관련 패키지를 제공하며, 이들은 구할 수 있는 거의 모든 것들을 포함하고 있다. 물론 기본적인 한국어 사용을 위한 설정은 사용자가 어느정도 해 주어야 하지만, 이들은 거의 문서화되어 있고, 새로 소스를 컴파일하는 작업 등이 필요한 것은 아니다. 이러한 문제들에 대한 해답을 얻고 싶다면 KFUG의 FAQ-kr 프로젝트에서부터 시작하는 것이 좋다.
KFUG FAQ-kr: http://www.kr.freebsd.org/FAQ-kr
그외 일반 사용자들이 운영하고 있는 FreeBSD 사이트가 몇가지 있는데, 그중 유용한 곳은 다음과 같다.
- FreeBSD HanIRC: http://freebsd.hanirc.org
- nowcool: http://nowcool.dhs.org
- goosia: http://goosia.com
- FreeBSD 설치 가이드 2.0: http://canon.chungbuk.ac.kr/~sbkim/revision/freebsd.htm
'Linux > Linux 일반' 카테고리의 다른 글
ubuntu에서 tomcat설치 및 apache2에 연동 (0) | 2007.05.25 |
---|---|
Samba Server(삼바? 쌈바?) (0) | 2007.04.13 |
Samba service 설치 (0) | 2007.04.13 |