다음의 절(section)은 간략한 역사, 프로젝트 목표, 그리고 프로젝트의 개발 모형(model)을 포함한 프로젝트에 관한 몇몇 배경 정보를 제공합니다.
Jordan K. Hubbard <jkh@FreeBSD.org> 기고..
FreeBSD 프로젝트는, 비공식적인 386BSD 패치에 힘썼던 마지막 3명 - Nate Williams, Rod Grimes 그리고 저 - 에 의한 패치들(patchkit)의 부산물로서, 1993년 초에 태어났습니다.
우리의 본래 목표는 - 문제 해결을 위한 완전한 방법이 될 수는 없었던 - 패치 구조를 통해 많은 문제점들을 고치기 위해서 386BSD의 스냅샷(snapshot)을 중간중간 만들어 내는 것이였습니다. 여러분 중에 몇몇은, 그 사실과 관련해서, 프로젝트의 초기 표제가 "386BSD 0.5" 혹은 "386BSD Interim" 이였다는 것을 기억할 지도 모르겠군요.
Bill Jolitz가 만들었던 운영체제, 386BSD는 그 때쯤 거의 1년정도 방치된 채 심각한 상태에 이르렀습니다. 하루하루 패치들이 넘쳐서 불편할 정도에 이르자, 우리들은 무언가를 해야한다고 의견을 모았고, 우리의 "깨끗한(?)" 스냅샷을 제공해서 Bill을 돕기로 결정했습니다. 그러나 그 계획은 Bill Jolitz가 아무런 다음 계획에 대한 지시 없이, 프로젝트에 대한 지지를 갑자기 그만둠으로서 중지되고 말았습니다.
비록 중지되기는 했지만, Bill의 지원이 없더라도 우리의 목표가 여전히 가치가 있다고 결론을 내리기까지는 그리 오랜 시간이 걸리지 않았습니다. 그래서 우리는 David Greenman이 만들어낸 "FreeBSD"라는 이름을 채택하고 프로젝트를 이어가게 되었습니다. 우리의 초기 목표는 그 당시의 시스템 사용자들과의 상담 후에 정해졌으며, 일단 프로젝트가 현실성을 가지게 되었다라는 사실이 명백해졌을 때, 저는 인터넷에 쉽게 접속할 수 있는 행운을 가지지 못한 사람들을 위해 FreeBSD의 배포 경로를 개선하고자 Walnut Creek CDROM과 접촉하였습니다. Walnut Creek CDROM은 FreeBSD CD 배포에 대한 아이디어를 제공해 주었을 뿐만 아니라 프로젝트를 위한 장비(machine)들과 빠른 인터넷 연결(connection)을 제공해 주었습니다. Walnut Creek CDROM의 전례없을 정도의 신뢰가 없었더라면, 그 당시 전혀 알려지지 않았던 그 프로젝트의 오늘은 아마 없었을 것입니다.
첫번째 CDROM 배포판은 1993년 12월에 발표된 FreeBSD 1.0이였습니다. 이 배포판은 U.C. Berkeley의 4.3BSD-Lite ("Net/2")에 기반을 두었으며, 386BSD와 자유 소프트웨어 재단(Free Software Foundation)의 많은 요소들을 가지고 있었습니다. 이 첫번째 배포는 상당히 성공적이였으며, 이어서 1994년 5월의 발표된 FreeBSD 1.1가 매우 큰 성공을 거두게 됩니다.
이 때쯤, Novell과 U.C. Berkeley사이에 있었던 먹구름 (오랜 기간 소송중이였던 Berkeley Net/2에 관한 법적 상태) 이 정리되었습니다. 이는 다소 예상하지 못했던 일이였습니다. 어쨌든, 그 정리의 조건은 U.C. Berkeley가 많은 부분의 Net/2 Code ( AT&T로 부터 넘겨받은 Novell 소유의 Code ) 를 양보하는 것이였습니다. Berkeley가 돌려받은 것은 Novell이 4.4BSD-Lite에 대해서는 제약을 않겠다는 사실이였습니다. 그리고 Novell은 기존의 Net/2 사용자들이 4.4BSD-Lite로 옮겨가도록 장려했습니다. 이것은 FreeBSD에도 적용되는 것이여서, 프로젝트는 1994년 7월말까지 Net/2에 기반하고 있던 제품을 만드는 것을 중지하는데 힘썼습니다. 협정에 따라서 프로젝트는 기한내에 하나의 배포를 허락받았는데, 그 배보판이 FreeBSD 1.1.5.1이였습니다.
그 다음에, FreeBSD는 완전히 새롭고, 다소 불완전한 4.4BSD-Lite의 몇몇 부분으로부터 글자 그대로 자체적으로 '재창조'하는 아주 힘든 작업을 시작하게 됩니다. "Lite"는 어느 정도 가벼웠는데, 왜냐하면 Berkeley의 CSRG가 - 부팅가능하고 가동가능한 시스템을 실질적으로 만들기 위해서 요구되어지는 - 많은 양의 코드를 (다양한 법적 요구 때문에) 제거한데다, 4.4의 Intel 플랫폼에 대한 지원이 아주 불완전했기 때문이였습니다. 이러한 변환을 위해 프로젝트는 1994년 11월이 되어서야 FreeBSD 2.0을 네트워크상에 배포(CDROM으로는 12월말) 하게 됩니다. 이런저런 어려움에도 불구하고 이 배포판은 상당한 성공을 거두게 되고, 곧 더욱 강력하고 설치하기 쉬운 FreeBSD 2.0.5가 1995년 5월 배포되었습니다.
우리는 1996년 8월 FreeBSD 2.1.5를 배포하였습니다. ISP와 상업계 사이에서 충분히 유명해진 듯 했고, 2.1-STABLE 가지를 따르는 또 다른 배포판 하나가 그럴만한 자격을 갖추고 있었습니다. 바로 FreeBSD 2.1.7.1인데, 1997년 2월에 배포 되었고 2.1-STABLE 주요 개발 흐름을 마무리 짓는 것이었습니다. 오늘날에는 유지하는 입장에서, 이 가지(RELENG_2_1_0) 상에서는 단지 보안 강화와 다른 중요한 버그 수정만이 행해질 것입니다.
FreeBSD 2.2는 1996년 11월 당시의 주 개발 가지("-CURRENT") 였던 RELENG_2_2로 부터 분기했으며, 첫번째 배포판(2.2.1)이 1997년 3월에 배포되었습니다. 2.2가지를 따르던 그 다음 배포판들이 1997년 여름과 가을에 나왔고, 마지막 2.2.8이 1998년 11월에 나왔습니다. 첫번째 공식 3.0 배포판이 1998년 10월에 나왔으며 2.2가지의 끝과 새 시작을 뜻했습니다.
4.0-CURRENT와 3.X-STABLE가지를 이끌고, 개발트리(tree)는 1999년 1월 20일에 새 가지를 펴게 됩니다. 3.X-STABLE로 부터, 1999년 2월 15일에 3.1, 3월 15일에 3.2, 9월 16일에 3.3, 12월 20일에 3.4, 그리고 2000년 7월 24일에 3.5가 배포되었습니다. 그리고 곧 이어서 Kerberos에 대한 몇개의 막바지 보안 수정을 포함한 3.5.1이 작은 가지(minor point release)로 뒤를 따랐습니다. 이 배포판이 3.X가지의 마지막 배포판이였습니다.
2000년 3월 13일에 새로운 가지가 펼쳐지게 되었습니다. 여기서 우리는 5.0-CURRENT와 4.X-STABLE 가지의 출현을 보게 됩니다.
현재의 -stable가지는 4.x-stable입니다. 4.0-RELEASE는 2000년 3월에 나왔으며, 4.1은 2000년 7월에, 4.2는 2000년 11월에 각각 배포되었습니다. 4.x-stable(RELENG_4)가지를 따라서 더 많은 배포판들이 나올 것입니다.
장기간의 개발이 5.0-CURRENT가지를 따라서 계속 이루어지고 있으며, 작업이 진행되는 것에 맞춰서 5.0에 대한 스냅샷(snapshot release)이 CDROM을 통해서(물론 인터넷상으로도) 지속적으로 만들어지고 있습니다.
Jordan K. Hubbard <jkh@FreeBSD.org> 기고.
FreeBSD 프로젝트의 목표는 어떠한 목적을 위해서라도 사용할 수 있는 소프트웨어를 부대 조건 없이 제공하는 것입니다. 우리 중 많은 사람들이 코드(그리고 프로젝트) 에 많은 투자를 하고, 조금의 재정적인 보상에도 신경쓰지 않고 있습니다. 우리가 믿고 있는 최우선의 "임무"는 찾아오는 모든 사람들에게 코드를 제공함으로서, 어떤 의도로든지 광범위하게 사용되어 질 수 있도록하여, 가능한 많은 이익을 제공하고자 하는 것입니다. 제가 믿기로, 이것이 자유 소프트웨어의 가장 기본이 되는 목표중 하나이며 우리가 열정적으로 지지하는 바입니다.
우리의 코드들 중에서 GPL(GNU General Public License)이나 LGPL(Library General Public License)상에 있는 코드들은 다소 많은 부대 조건이 붙습니다. 그러나, GPL 소프트웨어를 상업적 목적으로 사용할 경우 복잡한 조건이 추가되기 때문에, 우리는 조금 더 관대한 BSD 저작권을 따르는 소프트웨어들을 선호합니다.
Satoshi Asami <asami@FreeBSD.org> 기고.
FreeBSD의 개발 과정은 매우 개방적이고 유연합니다. 공헌자 목록에서 보실 수 있듯이 FreeBSD는 세계각지 수백명의 공헌자들에 의해서 만들어지고 있습니다. 우리는 새로운 개발자와 아이디어를 끊임없이 주시하고 있습니다. 프로젝트와 관련해서 더욱 더 밀접한 관심을 가지고 계신 분들은 FreeBSD 기술 논의 메일링 리스트 <freebsd-hackers@FreeBSD.org>에서 우리와 쉽게 만나실 수 있습니다. 또 FreeBSD의 주요 작업 영역에 대해 알고 싶으신 분들은 FreeBSD 공지 메일링 리스트 <freebsd-announce@FreeBSD.org>를 이용하실 수 있습니다.
(독립적으로 동작하는 것이든 밀접한 협동관계이든 간에) FreeBSD 프로젝트와 개발 과정을 알기 위해서 유용한 것들:
FreeBSD의 중앙 소스(source tree)는 CVS (Concurrent Version System)에 의해서 관리됩니다. CVS는 자유로이 이용가능한 소스 코드 관리 도구이며, FreeBSD 꾸러미에 속해 있습니다. 중앙(primary) CVS 저장고는 미국 Concord CA에 위치하고 있으며, 이것으로부터 전세계의 수많은 서버들로 미러링(mirroring) 됩니다. CVS 트리(tree)는 - -CURRENT 뿐만 아니라 -STABLE 가지까지 - 손쉽게 여러분의 컴퓨터로도 미러(mirror)가 가능합니다. 이에 대한 더 많은 정보를 얻으시려면 소스 트리(tree) 동기화하기 절을 참고하시기 바랍니다.
커미터란 CVS 트리(tree)에 쓸(write) 수 있는 권리를 가진 사람, 즉 FreeBSD 소스를 수정할 권한을 가지고 있는 사람을 말합니다. (커미터라는 용어는 cvs(1) commit 명령어로 부터 유래되었습니다. commit은 CVS저장고에 새로운 변화를 적용시키는데 사용되는 명령어 입니다.) 커미터 명단을 통해 그들에게 제출할 것이 있을 경우, 가장 좋은 방법은 send-pr(1) 명령어를 사용하는 것입니다. 물론 시스템 전반적인 문제라고 여겨진다면 <cvs-committers@FreeBSD.org>로 메일을 보내셔서 그들에게 연락하는 방법도 있겠습니다.
FreeBSD 프로젝트를 회사에 비유하자면, FreeBSD 코어(core) 팀은 이사회에 견줄 수 있을 것입니다. 코어팀 제 1의 과업은 '프로젝트가 전반적으로 올바른 상태인가, 그리고 바람직한 방향으로 진행되고 있는가' 를 확인하는 것입니다. 헌신적이고 책임감있는 개발자들을 초대해서 우리의 커미터 그룹에 가입하도록 요청하는 것도 코어팀의 기능중 하나이며, 다른 사람들이 자리를 옮기듯이 새로운 코어팀원을 선출하기도 합니다. 현재의 코어팀은 커미터들의 추천에 의해서 2000년 10월에 선출되었습니다. 선거는 2년마다 열립니다.
몇몇 코어 팀원들은 또한 특정한 책임 영역을 가지고 있습니다. 다시 말해서 시스템의 많은 부분이 공고한 대로 동작하는지 보장하는 데 전념한다는 뜻입니다.
Note: 대부분의 코어팀원들은 FreeBSD 개발에 참여해서 재정적인 이익을 얻지 않는 자발적인 지원자들입니다. 그러므로 "위임"이 "보장된" 지원을 의미하는 것으로 오해해서는 안됩니다. 위에서 이야기했던 "이사회"와의 유사성은 실제로 그리 정확한 것만은 아니라고 봐야겠군요. 어리석게도 FreeBSD가 좋아서 그들의 삶을 포기한 사람들이라고 말하는 것이 더 적절한 것 같습니다! ;-)
마지막으로, 결코 무시할 수 없는, 가장 규모가 큰 개발자 그룹은 바로 우리에게 끊임없는 피드백(feedback)과 오류 수정을 제공해주는 사용자들일 것입니다. FreeBSD가 좀 더 중앙집중적이지 않은 개발을 이루기 위해서 도울 수 있는 최상의 방법은 FreeBSD 기술 논의 메일링 리스트 <freebsd-hackers@FreeBSD.org> (메일링 리스트 정보를 보세요) 를 구독하는 것입니다. 이 곳에서 지금까지 우리가 이야기했던 내용들을 토론하고 있습니다.
우리의 소스 트리(source tree)를 변화시키는 어떤 공헌을 한 사람들의 명단이 매우 길고, 또한 지금도 커가고 있습니다. 오늘 FreeBSD에게 무언가를 제공해서 그 곳에 참여해보는 것은 어떻습니까? :-)
코드를 제공하는 것 말고도 프로젝트에 도움을 줄 수 있는 방법은 많이 있습니다. 좀 더 많은 방법들을 보시려면, 이 핸드북에 있는 어떻게 공헌하는가를 참조하시기 바랍니다.
요약하자면, 우리의 개발 모델은 유연한 동심원들로 구성되어 있습니다. 집중된 방식은 FreeBSD 사용자들의 편의를 위해 고안된 것으로, 이로 인해 잠재적은 공헌자들을 외면하지 않으면서도 사용자들은 중앙의 코드를 손쉽게 따라 갈 수가 있게 됩니다. 많은 응용 프로그램과 함께 안정된 운영 체제를 제공하는 것이 우리가 바라는 바이며, 이 모델은 그렇게 해내는 데 있어서 아주 효과가 있습니다.
FreeBSD 개발자로서 참여하는 사람들에게 바라는 모든 것은 현재의 사람들이 이루어 놓은 성공을 이어가기 위해서 그에 못지 않은 헌신을 해주었으면 하는 것입니다!
FreeBSD는 Intel i386, i486, 펜티엄, 펜티엄 프로, 셀러론, 펜티엄 II, 펜티엄 III (또는 호환가능한 것), 그리고 DEC 알파 기반의 컴퓨터 시스템에서 자유로이 이용가능한, 4.4BSD-Lite기반의 OS입니다. 대부분의 소프트웨어가 U.C. Berkeley의 CSRG 그룹의 것을 기반으로 하고 있으며, NetBSD, OpenBSD, 386BSD, 그리고 자유 소프트웨어 재단(Free Software Foundation)에서도 힘을 얻었습니다.
94년 말에 FreeBSD 2.0이 배포된 이후로, FreeBSD의 성능, 기능, 안정성은 비약적인 발전을 이루어왔습니다. 가장 큰 변화는 VM(가상 메모리, virtual memory)와 파일 버퍼 캐쉬(buffer cache)가 통합되서 가상 메모리가 더욱 개선된 점입니다. 이로서 성능이 증대되었을 뿐만 아니라 최소 메모리 요구사항을 5MB로 줄이기도 했습니다. 다른 개선 사항으로서는, NIS 클라이언트/서버 (client/server) 지원, 트렌젝션(transaction) TCP 지원, dial-on-demand PPP, 통합된 DHCP 지원, 더 좋아진 SCSI, ISDN 지원, ATM, FDDI, Fast & Gigabit 이더넷 (1000Mbit) 어뎁터, 최근의 Adaptec 제어기에 대한 개선, 그리고 수백개의 오류 수정이 있습니다.
우리는 사용자의 진심어린 제안을 수용해오고 있습니다. 특히 우리가 바라는 것은 좀 더 쉽게 이해할 수 있는 설치 과정을 제공하는 것이므로, 우리는 이 부분에 대한 여러분의 피드백(feedback)을 특별히 환영합니다!
기본적인 배포이외에도, FreeBSD는 주로 수요가 많은 프로그램들을 중심으로 수천개의 포팅(porting)된 소프트웨어 묶음을 제공합니다. 2000년 11월인 지금, 4000개가 넘는 포트(ports)가 존재합니다. 포트의 목록은 http (WWW) 서버부터 시작해서 게임, 언어, 에디터까지 거의 모든 것을 가지고 있습니다. 전체 포트 컬렉션(ports collection)은 대략 100MB정도의 저장 공간을 필요로 하며, 모든 포트는 원래의 소스(source)에 대한 "delta"들로 표현됩니다. 이로서 포트를 갱신하는 것이 매우 쉬워졌으며, 요구되는 디스크 용량이 1.0 이전의 포트 컬렉션(ports collection)이 요구했던 것에 비해 크게 줄어들었습니다. 포트를 컴파일(compile)하기 위해서는 단지 설치하고 싶은 프로그램의 디렉토리(directory)로 이동해서 make install이라고 입력하기만 하면 됩니다. 나머지는 시스템에게 맡기십시오. 여러분이 빌드(build)하고 있는 각각의 포트의 실제 배포판은 CDROM이나 FTP를 통해서 효과적으로 공급되므로, 여러분은 단지 원하는 포트를 빌드할 만큼의 여분 용량을 가지고 있으면 됩니다. 대부분의 포트는 또한 미리 만들어진 "패키지"로도 제공됩니다. 자신의 포트를 통해서 소스 컴파일(source compile)을 하고 싶지 않은 분은 간단한 명령어(pkg_add)로서 패키지를 설치할 수 있습니다.
FreeBSD 2.1 또는 그 이후 배포판이라면, 설치 과정이나 사용중에 큰 도움을 줄 수 있는 많은 추가적인 문서 또한 /usr/share/doc 디렉토리(directory)에서 찾아보실 수 있습니다. 다음 URL을 이용해서 시스템에 설치되어 있는 안내서(manual)를 볼 수도 있습니다:
(가장 자주 갱신되는)마스터 복사본은 http://www.FreeBSD.org/에서 볼 수 있습니다.