Interoperability with other systems

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

Binary emulation

NetBSD provides a binary emulation system, which permits directly running binaries for other UNIX-like operating systems, including Linux, SunOS, and Ultrix on the same CPU type.

Note

For dynamically linked binaries, the dynamic linker and libraries from the emulated operating system are usually required.

In addition, the emulators/wine package permits running Windows applications.

Source compatibility

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

  • POSIX - 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.
  • XPG/SUS - The Single UNIX Specification (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.

We also follow some de facto standards:

  • BSD - Due to our strong Berkeley heritage, we try to remain source compatible with traditional BSD systems as well.
  • Linux - We provide an easy-to-use emulator for programs using the Linux procfs file system and OSS audio system, making many of them substantially easier to port.

Also see: more information on standards conformance.

Local file systems

In addition to the native 64-bit FFS/LFS file systems, and various userspace filesystems provided through PUFFS and FUSE, NetBSD can read file systems from other operating systems, including:

  • FFS - ffs (the Berkeley fast file system) 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.
  • ZFS - ZFS is an advanced file system that originated in Solaris, but is now supported by other operating systems, such as FreeBSD.
  • NILFS - nilfs is a log-structured file system originally native to Linux. The NetBSD implementation is currently read-only.
  • EXT2FS - ext2fs is a basic file system originally native to Linux.
  • MSDOSFS - msdosfs is compatible with the traditional MS-DOS file system, supported by Microsoft Windows, and commonly used on removable media such as USB drives and SD cards. It also supports long file names, as implemented in Windows 95.
  • NTFS - ntfs is the native file system used by Windows NT. Support for NTFS in the NetBSD kernel is currently read-only. However, the filesystems/fuse-ntfs-3g package provides read-write support.
  • CD9660 - 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 Rock Ridge extensions.
  • UDF - Universal Disk Format is the successor to ISO 9660 used for storage on optical media, most commonly DVDs.
  • ADOSFS - adosfs is compatible with AmigaDOS file systems. The NetBSD implementation is currently read-only.

Networking protocols

NetBSD supports a large number of network protocols. Some of them are:

  • TCP/IP - NetBSD ships with a world class TCP/IP implementation (also used in many TCP/IP research projects), designed to interoperate with any other system that speaks TCP/IP.
  • SMTP - This is the standard mail transfer protocol on the Internet.
  • NFS - This is the usual protocol used by UNIX-like file servers.
  • Appletalk - Combined with native kernel support for Appletalk, the net/netatalk package provides excellent file and print sharing service to Macintosh systems running Mac OS.
  • SMB (Microsoft networking) - Using the net/samba package, NetBSD can be used to provide file and print sharing services to systems running Microsoft Windows.