BSD
개요
BSD(Berkeley Software Distribution)는 Unix로부터 파생된 운영체제 계열 및 소스 코드 배포판이다. 1977년부터 University of California, Berkeley(UC 버클리)의 컴퓨터 시스템 연구 그룹(CSRG)이 개발을 주도했으며, 현대의 FreeBSD, NetBSD, OpenBSD 등 모든 BSD 계열 운영체제의 원조가 된다.
BSD는 오픈소스 라이선스의 시초 중 하나로, 소스 코드의 자유로운 수정·배포를 허용한 “BSD 라이선스”의 근원이기도 하다.
BSD는 AT&T Unix의 소스 코드에서 시작되었지만, 점차 독자적인 시스템 콜, 네트워크 스택, 파일 시스템, 툴체인 등을 추가하여 완전히 독립적인 Unix 계열 운영체제로 발전했다.
특히 TCP/IP 스택과 UFS (Unix File System)의 구현은 이후 모든 Unix 및 Linux 시스템에 영향을 미쳤다.
역사
- 1977년 – Bill Joy, “1BSD” 배포 (PDP-11용 V6 Unix 확장판)
- 1978년 – “2BSD” 배포, vi 편집기 및 C Shell 추가
- 1980년 – “3BSD” – VAX 아키텍처 지원
- 1983년 – “4.2BSD” – TCP/IP, UFS 도입
- 1986년 – “4.3BSD” – 네트워크 성능 향상, 표준화 시도
- 1991년 – “Net/2 Release” – AT&T 코드 제거, 법적 독립 기반 형성
- 1992년 – 386BSD 등장 – Intel 386용 완전 오픈 BSD
- 1993년 – FreeBSD, NetBSD 분화
- 1996년 – OpenBSD 분기 (보안 중심)
- 2003년 – DragonFly BSD 등장 (FreeBSD 4.x 기반)
기술적 특징
- 완전한 Unix 호환 구조
- C 언어로 작성된 모듈식 커널
- TCP/IP 네트워크 스택 내장
- UFS 파일 시스템 기반
- POSIX 및 SUS 호환
- 전통적인 init 기반 부팅 구조
- 안정성과 보안성 중시 설계
커널 구조
BSD 커널은 전통적인 monolithic kernel 구조를 사용하며, 모듈 확장 기능을 통해 동적 드라이버 로딩도 지원한다.
| 계층 | 구성 요소 | 설명 |
|---|---|---|
| 사용자 계층 | 셸, 유틸리티, 응용 프로그램 | 사용자 인터페이스 |
| 시스템 호출 계층 | open(), fork(), exec() 등 | 커널과 사용자 공간 인터페이스 |
| 커널 계층 | 프로세스, 메모리, 파일, 네트워크, 장치 드라이버 | 핵심 운영체제 로직 |
| 하드웨어 계층 | CPU, 디스크, 네트워크 카드 등 | 하드웨어 접근 계층 |
주요 구성 요소
- 파일 시스템: UFS (BSD Fast File System)
- 네트워크: BSD sockets (표준 TCP/IP 구현)
- 프로세스 모델: fork(), exec(), signals
- 보안 모델: setuid, chroot 등 Unix 기반 권한 시스템
- 패키지 관리: ports, pkgsrc, pkg_add 등 (배포판별 상이)
BSD 계보
BSD 계열은 수십 년에 걸쳐 다양한 파생 프로젝트를 낳았다.
| 시대 | 버전 / 프로젝트 | 주요 특징 |
|---|---|---|
| 1970s | 1BSD, 2BSD | 초기 Unix 확장, vi·C Shell 도입 |
| 1980s | 3BSD, 4BSD, 4.2BSD, 4.3BSD | TCP/IP, UFS, 표준화 시도 |
| 1990s | 4.3BSD Net/2, 386BSD | AT&T 독립, Intel 386 지원 |
| 1993~현재 | FreeBSD, NetBSD, OpenBSD, DragonFly BSD | 현대 BSD 운영체제의 기반 |
BSD 계열 비교
| 배포판 | 주요 목표 | 특징 |
|---|---|---|
| FreeBSD | 실무·서버용 안정성 | 성능, 네트워킹, ZFS 지원 |
| NetBSD | 이식성 (Portability) | 다양한 아키텍처 지원 |
| OpenBSD | 보안 중심 | 코드 감사, 안전한 기본 설정 |
| DragonFly BSD | 커널 병렬화 | HAMMER FS 파일 시스템, SMP 강화 |
BSD 라이선스
BSD는 단순하고 자유로운 오픈소스 라이선스를 채택했다.
- BSD 2-Clause License (Simplified BSD License)
- BSD 3-Clause License (New BSD License)
BSD 라이선스의 핵심 원칙은 다음과 같다.
- 소스 코드 수정·배포 자유
- 저작권 표시 및 면책 조항 유지
- 재배포 제한 없음 (상용 이용 가능)
이 구조는 GPL보다 제한이 적어, macOS, iOS, PlayStation OS, Windows TCP/IP Stack 등 상용 제품에도 광범위하게 사용되었다.
영향
- Unix 철학과 TCP/IP의 실질적 표준화
- Linux와 함께 오픈소스 운동의 기반 형성
- macOS 및 iOS의 커널 (XNU)은 BSD 기반
- Microsoft Windows의 일부 네트워크 코드가 BSD에서 유래
- Android의 네트워크 스택도 BSD 소스 계열
계보 구조
| 상위 계열 | 하위 프로젝트 | 시대 |
|---|---|---|
| Unix (V6/V7) | 1BSD → 2BSD → 3BSD | 1977–1980 |
| 4BSD 계열 | 4.1BSD → 4.2BSD → 4.3BSD → 4.4BSD | 1980–1993 |
| 4.3BSD Net/2 | 386BSD → FreeBSD / NetBSD | 1991–1993 |
| NetBSD | OpenBSD | 1996 |
| FreeBSD 4.x | DragonFly BSD | 2003 |
현대 BSD 생태계
- FreeBSD – 서버, 클라우드, NAS, 라우터
- NetBSD – IoT, 임베디드, 다양한 CPU 지원
- OpenBSD – 방화벽, VPN, 보안 시스템
- DragonFly BSD – 멀티코어 서버, 병렬 컴퓨팅 연구
- macOS / iOS / tvOS / watchOS – BSD 유틸리티 및 커널 코드 통합
같이 보기
참고 문헌
- “The Design and Implementation of the 4.4BSD Operating System”, McKusick et al., Addison-Wesley, 1996
- “A Quarter Century of UNIX”, Peter Salus, 1994
- “A Brief History of BSD”, Marshall Kirk McKusick, USENIX, 1999
- FreeBSD Handbook, “History and Heritage”, FreeBSD Project, 2023
- NetBSD Documentation – history section
- OpenBSD FAQ – history