Comparison of operating system kernels

Comparison of operating system kernels

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.

Contents

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. Linux distributions that have highly modified kernels, for example Real-time computing kernels, 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 Can keep RTC in UT[1]
Agnix [3] ? ? ? ? ? ? ? Yes ? ? ? ? ? ?
Amiga Exec AmigaOS Commodore International HUNK Exokernel (atypical)[2] No No No Yes No No Yes No Yes ?
Amiga Exec SG (2nd Generation) AmigaOS 4 Hyperion Entertainment ELF/HUNK Exokernel (atypical) No No No Yes No No Yes No No ?
DragonFly BSD kernel [4] DragonFly BSD Matt Dillon ELF, others - platform dependent hybrid IPFilter, Ipfirewall,
PF
Yes Yes Yes chroot, jail,vkernel ? DDB[disambiguation needed ], KGDB ? ? ?
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[3], TrustedBSD MAC, OpenBSM KDB, DDB[disambiguation needed ], KGDB, DTrace, hwpmc Yes ? ?
GNU Hurd [5] Bee GNU/Hurd,

Debian
GNU/Hurd

GNU Project/Free Software Foundation ELF microkernel ? No No Yes ? ? ? ? ? ?
GNU Mach [6] ? 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 Yes Afterburner/L4 [7], Marzipan [8] Capabilities [9] Fiasco L4 Kernel [10] ? ?
Linux kernel [11] Linux Linus Torvalds ELF, others monolithic netfilter/
iptables
Yes Yes Yes cgroups, chroot, Lguest, Xen, KVM, kvm-lite, LXC POSIX ACL, POSIX Capabilities, keyctl, LSM(SELinux, SMACK, TOMOYO Linux, AppArmor) OProfile, kprobe, SystemTap, JProbe, ftrace, KDB, KGDB, kernel marker, perf tools CONFIG_PREEMPT (CONFIG_PREEMPT_RT Patch) Yes
Mach [12] NextStep and OpenStep Carnegie Mellon University Mach-O microkernel ? ? ? ? ? ? ? ? ? ?
Minix 3 [13] 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 [14] ? 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[disambiguation needed ], KGDB, tprof POSIX real-time scheduling extensions Kernel preemption[citation needed] ?
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 ? ? ? ? ? ?
Rockbox kernel Rockbox The Rockbox Project ? ? ? ? Yes ? ? ? ? ? ? ?
SunOS kernel SunOS Sun Microsystems a.out
monolithic ? Yes Yes Yes ? ? ? ? ? ?
Solaris kernel Solaris,

OpenSolaris, Nexenta OS

Sun Microsystems ELF (32-bit only until
Solaris 7 in 1998)
monolithic IPFilter Yes Yes Yes Zones, chroot ACL, RBAC, Auditing, Privileges, Zones, Trusted Extensions DTrace, CPU profiling, microstate accounting, perf counters, kernel lock stats, kstats, mdb, kmdb Real-time scheduler ? ?
Trix ? Massachusetts Institute of Technology ? monolithic ? ? ? ? ? ? ? ? ? ?
Windows NT kernel [15] Windows NT, 2000,
XP, 2003, Vista, Windows 7
Microsoft PE, others? hybrid Yes Yes Yes Yes ? ? ? ? ? No
XNU (Darwin kernel) [16] Mac OS X,

OpenDarwin, GNU/Darwin

Apple Computer Mach-O hybrid Ipfirewall,
PF (starting in Lion)
Yes Yes Yes ? ? DTrace ? ? ?
SPARTAN kernel [17] 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 Can keep RTC in UT

Transport protocol support

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

In-kernel Security

Kernel Name File access control Disable memory execution support Kernel ASLR Mandatory access control Capability-based security In-kernel key management Audit API Sandbox SYN flood protection UDP flood protection Ping flood protection Smurf attack protection Network Behavior Analysis
Linux Kernel Traditional Unix permissions, POSIX ACL Yes Yes LSM(SELinux, SMACK, TOMOYO Linux, AppArmor) POSIX Capabilities keyctl fanotify SELinux Sandbox, seccomp SYN cookies No? No? No? No
FreeBSD Kernel Traditional Unix permissions, POSIX ACL Yes ? TrustedBSD MAC ? ? OpenBSM Capsicum ? ? ? ? ?
Solaris Kernel Traditional Unix permissions, POSIX ACL, ZFS ACL Default ? Solaris Trusted Extensions ? ? ? ? ? ? ? ? ?
Windows NT kernel Access control list DEP Yes Mandatory Integrity Control ? ? ? ? ? ? ? ? ?
XNU Traditional Unix permissions, access control list Yes Yes Yes ? ? OpenBSM Apple XNU Sandbox ? ? ? ? ?

In-kernel Virtualization

Kernel Name Container (no resource management, no security) Container (no resource management) Container (resource management) Paravirtualization Full virtualization User-space execution
Linux Kernel chroot LXC Virtio, Hyper-V (guest only), Xen (guest only), VMI (guest only), kvm-lite, lguest KVM UML
FreeBSD chroot jail No ? ? ?
Solaris kernel chroot Solaris Containers / Zones No No No
Windows NT kernel ? ? ? Hyper-V Hyper-V ?
XNU chroot ? ? ? ? ?

In-kernel server support

Kernel Name HTTP FTP NFS CIFS Name server transport-layer load balancer application-layer load balancer 9P SSL proxy
Linux kernel (TUX web server patch) (TUX web server patch) knfsd No ? IP Virtual Server (KTCPVS) (patch available) No
Solaris kernel ? ? Yes Yes[4] ? Yes[5] Yes[6] ? KSSL
Windows NT kernel HTTP.sys ? ? Yes ? Yes Yes No ?
XNU No No Yes No No No No No No

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 PEF
Amiga Exec No No Yes[7] No No Yes No No No No ? ?
HP-UX No No Yes No No No No No No Yes No No
Linux kernel Yes Yes Yes Yes Yes No No Yes Some[8] Yes ? No
MINIX 3 Yes No No No No No No No No No No No
NetBSD kernel Yes Yes Yes ? ? ? Yes ? Yes ? ? ?
ReactOS kernel ? ? ? ? ? ? ? ? Yes ? ? ?
Solaris kernel Yes[9] No Yes[10] No No No No No Some[11] No ? ?
Windows NT kernel No No No No No No No No Yes No No No
XNU No No No No No No Yes No No 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 Yes No No No No Yes No No No No No limited write No No No Yes Yes read only Yes read only No No No No ?
Linux kernel Yes
[12]
Yes read only Yes Yes read only Yes Yes Yes Yes read only Yes Yes Yes Yes Yes Yes Yes Yes Yes limited write
[13]
Yes Yes
[12]
[14]
write support? Yes Yes
[12]
Yes both FUSE and native Yes Yes Yes No Yes (experimental patch is available[15])
MINIX 3 No No No No No No Yes No No Tools available, cannot mount No No No No Yes 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[16] No No No No Yes[16] No No No No No No No No No Yes[16] 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 ? ? ? ? ? ? Yes
[17]
Yes
[18]
? Yes ? Yes
[18]
Yes
[18]
No Yes ? ? ? ? No Yes ? ? ? Yes ? ? No No No No No No Yes
XNU No No No No No No Yes
[19]
Yes
[19]
No Yes No Yes Yes No Yes No No No No No limited write No No No Yes Yes No read only No No No No No Yes

Networked filesystem support

Kernel Name NFS AFS CIFS Coda 9P Ceph
FreeBSD kernel Yes Yes Yes No No No
Linux kernel Yes Yes Yes Yes Yes Yes
Solaris kernel Yes Yes Yes No No No
Windows NT kernel Yes Yes Yes No No No
XNU Yes Yes Yes No No No

Supported CPU architectures

kernel DEC ARM Holdings HP Intel MIPS Technologies AIM IBM Renesas Electronics Sun Microsystems Motorola Analog Devices Xilinx Renesas Electronics Tensilica Axis Communications Fujitsu Atmel Panasonic Hyperstone Altera WDC Sunplus Technology Tilera Texas Instruments
VAX Alpha ARM PA-RISC x86 i960 IA-64 MIPS


PowerPC System/
390
z/Architecture H8300 M16C M32R SuperH


SPARC m68k Blackfin (nommu) MicroBlaze 78K V850 Xtensa ETRAX CRIS FR-V AVR32 MN10300 E1 (nommu) Nios (nommu) Nios II WDC 65C816 S+core Tilera C6X
mmu nommu x86 x86-64 mmu nommu 32-bit 64-bit mmu nommu 32-bit 64-bit nommu mmu nommu mmu nommu mmu nommu
DragonFly BSD kernel ? No No No No Yes Yes ? No No No No No No No ? ? ? No No No No No No No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
FreeBSD kernel ? Yes Yes ? No Yes Yes ? Yes No No Yes No No No ? ? ? No No No Yes ? No No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Linux kernel No Yes Yes Yes Yes Yes Yes No Yes Yes ? Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No (dropped in 2.6.x) Yes Yes Yes Yes Yes Yes No No Yes Yes No Yes Yes No
MINIX 3 ? No In progress ? No Yes In progress No No In progress ? No No No No No ? No No No No No 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[20] Yes Yes Yes ? Yes Yes No[20] Yes No No No ? ? ? Yes No[20] Yes Yes No[20] Yes No[20] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
NetWare kernel No No No No No Yes No ? No No No No No No No ? ? ? No No No No No No No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
OpenBSD kernel Yes Yes Yes ? Yes Yes Yes ? No Yes ? Yes No No No ? ? ? Yes ? Yes Yes ? Yes Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Rockbox kernel ? ? Yes ? ? ? ? ? ? ? ? ? ? ? No ? ? ? Yes ? ? ? ? Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Solaris kernel No No No No No Yes Yes ? No No No No No No No ? ? ? No No Yes Yes ? No No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Windows NT kernel No NT 5.0 RC1 and below only Yes No No Yes Yes No Yes NT 4.0 and below only No NT 3.51 and NT 4.0 only No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
Windows CE kernel No No Yes ? No Yes ? No No Yes ? No No No 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 Yes Yes ? No No No Yes Yes No No ? ? ? No No No No No No No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SPARTAN kernel ? No Yes ? No Yes Yes ? Yes Yes ? Yes In Progress No No ? ? ? No No No Yes ? No No ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
FreeRTOS kernel ? ? ? Yes ? ? ? ? ? ? ? Yes ? ? No ? ? ? ? ? ? ? ? ? ? Yes Yes Yes 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
FreeBSD Yes[21] No No Yes No No No No No No No No No Yes[21] Yes[21]
Linux Yes No No No No No No No No No No No No No No
NetBSD Yes[22] No? [18]? No? [19]? Yes[22] Yes Yes[22] Yes[22] Yes[22] Yes[22] Yes[22] Yes[22] Yes[22] Yes[22] Yes [20] Yes
OpenBSD Yes No No Yes Yes Yes No No Yes ? ? ? ? No Yes
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
XNU No Yes No 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
Windows Yes Yes No Yes No No No No No Yes No No No No No No Yes No No No No No
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 LZJB gzip
Linux Yes Yes Yes ? Yes
Solaris ? ? ? Yes Yes
Kernel name Deflate zlib LZO LZJB gzip

Supported hash algorithms

Kernel name CRC-32 (IEEE) CRC32c MD2 MD4 MD5 SHA-1 SHA-256 SHA-384 SHA-512 Michael MIC RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 Tiger Whirlpool HMAC MDC2 GOST LASH-160 LASH-256 LASH-384 LASH-512
Linux Yes[23] Yes[24] Yes[25] Yes Yes Yes Yes Yes[26] Yes Yes Yes Yes Yes Yes Yes Yes ? ? ? ? ? ? ?
Solaris Yes Yes Yes Yes Yes Yes Yes Yes Yes ? ? Yes ? ? Yes ? Yes Yes ? ? ? ? ?
Windows NT ? ? Yes Yes Yes Yes Yes Yes Yes No No No No No No No Yes No No No No No No
Kernel name CRC-32 (IEEE) CRC32c MD2 MD4 MD5 SHA-1 SHA-256 SHA-384 SHA-512 Michael MIC RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 Tiger Whirlpool HMAC MDC2 GOST LASH-160 LASH-256 LASH-384 LASH-512

Supported Bluetooth protocols

Kernel name ACL SCO LMP HCI L2CAP BNEP RFComm. SDP TCP AVTCP AVDTP OBEX CMTP HIDP HCRP CAPI PPP
FreeBSD kernel ? ? ? Yes Yes ? Yes Yes ? ? ? ? ? ? ? ? ?
Linux ? Yes ? Yes Yes 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. ^ IBM PC Real Time Clock should run in UT
  2. ^ The Amiga hardware lacked support for memory protection, so the strong isolation goals of the microkernel design could not be achieved.[citation needed]
  3. ^ http://www.freebsd.org/doc/en/books/handbook/fs-acl.html
  4. ^ OpenSolaris Project Weaves CIFS Server Into the Solaris Kernel
  5. ^ Integrated Load Balancer
  6. ^ Integrated Load Balancer
  7. ^ 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.
  8. ^ The Linux kernel can recognize PE binaries through binfmt_misc and run them using Wine
  9. ^ to support SunOS 4.x binaries
  10. ^ including a Linux compatibility option
  11. ^ The Solaris kernel can PE using Wine
  12. ^ a b c experimental and dangerous write support
  13. ^ The only supported operation is overwriting existing files, without changing the file length so a loop file on a ntfs volume can be written; better write support can be achieved through ntfs-3g, although that is a FUSE filesystem and therefore not strictly a kernel feature
  14. ^ write support currently broken
  15. ^ Fat64 / exFat fs and Linux
  16. ^ a b c Version Status - ReactOS
  17. ^ additional driver needed - see http://www.fs-driver.org/
  18. ^ a b c additional driver needed
  19. ^ a b Third party module required. Mac OS X Kernel Module available here
  20. ^ a b c d e NetBSD Projects - Support for MMU-less systems
  21. ^ a b c Linux emulation in FreeBSD - 2 A look inside...
  22. ^ a b c d e f g h i j NetBSD Binary Emulation
  23. ^ [1]
  24. ^ [2]
  25. ^ MD2 Linux man page
  26. ^ GNU SHA2 utilities

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Comparison of operating systems — Usage share of web client operating systems. (Source: Median values from Usage share of operating systems for August 2011.)   Windows XP (35.21%) …   Wikipedia

  • Operating system — Operating systems …   Wikipedia

  • Distributed operating system — A distributed operating system is the logical aggregation of operating system software over a collection of independent, networked, communicating, and spatially disseminated computational nodes.[1] Individual system nodes each hold a discrete… …   Wikipedia

  • Trix (operating system) — TRIX is a research network oriented operating system compatible with UNIX version 7. TRIX was developed in the late 1970s at MIT s Laboratory for Computer Science (LCS) by Professor Steve Wardand his research group. TRIX s kernel uses remote… …   Wikipedia

  • Comparison of Pascal and C — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Comparison of file systems — The following tables compare general and technical information for a number of file systems. Contents 1 General information 2 Limits 3 Metadata 4 Features …   Wikipedia

  • Comparison of BSD operating systems — There are a number of Unix like operating systems based on or descended from the Berkeley Software Distribution (BSD) series of Unix variants. The three most notable descendants in current use are FreeBSD, OpenBSD, and NetBSD, which are all… …   Wikipedia

  • Comparison of open source operating systems — These tables compare the various free software / open source operating systems. Where not all of the non EOL versions support a feature, the first version which support it is listed. Contents 1 General information 2 Supported architectures 3… …   Wikipedia

  • Comparison of Microsoft Windows versions — Desktop market share for October 2011[1] Total Windows 90.13% Windows 7 40.5% Windows XP 38.45% Windows Vista 11.18% Non Windows 9.87% Microsoft Windows is the name of several families of computer software ope …   Wikipedia

  • Linux on System z — History of IBM mainframe operating systems On early mainframe computers: GM OS GM NAA I/O 1955 BESYS 1957 UMES 1958 SOS 1959 IBSYS 1960 CTSS 1961 On S/360 and successors: BOS/360 1965 TOS/360 1965 TSS/360 1967 MTS 1967 …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”