(+)분류 : 가져온 문서/넥스32 위키
FreeBSD | |
![]() | |
기능 | 운영체제 |
개발 | The FreeBSD Project |
발매 | |
가격 | 자유 |
저작권 | BSD |
출시 | 1993년 11월 1일 |
운영상태 | 운영중 |
커널 형식 | 모노리딕 커널 |
기반 언어 | C, Cpp, Perl |
지원 CPU | x86, x86-64, SPARC, SPARC64, IA-64, NEC PC98, PowerPC, ARM, MIPS |
주소 | www.freebsd.org |
목차
1. 개요
2. 상세
3. 라이선스
4. 포트 콜렉션
5. 호환성모드(Emulator)
6. CLang 도입
7. 관련 조직
7.1. FreeBSD 재단
7.2. 개발자
8. 로고와 마스코트
9. 역사
9.1. 시작
9.2. FreeBSD 1
9.3. FreeBSD 2
9.4. FreeBSD 3
9.5. FreeBSD 4
9.6. FreeBSD 5
9.7. FreeBSD 6
9.8. FreeBSD 7
9.9. FreeBSD 8
9.10. FreeBSD 9
9.11. FreeBSD 10
10. 영상
1. 개요
2. 상세
3. 라이선스
4. 포트 콜렉션
5. 호환성모드(Emulator)
6. CLang 도입
7. 관련 조직
7.1. FreeBSD 재단
7.2. 개발자
8. 로고와 마스코트
9. 역사
9.1. 시작
9.2. FreeBSD 1
9.3. FreeBSD 2
9.4. FreeBSD 3
9.5. FreeBSD 4
9.6. FreeBSD 5
9.7. FreeBSD 6
9.8. FreeBSD 7
9.9. FreeBSD 8
9.10. FreeBSD 9
9.11. FreeBSD 10
10. 영상
1. 개요 ✎ ⊖
FreeBSD는 BSD 계열의 라이센스로 공개되어있는 오픈 소스 운영 체제로, 미국 캘리포니아 대학교 버클리(UC Berkeley) CSRG(Computer Systems Research Group)의 4.4BSD 라이트를 바탕으로 개발되었다. 한국식 발음은 ‘프리비에스디’로 읽으며, 줄여서 ‘프비’등으로 부르는 경우가 많다.
기본적으로 가장 범용적으로 사용되는 하드웨어인 x86 프로세서용을 기준으로 제작하며, 해당 프로세서의 64bit버전인 x86-64 프로젝트를 중심으로 개발을 진행하고 있다. 그러나 다양한 기기에서 사용할 수 있도록 중심 개발 기종 외의 하드웨어로도 이식을 계속해서 진행해 나가고 있다.
일원화되어 개발되다보니 리눅스에 비해서 훨씬 정리된 감각을 보여주며, 포트 콜렉션과 패키지 관리 시스템 등 사용자에게 편리한 시스템이 제공되어 초보 사용자가 사용하기에는 되려 리눅스보다 편하다는 평가를 받기도 한다.
기본적으로 가장 범용적으로 사용되는 하드웨어인 x86 프로세서용을 기준으로 제작하며, 해당 프로세서의 64bit버전인 x86-64 프로젝트를 중심으로 개발을 진행하고 있다. 그러나 다양한 기기에서 사용할 수 있도록 중심 개발 기종 외의 하드웨어로도 이식을 계속해서 진행해 나가고 있다.
일원화되어 개발되다보니 리눅스에 비해서 훨씬 정리된 감각을 보여주며, 포트 콜렉션과 패키지 관리 시스템 등 사용자에게 편리한 시스템이 제공되어 초보 사용자가 사용하기에는 되려 리눅스보다 편하다는 평가를 받기도 한다.
2. 상세 ✎ ⊖
FreeBSD는 BSD 유닉스로 알려진 캘리포니아 대학교 버클리 CSRG(Computer Systems Research Group)의 4.4BSD-Lite를 이어받아 개발된 오픈 소스 운영 체제이다. 리눅스와 달리 전통적인 유닉스 방식을 따르면서 온전한 운영 체제의 개발을 목표로 하여, 커널을 비롯한 기본적인 운영 체제 구성 요소는 하나의 CVS 트리로 관리되어 통합적으로 개발되며 그밖에 외부 개발 요소를 포함하여 단일한 배포본으로 구성된다.
기본적으로 사용자가 가장 많은 인텔에서 만든 x86 아키텍쳐 기반으로 개발을 진행하고 있으며, 해당 아키텍쳐의 64bit 확장 명령어인 AMD64(인텔은 EM64T)를 64bit 기본 아키텍쳐로 지정해 개발을 해나가고 있다. 그러나 그 외에도 인텔의 아이태니엄 프로세서(IA-64), 썬의 스파크 프로세서, IBM의 Power 프로세서 등의 범용 프로세서를 지원하며, 최근 모바일 분야에서 강화되어가고 있는 ARM의 ARM 프로세서와 사용은 감소 추세이지만 여전히 모바일에서 많이 사용되는 MIPS 프로세서 등을 지원하기 위한 개발이 지원되고 있다.
전형적인 모노리딕 구조의 커널을 가지고 있으며, SMP 방식의 쓰레드 처리 방식을 중심적으로 지원해 나가고 있다. 리눅스처럼 광범위하게 사용되고 있지는 않으나, 서버 분야에서는 대형업체 등의 안정성을 중시하는 업체들이 FreeBSD를 사용하는 경우도 많다. 대표적으로 야후!와 핫메일(1) 등이 FreeBSD를 이용해 서비스를 제공했으며, 국내에서도 드림위즈나 세이클럽 등이 FreeBSD를 사용해서 서비스를 운영했다.
BSD라이센스로 소프트웨어를 공개하고 있기 때문에 소스가 완전 오픈되어있고, 주요 소프트웨어를 인용해 사용하는데 있어서 라이센스 변경이 자유로워 상업적인 기업들의 참여 및 인용도 적지 않게 일어나고 있다. 가장 대표적인 것은 애플 사의 MacOS X의 커널인 Darwin이 FreeBSD의 많은 부분을 참고하였다고 전해지며, 마이크로소프트의 C# 및 CLI 소스를 공유하기로 하는 대상으로 지정되기도 했다.(2)
자체적으로 제공하는 패키지는 전통적 유닉스 패키지 풍을 유지하고 있으나, 이를 재설정한 패키지를 담은 PC-BSD 및 DesktopBSD 등이 나와있어 그래픽모드에서 데스크탑 OS처럼 사용하고자 하는 사람도 쉽게 설치해 사용할 수 있는 기능을 제공하고 있다.
또한 소스 포트 시스템과 자체적인 패키지 관리 시스템으로 간단한 명령어로 프로그램 설치, 삭제 등의 관리를 할 수 있으며, 일원화된 구조로 인해서 설정 파일 및 실행 파일 위치가 일관되어 기본적인 부분에 대한 습득만 하고나면 리눅스에 비해 더 편한 관리가 가능하다. 이 부분은 아래의 포트 콜렉션 문단을 참고하자.
기본적으로 사용자가 가장 많은 인텔에서 만든 x86 아키텍쳐 기반으로 개발을 진행하고 있으며, 해당 아키텍쳐의 64bit 확장 명령어인 AMD64(인텔은 EM64T)를 64bit 기본 아키텍쳐로 지정해 개발을 해나가고 있다. 그러나 그 외에도 인텔의 아이태니엄 프로세서(IA-64), 썬의 스파크 프로세서, IBM의 Power 프로세서 등의 범용 프로세서를 지원하며, 최근 모바일 분야에서 강화되어가고 있는 ARM의 ARM 프로세서와 사용은 감소 추세이지만 여전히 모바일에서 많이 사용되는 MIPS 프로세서 등을 지원하기 위한 개발이 지원되고 있다.
전형적인 모노리딕 구조의 커널을 가지고 있으며, SMP 방식의 쓰레드 처리 방식을 중심적으로 지원해 나가고 있다. 리눅스처럼 광범위하게 사용되고 있지는 않으나, 서버 분야에서는 대형업체 등의 안정성을 중시하는 업체들이 FreeBSD를 사용하는 경우도 많다. 대표적으로 야후!와 핫메일(1) 등이 FreeBSD를 이용해 서비스를 제공했으며, 국내에서도 드림위즈나 세이클럽 등이 FreeBSD를 사용해서 서비스를 운영했다.
BSD라이센스로 소프트웨어를 공개하고 있기 때문에 소스가 완전 오픈되어있고, 주요 소프트웨어를 인용해 사용하는데 있어서 라이센스 변경이 자유로워 상업적인 기업들의 참여 및 인용도 적지 않게 일어나고 있다. 가장 대표적인 것은 애플 사의 MacOS X의 커널인 Darwin이 FreeBSD의 많은 부분을 참고하였다고 전해지며, 마이크로소프트의 C# 및 CLI 소스를 공유하기로 하는 대상으로 지정되기도 했다.(2)
자체적으로 제공하는 패키지는 전통적 유닉스 패키지 풍을 유지하고 있으나, 이를 재설정한 패키지를 담은 PC-BSD 및 DesktopBSD 등이 나와있어 그래픽모드에서 데스크탑 OS처럼 사용하고자 하는 사람도 쉽게 설치해 사용할 수 있는 기능을 제공하고 있다.
또한 소스 포트 시스템과 자체적인 패키지 관리 시스템으로 간단한 명령어로 프로그램 설치, 삭제 등의 관리를 할 수 있으며, 일원화된 구조로 인해서 설정 파일 및 실행 파일 위치가 일관되어 기본적인 부분에 대한 습득만 하고나면 리눅스에 비해 더 편한 관리가 가능하다. 이 부분은 아래의 포트 콜렉션 문단을 참고하자.
3. 라이선스 ✎ ⊖
FreeBSD는 다른 BSD계열 운영 체제와 마찬가지로 기본적으로 BSD 라이선스를 따르고 있으나, 최종 배포본 구성에서는 외부 개발 코드도 사용되므로 전체적으로는 다양한 라이선스가 적용되어 있다.(대표적으로 GCC 등)
거의 대부분을 차지하는 비교적 새로 짜인 기본 코드는 FreeBSD 라이선스가 적용되는데, 이것은 두 조항으로 구성된 BSD 사용 허가서로서 저작권 명시와 보증 부인 및 면책 선언을 유지하는 조건으로 자유로운 수정 및 재배포가 허락된다.
그 밖에 외부 코드는 대부분 BSD 계열 라이선스나 GPL 또는 LGPL을 따르고 있다.
거의 대부분을 차지하는 비교적 새로 짜인 기본 코드는 FreeBSD 라이선스가 적용되는데, 이것은 두 조항으로 구성된 BSD 사용 허가서로서 저작권 명시와 보증 부인 및 면책 선언을 유지하는 조건으로 자유로운 수정 및 재배포가 허락된다.
그 밖에 외부 코드는 대부분 BSD 계열 라이선스나 GPL 또는 LGPL을 따르고 있다.
4. 포트 콜렉션 ✎ ⊖
기본 시스템 소프트웨어 이외에 응용 프로그램들은 운영 체제 설치와 별도로 설치 작업이 필요한데, FreeBSD는 이 과정에 대하여 포트(port) 및 패키지(package)라는 관리 방법을 사용한다. FreeBSD에는 플랫폼 상에서 돌아가는 다양한 어플리케이션 목록을 모아서 관리하고 있다. 이것이 포트 콜렉션으로, FreeBSD를 처음 쓰는 사람은 이 포트(Port)가 통신용어의 포트와 동일한 관계로 혼동을 하는 경우도 있으나, 이 경우에는 이식(포팅, Porting)에서 나온 단어이다. 즉 FreeBSD에서 돌아가도록 이식된 프로그램의 목록이 제공되는 공간인 것이다.
말 그대로 표준관리적인 시스템으로 FreeBSD 상에서 돌아가는 프로그램의 관리를 해주는 규격화된 공간으로, 포트 콜렉션을 설치하면 '/usr/ports’ 디렉토리에 FreeBSD에서 돌아가는 대다수의 프로그램의 목록과 기본 리스트가 설치된다. 이것을 간단하게 whereis 명령어로 패키지 위치를 검색한 다음 해당 위치에서 make install 명령어를 입력하는 것만으로 서버에서 소스 코드를 다운로드하여 컴파일하며, 설치하려는 프로그램의 의존성을 검사해 필요한 프로그램을 함께 설치 해준다.
포트 콜렉션은 인터넷을 통해서나, 디스크 등을 통해서 설치해둘 수 있으며, 소스코드도 마찬가지로 인터넷이나 디스크를 통해 넣을 수 있다.
또한 일일이 컴파일하는 과정이 귀찮거나 호환성 문제로 잘 실행되지 않을때를 위해 서버에서 미리 컴파일 해 둔 패키지파일을 제공하기도 한다. 이 경우는 ‘pkg_add’ 등의 명령어로 간단하게 패키지를 설치하거나 관리할 수 있다. 이 패키지 설치 기능은 소스가 공개되지 않은 프로그램 중 FreeBSD를 지원하는 프로그램의 경우에도 이 기능을 통해 설치할 수 있는 경우가 있다.
또한 사용자는 누구나 자유롭게 FreeBSD로 만들어진 소프트웨어의 포트를 추가하도록 제출할 수 있으며, 포트 콜렉션에 해당 포트가 추가되면 ‘공헌자’ 목록에도 추가되게 된다.
말 그대로 표준관리적인 시스템으로 FreeBSD 상에서 돌아가는 프로그램의 관리를 해주는 규격화된 공간으로, 포트 콜렉션을 설치하면 '/usr/ports’ 디렉토리에 FreeBSD에서 돌아가는 대다수의 프로그램의 목록과 기본 리스트가 설치된다. 이것을 간단하게 whereis 명령어로 패키지 위치를 검색한 다음 해당 위치에서 make install 명령어를 입력하는 것만으로 서버에서 소스 코드를 다운로드하여 컴파일하며, 설치하려는 프로그램의 의존성을 검사해 필요한 프로그램을 함께 설치 해준다.
포트 콜렉션은 인터넷을 통해서나, 디스크 등을 통해서 설치해둘 수 있으며, 소스코드도 마찬가지로 인터넷이나 디스크를 통해 넣을 수 있다.
또한 일일이 컴파일하는 과정이 귀찮거나 호환성 문제로 잘 실행되지 않을때를 위해 서버에서 미리 컴파일 해 둔 패키지파일을 제공하기도 한다. 이 경우는 ‘pkg_add’ 등의 명령어로 간단하게 패키지를 설치하거나 관리할 수 있다. 이 패키지 설치 기능은 소스가 공개되지 않은 프로그램 중 FreeBSD를 지원하는 프로그램의 경우에도 이 기능을 통해 설치할 수 있는 경우가 있다.
또한 사용자는 누구나 자유롭게 FreeBSD로 만들어진 소프트웨어의 포트를 추가하도록 제출할 수 있으며, 포트 콜렉션에 해당 포트가 추가되면 ‘공헌자’ 목록에도 추가되게 된다.
5. 호환성모드(Emulator) ✎ ⊖
FreeBSD는 다른 유닉스 및 리눅스와의 바이너리 호환성 모드를 제공하고 있다. 이 모드를 설치하면 호환 계층을 통해서 타 OS에서 사용되는 바이너리를 읽어들여 FreeBSD상에서 실행시킬 수 있게 된다. 이를 이용하면 FreeBSD에 비해서 널리 사용되고 있는 리눅스용으로 나온 각종 소프트웨어를 사용하는 것이 가능하기 때문에 매우 유용하다.
대표적으로 오라클 데이터베이스, VMware, 매트랩, 플래쉬 플레이어 등의 상용 프로그램이 있으며, 둠3, 퀘이크4 등의 리눅스 게임을 돌리는데도 사용이 가능하다.
단지 포트명이 에뮬레이터라서 오해를 하기 쉬운데, 실제 하드웨어를 에뮬레이팅하는 것은 아니고 실행 레이어를 별도로 만들어 그 위에서 프로그램을 돌리는 것이라서 CPU가 다른 바이너리를 실행한다거나 하는 것은 아니다.
이 호환성 모드의 대단한 점은 리눅스용 프로그램을 설치해서 돌리는데도 불구하고 속도저하가 거의 없거나, 커널의 운영형태 차이 때문인지 리눅스에서 돌릴 때보다 더 높은 속도를 보이는 경우까지 있다고 전해진다.
물론 호환성 모드로 돌리는 것일 뿐이기 때문에 일부는 제대로 실행되지 않는 경우도 있다.
대표적으로 오라클 데이터베이스, VMware, 매트랩, 플래쉬 플레이어 등의 상용 프로그램이 있으며, 둠3, 퀘이크4 등의 리눅스 게임을 돌리는데도 사용이 가능하다.
단지 포트명이 에뮬레이터라서 오해를 하기 쉬운데, 실제 하드웨어를 에뮬레이팅하는 것은 아니고 실행 레이어를 별도로 만들어 그 위에서 프로그램을 돌리는 것이라서 CPU가 다른 바이너리를 실행한다거나 하는 것은 아니다.
이 호환성 모드의 대단한 점은 리눅스용 프로그램을 설치해서 돌리는데도 불구하고 속도저하가 거의 없거나, 커널의 운영형태 차이 때문인지 리눅스에서 돌릴 때보다 더 높은 속도를 보이는 경우까지 있다고 전해진다.
물론 호환성 모드로 돌리는 것일 뿐이기 때문에 일부는 제대로 실행되지 않는 경우도 있다.
6. CLang 도입 ✎ ⊖
FreeBSD는 BSD 기반 OS의 대표격으로서, 오픈소스 OS에서는 리눅스와 어께를 나란히 하는 운영체제이다. 그러나 GPL기반의 GCC를 사용하는 한계가 오래동안 논의가 되었고, 특히 GCC가 4.2.2부터 GPL3로 배포되면서 논란이 되면서 커널 및 코어 개발부분에는 GCC 4.2를 사용해야 했었다.(그러나 포트로는 최신 버전의 GCC를 제공하기 때문에 설치해서 사용하는데 제약은 없었다) 그럼에도 이에 대한 대안이 특별히 없어 계속해서 GCC를 사용해왔다.
그러나 9.0버전부터는 BSD호환 라이센스를 사용하는 LLVM의 CLang의 발전에 발맞추어, 순수 BSD를 주장하는 이들을 위해 컴파일러를 GCC에서 CLang으로 변경해 사용하는 것이 가능해졌다.
10버전에 이르러서는 기본 컴파일러가 CLang으로 변경되어 GCC가 기본설치가 아닌 옵션으로 변경되었다.
그러나 9.0버전부터는 BSD호환 라이센스를 사용하는 LLVM의 CLang의 발전에 발맞추어, 순수 BSD를 주장하는 이들을 위해 컴파일러를 GCC에서 CLang으로 변경해 사용하는 것이 가능해졌다.
10버전에 이르러서는 기본 컴파일러가 CLang으로 변경되어 GCC가 기본설치가 아닌 옵션으로 변경되었다.
7. 관련 조직 ✎ ⊖
7.1. FreeBSD 재단 ✎ ⊖
FreeBSD 프로젝트를 후원하기 위한 비영리 단체로 FreeBSD 재단(The FreeBSD Foundation)이 설립되어 있다. 2000년 말에 설립된 이 단체는 FreeBSD를 위한 각종 모금 활동 등 후원 조직인 동시에 법률 관계, 라이선스, 계약 체결 등에서 FreeBSD 프로젝트의 법적 실체로 활동한다. 재단 설립 이전에는 프로젝트의 초기 멤버인 조다단 허버드와 데이비드 그린맨이 1995년 초에 설립한 ‘FreeBSD, Inc.’가 이러한 역할을 대행하였다.
7.2. 개발자 ✎ ⊖
FreeBSD는 전통적인 BSD 라이선스에 따라 오픈 소스 모델로 개발되고 있다. 개발진은 소스 코드를 직접 수정할 수 있는 커미터(Committer)들과 그 가운데 주요 사안에 대한 최종 의결권이 부여된 코어 팀(Core Team)이 구성되며, 이들을 중심으로 그 밖의 공헌자(Contributor)들이 참여하는 형태로 되어 있다. FreeBSD의 개발진에는 과거 BSD 시절부터의 개발자들도 참여하고 있으며, 리눅스 프로젝트에 비해 연령대가 높은 편이다.
이 가운데 한국인 커미터는 2008년 3월 현재 5명이다.
이 가운데 한국인 커미터는 2008년 3월 현재 5명이다.
- 최준호: ports
- 편용헌: src
- 장혜식: ports
- 김정욱: src
- 정원교: src
8. 로고와 마스코트 ✎ ⊖
초기 FreeBSD 로고는 ‘Beastie’라는 애칭의 BSD 데몬(BSD Daemon)을 그대로 사용했다. 이름은 BSD와 유사한 발음을 살려 붙인것으로, 처음 공식적으로 이 모습이 드러난 것은 1976년 벨 연구소에서 만든 유닉스 T셔츠에 인쇄된 모습이었다. 현재 BSD 데몬의 저작권은 4.4BSD의 개발자였던 마셜 커크(Marshall Kirk McKusick)가 소유하고 있다. 빨간색 악마의 형상을 딴 이 마스코트는 여러 도안들이 만들어졌으나 가장 널리 알려진 것은 픽사의 애니메이션 토이 스토리의 작가 존 라세터(John Alan Lasseter)의 작품이다.
FreeBSD에 특화된 비스티 도안으로는 호소카와 타츠미(3)의 도안이 사용되다가, 2005년에 새로운 로고를 공모하여 2005년 10월 8일 Anton K. Gural의 디자인이 채택되어 현재도 공식 로고로 사용되고 있다. 예전의 BSD 데몬은 FreeBSD의 마스코트로 남게 되었다.
FreeBSD에 특화된 비스티 도안으로는 호소카와 타츠미(3)의 도안이 사용되다가, 2005년에 새로운 로고를 공모하여 2005년 10월 8일 Anton K. Gural의 디자인이 채택되어 현재도 공식 로고로 사용되고 있다. 예전의 BSD 데몬은 FreeBSD의 마스코트로 남게 되었다.
9. 역사 ✎ ⊖
FreeBSD가 처음 등장하기 앞서 약 20년의 개발 역사를 가진 BSD를 바탕으로 개발되었다. 이 과정에서 복잡한 법적인 과정을 거치긴 했으나, 현재는 그런 문제로부터 한걸음 벗어나 자신들의 길을 잘 걸어가고 있다. 당시 BSD의 원 개발자들이 설립한 BSDi의 BSD/OS와도 교류하며 꾸준히 개발되어 왔으며, 현재 BSD 계열의 가장 대표적인 운영 체제이다.
9.1. 시작 ✎ ⊖
처음 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를 계승한다.
한편, 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를 계승한다.
9.2. FreeBSD 1 ✎ ⊖
FreeBSD의 개발은 1993년부터 4.3BSD Net/2에 기반한 386BSD의 소스 코드를 이용하여 시작되었다. 처음은 1992년 Jordan K. Hubbard, Nate Williams, Rod Grimes 세 사람이 시작한 “Unofficial 386BSD Patchkit”로, 원래는 386BSD를 보완하는 개념이었으나 386BSD의 개발이 줄곧 늦어지고 작업 결과가 반영되지 않으면서, 이 작업은 결국 별도의 BSD 운영 체제 개발로 전환되어 David Greenman의 명명에 따라 ‘FreeBSD’라는 이름으로 독자적인 작업이 되었고, 1993년 11월 FreeBSD 1.0이 발표되었다.
이 프로젝트는 Walnut Creek사의 후원으로 CD-ROM으로 배포된 최초의 FreeBSD는 4.3BSD를 바탕으로 386BSD의 작업과 GNU 결과물을 포함하여 구성되었는데, 곧이어 1994년 5월에 버전 1.1이 발표되었고 1994년 7월 버전 1.1.5.1로 완료된다. 그런데 이 무렵 4.3BSD Net/2를 둘러싸고 AT&T Unix의 소유자였던 USL과 BSD Unix의 개발자 캘리포니아 대학교 버클리 사이에 발생한 저작권 분쟁의 여파로 4.3BSD Net/2에 기반한 기존의 386BSD 소스 코드는 사용을 중단해야 했고, 이에 따라 FreeBSD 2.0은 자유로운 배포를 보장받은 4.4BSD-Lite를 바탕으로 다시 작성되었다.
이 프로젝트는 Walnut Creek사의 후원으로 CD-ROM으로 배포된 최초의 FreeBSD는 4.3BSD를 바탕으로 386BSD의 작업과 GNU 결과물을 포함하여 구성되었는데, 곧이어 1994년 5월에 버전 1.1이 발표되었고 1994년 7월 버전 1.1.5.1로 완료된다. 그런데 이 무렵 4.3BSD Net/2를 둘러싸고 AT&T Unix의 소유자였던 USL과 BSD Unix의 개발자 캘리포니아 대학교 버클리 사이에 발생한 저작권 분쟁의 여파로 4.3BSD Net/2에 기반한 기존의 386BSD 소스 코드는 사용을 중단해야 했고, 이에 따라 FreeBSD 2.0은 자유로운 배포를 보장받은 4.4BSD-Lite를 바탕으로 다시 작성되었다.
9.3. FreeBSD 2 ✎ ⊖
1995년 1월에 발표된 FreeBSD 2.0은 4.4BSD를 기반으로 전면 재작성되어 1995년 6월 버전 2.0.5을 거쳐 1998년 11월 버전 2.1.7.1과 버전 2.2.8로 완료되었다. 가장 큰 향상은 CMU의 Mach 가상 메모리 시스템을 개선하여 과부하 상태에서도 안정적인 성능을 유지하도록 최적화되었고, 포트(port) 시스템이 도입되어 서드파티 소프트웨어의 설치 및 관리의 편의를 제공하게 발전했다.
9.4. FreeBSD 3 ✎ ⊖
FreeBSD 3.0은 1998년 10월에 발표되어 2000년 7월 버전 3.5.1로 마무리되었는데, ELF 바이너리 포맷으로 전환, 대칭형 다중 프로세서(SMP) 시스템 지원, 새로운 64비트 플랫폼 DEC Alpha 지원 등의 변화가 있었다. 비록 확실한 기능상의 이점도 성능 향상도 가져오지 못했다는 비판도 있었으나, 1995년 6월에 완성된 BSD Unix의 최종 결과물 4.4BSD-Lite2까지 흡수하며 이전의 여러 개발 성과들을 총괄하여, 향후 FreeBSD 4에서의 도약을 위한 토대가 되었다.
9.5. FreeBSD 4 ✎ ⊖
2000년 3월에는 FreeBSD를 후원하던 Walnut Creek CDROM과 BSD/OS의 개발사 BSDi가 합병하였다. 이 결과, 원래 CSRG의 BSD 개발자들이었던 BSDi의 개발진이 FreeBSD에 합류하여 BSD/OS와 FreeBSD의 코드를 통합한 오픈 소스 FreeBSD 개발을 지속하고, BSD/OS는 이를 바탕으로 비공개 드라이버 등 상업용 구성 요소를 추가하고 상업적 기술 지원을 제공하는 상용 제품으로 추진하는 방안이 모색되었다.
FreeBSD 4.0은 2000년 3월에 발표되어 2005년 1월 최종판 4.11로 완료되었다. FreeBSD 4에서는 가상메모리 성능이 향상되고, SVR4 계열 유닉스에 대한 에뮬레이션이 추가되었으며, ATA/ATAPI 통합 드라이버가 도입되었다. 4.1판부터는 기존의 i386 배포본과 더불어 alpha 플랫폼 배포본이 공식 배포되었다.
FreeBSD 4.0은 2000년 3월에 발표되어 2005년 1월 최종판 4.11로 완료되었다. FreeBSD 4에서는 가상메모리 성능이 향상되고, SVR4 계열 유닉스에 대한 에뮬레이션이 추가되었으며, ATA/ATAPI 통합 드라이버가 도입되었다. 4.1판부터는 기존의 i386 배포본과 더불어 alpha 플랫폼 배포본이 공식 배포되었다.
9.6. FreeBSD 5 ✎ ⊖
당초 FreeBSD 5와 관련해서 BSD/OS와 완전한 소스 코드 통합이 간혹 언급되기도 하였으나, 실제 실현되지는 않았다. 다만 일부 코드의 공유가 있었고, 특히 BSD/OS의 SMPng이 도입되었다. 멀티 코어 프로세서가 본격적으로 보급되는 시기와 맞물려 장기적으로 매우 중요한 프로젝트였다.
FreeBSD 5에서는 많은 구조적 변화와 함께 안정성과 성능이 크게 향상되고 새로운 기능이 추가되었으며, 보다 많은 플랫폼에 이식되었다.
FreeBSD 5에서는 많은 구조적 변화와 함께 안정성과 성능이 크게 향상되고 새로운 기능이 추가되었으며, 보다 많은 플랫폼에 이식되었다.
9.7. FreeBSD 6 ✎ ⊖
FreeBSD 6은 2005년 6.0을 시작으로 2008년 1월 18일 6.3판까지 발표되었다. 이 시기에는 SMP와 스레드 최적화에 관한 작업이 진행되었고, 802.11의 추가적인 기능 개선, 보안 이벤트 감사(TrustedBSD 프로젝트에 의해 작성), 네트워크 스택 성능의 현저한 개선, 완전한 선점형 커널 그리고 하드웨어 성능 카운터(HWPMC)의 지원 등도 진행되었다.
FreeBSD 6에서 일차적인 개선점으로는 가상파일시스템(Virtual File System)에서 Giant lock의 제거, 1:1 스레딩을 통한 libthr의 부가적인 성능 개선 그리고 OpenBSM이라고 불리는 기초 보안 모듈(BSM, Basic Security Module)의 구현이다. OpenBSM은 애플의 오픈 소스 다윈의 구현을 기반으로 하였으며 TrustedBSD 프로젝트에 의해 작성되어 BSD 라이선스로 배포되었다.
FreeBSD 6에서 일차적인 개선점으로는 가상파일시스템(Virtual File System)에서 Giant lock의 제거, 1:1 스레딩을 통한 libthr의 부가적인 성능 개선 그리고 OpenBSM이라고 불리는 기초 보안 모듈(BSM, Basic Security Module)의 구현이다. OpenBSM은 애플의 오픈 소스 다윈의 구현을 기반으로 하였으며 TrustedBSD 프로젝트에 의해 작성되어 BSD 라이선스로 배포되었다.
9.8. FreeBSD 7 ✎ ⊖
FreeBSD 7은 2008년 2월 27일에 7.0이 발표되었으며 특징은 다음과 같다.
- SMP 성능 향상
- ULE 스케쥴러 개선 (7.1부터 기본 설정으로 전환)
- XFS 파일 시스템 지원 (읽기 전용)
- ZFS 파일 시스템 지원 (실험적)
- SCTP 지원 (실험적)
- UFS(FreeBSD의 파일 시스템)의 저널링 지원
- GCC 4.2.1, X.Org 7.3, KDE 3.5.8, GNOME 2.20.2. BIND 9.4.2.
9.9. FreeBSD 8 ✎ ⊖
FreeBSD 8은 2009년 11월 26일에 8.0이 발표되었다.
- 페이징 확장, XEN, DomU 기능을 지원
- 네트워크 스택 가상화와 버퍼 오버플로우 방지 기술을 도입으로 안정성 향상
- TTY 레이어를 재작성하고 NFS 서버/클라이언트 코드가 완전 NFSv4로 재작성
- ZFS에 대한 지원 강화, USB 3.0과 신규 xHCI 기능에대한 지원이 추가되었다.
- IGMPv3를 포함한 멀티캐스트 기능과 인텔 CPU의 AES 가속 기능과 장치에 접근하는 mmap() 확장 기능이 강화
- 64bit의 엔비디아 그래픽카드 네이티브 드라이버가 추가
9.10. FreeBSD 9 ✎ ⊖
FreeBSD 9.0 은 2012년 1월 12일에 발표되었다. 9.2 버전까지 업그레이드되었고, 이후 10버전으로 업그레이드 되었다.
9.0부터 커널과 베이스 프로그램 빌드를 CLang을 이용할 수 있게 변경되었으나, 아직 호환성의 문제로 인해 기본 설정은 여전히 GCC 4.2로 지정되어있다.
- 새로운 인스톨러(bsdinstall)가 포함되어 기초지식이 적은 사람도 편리하고 가벼운 설치를 지원하게 되었다.
- UFS 저널링과 ZFSv28 지원, 유저랜드 DTrace 기능 지원, NFSv4와 호환되는 신규 NFS 서버/클라이언트 탑재
- USB 3.0 지원성 향상과
- 플레이스테이션3의 ‘기타 OS설치’에 맞춘 버전 공식 포팅
- LLVM 3.0 탑재 및 CLang 컴파일러 공식 지원
9.0부터 커널과 베이스 프로그램 빌드를 CLang을 이용할 수 있게 변경되었으나, 아직 호환성의 문제로 인해 기본 설정은 여전히 GCC 4.2로 지정되어있다.
9.11. FreeBSD 10 ✎ ⊖
FreeBSD 10.0은 2014년 1월 20일에 발표되었고, 기능개선 및 패치가 이뤄진 10.1 버전이 2014년 11월 6일 발표되었다.
- 기본 컴파일러가 GCC에서 Clang으로 변경되었다.
- DNS 서버 및 캐쉬 기능을 위해 언바운드(Unbound)가 기본 프로그램으로 내장되었다. 대신 바인드(BIND)가 기본 프로그램에서 제거되었다.
- make 기능이 NetBSD 프로젝트에서 만든 bmake로 교체되었다. (make는 GPL, bmake는 BSD라이센스를 사용한다)
- pkg 기능이 기본 패키지 매니저로 향상되었다. 대신 분산된 pkg_add, pkg_delete 등의 오래된 툴들이 제거되었다.
- 가상화 기능인 bhyve, virtio 지원과 더불어서 MS의 Hyper-V의 병렬가상화 드라이버 제공 대상이 되었다.
- ZFS 형식에서 SSD에서 TRIM 기능을 지원하게 되었고, 고속의 LZ4 압축을 지원하게 되었다.
- 콘솔 드라이버 개선과 bhyve 하이퍼바이저 지원 추가.
10. 영상 ✎ ⊖
(1) 핫메일은 현재 윈도우 서버로 변경 되었음.
(2)라고 마이크로소프트가 제시를 하긴 했으나, 이건 마소가 리눅스를 견재하기 위한 하나의 견제구 같은 것이라 실제로는 초기에 제공된 소스 이후에는 활발하게 운영되지 않고 있다. 오픈소스 진영에서는 이것 대신 노벨이 밀고 있는 모노 프로젝트가 중심이 되어 운영되고 있다.
(3)http://fromto.cc/hosokawa/gallery/
(2)
(3)