MINIX
MINIX è un sistema operativo Unix-like di tipo gratuito ed Open Source, basato su un’architettura Microkernel. E’ stato scritto da Andrew S. Tanenbaum per scopi educativi. Il suo nome è derivato dalle parole minimal e Unix.
Storia
Andrew S. Tanenbaum creò Minix all’università Vrije di Amsterdam per esemplificare i principi esposti nel suo libro di testo “Operating Systems: Design and Implementation” del 1987. Un condensato di 12.000 linee principalmente del codice C del kernel, del gestore di memoria, e del filesystem di MINIX 1.0 è incluso nel libro. Prentice-Hall ha anche rilasciato il codice sorgente e i binari di MINIX su floppy disc con un reference manual. MINIX 1 era compatibile a livello di chiamate di sistema con Unix Version 7.
Tanenbaum sviluppò originariamente MINIX per la compatibilità con i microcomputer IBM PC e IBM PC/AT disponibili a quel tempo. MINIX 1.5, rilasciato nel 1991, incluse il supporto per i sistemi IBM PS/2 Microchannel e fu anche portato sulle architetture Motorola 68000 e SPARC, comprendenti le piattaforme Atari ST, Commodore Amiga, Apple MacIntosh e le Sun SPARCstations. Ci furono anche porting non ufficiali alle piattaforme Intel 386 (in modalità protetta 32bit), National Semiconductors NS32532, ARM e InMos Transputer. La Meiko Scientific usò una release iniziale di MINIX come base del suo MeikOS per i suoi computer paralleli Computing Surface basati su transputer. Fu anche disponibile una versione di MINIX che girava come processo utente su SunOS.
La richiesta di architetture basate su 68k diminuì, e MINIX 2.0, rilasciato nel 1997, fu disponibile solo per architetture x86 e SPARC con host Solaris. Fu l’oggetto della seconda edizione del libro di testo di Tanenbaum, scritto in collaborazione con Albert Woodhull, e fu distribuito su un CD-ROM allegato al libro. MINIX 2.0 aggiungeva la compatibilità POSIX.1, supporto per 386 e processori successivi in modalità 32bit e rimpiazzava i protocolli di rete Amoeba distribuiti con la versione 1.5 con uno stack TCP/IP. Furono sviluppati anche dei port non ufficiali di MINIX 2.0.2 su workstation ISICAD Prisma 700, basata su 68020 e il PDA HP Jornada 680/690, basato su Hitachi SH3.
Minix-vmd è una variante di MINIX 2 per processori compatibili Intel IA-32, sviluppata da due ricercatori dell’università Vrije, che aggiunge virtual memory e supporto per il sistema X Window.
MINIX 3
MINIX 3 è stato annunciato pubblicamente da Tanenbaum il 24 ottobre 2005 durante un suo discorso alla conferenza ACM Symposium Operating Systems Principles. Sebbene serva ancora come esempio per la nuova edizione del libro di Tanenbaum e Woodhull, è stato ridisegnato complessivamente per essere “utilizzabile come sistema serio su computer embedded e con risorse limitate e per applicazioni che richiedono alta affidabilità”. MINIX 3 attualmente supporta solo i sistemi PC compatibili con architettura IA-32. E’ disponibile in formato LiveCD, che consente di utilizzarlo su un computer senza installazione su hard disk, e anche in sistemi di virtualizzazione come Bochs, Qemu, VMware Workstation/Fusion, e Microsoft Virtual PC.
La versione 3.1.2 è stata rilasciata l’8 maggio 2006. Contiene X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine, e oltre 400 altri programmi di uso comune su UNIX. Con l’aggiunta di X11, questa versione marca la transizione da sistema text-only. Un’altra feature di questa versione, che sarà migliorata nelle successive, è la capacità del sistema di superare i crash dei driver di periferica, e in molti casi di sostituirli automaticamente senza influenzare i processi in esecuzione. Questo rende MINIX un sistema self-healing (auto-riparante) ed utilizzabile in applicazioni che richiedono alta affidabilità.
MINIX e Linux
I principi di design che Tanenbaum applicò a MINIX influenzarono notoriamente le decisioni di Linus Torvalds riguardo alla creazione del kernel Linux. Torvalds usava e apprezzava MINIX, ma il suo design deviò dall’architettura MINIX in maniera significativa, principalmente per l’impiego di un kernel monolitico invece di un microkernel. Ciò fu disapprovato da Tanenbaum in un famoso dibattito tra i due. Recentemente Tanenbaum ha rispegato le sue ragioni sull’utilizzo di un microkernel, nel maggio 2006. Gli inizi dello sviluppo del kernel Linux avvennero su un sistema MINIX, il che portò Linux ad ereditarne varie features, come il formato del filesystem.
Nel maggio 2004 Kenneth Brown dell’Istituto Alexis de Tocqueville sollevò l’accusa che la maggior parte del kernel Linux fosse copiato dal codice base di MINIX, in un libro intitolato Samizdat.
Queste accuse furono universalmente respinte – in particolare da Andrew Tanenbaum, che criticò fortemente Kenneth Brown e pubblicò una lunga confutazione sul suo sito web personale.
Licenza
Al tempo del suo sviluppo originario, la licenza di MINIX era considerata piuttosto liberale. Il suo costo di licenza era molto basso ($69) confrontato con quello di altri sistemi operativi. Nonostante Tanenbaum desiderasse che MINIX fosse accessibile agli studenti, il suo editore non era preparato ad offrire materiale (come il codice sorgente) che fosse liberamente copiabile, così come compromesso fu applicata una licenza restrittiva che richiedeva un costo nominale (incluso nel prezzo del libro di Tanenbaum). Questo prevenne l’utilizzo di MINIX come base di un sistema software distribuito gratuitamente.
Quando i sistemi operativi Unix-like Open Source gratuiti come Linux e 386BSD divennero disponibili nei primi anni ’90 molti sviluppatori volontari di software abbandonarono MINIX in loro favore. Nell’aprile 2000 MINIX è diventato software free/Open Source sotto una licenza free software permissiva, ma gli altri sistemi operativi hanno ormai sorpassato le sue capacità, ed è rimasto principalmente un sistema operativo per studenti ed hobbisti.
Fonte: Wikipedia