Comparison of operating system kernels

From Wikipedia, the free encyclopedia
(Redirected from Comparison of kernels)
Jump to navigation Jump to search

Template:SHORTDESC:

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

[edit | edit source]

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

[edit | edit source]

The major contemporary general-purpose kernels are shown in comparison. Only an overview of the technical features is detailed.

Failure analysis and availability

[edit | edit source]
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
Memory hotplug
Kernel live patching Kernel live update
DragonFly BSD kernel Yes ? Kernel panic ? ddb ? ? ? ? ? ? ?
FreeBSD kernel kern.msgbuf in sysctl ? Kernel panic Yes[18] 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 livepatch Kexec HandOver / Live Update Orchestrator[19]
NetBSD kernel Yes ? Kernel panic ? DDB / KGDB ? RAIDframe ? ? ? ? ?
OpenBSD kernel Yes ? Kernel panic Yes[20] ddb ? softraid ? ? ? ? ?
Solaris kernel Yes ? Yes System core dump[21] mdb ereport Solaris Volume Manager ? ? ? ? ?
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[22] ?
XNU Yes ? Kernel panic ? ddb / kdp ? AppleRAID ? ? ? ? ?
Zircon ? ? ? ? ? ? ? ? ? ? ? ?

Scalability and clustering

[edit | edit source]
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[23] Partial[23] ? ? ? ? sys_checkpoint[24] planned[25] HAMMER2
FreeBSD kernel 1024[26] Yes Yes[27] Yes Yes[28] ? ? No ?
Linux kernel 8192 Yes Yes Yes Yes[29] No Checkpoint/Restart (openMosix) Ceph / OCFS2 / GFS2
Windows NT kernel ? Yes ? ? ? ? ? No Cluster Shared Volumes

Realtime support

[edit | edit source]
Kernel Name Full kernel preemption Realtime Scheduling Realtime Priority Realtime I/O
Preemptable locks
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[30] rtprio system call[30] ? ? ? ? ? ? mlock/mlockall system call
Linux kernel preempt=full CFS/EEVDF's SCHED_FIFO/SCHED_RR rtprio system call IOPRIO_CLASS_RT RT-mutex on PREEMPT_ RT / (mutex with Proxy Execution) 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[31] ? ? ? VirtualLock
XNU ? ? ? ? ? ? ? ? ? mlock system call
Zircon ? ? ? ? ? ? ? ? ? ?

Transport protocol support

[edit | edit source]
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[32] Yes Yes dropped in 6.16 (QUIC in Linux Kernel) (Linux kernel tree with L4S patches) DualPI2 qdisc[33][34]
NetBSD kernel Yes 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 ? ? ? ?
[edit | edit source]
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)[35] 6in4 (SIT)[36] PPTP L2TP VXLAN
DragonFly BSD kernel Yes[37] Yes ? Yes[38] ? ? ? ? ? Yes[39] ? gif[40] ? ? ?
FreeBSD kernel Kernel PPP[41] Yes ? Yes[42] ? ? ? ? ? Yes[43] ? gif[44] ? ? Yes[45]
Linux kernel Yes[46] Yes[47] Yes[48] Yes[49] Yes[50] ? Yes[51] ? Yes[52] Yes[53] Yes[54] Yes[55] Yes[56] Yes[57]
NetBSD kernel Yes[58] Yes Yes[59] Yes[60] ? Yes[61] ? l2tp interface[62] ? Yes[63] gif[64] ? ? ?
OpenBSD kernel Yes[65] Yes Yes[66] Yes[67] svlan[67] ? mpw[68] ? egre[69] Yes[69] ? gif[70] ? ? Yes[71]
Solaris kernel ? Yes ? ? ? ? ? ? ? ? ? ? ? ? Yes
Windows NT kernel ? Yes raspppoe.sys ? ? ? ? ? ? Yes[72] ipinip.sys No[73] ? rasl2tp.sys Yes
XNU ? Yes ? ? ? ? ? ? ? ? ? ? ? ? ?
Zircon ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

In-kernel security

[edit | edit source]
Kernel
File access control Disable memory execution support
Kernel ASLR
Kernel Rootkit
Protection
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 (Linux Kernel Runtime Guard) LSM (SELinux, SMACK, TOMOYO Linux, AppArmor) seccomp keyctl fanotify SELinux Sandbox, seccomp SYN cookies hashlimit module / intermediate lockless queues[74] ICMP rate limiting reverse path filtering Netfilter
FreeBSD
Traditional Unix permissions, POSIX and NFSv4 ACL Yes Yes ? TrustedBSD MAC Capsicum ? OpenBSM Capsicum, MAC framework SYN cookies ? ? ? ?
Solaris
Traditional Unix permissions, POSIX ACL, NFSv4 ACL Default ? ? Solaris Trusted Extensions ? ? ? ? ? ? ? ? ?
Windows NT
Access control list DEP Yes Kernel Patch Protection Mandatory Integrity Control AppContainers No Yes Windows Event Log Yes[75] Yes ? ? ?
XNU
Traditional Unix permissions, NT/NFSv4 ACL[76] Yes Yes Kernel Patch Protection[77] TrustedBSD MAC ? ? OpenBSM Apple XNU Sandbox ? ? ? ? ?

In-kernel virtualization

[edit | edit source]
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[78]
XNU chroot ? ? ? ? ? ? ? No

In-kernel server support

[edit | edit source]
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[79] (Tempesta FW)[80] (kmemcached)
DragonFly BSD kernel No No Yes Yes ? Yes[81] ? No No ? ?
FreeBSD kernel No No Yes No No Yes[82] No No No ? ?
Solaris kernel ? ? Yes Yes[83] ? Yes[84] Yes[84] ? KSSL ? ?
Windows NT kernel HTTP.sys ? ? Yes ? Yes Yes No ? ? ?
XNU No No Yes No No No No No No ? ?

Binary format support

[edit | edit source]

A comparison of OS support for different binary formats (executables):

Name a.out ECOFF ELF FDPIC
ELF
binaries
(mmu less)
flat
binaries
(superH)
HUNK Mach-O
Misc
(wrapper based,
like interpreters)
PE SOM
(PA-RISC,
HP-UX)
NLM PEF DOS COM MZ LE LX NE
Amiga Exec No No Yes[85] 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[86] Yes ? No ? ? ? ? ?
MINIX 3 Some[13][14] No Yes[12] No No No No No No No No No ? ? ? ? ?
NetBSD Yes Yes Yes ? ? ? Yes ? Yes ? ? ? ? ? ? ? ?
OpenBSD ? ? Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ?
ReactOS ? ? ? ? ? ? ? ? Yes ? ? ? ? ? ? ? ?
Solaris Yes[87] No Yes[88] No No No No No Some[89] 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

[edit | edit source]

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
[90]
Yes Yes
[91]
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)[92]
Yes Yes
[90]
[93]
write support? Yes Yes
[90]
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
[94]
Yes
[94]
Yes
[94]
No Yes
[94]
No No No No Yes
[94]
No No No No No Read only No No No Yes
[94]
No No No No No Yes
[95]
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
[91]
? ? ? ? Yes
[96]
Yes
[97]
Yes
[97]
No Yes ? Yes
[91]
Yes
[91]
No Yes ? ? ? ? No Yes ? ? ? Yes ? ? No No No Yes
[95]
No No Yes Yes
XNU No No Yes No No No No Yes
[98]
Yes
[98]
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

[edit | edit source]
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

[edit | edit source]
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[99] No Yes ? Yes Yes No 10.4 and below only[99] projected to end in 14.x[99] No Yes Yes No No No No No No No No No No 12.x and below only[99] ? 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 6.7 and below only Yes Yes Yes Yes Yes Yes Yes No 4.16 and below only[100] No 2.6 and below only Yes Yes Yes Yes Yes Yes Yes 4.16 and below only[100] Yes Yes Yes 4.16 and below only[100] 4.16 and below only[100] 4.16 and below only[100] 4.12 and below only No No Yes Yes No 4.16 and below only[100] 4.16 and below only[100] 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[101] Yes Yes ? Yes Yes No[101] Yes No No No ? ? ? ? ? Yes No[101] Yes Yes No[101] Yes No[101] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
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[102] 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[103] ? ? ? ? ? ? Yes[103] ? ? No Yes[103] ? ? Yes[103] Yes[103] ? Yes[103] ? ? ? ? ? Yes[103] Yes[103] ? ? ? ? ? Yes[103] ? ? ? Yes[103] ? ? ? ?
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

[edit | edit source]
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[104][105] Yes Yes
Windows NT kernel Yes Yes Yes ? Windows Phone 8.x, Windows 10 Mobile, Windows on ARM Yes[106] No[107] 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

[edit | edit source]

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[108] No No Yes No No No No No No No No No Yes[108] Yes[108]
Linux kernel Yes No (Longene) No No No No No No No No No No (NDISwrapper) No
NetBSD kernel Yes[109] No? [3]? No? [4]? Yes[109] Yes Yes[109] Yes[109] Yes[109] Yes[109] Yes[109] Yes[109] Yes[109] Yes[109] Yes[110] 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

[edit | edit source]

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

[edit | edit source]

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

[edit | edit source]
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[111][112] Yes[113] No Yes[114] Yes[115] Yes[116] Yes[117] Partial[118] Yes[119] Yes[120] Yes[121] Yes[122] Yes[123] Yes[124] Yes[125] Yes[126] Yes[127] No No No Yes[128]
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) 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 MDC2 GOST LASH VMAC

Supported Bluetooth protocols

[edit | edit source]
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

[edit | edit source]
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[129] audio_system[130] ?
Solaris kernel Sun audio API / OSS API Yes ?

Graphics support

[edit | edit source]
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[131] DRM sched[132] DMA-BUF No
Windows NT kernel Dxgkrnl.sys VidPN Manager in Dxgkrnl.sys[133] ? VidSch in Dxgkrnl[134] VidMm in Dxgkrnl.sys, Dxgmms1.sys, and Dxgmms2.sys[135] RdpDD.sys / RdpWD.sys

See also

[edit | edit source]

Footnotes

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ IBM PC Real Time Clock should run in UT
  4. ^ The Amiga hardware lacked support for memory protection, so the strong isolation goals of the microkernel design could not be achieved.[citation needed]
  5. ^ The Amiga hardware lacked support for memory protection, so the strong isolation goals of the microkernel design could not be achieved.[citation needed]
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ setfacl(1) – FreeBSD General Commands Manual
  8. ^ a b www.gnu.org/software/hurd/faq/smp.html
  9. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ A full task-isolation mode for the kernel
  12. ^ a b Supports ELF since version 3.2.0 Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  13. ^ a b a.out will be phased out in coming releases. Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  14. ^ a b Commit to remove a.out utils from minix; only supports running a.out now. Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  18. ^ Chapter 10. Kernel Debugging - FreeBSD Documentation Portal. The FreeBSD Project
  19. ^ Live Update Orchestrator "LUO" Merged For Linux 6.19. Phoronix. December 8, 2025
  20. ^ crash(8) - OpenBSD manual pages
  21. ^ Core Dump Management on the Solaris OS. Oracle. June 2007
  22. ^ Hotpatching on Windows. Microsoft. November 20, 2021
  23. ^ a b DragonFly's Major Features List. DragonFly Project.
  24. ^ DragonFly On-Line Manual Pages : sys_checkpoint(2)
  25. ^ DragonFly BSD - history. DragonFly Project.
  26. ^ FreeBSD 14.0-RELEASE Announcement. FreeBSD Project.
  27. ^ RoCE as a performance accelerator. FreeBSD Project. 2018.
  28. ^ ntb. FreeBSD Project.
  29. ^ NTB Drivers. kernel.org.
  30. ^ a b FreeBSD Foundation: A Year of Sponsored Development in 2024. FreeBSD Foundation. December 20, 2024
  31. ^ Priority Inversion. Microsoft
  32. ^ Cloudflare Talks Up Multi-Path TCP But Dings Linux's Less Than Ideal Support. Phoronix. January 3, 2025.
  33. ^ Dual-Queue Coupled Active Queue Management (AQM) for Low Latency, Low Loss, and Scalable Throughput (L4S) - Appendix A. Example DualQ Coupled PI2 Algorithm. IETF. January 2023
  34. ^ The 6.17 kernel has been released. LWN.net. September 28, 2025
  35. ^ RFC 2003
  36. ^ RFC 1933, RFC 2893, and RFC 4213
  37. ^ DragonFly On-Line Manual Pages : ppp(4). DragonFly Projects
  38. ^ DragonFly On-Line Manual Pages : vlan(4). DragonFly Projects
  39. ^ DragonFly On-Line Manual Pages : gre(4). DragonFly Projects
  40. ^ DragonFly On-Line Manual Pages : gif(4). DragonFly Projects
  41. ^ FreeBSD Handbook Chapter 28 PPP and SLIP. The FreeBSD Project
  42. ^ FreeBSD Manual Pages - Kernel Interfaces Manual - VLAN(4)
  43. ^ FreeBSD Manual Pages - Kernel Interfaces Manual - GRE(4). The FreeBSD Project
  44. ^ FreeBSD Manual Pages - Kernel Interfaces Manual - GIF(4). The FreeBSD Project
  45. ^ FreeBSD 10.2-RELEASE Release Notes. The FreeBSD Project
  46. ^ PPP (point-to-point protocol) support. kernelconfig.io
  47. ^ Ethernet (10 or 100Mbit). kernelconfig.io
  48. ^ PPP over Ethernet. kernelconfig.io
  49. ^ 802.1Q/802.1ad VLAN Support. kernelconfig.io
  50. ^ MultiProtocol Label Switching. kernelconfig.io
  51. ^ L2TPv3 support. kernelconfig.io
  52. ^ IP: GRE tunnels over IP. kernelconfig.io
  53. ^ IP: tunneling. kernelconfig.io
  54. ^ IPv6: IPv6-in-IPv4 tunnel (SIT driver). kernelconfig.io
  55. ^ PPtP protocol support. kernelconfig.io
  56. ^ PPP over L2TP. kernelconfig.io
  57. ^ Virtual eXtensible Local Area Network (VXLAN). kernelconfig.io
  58. ^ ppp(4) - NetBSD Manual Pages. The NetBSD Project
  59. ^ pppoe(4) - NetBSD Manual Pages. The NetBSD Project
  60. ^ vlan(4) - NetBSD Manual Pages. The NetBSD Project
  61. ^ mpls(4) - NetBSD Manual Pages. The NetBSD Project
  62. ^ l2tp(4) - NetBSD Manual Pages. The NetBSD Project
  63. ^ gre(4) - NetBSD Manual Pages. The NetBSD Project
  64. ^ gif(4) - NetBSD Manual Pages. The NetBSD Project
  65. ^ ppp(4) - OpenBSD manual pages. OpenBSD Project
  66. ^ pppoe(4) - OpenBSD manual pages. OpenBSD Project
  67. ^ a b vlan(4) - OpenBSD manual pages. OpenBSD Project
  68. ^ OpenBSD 5.8 Changelog. OpenBSD Project
  69. ^ a b gre(4) - OpenBSD manual pages. OpenBSD Project
  70. ^ gif(4) - OpenBSD manual pages. OpenBSD Project
  71. ^ CVS: cvs.openbsd.org: src. OpenBSD Project
  72. ^ GRE Tunneling in Windows Server 2016. Microsoft. November 2, 2024
  73. ^ Edward Horley. "Practical IPv6 for Windows Administrators" p.12. December 27, 2013. ISBN 978-1430263708
  74. ^ Linux 6.18 Will Be A Big Improvement For Servers Encountering DDoS Attacks. Phoronix. October 3, 2025
  75. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  76. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  77. ^ iOS Extraction Without a Jailbreak: Full iOS 9 Support, Simplified File System Extraction. ElcomSoft. August 6, 2020
  78. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  79. ^ doc/Documentation/networking/tls.txt kernel.org
  80. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  81. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  82. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  83. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  84. ^ a b Integrated Load Balancer
  85. ^ 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.
  86. ^ The Linux kernel can recognize PE binaries through binfmt_misc and run them using Wine
  87. ^ to support SunOS 4.x binaries
  88. ^ including a Linux compatibility option
  89. ^ The Solaris kernel can PE using Wine
  90. ^ a b c experimental and dangerous write support
  91. ^ a b c d additional driver needed
  92. ^ 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
  93. ^ write support currently broken
  94. ^ a b c d e f ReactOS Wiki - File Systems
  95. ^ a b additional driver needed - see https://github.com/maharmstone/btrfs
  96. ^ additional driver needed - see http://www.fs-driver.org/
  97. ^ a b additional driver needed - see http://www.ext2fsd.com Archived 2012-07-23 at the Wayback Machine
  98. ^ a b Third party module required. Mac OS X Kernel Module available here
  99. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  100. ^ a b c d e f g Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  101. ^ a b c d e NetBSD Projects - Support for MMU-less systems
  102. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  103. ^ a b c d e f g h i j Official FreeRTOS Ports, Amazon Web Services, Inc.
  104. ^ The GMA500 GPU has a PowerVR in it. The GMA500 Kconfig, mention that it is a 2D KMS driver.
  105. ^ There is also a driver for the dreamcast PowerVR but it is only a Framebuffer driver as explained in the fbdev Kconfig
  106. ^ Intel Atom integrated graphics card for Windows 8 tablet is based on a PowerVR
  107. ^ Raspberry VideoCore 4 support on Windows Microsoft doesn't have plan for OpenGL on UWP also Broadcom doesn't have plan for DirectX
  108. ^ a b c Linux emulation in FreeBSD - 2 A look inside...
  109. ^ a b c d e f g h i j NetBSD Binary Emulation
  110. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  111. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  112. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  113. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  114. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  115. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  116. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  117. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  118. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  119. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  120. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  121. ^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd128.c [dead link]
  122. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  123. ^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd256.c [dead link]
  124. ^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd320.c [dead link]
  125. ^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/tgr192.c [dead link]
  126. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  127. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  128. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  129. ^ in OSS APIhe_future Improving libossaudio, and the future of OSS in NetBSD. NetBSD Project. April 27, 2020
  130. ^ audio_system(9) - NetBSD Manual Pages. NetBSD Project
  131. ^ NVIDIA Is Helping To Improve Linux's Dynamic Display Mux Support For Laptops. Phoronix. 14 October 2024.
  132. ^ Deadline Scheduling Policy Being Experimented With For Linux Graphics Drivers. Phoronix. December 30, 2024.
  133. ^ Introduction to Video Present Networks. Microsoft. December 15, 2021.
  134. ^ WDDM Architecture. Microsoft. October 2, 2024.
  135. ^ Video Memory Management and GPU Scheduling. Microsoft. July 3, 2024.