Software:Comparison of operating system kernels
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.
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[2] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Amiga Exec | AmigaOS | Commodore International | HUNK | Exokernel (atypical)[3] | 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,[4][5] 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 | multiserver microkernel | 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 | chroot, Xen | Unix permissions, POSIX ACL, POSIX Capabilities | ? | ? | ? | ? |
Inferno kernel | Inferno | Bell Labs / Vita Nuova Holdings | ? | virtual machine | ? | Yes | Yes | Yes | chroot, Xen | ? | ? | ? | ? | ? | |
L4 | L4 | Jochen Liedtke | No | microkernel | No | Yes | Yes | Yes | Yes | Afterburner/L4 [1], Marzipan [2], capabilities in L4/Fiasco[6] | L4/Fiasco[6] | L4/Fiasco[6] | ? | ? | |
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[7] | ELF, others | monolithic | *ipfwadm (2.0 –) | 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 | (CONFIG PREEMPT RT Patch) | 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,[8] a.out[9][10] | 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 [11] | 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 | 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 | ? | ? |
Trix kernel | Trix | Massachusetts Institute of Technology | a.out | monolithic | ? | Yes | No | 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 | Event Tracing,[12] dgbss, kd | Multimedia Class Scheduler Service | No | Unofficial[13] |
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 | ELF | microkernel | No | Yes | Yes | Yes | Lguest, Xen, KVM, kvm-lite | Yes | KDB, DDB, GDB | Yes | No | Yes |
Transport protocol support
Kernel Name | TCP | UDP | SCTP | DCCP |
---|---|---|---|---|
DragonFly BSD kernel | Yes | Yes | No | No |
FreeBSD kernel | Yes | Yes | Yes | Optional |
Linux kernel | Yes | Yes | Yes | Yes |
NetBSD kernel | Yes | Yes | Yes | Yes |
OpenBSD kernel | Yes | Yes | ? | ? |
Solaris kernel | Yes | Yes | Yes | ? |
Windows NT kernel | Yes | Yes | No | ? |
XNU | Yes | Yes | No | No |
Zircon | Yes | Yes | Yes | Yes |
In-kernel security
Kernel Name | File access control | Disable memory execution support | Kernel ASLR | Mandatory access control | Capability-based security | In-kernel key management | Audit API | Sandbox | SYN flood protection | UDP flood protection | Ping flood protection | Smurf attack protection | Network Behavior Analysis |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linux | 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 |
FreeBSD Kernel | Traditional Unix permissions, POSIX and NFSv4 ACL | Yes | Yes | TrustedBSD MAC | Capsicum | ? | OpenBSM | Capsicum, MAC framework | 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 | AppContainers | No | Yes | Windows Event Log | Yes[14] | Yes | ? | ? | ? |
XNU | Traditional Unix permissions, NT/NFSv4 ACL[15] | 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[16] | ||||
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[17] | (Tempesta FW)[18] | (kmemcached) |
DragonFly BSD kernel | No | No | Yes | Yes | ? | ? | ? | No | No | ? | ? |
FreeBSD kernel | No | No | Yes | No | No | Yes | No | No | No | ? | ? |
Solaris kernel | ? | ? | Yes | Yes[19] | ? | Yes[20] | Yes[20] | ? | 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):
Kernel 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[21] | 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 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
HP-UX kernel | No | No | Yes | No | No | No | No | No | No | Yes | No | No | ? | ? | ? | ? | ? |
Linux kernel | No | Yes | Yes | Yes | Yes | No | No | Yes | Some[22] | Yes | ? | No | ? | ? | ? | ? | ? |
MINIX 3 kernel | Some[9][10] | No | Yes[8] | No | No | No | No | No | No | No | No | No | ? | ? | ? | ? | ? |
NetBSD kernel | Yes | Yes | Yes | ? | ? | ? | Yes | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
OpenBSD kernel | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
ReactOS kernel | ? | ? | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
Solaris kernel | Yes[23] | No | Yes[24] | No | No | No | No | No | Some[25] | No | ? | ? | ? | ? | ? | ? | ? |
Windows NT kernel | 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:
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 [26] |
Yes | No | 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)[27] |
Yes | Yes [26] [28] |
write support? | Yes | Yes [26] |
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 [29] |
Yes [29] |
Yes [29] |
No | Yes [29] |
No | No | No | No | Yes [29] |
No | No | No | No | No | Read only | No | No | No | Yes [29] |
No | No | No | No | No | Yes [30] |
No | No | No | No |
Solaris kernel | ? | ? | No | ? | ? | ? | ? | Yes | ? | ? | ? | Yes | ? | ? | ? | ? | Yes | ? | ? | ? | ? | No | No | ? | ? | ? | Yes | Yes | ? | Yes | No | No | No | No | No | ? | No |
Windows NT kernel | ? | ? | No | ? | ? | ? | ? | Yes [31] |
Yes [32] |
Yes [32] |
No | Yes | ? | Yes [33] |
Yes [33] |
No | Yes | ? | ? | ? | ? | No | Yes | ? | ? | ? | Yes | ? | ? | No | No | No | Yes [30] |
No | No | Yes | Yes |
XNU | No | No | Yes | No | No | No | No | Yes [34] |
Yes [34] |
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 | Yes | No | Yes | No | No | No |
FreeBSD kernel | Yes | Yes | Yes | Yes | No | Yes |
Linux kernel | Yes | Yes | Yes | Yes | Yes | Yes |
NetBSD kernel | Yes | ? | ? | ? | ? | ? |
OpenBSD kernel | Yes | ? | ? | ? | ? | ? |
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
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[35] | No | Yes | ? | Yes | Yes | No | 10.4 and below only[35] | projected to end in 14.x[35] | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | 12.x and below only[35] | ? | 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[36] | No | 2.6 and below only | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 4.16 and below only[36] | Yes | Yes | Yes | 4.16 and below only[36] | 4.16 and below only[36] | 4.16 and below only[36] | 4.12 and below only | No | No | Yes | Yes | No | 4.16 and below only[36] | 4.16 and below only[36] | 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[37] | Yes | Yes | ? | Yes | Yes | No[37] | Yes | No | No | No | ? | ? | ? | ? | ? | Yes | No[37] | Yes | Yes | No[37] | Yes | No[37] | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
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[38] | 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[39] | ? | ? | ? | ? | ? | ? | Yes[39] | ? | ? | No | Yes[39] | ? | ? | Yes[39] | Yes[39] | ? | Yes[39] | ? | ? | ? | ? | ? | Yes[39] | Yes[39] | ? | ? | ? | ? | ? | Yes[39] | ? | ? | ? | Yes[39] | ? | ? | ? | ? |
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[40][41] | Yes | Yes |
Windows NT kernel | Yes | Yes | Yes | ? | Windows Phone 8.x, Windows 10 Mobile, Windows on ARM | Yes[42] | No[43] | 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.
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[44] | No | No | Yes | No | No | No | No | No | No | No | No | No | Yes[44] | Yes[44] |
Linux kernel | Yes | No | (Longene) | Yes | Yes | No | No | No | No | No | No | No | No | (NDISwrapper) | No |
NetBSD kernel | Yes[45] | No? [3]? | No? [4]? | Yes[45] | Yes | Yes[45] | Yes[45] | Yes[45] | Yes[45] | Yes[45] | Yes[45] | Yes[45] | Yes[45] | Yes[46] | 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.
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[47][48] | Yes[49] | No | Yes[50] | Yes[51] | Yes[52] | Yes[53] | Partial[54] | Yes[55] | Yes[56] | Yes[57] | Yes[58] | Yes[59] | Yes[60] | Yes[61] | Yes[62] | Yes[63] | No | No | No | Yes[64] |
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[65] | audio_system[66] | ? |
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
- ↑ "Kernel Definition". http://www.linfo.org/kernel.html. 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. http://www.freebsd.org/doc/en/books/handbook/fs-acl.html.
- ↑ FreeBSD General Commands Manual –
- ↑ 6.0 6.1 6.2 "The Fiasco microkernel - Status". http://os.inf.tu-dresden.de/fiasco/features.html. Retrieved January 11, 2013.
- ↑ "Linux Kernel FAQ". https://kernel.org/category/faq.html.
- ↑ 8.0 8.1 Supports ELF since version 3.2.0 "MinixReleases". Minix Wiki. http://wiki.minix3.org/en/MinixReleases. Retrieved 21 May 2012.
- ↑ 9.0 9.1 a.out will be phased out in coming releases. van der Kouwe, Erik. "Re: ~Segmentation [Was: Minix3 for sparc"]. Minix3 for sparc. Google Groups. https://groups.google.com/group/minix3/msg/faa0560e441f32a0. Retrieved 21 May 2012.
- ↑ 10.0 10.1 Commit to remove a.out utils from minix; only supports running a.out now. Leca, Antoine. "3fb8cb760c9075fab05682b89b1542d66481ba58". minix.git. http://git.minix3.org/?p=minix.git;a=commit;h=3fb8cb760c9075fab05682b89b1542d66481ba58. Retrieved 21 May 2012.
- ↑ "Announcing NetBSD 5.0". http://www.netbsd.org/releases/formal-5/NetBSD-5.0.html.
- ↑ "Event Tracing". 7 January 2021. https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal?redirectedfrom=MSDN.
- ↑ "IBM PC Real Time Clock should run in UT". https://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html.
- ↑ "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. https://blogs.technet.microsoft.com/nettracer/2010/06/01/syn-attack-protection-on-windows-vista-windows-2008-windows-7-windows-2008-r2-windows-88-1-windows-2012-and-windows-2012-r2/. "SynAttack protection is enabled by default and cannot be disabled"
- ↑ "Elementary Information Security, Second Edition, Chapter 4 "Sharing Files"". Section 4.4 "Microsoft Windows ACLs". http://samples.jbpub.com/9781284055931/9781284071276_CH04_133_170.pdf. "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" (in en-US). Ash's Blog. https://blogs.technet.microsoft.com/ash/2016/03/02/windows-10-device-guard-and-credential-guard-demystified/.
- ↑ doc/Documentation/networking/tls.txt kernel.org
- ↑ "Web security - tempesta-tech/tempesta Wiki". Tempesta Technologies INC. October 31, 2017. https://github.com/tempesta-tech/tempesta/wiki/Web-security. Retrieved May 7, 2018.
- ↑ "OpenSolaris Project Weaves CIFS Server Into the Solaris Kernel". http://www.itjungle.com/tug/tug112907-story05.html.
- ↑ 20.0 20.1 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
- ↑ 26.0 26.1 26.2 experimental and dangerous write support
- ↑ 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
- ↑ 29.0 29.1 29.2 29.3 29.4 29.5 ReactOS Wiki - File Systems
- ↑ 30.0 30.1 additional driver needed - see https://github.com/maharmstone/btrfs
- ↑ additional driver needed - see http://www.fs-driver.org/
- ↑ 32.0 32.1 additional driver needed - see http://www.ext2fsd.com
- ↑ 33.0 33.1 additional driver needed
- ↑ 34.0 34.1 Third party module required. Mac OS X Kernel Module available here
- ↑ 35.0 35.1 35.2 35.3 "FreeBSD supported plattforms". https://www.freebsd.org/platforms/.
- ↑ 36.0 36.1 36.2 36.3 36.4 36.5 36.6 Larabel, Michael (2 April 2018). "Linux Set To Shed Nearly 500k Lines Of Code By Dropping Old CPUs - Phoronix". Phoronix Media. https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.17-Gutting-Old-CPUs. ""The architectures on the chopping block for Linux 4.17 are Blackfin, CRIS, FRV, M32R, Metag, MN10300, Score, and Tile""
- ↑ 37.0 37.1 37.2 37.3 37.4 NetBSD Projects - Support for MMU-less systems
- ↑ "OpenBSD/Vax". https://www.openbsd.org/vax.html.
- ↑ 39.0 39.1 39.2 39.3 39.4 39.5 39.6 39.7 39.8 39.9 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
- ↑ 44.0 44.1 44.2 Linux emulation in FreeBSD - 2 A look inside...
- ↑ 45.0 45.1 45.2 45.3 45.4 45.5 45.6 45.7 45.8 45.9 NetBSD Binary Emulation
- ↑ "Summer of Code:NDIS on NetBSD". http://netbsd-soc.sourceforge.net/projects/ndis/.
- ↑ "Crc32_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/crc32_generic.c.
- ↑ "Crc32.c « lib - kernel/Git/Torvalds/Linux.git - Linux kernel source tree". https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/lib/crc32.c.
- ↑ "Crc32c_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/crc32c_generic.c.
- ↑ "Md4.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/md4.c.
- ↑ "Md5.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/md5.c.
- ↑ "Sha1_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/sha1_generic.c.
- ↑ "Sha256_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/sha256_generic.c.
- ↑ "Sha3_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/sha3_generic.c.
- ↑ "Michael_mic.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/michael_mic.c.
- ↑ "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/poly1305_generic.c.
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd128.c
- ↑ "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/rmd160.c.
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd256.c
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd320.c
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/tgr192.c
- ↑ "Wp512.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/wp512.c.
- ↑ "Hmac.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/hmac.c.
- ↑ "Vmac.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/vmac.c.
- ↑ Improving libossaudio, and the future of OSS in NetBSD. NetBSD Project. April 27, 2020
- ↑ audio_system(9) - NetBSD Manual Pages. NetBSD Project
Original source: https://en.wikipedia.org/wiki/Comparison of operating system kernels.
Read more |