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.
Kernel name | Used in | Creator | Executable format (also see section below) |
Type | Integrated firewall | SMP support | Multiple architecture support (also see section below). |
Multitasking | Last release |
Agnix [2] | Yes | ||||||||
---|---|---|---|---|---|---|---|---|---|
Amiga Exec | Amiga OS | Commodore International | HUNK | microkernel (atypical)[1] | No | No | No | Yes | 3.9 (March 20, 2002) |
Amiga Exec SG (2nd Generation) | Amiga OS 4.0 | Hyperion Entertainment under license of Amiga Inc. | ELF (Can run 68000 code Hunk) |
microkernel (atypical) | No | No | No | Yes | 4.0 Final (December 24, 2006) |
DragonFly BSD kernel [3] | DragonFly BSD | Matt Dillon | ELF, others - platform dependent | hybrid | IPFilter | Yes | Yes | Yes | 1.6 |
FreeBSD kernel | FreeBSD | The FreeBSD Project | ELF, others - platform dependent | monolithic | IPFilter | Yes | Yes | Yes | 6.1 |
GNU Hurd [4] | Bee GNU/Hurd | GNU Project/Free Software Foundation | ELF | Multi-Server on top of a microkernel | ? | No | No | Yes | 0.2 |
GNU Mach [5] | GNU Project/Free Software Foundation | ? | microkernel | ? | ? | ? | ? | ? | |
Inferno kernel | Inferno | Bell Labs / Vita Nuova | - | virtual machine | ? | Yes | Yes | Yes | 4th Edition |
L4 | L4 | Jochen Liedtke | ? | microkernel | ? | Yes | Yes | Yes | ? |
Linux kernel [6] | Linux | Linus Torvalds | ELF, others | monolithic | netfilter/ iptables |
Yes | Yes | Yes | 2.6.20 |
Mach [7] | Carnegie Mellon University | ? | microkernel | ? | ? | ? | ? | ? | |
Minix 3 [8] | Minix 3 | Andrew S. Tanenbaum | ? | Multi-Server on top of a microkernel | ? | ? | ? | Yes | 3.1.2a |
MkLinux [9] | OSF Research Institute and Apple Computer | ? | microkernel | ? | ? | ? | ? | ? | |
NetBSD kernel | NetBSD | The NetBSD Project | ELF, others - platform dependent | monolithic | IPFilter | Yes | Yes | Yes | 3.0 |
NetWare kernel | Novell NetWare | Novell | NLM | hybrid | Yes | Yes | No | Yes | 6.5 |
OpenBSD kernel | OpenBSD | OpenBSD developers | ELF, others - platform dependent | monolithic | PF | Yes | Yes | Yes | 4.0 |
Plan 9 kernel | Plan 9 from Bell Labs | Bell Labs | - | hybrid | ipmux | Yes | Yes | Yes | 4th Edition |
SunOS kernel | SunOS | Sun Microsystems | a.out |
monolithic | ? | Yes | Yes | Yes | 4.1.4 |
Solaris kernel | Solaris Operating System, | Sun Microsystems | ELF (32-bit only until Solaris 7) |
monolithic | ? | Yes | Yes | Yes | 10 |
Trix | Massachusetts Institute of Technology | ? | monolithic | ? | ? | ? | ? | ? | |
Windows kernel [10] | Windows NT, 2000, XP, 2003, Vista | Microsoft | PE, others? | hybrid | ? | Yes | Yes | Yes | 6.0 |
XNU (Darwin kernel) [11] | Mac OS X | Apple Computer | Mach-O | hybrid | Ipfirewall | Yes | Yes | Yes | 792.6.61 |
[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 | Yes[3] | Yes |
Solaris kernel | Yes[4] | No | Yes[5] | No | No | No | No | No | No | No |
Windows 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
Operating System | Physical file systems | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Acorn ADFS | Amiga FFS | BeFS | BFS | cramfs | EFS | ext2 | ext3 | ext4 | FAT | FreeVxFS | FUSE | HFS | HFS+ | HPFS | ISO 9660 | JFFS | JFFS2 | JFS | loop | 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 | 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 | No | Yes | No | No | No | No | No | Yes | No | No | No | No | Yes | No | No | No |
Solaris kernel | ? | ? | ? | ? | ? | ? | Yes | ? | ? | Yes | ? | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? | No | No | ? | ? | ? | Yes | Yes | ? | Yes |
Windows 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 | No | Yes | Yes | No | Yes | No | No | No | No | No | No | limited write | No | No | No | Yes | Yes | No | No |
[edit] Supported CPU architectures
kernel | 68k | DEC Alpha |
ARM | HP PA-RISC |
IA-64 | MIPS | PowerPC | PowerPC 970 |
System/ 390 |
SuperH | Sparc32 | Sparc64 | 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 kernel | No | No | No | No | Yes | No | No | No | No | No | No | No | Yes | Yes |
XNU | No | No | No | No | No | No | Yes | Yes[12] | No | No | No | No | Yes | Yes[12] |
[edit] See also
- Comparison of open source operating systems
- Comparison of Linux distributions
- Comparison of BSD operating systems
- 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 running on PPC expansions cards, or either in new AmigaOne made use of ELF thru WarpUP.library or its evolution PowerPC.Library standard Amiga shared libraries.
- ^ 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