<?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="support-hardware-pseudo-device">
<config param="desc" value="The NetBSD Foundation"/>
<config param="cvstag" value="$NetBSD: pseudo-device.xml,v 1.2 2008/03/18 14:57:13 reed Exp $"/>
<config param="rcsdate" value="$Date: 2008/03/18 14:57:13 $"/>
<head>
<title>Pseudo-devices Supported by NetBSD</title>
</head>

<sect1 id="top">
<title>Machine-independent pseudo-device and logical drivers</title>

<para>
Pseudo-device drivers add enhanced features to real devices, or provide
device-like interfaces to other subsystems.  They come in two flavors:
true pseudo-devices (as configured with the `pseudo-device' keyword in
the kernel configuration file) and logical devices (which attach as
children of real devices during the kernel's autoconfiguration phase).
</para>

<para>
Please note that these pages reflect the state of NetBSD-current. To check
the supported hardware list for a specific release of NetBSD, check
that release's installation notes.
If you are unsure, please boot a -current kernel or send mail to 
<email>netbsd-users@NetBSD.org</email>.
</para>

<sect2 id="pseudo-devs">
<title>Supported pseudo-device drivers</title>

<itemizedlist>
  <listitem>Concatenated disk driver (&man.ccd.4;).  This pseudo-device provides
    a method of combining multiple physical disk components into a single
    logical disk.  The components are either serially concatenated or
    interleaved (a.k.a. striped, RAID-0).  This is useful for combining
    many small components into a larger, more usable disk, or for
    enhancing performance on servers. For mirroring or parity, see
    the RAIDframe driver (&man.raid.4;).
  </listitem>
  <listitem>Memory disk driver (&man.md.4;).  This pseudo-device provides a
    disk-like device in memory, i.e. a `RAM disk'.  It has several
    modes of operation, including a mode which allows a kernel to
    mount an `injected' RAM disk as the root file system, useful
    for the install process.
  </listitem>
  <listitem>RAIDframe disk driver (&man.raid.4;).  This pseudo-device provides
    a RAID level 0, 1, 4, and 5 functionality.  Allows combining multiple
    physical disk components into RAID sets.
  </listitem>
  <listitem>Random device driver (&man.rnd.4;).  This pseudo-device provides
    a source of random data (numbers).  It has several modes of operation,
    and produces the random data by gathering entropy from physical devices
    on the system, and processing that entropy with a cryptographic hash
    function.
  </listitem>
  <listitem>Vnode disk driver (&man.vnd.4;).  This pseudo-device provides a
    disk-like interface to regular files.  This is particularly useful
    for making or reading raw file system and disk images.
  </listitem>
</itemizedlist>

</sect2>

<sect2 id="logical-devs">
<title>Supported logical device drivers</title>

<itemizedlist>
  <listitem>Audio device driver (&man.audio.4;).  This driver provides a consistent
    interface to sound hardware, which is backwards-compatible with the
    SunOS audio interface.  It provides several audio encodings, including
    ITU G.711 mu-law, ITU G.711 A-law, signed linear PCM, unsigned linear PCM,
    and adaptive differential PCM.  Source-code level compatibility with
    OSS Audio (previously known as VoxWare) is provided by a user space
    library called <emphasis role="bold">libossaudio.a</emphasis>.  Binary-level 
    compatibility with OSS Audio is provided for programs running in the Linux 
    emulation subsystem.  The &man.audio.4; driver also provides a mixer interface.
    It attaches to hardware devices that fall into the `Sound hardware'
    category of the supported hardware lists.
  </listitem>
  <listitem>Unified Workstation Console, WSCONS.  This is a set of drivers which
     attach as logical children of various input and output devices on
     workstations, providing a consistent, event-oriented interface to
     the hardware, for easier application development.  Drivers in the
     WSCONS suite include &man.wsdisplay.4; (which attaches to display
     card drivers), &man.wskbd.4; (which attaches to keyboard drivers),
     and &man.wsmouse.4; (which attaches to mouse drivers).  WSCONS provides
     virtual terminals, flexible terminal emulation (including Sun,
     VT100, and dumb terminal emulators), and flexible keyboard map support.
     WSCONS also provides emulation of the PCVT and SYSCONS console interfaces
     (legacy console drivers for 386BSD, NetBSD, and FreeBSD), raw
     keyboard compatibility, and compatibility with USL console ioctls,
     allowing legacy applications and programs for other systems to work
     (such as Doom on direct VGA). <emphasis role="bold">The WSCONS drivers 
     are still under development.</emphasis>
  </listitem>
  <listitem>Bluetooth Hub (&man.bthub.4;).  This driver provides a way in
     which we can attach services on remote devices operating over Bluetooth
     links to system interfaces. Currently supported services include
     Human Interface Devices (&man.bthidev.4;) such as mice (&man.btms.4;) and
     keyboards (&man.btkbd.4;) which attach to &man.wscons.4;, and SCO Audio
     (see &man.btsco.4;) which attaches to &man.audio.4; in a transparent
     manner.
  </listitem>
</itemizedlist>

</sect2>

</sect1>

<parentsec url="./" text="Hardware Devices Supported by NetBSD"/>
</webpage>

