» 
Arabic Bulgarian Chinese Croatian Czech Danish Dutch English Estonian Finnish French German Greek Hebrew Hindi Hungarian Icelandic Indonesian Italian Japanese Korean Latvian Lithuanian Malagasy Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Vietnamese
Arabic Bulgarian Chinese Croatian Czech Danish Dutch English Estonian Finnish French German Greek Hebrew Hindi Hungarian Icelandic Indonesian Italian Japanese Korean Latvian Lithuanian Malagasy Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Thai Turkish Vietnamese

definition - MINIX_3

definition of Wikipedia

   Advertizing ▼

Wikipedia

MINIX 3

                   
MINIX 3
Screenshot of MINIX 3
Minix 3 running X11 with TWM as Window Manager.
Company / developer Andrew S. Tanenbaum
OS family Unix-like
Working state Current
Source model Free and open source software
Latest stable release

3.2.0  (29 February 2012; 5 months ago (2012-02-29)) [1]

[±]
Latest unstable release [±]
Supported platforms i386 (IA-32) architecture
Kernel type Microkernel
Default user interface ash
License BSD License
Official website www.minix3.org

MINIX 3 is a project to create a small, highly reliable and functional Unix-like operating system. It is published under a BSD license and is a successor project to the earlier MINIX 1 and MINIX 2 operating systems.

The main goal of the project is for the system to be fault-tolerant by detecting and repairing its own faults on the fly, without user intervention. The main uses of the operating system are envisaged to be embedded systems and education, such as universities or the OLPC XO-1 laptop.[2]

MINIX 3 currently supports IA-32 architecture PC compatible systems. It is also possible to run MINIX under emulators or virtual machines, such as Bochs,[3][4] VMware Workstation,[5] Microsoft Virtual PC,[6] and QEMU. Ports to the PowerPC[7] and ARMs (Intel XScale)[8] are in development.

The distribution comes on a Live CD and also can be downloaded as a USB stick image.[9]

Contents

  Goals of the project

  Structure of monolithic and microkernel-based operating systems, respectively

Reflecting on the nature of monolithic kernel based systems, where a driver (which has, according to MINIX creator Tanenbaum, approximately 3–7 times as many bugs as a usual program)[10] can bring down the whole system,[11] MINIX 3 aims to create an operating system that is a "reliable, self-healing, multiserver UNIX clone".[12]

In order to achieve that, the code running in kernel must be minimal, with the file server, process server, and each device driver running as separate user-mode processes. Each driver is carefully monitored by a part of the system known as the reincarnation server. If a driver fails to respond to pings from the reincarnation server, it is shut down and replaced by a fresh copy of the driver.

In a monolithic system, a bug in a driver can easily crash the whole kernel, something that is much less likely to occur in MINIX 3.[13]

  History

MINIX 3 versions[14]
Version Release date Description
3.1.0 2005-10-24
  • The first release of MINIX 3 (Book Release).
3.1.2a 2006-05-29
  • New Packman package manager.
  • Fixed an installation issue with auto-partitioning disks.
3.1.3 2007-04-13
3.1.3a 2007-06-08
  • Bug fixes.
3.1.4 2009-06-09
3.1.5 2009-11-05
  • Improvements performance
  • Shared memory
  • setitimer function
  • ISO 9660 file system
  • Open Sound System
  • Trap NULL accesses now, for user convenience
  • Improved signal handling
  • Better support for debuggers (ptrace improvements, etc.)
  • Network card autodetection (for supported PCI cards), improved network configuration
3.1.6 2010-02-08
3.1.7 2010-06-16
  • Userspace scheduling and a scheduling server [15]
  • Proper support for multiple ethernet cards of the same type
  • Boot monitor allows loading images > 16 MB
  • Buildsystem support for building MINIX with GCC
  • Support for the cp1251 and koi8-u charsets
3.1.8 2010-10-04
3.2.0 2012-02-29
  • Porting GNU Debugger to MINIX 3 and implementing core dumping support
  • FUSE Support with experimental NTFS-3G file system
  • Gradual replacement of MINIX userland with NetBSD userland
  • Replacing the default compiler ACK with Clang (GCC is also supported)
  • Switch to ELF and NetBSD libc libraries
  • Pkgsrc Upstreaming and Application Porting
  • Asynchronous virtual filesystem (VFS) server.
  • Replacing the MINIX bootloader with NetBSD bootloader
  • NCQ support in the AHCI driver
3.2.1 TBA
  •   Book Release
  •   Old release
  •   Current stable release
  •   Current development release

MINIX 3 was publicly announced on 24 October 2005 by Andrew Tanenbaum during his keynote speech on top of the ACM Symposium Operating Systems Principles conference. Although it still serves as an example for the new edition of Tanenbaum and Woodhull's textbook, it is comprehensively redesigned to be "usable as a serious system on resource-limited and embedded computers and for applications requiring high reliability."

  Website Overhaul

With the release of MINIX 3.2.0, the official website was redesigned with a more modernized look. It boasts a download button directly on the front page and links to other important pages. The official wiki still has yet to receive a similar overhaul and is currently powered by MoinMoin.

  Reliability in MINIX 3

One of the main goals of MINIX 3 is reliability. Below, some of the more important principles that enhance MINIX 3's reliability are discussed.

  Reduce kernel size

Monolithic operating systems such as Linux and FreeBSD and hybrids like Windows have millions of lines of kernel code. In contrast, MINIX 3 has about 6,000 lines of executable kernel code, which can make problems easier to find in the code.

  Cage the bugs

In monolithic operating systems, device drivers reside in the kernel. This means that when a new peripheral is installed, unknown, untrusted code is inserted in the kernel. A single bad line of code in a driver can bring down the system. In MINIX 3, each device driver is a separate user-mode process. Drivers cannot execute privileged instructions, change the page tables, perform arbitrary input/output (I/O), or write to absolute memory. They have to make kernel calls for these services and the kernel checks each call for authority.

  Limit drivers' memory access

In monolithic operating systems, a driver can write to any word of memory and thus accidentally trash user programs. In MINIX 3, when a user expects data from, for example, the file system, it builds a descriptor telling who has access and at what addresses. It then passes an index to this descriptor to the file system, which may pass it to a driver. The file system or driver then asks the kernel to write via the descriptor, making it impossible for them to write to addresses outside the buffer.

  Survive bad pointers

Dereferencing a bad pointer within a driver will crash the driver process, but will have no effect on the system as a whole. The reincarnation server will restart the crashed driver automatically. For some drivers (e.g., disk and network) recovery is transparent to user processes. For others (e.g., audio and printer), the user may notice. In monolithic systems, dereferencing a bad pointer in a (kernel) driver normally leads to a system crash.

  Tame infinite loops

If a driver gets into an infinite loop, the scheduler will gradually lower its priority until it becomes idle. Eventually the reincarnation server will see that it is not responding to status requests, so it will kill and restart the looping driver. In a monolithic system, a looping driver could hang the system.

  Limit damage from buffer overflows

MINIX 3 uses fixed-length messages for internal communication, which eliminates certain buffer overflows and buffer management problems. Also, many exploits work by overrunning a buffer to trick the program into returning from a function call using an overwritten stacked return address pointing into the overrun buffer. In MINIX 3, this attack does not work because instruction and data space are split and only code in (read-only) instruction space can be executed.

  Restrict access to kernel functions

Device drivers obtain kernel services (such as copying data to users' address spaces) by making kernel calls. The MINIX 3 kernel has a bit map for each driver specifying which calls it is authorized to make. In monolithic systems every driver can call every kernel function, authorized or not.

  Restrict access to I/O ports

The kernel also maintains a table telling which I/O ports each driver may access. As a result, a driver can only touch its own I/O ports. In monolithic systems, a buggy driver can access I/O ports belonging to another device.

  Restrict communication with OS components

Not every driver and server needs to communicate with every other driver and server. Accordingly, a per-process bit map determines which destinations each process may send to.

  Reincarnate dead or sick drivers

A special process, called the reincarnation server, periodically pings each device driver. If the driver dies or fails to respond correctly to pings, the reincarnation server automatically replaces it with a fresh copy. The detection and replacement of non-functioning drivers is automatic, without any user action required. This feature does not work for disk drivers at present, but in the next release the system will be able to recover even disk drivers, which will be shadowed in random-access memory (RAM). Driver recovery does not affect running processes.

  Integrate interrupts and messages

When an interrupt occurs, it is converted at a low level to a notification sent to the appropriate driver. If the driver is waiting for a message, it gets the interrupt immediately; otherwise it gets the notification the next time it does a RECEIVE to get a message. This scheme eliminates nested interrupts and makes driver programming easier.

  Architecture

  The Architecture of MINIX 3

As can be seen, at the bottom level is the microkernel, which is about 4,000 lines of code (mostly in C, plus a small amount of assembly language). It handles interrupts, scheduling, and message passing. It also supports an API of about 30 kernel calls that authorized servers and drivers can make. User programs cannot make these calls. Instead, they can issue POSIX system calls which send messages to the servers. The kernel calls perform functions such as setting interrupts and copying data between address spaces.

At the next level up, we find the device drivers, each one running as a separate user-mode process. Each one controls some I/O device, such as a disk or printer. The drivers do not have access to the I/O port space and cannot issue I/O instructions directly. Instead, they must make kernel calls giving a list of I/O ports to write to and the values to be written. While there is a small amount of overhead in doing this (typically 500 nsec), this scheme makes it possible for the kernel to check authorization, so that, for example, the audio driver cannot write on the disk.

At the next level we find the servers. This is where nearly all the operating system functionality is located. User processes obtain file service, for example, by sending messages to the file server to open, close, read, and write files. In turn, the file server gets disk I/O performed by sending messages to the disk driver, which actually controls the disk.

One of the key servers is the reincarnation server. Its job is to poll all the other servers and drivers to check on their health periodically. If a component fails to respond correctly, or exits or gets into an infinite loop, the reincarnation server (which is the parent process of the drivers and servers) kills the faulty component and replaces it with a fresh copy. In this way the system is automatically made self-healing without interfering with running programs.

Currently the reincarnation server, the file server, the process server, and the microkernel are part of the trusted computing base. If any of them fail, the system crashes. Nevertheless, reducing the trusted computing base from 3-5 million lines of code found in Linux and Windows systems to about 20,000 lines greatly enhances system reliability.

  Differences between MINIX 3 and prior versions

  Diagram of the relationships between several Unix-like systems

MINIX 1, 1.5, and 2 were developed as tools to help people learn about the design of operating systems.

MINIX 1.0, released in 1987, was 12,000 lines of C and some x86 assembly language. Source code of the kernel, memory manager, and file system of MINIX 1.0 are printed in the book. Tanenbaum originally developed MINIX for compatibility with the IBM PC and IBM PC/AT microcomputers available at the time.

MINIX 1.5, released in 1991, included support for MicroChannel IBM PS/2 systems and was also ported to the Motorola 68000 and SPARC architectures, supporting the Atari ST, Commodore Amiga, Apple Macintosh and Sun Microsystems SPARCstation computer platforms. A version of MINIX running as a user process under SunOS was also available.

MINIX 2.0, released in 1997, was only available for the x86 and Solaris-hosted SPARC architectures. Minix-vmd was created by two Vrije Universiteit researchers, and added virtual memory and support for the X Window System.

MINIX 3 does the same, and provides a modern operating system with many newer tools and many Unix applications.[16] Prof. Tanenbaum once said:

Please be aware that MINIX 3 is not your grandfather's MINIX ... MINIX 1 was written as an educational tool ... MINIX 3 is that plus a start at building a highly reliable, self-healing, bloat-free operating system ... MINIX 1 and MINIX 3 are related in the same way as Windows 3.1 and Windows XP are: same first name.[12]

There have also been many improvements in the structure of the kernel since MINIX 2 was released, making the operating system more reliable.[17] MINIX version 3.1.5 was released 5 Nov 2009. It contains X11, Emacs, vi, cc, GCC, Perl, Python, Almquist shell, Bash, Z shell, FTP client, SSH client, Telnet client, Pine, and over 400 other common Unix utility programs. With the addition of X11, this version marks the transition away from a text-only system. Another feature of this version, which will be improved in future ones, is the ability of the system to withstand device driver crashes, and in many cases having them automatically replaced without affecting running processes. In this way, MINIX is self-healing and can be used in applications demanding high reliability.

MINIX 3.2.0 was released in February 2012. This version has many new features, including the Clang compiler, experimental symmetric multiprocessing support, procfs and ext2fs filesystem support, and GDB. Several parts of NetBSD have also been integrated in the release, including the bootloader, libc and various utilities and other libraries.[18]

  Further reading

  See also

  References

  1. ^ "MINIX Releases". wiki.minix3.org. http://wiki.minix3.org/en/MinixReleases. Retrieved 29 February 2012. 
  2. ^ "LWN.net." LWN: MINIX 3 hits the net. 28 Oct 2005. Eklektix, Inc.. 4 Jul 2006 [1].
  3. ^ Woodhull, Al. Getting Started with Minix on Bochs on Mac OS. 20 Feb 2003. 8 Jul 2006 [2].
  4. ^ Senn, Will. "OSNews.com." Virtually Minix: A Tutorial & Intro to Minix on XP via Bochs - OSNews.com. 08 Jul 2006. OSNews.com. 8 Jul 2006 [3].
  5. ^ Wagstrom, Patrick. Minix under VMWare Installation How-To. 8 Jul 2006 [4].
  6. ^ Woodhull, Al. Minix on Virtual PC: first look. 02 Jun 2005. 8 Jul 2006
  7. ^ Alting, Ingmar A. MinixPPC: A port of MINIX 3 to the PowerPC platform, 15 Sep 2006. [5]
  8. ^ MINIX 3 Operating System official website
  9. ^ Download
  10. ^ Tanenbaum, Andy (2006-09-25). "Introduction to MINIX 3". OSnew. OSnews. http://osnews.com/story.php/15960/Introduction-to-MINIX-3. Retrieved 2008-07-04. "From Rebirth section: "Various studies have shown that software broadly contains something like 6-16 bugs per 1000 lines of code and that device drivers have 3-7 times as many bugs as the rest of the operating system. When combined with the fact that 70% of a typical operating system consists of device drivers, it is clear that device drivers are a big source of trouble. For Windows XP, 85% of the crashes are due to bugs in device drivers. Obviously, to make OSes reliable, something has to be done to deal with buggy device drivers. Building a reliable system despite the inevitable bugs in device drivers was the original driving force behind MINIX 3."" 
  11. ^ Tanenbaum, Andrew. CSAIL Event Calendar. 25 Aug 2006 [6].
  12. ^ a b Tanenbaum, Andrew. "Tanenbaum-Torvalds debate, Part II:." 12 May 2006. Vrije Universiteit. 15 Jun 2006 [7].
  13. ^ Tanenbaum, Andrew S.. "Reliability." The MINIX 3 Operating System. Vrije Universiteit.. 22 Jun 2006 [8]
  14. ^ MINIX Releases
  15. ^ Individual Programming Assignment User Mode Scheduling in MINIX 3 by Björn Patrick Swift
  16. ^ Woodhull, Albert S.. "MINIX 3: A small, reliable free operating system:" MINIX 3 FAQ. 24 Oct 2005. Vrije Universiteit. 15 Jun 2006 [9].
  17. ^ Tanenbaum, Andrew. "The MINIX 3 Operating System." Improvements since V2. 05 Jul 2006 [10].
  18. ^ "MINIX Releases". wiki.minix3.org. http://wiki.minix3.org/en/MinixReleases. Retrieved 29 February 2012. 

  External links

   
               

 

All translations of MINIX_3


sensagent's content

  • definitions
  • synonyms
  • antonyms
  • encyclopedia

Dictionary and translator for handheld

⇨ New : sensagent is now available on your handheld

   Advertising ▼

sensagent's office

Shortkey or widget. Free.

Windows Shortkey: sensagent. Free.

Vista Widget : sensagent. Free.

Webmaster Solution

Alexandria

A windows (pop-into) of information (full-content of Sensagent) triggered by double-clicking any word on your webpage. Give contextual explanation and translation from your sites !

Try here  or   get the code

SensagentBox

With a SensagentBox, visitors to your site can access reliable information on over 5 million pages provided by Sensagent.com. Choose the design that fits your site.

Business solution

Improve your site content

Add new content to your site from Sensagent by XML.

Crawl products or adds

Get XML access to reach the best products.

Index images and define metadata

Get XML access to fix the meaning of your metadata.


Please, email us to describe your idea.

WordGame

The English word games are:
○   Anagrams
○   Wildcard, crossword
○   Lettris
○   Boggle.

Lettris

Lettris is a curious tetris-clone game where all the bricks have the same square shape but different content. Each square carries a letter. To make squares disappear and save space for other squares you have to assemble English words (left, right, up, down) from the falling squares.

boggle

Boggle gives you 3 minutes to find as many words (3 letters or more) as you can in a grid of 16 letters. You can also try the grid of 16 letters. Letters must be adjacent and longer words score better. See if you can get into the grid Hall of Fame !

English dictionary
Main references

Most English definitions are provided by WordNet .
English thesaurus is mainly derived from The Integral Dictionary (TID).
English Encyclopedia is licensed by Wikipedia (GNU).

Copyrights

The wordgames anagrams, crossword, Lettris and Boggle are provided by Memodata.
The web service Alexandria is granted from Memodata for the Ebay search.
The SensagentBox are offered by sensAgent.

Translation

Change the target language to find translations.
Tips: browse the semantic fields (see From ideas to words) in two languages to learn more.

last searches on the dictionary :

2821 online visitors

computed in 0.063s

   Advertising ▼

I would like to report:
section :
a spelling or a grammatical mistake
an offensive content(racist, pornographic, injurious, etc.)
a copyright violation
an error
a missing statement
other
please precise:

Advertize

Partnership

Company informations

My account

login

registration

   Advertising ▼