Jump to content

Recommended Posts

Posted

What is MINIX 3?

MINIX 3 is a free open-source operating system that can be used for studying operating systems, as a base for research projects, or for commercial (embedded) systems where microkernel systems dominate the market. Much of the focus on the project is on achieving high reliability through fault tolerance and self-healing techniques.

MINIX is based on a small (about 12K lines of code) microkernel that runs in kernel mode. The rest of the operating system runs as a collection of server processes, each one protected by the hardware MMU. These processes include the virtual file system, one or more actual file systems, the memory manager, the process manager, the reincarnation server, and the device drivers, each one running as a separate user-mode process.

One consequence of this design is that failures of the system due to bugs or attacks are isolated. For example, a failure or takeover of the audio driver due to a bug or exploit can lead to strange sounds but cannot lead to a full takeover of the operating system. Similarly, crashes of a system component can in many cases be automatically and transparently recovered without human intervention. Few, if any, other operating systems are as self-healing as MINIX 3.

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 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

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

Sursa: Minix3

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...