Skip to main content

Chapter 1. 소개

1.1. 요약

FreeBSD에 관심을 가져주셔서 감사합니다! 다음 장에서는 FreeBSD 프로젝트의 역사, 목표, 개발 모델 등 다양한 측면을 다룹니다.
이 장을 읽고 나면 다음 사항을 알게 될 것입니다:

  • FreeBSD와 다른 컴퓨터 운영체제의 관계.

  • FreeBSD 프로젝트의 역사.

  • FreeBSD 프로젝트의 목표.

  • FreeBSD 오픈 소스 개발 모델의 기본 사항.

  • 그리고 물론 "FreeBSD"라는 이름의 유래.

 

1.2. FreeBSD에 오신 것을 환영합니다!

FreeBSD는 x86(32비트 및 64비트 모두), ARM, AArch64, RISC-V, POWER 및 PowerPC 컴퓨터용 오픈 소스 표준 준수 유닉스 계열 운영체제입니다. 선제적 멀티태스킹, 메모리 보호, 가상 메모리, 다중 사용자 기능, SMP 지원, 다양한 언어와 프레임워크를 위한 모든 오픈 소스 개발 도구, X Window System, KDE 또는 GNOME을 중심으로 한 데스크톱 기능 등 오늘날 당연하게 여겨지는 모든 기능을 제공합니다. 특히 다음과 같은 강점이 있습니다:

  • 자유 오픈 소스 라이선스로, 카피레프트 라이선스 특유의 제한 없이 소스 코드를 자유롭게 수정 및 확장하고 오픈 소스 프로젝트와 폐쇄형 제품 모두에 통합할 수 있는 권한을 부여하며 잠재적인 라이선스 비호환성 문제를 피할 수 있습니다.
  • 강력한 TCP/IP 네트워킹 - FreeBSD는 성능과 확장성이 계속 향상되고 있는 업계 표준 프로토콜을 구현합니다. 따라서 서버와 라우팅/방화벽 역할 모두에 적합하며, 실제로 많은 기업과 공급업체가 이러한 목적으로 사용하고 있습니다.
  • root-on-ZFS, ZFS 부팅 환경, 장애 관리, 관리 위임, jails 지원, FreeBSD 관련 문서, 시스템 설치 관리자 지원 등 완전히 통합된 OpenZFS 지원.
  • 필수 액세스 제어 프레임워크부터 Capsicum 기능 및 샌드박스 메커니즘에 이르는 광범위한 보안 기능.
  • 지원되는 모든 아키텍처를 위한 30,000개 이상의 사전 빌드 패키지와 사용자 지정 패키지를 쉽게 구축할 수 있는 포트 컬렉션.
  • 문서 - 시스템 관리부터 커널 내부까지 다양한 주제를 다루는 핸드북과 여러 저자의 책 외에도 사용자 공간 데몬, 유틸리티, 구성 파일뿐만 아니라 커널 드라이버 API 및 개별 드라이버에 대한 매뉴얼 페이지도 있습니다.
  • 단순하고 일관된 리포지토리 구조 및 빌드 시스템 - FreeBSD는 커널과 사용자 공간의 모든 구성 요소에 대해 단일 리포지토리를 사용합니다. 이는 통합되고 사용자 정의하기 쉬운 빌드 시스템과 잘 짜여진 개발 프로세스와 함께 FreeBSD를 자체 제품의 빌드 인프라와 쉽게 통합할 수 있게 해줍니다.
  • 유닉스 철학에 충실하여 하드코딩된 동작을 가진 모놀리식 "올인원" 데몬 대신 컴포저블성을 선호합니다.
  • Linux와의 바이너리 호환성을 통해 가상화 없이도 많은 Linux 바이너리를 실행할 수 있습니다.

FreeBSD는 캘리포니아 버클리 대학의 컴퓨터 시스템 연구 그룹(CSRG)의 4.4BSD-Lite 릴리스를 기반으로 하며, BSD 시스템 개발의 유서 깊은 전통을 이어가고 있습니다. CSRG가 제공한 훌륭한 작업 외에도, FreeBSD 프로젝트는 실제 부하 상황에서 최대의 성능과 안정성을 위해 기능을 확장하고 시스템을 미세 조정하는 데 수천 시간을 투입했습니다. FreeBSD는 다른 오픈 소스 및 상용 제품과 동등한 수준의 성능과 안정성을 제공하며 다른 곳에서는 사용할 수 없는 최첨단 기능을 제공합니다.

 

1.2.1. FreeBSD는 무엇을 할 수 있나요?

FreeBSD를 활용할 수 있는 애플리케이션은 여러분의 상상력에 의해서만 제한됩니다. 소프트웨어 개발에서 공장 자동화, 재고 관리, 원격 위성 안테나의 방위각 보정에 이르기까지, 상용 UNIX® 제품으로 할 수 있다면 FreeBSD로도 할 수 있을 가능성이 높습니다! 또한 FreeBSD는 전 세계 연구 센터와 대학에서 개발한 수천 개의 고품질 애플리케이션으로부터 상당한 이점을 얻을 수 있으며, 종종 거의 또는 무료로 제공됩니다.

FreeBSD의 소스 코드 자체가 무료로 제공되기 때문에, 대부분의 주요 상용 공급업체의 운영 체제에서는 일반적으로 불가능했던 방식으로 특수 애플리케이션이나 프로젝트를 위해 거의 전례 없는 수준으로 시스템을 사용자 정의할 수도 있습니다. 다음은 현재 사람들이 FreeBSD를 사용하고 있는 애플리케이션의 일부에 불과합니다:

  • 인터넷 서비스 : FreeBSD에 내장된 강력한 TCP/IP 네트워킹은 다음과 같은 다양한 인터넷 서비스를 위한 이상적인 플랫폼입니다:
    • Web servers

    • IPv4와 IPv6 routing

    • Firewalls and NAT ("IP masquerading") gateways

    • FTP servers

    • Email servers

    • Storage servers

    • Virtualization servers

    • 이외 여러가지...

  • 교육: 컴퓨터 과학 또는 관련 공학 분야의 학생인가요? 운영 체제, 컴퓨터 아키텍처 및 네트워킹에 대해 배울 수 있는 가장 좋은 방법은 FreeBSD가 제공할 수 있는 실무 경험보다 더 좋은 방법은 없습니다. 무료로 제공되는 수많은 CAD, 수학 및 그래픽 디자인 패키지는 컴퓨터에 대한 주된 관심이 다른 작업을 수행하는 데 있는 사람들에게도 매우 유용합니다!

  • 연구: 전체 시스템의 소스 코드를 사용할 수 있는 FreeBSD는 운영 체제는 물론 컴퓨터 과학의 다른 분야 연구를 위한 훌륭한 플랫폼입니다. 또한 FreeBSD는 자유롭게 사용할 수 있기 때문에 특별한 라이선스 계약이나 공개 포럼에서 논의할 수 있는 내용에 대한 제한에 대해 걱정할 필요 없이 원격 그룹이 아이디어나 공동 개발을 위해 협업할 수 있습니다.

  • 네트워킹: 새 라우터가 필요하신가요? 네임 서버(DNS)가 필요하신가요? 내부 네트워크에서 사람들을 차단하기 위한 방화벽이 필요하신가요? FreeBSD는 구석에 방치되어 있는 사용하지 않는 PC를 정교한 패킷 필터링 기능을 갖춘 고급 라우터로 쉽게 전환할 수 있습니다.

    임베디드: FreeBSD는 임베디드 시스템을 구축하기 위한 훌륭한 플랫폼입니다. 강력한 네트워크 스택, 최첨단 기능 및 허용되는 BSD 라이선스와 함께 ARM, AArch64 및 PowerPC 플랫폼을 지원하는 FreeBSD는 임베디드 라우터, 방화벽 및 기타 장치를 구축하기 위한 훌륭한 기반이 됩니다.

  • 데스크톱: FreeBSD는 무료로 제공되는 X11 서버와 Wayland 디스플레이 서버를 사용하는 저렴한 데스크톱 솔루션을 위한 훌륭한 선택입니다. FreeBSD는 표준 GNOME 및 KDE 그래픽 사용자 인터페이스를 포함한 많은 오픈 소스 데스크탑 환경 중에서 선택할 수 있습니다. FreeBSD는 중앙 서버에서 "디스크 없이" 부팅할 수도 있으므로 개별 워크스테이션을 더욱 저렴하고 쉽게 관리할 수 있습니다.

  • 소프트웨어 개발: 기본 FreeBSD 시스템에는 완전한 C/C++ 컴파일러 및 디버거 제품군을 포함한 전체 개발 도구 세트가 함께 제공됩니다. 포트 및 패키지 컬렉션을 통해 다른 많은 언어에 대한 지원도 제공됩니다.

FreeBSD는 무료로 다운로드하거나 CD-ROM 또는 DVD로 구할 수 있습니다. FreeBSD를 구하는 방법에 대한 자세한 내용은 FreeBSD 구하기를 참조하세요.

 

1.2.2. 누가 FreeBSD를 사용하나요?

FreeBSD는 웹 서비스 기능으로 잘 알려져 있습니다. FreeBSD를 기반으로 제품과 서비스를 제공하는 회사들의 추천사 목록은 FreeBSD 재단 웹사이트에서 확인할 수 있습니다. 위키피디아에서도 FreeBSD 기반 제품 목록을 관리하고 있습니다.

 

1.3. FreeBSD 프로젝트 소개

다음 섹션에서는 프로젝트의 간략한 연혁, 프로젝트 목표, 개발 모델 등 프로젝트에 대한 몇 가지 배경 정보를 제공합니다.

 

1.3.1. FreeBSD의 간략한 역사

FreeBSD 프로젝트는 1993년 초에 시작되었으며, 부분적으로는 비공식 386BSDPatchkit의 마지막 코디네이터 3명의 아이디어로 시작되었습니다: 네이트 윌리엄스, 로드 그라임스, 조던 허바드.

원래 목표는 패치킷 메커니즘으로 해결할 수 없는 여러 문제를 해결하기 위해 386BSD의 중간 스냅샷을 생성하는 것이었습니다. 이 프로젝트의 초기 작업 제목은 386BSD 0.5 또는 386BSD Interim이었습니다.

386BSD는 빌 졸리츠의 운영체제였는데, 그 당시까지 거의 1년 동안 방치되어 심각한 문제를 겪고 있었습니다. 날이 갈수록 패치킷이 점점 더 불편하게 부풀어 오르자, 그들은 임시 "정리" 스냅샷을 제공하여 Bill을 돕기로 결정했습니다. 이러한 계획은 빌 졸리츠가 갑자기 프로젝트에 대한 제재를 철회하기로 결정하고 대신 무엇을 할 것인지에 대한 명확한 언급 없이 무례하게 중단되었습니다.

세 사람은 빌의 지원이 없어도 목표가 여전히 가치가 있다고 생각했고, 데이비드 그린맨이 만든 "FreeBSD"라는 이름을 채택했습니다. 초기 목표는 현재 시스템 사용자들과 상의한 후 설정되었고, 프로젝트가 현실화될 수 있는 단계에 이르렀다는 것이 분명해지자 조던은 인터넷에 쉽게 접근할 수 없는 많은 불행한 사람들을 위해 FreeBSD의 배포 채널을 개선하기 위해 Walnut Creek CDROM에 연락을 취했습니다. 월넛 크릭 CD롬은 FreeBSD를 CD로 배포하는 아이디어를 지지했을 뿐만 아니라, 프로젝트에 작업할 컴퓨터와 빠른 인터넷 연결까지 제공했습니다. 당시 완전히 알려지지 않은 프로젝트에 대한 Walnut Creek CDROM의 거의 전례 없는 믿음이 없었다면, FreeBSD가 지금처럼 빠르게, 그리고 멀리 퍼져나가지 못했을 것입니다.

최초의 CD-ROM(및 일반 네트워크 전체) 배포는 1993년 12월에 출시된 FreeBSD 1.0이었습니다. 이것은 U.C. 버클리의 4.3BSD-Lite("Net/2") 테이프를 기반으로 했으며, 386BSD와 자유 소프트웨어 재단에서도 많은 구성 요소를 제공했습니다. 첫 번째 제품치고는 꽤 괜찮은 성공을 거두었고, 1994년 5월에는 매우 성공적인 FreeBSD 1.1을 출시했습니다.

이 무렵, 노벨과 UC 버클리가 버클리 Net/2 테이프의 법적 지위에 대한 오랜 소송을 합의하면서 다소 예상치 못한 폭풍우가 몰아쳤습니다. 그 합의의 조건은 U.C. 버클리가 Net/2의 파일 3개가 "방해되는" 코드이며, 얼마 전에 AT&T로부터 인수한 Novel의 자산이므로 제거해야 한다는 것을 인정하는 것이었습니다. 버클리가 그 대가로 얻은 것은 4.4BSD-Lite 릴리스가 마침내 출시될 때 방해받지 않는다고 선언하고 모든 기존 Net/2 사용자에게 전환을 강력히 권장하겠다는 Novell의 '축복'이었습니다. 여기에는 FreeBSD도 포함되었고, 프로젝트는 1994년 7월 말까지 자체 Net/2 기반 제품의 출시를 중단할 수 있는 시간을 부여받았습니다. 그 계약 조건에 따라, 프로젝트는 마감일 전에 마지막 릴리스를 한 번 더 배포할 수 있었는데, 그 릴리스가 바로 FreeBSD 1.1.5.1이었습니다.

그 후 FreeBSD는 완전히 새롭고 다소 불완전한 4.4BSD-Lite 비트 세트에서 말 그대로 재창조하는 고된 작업에 착수했습니다. 시스템 V 공유 메모리 및 세마포어와 관련된 파일 3개만 제거되었지만, 그 외 많은 변경 사항과 버그 수정이 BSD 배포판에 이루어졌기 때문에 모든 FreeBSD 개발 사항을 4.4BSD-Lite에 통합하는 것은 엄청난 작업이었습니다. 프로젝트는 1994년 11월까지 이 전환 작업을 진행했고, 12월에 FreeBSD 2.0을 세상에 공개했습니다. 이 릴리스는 여전히 가장자리가 약간 거칠긴 했지만 큰 성공을 거두었고, 1995년 6월에 더 강력하고 설치하기 쉬운 FreeBSD 2.0.5 릴리스가 이어졌습니다.

그 이후로 FreeBSD는 매번 이전 버전의 안정성, 속도 및 기능 세트를 개선하는 일련의 릴리스를 만들었습니다.

현재 장기 개발 프로젝트는 15.0-CURRENT(메인) 브랜치에서 계속 진행 중이며, 작업이 진행됨에 따라 15.0의 스냅샷 릴리스가 스냅샷 서버에서 지속적으로 제공됩니다.

 

1.3.2. FreeBSD 프로젝트 목표

FreeBSD 프로젝트의 목표는 어떤 용도로든 아무런 조건 없이 사용할 수 있는 소프트웨어를 제공하는 것입니다. 우리 중 많은 사람들이 코드(와 프로젝트)에 상당한 투자를 하고 있으며, 때때로 약간의 금전적 보상을 받는 것도 마다하지 않겠지만, 우리는 그것을 고집할 준비가 되어 있지 않습니다. 저희의 가장 중요한 '사명'은 어떤 사람이든, 어떤 목적으로든 코드를 제공함으로써 코드가 최대한 널리 사용되고 최대한 많은 혜택을 제공하도록 하는 것이라고 믿습니다. 이것이 바로 자유 소프트웨어의 가장 근본적인 목표 중 하나이자 우리가 열렬히 지지하는 목표라고 생각합니다.

소스 트리에 있는 코드 중 GNU 일반 공중 라이선스(GPL) 또는 라이브러리 일반 공중 라이선스(LGPL)에 해당하는 코드에는 일반적인 경우보다는 강제 액세스 측면에서 약간 더 많은 제약이 따릅니다. 그러나 GPL 소프트웨어의 상업적 사용에서 발생할 수 있는 추가적인 복잡성 때문에, 저희는 합리적인 선택이라면 보다 완화된 BSD 라이선스에 따라 제출된 소프트웨어를 선호합니다.

 

1.3.3. FreeBSD 개발 모델

FreeBSD의 개발은 매우 개방적이고 유연한 과정이며, 기여자 목록에서 볼 수 있듯이 말 그대로 전 세계 수천 명의 사람들의 기여를 통해 구축되고 있습니다. FreeBSD의 개발 인프라는 이 수천 명의 기여자들이 인터넷을 통해 협업할 수 있도록 해줍니다. 저희는 지속적으로 새로운 자원 봉사자를 찾고 있으며, 더 긴밀하게 참여하고 싶은 분들은 FreeBSD에 기여하기 문서를 참조하시기 바랍니다.

독립적으로 작업하든 긴밀하게 협력하든 FreeBSD 프로젝트와 그 개발 과정에 대해 알아두면 유용한 정보입니다:

Git 저장소

몇 년 동안, FreeBSD의 중앙 소스 트리는 무료로 제공되는 소스 코드 제어 도구인 CVS(Concurrent Versions System)에 의해 유지 관리되었습니다. 2008년 6월, 프로젝트는 SVN(Subversion)을 사용하기로 전환했습니다. 소스 트리의 급속한 확장과 이미 저장된 기록의 양으로 인해 CVS의 기술적 한계가 분명해졌기 때문에 전환이 필요하다고 판단되었습니다. 문서화 프로젝트와 포트 컬렉션 리포지토리도 각각 2012년 5월과 2012년 7월에 CVS에서 SVN으로 이전했습니다. 2020년 12월에 프로젝트는 소스 및 문서 리포지토리를 Git으로 마이그레이션했고, 2021년 4월에 포트도 그 뒤를 따랐습니다. FreeBSD src/ 저장소를 얻는 방법에 대한 자세한 내용은 소스 얻기 섹션을, FreeBSD 포트 컬렉션을 얻는 방법에 대한 자세한 내용은 포트 컬렉션 사용하기 섹션을 참고하세요.


커미터 목록

커미터는 Git 저장소에 대한 푸시 액세스 권한을 가지고 있으며, FreeBSD 소스를 수정할 권한이 있는 사람들입니다(커미터라는 용어는 저장소에 새로운 변경 사항을 가져오는 데 사용되는 소스 제어 명령어인 커밋에서 유래했습니다). 누구나 버그 데이터베이스에 버그를 제출할 수 있습니다. 버그 리포트를 제출하기 전에 FreeBSD 메일링 리스트, IRC 채널 또는 포럼을 사용하여 문제가 실제로 버그인지 확인하는 데 도움을 받을 수 있습니다.

FreeBSD 코어 팀

FreeBSD 코어 팀은 FreeBSD 프로젝트가 회사라면 이사회에 해당할 것입니다. 코어 팀의 주요 임무는 프로젝트가 전체적으로 양호한 상태이며 올바른 방향으로 나아가고 있는지 확인하는 것입니다. 헌신적이고 책임감 있는 개발자를 커미터 그룹에 초대하는 것도 코어 팀의 기능 중 하나이며, 다른 코어 팀원들이 자리를 옮길 때 새로운 코어 팀원을 모집하는 것도 마찬가지입니다. 현재 코어 팀은 2022년 5월에 커미터 후보자 풀에서 선출되었습니다. 선거는 2년마다 실시됩니다.

NOTE
대부분의 개발자와 마찬가지로, 핵심 팀의 구성원들 역시 FreeBSD 개발에 있어서 자원 봉사자이며 프로젝트의 재정적 혜택을 받지 않기 때문에 "헌신"을 "지원 보장"의 의미로 오해해서는 안 됩니다. 위의 "이사회"라는 비유는 그다지 정확하지 않으며, 이들은 자신의 더 나은 판단에 반하여 FreeBSD를 위해 자신의 삶을 포기한 사람들이라고 말하는 것이 더 적합할지도 모릅니다!

FreeBSD 재단

FreeBSD 재단은 501(c)(3)의 미국 기반 비영리 단체로, 전 세계 FreeBSD 프로젝트와 커뮤니티를 지원하고 홍보하는 데 전념하고 있습니다. 재단은 프로젝트 보조금을 통해 소프트웨어 개발에 자금을 지원하고 긴급한 문제에 즉시 대응하고 새로운 기능을 구현할 수 있는 직원을 제공합니다. 재단은 FreeBSD 인프라를 개선하고 유지하기 위해 하드웨어를 구입하고 테스트 커버리지, 지속적인 통합 및 자동화를 개선하기 위해 인건비를 지원합니다. 재단은 전 세계의 기술 컨퍼런스 및 행사에서 FreeBSD를 홍보함으로써 FreeBSD를 지지합니다. 재단은 또한 더 많은 사용자와 기여자를 모집하기 위해 워크샵, 교육 자료, 프레젠테이션을 제공합니다. 또한, 재단은 공인된 법인을 필요로 하는 계약, 라이선스 계약 및 기타 법적 약정을 체결할 때 FreeBSD 프로젝트를 대표합니다.

외부 기여자

마지막으로, 가장 큰 개발자 그룹은 거의 지속적으로 피드백과 버그 수정을 제공하는 사용자들입니다. FreeBSD 기본 시스템의 개발에 대한 최신 소식을 접할 수 있는 가장 좋은 방법은 이러한 사항들이 논의되는 FreeBSD 기술 토론 메일링 리스트에 가입하는 것입니다. 타사 애플리케이션 포팅의 경우, FreeBSD 포트 메일링 리스트입니다. 문서의 경우 - FreeBSD 문서 프로젝트 메일링 리스트. 다양한 FreeBSD 메일링 리스트에 대한 자세한 정보는 인터넷의 리소스를 참고하세요.

FreeBSD 기여자 목록은 길고 성장하고 있는 목록이므로, 오늘 FreeBSD에 무언가를 기여함으로써 참여해보시는 것은 어떨까요? 코드를 제공하는 것만이 유일한 방법은 아닙니다!

요약하자면, 우리의 개발 모델은 느슨한 동심원 집합으로 구성되어 있습니다. 중앙 집중식 모델은 잠재적인 기여자를 배제하기 위한 것이 아니라, 하나의 중앙 코드 베이스를 쉽게 추적할 수 있는 방법을 제공하는 FreeBSD 사용자들의 편의를 위해 설계되었습니다! 우리의 바람은 사용자가 쉽게 설치하고 사용할 수 있는 일관된 대규모 응용 프로그램 세트를 갖춘 안정적인 운영 체제를 제공하는 것이며, 이 모델은 이를 달성하는 데 매우 효과적입니다.

FreeBSD의 개발자로 참여하고자 하는 분들에게 바라는 것은 현재의 사람들이 지속적인 성공을 위해 헌신하는 것뿐입니다!

 

1.3.4. 서드파티 프로그램

기본 배포판 외에도 FreeBSD는 일반적으로 많이 찾는 수천 개의 프로그램이 포함된 포팅된 소프트웨어 모음을 제공합니다. 포트 목록은 HTTP 서버부터 게임, 언어, 편집기, 그리고 그 사이의 거의 모든 것에 이르기까지 다양합니다. 약 36,000개의 포트가 있으며, 전체 포트 컬렉션에는 약 3GB가 필요합니다. 포트를 컴파일하려면 설치하려는 프로그램의 디렉터리로 변경하고 make install을 입력하기만 하면 나머지는 시스템이 알아서 처리합니다. 빌드하는 각 포트의 전체 원본 배포는 동적으로 검색되므로 원하는 포트를 빌드하는 데 충분한 디스크 공간만 있으면 됩니다.

거의 모든 포트는 미리 컴파일된 "패키지"로도 제공되므로 소스에서 직접 포트를 컴파일하고 싶지 않은 사용자는 간단한 명령(pkg 설치)으로 설치할 수 있습니다. 패키지 및 포트에 대한 자세한 내용은 애플리케이션 설치하기에서 확인할 수 있습니다: 패키지 및 포트를 참조하세요.

 

1.3.5. 추가 문서

지원되는 모든 FreeBSD 버전은 초기 시스템 설정 시 설치 프로그램에서 /usr/local/share/doc/freebsd 아래에 추가 문서를 설치할 수 있는 옵션을 제공합니다. 나중에 패키지를 사용하여 문서를 설치할 수도 있습니다:

$ pkg install en-freebsd-doc

또는 현지화된 버전은 'en'을 원하는 언어 접두사로 대체합니다. 현지화된 버전 중 일부는 오래되어 더 이상 정확하지 않거나 관련성이 없는 정보가 포함되어 있을 수 있습니다. 다음 URL을 사용하여 웹 브라우저에서 로컬로 설치된 매뉴얼을 볼 수 있습니다:

FreeBSD 핸드북

/usr/local/share/doc/freebsd/en/books/handbook/handbook_en.pdf

FreeBSD FAQ

/usr/local/share/doc/freebsd/en/books/faq/faq_en.pdf

문서 포털에서 항상 최신 문서를 찾을 수 있습니다.

모든 상표는 해당 소유자의 자산입니다.

 


마지막 수정 날짜: 2023 년 11 월 6 일

작성자: Ceri Davies