This shows you the differences between two versions of the page.
www:documentation:features [2014/11/19 17:08] lionelsambuc created |
www:documentation:features [2015/07/19 14:17] (current) dcvmoole [General Characteristics] clarify footprint |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Here are some of the more interesting features of MINIX 3. | ||
+ | ===== General Characteristics ===== | ||
+ | |||
+ | * POSIX-compliant operating system with a NetBSD userland | ||
+ | * Open source, with a BSD license | ||
+ | * Runs on x86 PCs and well as x86 virtual machines (VMware, etc.) | ||
+ | * Runs on ARM Cortex A8 (e.g., BeagleBoard XM, Beaglebones) | ||
+ | * Networking with TCP/IP | ||
+ | * Virtual memory | ||
+ | * Virtual file system | ||
+ | * Unified block cache shared by virtual memory and file systems | ||
+ | * Dynamic linking | ||
+ | * Small memory footprint (kernel is 600 kB; full OS is 25 MB) | ||
+ | |||
+ | ===== MINIX-specific Features ===== | ||
+ | |||
+ | * Tiny microkernel that runs in kernel mode | ||
+ | * Most of the operating system runs in user-mode protected processes | ||
+ | * Each device driver is a separate user-mode process | ||
+ | * Reincarnation server can reload failed drivers | ||
+ | |||
+ | ===== Reliability Features ===== | ||
+ | |||
+ | * Reduced kernel size | ||
+ | * Bugs are caged | ||
+ | * Drivers' memory access is limited | ||
+ | * Bad pointer references are not always fatal | ||
+ | * Infinite loops are not always fatal | ||
+ | * Buffer overruns are not always fatal | ||
+ | * Access to kernel function calls is restricted | ||
+ | * Access to I/O ports is restricted | ||
+ | * Communication with OS components is restricted | ||
+ | * Dead or sick drivers can be reincarnated | ||
+ | * Interrupts and messages are integrated | ||
+ | * [[.:reliability|Click here]] for more details | ||
+ | |||
+ | ===== Languages and Compilers ===== | ||
+ | |||
+ | * Languages: C, C++, clisp, mawk, Perl, Python, tcl, etc. | ||
+ | * Compilers: gcc and clang/LLVM | ||
+ | * Native compilation (self hosting) on x86 | ||
+ | * Cross compilation for x86 and ARM | ||
+ | |||
+ | ===== Packages ===== | ||
+ | |||
+ | * Shells (e.g., bash, mksh, mudsh, pdksh, zsh) | ||
+ | * Editors (e.g., elvis, joe, jove, pico, uemacs, vim) | ||
+ | * Games (e.g., crafty, exchess, ioquake) | ||
+ | * Mail (e.g., fetchmail, getmail, mutt, thunderbird) | ||
+ | * Over 4000 other NetBSD packages |