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.
Ver HardwareRequirements.
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.
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.
Envía tu pregunta a nuestro grupo de Google, y estaremos encantados de ayudarte.
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.
Sí. Puedes ver los siguientes archivos:
Quizás. Prueba la Wayback machine.
Un buen sitio donde empezar es esta Página de enseñanza.
Si tienes los requisitos tiempo, interés y conocimiento, eres bienvenido a unirte a la comunidad de MINIX 3. Mira la DevelopersGuide para empezar.
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.
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.
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.
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.
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.
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.
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.
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.
Of course! See Crosscompiling.
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.
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.
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.
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.
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.
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.
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.
See this document on POSIX.
See this document on vol.
Yes. See this document on data exchange.
Use
nroff -man //man_file// | more
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.
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.
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 isn't very chatty about some things. Two main causes for this:
pkgin in clang-3.1nb2
instead of clang-3.1pkg_admin rebuild
.Yes. See Running Minix on VMWare.
See FileTransfer.
Yes. See Running MINIX on Bochs.
Yes. See this document on MINIX and Virtual PC.
Yes. See Running MINIX on VirtualBox.
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.