Monday, June 28, 2010

My Minix 3 diary -- Introduction and initial installation

In 1995 I downloaded fifty 3.5 inch diskettes of the Slackware distribution of Linux, installed it on my home computer, and after several hundred hours of configuration got it more or less working for the state-of-the art in Linux at that time. A friend at work used my diskettes to install on his computer, and both of us have been avid Linux users since.

But part of me has missed the early days of broken and missing pieces, where I had to do detective work to get my setup behaving correctly.

More seriously, although I love Linux, I've always recognized that it is not the be-all and end-all of operating system technology.  It's good, it's free (both in the "free beer" and "free as in freedom" sense, and the support community is wonderful.

But there are a number of other OSes out there, and one which in particular has beckoned me is Minix 3. 

Those of you who know the history of Linux might remember that Linus Torvalds, the creator of Linux, was originally working in the first version of Minix when he began coding Linux.  At that time Minix was an educational tool targeted at the 8088/8086 processors, and as such could not support modern production use (multiprogramming was not possible).

You may also remember the debates between Linus Torvalds and Andrew Tanenbaum regarding the merits of monolithic kernels versus microkernel architecture (I'm not going to bother to go into that now.  Follow the preceding link if you are interested in exploring it).

Fast forwarding to the present, Minix has come a very long way.  Minix 3 has been released, and an active community is working on transforming it into a serious production system.

The goals of Minix 3 are summarized as follows on the official Minix web page:

MINIX 3 is initially targeted at the following areas:
  • Applications where very high reliability is required
  • Single-chip, small-RAM, low-power, $100 laptops for Third-World children
  • Embedded systems (e.g., cameras, DVD recorders, cell phones)
  • Applications where the GPL is too restrictive (MINIX 3 uses a BSD-type license)
  • Education (e.g., operating systems courses at universities)

 I've been looking for a fun, interesting, and challenging project to keep myself young at heart  in the UNIX/POSIX world.  So I've  taken  a Dell Inspiron 1545 laptop and installed Minix 3.1.7 on it.  My intent is to get every reasonable function of this laptop working with Minix in the modern sense of the word.  Where possible I'll build on other people's work (and hope upon hope that someone writes a driver for the NIC before I'm forced to do it myself).  But if no one else is working on a particular project relevant to my laptop list, I'll hunker down and do it myself.  I have no time line, since this is a labor of love.

The top priority missing component as far as I'm concerned is a driver for the NIC.  The ethernet card on this  laptop is probably a Marvell 88E80XX 10/100 Ethernet Controller (based on looking over Dell's spec sheets).

But before I tackle device drivers I have to get the standalone Minix running and configured to my satisfaction first.  My next post is going to be a description of the specific problems I ran into on the installation, and how I dealt with them.

No comments:

Post a Comment