Table of Contents

Preguntas frecuentes

Preguntas generales

¿Qué es MINIX 3?

MINIX 3 es un clónico de UNIX, de tamaño pequeño, diseñado para ser estable y fiable. Está especialmente indicado para PCs de baja potencia, sistemas con recursos limitados y aplicaciones embebidas. Está disponible junto con todo el código fuente, lo que lo hace especialmente indicado para estudiarse en clases o por quien quiera aprender cómo funciona un sistema operativo.

¿Qué hardware se necesita para funcionar con MINIX 3?

Ver HardwareRequirements.

¿De dónde se puede obtener MINIX 3?

MINIX 3 se puede descargar de la página de descarga de MINIX 3. MINIX 3.1.0 también se distribuye en CD-ROM incluidos con el texto Operating Systems Design and Implementation, 3/e por Andrew S. Tanenbaum y Albert S. Woodhull.

¿De dónde se puede obtener el código fuente de MINIX 3?

Se puede encontrar el código fuente de MINIX 3 en el directorio /usr/src de tu instalación MINIX 3. También puedes descargar el código de nuestro repositorio git.

¿De dónde puedo obtener ayuda con MINIX 3?

Envía tu pregunta a nuestro grupo de Google, y estaremos encantados de ayudarte.

Soy un principiante. ¿Dónde puedo aprender programación en MINIX 3?

Ver la DevelopersGuide como primer paso.

También puedes comprar el libro MINIX3, que cubre una versión vieja de Minix, 3.1.0. En términos de arquitectura, varias cosas han cambiado desde entonces - pero es mucho más fácil entender esos cambios una vez que se conoce lo básico, y el libro cubre todo esto.

Alguien ha tenido el mismo problema con anterioridad. ¿El grupo de noticias se archiva?

Sí. Puedes ver los siguientes archivos:

Una página ya no existe. ¿Hay alguna manera de volver a verla?

Quizás. Prueba la Wayback machine.

¿Dónde encuentro información para utilizar MINIX 3 en la enseñanza?

Un buen sitio donde empezar es esta Página de enseñanza.

¿Puedo ser un desarrollador de MINIX 3?

Si tienes los requisitos tiempo, interés y conocimiento, eres bienvenido a unirte a la comunidad de MINIX 3. Mira la DevelopersGuide para empezar.

¿Cómo envío un parche?

Alternativamente, puedes enviar un email con tu parche al Grupo de Google (en Inglés). Puedes utilizar “git send-email” o TopGit (“tg mail”) para esto.

¿Podéis ayudarme con mis tareas de Minix / encargo de laboratorio / necesito implementar un algoritmo de lotería / como añado una llamada al sistema?

Probablemente no. Se pretende que lo hagas por ti mismo, por eso es una tarea / engargo. Piensa en hablar con tu supervisor o compañeros primero. Si sospechas un bug en Minix, verifica que esté presente en la última version y danos los detalles para reproducirlo.

Si tienes que hacer preguntas, hazlas muy específicas. Como en “¿Cómo funcionan los cambios de widgets en éste caso?” no “<copia larga de código fuente>, ¿que está mal en mi código?”. O peor, simplemente publicar tu encargo, añadir “ayuda por favor” y no decirnos que es un encargo.

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.

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.

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.

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.

What license does included third-party software use?

The license of accompanying third-party software can be found in the software's LICENSE file, in its documentation, or in the headers of the software's source code. Information about the software and its source code can be found in the MINIX repository.

Technical Questions

How do I boot the USB image?

First, USB images are a legacy offer which was hacked specifically for MINIX 3.1.x. It does not work with the more recent 3.2.x releases, and is futile with 3.3.0 which does support native USB peripherals.

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.

Can I crosscompile it?

Of course! See Crosscompiling.

Why don't you use GCC?

By default clang is used as the compiler on native Minix installs because of its BSD license. GCC is available (install it with pkgin) and you can build the base system with it by setting CC=gcc.

For crossbuilds GCC is the default.

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.

No network driver is detected under VMware

New VMware versions (starting workstation 8 it seems) try to give Minix installs an e1000 driver instead of lance. Edit your .vmx file and change this line:

ethernet0.virtualDev = “e1000” to say “vlance” instead. Then re-run netconf under Minix.

I can not get the Network to work using VMware, what should I do?

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 TrackingCurrent for latest info.

Added by Rob.

Will MINIX be ported to ARM/MIPS/SPARC/x86-64/Raspberry Pi?

ARM

Yes. Porting to ARM is a top priority for the Minix team.

The code is published in the current Minix git master branch and the basics are working. For information on how to get started, see the Minix on ARM wiki page.

We are initially targeting the BeagleBoard-xM, BeagleBone, and BeagleBone Black.

The target processor is the ARM Cortex-A8, which supports the ARM v7 instruction set.

Other

There are no plans at this time for other ports. We are focused on the Minix/arm port and providing excellent support for the hardware on the BeagleBoard-xM and BeagleBones. You can follow our progress at the Minix/arm Feature Matrix.

I want to port Minix to the ARM/MIPS/SPARC/x86-64

That's great, but try something more basic first.

Want to help with the ARM port? After the initial release, help to get more of the device working (e.g. hardware support, help with getting crosscompiling packages working, reducing code duplication, there will no doubt be an endless list of things to do and fix still) would be more than welcome.

My SATA drive doesn't work with MINIX

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

See this document on POSIX.

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

See Running Multiple Operating Systems.

How do I boot MINIX3 from GRUB?

See Running Multiple Operating Systems.

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

See this document on vol.

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

Yes. See this document on data exchange.

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

Use

nroff -man //man_file// | more

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. The biggest difference is that MINIX 3 represents about a handful man-year of work so far and other systems represent thousands of man-years of work and our priority has been reliability, not performance.

I get an error with pkgsrc saying NWIOTCPCONN: connection timed out

The latest development sources for Minix has a new ftp client that is incompatible with the old ftp client that shipped with Minix 3.2.1. pkgsrc was updated to use the new ftp client. So you have to rebuild your system according to TrackingCurrent, or install with a newer snapshot iso.

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:

strings /dev/random

(ctrl+c to stop reading)

If you receive an error message, do:

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

pkgin just tells me "nothing to do"

pkgin isn't very chatty about some things. Two main causes for this:

  1. pkgin didn't recognize the package name: try the exact full name including 'nb', e.g. pkgin in clang-3.1nb2 instead of clang-3.1
  2. package database is confused. rebuild it with pkg_admin rebuild.

Running Minix 3 on a Virtual Machine

Can I run MINIX 3 on VMware?

Yes. See Running Minix on VMWare.

Can I transfer data between a MINIX 3 guest on VMware and the host?

See FileTransfer.

Can I use the Bochs emulator to run MINIX 3?

Yes. See Running MINIX on Bochs.

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

Yes. See this document on MINIX and Virtual PC.

Can I run MINIX 3 in VirtualBox

Yes. See Running MINIX on VirtualBox.

It doesn't work

After booting the CD, if you see an error like

A critical error has occurred while running the virtual machine and the machine execution has been stopped.

then you must enable hardware virtualization in vbox. (Settings → System → Acceleration → Enable VT-x/AMD-V.) If you can't, please read the Workarounds for VirtualBox.