프리비에스디
프리비에스디(FreeBSD; Free Berkeley Software Distribution)은 미국 캘리포니아 대학교 버클리에서 개발한 유닉스(UNIX) 계열의 오픈소스 운영체제(OS)이다. 기존의 비에스디(BSD) 운영체제를 기반으로 개발했다. 한국의 ㈜티맥스소프트는 프리비에스디(FreeBSD) 운영체제를 기반으로 티맥스오에스(TmaxOS)를 개발 중이다.
목차
개요
등장배경
FreeBSD 의 개발은 1993년부터 4.3 BSD Net/2에 기반한 386BSD의 소스 코드를 이용하여 시작되었다. 가장 먼저 1992년 Jordan K. Hubbard, Nate Williams, Rod Grimes 세 사람이 시작한 “Unofficial 386 BSD Patch kit”로 원래는 386 BSD를 보완하려 하였으나 386 BSD의 개발이 줄곧 늦어지고 작업 결과가 반영되지 않으면서, 이 작업은 결국 별도의 BSD 운영 체제 개발로 전환되어 David Greenman의 명명에 따라 ‘FreeBSD’라는 이름으로 독자적인 작업이 되었고, 1993년 11월 FreeBSD 1.0이 발표되었다. Walnut Creek 사의 후원으로 CD-ROM으로 배포된 최초의 FreeBSD 는 4.3 BSD를 바탕으로 386 BSD의 작업과 GNU 결과물을 포함하여 구성되었는데, 곧바로 1994년 5월에 버전 1.1이 발표되었고 1994년 7월 버전 1.1.5.1로 완료된다. 그런데 이 무렵 4.3 BSD Net/2를 둘러싸고 AT&T Unix의 소유자였던 USL과 BSD Unix의 개발자 캘리포니아 대학교 버클리 사이에 발생한 저작권 분쟁의 여파로 4.3 BSD Net/2에 기반한 기존의 386 BSD 소스 코드는 사용을 중단해야 했고, 이에 따라 FreeBSD 2.0은 자유로운 배포를 보장받은 4.4 BSD-Lite를 바탕으로 새로 작성되었다. 1995년 1월에 발표된 Free BSD 2.0은 4.4 BSD를 기반으로 전면 재작성되어 1995년 6월 버전 2.0.5를 거쳐 1998년 11월 버전 2.1.7.1과 버전 2.2.8로 완료되었다. 가장 큰 향상은 CMU의 Mach 가상 메모리 시스템을 개선하여 과부하 상태에서도 안정적인 성능을 유지하도록 최적화되었고, 포트(port) 시스템이 도입되어 서드파티 소프트웨어의 설치 및 관리의 편의를 제공한다. FreeBSD 3.0은 1998년 10월에 발표되어 2000년 7월 버전 3.5.1로 마무리되었는데, ELF 바이너리 포맷으로 전환하고, 대칭형 다중 프로세서(SMP) 시스템 지원하여, 새로운 64bit 플랫폼 DEC Alpha 지원 등의 변화가 있었다. 비록 확실한 기능상의 이점도 성능 향상도 가져오지 못했다는 비판도 있었으나, 1995년 6월에 완성된 BSD Unix의 최종 결과물 4.4 BSD-Lite 2까지 흡수하여 이전의 여러 개발 성과들을 총괄하여, 향후 FreeBSD 4에서의 도약을 위한 토대가 되었다. 2000년 3월에는 FreeBSD를 후원하던 Walnut Creek CDROM 과 BSD/OS 의 개발사 BSDi가 합병하였다. 이 결과, 원래 CSRG의 BSD 개발자들이었던 BSDi의 개발진이 FreeBSD에 합류하여 BSD/OS과 FreeBSD 의 코드를 결합한 오픈 소스 FreeBSD 개발을 지속하고, BSD/OS는 이를 바탕으로 비공개 드라이버 등 상업용 구성 요소를 추가하여 상업적 기술 지원을 제공하는 상용 제품으로 추진하는 방안이 모색되었다. [1]
역사
FreeBSD는 당시 약 20년의 개발 역사를 가진 BSD를 바탕으로 개발되었다. 이후 BSD의 원래 개발자들이 설립한 BSDi의 BSD/OS와도 교류하며 꾸준히 개발되어 왔으며, 현재 BSD 계열의 가장 대표적인 운영 체제이다. [1]
BSD 역사
처음 BSD 개발은 유닉스 제6판의 추가 기능(add-on)이라는 개념으로 시작되었다. 1977년 캘리포니아 대학교 버클리의 대학원생이었던 빌 조이(Bill Joy)는 미니컴퓨터 PDP-11에 설치된 유닉스에 사용할 파스칼(Pascal) 컴파일러와 라인에디터 Ex를 작성하고, 이것을 중심으로 패키지를 만들어 “Berkeley Software Distribution”이라는 이름으로 배포하였다. 그 이듬해 1978년에는 vi 에디터와 C 셸을 작성하고 이것을 포함한 두 번째 배포본 “Second Berkeley Software Distribution”을 만들었는데, 이것이 2BSD라는 약칭으로 불렸다. 이후 개량이 지속되어 1983년에는 유닉스 버전 7을 기반으로 한 온전한 운영 체제 배포본으로서 2.9BSD로 완성되었다. 한편, 1979년 말에는 새로 도입된 VAX 기종에서 3BSD가 탄생한다. 3BSD는 VAX용 유닉스인 UNIX/32V를 개량하여 가상메모리를 구현한 새로운 커널을 만들고 2BSD를 흡수하여 새로운 운영 체제로 만들어졌다. 이어 1980년에는 3BSD를 개량하여 4BSD가 만들어지고 그 성능을 개선한 4.1BSD가 1981년에 나왔으며, 1983년에는 TCP/IP 구현과 새로운 파일시스템 FFS를 포함한 4.2BSD가 개발되었다. 1986년에 발표된 4.3BSD는 기능 개선보다는 4.2BSD의 성능 향상이 주요 목표였는데, 4.3BSD 배포 후에 기존 VAX 시스템으로부터 Power 6/32로 이전하여 1988년 4.3BSD-Tahoe가 나오면서 코드를 시스템 의존적인 부분과 비의존적인 부분으로 나누는 한편, AT&T의 원본 유닉스 코드와 완전히 결합된 형태가 되었다. 이에 따라, BSD의 사용에서도 AT&T의 라이선스가 필요하게 되는데, AT&T 코드와 분리된 배포 요구에 따라 1989년 AT&T의 유닉스 코드를 제외한 “Networking Release 1 (Net/1)”이 만들어지고 자유롭게 재배포할 수 있는 BSD 라이선스를 적용하였다. 1990년 초에는 4.3BSD-Reno가 나오며 CMU 마크(Mach)의 가상메모리 시스템과 Sun의 NFS이 구현되었다. 마침내 1991년에는 대부분의 AT&T 코드를 BSD 코드로 대체한 “Networking Release 2 (Net/2)”가 나왔는데, 이것은 PC로 옮겨져 386BSD와 BSD/386의 기반이 되었다. 1992년에 발생한 저작권 및 상표권을 둘러싼 USL과 BSD의 법정 공방 끝에, 1994년 4.3BSD-Net/2는 AT&T 라이선스가 필요한 4.4BSD-Encumbered와 완전히 자유로운 4.4BSD-Lite로 나뉘어 다시 배포되었다. 1995년에는 BSD의 최종판인 4.4BSD-Lite Release 2가 나오며, CSRG는 그동안의 모든 연구와 개발을 마무리하고 해산하였다. 이즈음 386BSD는 FreeBSD와 NetBSD로 이어졌고 BSD/386은 BSD/OS이 되어 4.4BSD를 계승한다. [1]
특징
FreeBSD 는 UC 버클리 CSRG의 4.4 BSD를 계승하여 개발되어 왔으며, BSD 전통에 따라 어떠한 제약 조건 없이 누구든지 어느 목적으로도 사용할 수 있는 소프트웨어를 만드는 것을 목표로 한다. 대체로 널리 보급된 x86 PC 기종에서 동작하는 고성능 운영 체제를 추구하며, 수많은 자원봉사자의 노력과 여러 공헌자의 협조로 개발되고 있다. FreeBSD 는 다른 운영 체제와 직접 경쟁하거나 또는 대체하는 것을 목표로 하지 않고, 다만 가장 널리 사용되어 보다 많은 경우에 폭넓은 유용성을 제공하는 것을 추구한다. [1] 일반에 잘 알려지지 않은 BSD 계열이지만, 의외로 꽤 인기있는 OS이다. 게다가 소수지만 매우 활동적인 커뮤니티를 갖고있는지라, 질문에 대한 답변도 웬만한 인기 리눅스 배포판보다 훨씬 빠르게 답변이 달린다. [2]
지원 플랫폼
FreeBSD 는 기본적으로 PC 호환 기종을 중심으로 개발되어 왔으며, 아울러 다른 플랫폼으로 포팅도 진행되어 있다. 2015년 12월 현재까지 배포본의 공식 지원 플랫폼은 다음과 같다.
- FreeBSD 11
- FreeBSD 10
- FreeBSD 9
- FreeBSD 8
- FreeBSD 7
- FreeBSD 6
- FreeBSD 5
- FreeBSD 4
포트 및 패키지
기본 시스템 소프트웨어 이외에 응용 프로그램들은 운영 체제 설치와 별도로 설치 작업이 필요한데, FreeBSD 는 이 과정에서 포트(port) 및 패키지(package)라는 관리 방법을 사용한다. 시스템에 설치된 응용 프로그램은 각각 패키지라는 개념으로 관리된다. 하나의 응용 프로그램이라도 여러 가지 요소로 구성되며 또한 여러 응용 프로그램에서 공통으로 사용되는 요소도 존재하는데, 각각 개별 단위로 구분될 수 있는 구성 요소가 “패키지”가 된다. 이때 프로그램의 올바른 설치 및 동작을 위해 필요한 패키지 상호 간의 관계를 “의존성”이라고 하는데, FreeBSD 의 패키지 관리에서는 이러한 의존성까지 점검하고 있다. 한편, 패키지는 바이너리 파일로 직접 설치될 수도 있지만, 프로그램 소스를 직접 컴파일하여 설치할 수도 있다. 이 경우에는 우선 배포되는 프로그램 소스를 수집하고, 운영 체제 및 하드웨어에 적합하도록 소스 코드의 일부 수정이 필요하게 된다. 이때 FreeBSD 는 “포트”를 사용하여 소스 코드의 수집, 수정과 컴파일 및 설치 과정 모두를 자동화한다. 즉, “포트”는 소스 코드를 통한 응용 프로그램 설치를 위하여, 소스 코드의 배포 위치, 수정해야 할 부분, 컴파일 작업, 설치 과정 등 모든 단계의 정보를 담아 놓은 자동화 파일의 집합이다. 이것을 통하여 FreeBSD 는 직접 관리·배포하는 기본 시스템 소프트웨어 이외에도 사용 가능한 모든 오픈 소스 프로그램에 대하여 일관된 유지 보수가 가능하게 된다. [1]
호환성
FreeBSD 는 다른 유닉스 계열 및 리눅스 운영 체제와 바이너리 호환성을 제공하고 있는데, FreeBSD 7에서는 리눅스 커널 2.6과 바이너리 호환성이 제공된다. 이처럼 호환 계층을 이용하여 바이너리만 배포되는 리눅스 전용 프로그램도 FreeBSD 에서 실행할 수 있는데, 그 대표적인 것으로는 오라클, VMware, 매스매티카(Mathematica), 매트랩(Matlab), Sun 스타오피스(StarSuite), 워드퍼펙트, 모질라 파이어폭스, 어도비 아크로뱃, 리얼플레이어, 스카이프(Skype), 둠 3, 퀘이크 4 등이 있다. 리눅스용 프로그램을 실행할 때에도 FreeBSD 용 프로그램에 비해 두드러진 성능 저하는 없으며, 심지어 같은 프로그램을 리눅스에서 실행시키는 것보다 더 빠른 경우도 있다. 다만, 일부 프로그램은 리눅스 호환 계층에서 실행에 문제가 있을 수 있다. [1]
파생된 운영 체제 및 배포본
FreeBSD에서 파생된 운영 체제 및 배포본은 다음과 같다.
- TrueOS - iXsystems에서 개발하였다. 가정 사용자와 워크스테이션을 주요 대상으로 한다. 예전에는 PC-BSD라는 이름이었다.
- GhostBSD - 그놈 기반 배포판이며 LXDE GUI도 지원한다.
- MidnightBSD - 데스크탑 사용자를 대상으로 한다.
- DesktopBSD - 가정 사용자와 워크스테이션을 주요 대상으로 한다.
- DragonFly BSD
- TrustedBSD, The TrustedBSD Project.
- FreeNAS
- FreeSBIE
- Arch BSD
FreeBSD를 참조한 운영 체제는 다음과 같다.
- 애플 다윈 - Apple Darwin (Mac OS core), Apple,lnc [1]
활용
종류
문제점과 대안
평가와 전망
같이 보기
각주
참고자료
같이보기