Comparison of operating system kernels

From Wikipedia, the free encyclopedia

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

[edit] 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.

[edit] Overview comparison

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
Agnix [2] ? ? ? ? ? ? ? Yes
Amiga Exec Amiga OS Commodore International/Carl Sassenrath HUNK microkernel (atypical)[1] No No No Yes
Amiga Exec SG (2nd Generation) Amiga OS 4.0 Hyperion Entertainment under
license of Amiga Inc.
ELF (Can
run 68000
code Hunk)
microkernel (atypical) No No No Yes
DragonFly BSD kernel [3] 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
GNU Hurd [4] Bee GNU/Hurd

Debian
GNU/Hurd

GNU Project/Free Software Foundation ELF microkernel ? No No Yes
GNU Mach [5] ? 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 [6] Linux Linus Torvalds ELF, others monolithic netfilter/
iptables
Yes Yes Yes
Mach [7] ? Carnegie Mellon University ? microkernel ? ? ? ?
Minix 3 [8] Minix 3 Andrew S. Tanenbaum a.out
microkernel ? ? ? Yes
MkLinux [9] ? 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
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
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
Trix ? Massachusetts Institute of Technology ? monolithic ? ? ? ?
Windows NT kernel [10] Windows NT, 2000,
XP, 2003, Vista
Microsoft PE, others? hybrid Yes Yes Yes Yes
XNU (Darwin kernel) [11] Mac OS X

OpenDarwin GNU/Darwin

Apple Computer Mach-O hybrid Ipfirewall Yes Yes Yes
SPARTAN kernel (HelenOS kernel) [12] 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

[edit] 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)
Amiga Exec No No Yes[2] No No Yes No No No No
Linux kernel Yes Yes Yes Yes Yes No No Yes Some[3] Yes
Solaris kernel Yes[4] No Yes[5] No No No No No No No
Windows NT kernel No No No No No No No No Yes No
XNU No No No No No No Yes No No No

[edit] 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
Linux kernel Yes
[6]
Yes read only Yes Yes read only Yes Yes Yes Yes read only Yes Yes Yes Yes Yes Yes Yes Yes Yes limited write
[7]
Yes Yes
[6]
[8]
write support? Yes Yes
[6]
Yes 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
Solaris kernel  ?  ?  ?  ?  ?  ? Yes  ?  ? Yes  ?  ?  ?  ? Yes  ?  ?  ?  ? No No  ?  ?  ? Yes Yes  ? Yes
Windows NT kernel  ?  ?  ?  ?  ?  ? Yes
[9]
Yes
[10]
 ? Yes  ? Yes
[10]
Yes
[10]
 ? Yes  ?  ?  ?  ? No Yes  ?  ?  ? Yes  ?  ? No
XNU No No No No No No Yes
[11]
Yes
[11]
No Yes No Yes Yes No Yes No No No No No limited write No No No Yes Yes No read only

[edit] Supported CPU architectures

kernel 68k DEC
Alpha
ARM HP
PA-RISC
IA-64 MIPS PowerPC PowerPC
970
System/
390
SuperH SPARC 32-bit SPARC 64-bit x86 x86-64
Linux kernel Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
DragonFly BSD kernel No No No No No No No No No No No No Yes No
FreeBSD kernel No Yes Yes No Yes No Yes No No No No Yes Yes Yes
NetBSD kernel Yes Yes Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes
NetWare kernel 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 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 Yes Yes
XNU No No Yes No No No Yes Yes[12] No No No No Yes Yes[12]
SPARTAN kernel No No Yes No Yes Yes Yes In Progress No No No Yes Yes Yes

[edit] See also

[edit] 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. ^ 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.
  3. ^ The Linux kernel can recognize PE binaries through binfmt_misc and run them using Wine
  4. ^ to support SunOS 4.x binaries
  5. ^ including a Linux compatibility option
  6. ^ a b c experimental and dangerous write support
  7. ^ 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
  8. ^ write support currently broken
  9. ^ additional driver needed - see http://www.fs-driver.org/
  10. ^ a b c additional driver needed
  11. ^ a b Third party module required. Mac OS X Kernel Module available here: [1]
  12. ^ a b kernel is 32-bit code; 64-bit user-mode code is supported