NetBSD is een Unix-achtig besturingssysteem met zijn wortels in de 386BSD 0.1-tak. De eerste versie, NetBSD 0.8, was beschikbaar op 21 april 1993 en heeft zich sindsdien steeds verder ontwikkeld. Van de drie bekende BSD-varianten, FreeBSD, OpenBSD en NetBSD, ondersteunt de laatste de meeste verschillende platformen. De ontwikkelaars hebben na het uitbrengen van maar liefst zes release candidates eindelijk versie 3.0 uitgebracht zoals al te lezen was in dit nieuwsbericht op Tweakers.net. Grote verbeteringen zijn terug te vinden in onder andere de prestaties van het file system en memory management, de beveiliging en de ondersteuning van verschillende hardware. Daarnaast zijn er ook een aantal nieuwe functies toegevoegd zoals PAM (OpenPAM), TCP SACK, TCP MD5, pf(4), IPsec ESP/IKE over NAT, IPv4 PIM en tap(4). Een beknopt overzicht van de aangebrachte veranderingen ziet er als volgt uit:
Major Changes Between 2.0 and 3.0:
The complete list of changes can be found in the CHANGES and CHANGES-3.0 files in the top level directory of the NetBSD 3.0 release tree. Some highlights include:
Supported platforms and machines:
- A port to new platform: iyonix. The iyonix port supports the Iyonix PC, which is a desktop computer from Castle Technology, based on a 600MHz XScale 80321 processor.
- The xen port now supports Xen 2.0, both in privileged and unprivileged mode.
- The evbarm port has support for the TS-7200 single board computer, which is also known as “the NetBSD Controlled Toaster”.
- The sgimips port now supports IP12 (Personal Iris 4D/30, 4D/35, and Indigo R3K) machines.
- The PowerPC 601 support is added, and the prep port now supports IBM RS/6000 60P 7020-011.
- The i386 port now supports the Enhanced SpeedStep Technology.
- Added the statvfs(2) family of system calls.
- Added ptm(4), Unix/98 pty multiplexor device.
- Added swwdog(4), a software watchdog timer facility.
- The autoconfiguration framework is rewritten for device driver LKMs.
- compat_darwin(8) emulation now supports Mac OS X version 10.3 binaries.
- The sparc64 and shark ports have switched to wscons(9), the machine-independent console framework. Additionally, the sparc64 port switched to an XFree86 based X server and now supports the cg6, mach64 and ffb/afb framebuffers with acceleration.
- Added new pselect(2) and pollts(2) synchronous I/O multiplexing system calls.
- Added another experimental buffer queue strategy, BUFQ_PRIOCSCAN, per-priority cyclical scan. Note: the existing strategy NEW_BUFQ_STRATEGY is renamed to BUFQ_READPRIO, since that gives priority to issuing read requests over write requests.
- The way to allocate a kernel structure, map entry, was improved so that it doesn't need preliminary knowledge of system load, i.e., users no longer have to define “options MAX_KMAPENT” in their kernel configurations even on busy servers.
- TCP now supports TCP Selective Acknowledgement Options (RFC 2018) for enhanced performance (especially on long distance connections), and TCP MD5 signatures (RFC 2385) for enhanced protection against attacks.
- TCP can take advantage of hardware-assisted TCP/IPv4 segmentation on re(4), wm(4), and xge(4) interfaces.
- The OpenBSD Packet Filter has been integrated as an alternative packet filter solution.
- IP Filter has been upgraded to version 4.1.8.
- The KAME IPsec stack now supports ESP over NAT connections (RFC 3948).
- IPv4 Protocol Independent Multicast (PIM) routing support has been added.
- ipsec-tools 0.6.3 provides IKE support for ESP over NAT connections (RFC 3947), user authentication via XAuth, and automatic network configurations of VPN clients via Mode Config.
- Added RFC 3378 EtherIP support, which makes it possible to add gif(4) interface to bridges.
- Added tap(4), the virtual Ethernet device.
- ppp(4) has been updated to 2.4.3.
- gre(4) now supports tunneling of the IPv6 Protocol.
- Added iteide(4): driver for ITE 8212 IDE controller.
- Added ixpide(4): driver for ATI IXP series chipset IDE controller.
- Added pdcsata(4): driver for Promise SATA150 (aka PDC203xx) controllers.
- Added ipw(4): driver for Intel PRO/Wireless 2100.
- Added iwi(4): driver for Intel PRO/Wireless 2200AG/2915ABG.
- Added rtw(4): driver for Realtek RTL8180L IEEE 802.11b wireless network.
- Added vge(4): driver for VIA VT612X Gigabit Ethernet controller.
- Added xge(4): driver for Neterion Xframe-I 10 gigabit Ethernet.
- Added cdce(4): driver for CDC USB Ethernet.
- Added atu(4): driver for Atmel AT76C50x based 802.11b wireless network interfaces.
- Added uep(4): driver for eGalax USB touchpanel controller.
- Added ugensa(4): driver for USB generic serial adapter, which currently supports CDMA Wireless PC Card.
- Added auixp(4): driver for ATI IXP series chipset audio controller.
- Added auacer(4): driver for ALi M5455 audio controller.
- Added azalia(4): driver for High Definition Audio controller.
- Added spif(4): driver for Sun SUNW,spif multi-port Sbus card.
- viaide(4) now supports nForce2 Ultra 400, nForce3 250 IDE and SATA, and nForce4 IDE and SATA controllers. viaide(4) also supports the VIA VT6421 SATA RAID controller, though drives on the controller need to be configured into RAID/JOBS sets via its BIOS.
- siside(4) now supports SiS 180 and 741 SATA controllers.
- artsata(4), which is the Intel i31244 Serial ATA disk controller driver, now supports DPA mode.
- satalink(4) now supports Silicon Image 3512 SATA.
- piixide(4) now supports Intel 82801FB/FR (ICH6/6R) IDE and SATA, 82801FBM SATA, 82801G (ICH7) IDE and SATA, and i6300ESB IDE and SATA controllers. Also added basic support for RAID0 and RAID1 for the Adaptec HostRAID format as found on the Intel 6300ESB on-board RAID.
- stge(4) now works on big-endian machines including sparc64 with hardware checksums.
- aac(4) now supports Adaptec SATA RAID 2810SA.
- mpt(4) now supports LSI Logic FC919x SCSI controllers.
- spc(4) now has support for Fujitsu MB87030-based PCMCIA SCSI controller.
- bge(4) now supports Broadcom BCM5788, BCM5705K, BCM5721, and BCM5751M Gigabit Ethernet controllers, and has 802.3x flow control support.
- gem(4) and hme(4) now have hardware checksum support.
- re(4) and wm(4) now support TCPv4 hardware transmit segment offload.
- wm(4) now supports more Intel Gigabit Ethernet chips and 64bit PCI DMA transfer.
- re(4) now supports Corega CG-LAPCIGT Gigabit Ethernet and RTL8169 based CardBus Ethernet interfaces, including NetGear GA-511.
- ex(4) now supports 3Com 3c920B-EMB-WNM Integrated Fast Ethernet.
- sk(4) now supports Belkin Gigabit Desktop Network card.
- bce(4) now supports Broadcom BCM4401-B0 Ethernet.
- tl(4) now supports Compaq Netelligent 10 T/2 PCI UTP/Coax Controller.
- wi(4) now supports SMC2531W-B EliteConnect Wireless Adapter.
- fxp(4) now supports Intel 82801FB (ICH6) 10/100 Ethernet.
- tlp(4) now supports LinkSys PCMPC200 CardBus Ethernet and ASIX AX88140A/AX88141 chipsets.
- Many improvements for atw(4), the ADMtek ADM8211 802.11 wireless network driver.
- auich(4) now supports nForce2 Ultra 400, nForce3 250 MCP-T AC-97, nForce4, Intel ICH7, and Intel 6300ESB audio controllers.
- auvia(4) now supports suspend and resume.
- puc(4) now supports VS-Com PCI-210H 2S/1P card, VScom PCI-200 2S card, and ADDI-DATA APCI-7800 8-port serial adapter.
- uftdi(4) now supports Sealevel Systems' uftdi-based USB-Serial adapter.
- uvscom(4) now supports SUNTAC U-Cable type A4 USB serial adapter.
- pms(4) now supports synaptics touchpad.
- lm(4) now supports iTE IT8705f and Winbond 83627THF environment monitor controllers.
- Many bug fixes and improvements for ehci(4) USB 2.0 controllers.
- Many fixes for uaudio(4) devices.
- uax(4) ASIX AX88172 USB Ethernet driver has been replaced by axe(4) driver derived from FreeBSD.
- The vnd(4) pseudo-device now supports compressed images.
- UFS_DIRHASH support is added from FreeBSD. UFS_DIRHASH improves lookup performance by maintaining in-core hash tables for large directories on UFS.
- Added ptyfs, a pseudo-terminal file system.
- The CD9660 file system now supports UTF-8 filenames using Joliet extensions.
- Ext2fs now supports large files (larger than 2 GB). fsck_ext2fs(8) also handles them and supports conversion from old file systems.
- The stability of the Log-structured File System (LFS) has been improved.
- vnd(4) can now read compressed disk images. A new tool vndcompress(1) is included to create them.
- Added PAM (Pluggable Authentication Modules) framework.
- Support wide strings in C++.
- Re-entrant library functions like getpwent_r() have been added.
- Some libc string functions for i386 have been replaced with optimized versions.
- Added DCE 1.1 RPC compatible UUID (Universally Unique Identifier) routines to libc.
- Added memmem(3) to libc, which is API compatible with the functions in FreeBSD and Linux.
System administration and user tools:
- The Veriexec framework is now using hash tables to store per-file data, resulting in much faster operation. It supports four different enforcement levels and full control over verbosity. Signature files are easier to generate and are more flexible than in the previous version.
- Added SHA2 to libc to provide more secure hashing algorithms and made cksum(1) and mtree(8) support them.
- Various improvements to the “sysinst” installation program, including Spanish language translation.
- Numerous improvements to syslogd(8), mostly from FreeBSD.
- fsck(8) now has a progress meter option.
- dump(8) now supports file system snapshots.
- Added sockstat(1), which lists open sockets.
- Added seq(1), a utility which prints a sequence of numbers. seq(1) is derived from Plan 9.
And of course there have also been innumerable bug fixes and other miscellaneous enhancements.
- audio(9) interface is improved. Added audio software filter pipeline capabilities, making it easier for hardware drivers to add encoding support or sample rates support.
- Updates of most third party packages that are shipped in the base system to the following stable releases:
- am-utils 6.1-rc2
- BIND 9.3.0
- binutils 2.15-20041204
- cvs 1.11.20
- file 4.13
- gcc 3.3.3
- groff 1.19.1
- OpenSSH 3.9
- OpenSSL 0.9.7d
- Postfix 2.1.5
- sendmail 8.13.3
- tcpdump 3.8.3
- texinfo 4.7
- XFree86 4.5.0
- Many new and updated packages in the pkgsrc system, including current versions of the KDE, GNOME and Xfce desktops, the Perl language, the Apache web server and a lot more. At the time of writing, there are over 5,700 third party packages available in pkgsrc.