Comparison of operating system kernels

Last updated

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.

Contents

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 nameProgramming languageUsed inCreatorExecutable
format
(also see
section
below)
TypeIntegrated firewall SMP supportMultiple architecture
support
(also see
section below).
Multitasking Virtualization Security Profiling/Debugging Soft real-time supportHard real-time supportCan keep RTC in UT [2]
Amiga Exec AmigaOS Commodore International HUNK Exokernel (atypical) [3] NoNoNoYesNoNoYesNoNoNo
Amiga Exec SG (2nd Generation) AmigaOS 4 Hyperion Entertainment ELF/HUNK Exokernel (atypical)NoNoNoYesNoNoYesNoNo ?
DragonFly BSD kernel C DragonFly BSD Matt Dillon ELF hybrid Ipfirewall,
PF
YesNoYes 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
YesYesYes 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 NoYes 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 NoYes chroot, Xen Unix permissions, POSIX ACL, POSIX Capabilities  ? ? ? ?
Inferno kernel Inferno Bell Labs / Vita Nuova Holdings  ? virtual machine  ?YesYesYes chroot, Xen  ? ? ? ? ?
L4 L4 Jochen Liedtke No microkernel NoYesYesYesYes Afterburner/L4 , Marzipan , 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 –) YesYesYes 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 NoNoYesYesNo Unix permissions Call profiling, statistical profiling, Minix Debugger (mdb)NoNo ?
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 YesYesYes Xen, chroot kauth, Unix permissions DDB, KGDB, tprof POSIX real-time scheduling extensions Kernel preemption [11] Yes
NetWare kernel NetWare Novell NLM hybrid YesYesNoYes ? ? ? ? ? ?
OpenBSD kernel C OpenBSD OpenBSD developers ELF, others - platform dependent monolithic PF YesYesYes ? Unix permissions  ? ? ? ?
OS/2 kernel OS/2 version 2 and above IBM LX hybrid NoYesNo PowerPC version developed but never officially released.YesNoYesYesYesNo ?
Plan 9 kernel C Plan 9 from Bell Labs Bell Labs  ? monolithic ipmuxYesYesYes ? ? ? ? ? ?
ReactOS kernel C ReactOS ReactOS Foundation PE hybrid  ?YesYesYes ?YesYes ? ? ?
Rockbox kernel Rockbox The Rockbox Project ? ? ? ?Yes ? ? ? ? ? ? ?
SunOS kernel C SunOS Sun Microsystems a.out
monolithic  ?YesYesYes ? Unix permissions  ? ? ? ?
Solaris kernel C Solaris,

OpenSolaris, GNU/kOpenSolaris (Nexenta OS)

Sun Microsystems ELF (32-bit only until
Solaris 7 in 1998)
monolithic IPFilter YesYesYes Zones, chroot Unix permissions, ACL, RBAC, Auditing, Privileges, Zones, Trusted Extensions DTrace, CPU profiling, microstate accounting, perf counters, kernel lock stats, kstats, mdb, kmdbReal-time scheduler ? ?
Trix kernel Trix Massachusetts Institute of Technology a.out monolithic  ?YesNoYes ? ? ? ? ? ?
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 YesYesYesYes Hyper-V ACL Event Tracing, [12] dgbss, kd Multimedia Class Scheduler Service NoUnofficial [13]
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)
YesYesYes chroot Unix permissions, NT/NFSv4 ACLs, TrustedBSD MAC, OpenBSM KDB, DDB, DTrace YesNoYes
SPARTAN kernel C HelenOS Jakub Jermar ELF microkernel  ?YesYesYes ? ? ? ? ? ?
Zircon C++ Fuchsia OS Google ELF microkernel NoYesYesYes Lguest, Xen, KVM, kvm-lite Yes KDB, DDB, GDB YesNoYes

Transport protocol support

Kernel Name TCP UDP SCTP DCCP
DragonFly BSD kernel YesYesNoNo
FreeBSD kernel YesYesYesOptional
Linux kernel YesYesYesYes
NetBSD kernel YesYesYesYes
OpenBSD kernel YesYes ? ?
Solaris kernel YesYesYes ?
Windows NT kernel YesYesNo ?
XNU YesYesNoNo
ZirconYesYesYesYes

In-kernel security

Kernel NameFile access control Disable memory execution supportKernel ASLR Mandatory access control Capability-based security In-kernel key managementAudit API Sandbox SYN flood protection UDP flood protection Ping flood protection Smurf attack protection Network Behavior Analysis
Linux Traditional Unix permissions, POSIX ACL YesYes LSM (SELinux, SMACK, TOMOYO Linux, AppArmor)seccomp keyctl fanotifySELinux Sandbox, seccomp SYN cookies hash tablesICMP rate limitingreverse path filteringNetfilter
FreeBSD Kernel Traditional Unix permissions, POSIX and NFSv4 ACL YesYes 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 AppContainersNoYesWindows Event LogYes [14] Yes ? ? ?
XNU Traditional Unix permissions, NT/NFSv4 ACL [15] YesYes 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 DriverHypervisor-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 kernelchroot jail NoNovkernel??No
FreeBSD kernelchroot jail Virtio, Xen (guest only) BHyVe (KVM) ???No
NetBSD kernelchroot(sysjail (discontinued))NoVirtio and XenNo ? Rump kernel ?No
Solaris kernelchroot Solaris Containers / Zones NoNoNo??No
Windows NT kernelAppContainers, Job Objects, Windows Server ContainersHyper-V Project Drawbridge NoVirtual Secure Mode, Device Guard, Credential Guard [16]
XNUchroot ? ? ? ? ???No

In-kernel server support

Kernel Name HTTP FTP NFS CIFS Name server Transport-layer load balancerApplication-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 NoNoYesYes ? ? ?NoNo ? ?
FreeBSD kernel NoNoYesNoNoYesNoNoNo ? ?
Solaris kernel  ? ?YesYes [19]  ?Yes [20] Yes [20]  ? KSSL  ? ?
Windows NT kernel HTTP.sys ? ?Yes ?YesYesNo ? ? ?
XNU NoNoYesNoNoNoNoNoNo ? ?

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 NoNoYes [21] NoNoYesNoNoNoNo ? ? ? ? ? ? ?
DragonFly BSD kernel NoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNo
FreeBSD kernel ? ?Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ?
HP-UX kernel NoNoYesNoNoNoNoNoNoYesNoNo ? ? ? ? ?
Linux kernel NoYesYesYesYesNoNoYesSome [22] Yes ?No ? ? ? ? ?
MINIX 3 kernel Some [9] [10] NoYes [8] NoNoNoNoNoNoNoNoNo ? ? ? ? ?
NetBSD kernel YesYesYes ? ? ?Yes ?Yes ? ? ? ? ? ? ? ?
OpenBSD kernel ? ?Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ?
ReactOS kernel  ? ? ? ? ? ? ? ?Yes ? ? ? ? ? ? ? ?
Solaris kernel Yes [23] NoYes [24] NoNoNoNoNoSome [25] No ? ? ? ? ? ? ?
Windows NT kernel NoNoYes with WSL NoNoNoNoNoYesNoNoNoYes on x86Yes on x86 ? ?Yes on x86
XNU NoNoNoNoNoNoYesNoNoNoNoNoNoNoNoNoNo

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 NoNoNoNoNoNoNoYesNoNoNoYesNoNoNoNoYesNoNoNoNoNolimited writeNoNoNoread onlyYesNoNoNoNoNoYesNoNoNo
FreeBSD kernel NoNoNoNoNoNoNoYesYesYesNoYesNoNoNoNoYesNoNoNoNoNolimited writeNoNoNoYesYesread onlyYesread onlyNoNoNoNo ?No
Linux kernel Yes
[26]
YesNoread onlyYesYesread onlyYesYesYesYesYesread onlyYeslimited write (only with empty journal)YesYesYesYesYesYesYesYes
(Full R/W with additional userspace driver) [27]
YesYes
[26]
[28]
write support?YesYes
[26]
Yesboth FUSE and nativeYesYesYesNoYesYesNo
MINIX 3 kernel NoNoNoNoNoNoNoYesNoNoNoTools available, cannot mountNoNoNoNoYesNoNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
NetBSD kernel ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Yes ? ? ? ? ? ? ? ? ?
NetWare kernel NoNoNoNoNoNoNoNoNoNoNoYesNoNoNoNoYesNoNoNoNoYesNoNoNoNoYesNoNoNoNoNoNoNoNo ?No
OpenBSD kernel ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Yes ? ? ? ? ? ? ? ? ?
ReactOS kernel NoNoNoNoNoNoNoYes
[29]
Yes
[29]
Yes
[29]
NoYes
[29]
NoNoNoNoYes
[29]
NoNoNoNoNoRead onlyNoNoNoYes
[29]
NoNoNoNoNoYes
[30]
NoNoNoNo
Solaris kernel  ? ?No ? ? ? ?Yes ? ? ?Yes ? ? ? ?Yes ? ? ? ?NoNo ? ? ?YesYes ?YesNoNoNoNoNo ?No
Windows NT kernel  ? ?No ? ? ? ?Yes
[31]
Yes
[32]
Yes
[32]
NoYes ?Yes
[33]
Yes
[33]
NoYes ? ? ? ?NoYes ? ? ?Yes ? ?NoNoNoYes
[30]
NoNoYesYes
XNU NoNoYesNoNoNoNoYes
[34]
Yes
[34]
NoNoYesNoYesYesNoYesNoNoNoNoNoRead-OnlyNoNoNoYesYesNoread onlyNoNoNoNoNoYesNo

Networked file system support

Kernel Name NFS AFS CIFS Coda 9P Ceph
DragonFly BSD kernel YesNoYesNoNoNo
FreeBSD kernel YesYesYesYesNoYes
Linux kernel YesYesYesYesYesYes
NetBSD kernelYes ? ? ? ? ?
OpenBSD kernelYes ? ? ? ? ?
Solaris kernel YesYesYesNoNoNo
Windows NT kernel YesYesYesNoNoNo
XNU YesYesYesNoNoNo

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
mmuno-mmux86x86-64mmuno-mmu32-bit64-bitmmuno-mmu32-bit64-bitno-mmummuno-mmummuno-mmummuno-mmu
DragonFly BSD kernel NoNoNoNoNoNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
FreeBSD kernel No6.4 and below only [35] NoYes ?YesYesNo10.4 and below only [35] projected to end in 14.x [35] NoYesYesNoNoNoNoNoNoNoNoNoNo12.x and below only [35]  ?NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
Linux kernel NoYesYesYesYesYesYesNoYesYes ?YesYesYesYesYesNo4.16 and below only [36] No2.6 and below onlyYesYesYesYesYesYesYes4.16 and below only [36] YesYesYes4.16 and below only [36] 4.16 and below only [36] 4.16 and below only [36] 4.12 and below onlyNoNoYesYesNo4.16 and below only [36] 4.16 and below only [36] Yes
MINIX 3 kernel  ?NoNoYes ?YesIn progressNoNoIn progress ?NoNoNoNoNo ?No ?NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
NetBSD kernel YesYesYesYesNo [37] YesYes ?YesYesNo [37] YesNoNoNo ? ? ? ? ?YesNo [37] YesYesNo [37] YesNo [37]  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
NetWare kernel NoNoNoNoNoYesNo ?NoNoNoNoNoNoNo ? ? ? ? ?NoNoNoNoNoNoNo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
OpenBSD kernel last supported release 5.8 [38] YesYesYes ?YesYes ?NoYes ?YesNoNoNo ? ? ? ? ?Yes ?YesYes ?YesYes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Rockbox kernel  ? ? ?Yes ? ? ? ? ?Yes ? ? ? ?No ? ? ? ? ?Yes ? ? ? ?Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Solaris kernel NoNoNoNoNoYesYes ?NoNoNoNoNoNoNo ? ? ? ? ?NoNoYesYes ?NoNo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Windows NT kernel NoNT 5.0 RC1 and below onlyNoYesNoYesYesNo XP and 2003-2008 R2 only NT 4.0 and below onlyNo NT 3.51 and NT 4.0 onlyNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
Windows CE kernel NoNoNoYes ?Yes ?NoNoYes ?NoNoNoNoNo ?No ?NoYes ?NoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo
XNU NoNoNoYes ?YesYes ?NoNoNoYesYesNoNo ? ? ? ? ?NoNoNoNoNoNoNo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SPARTAN kernel  ?NoNoYes ?YesYes ?YesYes ?YesNoNoNo ? ? ? ? ?NoNoYesYes ?NoNo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
FreeRTOS kernel  ? ? ? ?Yes [39]  ? ? ? ? ? ?Yes [39]  ? ?NoYes [39]  ? ?Yes [39] Yes [39]  ?Yes [39]  ? ? ? ? ?Yes [39] Yes [39]  ? ? ? ? ?Yes [39]  ? ? ?Yes [39]  ? ? ? ?
ZirconNoNoNoYesYesNoYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNo

Supported GPU processors

Kernel nameIntelNVIDIAAMDARM Qualcomm Imagination Technologies Broadcom VeriSilicon
Intel HD/Iris Graphics GeForce/Quadro/TeslaRadeonMaliAdrenoPowerVRVideoCore4Vivante
Linux kernel YesYesYesYesYes2D only [40] [41] YesYes
Windows NT kernel YesYesYes? 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)Novia I/O Kit (iOS only)NoNo

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] NoNoYesNoNoNoNoNoNoNoNoNoYes [44] Yes [44]
Linux kernel YesNo(Longene)YesYesNoNoNoNoNoNoNoNo(NDISwrapper)No
NetBSD kernel Yes [45] No? ?No? ?Yes [45] YesYes [45] Yes [45] Yes [45] Yes [45] Yes [45] Yes [45] Yes [45] Yes [45] Yes [46] Yes
OpenBSD kernel YesNoNoYesYesYesNoNoYes ? ? ? ?NoYes
Windows NT kernel NoNoYesNoNoNoNoNoNoNoNoNoNoYesNo
ReactOS kernel NoNoYesNoNoNoNoNoNoNoNoNoNo ?No
XNU NoYesNoNoNoNoNoNoNoNoNoNoNoNoNo

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 kernelYesYesYesYesYesYesYesNoYesNoNoNoYesNoNoNoYesYesNoNoNoNo
FreeBSD kernelYesYesYesYesNoNoYesNoYesNoNoNoYesNoNoYesYesYesNoNoNoNo
LinuxYesYesYesYesYesYesYesNoNoNoNoYesNoYesYesYesYesYesYesYesYesYes
Windows NT kernelYesYesYesYesNoNoNoNoNoYesNoNoNoNoNoNoYesNoNoNoNoNo
macOS XNU KernelYesYesYes ? ? ?Yes ? ?YesYes ? ? ? ?YesYes ? ? ? ? ?

Supported compression algorithms

This may be usable on some situations like compression file system.

Kernel name Deflate zlib LZO LZJB gzip zstd
LinuxYesYesYesNoYesYes
NetBSD kernel ?YesYes ?YesYes
Solaris kernel ? ? ?YesYes ?

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
LinuxYes [47] [48] Yes [49] NoYes [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] NoNoNo Yes [64]
Solaris kernel YesYes YesYesYes YesYes ?  ?  ?  ?Yes ? ? Yes ?YesYes ?  ?  ?
Windows NT kernel  ? ? YesYesYes YesYes ? No  ? NoNoNoNo NoNoYesNoNo No  ?
FreeBSD kernelYesYes ?YesYes YesYes ?  ?  ?  ?Yes ? ? Yes ?Yes ? ?  ?  ?
XNU kernelYes ?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 nameACLSCOLMPHCIL2CAPBNEPRFComm.SDPTCPAVTCPAVDTPOBEXCMTPHIDPHCRPCAPIPPP
FreeBSD kernel ? ? ?YesYes ?YesYes ? ? ?No ? ? ? ? ?
Linux ?Yes ?YesYesYesYes ? ? ? ? ?YesYes ? ? ?
macOS XNU Kernel ? ? ? ?Yes ?YesYes ? ? ?No ? ? ? ? ?
Kernel nameACLSCOLMPHCIL2CAPBNEPRFComm.SDPTCPAVTCPAVDTPOBEXCMTPHIDPHCRPCAPIPPP

Audio support

Kernel nameAudio systemin-kernel mixerin-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 kernelnative (Sun-like) / OSS API [65] audio_system [66] ?

See also

Footnotes

  1. "Kernel Definition". The Linux Information Project. Retrieved 4 March 2015.
  2. IBM PC Real Time Clock should run in UT
  3. The Amiga hardware lacked support for memory protection, so the strong isolation goals of the microkernel design could not be achieved.[ citation needed ]
  4. "Chapter 14. Security". FreeBSD Handbook.
  5. setfacl(1)    FreeBSD General Commands Manual
  6. 1 2 3 "The Fiasco microkernel - Status" . Retrieved January 11, 2013.
  7. "Linux Kernel FAQ".
  8. 1 2 Supports ELF since version 3.2.0 "MinixReleases". Minix Wiki. Archived from the original on 31 May 2012. Retrieved 21 May 2012.
  9. 1 2 a.out will be phased out in coming releases. van der Kouwe, Erik. "Re: ~Segmentation [Was: Minix3 for sparc]". Minix3 for sparc. Google Groups. Retrieved 21 May 2012.
  10. 1 2 Commit to remove a.out utils from minix; only supports running a.out now. Leca, Antoine. "3fb8cb760c9075fab05682b89b1542d66481ba58". minix.git. Retrieved 21 May 2012.
  11. "Announcing NetBSD 5.0".
  12. "Event Tracing". Microsoft Docs . 7 January 2021.
  13. "IBM PC Real Time Clock should run in UT".
  14. "Syn attack protection on Windows Vista, Windows 2008, Windows 7, Windows 2008 R2, Windows 8/8.1, Windows 2012 and Windows 2012 R2". June 2010. SynAttack protection is enabled by default and cannot be disabled
  15. "Elementary Information Security, Second Edition, Chapter 4 "Sharing Files"" (PDF). Section 4.4 "Microsoft Windows ACLs". The ACLs used in Macintosh OS X and Sun's Solaris operating system are similar to those in Windows to ensure they work well together.
  16. "Windows 10 Device Guard and Credential Guard Demystified". Ash's Blog. Retrieved 2018-03-28.
  17. doc/Documentation/networking/tls.txt kernel.org
  18. "Web security - tempesta-tech/tempesta Wiki". Tempesta Technologies INC. October 31, 2017. Retrieved May 7, 2018.
  19. "OpenSolaris Project Weaves CIFS Server Into the Solaris Kernel". Archived from the original on 2008-05-22. Retrieved 2009-08-21.
  20. 1 2 Integrated Load Balancer
  21. 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.
  22. The Linux kernel can recognize PE binaries through binfmt_misc and run them using Wine
  23. to support SunOS 4.x binaries
  24. including a Linux compatibility option
  25. The Solaris kernel can PE using Wine
  26. 1 2 3 experimental and dangerous write support
  27. 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
  28. write support currently broken
  29. 1 2 3 4 5 6 ReactOS Wiki - File Systems
  30. 1 2 additional driver needed - see https://github.com/maharmstone/btrfs
  31. additional driver needed - see http://www.fs-driver.org/
  32. 1 2 additional driver needed - see http://www.ext2fsd.com Archived 2012-07-23 at the Wayback Machine
  33. 1 2 additional driver needed
  34. 1 2 Third party module required. Mac OS X Kernel Module available here
  35. 1 2 3 4 "FreeBSD supported plattforms".
  36. 1 2 3 4 5 6 7 Larabel, Michael (2 April 2018). "Linux Set To Shed Nearly 500k Lines Of Code By Dropping Old CPUs - Phoronix". Phoronix . Phoronix Media. Retrieved 2018-04-22. The architectures on the chopping block for Linux 4.17 are Blackfin, CRIS, FRV, M32R, Metag, MN10300, Score, and Tile
  37. 1 2 3 4 5 NetBSD Projects - Support for MMU-less systems
  38. "OpenBSD/Vax".
  39. 1 2 3 4 5 6 7 8 9 10 Official FreeRTOS Ports, Amazon Web Services, Inc.
  40. The GMA500 GPU has a PowerVR in it. The GMA500 Kconfig, mention that it is a 2D KMS driver.
  41. There is also a driver for the dreamcast PowerVR but it is only a Framebuffer driver as explained in the fbdev Kconfig
  42. Intel Atom integrated graphics card for Windows 8 tablet is based on a PowerVR
  43. Raspberry VideoCore 4 support on Windows Microsoft doesn't have plan for OpenGL on UWP also Broadcom doesn't have plan for DirectX
  44. 1 2 3 Linux emulation in FreeBSD - 2 A look inside...
  45. 1 2 3 4 5 6 7 8 9 10 NetBSD Binary Emulation
  46. "Summer of Code:NDIS on NetBSD".
  47. "Crc32_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  48. "Crc32.c « lib - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  49. "Crc32c_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  50. "Md4.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  51. "Md5.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  52. "Sha1_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  53. "Sha256_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  54. "Sha3_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  55. "Michael_mic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  56. "Poly1305_generic.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  57. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd128.c [ dead link ]
  58. "Rmd160.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  59. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd256.c [ dead link ]
  60. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/rmd320.c [ dead link ]
  61. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/crypto/tgr192.c [ dead link ]
  62. "Wp512.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  63. "Hmac.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  64. "Vmac.c « crypto - kernel/Git/Torvalds/Linux.git - Linux kernel source tree".
  65. Improving libossaudio, and the future of OSS in NetBSD. NetBSD Project. April 27, 2020
  66. audio_system(9) - NetBSD Manual Pages. NetBSD Project

Related Research Articles

<span class="mw-page-title-main">Executable and Linkable Format</span> Standard file format for executables, object code, shared libraries, and core dumps.

In computing, the Executable and Linkable Format, is a common standard file format for executable files, object code, shared libraries, and core dumps. First published in the specification for the application binary interface (ABI) of the Unix operating system version named System V Release 4 (SVR4), and later in the Tool Interface Standard, it was quickly accepted among different vendors of Unix systems. In 1999, it was chosen as the standard binary file format for Unix and Unix-like systems on x86 processors by the 86open project.

<span class="mw-page-title-main">Minix</span> Unix-like operating system

MINIX is a Unix-like operating system based on a microkernel architecture. Since version 2.0, it has been Portable Operating System Interface (POSIX) compliant.

ext2, or second extended file system, is a file system for the Linux kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.

JACK Audio Connection Kit is a professional sound server API and pair of daemon implementations to provide real-time, low-latency connections for both audio and MIDI data between applications. JACK was developed by a community of open-source developers led by Paul Davis and has been a key piece of infrastructure and the de facto standard for professional audio software on Linux since its inception in 2002. The server is free software, licensed under GPL-2.0-or-later, while the library is licensed under LGPL-2.1-or-later.

<span class="mw-page-title-main">/dev/random</span> Pseudorandom number generator file in Unix-like operating systems

In Unix-like operating systems, /dev/random and /dev/urandom are special files that serve as cryptographically secure pseudorandom number generators (CSPRNGs). They allow access to a CSPRNG that is seeded with entropy from environmental noise, collected from device drivers and other sources. /dev/random typically blocked if there was less entropy available than requested; more recently it usually blocks at startup until sufficient entropy has been gathered, then unblocks permanently. The /dev/urandom device typically was never a blocking device, even if the pseudorandom number generator seed was not fully initialized with entropy since boot. Not all operating systems implement the same methods for /dev/random and /dev/urandom.

<span class="mw-page-title-main">Git</span> Software for version control of files

Git is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development.

<span class="mw-page-title-main">Comparison of open-source wireless drivers</span>

Wireless network cards for computers require control software to make them function. This is a list of the status of some open-source drivers for 802.11 wireless network cards.

These tables compare free software / open-source operating systems. Where not all of the versions support a feature, the first version which supports it is listed.

In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source operating system, and is sometimes also applied to code running outside the kernel, such as system firmware images, microcode updates, or userland programs. The term blob was first used in database management systems to describe a collection of binary data stored as a single entity.

<span class="mw-page-title-main">Minix 3</span> Unix-like operating system

Minix 3 is a small, Unix-like operating system. It is published under a BSD-3-Clause license and is a successor project to the earlier versions, Minix 1 and 2.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

<span class="mw-page-title-main">NTFS-3G</span> Implementation of NTFS file system

NTFS-3G is an open-source cross-platform implementation of the Microsoft Windows NTFS file system with read/write support. NTFS-3G often uses the FUSE file system interface, so it can run unmodified on many different operating systems. It is runnable on Linux, FreeBSD, NetBSD, OpenSolaris, illumos, BeOS, QNX, WinCE, Nucleus, VxWorks, Haiku, MorphOS, Minix, macOS and OpenBSD. It is licensed under the GNU General Public License. It is a partial fork of ntfsprogs and is under active maintenance and development.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

GNU variants are operating systems based upon the GNU operating system. According to the GNU project and others, these also include most operating systems using the Linux kernel and a few others using BSD-based kernels.

Linux began in 1991 as a personal project by Finnish student Linus Torvalds to create a new free operating system kernel. The resulting Linux kernel has been marked by constant growth throughout its history. Since the initial release of its source code in 1991, it has grown from a small number of C files under a license prohibiting commercial distribution to the 4.15 version in 2018 with more than 23.3 million lines of source code, not counting comments, under the GNU General Public License v2 with a syscall exception meaning anything that uses the kernel via system calls are not subject to the GNU GPL.

<span class="mw-page-title-main">Linux kernel</span> Operating system kernel

The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally written in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU operating system, which was written to be a free (libre) replacement for Unix.

The Remote Network Driver Interface Specification (RNDIS) is a Microsoft proprietary protocol used mostly on top of USB. It provides a virtual Ethernet link to most versions of the Windows, Linux, and FreeBSD operating systems. Multiple revisions of a partial RNDIS specification are available from Microsoft, but Windows implementations have been observed to issue requests not included in that specification, and to have undocumented constraints.

<span class="mw-page-title-main">Illumos</span> Free software implementation of the Solaris kernel

Illumos is a partly free and open-source Unix operating system. It is based on OpenSolaris, which was based on System V Release 4 (SVR4) and the Berkeley Software Distribution (BSD). Illumos comprises a kernel, device drivers, system libraries, and utility software for system administration. This core is now the base for many different open-sourced Illumos distributions, in a similar way in which the Linux kernel is used in different Linux distributions.

<span class="mw-page-title-main">OpenZFS</span> Open-source implementation of the ZFS file system

OpenZFS is an open-source implementation of the ZFS file system and volume manager initially developed by Sun Microsystems for the Solaris operating system and now maintained by the OpenZFS Project. It supports features like data compression, data deduplication, copy-on-write clones, snapshots, and RAID-Z. It also supports the creation of virtual devices, which allows for the creation of file systems that span multiple disks.

WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks (VPNs), and was designed with the goals of ease of use, high speed performance, and low attack surface. It aims to be smaller and better performing than IPsec and OpenVPN, two common tunneling protocols. The WireGuard protocol passes traffic over UDP.