Jump to content

Comparison of operating system kernels

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Pdegoeje (talk | contribs) at 22:49, 8 September 2009 (File system support: FreeBSD supports ReiserFS). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A kernel is the core component of every computer operating system. While kernels are highly technical in nature, and may be hidden from the user under many layers of software and applications, they do have distinguishing or characteristic features, such as computer architecture, design goals, as well as the more practical features that they provide. A direct comparison of operating system kernels can highlight these design choices, and provide insight into different niches and the evolving technology of kernels.

Comparison criterion

The following tables compare general and technical information for a number of widely used and currently available operating system kernels. Please see the individual products' articles for further information.

Even though there is a large number and variety of available Linux distributions, all of these kernels are grouped under a single entry in these tables, due to differences being of the patch level. See comparison of Linux distributions for a detailed comparison. For Linux distributions that have highly modified kernels, for example Real-time computing kernels, they should be listed separately. There are also a wide variety of minor BSD operating systems, many of which can be found at Comparison of BSD operating systems.

The tables specifically do not include subjective viewpoints on the merits of each kernel or operating system. For this kind of information, please see operating system advocacy.

Feature overview

The major contemporary general-purpose kernels are shown in comparison. Only an overview of the technical features is detailed.

Kernel name Used in Creator Executable
format
(also see
section
below)
Type Integrated firewall SMP support Multiple architecture
support
(also see
section below).
Multitasking Virtualization Security Profiling/Debugging Soft real-time support Hard real-time support
Agnix [1] ? ? ? ? ? ? ? Yes ? ? ? ? ?
Amiga Exec AmigaOS Commodore International/Carl Sassenrath HUNK microkernel (atypical)[1] No No No Yes ? ? ? ? ?
Amiga Exec SG (2nd Generation) AmigaOS 4 Hyperion Entertainment under
license of Amiga Inc.
ELF (Can
run 68000
code Hunk)
microkernel (atypical) No No No Yes ? ? ? ? ?
DragonFly BSD kernel [2] DragonFly BSD Matt Dillon ELF, others - platform dependent hybrid IPFilter, Ipfirewall,
PF
Yes Yes Yes ? ? ? ? ?
FreeBSD kernel FreeBSD

Debian GNU/kFreeBSD Gentoo/FreeBSD

The FreeBSD Project ELF, others - platform dependent monolithic IPFilter, Ipfirewall,
PF
Yes Yes Yes chroot, jail POSIX ACL[2], TrustedBSD MAC, OpenBSM KDB, DDB, KGDB, DTrace, hwpmc ? ?
GNU Hurd [3] Bee GNU/Hurd

Debian
GNU/Hurd

GNU Project/Free Software Foundation ELF microkernel ? No No Yes ? ? ? ? ?
GNU Mach [4] ? GNU Project/Free Software Foundation ? microkernel ? No No Yes ? ? ? ? ?
Inferno kernel Inferno Bell Labs / Vita Nuova Holdings ? virtual machine ? Yes Yes Yes ? ? ? ? ?
L4 L4 Jochen Liedtke ? microkernel ? Yes Yes Yes ? ? ? ? ?
Linux kernel [5] Linux Linus Torvalds ELF, others monolithic netfilter/
iptables
Yes Yes Yes cgroups, chroot, Lguest, Xen, KVM, kvm-lite POSIX ACL, POSIX Capabilities, keyctl, LSM(SELinux, SMACK, TOMOYO Linux, AppArmor) Oprofile, kprobe, SystemTap, jprobe, ftrace, KDB, KGDB, Kernel marker CONFIG_PREEMPT (CONFIG_PREEMPT_RT Patch)
Mach [6] ? Carnegie Mellon University ? microkernel ? ? ? ? ? ? ? ? ?
Minix 3 [7] Minix 3 Andrew S. Tanenbaum a.out
microkernel No No No Yes No Unix permissions Call profiling, statistical profiling, Minix Debugger (mdb) No No
MkLinux [8] ? OSF Research Institute and Apple Computer ? microkernel ? ? ? ? ? ? ? ? ?
NetBSD kernel NetBSD

Debian GNU/NetBSD

The NetBSD Project ELF, others - platform dependent monolithic IPFilter

PF

Yes Yes Yes Xen, chroot kauth DDB, KGDB, tprof POSIX real-time scheduling extensions Kernel preemption
NetWare kernel Novell NetWare Novell NLM hybrid Yes Yes No Yes ? ? ? ? ?
OpenBSD kernel OpenBSD OpenBSD developers ELF, others - platform dependent monolithic PF Yes Yes Yes ? ? ? ? ?
Plan 9 kernel Plan 9 from Bell Labs Bell Labs ? hybrid ipmux Yes Yes Yes ? ? ? ? ?
ReactOS kernel ReactOS ReactOS Foundation PE, others? hybrid ? ? ? Yes ? ? ? ? ?
SunOS kernel SunOS Sun Microsystems a.out
monolithic ? Yes Yes Yes ? ? ? ? ?
Solaris kernel Solaris Operating System,

Nexenta OS

Sun Microsystems ELF (32-bit
only until
Solaris 7)
monolithic IPFilter Yes Yes Yes Zones ? DTrace ? ?
Trix ? Massachusetts Institute of Technology ? monolithic ? ? ? ? ? ? ? ? ?
Windows NT kernel [9] Windows NT, 2000,
XP, 2003, Vista, Windows 7
Microsoft PE, others? hybrid Yes Yes Yes Yes ? ? ? ? ?
XNU (Darwin kernel) [10] Mac OS X

OpenDarwin GNU/Darwin

Apple Computer Mach-O hybrid Ipfirewall Yes Yes Yes ? ? ? ? ?
SPARTAN kernel (HelenOS kernel) [11] HelenOS Jakub Jermar ELF microkernel ? Yes Yes Yes ? ? ? ? ?
Kernel name Used in Creator Executable
format
(also see
section
below)
Type Integrated firewall SMP support Multiple architecture
support
(also see
section below).
Multitasking Virtualization Security Profiling/Debugging Soft real-time support Hard real-time support

Transport protocol support

Kernel Name TCP UDP SCTP DCCP
FreeBSD kernel Yes Yes Yes No
Linux kernel Yes Yes Yes Yes
Windows NT kernel Yes Yes No ?

In-kernel server support

Kernel Name HTTP FTP NFS CIFS
Linux kernel (TUX web server patch) (TUX web server patch) knfsd No
Windows NT kernel HTTP.sys ? ? ?
Solaris kernel ? ? ? Yes[3]

Binary format support

A comparison of OS support for different binary formats (executables):

Kernel Name a.out ECOFF ELF FDPIC
ELF
binaries
(mmu less)
flat
binaries
(superH)
HUNK Mach-O Misc
(wrapper
based,
like
interpreters)
PE SOM
(PA-RISC,
HP-UX)
NLM
Amiga Exec No No Yes[4] No No Yes No No No No ?
Linux kernel Yes Yes Yes Yes Yes No No Yes Some[5] Yes ?
MINIX 3 Yes No No No No No No No No No No
ReactOS kernel ? ? ? ? ? ? ? ? Yes ? ?
Solaris kernel Yes[6] No Yes[7] No No No No No Some[8] No ?
Windows NT kernel No No No No No No No No Yes No No
XNU No No No No No No Yes No No No ?

File system support

Physical file systems:

Kernel Acorn ADFS Amiga FFS BeFS BFS cramfs EFS ext2 ext3 ext4 FAT FreeVxFS HFS HFS+ HPFS ISO 9660 JFFS JFFS2 JFS Minix fs NSS NTFS OCFS QNX4 FS System V FS UDF UFS XFS ZFS ReiserFS Reiser4 Btrfs HAMMER Tux3 exFAT
FreeBSD kernel No No No No No No Yes Yes ? Yes No No No No Yes No No No No No Template:Yes (yellow) No No No Yes Yes Template:Yes (yellow) Yes Template:Yes (yellow) No No No No ?
Linux kernel Template:Yes (yellow)
[9]
Yes Template:Yes (yellow) Yes Yes Template:Yes (yellow) Yes Yes Yes Yes Template:Yes (yellow) Yes Yes Yes Yes Yes Yes Yes Yes Yes Template:Yes (yellow) Yes Template:Yes (yellow)
[9]
[10]
Template:Yes (yellow) Yes Template:Yes (yellow)
[9]
Yes Yes Yes Yes Yes No No ?
MINIX 3 No No No No No No No No No Tools available, cannot mount No No No No Tools available, cannot mount No No No Yes No No No No No No No No No No No No No No No
NetWare kernel No No No No No No No No No Yes No No No No Yes No No No No Yes No No No No Yes No No No No No No No No ?
ReactOS kernel No No No No No No No No No Yes[11] No No No No Yes[11] No No No No No No No No No Yes[11] No No No No No No No No No
Solaris kernel ? ? ? ? ? ? Yes ? ? Yes ? ? ? ? Yes ? ? ? ? No No ? ? ? Yes Yes ? Yes No No No No No ?
Windows NT kernel ? ? ? ? ? ? Template:Yes (yellow)
[12]
Template:Yes (yellow)
[13]
? Yes ? Template:Yes (yellow)
[13]
Template:Yes (yellow)
[13]
? Yes ? ? ? ? No Yes ? ? ? Yes ? ? No No No No No No Yes
XNU No No No No No No Template:Yes (yellow)
[14]
Template:Yes (yellow)
[14]
No Yes No Yes Yes No Yes No No No No No Template:Yes (yellow) No No No Yes Yes No Template:Yes (yellow) No No No No No ?

Supported CPU architectures

kernel 68k DEC
Alpha
ARM ARM (nommu) HP
PA-RISC
IA-64 MIPS MIPS (nommu) PowerPC PowerPC
970
System/
390
SuperH SuperH (nommu) SPARC 32-bit SPARC 64-bit SPARC (nommu) x86 x86-64 m68k m68k (nommu) Blackfin (nommu) i960 MicroBlaze H8300 V850 Xtensa Xtensa (nommu) ETRAX CRIS FR-V AVR32 M32R MN10300 E1 (nommu) Nios (nommu) Nios II Nios II (nommu) Intel 8086 (used in pc98) Intel 80286 PDP-11 WDC 65C816
Linux kernel Yes Yes Yes Yes Yes Yes Yes ? Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes No (dropped in 2.6.x) Yes Yes Yes Yes Yes Yes Yes No No No No No (dropped in 2.6.x) No No No
DragonFly BSD kernel No No No No No No No No No No No No No No No No Yes No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
FreeBSD kernel No Yes Yes ? No Yes No No Yes No No No No No Yes ? Yes Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Yes ? ? ?
MINIX 3 No No In progress ? No No In progress ? No No No No No No No No Yes In progress No No No No No No No No No No No No No No No No No No ? ? No No
NetBSD kernel Yes Yes Yes No[15] Yes Yes Yes No[15] Yes No No Yes No[15] Yes Yes No[15] Yes Yes Yes No[15] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Yes ?
NetWare kernel No No No No No No No No No No No No No No No No Yes No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
OpenBSD kernel Yes Yes Yes ? Yes No Yes ? Yes No No Yes ? Yes Yes ? Yes Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Solaris kernel No No No No No No No No No No No No No Yes Yes ? Yes Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Windows NT kernel No NT 5.0 RC1 and below only No ? No Yes NT 4.0 and below only ? NT 3.51 and NT 4.0 only No No No No No No No Yes Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Windows CE kernel No No Yes ? No No Yes ? No No No Yes ? No No No Yes ? No No No No No No No No No No No No No No No No No No No No No No
XNU No No Yes ? No No No No Yes Yes[16] No No No No No No Yes Yes[16] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SPARTAN kernel No No Yes ? No Yes Yes ? Yes In Progress No No No No Yes ? Yes Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Supported kernel execution environment

Kernel name Linux Darwin Windows NT kernel FreeBSD NetBSD Solaris OSF/1 Amiga Unix SunOS BSDI IBCS2 systems IRIX Ultrix NDIS SVR4
Linux Yes No No No No No No No No No No No No No No
NetBSD Yes[17] No? [12]? No? [13]? Yes[17] Yes Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes [14] Yes
FreeBSD Yes[18] No No Yes No No No No No No No No No Yes[18] Yes[18]
Windows NT kernel No No Yes No No No No No No No No No No No No
ReactOS kernel No No Yes No No No No No No No No No No No No
Kernel name Linux Darwin Windows NT kernel FreeBSD NetBSD Solaris OSF/1 Amiga Unix SunOS BSDI IBCS2 systems IRIX Ultrix NDIS SVR4

Supported cipher algorithms

This may be usable on some situations like file system encrypting.

Kernel name DES AES Blowfish Triple DES Serpent Twofish CAST-128 DES-X IDEA RC2 RC5 SEED Skipjack TEA XTEA CAST-256 RC4 Camellia Anubis KHAZAD Salsa20 FCrypt
Linux Yes Yes Yes Yes Yes Yes Yes ? ? ? ? Yes ? Yes Yes Yes Yes Yes Yes Yes Yes Yes
Kernel name DES AES Blowfish Triple DES Serpent Twofish CAST-128 DES-X IDEA RC2 RC5 SEED Skipjack TEA XTEA CAST-256 RC4 Camellia Anubis KHAZAD Salsa20 FCrypt

Supported compression algorithms

This may be usable on some situations like compression file system.

Kernel name Deflate zlib LZO
Linux Yes Yes Yes
Kernel name Deflate zlib LZO

Supported hash algorithms

Kernel name CRC32c MD4 MD5 SHA-1 SHA-256 SHA-512 SHA-1 Michael MIC RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 Tiger Whirlpool MD2 GOST LASH-160 LASH-256 LASH-384 LASH-512
Linux Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes ? ? ? ? ? ?
Kernel name CRC32c MD4 MD5 SHA-1 SHA-256 SHA-512 SHA-1 Michael MIC RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 Tiger Whirlpool MD2 GOST LASH-160 LASH-256 LASH-384 LASH-512
Kernel name ACL SCO LMP HCI L2CAP BNEP RFComm. SDP TCP AVTCP AVDTP OBEX CMTP HIDP HCRP CAPI PPP
Linux ? Yes ? Yes Yes Yes Yes ? ? ? ? ? Yes Yes ? ? ?
FreeBSD kernel ? ? ? Yes Yes ? Yes Yes ? ? ? ? ? ? ? ? ?
Kernel name ACL SCO LMP HCI L2CAP BNEP RFComm. SDP TCP AVTCP AVDTP OBEX CMTP HIDP HCRP CAPI PPP

See also

Footnotes

  1. ^ The Amiga hardware lacked support for memory protection, so the strong isolation goals of the microkernel design could not be achieved.[citation needed]
  2. ^ http://www.freebsd.org/doc/en/books/handbook/fs-acl.html
  3. ^ OpenSolaris Project Weaves CIFS Server Into the Solaris Kernel
  4. ^ AmigaOS up to version 3.9 could use the ELF format for PowerPC executables and libraries through ppc.library, also known as PowerUP. AmigaOS 4, uses ELF as its native executable format.
  5. ^ The Linux kernel can recognize PE binaries through binfmt_misc and run them using Wine
  6. ^ to support SunOS 4.x binaries
  7. ^ including a Linux compatibility option
  8. ^ The Solaris kernel can PE using Wine
  9. ^ a b c experimental and dangerous write support
  10. ^ write support currently broken
  11. ^ a b c Version Status - ReactOS
  12. ^ additional driver needed - see http://www.fs-driver.org/
  13. ^ a b c additional driver needed
  14. ^ a b Third party module required. Mac OS X Kernel Module available here
  15. ^ a b c d e NetBSD Projects - Support for MMU-less systems
  16. ^ a b kernel is 32-bit code; 64-bit user-mode code is supported
  17. ^ a b c d e f g h i j NetBSD Binary Emulation
  18. ^ a b c Linux emulation in FreeBSD - 2 A look inside...