<?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-interop">
<config param="desc" value="Interoperability with other systems"/>
<config param="cvstag" value="$NetBSD: interop.xml,v 1.2 2007/06/03 17:44:03 dsieger Exp $"/>
<config param="rcsdate" value="$Date: 2007/06/03 17:44:03 $"/>
<head>
<title>Interoperability with other systems</title>
</head>

<para>
Good design and correct implementation are only part of the story.  NetBSD
is also highly interoperable with other systems.
</para>

<sect1 id="binary-emulation">
<title>Binary emulation</title>

<para>
NetBSD provides a binary emulation system, which permits directly running
binaries for other
<ulink url="../about/call-it-a-duck.html">UNIX-like</ulink> operating systems,
including FreeBSD, HP-UX, Interactive UNIX, Linux, OSF/1, SCO UNIX, SunOS,
System V Release 4, Solaris and Ultrix on the same CPU type.
For example, any NetBSD/m68k based platform can run SunOS 
binaries for
Sun 3 and 3x systems (but not SunOS binaries for SPARC or UltraSPARC
systems), while NetBSD/<port>sparc</port> can run SunOS and
Solaris binaries for SPARC systems.
<note>
<para>For dynamically linked binaries, the
dynamic linker and libraries from the emulated operating system
are usually required.</para>
</note>
</para>

<para>
In addition, the <filename role="pkg">emulators/wine</filename> package
and <filename role="pkg">emulators/doscmd</filename> package
permit running of Windows and MS-DOS applications, and the Linux version of
<ulink url="http://www.ardi.com/">Executor</ulink> can be used to run Mac OS
applications.
</para>
</sect1>

<sect1 id="source-compatibility">
<title>Source compatibility</title>

<para>
Although NetBSD releases are not currently certified, we attempt to be
compatible with established standards:
</para>

<itemizedlist>
  <listitem><emphasis role="bold">POSIX</emphasis> -
      The Portable Operating Systems Interface from IEEE has
      quickly become the standard for minimum operating services, and is often
      specified as a requirement for computer systems.  <emphasis>[This group of
      standards is not available on the web.]</emphasis>
  </listitem>

  <listitem><emphasis role="bold">XPG/SUS</emphasis> -
      The <ulink url="http://www.unix-systems.org/version2/">Single UNIX
      Specification</ulink> (an extended and now
      independently maintained subset of the X/Open Portability Guide) specifies
      a number of basic facilities not defined by POSIX.  We do not currently
      implement the STREAMS interface.
  </listitem>
</itemizedlist>

<para>
We also follow some de facto standards:
</para>

<itemizedlist>
  <listitem><emphasis role="bold">BSD</emphasis> -
      Due to our strong Berkeley heritage, we try to remain 
      source compatible with traditional BSD systems as well.
  </listitem>

  <listitem><emphasis role="bold">Linux</emphasis> -
      We provide an easy-to-use emulator for programs using the Linux OSS audio
      system, making many of them substantially easier to port.
  </listitem>
</itemizedlist>

<para>
Also see:
<ulink url="standards.html">more information on standards conformance</ulink>.
</para>
</sect1>

<sect1 id="local-file-systems">
<title>Local file systems</title>

<para>
In addition to the native 64-bit FFS file system, NetBSD can read file
systems from other operating systems, including:
</para>

<itemizedlist>
  <listitem><emphasis role="bold">FFS</emphasis> -
      ffs (the Berkeley <quote>fast file system</quote>) is compatible
      with the native file system on SunOS, Solaris, Ultrix, Digital
      UNIX, System V Release 4, and many other systems based on BSD or
      System V.
  </listitem>

  <listitem><emphasis role="bold">EXT2FS</emphasis> -
      ext2fs is the native file system currently used by Linux.
  </listitem>

  <listitem><emphasis role="bold">MSDOSFS</emphasis> -
      msdosfs is compatible with the traditional MS-DOS file system, used by 
      MS-DOS, Windows 95, Windows 98 and Windows NT.  It also supports long
      file names, as implemented in Windows 95.
  </listitem>

  <listitem><emphasis role="bold">CD9660</emphasis> -
      cd9660 implements the ISO 9660 file system, used on most CD-ROMs.  It
      includes support for long file names and UNIX-style permissions, using
      the de facto standard <quote>Rock Ridge</quote> extensions.
  </listitem>

  <listitem><emphasis role="bold">ADOSFS</emphasis> -
      adosfs is compatible with AmigaDOS file systems.
  </listitem>
</itemizedlist>
</sect1>

<sect1 id="networking">
<title>Networking protocols</title>

<para>
NetBSD supports a large number of network protocols.  Some of them are:
</para>

<itemizedlist>

  <listitem><emphasis role="bold">TCP/IP</emphasis> -
      NetBSD ships with a world class TCP/IP implementation (also
      used in many TCP/IP <ulink url="../gallery/research.html">research
      projects</ulink>), designed to interoperate with any other system that
      speaks TCP/IP.
  </listitem>

  <listitem><emphasis role="bold">SMTP</emphasis> -
      This is the standard mail transfer protocol on the Internet.
  </listitem>

  <listitem><emphasis role="bold">NFS</emphasis> -
      This is the usual protocol used by UNIX-like file servers.
  </listitem>

  <listitem><emphasis role="bold">Appletalk</emphasis> -
      Combined with native kernel support for Appletalk, the
      <filename role="pkg">net/netatalk</filename> package provides 
      excellent file and print sharing service to Macintosh systems 
      running Mac OS.
  </listitem>

  <listitem><emphasis role="bold">SMB</emphasis> (Microsoft networking) -
      Using the <filename role="pkg">net/samba</filename> package,
      NetBSD can be used to provide file and print sharing services to systems
      running MS-DOS, Windows 95, Windows 98, Windows NT and Windows 2000.
  </listitem>
</itemizedlist>
</sect1>

</webpage>
