A [[Kernel (computer science)|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 distribution]]s, 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]]. ==Overview comparison== The major contemporary general-purpose [[Kernel (computer science)|kernels]] are shown in comparison. Only an overview of the technical features is detailed. {| class="wikitable" style="font-size: smaller; text-align: center; width: 100%" |- | kernel name | used in | creator | executable
format
(also see
[[Comparison of kernels#Comparison of Binary format support|section]]
below) | type | Integrated [[Firewall (networking)|firewall]] | [[symmetric multiprocessing|SMP]] support | multiple [[Computer architecture|architecture]]
support
(also see
[[Comparison of kernels#Architecture support|section]] below). | [[computer multitasking|multitasking]] | last release |- ![[Agnix]] [http://agnix.sourceforge.net/] | | | | | | | |{{yes}} | |- ! [[Amiga Exec]] | [[Amiga OS]] | [[Commodore International]] | [[HUNK(executable format)|HUNK]] | [[microkernel]] (atypical) | {{no}} | {{no}} | {{no}} | {{yes}} | 3.9 (March 20, 2002) |- ! [[DragonFly_BSD#Kernel_design|DragonFly BSD kernel]] [http://www.dragonflybsd.org/] | [[DragonFly BSD]] | [[Matt Dillon (computer scientist)|Matt Dillon]] | [[Executable and Linkable Format|ELF]], others - platform dependent | [[hybrid kernel|hybrid]] | [[IPFilter]] [[Ipfirewall]] [[PF (firewall)|PF]] | {{yes}} | {{yes}} | {{yes}} | 1.6 |- ! [[FreeBSD kernel]] | [[FreeBSD]] [[Debian GNU/kFreeBSD]] [[Gentoo/FreeBSD]] | [[FreeBSD|The FreeBSD Project]] | [[Executable and Linkable Format|ELF]], others - platform dependent | [[Monolithic kernel|monolithic]] | [[IPFilter]] [[Ipfirewall]] [[PF (firewall)|PF]] | {{yes}} | {{yes}} | {{yes}} | 6.1 |- ! [[GNU Hurd]] [http://hurd.gnu.org/] | [[Bee GNU/Hurd]] [[Debian GNU/Hurd|Debian
GNU/Hurd]] | [[GNU Project]]/[[Free Software Foundation]] | [[Executable and Linkable Format|ELF]] | Multi-Server on top of a [[Microkernel|microkernel]] | {{?}} | {{no}} | {{no}} | {{yes}} | 0.2 |- ! [[GNU Mach]] [http://www.gnu.org/software/hurd/gnumach.html] | | [[GNU Project]]/[[Free Software Foundation]] | {{?}} | [[microkernel]] | {{?}} | {{?}} | {{?}} | {{?}} | {{?}} |- ! [[Inferno kernel]] | [[Inferno (operating system)|Inferno]] | [[Bell Labs]] / [[Vita Nuova]] | - | [[virtual machine]] | {{?}} | {{yes}} | {{yes}} | {{yes}} | 4th Edition |- ! [[L4 microkernel family|L4]] | [[L4 microkernel family|L4]] | [[Jochen Liedtke]] | {{?}} | [[microkernel]] | {{?}} | {{yes}} | {{yes}} | {{yes}} | {{?}} |- ! [[Linux kernel]] [http://www.kernel.org/] | [[Linux]] | [[Linus Torvalds]] | [[Executable and Linkable Format|ELF]], others | [[Monolithic kernel|monolithic]] | [[netfilter/iptables|netfilter/
iptables]] | {{yes}} | {{yes}} | {{yes}} | 2.6.19 |- ! [[Mach kernel|Mach]] [http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html] | | [[Carnegie Mellon University]] | {{?}} | [[microkernel]] | {{?}} | {{?}} | {{?}} | {{?}} | {{?}} |- ! [[Minix 3]] [http://www.minix3.org] | [[Minix 3]] | [[Andrew S. Tanenbaum]] | {{?}} | Multi-Server on top of a [[Microkernel|microkernel]] | {{?}} | {{?}} | {{?}} | {{yes}} | 3.1.2a |- ! [[MkLinux]] [http://www.mklinux.org] | | [[OSF Research Institute]] and [[Apple Computer]] | {{?}} | [[microkernel]] | {{?}} | {{?}} | {{?}} | {{?}} | {{?}} |- ! [[NetBSD kernel]] | [[NetBSD]] [[Debian GNU/NetBSD]] | [[NetBSD|The NetBSD Project]] | [[Executable and Linkable Format|ELF]], others - platform dependent | [[Monolithic kernel|monolithic]] | [[IPFilter]] [[PF (firewall) |PF]] | {{yes}} | {{yes}} | {{yes}} | 3.0 |- ! [[OpenBSD kernel]] | [[OpenBSD]] | [[OpenBSD developers]] | [[Executable and Linkable Format|ELF]], others - platform dependent | [[Monolithic kernel|monolithic]] | [[PF (firewall)|PF]] | {{yes}} | {{yes}} | {{yes}} | 4.0 |- ! [[Plan 9 kernel]] | [[Plan 9 from Bell Labs]] | [[Bell Labs]] | - | [[Hybrid kernel|hybrid]] | ipmux | {{yes}} | {{yes}} | {{yes}} | 4th Edition |- ! [[Solaris kernel]] | [[Solaris Operating System]] | [[Sun Microsystems]] | [[Executable and Linkable Format|ELF]]
(32-bit only
until Solaris 7) | [[Monolithic kernel|monolithic]] | {{?}} | {{yes}} | {{yes}} | {{yes}} | 10 |- ! [[Trix (operating system)|Trix]] | | [[Massachusetts Institute of Technology]] | {{?}} | [[Monolithic kernel|monolithic]] | {{?}} | {{?}} | {{?}} | {{?}} | {{?}} |- ! [[Windows kernel]] [http://www.microsoft.com/windows] | [[Windows NT]], [[Windows 2000|2000]], [[Windows XP|XP]], [[Windows 2003|2003]], [[Windows Vista|Vista]] | [[Microsoft]] | [[Portable Executable|PE]], others? | [[hybrid kernel|hybrid]] | {{?}} | {{yes}} | {{yes}} | {{yes}} | 5.2 |- ! [[XNU]] ([[Darwin (operating system)|Darwin]] kernel) [http://developer.apple.com/darwin/] | [[Mac OS X]] [[OpenDarwin]] [[GNU-Darwin|GNU/Darwin]] | [[Apple Computer]] | [[Mach-O]] | [[hybrid kernel|hybrid]] | [[Ipfirewall]] | {{yes}} | {{yes}} | {{yes}} | 792.6.61 |} ==Binary format support== A comparison of OS support for different [[binary format]]s ([[executables]]): {| class="wikitable" style="font-size: smaller; text-align: center; width: 100%" |- |Kernel Name | [[A.out_(file_format)|a.out]] | [[ECOFF]] | [[Executable and Linkable Format|ELF]] | FDPIC
ELF
binaries
(mmu less) | flat
binaries
(superH) | [[HUNK (executable format)|HUNK]] | [[Mach-O]] | Misc
(wrapper
based,
like
interpreters) | [[Portable Executable|PE]] | SOM
(PA-RISC,
HP-UX) |- |[[Amiga Exec]] |{{No}} |{{No}} |{{Yes}}AmigaOS running on PPC expansions cards, or either in new [[AmigaOne]] made use of ELF thru [[WarpUP.library]] or its evolution [[PowerPC.Library]] standard Amiga shared libraries. |{{No}} |{{No}} |{{Yes}} |{{No}} |{{No}} |{{No}} |{{No}} |- |[[Linux kernel]] |{{Yes}} |{{Yes}} |{{Yes}} |{{Yes}} |{{Yes}} |{{No}} |{{No}} |{{Yes}} |{{Yes}}using [[Wine (software)|Wine]] |{{Yes}} |- |[[Solaris kernel]] |{{Yes}}to support [[SunOS]] 4.x binaries |{{No}} |{{Yes}}including a Linux compatibility option |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |- |[[Windows kernel]] |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{No}} |- |[[XNU]] |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{No}} |{{No}} |{{No}} |- |} ==File system support== {| border="1" cellpadding="1" cellspacing="0" style="font-size: 75%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%" ! rowspan="2" style="width: 7em;"|Operating System ! colspan="29"| Physical [[file system]]s |- ! [[Advanced Disc Filing System|Acorn ADFS]] ! [[Amiga FFS]] ! [[BeFS]] ! [[BFS]] ! [[cramfs]] ! [[Extent File System|EFS]] ! [[ext2]] ! [[ext3]] ! [[ext4]] ! [[File Allocation Table|FAT]] ! [[FreeVxFS]] ! [[FUSE (Linux)| FUSE]] ! [[Hierarchical File System|HFS]] ! [[HFS+]] ! [[High Performance File System|HPFS]] ! [[ISO 9660]] ! [[JFFS]] ! [[JFFS2]] ! [[JFS]] ! [[Loop device|loop]] ! [[Minix fs]] ! [[NTFS]] ! [[OCFS]] ! [[QNX4 FS]] ! [[System V FS]] ! [[Universal Disk Format|UDF]] ! [[Unix File System|UFS]] ! [[XFS]] ! [[ZFS]] |- ! [[Linux kernel]] | {{Yes}}
experimental and dangerous write support | {{Yes}} | read only | {{Yes}} | {{Yes}} | read only | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | read only | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | limited write
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 that is a [[FUSE (Linux)| FUSE]] filesystem | {{Yes}} | {{Yes}}

write support currently broken | write support? | {{Yes}} | {{Yes}}
| {{Yes}} | {{No}} |- ! [[Solaris kernel]] | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{Yes}} | {{dunno}} | {{dunno}} | {{Yes}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{Yes}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{No}} | {{dunno}} | {{dunno}} | {{dunno}} | {{Yes}} | {{Yes}} | {{dunno}} | {{Yes}} |- ! [[Windows kernel]] | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{Yes}}
additional driver needed - see [http://www.fs-driver.org/ http://www.fs-driver.org/] | {{Yes}}
additional driver needed | {{dunno}} | {{Yes}} | {{dunno}} | {{dunno}} | {{Yes}}
| {{Yes}}
| {{dunno}} | {{Yes}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{Yes}} | {{dunno}} | {{dunno}} | {{dunno}} | {{Yes}} | {{dunno}} | {{dunno}} | {{No}} |- ! [[XNU]] | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{Yes}} | {{No}} | {{No}} | {{Yes}} | {{Yes}} | {{No}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | limited write | {{No}} | {{No}} | {{No}} | {{Yes}} | {{Yes}} | {{No}} | {{No}} |- |} ==Supported CPU architectures== {| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%" |-style="background: #ececec;" ![[kernel]] ![[68k]] ![[DEC Alpha|DEC
Alpha]] ![[ARM architecture|ARM]] ![[PA-RISC family|HP
PA-RISC]] ![[IA-64]] ![[MIPS architecture|MIPS]] ![[PowerPC]] ![[PowerPC 970|PowerPC
970]] ![[System/390|System/
390]] ![[SuperH]] ![[SPARC|Sparc32]] ![[SPARC64|Sparc64]] ![[x86 architecture|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}} |- ![[OpenBSD kernel]] |{{Yes}} |{{Yes}} |{{Yes}} |{{Yes}} |{{No}} |{{Yes}} |{{Yes}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{Yes}} |{{Yes}} |{{Yes}} |- ![[Solaris kernel]] |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{Yes}} |{{Yes}} |{{Yes}} |- ![[Windows kernel]] |{{No}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{Yes}} |- ![[XNU]] |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{Yes}}kernel is 32-bit code; 64-bit user-mode code is supported |{{No}} |{{No}} |{{No}} |{{No}} |{{Yes}} |{{Yes}} |- |} == See also == *[[Comparison of open source operating systems]] *[[Comparison of Linux distributions]] *[[Comparison of BSD operating systems]] *[[List of operating systems]] *[[Comparison of file systems]] *[[Comparison of operating systems]] *[[Operating system advocacy]] *[[Windows vs. Linux]] *[[XvsXP]] ==Footnotes==
[[Category:Software comparisons|Kernels]] [[Category:Computing platforms]] [[Category:Operating systems]]