Minix Gets a NetBSD Code Infusion
Minix, the Unix operating system that inspired Linus Torvalds to create Linux, has been expanded to give users a wider range of commands and features, thanks in large part to a Google Summer of Code project from last year.
Minix 3.2, released Wednesday, has many new Unix commands and libraries ported from NetBSD, another open-source Unix operating system. The update is part of an ongoing effort to modernize the OS, and make it usable beyond its original mission as a teaching aid.
Andrew Tanenbaum, a computer science professor at Vrije Universiteit in Amsterdam, created Minix as a low-cost implementation of Unix that students could use and study. The source code, along with a CD of the OS, accompanied his seminal 1987 textbook "Operating Systems: Design and Implementation."
Due to the licensing restrictions of the book, however, Minix was not freely available for general use, which prompted then-University of Helsinki student Torvalds to create his own open-source Unix OS, which was named Linux. Torvalds also objected to some of Tanenbaum's design decisions, most notably the use of a componentized microarchitecture, rather than a single monolithic one, the model Torvalds used for Linux. Minix was subsequently relicensed as open source in 2000.
Because Tanenbaum created Minix as a teaching tool, he initially kept the code base as minimal as possible. As a result, users enjoyed only a limited amount of functionality. Starting with version 3.0, released in 2005, Tanenbaum started expanding the OS for more general-purpose duties. Because of its small footprint, Minix could work well in embedded devices and other limited-resource, 32- bit computers. He and the development team added an X11-based GUI (graphical user interface), support for virtual memory and many additional Unix command line tools.
Minix 3.2 continues this expansion. A big part of this release has been the introduction of a large number of user commands, programs and libraries that have been ported from NetBSD. This work came about as a project underwritten by the Google Summer of Code, a yearly Google-funded program to encourage student developers.
Thanks to this work, Minix now has a new log-in procedure, one based on the NetBSD bootloader and password file format. In addition, many commands familiar to Unix users such as chmod, pwd, mkdir, fsck, mkfs, gzip, and dd all have been ported to Minix from the original NetBSD code. Version 3.2 also has a number of freshly ported NetBSD libraries, such as libprop and libutil, which should help ease the work for developing Minix applications.
In addition to the NetBSD code infusion, Minix 3.2 also comes with the usual assortment of bug fixes and performance improvements that accompany any new release. It contains experimental support for SMP (symmetric multiprocessing). It has a new compiler, Clang. The software will now try to reread data from a failing block device, such as a hard drive, should it get an error message. The default executable format is ELF (Executable and Linkable Format), which may make it easier to port the software to other platforms, such as ARM processors.
To encourage wider participation from volunteer developers, the maintainers of Minix moved the code base for the OS to Git, a widely used version control system.