Comparison of operating system kernels
From Wikipedia, the free encyclopedia
A kernel is the core component of every computer operating system. While kernels are highly technical in nature, and may be hidden from the user under many layers of software and applications, they do have distinguishing or characteristic features, such as computer architecture, design goals, as well as the more practical features that they provide. A direct comparison of operating system kernels can highlight these design choices, and provide insight into different niches and the evolving technology of kernels.
Contents |
[edit] Comparison criterion
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 is a large number and variety of available Linux distributions, all of these kernels are grouped under a single entry in these tables, due to differences being of the patch level. See comparison of Linux distributions for a detailed comparison. For Linux distributions that have highly modified kernels, for example Real-time computing kernels, they 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. For this kind of information, please see operating system advocacy.
[edit] Overview comparison
The major contemporary general-purpose kernels are shown in comparison. Only an overview of the technical features is detailed.
[edit] 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) |
---|---|---|---|---|---|---|---|---|---|---|
Amiga Exec | No | No | Yes[2] | No | No | Yes | No | No | No | No |
Linux kernel | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Some[3] | Yes |
Solaris kernel | Yes[4] | No | Yes[5] | No | No | No | No | No | No | No |
Windows NT kernel | No | No | No | No | No | No | No | No | Yes | No |
XNU | No | No | No | No | No | No | Yes | No | No | No |
[edit] File system support
Physical file systems:
Kernel | Acorn ADFS | Amiga FFS | BeFS | BFS | cramfs | EFS | ext2 | ext3 | ext4 | FAT | FreeVxFS | HFS | HFS+ | HPFS | ISO 9660 | JFFS | JFFS2 | JFS | Minix fs | NSS | NTFS | OCFS | QNX4 FS | System V FS | UDF | UFS | XFS | ZFS |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linux kernel | Yes [6] |
Yes | read only | Yes | Yes | read only | Yes | Yes | Yes | Yes | read only | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | limited write [7] |
Yes | Yes [6] [8] |
write support? | Yes | Yes [6] |
Yes | No |
NetWare kernel | 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 |
Solaris kernel | ? | ? | ? | ? | ? | ? | Yes | ? | ? | Yes | ? | ? | ? | ? | Yes | ? | ? | ? | ? | No | No | ? | ? | ? | Yes | Yes | ? | Yes |
Windows NT kernel | ? | ? | ? | ? | ? | ? | Yes [9] |
Yes [10] |
? | Yes | ? | Yes [10] |
Yes [10] |
? | Yes | ? | ? | ? | ? | No | Yes | ? | ? | ? | Yes | ? | ? | No |
XNU | No | No | No | No | No | No | Yes [11] |
Yes [11] |
No | Yes | No | Yes | Yes | No | Yes | No | No | No | No | No | limited write | No | No | No | Yes | Yes | No | read only |
[edit] Supported CPU architectures
kernel | 68k | DEC Alpha |
ARM | HP PA-RISC |
IA-64 | MIPS | PowerPC | PowerPC 970 |
System/ 390 |
SuperH | SPARC 32-bit | SPARC 64-bit | x86 | x86-64 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linux kernel | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
DragonFly BSD kernel | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No |
FreeBSD kernel | No | Yes | Yes | No | Yes | No | Yes | No | No | No | No | Yes | Yes | Yes |
NetBSD kernel | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes |
NetWare kernel | No | No | No | No | No | No | No | No | No | No | No | No | Yes | No |
OpenBSD kernel | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes |
Solaris kernel | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes |
Windows NT kernel | No | NT 5.0 RC1 and below only | No | No | Yes | NT 4.0 and below only | NT 3.51 and NT 4.0 only | No | No | No | No | No | Yes | Yes |
XNU | No | No | Yes | No | No | No | Yes | Yes[12] | No | No | No | No | Yes | Yes[12] |
SPARTAN kernel | No | No | Yes | No | Yes | Yes | Yes | In Progress | No | No | No | Yes | Yes | Yes |
[edit] See also
- Comparison of open source operating systems
- Comparison of Linux distributions
- Comparison of BSD operating systems
- Comparison of Windows versions
- List of operating systems
- Comparison of file systems
- Comparison of operating systems
- Operating system advocacy
- Comparison of Windows and Linux
- XvsXP
[edit] Footnotes
- ^ The Amiga hardware lacked support for memory protection, so the strong isolation goals of the microkernel design could not be achieved.[citation needed]
- ^ 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
- ^ a b c 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
- ^ additional driver needed - see http://www.fs-driver.org/
- ^ a b c additional driver needed
- ^ a b Third party module required. Mac OS X Kernel Module available here: [1]
- ^ a b kernel is 32-bit code; 64-bit user-mode code is supported