Frequently Asked Questions

1. General Questions

1.1. What is MINIX 3?

MINIX 3 is a small free UNIX clone designed for very high reliability. It is especially well-suited for low-end PCs, resource-constrained systems, and embedded applications. It is available with all the source code, which makes it well-suited to classroom or self study by people wanting to learn how an operating system works.

1.2. What hardware do I need to run MINIX 3?

See UsersGuide/HardwareRequirements.

1.3. Where can I get MINIX 3?

MINIX 3 can be downloaded from the MINIX 3 download page. MINIX 3.1.0 is also distributed on a CD-ROM included with the text Operating Systems Design and Implementation, 3/e by Andrew S. Tanenbaum and Albert S. Woodhull.

1.4. Where can I get the MINIX 3 source code?

You can find the MINIX 3 source code in the /usr/src directory of your MINIX installation. You can also grab the code from our git repository.

1.5. Where can I get help with MINIX 3?

Post your question to our Google group, and we'll be glad to help.

1.6. I am a beginner. Where can I learn about MINIX 3 programming?

See the DevelopersGuide as a start.

1.7. Somebody must have seen my problem before. Is the newsgroup archived?

Yes. You can see the following archives:

1.8. A page I once saw is gone. Is there a way to find it?

Maybe. Try the Wayback machine.

1.9. Where can I find information about using MINIX 3 for teaching?

A good place to start is this Teaching Web page.

1.10. Can I become a MINIX 3 developer?

If you have the requisite time, interest, and knowledge, you are welcome to join the MINIX 3 community. See the DevelopersGuide for some starting points.

1.11. How do I submit a patch?

Alternatively, you can email a patch to the Google Group. You can use git send-email or TopGit (tg mail) for this.

1.12. Can you help me with my Minix homework / lab assignment?

Probably not. You're supposed to do it yourself, that's why it's homework / an assignment. Think about talking to your supervisor or classmates first. If you suspect a Minix bug, verify it's present in the latest version and post details on how to reproduce it.

If you must ask questions, make them very specific. As in "how does the widget changing in the dinkling system work?", not "<long source code paste>, what's wrong with my dinkling system?" Or, worse, simply post your assignment, add 'help plz,' and not tell us it's an assignment.

2.1. What is the MINIX 3 license?

The MINIX 3 license is a clone of the Berkeley (BSD) license. In plain English, it says you can do whatever you like with the system provided that (1) you agree not to sue us under any conditions, and (2) you keep the credit lines in the source, documentation, and publicity unless other arrangements have been made. Specifically, you are free to modify the source code, redistribute it, incorporate it into commercial products with only the above restrictions.

2.2. Why didn't you use the GPL?

We feel the GPL is too restrictive. Companies that put a lot of money into further developing open-source software rightly do not want to give it their competitors. Since MINIX 3 has clear applications in embedded systems, we felt the BSD license was more appropriate.

2.3. What is the relationship between MINIX and Linux?

MINIX was released in 1987 as a small easy-to-understand UNIX clone for use in courses teaching operating systems. Linus Torvalds, then a student at the University of Helsinki, studied MINIX in an operating systems course and was sufficiently impressed that he bought a PC to run it. He then used MINIX as a platform, guide, and inspiration to develop a MINIX clone, named Linux, which he released in 1991. Here is his announcement of Linux.

2.4. Linus has been accused of stealing Linux from MINIX. Is that true?

No. Absolutely not. Ken Brown of the Alexis de Tocqueville Institution wrote a report, funded in part by Microsoft, claiming that Linus stole Linux from MINIX. Brown's conclusion was that companies should not use Linux because the ownership of the intellectual property rights is unclear. This is complete garbage. While it is most unlikely that a 21-year-old student would have been capable of writing his own operating system had he not had the complete source code for a similar operating system available to use, study and modify, Linus wrote the initial version of the Linux code himself. The Brown report and a response from the creator of MINIX was discussed in detail on Slashdot.

3. Technical Questions

3.1. How do I boot the USB image?

Write the usb image file to the usb device sector-by-sector. In other words, don't write it to a FAT filesystem on the usb device, but write the file to it starting at the 0th sector. This will, of course, effectively wipe all other information that was on the usb device.

Then you can boot from the usb device if your BIOS supports that.

3.2. How do I change the network configuration after an install?

You can use the

netconf

tool to select your network chip and configure your IP address automatically using DHCP, or manually by providing the address, netmask, gateway, and other information. That tool is limited to one network card only. More advanced settings have to be done by hand. To do that, edit "/etc/inet.conf". Usually, the format is:

eth0 fxp 0 { default; };

where fxp is the name of the ethernet driver you want to start (it is the name of the process inet looks for, to talk to, for ethernet). Take a look at "/usr/etc/rc" how ethernet drivers are started. Currently, the choices are:

lance rtl8139 rtl8169 fxp e1000 dpeth dp8390 orinoco atl2 dec21140A

For details on inet.conf, please see the inet.conf manpage.

3.3. I can not get the Network to work using VMWare, what should I do?

If you have tried http://www.few.vu.nl/~beng/minix3_1_9_ide_r9112.iso.gz and http://www.minix3.org/download/minix_R3.1.8-r8398.iso.bz2 without success and only found that the old version (3.1.2a) on this Page http://www.minix3.org/vmware.html worked you are not alone. Googling will provide little help.

So how do they differ, the old version has NO network Driver specified in it's ".vmx" file so Minix must try everything and chooses Lance. It would be better if [8] worked but I found that a Bug causes panics with the IRQs to be printed to the Console every few seconds.

To get things working with VMWare do this:

1. Download the latest iso image from the download page, and use 7Zip (or other) to produce the ".iso".

2. Fire up VMWare and create a new Machine ("other" and "other 64 bit" DO work on 32-Bit WinXP).

3. Create one 16GB Disk and populate it so it won't have to grow (and wreck havoc with defragmentors).

4. You can specify 1024 MB of memory (older versions of Minix only use 880+kb).

5. You can choose more than one Processor (handy if you rebuild using gcc and "CONFIG_SMP=y CONFIG_MAX_CPUS=8" ).

6. Might as well add USB, a floppy, and Parallel / Serial Ports.

7. Choose "NAT".

8. Boot your "Virtual Machine" to the ".iso" (or the BIOS if you want to change things), install Minix by typing "setup /usr".

9. Use "non-expert Partitioning" (default) and set "/home" to 512K, that makes the last Partition within Minix's limits.

10. When it says to shutdown note the 'Boot Command' (it will likely be "boot d0p0"). DO NOT Re-boot, type "off" instead.

11. When Minix exits and you are back to VMWare goto the Directory where you created your Machine.

12. Use "Notepad" and edit the ".vmx" file.

Here is the "Trick": REMOVE the line that says (somthing similar to): ' ethernet0.virtualDev = "e1000" '

You might wish to remove all the '"ethernet" Lines' and just have this:

ethernet0.present = "TRUE"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:xx:xx:xx:xx:xx"
ethernet0.generatedAddressOffset = "0"
ethernet0.connectionType = "nat"

Replace the line ' ethernet0.generatedAddress = "00:xx:xx:xx:xx:xx" ' with your old one.

12. Now start your Machine and type the "Boot Command" (likely "boot d0p0"), don't re-run the Installer by mistake ;) .

13. You can type "netconf" to configure Networking. If it scans the Adapters FAST then it did not work, look at "lspci".

If it scans the Adapters SLOWly then there should be a "*" next to [7] (Lance) so choose "7" and then "1" for "dhcp" .

14. Type "reboot".

15. Now you have a Machine that has many Peripherals, a nice 1/2 GB home and over 15GB of free space - with working Networking.

16. Use "pkgin update", "pkgin upgrade" to Update to the current "Release", if you want something that you can not get this way then they are in ftp://ftp.minix3.org/pub/minix/packages/3.1.9/i386/All/ (EG: subversion-base-1.6.9nb1.tgz) and some of the 'origonal sources' seem to be in ftp://ftp.minix3.org/pub/minix/distfiles-backup/ .

17. Read this Wiki and http://wiki.minix3.org/en/DevelopersGuide/TrackingCurrent for latest info.

Added by Rob.

3.4. Has Minix been ported to the ARM/MIPS/SPARC/x86-64?

No. We do desire such things, and a port to ARM will be started soon.

3.5. My SATA drive doesn't work with MINIX

MINIX 3 does actually have SATA support, but we've seen problems if they're set to "Enhanced" (sometimes called "Native") mode. Try changing the setting to "Legacy" or "Combined" in BIOS.

3.6. MINIX 3 claims to be POSIX compliant. What is POSIX?

See this document on POSIX.

3.7. How can I boot multiple operating systems on the same computer?

See Running Multiple Operating Systems.

3.8. How do I boot MINIX3 from GRUB?

See Running Multiple Operating Systems.

3.9. How can I avoid problems with the vol command and floppy disks?

See this document on vol.

3.10. Is it possible to exchange data between file systems of different operating systems?

Yes. See this document on data exchange.

3.11. How do I view a draft man page that hasn't been installed yet?

Use

nroff -man ''man_file'' | more

3.12. What is the performance of MINIX 3 like?

We made measurements of the performance of MINIX 3 (user-mode drivers) versus MINIX 2 (kernel-mode drivers) and MINIX 3 is 5-10% slower. We have not compared it to other systems because there are so many other differences (e.g., the current disk driver does not even have DMA, the ACK compiler is faster than gcc but the code is worse, the file systems differ etc.) The biggest difference is that MINIX 3 represents about 1 man-year of work so far and other systems represent thousands of man-years of work and our priority has been reliability, not performance.

3.13. I get an error with / openssh / svn / /dev/random

openssh error: PRNG not seeded
svn error: SSL handshake failed due to lack of entropy

This is a problem with /dev/random. Specifically, the random number generation doesn't work.

See if it's the case:

cat /dev/random

(ctrl+c to stop reading)

If you receive an error message, do:

echo "<insert random characters here>" > /dev/random

4. Running Minix 3 on a Virtual Machine

4.1. Can I run MINIX 3 on VMWare?

Yes. See Running MINIX on VMWare.

4.2. Can I transfer data between a MINIX 3 guest on VMWare and the host?

See UsersGuide/FileTransfer.

4.3. Can I use the Bochs emulator to run MINIX 3?

Yes. See Running MINIX on Bochs.

4.3.1. Example config for Minix/Bochs on Freebsd 9

See Running MINIX on Bochs/Freebsd.

4.4. Can I run MINIX 3 on top of Windows using Virtual PC?

Yes. See this document on MINIX and Virtual PC.

5. Binary Packages

5.1. X: When I run xdm, nothing happens. What gives?

X is probably running out of memory. If you're running Minix on a VM, try increasing the VM image's memory. If not, try using chmem to reduce X's memory allocation. It's possible chmem =80000000 /usr/X11R6/bin/Xorg may work for you. You may need to play with the exact value.

5.2. I got an "Error opening terminal: xterm." error (e.g. when trying to run nano)

You probably did not install the ncurses library yet.

3.1.8 and later: use pkgin (or pkgsrc) to install it. See UsersGuide/InstallingBinaryPackages.

older releases: Use packman to install it from the CD.

Technical info: you're missing /usr/share/terminfo/m/minix see "man terminfo" for more details

MinixWiki: MinixFaq (last edited 2012-02-14 18:27:07 by David van Moolenbroek)