| Comparison of operating system kernelsA 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 criterionThe 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 overviewThe major contemporary general-purpose kernels are shown in comparison. Only an overview of the technical features is detailed. |
Agnix [3] | ? | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? |
---|
Amiga Exec | AmigaOS | Commodore International | HUNK | Exokernel (atypical)[2] | No | No | No | Yes | No | No | Yes | No | No | No |
---|
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.1e and NFSv4 ACLs,[3] Capsicum, TrustedBSD MAC, OpenBSM | KDB, DDB[disambiguation needed], KGDB, DTrace, hwpmc | Yes | ? | Yes |
---|
GNU Hurd [5] | Arch Hurd, Debian GNU/Hurd, NixOS[4] | 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 in L4/Fiasco[5] | L4/Fiasco[5] | L4/Fiasco[5] | ? | ? |
---|
Linux kernel [9] | 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 [10] | NextStep and OpenStep | Carnegie Mellon University | Mach-O | microkernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
---|
Minix 3 [11] | Minix 3 | Andrew S. Tanenbaum | ELF,[6] a.out[7][8] | microkernel | No | No | No | Yes | No | Unix permissions | Call profiling, statistical profiling, Minix Debugger (mdb) | No | No | ? |
---|
MkLinux [12] | ? | OSF Research Institute and Apple Computer | ? | microkernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
---|
NetBSD kernel | NetBSD, Debian GNU/NetBSD, | The NetBSD Project | ELF, others - platform dependent | monolithic, any kernel using RUMP architecture | 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 | Trix | Massachusetts Institute of Technology | a.out | monolithic | ? | Yes | No | Yes | ? | ? | ? | ? | ? | ? |
---|
Windows NT kernel [13] | Windows NT, 2000, XP, 2003, Vista, Windows 7 | Microsoft | PE, others? | hybrid | Yes | Yes | Yes | Yes | Hyper-V | ACL | Event Tracing[9] | No | No | Unofficial[10] |
---|
XNU (Darwin kernel) [14] | Mac OS X, OpenDarwin, GNU/Darwin | Apple Computer | Mach-O | hybrid | Ipfirewall, PF (starting in Lion) | Yes | Yes | Yes | ? | ? | DTrace | ? | ? | ? |
---|
SPARTAN kernel [15] | 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 In-kernel Security|
Linux Kernel | Traditional Unix permissions, POSIX ACL | Yes | Yes | LSM(SELinux, SMACK, TOMOYO Linux, AppArmor) | Yes | keyctl | fanotify | SELinux Sandbox, seccomp, KVM | SYN cookies | No? | No? | No? | No |
---|
FreeBSD Kernel | Traditional Unix permissions, POSIX and NFSv4 ACL | Yes | ? | TrustedBSD MAC | Capsicum | ? | OpenBSM | Capsicum | SYN cookies | ? | ? | ? | ? |
---|
Solaris Kernel | Traditional Unix permissions, POSIX ACL, NFSv4 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 | TrustedBSD MAC | ? | ? | OpenBSM | Apple XNU Sandbox | ? | ? | ? | ? | ? |
---|
In-kernel Virtualization In-kernel server support Binary format supportA comparison of OS support for different binary formats (executables): File system supportPhysical file systems: |
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 [18] | Yes | read only | Yes | Yes | read only | Yes | Yes | Yes | Yes | read only | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | limited write [19] | Yes | Yes [18] [20] | write support? | Yes | Yes [18] | Yes | both FUSE and native | Yes | Yes | Yes | No | Yes | (experimental patch is available[21]) |
---|
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[22] | No | No | No | No | Yes[22] | No | No | No | No | No | No | No | No | No | Yes[22] | 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 [23] | Yes [24] | ? | Yes | ? | Yes [24] | Yes [24] | No | Yes | ? | ? | ? | ? | No | Yes | ? | ? | ? | Yes | ? | ? | No | No | No | No | No | No | Yes |
---|
XNU | No | No | No | No | No | No | Yes [25] | Yes [25] | 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 Supported CPU architectures Supported kernel execution environment Supported cipher algorithmsThis may be usable on some situations like file system encrypting. Supported compression algorithmsThis may be usable on some situations like compression file system. Supported hash algorithms Supported Bluetooth protocols|
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 |
| |