NetBSD의 기능

아래 나열한 기능들은 모두 하나의 단일 소스 트리로부터 컴파일한 기본 시스템에 포함되어 있는 것입니다.

NetBSD에 관해

네트워킹

저장장치

기타 기능


NetBSD에 관해


깨끗한 디자인 (맨 위)

NetBSD는 깨끗한 디자인과 면밀히 구성된 해결책에 초점을 맞추고 있습니다. 이로 인해 NetBSD는 몇몇 '최신' 기능들을 다른 운영 체제보다 약간 늦게 지원할 수도 있습니다. 그러나 시간이 흐름에 따라 NetBSD의 코드 기반은 점점 더 견고해지고 관리하기 쉬워지는 반면, 코드 품질보다 기능에 중점을 두는 다른 운영 체제들에서는 코드 관리 및 충돌에 관련된 문제가 점점 증가함을 볼 수 있습니다.

NetBSD는 모든 기종에 걸친 동시적 릴리즈를 포함하여 단일 소스 트리로부터 광범위한 하드웨어 기종을 지원하며, 매체의 주목이나 상업적인 뒷받침이 없음에도 불구하고 사용자들과 경험 많은 개발자들의 관심을 끌어 오고 있습니다. 이 모든 것은 코드 품질을 우선시한 덕분입니다.

광범위한 기종 지원 (맨 위)

NetBSD는 Alpha, PowerPC, PC 시스템에서 볼 수 있는 최신 고성능 하드웨어의 장점을 충분히 활용하며, 그와 함께 오래된 기종에 대한 지원도 꾸준히 유지하고 있습니다. 이 모든 것은 하나의 소스 트리로부터 이루어지며, 올바른 디자인과 깨끗한 코드를 강조함으로써만 가능한 것입니다. 이는 또한 NetBSD가 mips, ARM, Super-H 등의 휴대용 Windows CE 기기같은 새로운 기기나 내장형 기종으로의 이식을 위한 이상적인 코드 기반이 되도록 해주고 있습니다.

BSD 라이센스 (맨 위)

비록 NetBSD가 GNU 툴체인(컴파일러, 어셈블러 등)과 그 밖의 GNU 툴을 사용하긴 하지만, 커널 전체와 사용자 유틸리티의 핵심은 BSD 라이센스 하에 배포하고 있습니다. 덕분에 기업들은 GPL에서와 달리 변경 사항을 공개하지 않고도 NetBSD에 기반한 제품을 개발할 수 있습니다. NetBSD 프로젝트는 기업과 개인에게 변경 사항을 트리에 재반영해 줄 것을 권유하고 있지만, 그러한 결정을 스스로 내릴 권리 역시 존중하고 있습니다.

전소스 공개 (맨 위)

NetBSD는 소스 코드와 전체 CVS 저장소를 비롯하여 모든 소스를 공개하고 있습니다. 모든것이 하나의 소스 트리하에 놓여 있기 때문에, 모든 파일에 대해 과거 어느 때의 버전이든 불러올 수 있습니다. CVS 저장소를 제공한 최초의 BSD는 아니지만, 문제가 발생했을 때 임의의 날짜 이전의 모든 리비전을 폐기하기보다, 모든 파일을 지나칠 만큼 꼼꼼하게 검토하고 손상된 코드를 포함한 리비전만 삭제하는 것으로는 유일한 OS였습니다.

보안성 (맨 위)

NetBSD는 공개 포럼(bugtraq과 같은)에 보고된 보안 버그중 최소한의 것만 가지고 있습니다. 우리는 과대 선전 없는 보안성이 가능하다고 믿습니다. 우리는 코드를 수작업으로 감사하고 툴체인에 확장된 검사 기능을 추가합니다. 커널 데이터의 검색은 sysctl에 기반한 접근 방법으로 옮겨 가고 있으며, 반면 전통적인 유닉스 기반 kmem 접근은 전체 시스템에 대한 완전한 접근 권한이 필요하기 때문에 자주 악용되고 있는 실정입니다.

성숙도와 안정성 (맨 위)

BSD 코드 기반은 80년대 UC 버클리까지 거슬러 올라가며, 그후로 줄곧 대중적인 검증을 위해 공개되어 왔습니다. NetBSD는 이러한 전통을 계승하여 과대선전이 아닌 깨끗한 디자인과 기능을 홍보하기 위해 더욱 열심히 노력하고 있습니다. NetBSD는 한 가지 이유로 미항공우주국(NASA)의 항공우주 시뮬레이션 부서에서 사용되고 있습니다. 부서의 중앙 플랫폼은 대용량 RAM과 디스크 공간(테라 바이트 또는 그 이상의)을 가진 Alpha 시스템으로서, 프로젝트를 수행할 수 있는 우수하고 안정적인 코드 기반이 필요하기 때문입니다. 또 NetBSD는 2000년 문제(y2k)를 다룬 최초의 자유 OS였습니다. 이밖에도 추천 페이지에서 다양한 성공 사례를 볼 수 있습니다!

과대선전 없음 (맨 위)

아마도 NetBSD에서 찾아 볼 수 없는 유일한 것은 매체의 과대선전일 것입니다. 그런 것이라면 다른 곳에서 찾아 보아야 할 것입니다.

네트워킹


패킷 필터링과 네트워크 주소 변환 (NAT) (맨 위)

NetBSD는 커널 내장 패킷 필터링 엔진을 제공함으로써 인터페이스, 프로토콜, 포트 tos, ttl, 원래 목적지, 기타 다른 많은 요인에 기반한 트래픽의 필터링을 가능케 해 줍니다. 이같은 기능을 커널에 내장함으로써 더 높은 성능이 가능해졌습니다.

네트워크 주소 변환(NAT)은 일련의 주소를 구내 네트워크에 내부적으로 사용하고, 외부적으로는 다른 일련의 주소(또는 단일 IP 주소)를 사용할 수 있도록 해줍니다. 이 기능은 보안이나 간단한 편의를 목적으로 사용할 수 있으며, 또한 투명한 FTP 프록시 기능도 포함하고 있습니다. 여기서도 마찬가지로 모든 것은 높은 성능을 위해 커널 내에 구현되어 있습니다.

IPv6 (맨 위)

NetBSD는 IPv6 구현을 준수하는 최신 표준을 지원한 최초의 자유 OS였으며, 규격의 변경 사항을 반영하기 위해 KAME 프로젝트와 계속해서 작업을 함께 해오고 있습니다. NetBSD는 클라이언트와 서버 부분 양쪽에 대해 IPv6를 지원하는 NFS를 내장한 최초의 자유 운영 체제였습니다.

네트워크 파일 시스템(NFS) (맨 위)

NetBSD는 커널 내장형 NFS 클라이언트와 서버 기능을 제공하며, NFS2와 NFS3 프로토콜 모두에 대해 다른 시스템과 상호운영이 가능합니다. 여기에는 NFS 상에서의 스와핑 지원과 스왑 파티션 크기의 무한대 지원 등이 포함됩니다. 클라이언트쪽 파일 생성은 원자적 연산의 형태로 올바르게 구현되어 있으며, 그렇지 않은 시스템에서는 잠금 기능에 신뢰성이 떨어집니다.

광범위하고 견고한 네트워킹 (맨 위)

NetBSD는 다음과 같은 네트워크 타입을 지원합니다: ARCnet 지원 과정에서 ARP 서브시스템은 Ethernet 의존성을 제거하고 더 일반적으로 응용 가능하도록 재작성되었습니다.

NetBSD는 또한 다음과 같은 종류의 네트워크 프로토콜을 지원합니다:

NetBSD는 또한 다수의 표준 네트워킹 대몬을 기본적으로 포함하며, bootparamd(8), bootpd(8), dhcpd(8), ftpd(8), identd(8), mopd(8), named(8), postfix(1), rarpd(8), rbootd(8), sendmail(8), sshd(8), tftpd(8), xntpd(8) 등을 비롯하여 내장 tcp 래퍼 지원도 포함하고 있습니다.

무선 네트워킹 (맨 위)

NetBSD는 IEEE 802.11 기반 무선 네트워킹 장치 다수를 지원합니다. an(4), wi(4), ray(4), awi(4)cnw(4)를 참조하십시오.

저장장치


하드웨어 및 소프트웨어 RAID (맨 위)

다수의 독립형 SCSI RAID 장치 이외에도 NetBSD는 다양한 종류의 RAID 컨트롤러와, RAIDframe을 통해 소프트웨어적으로 RAID 0, 1, 4, 5, 6 시스템을 완전하게 지원합니다. (더 자세한 내용)

고성능 PCI IDE (맨 위)

최근 나온 많은 PCI IDE 컨트롤러가 고속 DMA 전송을 지원합니다. NetBSD는 이 기능을 별도의 설정 없이 바로 지원하는 몇 안되는 운영 체제 중 하나입니다. NetBSD의 깨끗한 디자인 덕분에 동일한 드라이버와 기능을 alpha, i386, macppc, sparc64에서 모두 사용할 수 있습니다.

SCSIPI 서브시스템 - SCSI와 ATAPI의 결합 (맨 위)

NetBSD는 통합 SCSIPI 서브시스템을 구현함으로써 코드 중복을 방지하고 다수의 장치에 대해 공통적으로 사용가능한 SCSI 및 ATAPI 사용자쪽 인터페이스를 제공합니다. 이에 대한 직접적 결과로 ATAPI CD-R 장치가 나왔을 때 cdrecord와 같은 기존의 SCSI용 프로그램은 전혀 수정할 필요없이 ATAPI 장치상에서 동작했습니다.

64비트 파일시스템 (맨 위)

NetBSD는 1994년 10월에 나온 1.0 릴리즈에서부터 64비트 파일시스템을 제공하고 있습니다. NetBSD 버클리 고속 파일시스템하에서는 64비트와 32비트 기기 모두에서 4TB(4096GB)까지 지원합니다. 파일과 사용자 파일 쿼터의 크기는 테라바이트대까지 가능합니다. 다른 많은 시스템들은 32비트 기기에서 파일 크기를 4GB로 제한하고 있습니다.

ffs 파일시스템은 최대 2^31개의 조각 블럭을 가질 수 있습니다. 파일시스템의 최대 크기는 조각 크기에 따라 달라집니다:
조각 크기파일시스템 크기
512 바이트1 TB
1kB 2 TB
2kB 4 TB

대용량 IDE 디스크 (맨 위)

NetBSD는 34GB 이상의 IDE 디스크를 완벽하게 지원하며, 8GB (BIOS가 허용하는 한계) 뒤쪽의 분할 영역에서도 부트가 가능합니다. 1.6 릴리즈부터 NetBSD는 137GB 이상의 크기를 갖는 디스크를 액세스하기 위해 48비트 논리 블럭 주소(ATA-6 확장 주소)도 사용할 수 있습니다.

고성능과 신뢰성을 위한 FFS 상에서의 소프트 업데이트 (맨 위)

소프트 업데이트는 메타데이터 손상의 위험 없이도 비동기 디스크 성능에 근접하는 성능을 얻기 위해 메타데이터 기록에 순서를 부여하는 방법입니다. 이는 FFS 파일시스템의 성능을 현저하게 향상시켜 줍니다. (더 자세한 내용)

다양한 파일시스템 타입 (맨 위)

NetBSD는 다수의 서로 다른 파일시스템을 처리하고 조작할 수 있으며, 이는 데이터 교환과 바이너리 호환성 양쪽에 모두 도움이 됩니다. NetBSD는 또한 거꾸로된 바이트 순서로 기록된 파일 시스템을 마운트할 수 있습니다. 참고로 일부 다른 운영 체제와 달리 NetBSD는 메타데이터 기록 순서를 규정하기 때문에 fsync(2)를 전력 중단과 같은 사태에서도 중요한 데이터 손실없이 사용할 수 있도록 해주며, 이는 심지어 ext2fs에도 적용됩니다.

NetBSD는 또한 다음과 같이 다양한 가상 파일시스템 타입을 지원합니다:

DVD ROM과 RAM (맨 위)

NetBSD는 오늘날 사용되는 일반적인 DVD 파일시스템에 저장된 데이터를 읽을 수 있는 대용량 DVD 드라이브를 지원합니다.

기타 기능


패키지 시스템 (애플리케이션) (맨 위)

패키지 시스템(pkgsrc)은 많은 수의 외부 단체 애플리케이션을 소스나 바이너리로 쉽게 설치할 수 있도록 해줍니다. pkgsrc는 kde3, gnome2, mozilla, apache2, perl5, samba, openoffice, GIMP, 넷스케이프 communicatornavigator, 및 기타 다수의 필수적인 프로그램을 포함하고 있습니다. 주요 기능은 다음과 같습니다. Pkgsrc는 FreeBSD의 '포트' 시스템에서 유래하였지만, 상당한 면에서 개선되었습니다.

기기 비의존적 드라이버 기반구조 (맨 위)

칩셋 드라이버와 버스 접속 코드의 명확한 분리, 그리고 기기 비의존적 bus_space(9)bus_dma(9) 기반 구조의 구현은 다음과 같은 장점을 가지고 있습니다:

기기 비의존적 오디오 기반구조 (맨 위)

SCSI 서브시스템과 비슷한 방법으로, NetBSD는 개별적인 칩셋 드라이버와 연결되는 범용 오디오 계층을 가지고 잇습니다. 이는 다른 자유 OS 프로젝트에 비해 한층 더 높은 일관성과 드라이버간 코드 공유를 가능케 합니다.

커널 디버깅 (맨 위)

OS 에뮬레이션 (맨 위)

NetBSD의 독보적인 바이너리 호환성 기능은 (같은 프로세서에서 실행되는) 비고유 바이너리를 투명하게 실행할 수 있도록 커널내에서 지원함으로써 기존 응용 프로그램에 들어간 사용자의 투자를 보호해 줍니다. 지원되는 시스템은:

패키지 시스템 은 다음과 같은 다수의 에뮬레이터(emulators)를 포함하고 있습니다:

아울러 지원되는 파일시스템을 참조하십시오.

USB (유니버설 직렬 버스) (맨 위)

NetBSD는 USB 지원을 제공한 최초의 자유 OS였으며, 애플이 Mac OS X을 부트하는 데 성공하기도 전에 이미 애플 파워 매킨토시에서 USB를 사용하고 있었습니다. USB 지원은 alpha, i386, macppc 등을 포함하여 USB를 사용 가능한 모든 기종에 대해 이루어져 있습니다. 지원되는 장치로는 마우스, 키보드, 모뎀, 대용량 장치 (ZIP) 등이 있으며, USB 표준이 개발됨에 따라 더 많은 드라이버가 만들어지고 있습니다.

기타 장치 지원 (맨 위)

UVM 가상 메모리 시스템 (맨 위)

UVM은 입출력 및 IPC (프로세스간 통신) 시스템에 매우 유연한 데이터 이동 메커니즘을 제공하기 위해 특별히 설계된 새로운 가상 메모리 시스템입니다. UVM은 Mach 기반 4.4BSD 메모리 시스템을 완전히 대체하며, 다른 메모리 시스템에 비해 향상된 가상 메모리 성능을 제공합니다. (더 자세한 내용)

카드버스 (맨 위)

근래의 랩탑 컴퓨터에서 볼 수 있는 카드버스(Cardbus)형 PC-카드와 PCMCIA 소켓에 대한 지원이 이루어져 있으며, 핫스왑, 전력 관리 및 장치 탈착 등이 가능합니다.

기기 비의존적 콘솔 wscons (맨 위)

wscons(4) 드라이버는 콘솔에 대한 기기 비의존적 액세스를 가능하게 해줍니다. 특히 다음과 같은 모듈로 이루어져 있습니다:

64비트 클린 (맨 위)

NetBSD는 alpha와 같은 64비트 아키텍쳐를 지원한 최초의 자유 OS였으며, 여전히 다른 어떤 OS보다도 많은 alpha 모델을 지원하고 있습니다. 전체 소스 트리는 상당 기간전부터 64비트 클린이었으며, 패키지 시스템은 다수의 애플리케이션을 64비트 클린으로 만들어 주는 패치를 포함하고 있습니다.

홈페이지

(연락하는 방법) $NetBSD: features.html,v 1.22 2006/06/22 15:49:21 jschauma Exp $
Copyright © 1994-2003 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.