프리비에스디

From The Hidden Wiki
Jump to navigationJump to search

개요

https://assets.devx.com/HotList/26_freebsd.gif https://www.clearchain.com/images/freebsd-devil.jpg?width=250 ~~당신이 리눅스를 버리고 FreeBSD를 써야 할 강력한 이유(후방주의) ~~[* 이 정도까지는 아니지만 FreeBSD 행사에 붉은 악마 쫄쫄이 코스프레한 처자가 가끔 출몰한다]


프리비에스디(FreeBSD)는 리눅스와 같은 Unix-like OS이며 비에스디(BSD)의 일종이다. ~~붉은악마의 OS다 #~~

BSD란 Berkely Software Distribution의 약어로, 버클리 대학에서 유래한 데서 붙여진 이름이다. vi로 유명한 빌 조이(Bill joy)[* 주말에 심심해서 vi를 만들어 버렸다는 흠좀무한 도시전설의 소유자이다. 그러나, 인터뷰 때 그건 아니라고 이야기했다. 솔라리스, ZFS, NFS, Sparc, 자바 등으로 유명한 썬마이크로시스템즈의 공동 창업자이기도 하다. ], 한때 메일 서버 계를 독점하다시피 했던 sendmail로 유명한 에릭 올먼(Eric Allman), 그리고 그의 동성 연인이자 유닉스 파일 시스템 UFS 혹은 FFS로 유명한 마셜 커크 매큐직(Marshall Kirk McKusick)[* 말 그대로 올먼과 매큐직은 게이 커플이다. 그다지 부끄러워하지도 않고, 공공연히 말하고 다닌다. ] 등 프로그래머 계의 슈퍼스타 여럿이 버클리 출신이고, 버클리에 있던 시절 BSD를 위해 해당 프로그램들을 만들었다. 그러나, BSD는 AT&T 와의 라이선스 문제 등 여러 가지 암초에 부딪히며 순항하지 못했고, 후에 4.4BSD-Lite 를 끝으로 NetBSD, FreeBSD, OpenBSD 등으로 갈라지게 된다. 그리고, 초창기 멤버 중 매큐직은 FreeBSD 진영에 합류하여 오늘날까지 계속하고 있다.

문제는 저 몇 년 간의 틈새를 리눅스가 치고 들어와 선점했다는 것인데, 바로 이 몇 년 간의 차이로 인한 선점효과가 오늘날 점유율과 유명세 등에서의 커다란 차이를 보이게 된 원인이 되었다. 윈도우 운영체제에서 볼 수 있듯이, OS에서 선점효과는 막대하다. 일반적인 유저들에게 있어 익숙한 OS를 버리고 새로운 OS 를 처음부터 배운다는 것은 상당한 모험이다. 그 새로운 OS가 기존 OS에 비해 얼마나 많은 것을 제공해 주는지는 둘째 문제이다. 그리고, 이렇게 점유율에서 한번 밀려 버리면 당연히 해당 OS를 개발하려 하는 개발자들의 유입 역시 적어지고, 차이는 점점 벌어지는 것이 일반적이다.~~이렇게 FreeBSD 는 마이너가 되어갔다. 지못미~~ 참고로, "BSD가 조금만 더 일찍 나왔다면 나는 리눅스를 만들지 않았을 것이다."라는 리누스 토르발스의 이야기를 누설(?)한 사람이 바로 매큐직이다. 실제로, 과거엔 BSD가 리눅스에 비해 성능이나 안정성 측면에서 좋은 점수를 많이 받았지만, 아무래도 점유율이 리눅스가 높아 개발자들의 유입도 많고 해서 빠르게 발전한 결과, 현재는 별 차이 없다고 볼 수 있다.

특징

일반에 잘 알려지지 않은 BSD 계열이라 마이너하게 보이지만, 의외로 꽤 인기있는 OS이다. Distrowatch의 Page hit ranking에서도 리눅스 배포판들의 홍수속에 10위권을 오락가락하고 젠투보다 높다. (...)

게다가, 소수지만 매우 활동적인 커뮤니티를 갖고있는지라, 질문에 대한 답변도 웬만한 인기 리눅스 배포판보다 훨씬 빠르게 답변이 달린다.

FreeBSD는 기본 셸로 bash보다 고전~~원시~~적인 csh나 tcsh를 사용한다. 그렇다고 bash를 못 쓰는건 아니고 설치하면 된다(...). csh도 위의 흠좀무한 Bill joy 선생이 만드셨다.[* 그러나, csh는 프로그래밍 습관에 부정적인 영향을 끼칠 수 있다는 주장이 제기되어 대차게 까이는 중이다. ]

FreeBSD가 따르는 BSD 라이선스는 리눅스의 GPL 라이선스보다 "Free"라는 단어를 포괄적으로 해석하여 자유 소프트웨어라면 사용하는 것 자체가 제약 없이 자유여야 한다는 모토이기 때문에, 소스를 가져다가 마음대로 바꿔 소스 공개를 하지 않은 채 상업적으로 이용해도 아무런 제약이 없다. 원 저작자 이름만 표기해 주면 그걸로 땡이다.~~덕분에 기업 사용자들이 좋아한다.~~

FreeBSD가 리눅스와 다른 또 하나의 차이점은 완전한 OS라는 점이다. 리눅스의 경우, 보통 리눅스는 커널만을 의미하고, 이 커널을 가져다가 다른 소프트웨어 및 패키지 매니저를 이용하여 OS를 완성시키는 것은 각 배포판들이 하는 일이다. 반면, FreeBSD는 커널도 개발하면서 동시에 소프트웨어 포팅 및 패키지 매니저 제공까지 모두 FreeBSD Project에서 진행한다. 이는 OpenBSD, NetBSD 등도 마찬가지이다. 덕분에 같은 커널에 같은 패키지를 가져다가 디폴트 세팅과 패키지 매니징 정도로 차별화를 시키는 리눅스와 달리, BSD 쪽은 4.4BSD에 기반했다는 것 정도만 같고, 서로 완전히 다른 OS라 봐도 될 정도로 차이가 심하게 벌어진다. OS 만드는 목적도, FreeBSD가 최신 하드웨어 지원과 퍼포먼스에 중점을 둔다면, OpenBSD 는 보안을 최우선으로 생각하여 개발하며[* 오로지 버그수정만을 전담으로 하는 개발팀이 따로 있으며, 여기에 소속된 사람들은 수십만 줄의 소스코드를 한줄 한줄 엄밀히 검사하는 흠많무한 짓을 아주 당연하게 생각하는데다 많은 경우 같은 코드를 가지고 그 짓을 몇 번씩 반복한다고 한다(!).][* OpenBSD 사이트에 가보면 아주 오랜 기간 동안 remote hole이 발견된 적이 두 번밖에 없다고 자랑한다. 게다가, 크래커들의 공격에 대비한 여러 가지 패치를 해놓았으며, 암호화 소프트웨어도 OS 자체에 여기저기 통합시키는 등 덕후 수준의 보안 시스템을 구축한 OS이다.(미국 기반 OS들의 경우, 법에 의해 암호화 알고리듬을 국외로 빼는 것이 불법이기에 불가능하지만, OpenBSD는 캐나다 기반이므로 상관이 없다.) ], NetBSD는 호환성에 주안점을 두어 개발한다.[* NetBSD는 공식적으로 지원되는 플랫폼만 57개이다. 리눅스 진영에는 젊은 개발자들이 많이 유입되고 그만큼 여러가지 트릭이나 빠르게 신기술을 적용하며 그때그때의 패치위주로 개발되는 경향이 있고, FreeBSD 도 그보다는 덜하지만 그런 경향이 있다면, NetBSD 는 보다 느린 대신 상당히 엄밀한 접근법을 취하는편이다. 또한, 커뮤니티가 작아서 그런지 몰라도 친목질(...)이 좀 있는편. 다만, 생각하는 것처럼 폐쇄적인 친목질은 아니고, 그냥 분위기가 더 부드러운 편. ]

그 외에도 FreeBSD는 위에서 말했다시피, 리눅스에 밀려 버린 상황이기 때문에 소프트웨어 지원이 좀 열악한 측면이 있는데[* 그래도 Ports 개수가 2만 개가 넘는다. ], 이것을 극복하기 위하여 리눅스 에뮬레이션을 도입하였다. nVIDIA 드라이버, 플래시등에 리눅스 에뮬레이션이 사용된다. 기본적으로 둘 다 UNIX-like OS이기 때문에, 에뮬레이션 자체가 그다지 부담이 되지도 않고, 속도 면에서도 앞서거니 뒤서거니 하면서 그냥 같다고 할 수 있다. 그리고, 소스컴파일 방식을 사용하기때문에, 소프트웨어들의 업데이트 속도도 매우 빠르다. 리눅스쪽에서 아치 리눅스정도만 제외하면 FreeBSD 보다 업데이트가 빠른 배포판은 찾아보기 힘들다.[* 다만, 좀 불균형하게 빠르다. 인기 Ports 의 경우 빠르게 업데이트되는 반면, 잘 안쓰이거나 포팅이 쉽지 않은 Ports 의 업데이트속도는 상당히 느린편이다. ]

사실, 소프트웨어 지원이 열악한 것은 조금 다른 측면에서 열악하다 볼 수 있는데, FreeBSD 도 자체적으로 여러가지 시스템 API라든가 사운드 시스템등을 갖고있으며, 질적으로도 나쁘지 않은 경우가 많지만, 오픈소스 진영 소프트웨어 개발자들은 아무래도 오픈소스 OS 하면 리눅스가 전부인 경우가 많아, 그런것을 제대로 이용하게끔 만드는 경우는 드물고, 덕분에 FreeBSD 는 자신들의 OS 에 걸맞는 좋은 것들을 갖고는 있어도 그걸 활용하는 소프트웨어를 찾기가 힘들다.~~마이너의 비애라고나 할까~~

더불어, 리눅스 진영과의 마찰도 좀 있는 편인데, 비유를 하자면, 니맘대로 하세요식의 완전한 자유를 추구하는 BSD 에 비해 GNU 측은 보다 공격적으로 모두를 자유롭게 해야만 한다는 사고방식으로 움직이고 있기때문에, GNU 소프트웨어를 가져다 쓰면서도 자신들에 협조를 안하는 BSD 진영이 밉보일 수 밖에 없다. 그러나, BSD 진영에서는 이것을 리눅시즘(Linuxism)이라며 가볍게 무시한다. 그리고, 리누스 토르발스를 능가하는 유명한 악동[* OpenBSD 의 수장이다. 애초에 NetBSD 초기멤버였는데, 깽판치고 나가서 OpenBSD 를 만들었다. 다만, 고도로 유능한 해커이며, 동시에 보안관련해서 실력이 대단하다고 알려져있다. ] (...) 한 명이 BSD 진영에도 있기 때문에, 과거에는 실제로 메일링 리스트 등에서 종종 충돌도 많았다.~~그런데, 이 악동은 리눅스 진영뿐만이 아니라 같은 BSD 진영과도 좌충우돌이다.~~

구형 GCC 문제

오픈소스 계의 표준 컴파일러라 볼 수 있는 gcc가 4.2 버전 이후로 BSD 라이선스와 호환되지 않게 GPLed 당했기 때문에, 기본 gcc 컴파일러가 지금도 4.2 버전이다. (현재 대부분의 리눅스 배포판은 gcc 4.6 버전으로 컴파일된 바이너리를 제공한다.) 물론, 이것은 베이스 시스템 한정이고, 유저 랜드에서 자유롭게 4.6, 4.7 등 최신 버전을 인스톨하는 것은 가능하다. 다만 인스톨해서 개인적인 용도로 사용하는 것만 지원될 뿐, 그것을 Ports 인스톨하는 디폴트 컴파일러로 쓰는 데 대해서는 공식적으로 지원하지 않는다.[* 비공식적으로 Ports 인스톨하는데 쓰는 거야 문제가 없고, 간단히 하는 방법도 인터넷에 다 나와있으며, 실제로 그렇게 사용하는 사람도 많다. 만약, 특정 Ports 인스톨시 문제가 발생하면 능력이 될경우 Makefile 혹은 소스를 수정하여 문제를 해결할수도 있고, 정 안되면 그것만 gcc 4.2 버전으로 인스톨하는 방식으로 사용할 수도 있다. ]

이러한 컴파일러 문제가 타격이 상당히 컸기 때문에, FreeBSD뿐 아니라 다수의 *BSD 커뮤니티는 현재 다른 컴파일러를 찾고 있고, FreeBSD 쪽에서는 애플이 지원하는 오픈소스 프로젝트인 LLVM/Clang~~이 가장 유력한 후보로 오른 상태이다~~으로 결정되어 광속 교체중이다. 현재 Clang은 FreeBSD 의 베이스 시스템에 들어가 있으며, 베이스 시스템을 Clang을 이용하여 컴파일하는 것도 문제가 없다. 다만, 저 수많은 Ports 중에는 Clang으로 컴파일하면 에러를 뿜는 것들이 아직 다수 존재하기 때문에 현재 gcc 4.2를 제치고 ~~디폴트 컴파일러 자리에 올라서진 못하였다. 물론, 디폴트 컴파일러야 간단히 변경이 가능하지만, 말했듯이 문제가 발생할 여지가 있다~~2014년 1월중에 공개될 10.0 버전에서 Clang이 기본 컴파일러가 되고 GCC는 삭제된다. GCC에서만 작동하는 일부 포트는 GCC를 별도로 설치해야 할 것이다. (GCC도 포트로 존재하니 알아서 필요시 자동으로 설치됨.)

애초에 BSD 커뮤니티에서는, gcc 컴파일러가 수십년간의 최적화로 런타임 속도에서는 강하지만, 기본적인 설계가 그리 깔끔하지 못하다는 점과 컴파일속도가 매우 느리다는점[* 일반적으로 이미 컴파일된 바이너리를 사용하는 리눅스쪽에서는 별로 문제될 것이 없지만, *BSD 처럼 프로그램을 설치할 때나, 업데이트할 때마다 소스코드만 다운받아 사용자가 직접 컴파일하는 경우는 컴파일속도도 매우 중요하다 볼 수 있다.]을 문제삼아 비판하는 경우가 많았기 때문에, 사실 굳이 라이선스 문제가 없었어도 언젠가는 다른 컴파일러를 사용하려 했을 거라는 소리도 있긴 하다.

ZFS

FreeBSD가 제공하는 것들은 여러 가지가 있겠지만, 개중에 눈여겨볼 만한 것은 ZFS[* ZFS는 썬마이크로시스템즈 이 개발했으며, OpenSolaris 와 FreeBSD 로 공식적으로 포팅이 되어 있...는데, 오라클썬마이크로시스템즈를 인수하면서 라이선스 정책을 바꿔 OpenSolaris 가 사실상 죽어 버린 관계로(OpenIndiana 라는 포크가 새로 생기긴 했다.), FreeBSD는 현재 오픈소스계의 ZFS의 마지막 희망이라 할 수 있다. ] 파일 시스템이다. ZFS는 현재 파일 시스템 중의 끝판왕이라고 봐도 될정도로 오만 가지 기능을 매우 간단한 커맨드 몇 줄로 다 지원하며, 데이터 안전성에 있어서도 모든 데이터를 Check-summing 하는 방식으로 기존 파일 시스템이 속수무책이던 Silent corruption 을 방지해주기도 한다. NFS 와 CIFS, iSCSI 를 파일시스템 자체에서 지원하며[* FreeBSD 에서는 NFS 만 지원되고, CIFS, iSCSI 등은 수동으로 설정하여야 한다. ], 많은 메모리와 SSD를 캐시로 달아 주면 하드웨어 레이드 카드에 버금가는 속도를 보여주기도 한다.[* ZFS 등장을 하드웨어 레이드 카드의 죽음으로 비유한 사람도 있었다. ] 다만, 단점은 애초에 엔터프라이즈급 용도로 개발된 파일 시스템이라 메모리를 많이 먹으며, 저정도의 기능을 위해서 속도를 좀 희생한 관계로, 서버에 비해 사양이 낮고 높은 수준의 데이터 안전성 및 여타 기능 따위가 별 필요없는 데스크탑 사용자는 ZFS 의 진가를 알아보기도 힘들다. 이경우, 그냥 리소스는 많이 먹으면서 속도는 느린 애물단지 파일 시스템으로 여길 수도 있다.[* 이에 대해 ZFS 측에서는 데이터 안정성을 포기하면 속도는 이론상 무한히 빨라질 수 있다며 받아친다.(광속으로 카피가 끝났는데 알고보니 에러가 나서 하나도 카피가 안되어있다면 그럴수도 있겠다.) ] 리눅스 쪽에서는 라이선스 문제로 공식적으로 커널에 포함되지 못하고, 비공식적으로만 포팅되어 있다. FreeBSD 에서는 리눅스와는 다르게 ZFS로 부팅도 되기 때문에[* 그러나, 이럴 경우 셸에서 수동으로 인스톨하여야 한다. 인스톨러에 이미 수동으로 인스톨할 때 필요한 파티션 프로그램, ZFS 등이 모두 설치되어 있고 로드도 되어 있기 때문에 그냥 파티션 나누고 부트코드 올려주고 ZFS 파일 시스템 만든 후, 마운트해서(만들 때 자동으로 마운트가 되긴 한다.) 서브볼륨 만들어 주고 베이스 시스템 카피 후 세팅파일 몇 개만 수동으로 잡아주면 된다. 젠투를 깔아 본 경험이 있고, FreeBSD 시스템에 대해 어느 정도 지식이 있는 사용자라면 문제없이 가능할 것이다. ] 사실상, 모든 파일 시스템을 ZFS로 사용이 가능하다. 리눅스쪽에서는 ZFS 의 대항마로 현재 개발중인 Btrfs 를 밀고있는데, 아직 베타단계라 실사용까지는 시간이 꽤 걸릴듯 하며, 완성된다 해도 실사용시 안정성을 입증받기까지는 몇년이 더 소요될것이다. 게다가, 완성된 이후를 가정했을 때의 기능면에서도 ZFS 와 엇비슷한정도이다.[* 그러나, 마이너에 속하는 솔라리스나 FreeBSD 에서만 제대로 지원되는 ZFS 에 비해, Btrfs 는 리눅스 커널의 공식적인, 그리고 전폭적인 지원버프를 받는다는 차이가 있다. ] Btrfs 역시 오라클의 후원으로 개발되는 파일시스템이다.

원시적 OS

좋게 말하면 어떤 면에서는 웬만한 리눅스 배포판들보다 로우 레벨 오퍼레이션의 세팅을 모두 관리자의 손에 맡기는 투명한 운영체제이고, 나쁘게 말하면 편의성이나 자동완성이란 게 뭔지 모르는 원시적(?)인 운영체제인데, 아예 인스톨 시 현재 인스톨하는 것들의 모든 소스 코드를 같이 까는 게 가능하며 그 상태로 그 소스코드를 이리저리 변경해서[* 능력이 된다면 알고리듬을 바꾸거나 하는 식으로 거창하게 할 수도 있지만, 그냥 값만 변경하는 정도의 변경은 굳이 거창하게 유닉스 운영체제 구조의 이해 따위 없어도 할 수 있는 간단한 것들이다. ] 다시 OS 자체를 원하는 옵션 주면서 컴파일해서 사용하는 것도 가능하다. 당연히 커스텀 커널도 지원하는데, ~~지원 하드웨어가 적어서~~ 리눅스보다 훨씬 간단하고 빠르게 끝난다. 젠투에서 커널을 최적화시키려면 보통 이리저리 시행착오를 감안하여 며칠은 잡아야 하는데, FreeBSD는 빠르면 몇 시간이면 끝이다. 방식도 젠투처럼 메뉴 제공도 안해주고 그냥 텍스트 파일 열어서 에디트하고 컴파일하는 게 끝이다. 참고로, 전체를 다시 컴파일하려면 우선 새로운 컴파일러를 컴파일하고, 그 새로운 컴파일러로 커널을 컴파일하고, 컴파일한 커널을 인스톨한 후, 재부팅 후 새로운 컴파일러를 인스톨하는 순서로 하는 것이 일반적이다. 새로운 FreeBSD 버전이 나와 업그레이드할 때도 마찬가지로, 새로운 버전의 소스를 다운받아 위와 같은 방식으로 인스톨한다.

거의 모든 게 사람 손을 거쳐야 하며, 그렇기에 초보자들에게 매우 어려울 것 같지만, 문서화가 오픈소스 OS 중에 가장 잘 되어 있는 OS 중 하나이기 때문에, 실제로 그렇게 어렵지는 않다. 젠투의 경우, 초보자들이 잘 나가다가 USE flags의 벽에 가로막혀 좌절을 느끼는 경우가 많은 데 반해, FreeBSD의 Ports에는 그런 것 자체가 존재하지 않고, 그냥 인스톨하다 보면 옵션 선택 창이 뜨고, 원하는 대로 선택하면 되기 때문에 처음 설치 시에 그런 데 골머리를 썩힐 일은 없다. 그리고, 옵션 선택 창에 이미 표준적으로 사용하는 디폴트 선택이 되어 있는 상태기 때문에 모르면 그냥 Next만 연타하는 윈도우처럼 인스톨해도 된다.

모듈형 디자인

~~port라고 쓰고 귀차니즘 종결자라 읽는다~~ 소프트웨어는 Ports라는 시스템을 이용하는데, 젠투처럼 그냥 소스코드 다운받아 컴파일하는 방식이다. 특징이라면, 처음 인스톨하는 Base system과 새로 인스톨하는 Ports를 매우 엄격하게 구분한다는 것이다. 덕분에 소프트웨어 인스톨/삭제로 개판을 만들어도 베이스 시스템에는 영향이 가지 않는다. 다만, 소프트웨어 인스톨 시 웬만한 리눅스 배포판들은 다 즉시 사용이 가능하게끔 자동으로 세팅을 끝내 주는 반면, FreeBSD는 전혀 안 건드린다. 완전히 수동이다.~~이제 원시적이란 말을 이해하겠는가?~~ 그리고, 깔 때는 의존을 찾아서 다 깔아 주지만, 지울 때는 수동이다. (..) 각각의 의존을 모두 수동으로 찾아서 언인스톨하든가, 그냥 냅두든가 해야 한다.~~들어올 땐 마음대로였어도 나갈 땐 아니란다~~ 다만 10.0에 pkgng라는 패키지 관리툴이 새로 들어가서, 기존에 불가능했거나 아주 어려웠던 여러가지 관리 기능이 추가될 것으로 생각된다.

컴파일시 -DBATCH 옵션을 주면[* 정확히는 # make -DBATCH install 이다. ] 아예 묻지도 않고 디폴트 세팅으로 죄다 인스톨해준다. 참고로, 그냥 인스톨하면 오랜시간 컴파일하다가 중간중간에 간간히 옵션 창이 떠서 멈추기때문에 매우 귀찮아진다. 그렇기때문에, 아예 -DBATCH 옵션으로 인스톨하거나, config-recursive[* # make config-recursive ] 옵션으로 미리 모든 의존 패키지의 옵션을 설정한 뒤에 컴파일해주는 게 훨씬 편리하다. 설정한 컴파일 옵션을 지우는 옵션은 rmconfig[* # make rmconfig ] 이고, 의존 패키지의 모든 컴파일 옵션을 지우는 건 rmconfig-recursive[* # make rmconfig-recursive ] 이다. 다만, 아무 것도 고려하지 않고 의존 패키지이기만 하면 컴파일 옵션을 다 지워 버리므로, 주의해서 사용하여야 한다.

패키지 삭제는 수동이라 했는데, pkg_cutleaves라는 유용한 툴이 있다. 이것은 다른 패키지가 의존하지 않는 모든 패키지를(트리 구조에서 부르는 leaves) 하나씩 찾아서 지울까요 하고 물어보는 툴인데, 어차피 지워야 하는 의존을 모두 기억하고 있지 않으면 안된다는 측면에서는 사실상 별 도움이 안되긴 한다. (..) 결국, 가장 깔끔하고 좋은 방법은 ZFS 의 스냅샷 기능을 이용하여 패키지를 인스톨할 때마다 스냅샷을 찍어 놓고, 지워야 할 상황이 오면 가볍게 복원시키는 게 최상이다. 위에 말했듯이, 베이스시스템과 유저랜드를 칼같이 구분하기 때문에, 몇몇 Ports 만 제외하면 프로그램이 실제 인스톨되는 /usr/local 과 Ports 인스톨 정보가 기록되는 /var/db 만 스냅샷 걸어주면 된다.

참고로 이 Ports 시스템은 Mac OS X에서도 사용할 수 있다. 애플 오픈 소스 프로젝트의 하나로 Ma*****orts#라는 물건이 있으며, OS X에서 기본으로 제공하지 않는 다양한 오픈소스 프로그램들을 손쉽게 받아서 설치할 수 있다. 유사품으로 fink와 Homebrew#가 있다.[* 단 이들은 Ports 시스템은 아니다.] fink는 바이너리만 받아 설치하는 방식. Homebrew는 Ports랑 다르게 ~~설치가 간편하고~~ 기존에 있는 패키지를 최대한 재활용한다. Ma*****orts는 간혹 이미 설치된 프로그램을 다른 버전으로 또 받아서, 디스크 용량을 더 잡아먹고 무엇보다 설치해야 하는 패키지가 많다. 예를 들면 간단한 파이썬 스크립트로 구성된 패키지를 설치하려는데 python27 패키지를 받아서 먼저 의존성을 해결하는 식. 이렇게 쓰면 뭔가 Ma*****orts가 막장 같겠지만, 대신 시스템 패키지와 분리되어 있기 때문에 Homebrew보다 꼬일 염려는 더 적고, 지원하는 패키지가 몇 배 이상 많은 장점이 있다.

위와 같은 엄격한 모듈형 디자인은 부트 매니저에도 적용되는데, FreeBSD의 부트 매니저인 Booteasy는 MBR 512Byte를 엄격하게 지키는 몇 안 되는 부트 매니저이다. 물론, 512Byte로는 죽도 밥도 안 되기 때문에 스테이지를 나눠서 차근차근 부팅 과정을 진행시킨다. 이런 덕분에, 기능 면에서는 grub 등에 비해 떨어질지 몰라도, 안정성 측면에서 FreeBSD 파티션이 개판 돼도 Booteasy를 이용한 다른 파티션으로의 부팅은 문제없이 가능한 장점이 있다.

OS X

[wiki:"애플(기업)" 애플]과의 관계도 눈여겨볼 만한데, FreeBSD는 위에서 말했듯이 완전히 자유로운 라이선스로 배포되는지라, 애플(정확히는 NeXT사)도 소스코드를 가져다가 OS X를 만드는 데 사용하였다. 애플은 소스코드를 가져다 사용하기만 한 것이 아니라, 도로 돌아와 FreeBSD 개발팀에 Mac OS X 소스를 완전히(그러니까 오픈소스 부분만 완전히...) 공개하며 신기술은 알려주기까지 하여 친구를 먹었다.[* 그런데, FreeBSD 원년멤버이자 Ports 시스템 창시자인 코어개발자 한 명을 빼갔다. Ma*****orts 도 이 사람이 애플로 가서 만든 작품이다. ] 이 이후부터 FreeBSD 커뮤니티는 애플쪽과 밀월관계를 구축하였고, 애플도 이를 기점으로 CUPS 라든가 KHTML 을 포크한 [웹키트] 프로젝트등 다양한 오픈소스 프로젝트를 BSD 라이선스로 공개 진행하며 오픈소스 커뮤니티와 진한 관계를 맺어갔다. 그리고, FreeBSD의 버전업 속도도 애플과의 밀월관계 이후로 상당히 가속을 받게 되었다.

GNU/Linux Debian

https://www.debian.org/ports/kfreebsd-gnu/

FreeBSD 커널에 유저랜드는 데비안을 사용하는 프로젝트. 데비안 쓰는 감각으로 거의 사용 가능하다고 하니 관심 있는 사람은 도전해보자.