Comparison of operating system kernels
A kernel is the most fundamental component of a computer operating system. A comparison of system kernels can provide insight into the design and architectural choices made by the developers of particular operating systems.
Comparison criteria
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 are a large number and variety of available Linux distributions, all of these kernels are grouped under a single entry in these tables, due to the differences among them 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 | Programming language | Used in | Creator | Executable format | Type | Integrated firewall | SMP support | Multiple architecture support . | Multitasking | Virtualization | Security | Profiling/Debugging | Soft real-time support | Hard real-time support | Can keep RTC in UT |
Agnix | |||||||||||||||
Amiga Exec | AmigaOS | Commodore International | HUNK | Exokernel | |||||||||||
Amiga Exec SG | AmigaOS 4 | Hyperion Entertainment | ELF/HUNK | Exokernel | |||||||||||
DragonFly BSD kernel | C | DragonFly BSD | Matt Dillon | ELF | hybrid | ||||||||||
FreeBSD kernel | C | FreeBSD, Debian GNU/kFreeBSD, Gentoo/FreeBSD, Orbis OS | The FreeBSD Project | ELF, others - platform dependent | monolithic | ||||||||||
GNU Hurd | C | GNU/Hurd | GNU Project/Free Software Foundation | ELF | |||||||||||
GNU Mach | C | part of GNU Hurd, used in GNU/Hurd | GNU Project/Free Software Foundation | ELF | microkernel | ||||||||||
Inferno kernel | Inferno | Bell Labs / Vita Nuova Holdings | virtual machine | ||||||||||||
L4 | L4 | Jochen Liedtke | microkernel | ||||||||||||
Linux kernel | C | Linux, Android, Ubuntu, CentOS, webOS, Fire OS, Firefox OS, Chrome OS, Syllable Server, Mastodon Linux, OpenBSD/Linux, Plan 9/Linux, Sailfish OS, Tizen, amongst others. | Linus Torvalds | ELF, others | monolithic | ||||||||||
Compute Node Linux | Compute Node Linux | Cray Inc. | |||||||||||||
Mach | C | NeXTSTEP and OPENSTEP for Mach and Tru64 UNIX | Carnegie Mellon University | Mach-O | microkernel, hybrid kernel | ||||||||||
MINIX 3 kernel | C | MINIX 3 | Andrew S. Tanenbaum | ELF, a.out | microkernel | ||||||||||
MkLinux | OSF Research Institute and Apple Computer | microkernel | |||||||||||||
NetBSD kernel | C | NetBSD, GNU/kNetBSD, | The NetBSD Project | ELF, others - platform dependent | monolithic, anykernel using rump kernel architecture | ||||||||||
NetWare kernel | NetWare | Novell | NLM | hybrid | |||||||||||
OpenBSD kernel | C | OpenBSD | OpenBSD developers | ELF, others - platform dependent | monolithic | ||||||||||
OS/2 kernel | OS/2 version 2 and above | IBM | LX | hybrid | PowerPC version developed but never officially released. | ||||||||||
Plan 9 kernel | C | Plan 9 from Bell Labs | Bell Labs | hybrid | |||||||||||
ReactOS kernel | C, C++ | ReactOS | ReactOS Foundation | PE, others? | hybrid | ||||||||||
Rockbox kernel | Rockbox | The Rockbox Project | |||||||||||||
SunOS kernel | C | SunOS | Sun Microsystems | a.out | monolithic | ||||||||||
Solaris kernel | C | Solaris, OpenSolaris, GNU/kOpenSolaris | Sun Microsystems | ELF | monolithic | ||||||||||
Trix kernel | Trix | Massachusetts Institute of Technology | a.out | monolithic | |||||||||||
Windows NT kernel | C, C++ | Windows NT, 2000, XP, 2003, Vista, Windows 7, Windows 8, Windows Phone 8, Windows Phone 8.1, Windows 10 | Microsoft | PE, others? | hybrid | ||||||||||
XNU | C, C++ | Mac OS X, iOS, iPadOS, tvOS, watchOS, OpenDarwin, PureDarwin GNU/Darwin | Apple Inc. | Mach-O | hybrid | ||||||||||
SPARTAN kernel | HelenOS | Jakub Jermar | ELF | microkernel | |||||||||||
Kernel name | Used in | Creator | Executable format | Type | Integrated firewall | SMP support | Multiple architecture support . | Multitasking | Virtualization | Security | Profiling/Debugging | Soft real-time support | Hard real-time support | Can keep RTC in UT |
Transport protocol support
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 | ? | ? | ? | ||||||||||
FreeBSD Kernel | |||||||||||||
Solaris Kernel | |||||||||||||
Windows NT kernel | |||||||||||||
XNU |
In-kernel virtualization
In-kernel server support
Kernel Name | HTTP | FTP | NFS | CIFS | Name server | Transport-layer load balancer | Application-layer load balancer | 9P | TLS proxy | WAF | Memcached server |
Linux kernel | |||||||||||
DragonFly BSD kernel | |||||||||||
FreeBSD kernel | |||||||||||
Solaris kernel | |||||||||||
Windows NT kernel | |||||||||||
XNU |
Binary format support
A comparison of OS support for different binary formats :Kernel Name | a.out | ECOFF | ELF | FDPIC ELF binaries | flat binaries | HUNK | Mach-O | Misc | PE | SOM | NLM | PEF | DOS COM | MZ | LE | LX | NE |
Amiga Exec | |||||||||||||||||
DragonFly BSD kernel | |||||||||||||||||
HP-UX kernel | |||||||||||||||||
Linux kernel | |||||||||||||||||
MINIX 3 kernel | |||||||||||||||||
NetBSD kernel | |||||||||||||||||
ReactOS kernel | |||||||||||||||||
Solaris kernel | |||||||||||||||||
Windows NT kernel | |||||||||||||||||
XNU |
File system support
Physical file systems:Kernel | Acorn ADFS | Amiga FFS | BeFS | BFS | cramfs | EFS | ext2 | ext3 | ext4 | F2FS | 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 | ReFS |
DragonFly BSD kernel | ||||||||||||||||||||||||||||||||||||
FreeBSD kernel | ||||||||||||||||||||||||||||||||||||
Linux kernel | ||||||||||||||||||||||||||||||||||||
MINIX 3 kernel | ||||||||||||||||||||||||||||||||||||
NetWare kernel | ||||||||||||||||||||||||||||||||||||
ReactOS kernel | ||||||||||||||||||||||||||||||||||||
Solaris kernel | ||||||||||||||||||||||||||||||||||||
Windows NT kernel | ||||||||||||||||||||||||||||||||||||
XNU |
Networked file system support
Kernel Name | NFS | AFS | CIFS | Coda | 9P | Ceph |
DragonFly BSD kernel | ||||||
FreeBSD kernel | ||||||
Linux kernel | ||||||
Solaris kernel | ||||||
Windows NT kernel | ||||||
XNU |
Supported CPU instruction sets and microarchitectures
Supported GPU processors
Supported kernel execution environment
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 |
DragonFly BSD kernel | ||||||||||||||||||||||
FreeBSD kernel | ||||||||||||||||||||||
Linux | ||||||||||||||||||||||
Windows NT kernel | ||||||||||||||||||||||
macOS XNU Kernel | ||||||||||||||||||||||
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 | |||||
Solaris kernel |