<?xml version="1.0"?>
<!DOCTYPE webpage
  PUBLIC "-//NetBSD//DTD Website-based NetBSD Extension//EN"
    "http://www.NetBSD.org/XML/htdocs/lang/share/xml/website-netbsd.dtd">

<webpage id="about-features">
<config param="desc" value="NetBSD features"/>
<config param="cvstag" value="$NetBSD: features.xml,v 1.8 2008/03/09 00:43:30 weinem Exp $"/>
<config param="rcsdate" value="$Date: 2008/03/09 00:43:30 $"/>
<head>
<title>NetBSD features</title>
</head>


<sect1 id="top">

<para>
The features listed below are all available in the base system,
which is compiled from a single source tree.
</para>
</sect1>

<sect1 role="toc">

<sect2 id="about">
<title>About NetBSD</title>

<sect3 id="clean-design">
<title>Clean design</title>
<para>
    NetBSD focuses on clean design and well architected solutions.
    Because of this NetBSD may support certain 'exciting' features
    later than other systems, but as time progresses the NetBSD
    codebase is getting even stronger and easier to manage, while
    other systems that value features over code quality are finding
    increasing problems with code management and conflicts.
    </para>
    <para>
    NetBSD supports a <ulink url="#multi-platform">massive range of
    hardware platforms </ulink> from a single source tree, including
    simultaneous release across all platforms, and continues to
    attract users and experienced developers despite lack of media
    exposure and commercial backing - all thanks to attention to
    code quality.
</para>
</sect3>

<sect3 id="bsd-licence">
<title>BSD Licence</title>
<para>
    While NetBSD uses the GNU toolchain (compiler, assembler, etc),
    and certain other GNU tools, the entire kernel and the core of
    the userland utilities are shipped under a BSD licence. This
    allows companies to develop products based on NetBSD without
    the requirement to make changes public (as with the GPL). While
    the NetBSD Project encourages companies and individuals to feed
    back changes to the tree, we respect their right to make that
    decision themselves.
</para>
</sect3>

<sect3 id="source-availability">
<title>Full source availability</title>
<para>
    NetBSD makes the full source available, both the source code
    and the full CVS repository. Since everything is in the
    <emphasis>same</emphasis> source tree, you can always access any version
    of all files.  We were not the first BSD to make a CVS repository
    available, but we were the only one to meticulously check every
    file and remove only those revisions that contained tainted
    USL code, rather than discarding every revision before an
    arbitrary date.
</para>
</sect3>

<sect3 id="security">
<title>Security</title>
<para>
    NetBSD has the least number of security bugs reported in any public
    forums (such as bugtraq). We believe in security without the hype.
    We do manual code audits and add extended checking capabilities
    to our toolchain. Retrieval of kernel data is geared towards a sysctl
    based approach, as opposed to the traditional Unix based kmem access,
    which requires full access to the whole system, and is often exploited. 
</para>
</sect3>

<sect3 id="stability">
<title>Mature and stable</title>
<para>
    The BSD codebase can be traced back to the early 80s at UC
    Berkeley, and has been open to public scrutiny ever since.
    NetBSD continues this tradition and works ever harder to promote
    clean design and functionality over hype.  NetBSD is being used
    at NASA's Numerical Aerospace Simulation facility for a reason.
    Their main platforms are Alpha systems with lots of RAM and
    diskspace (terabyte and up), and they need a good, stable,
    codebase on which they can build custom projects.
    NetBSD was also the first free OS to make a y2k statement.
    See our <ulink url="../gallery/testimonial.html">testimonials</ulink> for
    more success stories!  
</para>
</sect3>

<sect3 id="hype-free">
<title>Hype free</title>
<para>
    Probably the only thing you won't get with NetBSD is the media
    hype. You'll need to get that somewhere else.
</para>
</sect3>

</sect2>
<html:hr />

<sect2 id="networking">
<title>Networking</title>

<sect3 id="ipf">
<title>Packet filtering and Network Address Translation (NAT)</title>
<para>
    NetBSD ships with an in-kernel packet filtering engine, allowing
    filtering of traffic based on interface, protocol, port, tos,
    ttl, source, destination and many other factors.  Keeping this
    inside the kernel permits higher performance.
    </para>
    <para>
    Network Address Translation can permit a local network of
    machines to use one set of addresses internally, and a different
    set (or even single IP address) externally. This can be used
    for security or simple convenience reasons, and also includes
    a transparent FTP proxy.  Again this is all kept inside the
    kernel for higher performance.
</para>
</sect3>

<sect3 id="ipv6">
<title>IPv6</title>
<para>
    NetBSD was the first free OS to provide a leading edge standards
    conforming IPv6 implementation, and we continue to work with the
    <ulink url="http://www.kame.net/">KAME</ulink> project to track changes
    to the specification.  NetBSD was also the first free operating
    system to ship with NFS via IPv6, for both client and server
    part. 
</para>
</sect3>

<sect3 id="nfs">
<title>Network File System (NFS)</title>
<para>
    NetBSD provides complete in-kernel NFS client and server support,
    interoperable with other systems, for both NFS2 and NFS3
    protocols.  This includes support for swapping over NFS, and
    no arbitrary limits on the size of swap partitions. Client side
    file creation is correctly implemented as an atomic operation
    - on systems without this dot locking is not reliable.
</para>
</sect3>

<sect3 id="network">
<title>Comprehensive and robust networking</title>
<para>
    NetBSD supports the following network types:
    <itemizedlist>
	<listitem>ARCnet</listitem>
	<listitem>ATM</listitem>
	<listitem>Ethernet</listitem>
	<listitem>FDDI</listitem>
	<listitem>HIPPI</listitem>
	<listitem>PPP - &man.pppd.8;</listitem>
	<listitem>SLIP - &man.slip.8;</listitem>
	<listitem>Token Ring</listitem>
    </itemizedlist>
    In the process of ARCnet support the ARP subsystem was reworked to
    remove Ethernet dependencies and to be more generally applicable.
    </para>
    <para>
    NetBSD also supports the following network protocols:
    <itemizedlist>
	<listitem>Appletalk - &man.atalk.4;</listitem>
	<listitem>ISO - &man.iso.4;</listitem>
	<listitem>TCP/IP (IPv4) - &man.ip.4;</listitem>
	<listitem>TCP/IP (IPv6) - &man.ip6.4;</listitem>
    </itemizedlist>
    </para>
    <para>
    NetBSD also ships with many standard networking daemons, with built-in
    tcp wrappers support where appropriate, including
    &man.bootparamd.8;, &man.bootpd.8;, &man.dhcpd.8;,
    &man.ftpd.8;, &man.identd.8;, &man.mopd.8;, &man.named.8;, &man.postfix.1;, &man.rarpd.8;,
    &man.rbootd.8;, &man.sshd.8;, &man.tftpd.8;, and &man.xntpd.8;.
</para>
</sect3>

<sect3 id="wireless">
<title>Wireless networking</title>
<para>
    NetBSD supports a long list of IEEE 802.11 based wireless
    networking devices, see &man.an.4;, &man.ath.4;, &man.atu.4;, &man.atw.4;, &man.awi.4;, &man.cnw.4;, &man.ral.4;, &man.ray.4;, &man.rtw.4;, &man.rum.4;, &man.wi.4;, &man.wpi.4;, and &man.zyd.4;.
</para>
</sect3>

</sect2>

<html:hr />

<sect2 id="portabilty">
  <title>Portability and supported platforms</title>
  
  <sect3 id="multi-platform">
    <title>Multi-platform support</title>
    <para>
      NetBSD is designed to take advantage of the latest high end
      hardware available in Alpha, PowerPC, and PC systems, while still
      retaining support for older architectures. This is all done
      from the same source tree and is only possible due to the
      emphasis on correct design and clean code. It also makes NetBSD
      an ideal codebase to port to new machines and embedded platforms, such as
      <ulink url="../ports/hpcmips/">mips</ulink>,
      <ulink url="../ports/hpcarm/">ARM</ulink> and
      <ulink url="../ports/hpcsh/">Super-H</ulink>
      based handheld Windows CE devices. 
    </para>
  </sect3>
  
  <sect3 id="embedded-systems">
    <title>NetBSD on Embedded Systems</title>
    <para>The  NetBSD Operating System is highly portable 
      and many of the supported hardware platforms are suited for embedded
      applications. Read more about 
      <ulink url="embed.html">NetBSD on Embedded Systems</ulink>
    </para>
  </sect3>
  
</sect2>

<html:hr />

<sect2 id="storage">
<title>Storage</title>

<sect3 id="raid">
<title>Hardware and software RAID</title>
<para>
    In addition to many standalone SCSI RAID devices, NetBSD
    supports a variety of RAID controllers and a complete software RAID 0,
    1, 4, 5, and 6 system in RAIDframe.  (<ulink
    url="http://www.cs.usask.ca/staff/oster/raid.html">More
    details</ulink>)
</para>
</sect3>

<sect3 id="pciide">
<title>High performance PCI IDE</title>
<para>
    Many recent PCI IDE controllers support high speed DMA transfers.
    NetBSD is one of the few systems to take advantage of these
    features 'out of the box'. Due to NetBSD's clean design the
    same drivers and features are available on <ulink
    url="../ports/alpha/">alpha</ulink>, <ulink url="../ports/i386/">i386</ulink>,
    <ulink url="../ports/macppc/">macppc</ulink> and
    <ulink url="../ports/sparc64/">sparc64</ulink>.
</para>
</sect3>

<sect3 id="scsipi">
<title>SCSIPI subsystem - combined SCSI and ATAPI</title>
<para>
    NetBSD implements a unified SCSIPI subsystem, avoiding code
    duplication and allowing a common userland SCSI and ATAPI
    interface for many devices.  As a direct result of this, when
    ATAPI CD-R units became available existing tools such as
    <filename role="pkg">sysutils/cdrtools</filename> worked with them 
    without any need for modification.
</para>
</sect3>

<sect3 id="large-filesystems">
<title>64-bit file systems</title>
<para>
    NetBSD has shipped with 64-bit file systems since the 1.0 release
    in October 1994. Under NetBSD berkeley fast file systems can be
    up to 4TB (4096GB) in size, on both 64- and 32-bit machines.
    Files and user file quotas can also reach terabytes.  Many
    other systems limit filesize to 4GB on 32-bit machines.
    </para>
    <para>
    An ffs can have up to 2^31 fragment blocks - the maximum
    file system size is dependent on the fragment size:
    <table id="table-64bit">
    <tr><th>Frag size</th><th>fs size</th></tr>
    <tr><td>512 bytes</td><td>1 TB</td></tr>
    <tr><td>1kB      </td><td>2 TB</td></tr>
    <tr><td>2kB      </td><td>4 TB</td></tr>
    </table>
</para>
</sect3>

<sect3 id="large-ide">
<title>Large IDE disks</title>
<para>
    NetBSD fully supports IDE disks of over 34GB in size, including
    booting from partitions beyond 8GB (where the BIOS permits).
    Starting with release 1.6, NetBSD can also use 48-bit logical
    block addresses (ATA-6 Expanded Addressing) in order to access disks
    with sizes greater than 137GB.
</para>
</sect3>

<sect3 id="softupdates">
<title>Soft Updates on FFS for high performance and reliability</title>
<para>
    Soft Updates permit metadata writes to be ordered to achieve
    close to asynchronous disk performance without risk of metadata
    corruption. This significantly improves the performance of FFS
    file systems.
    (<ulink url="http://www.ece.cmu.edu/~ganger/papers/CSE-TR-254-95/">More
    details</ulink>)
</para>
</sect3>

<sect3 id="filesystems">
<title>Many file system types</title>
<para>
    NetBSD can handle and manipulate many different file systems,
    which is useful for both data exchange and <ulink
    url="#emulation">binary compatibility</ulink>. Systems can also
    optionally mount file systems writing with opposing byte ordering.
    Note that unlike some other systems NetBSD imposes metadata
    write ordering, allowing &man.fsync.2; to be used to avoid important
    data loss in the event of power failure, even on ext2fs.
    <itemizedlist>
    <listitem><emphasis role="bold">ffs</emphasis> (Berkeley Fast File System) - both
	the latest 64-bit FFS, including <ulink url="#softupdates">soft
	updates</ulink>, and the older 32-bit FFS used by some vendors
	(SunOS, Ultrix, etc).</listitem>
    <listitem><emphasis role="bold">lfs</emphasis> (Log-structured File System) - LFS
	is designed to allow safe asynchronous file creation, fast
	file writes without intervening head seek and near-instantaneous
	crash recovery.  This is a more completely log structured
	form of 'Journaled' file systems such as IRIX's XFS, Reiserfs,
	Microsoft's NTFS, IBM's JFS, and similar file systems in
	Netware and Unixware.
	(<ulink url="http://www.hhhh.org/perseant/lfs.html">More details</ulink>).</listitem>
    <listitem><emphasis role="bold">tmpfs</emphasis> (an efficient memory
	file system)</listitem>
    <listitem><emphasis role="bold">iso9660</emphasis> (Standard CD file system, supports
        Rockridge and Joliet extensions).</listitem>
    <listitem><emphasis role="bold">msdosfs</emphasis> (Windows, MS-DOS, and Atari TOS) -
	including long filenames, FAT32 and VFAT.</listitem>
    <listitem><emphasis role="bold">ntfs</emphasis> (Windows NT native file system)</listitem>
    <listitem><emphasis role="bold">ext2fs</emphasis> (Linux extended file system).</listitem>
    <listitem><emphasis role="bold">ados</emphasis> (AmigaDOS file system).</listitem>
    <listitem><emphasis role="bold">filecorefs</emphasis> (Acorn RISC OS file system).</listitem>
    </itemizedlist>
    </para>
    <para>NetBSD also has a range of virtual file system types, including:
    <itemizedlist>
    <listitem><emphasis role="bold">kernfs</emphasis> - access kernel information</listitem>
    <listitem><emphasis role="bold">nullfs</emphasis> - for loopback mounts</listitem>
    <listitem><emphasis role="bold">portal</emphasis> - portal daemon file system</listitem>
    <listitem><emphasis role="bold">procfs</emphasis> - access process information</listitem>
    <listitem><emphasis role="bold">umapfs</emphasis> - automatically remap uids and gids</listitem>
    <listitem><emphasis role="bold">unionfs</emphasis> - attaches a directory in such a
	way that the contents of both directory trees remain visible.
	This can be used to mount a writable file system over a CD-ROM.</listitem>
    </itemizedlist>
</para>
</sect3>

<sect3 id="puffs">
    <title>Userspace filesystem support</title>

    <para>
	Starting with version 4.0, NetBSD provides the &man.puffs.3;
	framework for creating file systems as userspace servers. This
	opens a myriad of possibilities, like developing new filesystems
	in userspace for comfortable testing, or representing userspace
	functionality as a filesystem (such as a SSH filesystem).
	NetBSD 5.0 will also include the
	<emphasis>refuse</emphasis> library, which provides a
	<ulink url="http://fuse.sourceforge.net/">FUSE</ulink>-like
	interface. With <emphasis>refuse</emphasis>, many FUSE filesystems
	can run on top of &man.puffs.3;.
    </para>

    <para>
	You can find more information about puffs and refuse on our
	<quote><ulink url="../docs/puffs/">Filesystems in
	userspace</ulink></quote> page.
    </para>
</sect3>

<sect3 id="dvd">
<title>DVD ROM and RAM</title>
<para>
    NetBSD supports large capacity DVD drives for reading data in
    the common DVD file systems available nowadays.
</para>
</sect3>

<sect3 id="cgd">
<title>Disk encryption</title>
<para>
    NetBSD provides transparent disk encryption through the &man.cgd.4;
    driver. &man.cgd.4; acts as a logical device that is layered on top
    of another block device, such as a physical disk partition or a
    &man.vnd.4; pseudo device.
    &man.cgd.4; currently supports the AES, 3DES, and Blowfish ciphers
    in CBC mode.
</para>

<para>
    An extensive introduction to &man.cgd.4; is 
    <ulink url="../docs/guide/en/chap-cgd.html">included</ulink> in the
    <ulink url="../docs/guide/en/">NetBSD Guide</ulink>.
</para>
</sect3>

</sect2>
<html:hr />

<sect2 id="other">
<title>Other Features</title>

<sect3 id="pkg">
<title>The package system (applications)</title>
<para>
    The NetBSD Packages Collection, <ulink
    url="../docs/software/packages.html">pkgsrc</ulink>, provides easy
    source or binary installation of a large number of third party
    applications. It includes all the essentials such as <filename
    role="pkg">meta-pkgs/kde3</filename>,
    <filename role="pkg">meta-pkgs/gnome</filename>,
    <filename role="pkg">www/firefox</filename>, 
    <filename role="pkg">www/apache2</filename>, 
    <filename role="pkg">lang/perl5</filename>,
    <filename role="pkg">net/samba</filename>, 
    <filename role="pkg">misc/openoffice</filename>, 
    <filename role="pkg">graphics/gimp</filename>,
    and more.  Features include:
    <itemizedlist>
    <listitem>Easy install from local or remote binary packages, including
	automated download of any required packages.</listitem>
    <listitem>Handles fixed and wildcard dependencies both when building from
        source and installing binary packages.</listitem>
    <listitem>Allows automated installation for tools that cannot be redistributed
	in binary or source form.</listitem>
    <listitem>Provides an infrastructure designed to keep the information
	required to build each package both shorter and easier to
	maintain than in other package systems.</listitem>
    <listitem>Follows the concept of "pristine source", allowing both
        easy incorporation of local or 3rd party patches as well as 
        submitting changes back to package authors.</listitem>
    <listitem>Includes built-in support for the internal structure of many
	common source distributions like Imakefiles, GNU autoconf, ...,
        reducing the need for complicated package specific build rules.</listitem>
    </itemizedlist>
    Pkgsrc was derived from FreeBSD's 'ports' system, but has been
    substantially enhanced.
</para>
</sect3>

<sect3 id="mi-drivers">
<title>Machine independent driver framework</title>
<para>
    A clean separation of chipset drivers from bus attach code, and
    implementation of a MI &man.bus.space.9; and &man.bus.dma.9; framework has the
    following advantages:
    <itemizedlist>
    <listitem>Simplifies porting to new hardware.</listitem>
    <listitem>Reduces the size of a kernel - devices which use same
       	controller share the same driver, and only the necessary
	bus dependent parts (isa/eisa/pci/pcmcia/sbus/cardbus...)
	are included.</listitem>
    <listitem>Device drivers (including 32-bit pci devices) are ready
	for 64-bit physical memory. (Unlike many other systems).</listitem>
    <listitem>Bounce buffer support is unnecessary on the machines which have
	appropriate hardware (eg. sparc, nearly all alpha), and where
	needed it is a function of the bus code, not each individual
	driver.</listitem>
    </itemizedlist>
</para>
</sect3>

<sect3 id="mi-audio">
<title>Machine independent audio framework</title>
<para>
    In a similar fashion to the SCSI subsystem, NetBSD has a generic
    audio layer which attaches to the individual chipset drivers.
    This gives significantly more consistency and code sharing than
    other free OS projects.
</para>
</sect3>

<sect3 id="kernel-debugging">
<title>Kernel debugging</title>
<para>
    <itemizedlist>
    <listitem>NetBSD has fully featured in-kernel debugger (DDB), much more
        advanced than some other systems 'SysRQ' type features.</listitem>
    <listitem>Supports kernel crash dumps to ease kernel debugging.</listitem>
    <listitem>Strict consistency check - if a null pointer is accessed by the
	kernel it will either drop into DDB, or crashdump and reboot
	to avoid running with potentially corrupted data.</listitem>
    </itemizedlist>
</para>
</sect3>

<sect3 id="emulation">
<title>OS emulation</title>
<para>
    NetBSD's unique binary compatibility protects users' investment
    in existing applications by in kernel support for non-native
    binaries (for the same processor) to run transparently. Systems
    include:
    <itemizedlist>
    <listitem>BSD/OS (i386)</listitem>
    <listitem>Darwin (macppc)</listitem>
    <listitem>FreeBSD (i386)</listitem>
    <listitem>HP-UX (m68k)</listitem>
    <listitem>IRIX (sgimips)</listitem>
    <listitem>Linux (i386, m68k, alpha, powerpc, mips, arm)</listitem>
    <listitem>OSF1/Digitial UNIX/Tru64 (alpha)</listitem>
    <listitem>SCO/iBCS2 (i386)</listitem>
    <listitem>Solaris and SVR4 (sparc, sparc64, i386, m68k)</listitem>
    <listitem>SunOS 4 (sparc, sparc64, m68k)</listitem>
    <listitem>ULTRIX (mips, vax)</listitem>
    </itemizedlist>
    </para>
    <para>
    The <ulink url="../docs/software/packages.html">package system</ulink>
    includes many <filename role="pkg">emulators</filename>, including
    <itemizedlist>
    <listitem><filename role="pkg">emulators/bochs</filename> - i386 machine emulator</listitem>
    <listitem><filename role="pkg">emulators/ia64sim</filename> - IA64 (Intel(R) Architecture 64)</listitem>
    <listitem><filename role="pkg">emulators/qemu</filename> - a generic processor emulator using dynamic translation</listitem>
    <listitem><filename role="pkg">emulators/spim</filename> - MIPS R2000 Simulator</listitem>
    <listitem><filename role="pkg">emulators/uae</filename> - Amiga</listitem>
    <listitem><filename role="pkg">emulators/wine</filename> - Windows emulator</listitem>
    <listitem><filename role="pkg">emulators/xcopilot</filename> - PalmPilot</listitem>
    <listitem><filename role="pkg">emulators/xmame</filename> - Many old arcade and console machines</listitem>
    </itemizedlist>
    See also <ulink url="#filesystems">supported file systems</ulink>.
</para>
</sect3>

<sect3 id="usb">
<title>USB (Universal serial bus)</title>
<para>
    NetBSD was the first free OS to provide USB support, and was
    using USB on Apple Power Macintosh machines before Apple had
    Mac OS X even booting. The USB support is available on all
    appropriate platforms, including <ulink url="../ports/alpha/">alpha</ulink>,
    <ulink url="../ports/i386/">i386</ulink>, and <ulink
    url="../ports/macppc/">macppc</ulink>.  Supported devices include
    mice, keyboards, modems, and mass storage devices (ZIP), with
    more drivers becoming available as the USB standard develops.
</para>
</sect3>

<sect3 id="other-devices">
<title>Other device support</title>
<para>
    <itemizedlist>
    <listitem>Well designed and robust support for ISA PnP (Plug'n'play) devices.</listitem>
    <listitem>Raw device access.</listitem>
    </itemizedlist>
</para>
</sect3>

<sect3 id="uvm">
<title>The UVM virtual memory system</title>
<para>
    UVM is a new virtual memory system specifically designed to
    provide the I/O and IPC (Inter Process Communication) systems
    with a range of flexible data movement mechanisms.  UVM completely
    replaces the Mach based 4.4BSD VM system, improving virtual
    memory performance over other VM systems.  (<ulink
    url="../docs/kernel/uvm.html">More details</ulink>)
</para>
</sect3>

<sect3 id="cardbus">
<title>Cardbus</title>
<para>
    Support for the 'cardbus' PC-card and PCMCIA sockets found in
    modern laptops is available, including hot-swapping, power
    management  and detaching of devices. 
</para>
</sect3>

<sect3 id="wscons">
<title>wscons machine independent console</title>
<para>
    The &man.wscons.4; driver provides support for machine independent
    access to the console. It is composed of a number of cooperating
    modules, in particular:
    <itemizedlist>
    <listitem>hardware support for display adapters, keyboards and mice, see
        &man.wsdisplay.4;, &man.wskbd.4;, and &man.wsmouse.4;.</listitem>
    <listitem>terminal emulation modules, such as vt100 and sun.</listitem>
    <listitem>compatibility options to support control operations and other
	low-level behaviour of existing terminal drivers.</listitem>
    </itemizedlist>
</para>
</sect3>

<sect3 id="64bit">
<title>64-bit clean</title>
<para>
    NetBSD was the first free OS to support a 64-bit architecture
    such as the <ulink url="../ports/alpha/">alpha</ulink>, and still
    supports more alpha models than any other. The entire source
    tree has been 64-bit clean for some time, and the <ulink
    url="../docs/software/packages.html">package system</ulink>
    includes patches to make many third party applications 64-bit
    clean.
</para>
</sect3>

<sect3 id="non-exec">
<title>Non-executable stack and heap </title>
<para>
    Starting with version 2.0, NetBSD supports non-executable mappings
    on many platforms. If non-executable mappings are enabled, parts
    of the stack and heap are made non-executable when they are marked
    writable. This makes exploiting potential buffer overflows harder.
    We have a seperate page with more 
    <ulink url="../docs/kernel/non-exec.html">detailed information</ulink>
    about this subject.
</para>
</sect3>

<sect3 id="kauth">
<title>Kernel authorization framework (kauth)</title>
<para>
    Starting with NetBSD 4.0, the NetBSD kernel uses an extensive
    authorization framework, &man.kauth.9;. In contrast to
    earlier NetBSD versions, where the access control policy was
    mostly hard-coded in the kernel following traditional Unix and
    BSD semantics, every authorization-related decision
    is now passed to the &man.kauth.9; framework. This allows for the
    implementation of new security models, either as part of the
    base system or as LKMs, and modification of the traditional
    4.4BSD/NetBSD security model.
</para>
</sect3>

</sect2>
</sect1>
</webpage>
