검수요청.png검수요청.png

비에스디

위키원
이동: 둘러보기, 검색
비에스디(BSD; Berkeley Software Distribution) 로고
비에스디(BSD; Berkeley Software Distribution) 로고와 글자
FreeBSD

비에스디(BSD; Berkeley Software Distribution)은 1977년 미국 버클리 대학교(Berkeley)의 빌 조이(Bill Joy)가 주도하여 개발한 오픈소스 기반의 유닉스(UNIX) 운영체제(OS)이다. 비에스디(BSD)를 기반으로 프리비에스디(FreeBSD), 넷비에스디(NetBSD), 오픈비에스디(OpenBSD) 등 다양한 운영체제가 개발되었다.

역사

BSD 라는 이름은 "Berkeley Software Distribution"을 뜻한다. 이는 Research UNIX® 운영체제의 확장판이었던, University of California, Berkeley의 소스코드 배포판의 이름이다.[1] 허나 BSD 운영체제는 클론이 아니라 AT&T의 Research UNIX® 운영체제의 오픈소스 파생본이다.

처음 BSD 개발은 1977년 캘리포니아 대학교 버클리의 대학원생이었던 빌 조이(Bill Joy)에 의해 개발되고 배포되었다. 빌 조이는 PDP-11에 설치된 유닉스에 사용할 파스칼(Pascal) 컴파일러와 라인에디터 Ex를 작성하고, 이를 패키지로 만들어 "Berkeley Software Distribution" 라는 이름으로 배포한다. 이듬해에 개발한 두 번째 배포본 "Second Bekely Software Distribution"을 배포하는데 이것이 2BSD이다. 이후 지속적인 개발로 1983년에 유닉스 버전 7을 기반으로 한 온전한 운영 체제로 2.9BSD가 완성되었다.

1979년 말에 새로 도입된 VAX 기종에서 3BSD가 탄생한다. 이는 VAX용 유닉스인 UNIX/32V를 개량하여 가상 메모리를 구현한 새로운 커널을 만들고 2BSD를 흡수하여 새로운 운영 체제로 만들어졌다. 이어 1980년에 3BSD를 개량하여 4BSD를 만들었다. 이후 지속적으로 개발을 진행했으나 1995년에 BSD의 최종판인 4.4BSD-Lite Release 2 가 배포된다. 이때 CSRG는 더 이상의 연구와 개발을 멈추고 해산한다. 당시 배포되었던 386BSD는 FreeBSD와 NetBSD로 이어졌고 BSD/386은 BSD/OS이 되어 4.4BSD를 계승한다.

파생 운영 체제

FreeBSD

셋 중 가장 인기가 높다. 완전한 OS이다. 넷플릭스(Netflix)와 왓츠앱(WhatApp) 등 여러 애플리케이션에 활용되고 있다. 네트워크 스택 성능을 높이 평가받고 있으며 현재 많은 곳에 구현되어 있다. 하지만 개발자가 부족한 탓에 보안에 악영향을 끼치고 있다. 버그 보고에 빠른 대응이 미흡하다는 측면이 리눅스에 뒤처져 있다는 평을 듣고 있다.

  • 애플 다윈
  • TrueOS (구 PC-BSD)
  • GhostBSD
  • MidnightBSD
  • DragonFlyBSD
  • TmaxBSD

OpenBSD

보안의 경우 OpenBSD가 가장 좋다.[2] 셋 중 OpenBSD의 코드 기반이 가장 적은 것으로 나타났다. OpenBSD는 코드가 290만 줄이다. FreeBSD와 NetBSD는 각각 900만 줄, 730만 줄이다. 코드 기반의 크기와 버그 수는 정비례한다. 우연적으로 코드 기반의 크기가 적어서 버그 수가 적은 것일 수도 있지만, OpenBSD는 코드 품질도 좋은 것으로 평가된다.

NetBSD

NetBSD는 네트워크 상에서 사용을 목적으로 만들어졌다. NetBSD의 경우 가능한 많은 하드웨어를 지원하는 것에 초점을 맞췄다. 때문에 이식성이 좋다. 일부는 NetBSD는 최신 코드에 기반을 둔 빌드를 운영하는 경우를 제외하면 매우 취약한 상태라고 평가하지만 NetBSD 개발자들은 "우리는 깔끔한 아키텍처로 핵심 시스템을 구현하는 데 목적을 두고 있다. 따라서 전통적으로 강점을 갖고 있는 부분에서 계속 입지를 유지할 수 있을 것으로 판단하고 있다."라고 말하고 있다.[2]

잘 알려지지 않은 이유

BSD는 상대적으로 덜 알려져 있다. 이러한 이유들 중 하나로는 BSD 개발자들은 홍보하는 일이 드물다. 홍보하는 일보다 코드를 개선하는 일에 더 관심이 많기 때문이다. 리눅스 인기의 많은 부분은 언론 또는 리눅스 서비스 제공사 등 프로젝트 외부 요인에 의해서 이루어진다. 그러나 오픈 소스 BSD는 그러한 후원자들이 없기 때문에 알려지지 않을 수밖에 없었다. 또한 BSD 개발자들은 리눅스 개발자들보다 코딩에 있어서 상대적으로 숙련된 경향이 있고, 시스템을 사용자가 편하게 만드는 데에는 상대적으로 관심이 없다. 그렇기 때문에 처음 접하는 초보자들에게 있어서는 BSD보다 리눅스를 좀 더 다루기 쉬워하는 경향이 있다.[1]

1992년 AT&T는 BSD/386의 공급자인 BSDI를 고소했는데, 해당 배포판이 AT&T가 저작권을 가진 코드를 포함한다는 것이 이유였다.[1] 1994년에 해당 소송은 합의하는 것으로 끝났지만, 그 소송의 영향력은 끈질기게 BSDI를 괴롭혔다. 가장 큰 이유는 적은 홍보와 초보자들이 다루기에는 리눅스가 더 쉽다는 점이 결정적인 요인이었다.

BSD의 소유

BSD는 개인 또는 회사에 의해 소유되고 있지 않다. 전 세계의 헌신적인 기술자들로 이루어진 커뮤니티에 의해서 개발, 배포되고 있다.

어떻게 업데이트되는가?

위에 말했다시피 전세계의 기술자들에 의해 다뤄지고 있다.

  • 기술자들은 코드 또는 문서를 작성한다. 이들이 소스 트리에 직접 코드를 추가하는 것은 허용되지 않고, 코드를 포함시키기 위해서는 커미터로 알려진, 등록된 개발자들에 의해 검토 받아야 한다.
  • 커미터들은 소스 트리에 직접 쓰기 권한을 가진 개발자이다. 그들은 본인의 능력을 충분히 보여주어야 커미터가 될 수 있다. 모든 커미터들은 각각의 커밋에 대한 메일을 받게 되므로, 비밀리에 커밋 하는 것은 불가능하다.
  • 각각 프로젝트를 관리하는 코어 팀을 가지고 있다. 프로젝트를 진행하면서 코어 팀이 만들어진다. 이들은 해당 프로젝트의 진행 방향에 있어 큰 영향력을 가지고 있다.

리눅스와의 차이

  • 한 사람이 통제하지 않는다.
  • 중앙 저장소는 하나인데, 전체 운영체제의 소스를 이전 버전을 포함하여 모두 얻을 수 있는 통합 저장소이다.

BSD 라이선스와 GNU Public 라이선스의 차이

리눅스의 경우 GNU General Public License(GPL)에 따라 배포된다. GPL의 파생물은 사용자가 소스 코드를 요청할 경우 반드시 제공해야 한다. BSD 라이선스의 경우에는 제약사항이 적다. BSD 라이선스는 바이너리만 배포하는 것이 허용된다. 임베디드 애플리케이션을 개발할 경우 매력을 느낄 수 있는 선택이라고 볼 수 있다.

버전

VAX 버전

  • 4BSD
  • 4.1BSD
  • 4.2BSD

4.3BSD

  • 4.3BSD는 이전 버전들과 달리 TCP/IP 구현은 BBN의 공식 구현과 상당히 다름.
  • 4.3BSD-Reno는 4.4BSD의 초기 개발 동안의 중간 릴리즈

4.4BSD 및 파생

  • 4.4BSD-Lite (AT&T 소스 미포함)
  • 4.4BSD-Encumbered (AT&T 라이선스에만 적용)

활용

리눅스와 BSD 중 어떤 것을 사용해야 하는지는 상당히 복잡한 질문이다. 현재 오픈 소스 운영체제를 사용하고 있고 만족하고 있다면 굳이 바꿀 필요는 없을 것이다. BSD 시스템이 리눅스보다 성능이 높은 것은 사실이지만 항상 그런 것은 아니다. 물론 일부 경우에 리눅스가 더 나은 성능을 발휘하는 경우도 있다. 리눅스보다 BSD가 성숙한 코드 베이스를 가진 덕분에 안전성은 더 좋은 것으로 알려져 있다. 위에서도 언급했듯이 임베디드 애플리케이션을 개발할 경우에는 GPL보다 BSD 라이선스가 더 매력적인 선택으로 보일 수 있다. 또한 리눅스는 BSD 바이너리를 실행하지 못하지만, BSD의 경우는 리눅스 대부분의 바이너리를 실행할 수 있다. 그렇기 때문에 다른 시스템에서 BSD로 마이그레이션하는 것은 리눅스로 하는 것보다 수월할 수 있다.[1]

BSD의 평가와 미래

2017년 12월 말 독일 라이프치히에서 열린 34c3(34회 카오스 통신 대회)에서 IO 액티브의 침입 테스트 책임자 일리야 본 스프룬델은 오픈소스인 유닉스 BSD은 코드를 주시하는 사람들이 부족하고, 이로 인해 보안에 악영향이 초래되고 있다고 지적했다.[2] 본 스프룬델은 FreeBSD와 OpenBSD, NetBSD에서 각각 30개, 25개, 60개씩 커널 버그를 찾을 수 있었다. 비교적 해결이 쉬운 버그들이었다. 그는 버그를 찾은 즉시 버그에 대한 정보를 제공했지만 6개월 지나도 패치되지 않은 버그들이 많았다. 리눅스 커널의 경우에는 보안 취약점이 아주 빠르게 발견, 패치된다. 그러나 BSD의 경우에는 오래된 버그도 남아있는 경우가 많다.

이는 BSD의 인기에 따른 것으로 볼 수 있다. 코드를 보고 있는 이가 많을 경우 버그는 빠르게 발견되고 패치된다. 개발자가 많아야 사용자는 더 빠르게 새로운 보안 기능을 얻을 수 있다. BSD는 상대적으로 알려져 있지 않다. 이는 앞으로도 리눅스에 계속 밀릴 것이며 안전하고 효율적인 운영체제로 남는 것에 큰 영향을 끼칠 수 있는 문제이다.

성능 면에서 리눅스보다 BSD 시스템이 더욱 뛰어난 것은 사실이다. 또한 임베디드 시스템과 제품의 개발자에게 있어서는 코드 라이선스가 중요하기 때문에 BSD 시스템은 매우 매력적인 선택이라는 평가를 지속적으로 받고 있다. 결국 문제점은 개발자가 부족하는 것이다. 이를 보완할 수 있다면 BSD 시스템은 리눅스를 따라갈 수 있다는 평을 받고 있다.[2]

각주

  1. 1.0 1.1 1.2 1.3 Greg Lehey, 〈BSD에 대한 설명〉,《FreeBSD》, 2016-01-16
  2. 2.0 2.1 2.2 2.3 J.M. Porup , 〈"유닉스 BSD는 죽어가는가"…패치 속도로 파악한 BSD의 미래〉, 《IT월드》, 2018-01-31

참고 자료

같이 보기


  검수요청.png검수요청.png 이 비에스디 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.