[홈서버 구축기] 어떤 BSD를 선택할까?
참고
BSD (Berkeley Software Distribution)는 미국의 UC 버클리 대학 (University of California, Berkeley)의 CSRG (컴퓨터 연구 그룹 Computer System Research Group) 에서 개발한 OS에 기반한 UNIX OS를 의미한다. (wikipedia 참고)
CSRG에서 개발한 BSD UNIX의 최종 버전이 4.4 BSD Lite2 (1995년)이고 이 코드에 기반하여 별도로 개발이 진행된 게 FreeBSD, NetBSD, OpenBSD 등이고 최근에는 TrueOS, DragonFlyBSD 등도 발전하고 있다.
Apple의 MacOS, iOS, tvOS, watchOS 도 BSD 기반의 UNIX라고 말할 수 있다. (참고 링크)Apple은 2000년에 Darwin이라는 open source OS를 배포했고 이는 MacOS, iOS, tvOS, watchOS 등에서 쓰이는 kernel과 명령 기반의 user land 까지 포함되어있는 OS이고 현재도 계속 업그레이드 되며 지속적으로 공개되고 있다. (macOS 시에라, iOS 10.1에 포함된 Darwin은 16.1.0 버전이다.)
MacOS 등은 open source Darwin + apple의 상용 framework 의 집합체라 할 수 있다.
각 BSD는 추구하는바가 서로 다르고 상호 보완하면서 자신의 길을 가고 있다. (이것도 참 재미있다.)
FreeBSD: 고성능이고 안정적인 범용적인 OS (링크)
OpenBSD: Maximum Security (#1 most secure OS)
NetBSD: Maximum Portability (highly portable)
TrueOS: Cutting-Edge FreeBSD (FreeBSD의 안정성 위에 사용자 편의까지…) (링크)
Dragonfly BSD: Maximum Scalability
이 외에도 BSD 기반 OS는 참 많고, 다 나름의 존재이유(?)가 있다.
Debian GNU/kFreeBSD: FreeBSD kernel + Debian Userland 로 BSD와 Debian의 Hybrid로 구성된다.
이렇게 다양한 BSD가 있는데, 어떤 BSD를 골라야할까…?
목적하는 바에 따라 선택은 다양할 수 있고, 사실 무엇을 골라도 큰 문제는 없으나 가장 인기있는 BSD는 FreeBSD라는 통계가 있다.
여기 홈서버는 처음에는 TrueOS (Brand명이 기존 PCBSD에서 변경되었다.)를 설치했고 운영했었다.
이유는 처음에는 서버용 뿐만이 아닌 Desktop용으로도 쓸 계획이 있었고, 당시에 FreeBSD에서는 ZFS가 미적용이었는데 TrueOS에서는 기본 filesystem으로 적용되어있었다.
TrueOS(PCBSD)는 위에 쓴 것처럼 FreeBSD의 견고함 위에 사용자 편의까지 추구하는 OS로 어찌보면 사용자 편의를 많이 강조하며 눈부시게 발전하고 있는 다른 리눅스 배포판(ex: Debian, Ubuntu, Redhat, CentOS, Mint, Gentoo 등)과 비슷한 면이 있다. 즉, 편하게 사용할려면 TrueOS가 가장 맞을지도 모르겠다.
기존에 TrueOS로 4년 이상 잘 운영하다가 이번에 나의 실수로 시스템을 엉망으로 만들고 나서 새로이 FreeBSD 11.0 최신버전을 설치했다.
FreeBSD를 선택한 주관적인 이유는
- 응용된 OS가 아닌 Core OS를 기반으로 스스로 꾸미고 싶었다.
- 11.0 최신 버전을 적용하고 싶었다.
- BSD중에 가장 성능이 좋은 게 FreeBSD라고 생각한다.
- 가장 익숙한게 FreeBSD이다.
등이 있다.
BSD와 Linux의 차이라면 BSD는 Kernel + Userland까지 포함한 전체 OS이고, Linux는 Kernel만을 의미한다. Linux배포판이라고 하여 Kernel + Userland를 배포판 나름대로 구성한 것을 광의적으로 Linux라고도 하지만…
Linux도 좋지만 배포판별로 다른 구성이 익숙해지지 않는다.
FreeBSD는 Core System영역과 3rd-party 영역을 엄밀하게 구분한다.
예를 들어 /etc 는 system 설정을 담는 디렉토리이고, /usr/local/etc 는 3rd-party 관련 설정을 담는 디렉토리이다.
처음에 OS를 설치하고 /usr/local 을 보면 아무것도 들어있지 않다.
극단적으로 /usr/local 안에 있는 것을 그냥 임의로 지워도 FreeBSD Core System에는 전혀 영향이 없다는 것이다.
이는 하나의 예일텐데 이런 일관된 기준과 구분이 내게는 마음이 들었다.
도메인도 구입했고, 2016년 가을에 배포된 FreeBSD 11.0 최신 릴리즈도 따끈하게 설치했으니 이제 서버답게 Network 설정을 해보자.
(FreeBSD 상세 설치 방법은 FreeBSD Handbook을 보면 잘 설명이 되어있다. 더 이상 간단할 수 없을 정도로 쉽고 명확하다.)
To be continued…