A kernel is a component of a computer operating system. It serves as an intermediary connecting software to hardware, enabling them to work together seamlessly. 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.
| Kernel name | Programming language | 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 |
|---|
| Amiga Exec | | AmigaOS | Commodore International | HUNK | Exokernel (atypical) | 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 | C | DragonFly BSD | Matt Dillon | ELF | hybrid | Ipfirewall, PF | Yes | No | Yes | chroot, jail, vkernel | Unix permissions | DDB, KGDB | ? | ? | ? |
| FreeBSD kernel | C | FreeBSD, Debian GNU/kFreeBSD, Gentoo/FreeBSD, Orbis OS | The FreeBSD Project | ELF, others - platform dependent | monolithic | IPFilter, Ipfirewall, PF | Yes | Yes | Yes | chroot, jail, bhyve | Unix permissions, POSIX.1e and NFSv4 ACLs, Capsicum, TrustedBSD MAC, OpenBSM | KDB, DDB, KGDB, DTrace, hwpmc | Yes | ? | Yes |
| GNU Hurd | C | GNU/Hurd (Arch Hurd, Debian GNU/Hurd) | GNU Project/Free Software Foundation | ELF | | No | Partial | No | Yes | chroot, Xen | Unix permissions, POSIX ACL, POSIX Capabilities | ? | ? | ? | ? |
| GNU Mach | C | part of GNU Hurd, used in GNU/Hurd | GNU Project/Free Software Foundation | ELF | microkernel | No | Partial | No | Yes | No | No | ? | ? | ? | ? |
| Inferno kernel | | Inferno | Bell Labs / Vita Nuova Holdings | ? | virtual machine | ? | Yes | Yes | Yes | chroot, Xen | ? | ? | ? | ? | ? |
| L4 | | L4 | Jochen Liedtke | None | microkernel | No | Yes | Yes | Yes | Yes | Afterburner/L4 , Marzipan , capabilities in L4/Fiasco | L4/Fiasco | L4/Fiasco | ? | ? |
| Linux kernel | C | Linux (kernel), Android, Ubuntu, CentOS, webOS, Fire OS, Firefox OS, ChromeOS, Syllable Server, Mastodon Linux, OpenBSD/Linux, Plan 9/Linux, Sailfish OS, Tizen, amongst others. | Linus Torvalds | ELF, others | monolithic | Ipfirewall (1.1 –) ipchains (2.2 –) Netfilter (2.4 –) nftables (3.13 –) XDP (4.8 –) | Yes | Yes | Yes | cgroups, chroot, Lguest, Xen, KVM, kvm-lite, LXC | Unix permissions, POSIX ACL, POSIX Capabilities, keyctl, LSM (SELinux, SMACK, TOMOYO Linux, AppArmor) | OProfile, kprobe, SystemTap, JProbe, ftrace, KDB, KGDB, kernel marker, perf tools, eBPF | preempt=full, threadirqs | PREEMPT RT, CPU task isolation | Yes |
| Compute Node Linux | | Compute Node Linux | Cray Inc. | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Mach | C | NeXTSTEP and OPENSTEP for Mach, Tru64 UNIX and MkLinux | Carnegie Mellon University | Mach-O | microkernel, hybrid kernel | ? | Yes | ? | Yes | ? | ? | ? | Yes | ? | ? |
| MINIX 3 kernel | C | MINIX 3 | Andrew S. Tanenbaum | ELF, a.out | microkernel | No | No | Yes | Yes | No | Unix permissions | Call profiling, statistical profiling, Minix Debugger (mdb) | No | No | ? |
| NetBSD kernel | C | NetBSD, GNU/kNetBSD (Debian GNU/NetBSD), | The NetBSD Project | ELF, others - platform dependent | monolithic, anykernel using rump kernel architecture | IPFilter, PF, NPF | Yes | Yes | Yes | Xen, chroot | kauth, Unix permissions | DDB, KGDB, tprof | POSIX real-time scheduling extensions | Kernel preemption | Yes |
| NetWare kernel | | NetWare | Novell | NLM | hybrid | Yes | Yes | No | Yes | ? | ? | ? | ? | ? | ? |
| OpenBSD kernel | C | OpenBSD | OpenBSD developers | ELF, others - platform dependent | monolithic | PF | Yes | Yes | Yes | ? | Unix permissions | ? | ? | ? | ? |
| OS/2 kernel | | OS/2 version 2 and above | IBM | LX | hybrid | No | Yes | No PowerPC version developed but never officially released. | Yes | No | Yes | Yes | Yes | No | ? |
| Plan 9 kernel | C | Plan 9 from Bell Labs | Bell Labs | ? | monolithic | ipmux | Yes | Yes | Yes | ? | ? | ? | ? | ? | ? |
| ReactOS kernel | C | ReactOS | ReactOS Foundation | PE | hybrid | ? | Yes | Yes | Yes | ? | Yes | Yes | ? | ? | ? |
| Rockbox kernel | | Rockbox | The Rockbox Project | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? |
| SunOS kernel | C | SunOS | Sun Microsystems | a.out | monolithic | ? | Yes | Yes | Yes | ? | Unix permissions | ? | ? | ? | ? |
| Solaris kernel | C | Solaris, OpenSolaris, GNU/kOpenSolaris (Nexenta OS) | Sun Microsystems | ELF (32-bit only until Solaris 7 in 1998) | monolithic | IPFilter, PF (since Oracle Solaris 11.3) | Yes | Yes | Yes | Zones, chroot | Unix permissions, ACL, RBAC, Auditing, Privileges, Zones, Trusted Extensions | DTrace, CPU profiling, microstate accounting, perf counters, kernel lock stats, kstats, mdb, kmdb | Real-time scheduler | ? | Yes |
| SVR5 kernel | C | UnixWare 7, OpenServer 6 | Santa Cruz Operation | ELF | monolithic | IPFilter | Yes | No | Yes | No | Unix permissions | ? | ? | ? | Yes |
| Trix kernel | | Trix | Massachusetts Institute of Technology | a.out | monolithic | ? | Yes | No | Yes | ? | ? | ? | ? | ? | ? |
| VMkernel | C | VMware ESXi | VMware | ELF | monolithic | Yes | Yes | Yes | Yes | Yes | Unix permissions | Built-in debugger | ? | ? | Yes |
| Windows NT kernel | C | All Windows NT family systems, 2000, XP, 2003, Vista, Windows 7, Windows 8, Windows Phone 8, Windows Phone 8.1, Windows 10, Windows 11, Windows Server | Microsoft | PE | hybrid | Yes | Yes | Yes | Yes | Hyper-V | ACL, Privileges | Event Tracing, dgbss, kd | Multimedia Class Scheduler Service | No | Unofficial |
| Windows 9x kernel | C++ | Windows 95, Windows 98, Windows Me | Microsoft | PE | monolithic | | | | | | | | | | |
| XNU (Darwin kernel) | C, C++ | macOS, iOS, iPadOS, tvOS, watchOS, OpenDarwin, PureDarwin GNU/Darwin | Apple Inc. | Mach-O | hybrid | Ipfirewall, PF (starting in Lion) | Yes | Yes | Yes | chroot | Unix permissions, NT/NFSv4 ACLs, TrustedBSD MAC, OpenBSM | KDB, DDB, DTrace | Yes | No | Yes |
| SPARTAN kernel | C | HelenOS | Jakub Jermar | ELF | microkernel | ? | Yes | Yes | Yes | ? | ? | ? | ? | ? | ? |
| Zircon | C++ | Fuchsia OS | Google | ELF | microkernel | No | Yes | Yes | Yes | Lguest, Xen, KVM, kvm-lite | Yes | KDB, DDB, GDB | Yes | No | Yes |
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 | CPU hotplug | Memory hotplug | Kernel live patching | Kernel live update |
|---|
| DragonFly BSD kernel | Yes | ? | Kernel panic | ? | ddb | ? | ? | ? | ? | ? | ? | ? |
| FreeBSD kernel | kern.msgbuf in sysctl | ? | Kernel panic | Yes | ddb | ? | GEOM, ZFS | (HAST in user-space) | No | ? | ? | ? |
| Linux kernel | kmsg | Linux kernel oops | Kernel panic / drm_panic | kdump | KDB / KGDB | EDAC (formerly Bluesmoke) | md, LVM | DRBD | Yes | Yes | livepatch | Kexec HandOver / Live Update Orchestrator |
| NetBSD kernel | Yes | ? | Kernel panic | ? | DDB / KGDB | ? | RAIDframe, ZFS | ? | ? | ? | ? | ? |
| OpenBSD kernel | Yes | ? | Kernel panic | Yes | ddb | ? | softraid | ? | ? | ? | ? | ? |
| Solaris kernel | Yes | ? | Yes | System core dump | mdb | ereport | Solaris Volume Manager, ZFS | ? | ? | ? | ? | ? |
| Windows NT kernel | NT Kernel Logger in ETW | Stop Error (Blue Screen of Death) | Kernel-mode Dump | KD | WHEA | Storage Spaces / Disk Management | Storage Replica / DFS Replication | ? | ? | Hotpatch | ? |
| XNU | Yes | ? | Kernel panic | ? | ddb / kdp | ? | AppleRAID | ? | ? | ? | ? | ? |
| Zircon | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Scalability and clustering
| 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 with GIM support |
| DragonFly BSD kernel | 256 | Partial | ? | ? | ? | ? | sys_checkpoint | planned | HAMMER2 |
| FreeBSD kernel | 1024 | Yes | Yes | Yes | Yes | ? | ? | No | pNFS |
| Linux kernel | 8192 | Yes | Yes | Yes | Yes | No | Checkpoint/Restart | (openMosix) | pNFS / Ceph / OCFS2 / GFS2 |
| Solaris kernel | 512 | Yes | Yes | Yes | ? | ? | No | No | PxFS |
| Windows NT kernel | ? | Yes | ? | ? | ? | ? | ? | No | Cluster Shared Volumes |
Realtime support
| Kernel Name | Full kernel preemption | Prevent priority inversion (Priority inheritance) | Realtime Scheduling | Realtime Priority | Realtime I/O | CPU Isolation | Disable CPU's Interrupt request (IRQ) handling | Disable CPU's timer ticks | Prevent memory from being swapped out |
|---|
| kernel threads | interrupt handlers | lock sections | kernel space | userland |
| DragonFly BSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| FreeBSD kernel | ? | ? | ? | ? | UMUTEX_PRIO_INHERIT on _umtx_op | SCHED_FIFO / SCHED_RR on ULE scheduler | rtprio system call | ? | ? | ? | Yes, since FreeBSD 9.0 | mlock/mlockall system call |
| Linux kernel | preempt=full | threadirqs | PREEMPT_RT | RT-mutex / (mutex with Proxy Execution) | PI-futexes | SCHED_FIFO / SCHED_RR on CFS/EEVDF | rtprio system call | IOPRIO_CLASS_RT | isolcpus | irqaffinity | nohz_full | mlock/mlockall system call |
| NetBSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| OpenBSD kernel | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| Solaris kernel | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | mlock/mlockall system call |
| Windows NT kernel | Yes | ? | ? | AutoBoost | ? | REALTIME_PRIORITY_CLASS | ? | ? | ? | ? | Windows 8 and later | VirtualLock |
| XNU | ? | ? | ? | ? | os_unfair_lock | ? | ? | ? | ? | ? | ? | 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 | UDP-Lite | SCTP | DCCP | QUIC | Accurate ECN (AccECN) | TCP Prague | Dual-Queue Coupled Active Queue Management |
| DragonFly BSD kernel | Yes | Yes | ? | Yes | ? | Yes | No | No | No | ? | ? | ? | ? |
| FreeBSD kernel | Yes | Yes | Yes | Yes | Unofficial patch exists | Yes | Yes | Yes | Unofficial patches exist | ? | ? | ? | ? |
| Linux kernel | Yes | Yes | Yes | Yes | Partial | Yes | dropped in 7.1 | Yes | dropped in 6.16 | Unofficial | Yes | (Linux kernel tree with L4S patches) | DualPI2 qdisc |
| NetBSD kernel | Yes | Yes | Yes | Yes | ? | Yes | ? | Yes | Yes | ? | ? | ? | ? |
| OpenBSD kernel | Yes | Yes | ? | Yes | ? | Yes | No | No | No | ? | ? | ? | ? |
| Solaris kernel | Yes | Yes | Yes | Yes | ? | Yes | No | Yes | No | ? | ? | ? | ? |
| Windows NT kernel | Yes | Yes | Yes | Yes | ? | Yes | ? | No | ? | ? | ? | ? | ? |
| XNU | Yes | Yes | ? | Yes | Yes | Yes | No | No | No | ? | ? | ? | ? |
| Zircon | ? | ? | ? | Yes | ? | Yes | ? | Yes | Yes | ? | ? | ? | ? |
Data link layer and Tunneling protocol support
| 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 | Mobile IP Minimal Tunneling | IP in IP (IPIP) | 6in4 (SIT) | PPTP | L2TP | VXLAN |
| DragonFly BSD kernel | Yes | Yes | ? | Yes | ? | ? | ? | ? | ? | Yes | gif | ? | ? | ? |
| FreeBSD kernel | Legacy kernel PPP and netgraph-based kernel PPP | Yes | Yes | Yes | ? | ? | ? | ? | ? | Yes | Yes | gif | ? | ? | Yes |
| Linux kernel | Yes | Yes | Yes | Yes | Yes | ? | Yes | ? | Yes | No | Yes | Yes | No | Yes | Yes |
| NetBSD kernel | Yes | Yes | Yes | Yes | ? | Yes | ? | l2tp interface | ? | Yes | gif | ? | ? | ? |
| OpenBSD kernel | Yes | Yes | Yes | Yes | svlan | ? | mpw | ? | egre | Yes | No | ? | gif | ? | ? | Yes |
| Solaris kernel | Yes | Yes | Yes | Yes | ? | ? | ? | ? | ? | ? | No | Yes | ? | No | No | Yes |
| Windows NT kernel | ? | Yes | raspppoe.sys | ? | ? | ? | ? | ? | ? | Yes | No | ipinip.sys | No | raspptp.sys | rasl2tp.sys | Yes |
| XNU | Yes | Yes | ? | Yes | ? | ? | ? | ? | ? | ? | No | gif | ? | ? | ? |
| Zircon | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Inter-process communication support
| Kernel Name | Signal | Messaging | Shared memory | Stream-oriented | Kernel-assisted Remote Procedure Call |
|---|
| Message queue (Mailbox) | between kernel and userspace | Anonymous | Named | Pipe | Local socket | Pseudo terminal |
| Anonymous pipe | Named pipe |
| FreeBSD kernel | Yes | POSIX/System V | AF_ROUTE and AF_NETLINK sockets | SHM_ANON | Yes | Bidirectional | Yes | AF_UNIX | posix_openpt, and UNIX 98 and BSD-style compatibility module | ? |
| XNU | Yes | POSIX | AF_ROUTE and AF_SYSTEM sockets, Mach IPC | ? | Yes | Unidirectional | Yes | AF_UNIX | UNIX 98 and BSD | Mach IPC |
| DragonFly BSD kernel | Yes | ? | ? | ? | Yes | Bidirectional | Yes | AF_UNIX | UNIX 98 and BSD | ? |
| NetBSD kernel | Yes | ? | AF_ROUTE sockets | ? | Yes | Unidirectional | Yes | AF_UNIX | UNIX 98, BSD and OpenBSD (ptm) | ? |
| OpenBSD kernel | Yes | ? | AF_ROUTE sockets | ? | Yes | Bidirectional | Yes | AF_UNIX | BSD and OpenBSD (ptm) | ? |
| Linux | Yes | POSIX/System V | AF_NETLINK sockets | memfd | POSIX/System V | Unidirectional | Yes | AF_UNIX | UNIX 98 and BSD | Binder |
| Solaris kernel | Yes | POSIX/System V | ? | ? | Yes | Bidirectional | Yes | AF_UNIX | UNIX 98 and BSD | Doors |
| Windows NT kernel | ? | MailSlot | ? | ? | Yes | Unidirectional | NPFS | AF_UNIX | No | ALPC |
In-kernel security
| Kernel | 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 | Traditional Unix permissions, POSIX ACL | Yes | Yes | LSM (SELinux, SMACK, TOMOYO Linux, AppArmor) | Yes | keyctl | fanotify / inotify | SELinux Sandbox, seccomp | SYN cookies | hashlimit module / intermediate lockless queues | ICMP rate limiting | reverse path filtering | Netfilter |
| FreeBSD kernel | Traditional Unix permissions, POSIX and NFSv4 ACL | Yes | Yes | TrustedBSD MAC | In-kernel privilege division, and Capsicum | ? | OpenBSM / inotify | Capsicum, MAC framework | SYN cookies | ? | ICMP rate limiting | ? | ? |
| Solaris kernel | Traditional Unix permissions, POSIX ACL, NFSv4 ACL | Default | ? | Solaris Trusted Extensions | Process privileges | ? | ? | ? | ? | ? | ? | ? | ? |
| Windows NT kernel | Access control list | DEP | Yes | Mandatory Integrity Control | Process security tokens, and AppContainers | No | Yes | Windows Event Log | Yes | Yes | ? | ? | ? |
| XNU | Traditional Unix permissions, NT/NFSv4 ACL | Yes | Yes | TrustedBSD MAC | ? | ? | OpenBSM | Apple XNU Sandbox | ? | ? | ? | ? | ? |
| Kernel | Code signing | Prevent BYOVD attack | Runtime integrity checking | Application Whitelisting | Verifying |
|---|
| Kernel (Secure Boot) | Kernel driver | Application | block device | filesystem |
| Linux | Yes | Module signature verification | IMA / EVM | ? | (Linux Kernel Runtime Guard) | ? | dm-verity | fs-verity |
| FreeBSD kernel | ? | ? | ? | ? | ? | ? | ? | ? |
| NetBSD kernel | ? | ? | ? | ? | ? | veriexec | ? | ? |
| Solaris kernel | ? | ? | ? | ? | ? | ? | ? | ? |
| Windows NT kernel | Yes | Kernel-Mode Code Signing | ? | Vulnerable Driver Blocklist | PatchGuard, HyperGuard | AppLocker | ? | Windows Resource Protection |
| XNU | ? | kext signing | ? | ? | Kernel Patch Protection | ? | ? | ? |
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 | bhyve | ? | ? | ? | No |
| NetBSD kernel | chroot | (sysjail (discontinued)) | No | Virtio, Xen | No | ? | Rump kernel | ? | No |
| OpenBSD kernel | chroot | No | No | Xen (guest only) | Yes | No | No | No | No |
| Solaris kernel | chroot | Solaris Containers / Zones | No | No | No | ? | ? | No |
| Windows NT kernel | AppContainers, Job Objects, Windows Server Containers | Hyper-V | | No | Virtual Secure Mode, Device Guard, Credential Guard |
| XNU | chroot | ? | ? | ? | Yes | ? | ? | ? | 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) | () | SOL_TLS | (Tempesta FW) | (kmemcached) |
| DragonFly BSD kernel | No | No | Up to NFS v3 | Yes | ? | Yes | ? | No | No | ? | ? |
| FreeBSD kernel | No | No | Yes | No | No | Yes | No | No | ktls | ? | ? |
| Solaris kernel | ? | ? | Yes | Yes | ? | Yes | Yes | ? | 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 kernel support for different binary formats (executables):
| Name | a.out | ECOFF | ELF | FDPIC ELF binaries (mmu less) | flat binaries (superH) | HUNK | Mach-O | Misc (wrapper based, like interpreters) | PE | SOM (PA-RISC, HP-UX) | NLM | PEF | DOS COM | MZ | LE | LX | NE |
|---|
| Amiga Exec | No | No | Yes | No | No | Yes | No | No | No | No | ? | ? | ? | ? | ? | ? | ? |
| DragonFly BSD kernel | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| FreeBSD kernel | Yes | No | Yes | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No |
| HP-UX kernel | No | No | Yes | No | No | No | No | No | No | Yes | No | No | ? | ? | ? | ? | ? |
| Linux | Dropped | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | ? | No | ? | ? | ? | ? | ? |
| MINIX 3 | Some | No | Yes | No | No | No | No | No | No | No | No | No | ? | ? | ? | ? | ? |
| NetBSD kernel | Yes | Yes | Yes | ? | ? | ? | Dropped | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
| OpenBSD kernel | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ReactOS kernel | ? | ? | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
| Solaris kernel | Yes | No | Yes | No | No | No | No | No | No | No | ? | ? | ? | ? | ? | ? | ? |
| Windows NT kernel | No | No | Yes with WSL | No | No | No | No | No | Yes | No | No | No | No | No | ? | ? | No |
| XNU | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No |
File system support
Physical file systems:
| 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 | Support dropped since 10.0-RELEASE | No | No | No | Yes | Yes | read only | Yes | read only | No | No | No | No | ? | No |
| Linux kernel | Yes | Yes | Unofficial | 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 | Full read/write support since 5.15 | Yes | Yes | write support? | Yes | Yes | Yes | 3rd-party module | 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 | ? | 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 | No | No | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | Yes | No | No | No | No | No | Read only | No | No | No | Read only | Yes | No | No | No | No | No | No | No | No | No |
| ReactOS kernel | No | No | No | No | No | No | No | Yes | Yes | Yes | No | Yes | No | No | No | No | Yes | No | No | No | No | No | Read only | No | No | No | Yes | No | No | No | No | No | Yes | No | No | No | No |
| Solaris kernel | ? | ? | No | ? | ? | ? | ? | Yes | ? | ? | ? | Yes | ? | ? | ? | ? | Yes | ? | ? | ? | ? | No | No | ? | ? | ? | Yes | Yes | ? | Yes | No | No | No | No | No | ? | No |
| Windows NT kernel | ? | ? | Unofficial | ? | ? | ? | ? | Unofficial | Unofficial | Unofficial | No | Yes | ? | Unofficial | Unofficial | No | Yes | ? | ? | ? | ? | No | Yes | ? | ? | ? | Yes | ? | ? | No | No | No | Unofficial | No | No | Yes | Yes |
| XNU | No | No | Yes | No | No | No | No | Unofficial | Unofficial | No | No | Yes | No | Yes | Yes | No | Yes | No | No | No | No | No | Read only | No | No | No | Yes | Yes | No | Official support was abandoned; 3rd-party modules available | 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 | Up to NFSv3 | Yes | Yes | No | No | No |
| XNU | Yes | Yes | Yes | No | No | No |
Pseudo file system support
| Kernel Name | Device File System | Process File System (procfs) | Interface for user-space file systems |
|---|
| DragonFly BSD kernel | devfs | Yes | FUSE |
| FreeBSD kernel | devfs | Obsoleted | FUSE |
| Linux | devtmpfs | Yes | FUSE |
| NetBSD kernel | No | Yes | PUFFS |
| OpenBSD kernel | No | No | FUSE |
| Solaris kernel | devfs | Yes | FUSE (3rd-party implementation) |
| XNU | devfs | No | FUSE (Unofficial implementation) |
Supported CPU instruction sets and microarchitectures
| 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 | 64-bit 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 | 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 | No | Yes | ? | Yes | Yes | Yes | No | 10.4 and below only | projected to end in 14.x | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | 12.x and below only | ? | 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 | Yes | No | 6.7 and below only | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | 4.16 and below only | No | 2.6 and below only | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 4.16 and below only | Yes | Yes | Yes | 4.16 and below only | 4.16 and below only | 4.16 and below only | 4.12 and below only | No | No | Yes | Yes | No | 4.16 and below only | 4.16 and below only | Yes |
| MINIX 3 kernel | ? | No | No | Yes | ? | No | 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 | Yes | Yes | Yes | ? | Yes | Yes | No | Yes | No | No | No | ? | ? | ? | ? | ? | Yes | No | Yes | Yes | No | Yes | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| NetWare kernel | No | 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 | Yes | 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 | No | Dropped since Oracle Solaris 11 (11/11) | Yes | ? | No | No | No | Only in Solaris 2.5.1 | No | No | Only available as a separated version of OpenSolaris | ? | ? | ? | ? | ? | No | No | Dropped since Solaris 10 | Yes | ? | No | No | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Windows NT kernel | No | NT 5.0 RC1 and below only | No | Yes | No | Yes | 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 | 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 | ? | ? | ? | ? | ? | ? | ? | Yes | ? | ? | No | Yes | ? | ? | Yes | Yes | ? | Yes | ? | ? | ? | ? | ? | Yes | Yes | ? | ? | ? | ? | ? | Yes | ? | ? | ? | Yes | ? | ? | ? | ? |
| VMkernel | No | No | No | No | No | Yes | Dropped since VMware ESXi 4.0 | 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 |
| 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 Radeon | ARM Mali | Qualcomm | Imagination Technologies | Broadcom | VeriSilicon | Apple |
|---|
| GMA | GT | Xe | GeForce/Quadro/Tesla | Xenos/TeraScale | GCN/RDNA/CDNA | Utgard | Midgard/Bifrost | Valhall | Adreno | PowerVR | VideoCore4 | Vivante | AGX |
| Linux kernel | i915 driver | xe driver | nouveau (C), Nova (Rust) | radeon driver | amdgpu driver | Lima | Panfrost | Panthor (C), Tyr (Rust) | msm driver | imagination driver | vc4 driver | etnaviv | (Asahi driver) |
| Windows NT kernel | Dropped | Yes | Yes | Dropped | Yes | No | Windows Phone 8.x, Windows 10 Mobile, Windows on ARM | Yes | No | Windows IoT Enterprise on Arm | No |
| XNU | Yes (macOS) | No | No | ? | No | No | via I/O Kit (iOS only) | No | No | iOS/macOS |
Supported kernel execution environment
This table indicates, for each kernel, what operating systems' executable images and device drivers can be run by that kernel.
| 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 | No | No | Yes | No | No | No | No | No | No | No | No | No | Dropped | Dropped |
| Linux kernel | Yes | No | (Longene) | No | No | No | No | No | No | No | No | No | No | (NDISwrapper) | No |
| NetBSD kernel | Yes | Dropped | Dropped | Yes | Yes | Yes | Dropped | Yes | Yes | Yes | Dropped | Dropped | Yes | Dropped | Dropped |
| OpenBSD kernel | Dropped since OpenBSD 6.0 | No | No | Dropped since OpenBSD 5.0 | Dropped since OpenBSD 4.2 | No | No | No | Dropped since OpenBSD 4.8 | Dropped since OpenBSD 4.8 | Dropped since OpenBSD 4.8 | No | Dropped since OpenBSD 4.8 | No | Dropped since OpenBSD 5.0 |
| Windows NT kernel | Windows Subsystem for Linux 1 | 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 |
| VMkernel | Yes | No | 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.
| 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 | LZO | LZJB | zstd |
|---|
| zlib | gzip |
| Linux | Yes | Yes | Yes | No | Yes |
| NetBSD kernel | Yes | Yes | Yes | ? | Yes |
| Solaris kernel | Yes | ? | ? | Yes | ? |
Supported message digest algorithms
| Kernel name | CRC-32 (IEEE) | CRC-32C | 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 | Yes | No | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes |
| 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 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
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, with optional OSS API compatibility | ? | ? |
| 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 | audio_system | ? |
| Solaris kernel | Sun audio API / OSS API | Yes | ? |
Graphics support
| Kernel name | Framebuffer | Display management | Hardware Compositing (Multiple Planes) | Display Multiplexer | Color transform | GPU scheduler | GPU memory management | in-kernel Remote Desktop |
|---|
| Matrices | 1D LUT | 3D LUT |
| Linux | Linux framebuffer (fbdev) / Direct Rendering Manager (DRM) | Kernel Mode Setting (KMS) | Plane abstraction in DRM/KMS | VGA Switcheroo | Linux Color Pipeline API in DRM | DRM sched | DMA-BUF | No |
| Windows NT kernel | Dxgkrnl.sys | VidPN Manager in Dxgkrnl.sys | Multiplane overlay (MPO) in WDDM | ? | via MHC profile | ? | VidSch in Dxgkrnl | VidMm in Dxgkrnl.sys, Dxgmms1.sys, and Dxgmms2.sys | RdpDD.sys / RdpWD.sys |
See also
Footnotes