1부. FreeBSD 이해하기
이 글에서는 FreeBSD에 생소한 독자들과 이미 알고 있는 독자들에게는 다시
한번 되새이게 할 수 있도록 FreeBSD 소개, 개발모델, 2.2.7의 특징들에 대해
알아보고 마지막으로 BSD copyright를 살펴보기로 한다.
FreeBSD란
FreeBSD는 현재 x86 계열(80386이상 CPU)에서 사용할 수 있는 유닉스
운영체계이다. 여기에 대해서 FreeBSD 뉴스레터 #1의 기사 중 하나인 ‘What
is FreeBSD’(Jordan K. Hubbard 씀)의 앞부분을 인용해 보겠다.
“FreeBSD는 캘리포니아 버클리 대학과 그 공헌자들이 만든 4.4BSD Lite2에
기반한 유닉스 호환 운영체계이다. BSD는 15년 이상 개발되어 왔으며 FreeBSD에서
사용된 것과 같은 기술들이 디지탈의 Ultrix에서 썬의 SunOS에 이르기까지 많은
상용 운영체계의 기반이 되었다.
일반적인 다른 상용 제품들처럼 FreeBSD도 시스템의 사용과 설치 작업을
가능한 한 간단하게 만들려 하며 어떤 진보된 기술도 이를 사용하고자 하는
사람에게 큰 어려움을 준다면 이는 가치가 없다는 원칙에 입각한다. 비용도
약간의 장벽이 되기 때문에 우리는 이 시스템을 인터넷에서 무료로 이용할 수
있도록 하였다. 또한 우리는 이 기술의 공개와 상업적 목적의 재배포를 환영한다.
FreeBSD는 웹 서버 구축, 엔터프라이즈 메일 서비스, 파일과 프린터 공유(다른
유닉스 시스템과 윈도, 매킨토시 플랫폼)에서부터 소프트웨어 개발까지 모든
곳에 사용될 수 있다. FreeBSD는 또한 BSD/OS, 리눅스, SCO와 같은 다른 시스템의
바이너리 에뮬레이션을 제공하여 이런 시스템에서 동작하는 애플리케이션이
FreeBSD에서도 사용 가능하도록 하며 사용자에게 가능한 한 넓은 애플리케이션의
선택을 제공한다.”
이런 대규모의 운영체계 프로젝트를 이끌기 위해 FreeBSD 프로젝트가 결성되었다.
이에 대해 알아보기 위해 같은 글의 일부를 다시 인용해 보겠다.
“FreeBSD 프로젝트는 90명의 개발자와 17명의 ‘코어 팀’으로 구성된 그룹이다.
코어 팀은 전체적인 방향을 결정하며 일관적인 프로젝트의 초점을 유지한다.
대부분의 개발자는 상용 소프트웨어 개발과 BSD 유닉스의 배경에서 모인 사람들로
이 기술이 시장에서 무엇을 할 수 있으며 해야 하는지에 대한 독특한 관점을
갖고 있다. 우리의 소프트웨어 개발 경험에 대한 긴 역사는 프로젝트의 구성,
다중 트랙 개발(상용과 실험용), 소스 코드 제어(CVS)의 적극적인 사용과 집중화된
개발 모델(커널 뿐 아니라 전체 시스템에 대한)이 우리의 경험의 이점이 되도록
하였다.
쉽게 말하면 4.4BSD-Lite2를 따르는 PC용 공개 유닉스라고 생각하면 된다.
공개 유닉스라고 하면 리눅스를 많이 떠올리게 되는데 포팅되는 패키지나 기본적인
사용법은 비슷하겠지만 개발 정신이나 개발 방법, 프로그래밍 인터페이스의
경우 여러 가지 다른 점들이 있다. FreeBSD Inc.의 웹사이트에서는 FreeBSD에
관련된 모든 정보를 제공하고 있으므로 틈나는대로 이 사이트를 방문해 보면
많은 것을 얻을 수 있을 것이다.
FreeBSD의 개발 모델
올해 초 넷스케이프 사가 자사의 웹 브라우저 소스 공개를 결정하면서 공개
소프트웨어의 개발 모델에 대한 관심이 커진 바 있다. 모질라(넷스케이프의
공개 웹 브라우저)는 리눅스의 개발 모델을 많이 참고로 했으며 이는 최근에
Open Source라고 부른다(http://www.opensource. org에서 자세한 정보를 얻을
수 있다). 하지만 FreeBSD의 경우 이와는 몇가지 차이점이 있다.
FreeBSD의 개발 모델은 리눅스 배포본보다는 커널의 개발 모델과 비슷하다고
말할 수 있다. 안정 버전과 개발 버전(실험 버전)으로 구분되어 있다.
리눅스 커널의 경우 이와 같은 구분은 커널에만 한정되지만 FreeBSD의 경우
이런 구분이 시스템 전체에(여기서 시스템이라 하는 것은 별도로 제공되는 패키지를
제공하는 기본 배포본 즉, 커널, 설치 프로그램, 시스템 바이너리, 컴파일러,
디버거, 문서 시스템 등이다) 적용된다는 것이 다른 점이라 할 수 있다. 커널을
제외한 다른 부분이 여러가지 별도의 공개 소프트웨어의 집합이 되는 리눅스와는
크게 다른 점이라 할 수 있다.
이런 전체 시스템의 개발은 중앙집중적으로 이루어지고 있다. 즉 소스를
고칠 권한을 갖는 커미터(Committer)와 이를 감독하며 FreeBSD의 방향을 결정하는
코어 팀이 그들이다. 이들은 독자적으로 정해진 방향에 따라 FreeBSD 시스템을
개선해 나가며, 주기적으로 이런 변화들을 묶어 안정 버전에 대한 릴리즈 버전을
만들어 낸다. 따라서 FreeBSD의 각 릴리즈는 안정 버전이 일정 시점에서 정리되는
것을 코어 팀이 배포할 수 있는 형태로 다시 묶어내는 것을(CD와 FTP를 통해
배포) 말한다.
이런 개발 방식은 외부에서 보기에 자칫 독단적이거나 임의적인 개발 방식을
취하는 것으로 볼 수도 있겠지만 실제로는 잘 갖추어진 버그 추적 시스템(GNATS)과
CVS와 FTP를 통한 소스의 공개 그리고 공개된 메일링 리스트와 뉴스그룹에서의
개발자와 그 외 공헌자들의 활발한 대화를 지켜보면 그리 큰 문제는 되지 않는다.
개발자들은 여러분의 조언과 패치를 언제라도 환영한다(실제로 2.2.7에서 새로
추가된 기능 중 하나인 FAT32/VFAT기능은 NetBSD에서 -CURRENT에 들여온 것을
다른 사람이 다시 -STABLE에 포팅한 것이다).
공개 소프트웨어들도 대부분 이런 식으로 개발되고 있다. 즉 개발의 방향과
소스를 정리하는 몇몇 핵심 프로그래머와 관심을 가진 몇몇(또는 수십 수백의)
공헌자들이 그런 사람들이다.
FreeBSD는 완전히 소스가 공개된 운영체계이다. 언제라도 현재 개발중인
소스를 얻을 수 있으며 이를 보고 잘못된 점을 찾아 보고하는 일이 가능하다.
이를 가능하게 하는 것은 통합적으로 운영되는 소스의 버전 관리 기능과 버그
추적 시스템이다. 참고로, 여기서 말하는 소스 트리란 FreeBSD시스템의 커널,
사용자 유틸리티, 시스템 유틸리티, 컴파일러, 문서 시스템과 더불어 freebsd.org의
웹페이지, 핸드북, FAQ, 포트를 모두 포함한다.
CVS와 소스 제공 방식
CVS(Concurrent Versions System)는 FreeBSD의 소스가 담기는 그릇이다. 이는
기본적인 버전 제어 기능(체크아웃, 체크인 등)을 제공하며 버전간의 차이,
태그 기능을 제공한다. 또한 이들 작업은 모두 클라이언트/서버 방식으로 네트워크를
통해 서로 떨어져 있는 개발자들이 공통의 소스를 유지하는 일이 가능하다.
이 시스템 자체도 소스가 공개되어 있으며 최근에는 GNOME이나 SGML-Tools,
모질라 등 대규모로 이루어지는 여러 가지 프로젝트의 소스 관리 시스템으로
사용되고 있다.
하지만 CVS는 소스 관리 시스템이므로 실제 소스에 대한 수정 권한을 갖고
있는 사람들에게만 사용이 허가되어 있다. 따라서 FreeBSD에서는 커미터나 코어
팀이 아닌 사람들이 소스를 볼 수 있도록 여러가지 수단을 제공하고 있다.
4.4BSD-Lite2
이는 버클리 대학에서 마지막으로 개발한 BSD(Berkeley Software Distribution)의
마지막 판이다. BSD/OS, NetBSD, OpenBSD, FreeBSD의 기반이 되도록 하였다.
안정버전과 개발버전
상당히 보수적인 인장을 취하며 개발되는(즉, 안정성과 그 효용이 입증되기
전에는 섣불리 소스에 집어넣지 않는) 것을 안정 버전이라 하며 반대로 빠르게
바뀌며 여러 가지 유용한 기능이 먼저 들어가 사용자의 테스트를 기다리는 것을
개발 버전이라 한다. |
FTP
전세계 각지의 FreeBSD 미러 사이트(ftp.freebsd.org와 ftp.<국가명>.freebsd.org)에서는
FreeBSD의 안정 버전 소스와 개발 버전 소스를 얻을 수 있다. 물론 릴리즈 버전의
배포본에는 릴리즈 버전의 소스가 들어 있다.
anonCVS
anonCVS는 CVS시스템을 익명으로 사용할 수 있도록 하는 시스템이다(물론 익명
사용자는 소스를 고칠 수 없다). 여러분은 anonCVS를 사용하여 FreeBSD의 소스트리
일부 또는 전체를 가져올 수 있다.
CVSup
CVSup은 네트워크를 통해 파일의 콜렉션을 갱신하고 배포할 수 있는 소프트웨어
패키지이다. CVSup은 특히 CVS 저장고를 배포하는데 초점이 맞추어져 있으며
CVS 저장고에 들어있는 파일의 특성을 잘 활용하여 빠른 성능을 낼 수 있다.
이는 특히 느린 인터넷 환경에서 적합하다. 소스 트리는 보통 FTP를 통해 배포되는
소스와 같은 것이지만 특정 버전의 소스나 현재의 개발 버전을 즉시 추적하기에는
최고의 수단이다.
CVSup은 CVS태그를 이해할 수 있으므로 CVS로 관리되는 모든 시스템에
적용될 수 있다. 저자인 John Polstra <jdp@polstra.com>씨는 이 시스템을
X인터페이스와 더불어 모듈라-3 언어로 작성하였다. FreeBSD소스에는 릴리즈마다
특정 태그가 붙어있으므로 이를 지정하면 언제라도 해당 버전의 소스를 가져올
수 있다.
CTM
CTM도 FreeBSD의 소스를 얻을 수 있는 수단이며 대체적인 작동 방식은 CVSup과
비슷하나 느린 인터넷 연결 환경에서 적합하다.
CVSup이 별도의 프로토콜을 사용하여 소스의 차이점을 전송하는 것과는
다르게 CTM은 소스를 전자우편으로 전송한다. 따라서 여러분이 CTM 지원의 특정
메일링 리스트에 가입하고 적절한 시스템을 설치하면 소스 트리는 우편으로
전송되며 자동적으로 여러분의 지역 소스 트리에 반영된다.
GNATS
GNATS 데이터베이스는 현재 FreeBSD의 버그 추적과 보고 시스템으로 사용하고
있다. 이 데이터베이스는 개발자 또는 일반 사용자들이 FreeBSD를 쓰면서 찾아낸
버그뿐만 아니라 새로운 기능에 대한 소스 제공이나 패키지 추가 등을 위한
수단으로 사용되고 있다. 여러분이 만약 FreeBSD의 알려지지 않은 버그를 찾았다고
생각하거나 새로운 기능에 대한 소스를 제공하거나 FreeBSD로 새로 포팅된 프로그램의
패키지를 제공하고 싶다면 먼저 GNATS 데이터베이스를 검색하여 먼저 관련된
것들이 있는지 살펴보고 FreeBSD의 명령 중 하나인 send-pr(1)을 통하여 보고를
하면 된다.
2.2.7의 특징
약 1년 반 전에 2.2.1이 발표된 이후 FreeBSD의 2.2 버전(이 버전은 안정성을
중요시하는 제품 버전으로 2.2-STA BLE 또는 -STABLE이라고 부른다)은 전체
형태를 유지하는 가운데 여러 가지 기능에 대한 버그 수정과 버전업이 이루어져
왔다. 안정 버전은 최초에 이 버전을 설계하였을 때의 계획 그대로 업그레이드가
이루어지도록 하며 사용자가 안심하고 사용할 수 있는 형태를 목표로 한다.
FreeBSD의 개발에 있어서는 항상 안정 버전(-STABLE)과 개발 버전(-CURRENT)의
두 가지가 있는데 이 둘은 항상 공존하고 있는 관계로 개발 버전에서 충분히
안정되거나 향상된 기능은 역으로 안정 버전으로 들어오기도 한다(리눅스 커널의
예를 생각하면 좋다. 리눅스 커널의 경우 버전의 두 번째 자리에 따라 개발
버전과 안정 버전이 달라지는데, FreeBSD의 -STABLE을 짝수 버전의 안정 버전,
-CURRENT를 홀수 버전의 개발 버전이라 생각하면 된다).
2.2는 이미 프로젝트가 시작된지 수년이 지났고, 이제 서서히 그 끝을
향해 달려가고 있다. 2.2 버전 시리즈는 올해 말에 나올 2.2.8을 끝으로 더
이상 개발되지 않고 대신 현재 -CURRENT인 3.0이 안정 버전이 되며 새로운 버전
트리가 생성되어 개발 버전이 다시 시작될 것이다.
이제 2.2.7의 릴리즈 노트를 중심으로 하여 최근의 기능상 변화를 살펴보자.
다음은 2.2.7의 릴리즈 노트의 일부이며 2.2.6 이후의 변화를 나열한 것이다.
커널 측면
-
DPT SCSI RAID 제어기가 갱신(EISA 카드 지원 포함)되었으며 이제 기본 드라이버이다.
-
MSDOS FAT32 (윈도 95의 긴 파일명) 지원.
-
SCSI 교체기 코드의 여러가지 버그 수정.
-
Crystal Semiconductor CS8920 기반 이더넷 카드를 새로 지원.
-
쓰지 않는 LFS 코드 제거.
-
새로 갱신된 Specialic SI/XIO/SX 드라이버.
-
dmesg(일지 버퍼)는 이제 사용자가 크기를 지정할 수 있다.
-
/sys/i386/conf/LINT의 MSGBUF_SIZE 옵션을 참조하자.
-
Adaptec aic7870/aic7880 칩셋의 여러가지 버그 수정.
-
펜티엄 II 프로세서를 시작할 때 잘 찾아낸다.
-
pcm 오디오 드라이버는 Avance Logic ALS100 카드를 지원하기 위해 갱신되었으며
기본적으로 모든 오디오 지원이 향상되었다.
-
NFS 크리덴셜 검사의 여러가지 버그 수정.
-
NEC PC98 플랫폼을 위한 여러가지 변경.
사용자 측면
-
inetd(8)는 이제 서비스 정도의 제한을 허용한다.
-
ppp(8) 유틸리티는 상당히 갱신되었다. 자세한 사항은 메뉴얼 페이지를 보아야
한다.
-
많은 매뉴얼 페이지와 다른 문서의 갱신과 정리.
-
libc_r(POSIX pthread 지원의 일부)은 이제 기본적으로 시스템의 일부이며 여러
가지 버그 수정이 되었다.
-
ls(1)에 많은 새로운 옵션이 생겼다.
-
cvs(1)는 버전 1.9.26으로 갱신되었다.
-
/etc의 여러 가지 부분은 3.0에서 채택된 기능으로 갱신되었다.
-
as(1)는 이제 fildll/fistpll 명령을 이해한다.
-
설치 과정에 있어서 여러가지 향상.
-
여러 가지 사소한 curses(3)위치 지정 오류 수정.
-
dump(8)와 restore(8)의 여러 가지 버그 수정.
-
로그인 클래스 기능에 여러 가지 향상이 있었으며 기본 제한이 워크스테이션
사용자를 위해 낮아졌다.
-
ftpd는 빠른 응답을 위해 제어 채널에서 Nagle을 사용하지 않는다.
보안 측면
-
Free86은 3.3.2.3으로 갱신되었다. 이는 지역 사용자에게 몇가지 루트 획득
가능성을 막는 The Open Group의 변경을 포함하는 중요한 보안 릴리즈이다.
-
Crypto 저장고는 3.0 가지의 변경점을 수용하였다.
-
popper와 imap은 포트 콜렉션에서 갱신되었으며 몇가지 보안 허점을 수정하였다.
-
rcp(1)와 more(1)같은 유틸리티에서의 여러가지 버퍼 넘침이 수정되었다.
-
BIND에서의 여러가지 ‘공격 가능한’ 위치에 대한 경계 검사가 추가되었으며
BIND의 많은 부분이 크게 갱신되었다.
2.2.1에서부터 변경된 점은 다음을 들 수 있다. 이는 2.2.2, 2.2.5, 2.2.6의
릴리즈 노트를 정리한 것이다.
-
Adaptec 294x/394x(AHC드라이버)의 버그 수정
-
NFS v3이 기본 모드
-
lchown()시스템 콜의 추가
-
로그인 클래스의 도입(/etc/login.conf)
-
ftpd가 가상 FTP 호스트를 지원
-
/etc/sysconfig가 /etc/rc.conf로 대체
-
PPP의 대폭적인 수정과 향상
-
AMD/Cyrix 프로세서 지원 강화
-
시스템 재컴파일의 독립성 강화
-
설치 프로그램의 갱신
-
BIND, sendmail 등의 갱신
-
이더넷 매체 선택 지원
-
직렬 부트코드와 GDB 원격 지원 가능
-
CMD640 칩셋 지원(IDE드라이버)
-
3c589D PCMCIA 카드 지원
-
libvgl 도입(리눅스의 libSVGA와 유사)
-
lpd의 타임아웃 설정 가능
-
SMC EtherPower II 10/100 이더넷 카드 지원
-
DPI SCSI RAID 컨트롤러 지원 추가
-
PnP 재설정 가능
-
새로운 사운드 드라이버
-
리눅스 에뮬레이션 강화(리얼비디오 5.0 동작가능)
-
ATAPI 플로피 드라이브 지원 추가(LS-120, ZIP)
-
마우스 지원 기능 향상
-
popen()에서 양방향 파이프 제공
-
/usr/src에서 병렬 make 지원(-j<n> 옵션)
-
tcpdump, calendar 갱신
-
Kerberos IV의 갱신
-
curses(3)의 버그수정
-
libm(3)이 IEEE754를 만족하도록 변경
-
NIS 코드의 개량
-
/dev/io와 mmap의 보안 허점 수정
-
LAND 공격의 방어
-
여러 가지 버퍼 넘침 현상의 제거
-
펜티엄의 ‘F00F 버그’의 수정
-
srandomdev()가 -CURRENT에서 추가
이외 여러가지 사항이 항상 갱신되고 있다. 그러나 릴리즈 버전의 경우는 일단
한번 정해지고 나면 큰 문제가 없는 한 패치가 제공되지 않으므로(그래서 릴리즈
버전이다) 별도로 시스템의 수정해야 할 필요는 없지만 가끔씩 FreeBSD의 FTP사이트에서
ftp://ftp.freebsd.org/pub/ FreeBSD/2.2.7-RELEASE/ERRATA.TXT를 받아 읽어보기
바란다.
여기에는 릴리즈 발표 이후 발견된 릴리즈의 심각한 버그가 나오며 이에
대한 해결책도 같이 첨부된다.
The FreeBSD Copyright
All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite
Releases is copyrighted by The Regents of the University of California.
Copyright 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993,
1994 The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this
software must display the following acknowledgement:This product includes
software developed by the University of California, Berkeley and its contributors.
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS “AS IS”AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED.
IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The Institute of Electrical and Electronics Engineers and
the American National Standards Committee X3, on Information Processing
Systems have given us permission to reprint portions of their documentation.
In the following statement, the phrase “this text” refers
to portions of the system documentation.
Portions of this text are reprinted and reproduced in electronic
form in the second BSD Networking Software Release, from IEEE Std 1003.1-1988,
IEEE Standard Portable Operating System Interface for Computer Environments(POSIX),
copyright C 1988 by the Institute of Electrical and Electronics Engineers,
Inc. In the event of any discrepancy between these versions and the original
IEEE Standard, the original IEEE Standard is the referee document.
In the following statement, the phrase “This material” refers
to portions of the system documentation.
This material is reproduced with permission from American
National Standards Committee X3, on Information Processing Systems. Computer
and Business Equipment Manufacturers Association (CBEMA), 311 First St.,
NW, Suite 500, Washington, DC 20001-2178. The developmental work of Programming
Language C was completed by the X3J11 Technical Committee.
The views and conclusions contained in the software and documentation
are those of the authors and should not be interpreted as representing
official policies, either expressed or implied, of the Regents of the University
of California.
|
FreeBSD 판권
4.4BSD와 4.4BSD Lite에 포함된 모든 문서와 소프트웨어는 캘리포니아 주립대학
이사회의 소유이다. 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993,
1994년도에 등록된 판권은 캘리포니아 주립대학 이사회가 소유한다. 소스와
바이너리 형태의 재배포와 사용은 설사 수정을 가하거나 혹은 그렇지 않더라도
아래의 조건을 만족할 경우에 한해서만 허용한다.
-
소스코드의 재배포에 있어서는 위에 명시된 판권과 여기에서의 조건에 의한다.
-
바이너리 형태의 재배포에 있어 배포물에 포함된 문서나 혹은 그외 다른것들까지도
위에 명시된 판권과 아래의 조건에 의한다.
-
모든 광고문건이나 본 소프트웨어의 사용에 있어 아래의 승인문구가 반드시
나타나야 한다. 본 제품은 버클리 캘리포니아 주립대학과 그 공헌자에 의해
개발된 소프트웨어를 포함하고 있다.
-
서면으로된 사전 승인없이 본 소프트웨어로부터 대학의 이름이나 그 공헌자의
이름으로 보증이나 제품판매를 촉진할 수 없다.
이사회와 공헌자는 본 소프트웨어를 ‘원본 그대로’ 제공할 뿐 어떤 표현이나
이유 등을 갖는 특별한 목적을 위한 매매보증이나 합목적성을 부인한다. 이사장이나
공헌자는 어떠한 직접적, 간접적, 부수적, 특정적, 전형적, 필연적인 손상,
즉 상품이나 서비스의 대체, 사용상의 손실, 데이터의 손실, 이득, 영업의 중단
등에 대해 그것이 어떠한 원인에 의한 것이나, 어떠한 책임론에 의하거나, 계약에
의하거나 절대적인 책임, 민사상 불법행위가 과실에 의하거나 그렇지 아니하거나
본 소프트웨어의 사용중에 발생한 손상에 대해서는 비록 그것이 이미 예고된
것이라 할지라도 책임이 없다.
IEEE와 미국 표준위원회 X3는 정보처리시스템에 있어 그들의 문서일부를
사용할 수 있도록 허가하였다.
아래의 문구 중 ‘본 문서’는 정보처리시스템 문서의 일부를 지칭한다.
본 문서의 일부를 IEEE가 1988년에 판권을 소유한, IEEE std 1003.1-1988
즉, IEEE 표준인 POSIX로부터 두 번째 BSD Networking Software Release에서
전자형태의 배포물로 사용할 수 있다. 본 버전과 원 IEEE 표준사이에서 어떠한
차이가 있더라도 원 IEEE표준이 문서의 기준이 된다.
아래의 문구 중 ‘본 문건’은 정보처리시스템 문서의 일부를 지칭한다.
본 문건은 미국 표준위원회 X3로부터 정보처리시스템에 있어 그 권리를 인정받아
사용하였다.
*주소 : Computer and Business Equipment Manufacturers
Association (CBEMA), 311 First St., NW, Suite 500, Washington, DC 20001-2178.
X3J11 기술위원회에 의해 C 프로그래밍 언어의 개발작업이 완결되었다. 본
소프트웨어와 문서에 포함된 것은 저작자의 견해와 결론이며 캘리포니아 주립대학
이사회의 표현되거나 또는 암시되어 나타나는 공식적인 정책으로 해석되어서는
안된다. |
지원하는 하드웨어
FreeBSD는 386sx에서 펜티엄에 이르기까지(비록 386sx를 추천하지는 않지만)
ISA, VLB, EISA과 PCI bus 기반의 매우 다양한 PC에서 작동한다. 이에 추가하여
보통의 IDE나 ESDI 드라이브 장치, 다양한 SCSI 컨트롤러, 네트워크와 직렬
카드도 지원된다. 지원되는 하드웨어의 목록을 알기 위해서는 CD에 있는 2.2.7-RELEASE/HARDWARE.TXT파일을
읽어보기 바란다.
리눅스만큼 많은 하드웨어를 지원하지는 않지만 일반적인 시스템 마더보드,
CPU, 하드디스크, SCSI 컨트롤러는 모두 지원하므로 큰 문제는 없다. 하지만
네트워크 카드 등은 꼭 확인해 보기를 바라며 PnP를 지원하는 하드웨어의 경우에는
PnP기능을 되도록이면 끄고 작동시키기를 바란다. PnP에 대한 기초적인 지원은
되지만 자세하게 확인해 보지는 않았으므로 관심있는 독자들은 pnp(4)와 pnpin
fo(1)의 매뉴얼 페이지를 읽어보기 바란다.
또한 X 윈도를 운영하기 위해 필요한 그래픽 카드의 경우에는 XFree86 프로젝트의
XFree86 3.3.2+patch3이 제공되므로 XFree86의 릴리즈 노트를 참고하기 바란다.
XFree86 3.3.2는 x86 PC의 경우 리눅스, FreeBSD, 솔라리스, NetBSD, OpenBSD에서도
동작하므로 예를 들어 리눅스에서 사용할 수 있는 그래픽 카드라면 FreeBSD에서도
같은 설정(/etc/XF86Config) 그대로 사용할 수 있다. 주의할 것은 마우스 설정이
약간 달라졌다는 것 정도이다.
활용
FreeBSD는 빠르고 안정적인 운영체계로 알려져 있다. 보통 웹서버나 FTP서버
등으로 사용되며 인터넷 서비스 제공자의 서버로도 사용될 수 있다. 알려져
있는 유명한 FreeBSD 서버로는 FreeBSD의 스폰서인 Walnut Creek 사의 FTP서버(FreeBSD
뉴스레터 #1의 기사에 따르면 wcarchive.cdrom.com은 200MHZ 펜티엄 프로와
512MB 램, 139GB의 하드디스크로 구성되어 있으며 2000명 이상의 동시 사용자
접속을 허가할 수 있다고 한다)가 있으며 이외에 다음 서버들이 FreeBSD로 운영되고
있다고 한다(Walnet Creek의 CD 팜플렛에서 참조).
-
Yahoo!
-
US West
-
Internet Movie Database
-
Karpov Institute - Moscow
-
National Library of Austraila
-
Ticket WEB
-
FTP Search
웹서버 패키지는 기본적으로 제공되지는 않지만 패키지/포트 콜렉션에서 여러가지로
컴파일된 버전의 아파치를 얻을 수 있고, FTP의 경우는 널리 쓰이는 wu-ftpd를
설치하지 않아도 기본 FTP 서버만으로도 훌륭한 FTP서버 운영이 가능하다. FreeBSD의
PPP기능은 매우 독특한데, 기본 시스템만으로도 멀티포트 모뎀을 사용한 다이얼업
서버 등으로의 사용이 가능하다. 또한 Samba와 netatalk를 통해 PC나 매킨토시와의
접속을 할 수 있으며 FreeBSD의 NFS는 버전 3을 따르며 기본적으로 TCP전송을
지원한다. 개인적으로는 PPP기능을 사용한 인터넷 접속이나, 유닉스 학습(FreeBSD는
철저하게 4.4BSD의 모델을 따르고 있으므로 유닉스를 공부하고자 하는 학생이나
TCP/IP구현의 소스를 보고 싶은 경우에는 유용하게 활용할 수 있다), 프로그램
작성 등의 용도로 사용할 수 있다. 또한, x86 계열의 OS(윈도, 리눅스, BSD/OS
등)의 에뮬레이션을 지원하므로 혹 FreeBSD용의 프로그램이 없는 경우라도 이런
에뮬레이션 기능을 사용하면 대부분의 애플리케이션을 큰 문제없이 사용할 수
있다(넷스케이프, 리얼오디오 등). 필자도 미지리서치의 HWPX/R4 리눅스용을
구입해서 FreeBSD 2.2.6부터 사용하고 있다.
BSD Copyright
리눅스를 비롯한 많은 공개 소프트웨어가 GNU General Public License(GPL)을
따르지만 GPL이 확립되기 이전부터 무료로 공급되어 오던 BSD는 독자적인 라이선스를
가지고 있다. 이는 BSD Copyright라고 부르며 GPL과 유사하게 소스코드의 공개와
제한 없는 배포를 원칙으로 하지만 조금 더 자유롭게 사용할 수 있다. 이런
형태의 라이선스는 X Windows(XFree86)에서도 채택하고 있으며 BSD 계열의 많은
프로그램들도 이 라이선스를 사용하고 있다.
번역문과 원문을 같이 실으므로 참고해 보자. 번역문은 이강신(나우누리
ID: cosmozev) 님이 번역해 주신 BSD Copyright이다. 원문은 언제라도 FreeBSD의
/COPY RIGHT 파일에서 읽어볼 수 있다(번역문은 법적 효력을 갖지 않는다는
것에 주의하자. 따라서 이 번역문을 영문 BSD 저작권 문서(/COPYRIGHT)의 대신으로
사용하면 안된다).
CVS
CVS는 RCS 시스템의 프론트엔드로, 한 디렉터리 내의 파일의 집합이라는 개념을
확장하여 여러 개의 디렉터리로 구성된 파일의 집합을 관리할 수 있다. 이런
디렉터리와 파일은 하나의 소프트웨어 릴리즈를 구성할 수 있다. CVS는 이런
소프트웨어 관리를 위한 기능과 여러 소프트웨어 개발자 사이에서의 동시적인
소스 파일 편집을 가능하게 한다. Cyclic Software(http://www.cyclic.com/)에서
소스코드와 자세한 정보를 얻을 수 있다.
Modula-3
Modula-3은 파스칼 계열의 컴퓨터 언어로, 1980년 후반에 DEC와 Olivetti 사에서
개발되었다. Modula-3은 파스칼과 Modula-2의 결점을 개선하였으며 이전 언어들의
간결함을 보존하면서 예외 처리, 동시성, 객체지향, 자동 가비지 콜렉션 등의
기능이 추가되어 있다. 자세한 정보는 Modula-3 홈페이지(http://www.research.digital.com/SRC/modula-3/html/home.html)에서
얻을 수 있다. |
|