MINIX is a free UNIX clone that is available with all the source code. Due to its small size, microkernel-based design, and ample documentation, it is well suited to people who want to run a UNIX-like system on their personal computer and learn about how such systems work inside. It is quite feasible for a person unfamiliar with operating system internals to understand nearly the entire system with a few months of use and study.

MINIX has been written from scratch, and therefore does not contain any AT&T code--not in the kernel, the compiler, the utilities, or the libraries. For this reason the complete source can be made available (by FTP or via the WWW).

MINIX has evolved over the years, so several versions exist. Two of these are still current. The rest are obsolete. The current versions are:

       MINIX 2.0 (Intel CPUs from 8088 to Pentium)
       MINIX 1.5 (Intel, Macintosh, Amiga, Atari, SPARC)
MINIX FAQs exist for both IBM PC hardware and Macintoshes. We would like to bring the 68000 anbd SPARC versions up to date (i.e., to port MINIX 2.0 to these platforms). Volunteers should contact me (

MINIX 2.0 can be compiled in either 16-bit mode or 32-mode, depending on compile time flags. For 32-bit mode, a 386, 486, or Pentium is required.



To run MINIX 2.0, you need a PC driven by an 8088, 286, 386, 486, or Pentium CPU. The system must be 100% hardware compatible with the PC-AT and its successors (i.e, EISA bus, IDE disk, etc.).

To run the 16-bit version, 640K is the minimum. To run the 32-bit version, 2MB is the minimum. To run comfortably, another 512K is needed.

A hard disk is not technically required, but is strongly recommended to take full advantage of the system. To load all the sources and be able to recompile the system, 30 MB is the practical minimum but with a 20 MB disk partition, you can still run and compile parts of the system.

The system must have either a CGA, EGA, VGA, monochrome, or Hercules video card, or another card that emulates one of these. Both 5.25" and 3.5" diskettes are supported, as are printers using the parallel port and modems and terminals using the serial ports. Mitsumi CD-ROMs are also supported, as are some Ethernet cards.


aal add_route advent animals ar ascii ash at atrun autil backup badblocks banner basename bawk bc bin btoa byacc cal calendar cat cawf cd cdiff cdplay cgrep chmem chmod chown ci cksum clr cmp co comic comm compress cp crc cron cut date dd de decomp16 df dhrystone diff dirname dis88 diskcheck diskusage dosread du dw echo ed eject elle elvis expand expr factor fdisk fgrep file find finger flex fold format fortune fsck ftp gather getty gomoku grep head host hostaddr ic id ifconfig ifdef indent inodes install irdpd isoread join kermit kill last leave life loadfont loadkeys login look lpr ls m4 mail make man men mined mixer mkdir mkfifo mkfs mknod mkproto modem mount mref mt ncheck nm nonamed od part partition passwd paste patch pathchk ping playwave postmort pr prep pretty printenv printroot proto ps pwd rarpd rcp readall readclock readfs reboot recover recwave remsync repartition rev rlogin rmdir roff rsh screendump scripts sdump sed sh shar simple size sleep sort split strings strip stty su sum swapfs sync synctree tail tar tcpd tee telnet term termcap test time touch tr traverse treecmp tset tsort ttt tty umount uname unexpand uniq unshar update users uud uue vol wc whatsnew which who whoami width write xargs yap yes zmodem


abort abs access alarm alloca asctime asin assert asynchio atan atan2 atexit atof atoi atol bcmp bcopy brk brksize bsearch bzero calloc ceil cfgetispeed cfgetospeed cfsetispeed cfsetospeed chartab chdir chmod chown chroot clearerr clock close closedir creat crypt ctermid ctime cuserid data difftime div doprnt doscan dup dup2 ecvt environ errlist errno ether_line ethera2n ethere2a etherh2n ethern2h exec execl execle execlp execn execv execve exit exp ext_comp fabs fclose fcntl fdopen feof ferror fflush ffs fgetc fgetpos fgets fileno fillbuf floor fltpr flushbuf fmod fopen fork fpathconf fprintf fputc fputs fread freopen frexp fscanf fseek fsetpos fslib fstat fsversion ftell fwrite getc getchar getcwd getdomain getegid getenv geteuid getgid getgrent getgroups gethnmadr gethostent gethostname getlogin getopt getpass getpid getppid getprocessor getproto getprotoent getpw getpwent gets getservent getsrvbyname getsrvbyport getuid getw gmtime gtty hton hugeval hypot icompute index inet_addr inet_ntoa ioctl iolib isalnum isalpha isascii isatty iscntrl isdigit isgraph islower isnan isprint ispunct isspace isupper isxdigit itoa kill labs ldexp ldiv link loadname localeconv localtime lock log log10 longjerr lrand lsearch lseek malloc mblen mbstowcs mbtowc memccpy memchr memcmp memcpy memcspn memmove memset misc mkdir mkfifo mknod mktemp mktime modf mount mtab nlist oneC_sum open opendir pathconf pause peekpoke perror pipe popen pow printf printk ptrace putc putchar putenv puts putw qsort raise rand rcmd read readdir reboot regexp regsub remove rename res_comp res_init res_mkquery res_query res_send rewind rewinddir rindex rmdir sbrk scanf seekdir sendrec setbuf setgid setjmp setlocale setuid setvbuf sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigmisc signal sigpending sigprocmask sigreturn sigset sigsetjmp sigsuspend sin sinh sleep sprintf sqrt sscanf stat stderr stime strcasecmp strcat strchr strcmp strcoll strcpy strcspn strerror strftime strlen strncat strncmp strncpy strnlen strpbrk strrchr strspn strstr strtod strtok strtol strxfrm stty swab sync syscall sysconf system tan tanh taskcall tcdrain tcflow tcflush tcsendbreak telldir termcap termios time times tmpfile tmpnam tolower toupper ttyname tzset umask umount uname ungetc unlink utime vfprintf vprintf vsprintf wait waitpid wcstombs wctomb write


MINIX has been designed as a teaching system. It is easy to learn and maintain. A book describing operating systems in general and how MINIX works in particular is available. It can be used as a textbook or for independent study. The bibliographic information is:
     Title:      Operating Systems: Design and Implementation, 2/e
     Authors:    Andrew S. Tanenbaum, Albert S. Woodhull
     Publisher:  Prentice-Hall


Although MINIX is supplied with the complete source code, it is copyrighted software. However, the copyright owner has granted everyone the right to redistribute or sell it, with or without source code, in unmodified or modified form. For all practical purposes, MINIX can be treated as if it were in the public domain. For a copy of the complete MINIX license, written in Middle English, click here.


Since its introduction in January 1987, there has been a large an active USENET newsgroup about MINIX, comp.os.minix. Tens of thousands of messages have been posted to this group so far. These messages have contained questions, bug reports, bug fixes, and new software. New users can ask questions and join discussions there.


To get instructions for obtaining MINIX by WWW, click here.

That page also tells how to get the manuals and related software (DOS utilities for installing MINIX, third-party software, and old MINIX versions).


In addition to running MINIX on a bare Intel CPU, it is also possible to run it on a simulator (i.e., a 386 interpreter) called Bochs. A version of Bochs is on the MINIX CD-ROM.

A second alternative is to run MINIX as a user program on a SPARC. To find out more about that option, click here.


For a web page pointing to other MINIX resources on the web, click here.

Maintained (badly) by Andy Tanenbaum ( . Last change: 15 Nov 1996