Comparison of operating system kernels
A kernel is a component of a computer operating system.[1] It serves as an intermediary connecting software to hardware, enabling them to work together seamlessly.[2] 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.
Template:Sticky header Template:Sort-under
Failure analysis and availability
| Kernel Name | Kernel Log | Serious system error report | Fatal system error report | Kernel crash dump | Kernel debugger | Hardware error detection | Software RAID | Remote storage replication | Template:Verth | Template:Verth | Kernel live patching | Kernel live update |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DragonFly BSD kernel | Yes | ? | Kernel panic | ? | ddb | ? | ? | ? | ? | ? | ? | ? |
| FreeBSD kernel | kern.msgbuf in sysctl | ? | Kernel panic | Yes[17] | KGDB | ? | GEOM | (HAST in user-space) | ? | ? | ? | ? |
| Linux kernel | kmsg | Linux kernel oops | Kernel panic / drm_panic | kdump | KDB / KGDB | EDAC (formerly Bluesmoke) | md | DRBD | Yes | Yes | kpatch | Kexec HandOver / (Live Update Orchestrator[18]) |
| NetBSD kernel | Yes | ? | Kernel panic | ? | DDB / KGDB | ? | RAIDframe | ? | ? | ? | ? | ? |
| OpenBSD kernel | Yes | ? | Kernel panic | Yes[19] | ddb | ? | softraid | ? | ? | ? | ? | ? |
| Solaris kernel | Yes | ? | Yes | System core dump[20] | mdb | ereport | Solaris Volume Manager | ? | ? | ? | ? | ? |
| Windows NT kernel | NT Kernel Logger in ETW | Blue screen of death (BSoD) | Kernel-mode Dump | KD | WHEA | Storage Spaces / Disk Management | Storage Replica / DFS Replication | ? | ? | Hotpatch[21] | ? | |
| XNU | Yes | ? | Kernel panic | ? | ddb / kdp | ? | AppleRAID | ? | ? | ? | ? | ? |
| Zircon | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Scalability and clustering
Script error: No such module "Unsubst". Template:Sort-under
| Kernel Name | Supported number of CPU cores | NUMA support | Computer cluster interconnect | Application checkpointing / Process migration |
Single system image | Clustered file system | |||
|---|---|---|---|---|---|---|---|---|---|
| Remote direct memory access (RDMA) support | InfiniBand support | PCI Express Non-Transparent Bridge (NTB) support |
CXL 3.1 inter-host communication support | ||||||
| DragonFly BSD kernel | 256[22] | Partial[22] | ? | ? | ? | ? | sys_checkpoint[23] | planned[24] | HAMMER2 |
| FreeBSD kernel | 1024[25] | Yes | Yes[26] | Yes | Yes[27] | ? | ? | No | ? |
| Linux kernel | 8192 | Yes | Yes | Yes | Yes[28] | ? | Checkpoint/Restart | (openMosix) | Ceph / OCFS2 / GFS2 |
| Windows NT kernel | ? | Yes | ? | ? | ? | ? | ? | No | Cluster Shared Volumes |
Realtime support
| Kernel Name | Full kernel preemption | Realtime Scheduling | Realtime Priority | Realtime I/O | Template:Verth | Prevent priority inversion (Priority inheritance) | CPU Isolation | Disable CPU's Interrupt request (IRQ) handling | Disable CPU's timer ticks | Prevent memory from being swapped out |
|---|---|---|---|---|---|---|---|---|---|---|
| DragonFly BSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| FreeBSD kernel | ? | ULE scheduler's SCHED FIFO/SCHED RR[29] | rtprio system call[29] | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| Linux kernel | preempt=full | CFS/EEVDF's SCHED FIFO/SCHED RR | rtprio system call | IOPRIO_CLASS_RT | rtmutex on PREEMPT RT | isolcpus | irqaffinity | nohz_full | mlock/mlockall system call | |
| NetBSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| OpenBSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| Solaris kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| Windows NT kernel | ? | REALTIME_PRIORITY_CLASS | ? | ? | ? | AutoBoost[30] | ? | ? | ? | VirtualLock |
| XNU | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock system call |
| Zircon | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Transport protocol support
| Kernel Name | Internet layer (L3) | Transport layer (L4) | L4S Congestion controls | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| IPv4 | IPv6 | IPSec | TCP | Multipath TCP | UDP | SCTP | DCCP | QUIC | Accurate ECN | TCP Prague | Dual-Queue Coupled Active Queue Management | |
| DragonFly BSD kernel | Yes | Yes | ? | Yes | ? | Yes | No | No | ? | ? | ? | ? |
| FreeBSD kernel | Yes | Yes | ? | Yes | ? | Yes | Yes | Optional | ? | ? | ? | ? |
| Linux kernel | Yes | Yes | Yes | Yes | Partial[31] | Yes | Yes | dropped in 6.16 | (QUIC in Linux Kernel) | (Linux kernel tree with L4S patches) | ||
| NetBSD kernel | Yes | Yes | ? | Yes | ? | Yes | Yes | Yes | ? | ? | ? | ? |
| OpenBSD kernel | Yes | Yes | ? | Yes | ? | Yes | ? | ? | ? | ? | ? | ? |
| Solaris kernel | Yes | Yes | ? | Yes | ? | Yes | Yes | ? | ? | ? | ? | ? |
| Windows NT kernel | Yes | Yes | ? | Yes | ? | Yes | No | ? | ? | ? | ? | ? |
| XNU | Yes | Yes | ? | Yes | Yes | Yes | No | No | ? | ? | ? | ? |
| Zircon | ? | ? | ? | Yes | ? | Yes | Yes | Yes | ? | ? | ? | ? |
Data link layer and Tunneling protocol support
Script error: No such module "Unsubst".
| Kernel Name | Data link layer (L2) | L2 over L2 | L2 segmentation | layer 2.5 (L2.5) | L2 over L2.5 | L2 over L3 | L3 over L3 | L2 over L4 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PPP | Ethernet | PPPoE | IEEE 802.1Q (VLAN) | IEEE 802.1ad (QinQ) | MPLS | VLL Epipe (VPWS) | L2TPv3 | L2 GRE | L3 GRE | IP in IP (IPIP)[32] | 6in4 (SIT)[33] | PPTP | L2TP | VXLAN | |
| DragonFly BSD kernel | Yes[34] | Yes | ? | Yes[35] | ? | ? | ? | ? | ? | Yes[36] | ? | gif[37] | ? | ? | ? |
| FreeBSD kernel | Kernel PPP[38] | Yes | ? | Yes[39] | ? | ? | ? | ? | ? | Yes[40] | ? | gif[41] | ? | ? | Yes[42] |
| Linux kernel | Yes[43] | Yes[44] | Yes[45] | Yes[46] | Yes[47] | ? | Yes[48] | ? | Yes[49] | Yes[50] | Yes[51] | Yes[52] | Yes[53] | Yes[54] | |
| NetBSD kernel | Yes[55] | Yes | Yes[56] | Yes[57] | ? | Yes[58] | ? | l2tp interface[59] | ? | Yes[60] | gif[61] | ? | ? | ? | |
| OpenBSD kernel | Yes[62] | Yes | Yes[63] | Yes[64] | svlan[64] | ? | mpw[65] | ? | egre[66] | Yes[66] | ? | gif[67] | ? | ? | Yes[68] |
| Solaris kernel | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | Yes |
| Windows NT kernel | ? | Yes | raspppoe.sys | ? | ? | ? | ? | ? | ? | Yes[69] | ipinip.sys | No[70] | ? | rasl2tp.sys | Yes |
| XNU | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Zircon | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
In-kernel security
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[74] | ||||
| XNU | chroot | ? | ? | ? | ? | ? | ? | ? | No |
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 | (TUX web server patch) | (TUX web server patch) | knfsd | ksmbd | ? | IP Virtual Server | (KTCPVS) | (patch available) | SOL_TLS[75] | (Tempesta FW)[76] | (kmemcached) |
| DragonFly BSD kernel | No | No | Yes | Yes | ? | Yes[77] | ? | No | No | ? | ? |
| FreeBSD kernel | No | No | Yes | No | No | Yes[78] | No | No | No | ? | ? |
| Solaris kernel | ? | ? | Yes | Yes[79] | ? | Yes[80] | Yes[80] | ? | KSSL | ? | ? |
| Windows NT kernel | HTTP.sys | ? | ? | Yes | ? | Yes | Yes | No | ? | ? | ? |
| XNU | No | No | Yes | No | No | No | No | No | No | ? | ? |
Binary format support
A comparison of OS support for different binary formats (executables): Template:Sort-under
| Name | a.out | ECOFF | ELF | FDPIC ELF binaries (mmu less) |
flat binaries (superH) |
HUNK | Mach-O | Template:Verth | PE | SOM (PA-RISC, HP-UX) |
NLM | PEF | DOS COM | MZ | LE | LX | NE |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Amiga Exec | No | No | Yes[81] | 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[82] | Yes | ? | No | ? | ? | ? | ? | ? |
| MINIX 3 | Some[12][13] | No | Yes[11] | No | No | No | No | No | No | No | No | No | ? | ? | ? | ? | ? |
| NetBSD | Yes | Yes | Yes | ? | ? | ? | Yes | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
| OpenBSD | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ReactOS | ? | ? | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
| Solaris | Yes[83] | No | Yes[84] | No | No | No | No | No | Some[85] | 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: Template:Sort-under
| Kernel | Acorn ADFS | Amiga FFS | APFS | 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 | No | No | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | Yes | No | No | No | No | No | limited write | No | No | No | read only | Yes | No | No | No | No | No | Yes | No | No | No |
| FreeBSD kernel | No | No | No | No | No | No | No | Yes | Yes | Yes | No | 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 | ? | No |
| Linux kernel | Yes [86] |
Yes | Yes [87] |
read only | Yes | Yes | read only | Yes | Yes | Yes | Yes | Yes | read only | Yes | limited write (only with empty journal) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Full R/W with additional userspace driver)[88] |
Yes | Yes [86] [89] |
write support? | Yes | Yes [86] |
Yes | both FUSE and native | Yes | Yes | Yes | No | Yes | Yes | No |
| MINIX 3 kernel | No | No | No | No | No | No | No | Yes | No | 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 | No |
| NetBSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| NetWare kernel | No | No | 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 | ? | No |
| OpenBSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ReactOS kernel | No | No | No | No | No | No | No | Yes [90] |
Yes [90] |
Yes [90] |
No | Yes [90] |
No | No | No | No | Yes [90] |
No | No | No | No | No | Read only | No | No | No | Yes [90] |
No | No | No | No | No | Yes [91] |
No | No | No | No |
| Solaris kernel | ? | ? | No | ? | ? | ? | ? | Yes | ? | ? | ? | Yes | ? | ? | ? | ? | Yes | ? | ? | ? | ? | No | No | ? | ? | ? | Yes | Yes | ? | Yes | No | No | No | No | No | ? | No |
| Windows NT kernel | ? | ? | Yes [87] |
? | ? | ? | ? | Yes [92] |
Yes [93] |
Yes [93] |
No | Yes | ? | Yes [87] |
Yes [87] |
No | Yes | ? | ? | ? | ? | No | Yes | ? | ? | ? | Yes | ? | ? | No | No | No | Yes [91] |
No | No | Yes | Yes |
| XNU | No | No | Yes | No | No | No | No | Yes [94] |
Yes [94] |
No | No | Yes | No | Yes | Yes | No | Yes | No | No | No | No | No | Read-Only | No | No | No | Yes | Yes | No | read only | No | No | No | No | No | Yes | No |
Networked file system support
| Kernel Name | NFS | AFS | CIFS | Coda | 9P | Ceph |
|---|---|---|---|---|---|---|
| DragonFly BSD kernel | up to NFSv3 | No | Yes | No | No | No |
| FreeBSD kernel | Yes | Yes | Yes | Yes | No | Yes |
| Linux kernel | Yes | Yes | Yes | Yes | Yes | Yes |
| NetBSD kernel | up to NFSv3 | ? | ? | ? | ? | ? |
| OpenBSD kernel | up to NFSv3 | ? | ? | ? | ? | ? |
| Solaris kernel | Yes | Yes | Yes | No | No | No |
| Windows NT kernel | Yes | Yes | Yes | No | No | No |
| XNU | Yes | Yes | Yes | No | No | No |
Supported CPU instruction sets and microarchitectures
Script error: No such module "Labelled list hatnote". Template:Sort-under
| kernel | HP | Softbank, ARM Holdings |
Intel | MIPS | IBM | Renesas Electronics | Oracle | NXP | Analog Devices | Xilinx | Cadence | Canon, Axis Comm. |
Socionext | Microchip, Atmel |
CML, Hyperstone |
Intel, Altera |
WDC | Sunplus Technology | NVIDIA | TI | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| VAX | Alpha | PA-RISC | ARM | x86 | i960 | IA-64 | MIPS | PowerPC | S/390 | z/Arch | H8300 | M16C | M32R | 78K | V850 | SuperH | SPARC | m68k | Blackfin (no-mmu) | MicroBlaze | Xtensa | ETRAX CRIS | FR-V | MN10300 | AVR32 | E1 (no-mmu) | Nios (no-mmu) | Nios II | WDC 65C816 | S+core | Tilera | C6X | |||||||||||
| mmu | no-mmu | x86 | x86-64 | mmu | no-mmu | 32-bit | 64-bit | mmu | no-mmu | 32-bit | 64-bit | no-mmu | mmu | no-mmu | mmu | no-mmu | mmu | no-mmu | |||||||||||||||||||||||||
| DragonFly BSD kernel | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| FreeBSD kernel | No | 6.4 and below only[95] | No | Yes | ? | Yes | Yes | No | 10.4 and below only[95] | projected to end in 14.x[95] | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | 12.x and below only[95] | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Linux kernel | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ? | Yes | Yes | Yes | Yes | Yes | No | 4.16 and below only[96] | No | 2.6 and below only | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 4.16 and below only[96] | Yes | Yes | Yes | 4.16 and below only[96] | 4.16 and below only[96] | 4.16 and below only[96] | 4.12 and below only | No | No | Yes | Yes | No | 4.16 and below only[96] | 4.16 and below only[96] | Yes |
| MINIX 3 kernel | ? | No | No | Yes | ? | Yes | In progress | No | No | In progress | ? | No | No | No | No | No | ? | No | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| NetBSD kernel | Yes | Yes | Yes | Yes | No[97] | Yes | Yes | ? | Yes | Yes | No[97] | Yes | No | No | No | ? | ? | ? | ? | ? | Yes | No[97] | Yes | Yes | No[97] | Yes | No[97] | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| NetWare kernel | No | No | No | No | No | Yes | No | ? | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| OpenBSD kernel | last supported release 5.8[98] | Yes | Yes | Yes | ? | Yes | Yes | ? | No | Yes | ? | Yes | No | No | No | ? | ? | ? | ? | ? | Yes | ? | Yes | Yes | ? | Yes | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Rockbox kernel | ? | ? | ? | Yes | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | No | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Solaris kernel | No | No | No | No | No | Yes | Yes | ? | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | No | No | Yes | Yes | ? | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Windows NT kernel | No | NT 5.0 RC1 and below only | No | Yes | No | Yes | Yes | No | XP and 2003-2008 R2 only | NT 4.0 and below only | No | NT 3.51 and NT 4.0 only | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Windows CE kernel | No | No | No | Yes | ? | Yes | ? | No | No | Yes | ? | No | No | No | No | No | ? | No | ? | No | Yes | ? | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| XNU | No | No | No | Yes | ? | Yes | Yes | ? | No | No | No | Yes | Yes | No | No | ? | ? | ? | ? | ? | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| SPARTAN kernel | ? | No | No | Yes | ? | Yes | Yes | ? | Yes | Yes | ? | Yes | No | No | No | ? | ? | ? | ? | ? | No | No | Yes | Yes | ? | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| FreeRTOS kernel | ? | ? | ? | ? | Yes[99] | ? | ? | ? | ? | ? | ? | Yes[99] | ? | ? | No | Yes[99] | ? | ? | Yes[99] | Yes[99] | ? | Yes[99] | ? | ? | ? | ? | ? | Yes[99] | Yes[99] | ? | ? | ? | ? | ? | Yes[99] | ? | ? | ? | Yes[99] | ? | ? | ? | ? |
| Zircon | No | No | No | Yes | Yes | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Supported GPU processors
| Kernel name | Intel | NVIDIA | AMD | ARM | Qualcomm | Imagination Technologies | Broadcom | VeriSilicon |
|---|---|---|---|---|---|---|---|---|
| Intel HD/Iris Graphics | GeForce/Quadro/Tesla | Radeon | Mali | Adreno | PowerVR | VideoCore4 | Vivante | |
| Linux kernel | Yes | Yes | Yes | Yes | Yes | 2D only[100][101] | Yes | Yes |
| Windows NT kernel | Yes | Yes | Yes | ? | Windows Phone 8.x, Windows 10 Mobile, Windows on ARM | Yes[102] | No[103] | Yes |
| XNU | via I/O Kit (macOS only) | via I/O Kit (macOS only) | No | via I/O Kit (iOS only) | No | No | ||
Supported kernel execution environment
This table indicates, for each kernel, what operating systems' executable images and device drivers can be run by that kernel. Template:Sort-under
| Kernel name | Linux | Darwin | Windows NT | FreeBSD | NetBSD | Solaris | OSF/1 | Amiga Unix | SunOS | BSD/OS | iBCS2 systems | IRIX | Ultrix | NDIS | SVR4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FreeBSD kernel | Yes[104] | No | No | Yes | No | No | No | No | No | No | No | No | No | Yes[104] | Yes[104] |
| Linux kernel | Yes | No | (Longene) | Yes | Yes | No | No | No | No | No | No | No | No | (NDISwrapper) | No |
| NetBSD kernel | Yes[105] | No? [3]? | No? [4]? | Yes[105] | Yes | Yes[105] | Yes[105] | Yes[105] | Yes[105] | Yes[105] | Yes[105] | Yes[105] | Yes[105] | Yes[106] | Yes |
| OpenBSD kernel | Yes | No | No | Yes | Yes | Yes | No | No | Yes | ? | ? | ? | ? | No | Yes |
| Windows NT kernel | No | No | Yes | No | No | No | No | No | No | No | No | No | No | Yes | No |
| ReactOS kernel | No | No | Yes | No | No | No | No | No | No | No | No | No | No | ? | No |
| XNU | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Supported cipher algorithms
This may be usable on some situations like file system encrypting. Template:Sort-under
| 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 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | No | Yes | No | No | No | Yes | Yes | No | No | No | No |
| FreeBSD kernel | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | No | No | No | Yes | No | No | Yes | Yes | Yes | No | No | No | No |
| Linux | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Windows NT kernel | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | No | No | No | No | No | No | Yes | No | No | No | No | No |
| macOS XNU Kernel | Yes | Yes | Yes | ? | ? | ? | Yes | ? | ? | Yes | Yes | ? | ? | ? | ? | Yes | Yes | ? | ? | ? | ? | ? |
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
| Kernel name | CRC-32 (IEEE) | CRC32c | MD2 | MD4 | MD5 | SHA-1 | SHA-2 | SHA-3 | Michael MIC | Poly1305 | RIPEMD-128 | RIPEMD-160 | RIPEMD-256 | RIPEMD-320 | Tiger | Whirlpool | HMAC | MDC-2 | GOST | LASH | VMAC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Yes[107][108] | Yes[109] | No | Yes[110] | Yes[111] | Yes[112] | Yes[113] | Partial[114] | Yes[115] | Yes[116] | Yes[117] | Yes[118] | Yes[119] | Yes[120] | Yes[121] | Yes[122] | Yes[123] | No | No | No | Yes[124] |
| Solaris kernel | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | ? | ? | ? | Yes | ? | ? | Yes | ? | Yes | Yes | ? | ? | ? |
| Windows NT kernel | ? | ? | Yes | Yes | Yes | Yes | Yes | ? | No | ? | No | No | No | No | No | No | Yes | No | No | No | ? |
| FreeBSD kernel | Yes | Yes | ? | Yes | Yes | Yes | Yes | ? | ? | ? | ? | Yes | ? | ? | Yes | ? | Yes | ? | ? | ? | ? |
| XNU kernel | Yes | ? | Yes | ? | Yes | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Kernel name | CRC-32 (IEEE) | CRC32c | MD2 | MD4 | MD5 | SHA-1 | SHA-2 | SHA-3 | Michael MIC | Poly1305 | RIPEMD-128 | RIPEMD-160 | RIPEMD-256 | RIPEMD-320 | Tiger | Whirlpool | HMAC | MDC2 | GOST | LASH | VMAC |
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
| Kernel name | Audio system | in-kernel mixer | in-kernel filter |
|---|---|---|---|
| Linux | ALSA | ? | ? |
| Windows NT kernel | MME / WDM audio / Kernel Streaming (KS) | dropped (KMixer.sys) | KS Filters |
| FreeBSD kernel | OSS API | VCHANs in OSS API | ? |
| NetBSD kernel | native (Sun-like) / OSS API[125] | audio_system[126] | ? |
| Solaris kernel | Sun audio API / OSS API | Yes | ? |
Graphics support
| Kernel name | Framebuffer | Display management | Display Mux | GPU scheduler | GPU memory management | in-kernel Remote Desktop |
|---|---|---|---|---|---|---|
| Linux | Linux framebuffer (fbdev) / Direct Rendering Manager | Kernel Mode Setting | VGA Switcheroo[127] | DRM sched[128] | DMA-BUF | No |
| Windows NT kernel | Dxgkrnl.sys | VidPN Manager in Dxgkrnl.sys[129] | ? | VidSch in Dxgkrnl[130] | VidMm in Dxgkrnl.sys, Dxgmms1.sys, and Dxgmms2.sys[131] | RdpDD.sys / RdpWD.sys |
See also
- Comparison of open-source operating systems
- Comparison of Linux distributions
- Comparison of BSD operating systems
- Comparison of Microsoft Windows versions
- List of operating systems
- Comparison of file systems
- Comparison of operating systems
Footnotes
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ 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.Script error: No such module "Unsubst".
- ↑ Script error: No such module "citation/CS1".
- ↑ Template:Man
- ↑ a b Script error: No such module "URL".Script error: No such module "Check for unknown parameters".
- ↑ a b c Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ A full task-isolation mode for the kernel
- ↑ a b Supports ELF since version 3.2.0 Script error: No such module "citation/CS1".
- ↑ a b a.out will be phased out in coming releases. Script error: No such module "citation/CS1".
- ↑ a b Commit to remove a.out utils from minix; only supports running a.out now. Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ 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
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ iOS Extraction Without a Jailbreak: Full iOS 9 Support, Simplified File System Extraction. ElcomSoft. August 6, 2020
- ↑ Script error: No such module "citation/CS1".
- ↑ doc/Documentation/networking/tls.txt kernel.org
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ 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 Template:Webarchive
- ↑ a b Third party module required. Mac OS X Kernel Module available here
- ↑ a b c d Script error: No such module "citation/CS1".
- ↑ a b c d e f g Script error: No such module "citation/CS1".
- ↑ a b c d e NetBSD Projects - Support for MMU-less systems
- ↑ Script error: No such module "citation/CS1".
- ↑ 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
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd128.c Template:Dead link
- ↑ Script error: No such module "citation/CS1".
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd256.c Template:Dead link
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd320.c Template:Dead link
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/tgr192.c Template:Dead link
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ 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.