A kernel is a component of a computer operating system .[ 1] 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.
Feature overview
The major contemporary general-purpose kernels are shown in comparison. Only an overview of the technical features is detailed.
Failure analysis and availability
Scalability and clustering
This section
needs expansion . You can help by
adding to it .
(March 2025 )
Realtime support
Transport protocol support
Data link layer and Tunneling protocol support
This section
needs expansion . You can help by
adding to it .
(April 2025 )
In-kernel security
File access control
Disable memory execution support
Mandatory access control
Capability-based security
Audit API
Sandbox
SYN flood protection
UDP flood protection
Ping flood protection
Smurf attack protection
Network Behavior Analysis
Traditional Unix permissions , POSIX ACL
Yes
Yes
LSM (SELinux , SMACK , TOMOYO Linux , AppArmor )
seccomp
keyctl
fanotify
SELinux Sandbox, seccomp
SYN cookies
hash tables
ICMP rate limiting
reverse path filtering
Netfilter
Traditional Unix permissions , POSIX and NFSv4 ACL
Yes
Yes
TrustedBSD MAC
Capsicum
?
OpenBSM
Capsicum, MAC framework
SYN cookies
?
?
?
?
Traditional Unix permissions , POSIX ACL , NFSv4 ACL
Default
?
Solaris Trusted Extensions
?
?
?
?
?
?
?
?
?
Access control list
DEP
Yes
Mandatory Integrity Control
AppContainers
No
Yes
Windows Event Log
Yes[ 70]
Yes
?
?
?
Traditional Unix permissions , NT/NFSv4 ACL [ 71]
Yes
Yes
TrustedBSD MAC
?
?
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
Kernel as Library
Kernel as Kernel Driver
Hypervisor-Enforced Kernel Partitioning
Linux
chroot
LXC
Virtio, Hyper-V (guest only), Xen (guest only), VMI (guest only), kvm-lite , lguest
KVM
UML
(LKL)
(coLinux )
No
DragonFly BSD kernel
chroot
jail
No
No
vkernel
?
?
No
FreeBSD kernel
chroot
jail
Virtio, Xen (guest only)
BHyVe (KVM)
?
?
?
No
NetBSD kernel
chroot
(sysjail (discontinued))
No
Virtio and Xen
No
?
Rump kernel
?
No
Solaris kernel
chroot
Solaris Containers / Zones
No
No
No
?
?
No
Windows NT kernel
AppContainers, Job Objects, Windows Server Containers
Hyper-V
Project Drawbridge
No
Virtual Secure Mode, Device Guard, Credential Guard[ 72]
XNU
chroot
?
?
?
?
?
?
?
No
In-kernel server support
A comparison of OS support for different binary formats (executables ):
Name
a.out
ECOFF
ELF
FDPIC ELF binaries (mmu less)
flat binaries (superH)
HUNK
Mach-O
PE
SOM (PA-RISC ,HP-UX )
NLM
PEF
DOS COM
MZ
LE
LX
NE
Amiga Exec
No
No
Yes[ 79]
No
No
Yes
No
No
No
No
?
?
?
?
?
?
?
DragonFly BSD
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
FreeBSD
?
?
Yes
?
?
?
?
Yes
?
?
?
?
?
?
?
?
?
HP-UX
No
No
Yes
No
No
No
No
No
No
Yes
No
No
?
?
?
?
?
Linux
No
Yes
Yes
Yes
Yes
No
No
Yes
Some[ 80]
Yes
?
No
?
?
?
?
?
MINIX 3
Some[ 11] [ 12]
No
Yes[ 10]
No
No
No
No
No
No
No
No
No
?
?
?
?
?
NetBSD
Yes
Yes
Yes
?
?
?
Yes
?
Yes
?
?
?
?
?
?
?
?
OpenBSD
?
?
Yes
?
?
?
?
?
?
?
?
?
?
?
?
?
?
ReactOS
?
?
?
?
?
?
?
?
Yes
?
?
?
?
?
?
?
?
Solaris
Yes[ 81]
No
Yes[ 82]
No
No
No
No
No
Some[ 83]
No
?
?
?
?
?
?
?
Windows NT
No
No
Yes with WSL
No
No
No
No
No
Yes
No
No
No
Yes on x86
Yes on x86
?
?
Yes on x86
XNU
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
File system support
Physical file systems :
Networked file system support
Supported CPU instruction sets and microarchitectures
Supported GPU processors
Supported kernel execution environment
This table indicates, for each kernel, what operating systems' executable images and device drivers can be run by that kernel.
Supported cipher algorithms
This may be usable on some situations like file system encrypting.
Supported compression algorithms
This may be usable on some situations like compression file system.
Kernel name
Deflate
zlib
LZO
LZJB
gzip
zstd
Linux
Yes
Yes
Yes
No
Yes
Yes
NetBSD kernel
?
Yes
Yes
?
Yes
Yes
Solaris kernel
?
?
?
Yes
Yes
?
Supported message digest algorithms
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
?
?
?
No
?
?
?
?
?
Linux
?
Yes
?
Yes
Yes
Yes
Yes
?
?
?
?
?
Yes
Yes
?
?
?
macOS XNU Kernel
?
?
?
?
Yes
?
Yes
Yes
?
?
?
No
?
?
?
?
?
Kernel name
ACL
SCO
LMP
HCI
L2CAP
BNEP
RFComm.
SDP
TCP
AVTCP
AVDTP
OBEX
CMTP
HIDP
HCRP
CAPI
PPP
Audio support
Graphics support
See also
^ "Kernel Definition" . The Linux Information Project . Retrieved 4 March 2015 .
^ IBM PC Real Time Clock should run in UT
^ The Amiga hardware lacked support for memory protection, so the strong isolation goals of the microkernel design could not be achieved.[citation needed ]
^ "Chapter 14. Security" . FreeBSD Handbook .
^ setfacl(1)
– FreeBSD General Commands Manual
^ www .gnu .org /software /hurd /faq /smp .html
^ www .gnu .org /software /hurd /faq /smp .html
^ a b c "The Fiasco microkernel - Status" . Retrieved January 11, 2013 .
^ "Linux Kernel FAQ" .
^ a b Supports ELF since version 3.2.0 "MinixReleases" . Minix Wiki . Archived from the original on 31 May 2012. Retrieved 21 May 2012 .
^ a b a.out will be phased out in coming releases. van der Kouwe, Erik. "Re: ~Segmentation [Was: Minix3 for sparc]" . Minix3 for sparc . Google Groups. Retrieved 21 May 2012 .
^ a b Commit to remove a.out utils from minix; only supports running a.out now. Leca, Antoine. "3fb8cb760c9075fab05682b89b1542d66481ba58" . minix.git . Retrieved 21 May 2012 .
^ "Announcing NetBSD 5.0" .
^ "Event Tracing" . Microsoft Docs . 7 January 2021.
^ "IBM PC Real Time Clock should run in UT" .
^ Chapter 10. Kernel Debugging - FreeBSD Documentation Portal . The FreeBSD Project
^ Google Developing "Live Update Orchestrator" As New Means Of Live Linux Kernel Updates . Phoronix. March 20, 2025
^ crash(8) - OpenBSD manual pages
^ Core Dump Management on the Solaris OS . Oracle. June 2007
^ Hotpatching on Windows . Microsoft. November 20, 2021
^ a b DragonFly's Major Features List . DragonFly Project.
^ DragonFly On-Line Manual Pages : sys_checkpoint(2)
^ DragonFly BSD - history . DragonFly Project.
^ FreeBSD 14.0-RELEASE Announcement . FreeBSD Project.
^ RoCE as a performance accelerator . FreeBSD Project. 2018.
^ ntb . FreeBSD Project.
^ NTB Drivers . kernel.org.
^ a b FreeBSD Foundation: A Year of Sponsored Development in 2024 . FreeBSD Foundation. December 20, 2024
^ Priority Inversion . Microsoft
^ Cloudflare Talks Up Multi-Path TCP But Dings Linux's Less Than Ideal Support . Phoronix. January 3, 2025.
^ RFC 2003
^ RFC 1933, RFC 2893, and RFC 4213
^ DragonFly On-Line Manual Pages : ppp(4) . DragonFly Projects
^ DragonFly On-Line Manual Pages : vlan(4) . DragonFly Projects
^ DragonFly On-Line Manual Pages : gre(4) . DragonFly Projects
^ DragonFly On-Line Manual Pages : gif(4) . DragonFly Projects
^ FreeBSD Handbook Chapter 28 PPP and SLIP . The FreeBSD Project
^ FreeBSD Manual Pages - Kernel Interfaces Manual - VLAN(4)
^ FreeBSD Manual Pages - Kernel Interfaces Manual - GRE(4) . The FreeBSD Project
^ FreeBSD Manual Pages - Kernel Interfaces Manual - GIF(4) . The FreeBSD Project
^ FreeBSD 10.2-RELEASE Release Notes . The FreeBSD Project
^ PPP (point-to-point protocol) support . kernelconfig.io
^ Ethernet (10 or 100Mbit) . kernelconfig.io
^ PPP over Ethernet . kernelconfig.io
^ 802.1Q/802.1ad VLAN Support . kernelconfig.io
^ MultiProtocol Label Switching . kernelconfig.io
^ L2TPv3 support . kernelconfig.io
^ IP: GRE tunnels over IP . kernelconfig.io
^ IP: tunneling . kernelconfig.io
^ IPv6: IPv6-in-IPv4 tunnel (SIT driver) . kernelconfig.io
^ PPtP protocol support . kernelconfig.io
^ PPP over L2TP . kernelconfig.io
^ Virtual eXtensible Local Area Network (VXLAN) . kernelconfig.io
^ ppp(4) - NetBSD Manual Pages . The NetBSD Project
^ pppoe(4) - NetBSD Manual Pages . The NetBSD Project
^ vlan(4) - NetBSD Manual Pages . The NetBSD Project
^ mpls(4) - NetBSD Manual Pages . The NetBSD Project
^ l2tp(4) - NetBSD Manual Pages . The NetBSD Project
^ gre(4) - NetBSD Manual Pages . The NetBSD Project
^ gif(4) - NetBSD Manual Pages . The NetBSD Project
^ ppp(4) - OpenBSD manual pages . OpenBSD Project
^ pppoe(4) - OpenBSD manual pages . OpenBSD Project
^ a b vlan(4) - OpenBSD manual pages . OpenBSD Project
^ OpenBSD 5.8 Changelog . OpenBSD Project
^ a b gre(4) - OpenBSD manual pages . OpenBSD Project
^ gif(4) - OpenBSD manual pages . OpenBSD Project
^ CVS: cvs.openbsd.org: src . OpenBSD Project
^ GRE Tunneling in Windows Server 2016 . Microsoft. November 2, 2024
^ Edward Horley. "Practical IPv6 for Windows Administrators" p.12. December 27, 2013. ISBN 978-1430263708
^ "Syn attack protection on Windows Vista, Windows 2008, Windows 7, Windows 2008 R2, Windows 8/8.1, Windows 2012 and Windows 2012 R2" . June 2010. SynAttack protection is enabled by default and cannot be disabled
^ "Elementary Information Security, Second Edition, Chapter 4 "Sharing Files" " (PDF) . Section 4.4 "Microsoft Windows ACLs". The ACLs used in Macintosh OS X and Sun's Solaris operating system are similar to those in Windows to ensure they work well together.
^ "Windows 10 Device Guard and Credential Guard Demystified" . Ash's Blog . Retrieved 2018-03-28 .
^ doc/Documentation/networking/tls.txt kernel.org
^ "Web security - tempesta-tech/tempesta Wiki" . Tempesta Technologies INC. October 31, 2017. Retrieved May 7, 2018 .
^ Ziehau, Sepherosa (2013-05-22). "socket: Extend SO_REUSEPORT to distribute workload to available sockets" . DragonFly Project Source . Retrieved 2024-07-31 .
^ Lundberg, Johannes (2018-06-06). "Load balance sockets with new SO_REUSEPORT_LB option" . Retrieved 2024-07-31 .
^ "OpenSolaris Project Weaves CIFS Server Into the Solaris Kernel" . Archived from the original on 2008-05-22. Retrieved 2009-08-21 .
^ a b Integrated Load Balancer
^ 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.
^ The Linux kernel can recognize PE binaries through binfmt_misc and run them using Wine
^ to support SunOS 4.x binaries
^ including a Linux compatibility option
^ The Solaris kernel can PE using Wine
^ a b c experimental and dangerous write support
^ a b c d additional driver needed
^ 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
^ write support currently broken
^ a b c d e f ReactOS Wiki - File Systems
^ a b additional driver needed - see https://github.com/maharmstone/btrfs
^ additional driver needed - see http://www.fs-driver.org/
^ a b additional driver needed - see http://www.ext2fsd.com Archived 2012-07-23 at the Wayback Machine
^ a b Third party module required. Mac OS X Kernel Module available here
^ a b c d "FreeBSD supported platforms" .
^ a b c d e f g Larabel, Michael (2 April 2018). "Linux Set To Shed Nearly 500k Lines Of Code By Dropping Old CPUs - Phoronix" . Phoronix . Phoronix Media. Retrieved 2018-04-22 . The architectures on the chopping block for Linux 4.17 are Blackfin, CRIS, FRV, M32R, Metag, MN10300, Score, and Tile
^ a b c d e NetBSD Projects - Support for MMU-less systems
^ "OpenBSD/Vax" .
^ a b c d e f g h i j Official FreeRTOS Ports , Amazon Web Services , Inc.
^ The GMA500 GPU has a PowerVR in it. The GMA500 Kconfig , mention that it is a 2D KMS driver.
^ There is also a driver for the dreamcast PowerVR but it is only a Framebuffer driver as explained in the fbdev Kconfig
^ Intel Atom integrated graphics card for Windows 8 tablet is based on a PowerVR
^ Raspberry VideoCore 4 support on Windows Microsoft doesn't have plan for OpenGL on UWP also Broadcom doesn't have plan for DirectX
^ a b c Linux emulation in FreeBSD - 2 A look inside...
^ a b c d e f g h i j NetBSD Binary Emulation
^ "Summer of Code:NDIS on NetBSD" .
^ "Crc32_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Crc32.c « lib - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Crc32c_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Md4.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Md5.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Sha1_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Sha256_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Sha3_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Michael_mic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Poly1305_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd128.c [dead link ]
^ "Rmd160.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd256.c [dead link ]
^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd320.c [dead link ]
^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/tgr192.c [dead link ]
^ "Wp512.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Hmac.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ "Vmac.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree" .
^ in OSS APIhe_future Improving libossaudio, and the future of OSS in NetBSD . NetBSD Project. April 27, 2020
^ audio_system(9) - NetBSD Manual Pages . NetBSD Project
^ NVIDIA Is Helping To Improve Linux's Dynamic Display Mux Support For Laptops . Phoronix. 14 October 2024.
^ Deadline Scheduling Policy Being Experimented With For Linux Graphics Drivers . Phoronix. December 30, 2024.
^ Introduction to Video Present Networks . Microsoft. December 15, 2021.
^ WDDM Architecture . Microsoft. October 2, 2024.
^ Video Memory Management and GPU Scheduling . Microsoft. July 3, 2024.