Dienstag, 24. April 2012
PDP11 feeling ...
Mit einer Leitung von etwa einem MIPS (Million Instructions Per Second) und einem Megabyte RAM kommt ein wenig Nostalgie auf. So muss es auch in den 70ern gewesen sein, als man am MIT Unix in C zum ersten mal auf einer DEC PDP 11 implementierte.
Installation von Minix 2.0.0
Die ROOT+USR Diskette wird in das Floppy Laufwerk gesteckt und der Computer eingeschaltet. Da meine CMOS Batterie defekt ist muss ich im BIOS erstmal wieder die Laufwerke korrekt einstellen. Danach bootet der 80286-AT den Minix-Bootloader. Mit einem Druck auf die Taste "=" kann man nun Minix booten. Leider habe ich eine deutsche Tastatur und das "="-Zeichen befindet sich nach dem amerikanischen Layout auf der Taste "´". Leider stoße ich nun auf die nächste Hürde. Bei Booten meldet der Kernel einen Fehler. Es ist nicht genug Platz im RAM um einen RAM-Disk anzulegen. Die RAM-Disk wird eigentlich nur benötigt, wenn man nur ein Diskettenlaufwerk hat und ROOT und USR Diskette nicht auf einer Diskette Platz haben. In diesem Fall wird die ROOT-Disk in die RAM-Disk kopiert, damit das Laufwerk freigemacht werden kann um auf die USR-Diskette zuzugreifen. Da bei aber beides auf einer Diskette ist, brauche ich keine RAM-Disk.
Nach einiger Suche im Internet finde ich die Lösung. Im Bootmanager wird durch Drücken der "ESC"-Taste ein Kommando-Interpreter freigeschaltet. Hier kann man mit dem Befehl:
bootdev=/dev/fd0
boot
die RAM-Disk deaktivieren. Minix will nun beim nächsten Start wissen, wo sich die USR-Disk befindet. Die Richtig Antwort ist /dev/fd0c . Tatsächlich befindet sich auf der Boot-Diskette also mehrere Partitionen. Nachdem man sich mit dem User root angemeldet hat, kann man nun mit dem Kommando setup Minix auf der Festplatte installieren. Das Hilfsprogramm part zum Partitionieren der Festplatte wird durch das Installationsscript automatisch gestartet. Hier ändere ich nur den Typ meiner 26 MB Primär-Patition um auf Typ 80 (Minix). Nach dem Speichern dieser Änderung will das Skript wissen, auf welcher Partition Minix jetzt installiert werden soll. Ich gebe /dev/hd1 an. Das Skript installiert nun Minix auf der Festplatte. Hierbei wird auch direkt der Boot-Manager auf der Festplatte eingerichtet. Das gesamte Grundsystem von Minix befindet sich also auf der Boot-Diskette. Nach der Installation kann man der Computer neu booten, jetzt von der Festplatte. Hat alles funktioniert, hat man nun ein erstes Minix Grundsystem. Nun sollte man mit dem Befehl:
setup /usr
die Kommandos von Minix installieren. Hierzu zählt auch die Editoren, die C-Compiler und Linker, viele Hilfsprogramme und sogar ein paar Spiele. Mit dem gleichen Kommandos werden auch der Kommando- und System- Sourcecode installiert. Alle was man angeben muss ist die Größe der Disketten (1440) und die Nummer des Laufwerks (0). Die Installation dauerte auf meinem AT etwa eine Stunde. Danach sind etwa 18 MB meiner Festplatte mit Daten belegt.
Nach einiger Suche im Internet finde ich die Lösung. Im Bootmanager wird durch Drücken der "ESC"-Taste ein Kommando-Interpreter freigeschaltet. Hier kann man mit dem Befehl:
bootdev=/dev/fd0
boot
die RAM-Disk deaktivieren. Minix will nun beim nächsten Start wissen, wo sich die USR-Disk befindet. Die Richtig Antwort ist /dev/fd0c . Tatsächlich befindet sich auf der Boot-Diskette also mehrere Partitionen. Nachdem man sich mit dem User root angemeldet hat, kann man nun mit dem Kommando setup Minix auf der Festplatte installieren. Das Hilfsprogramm part zum Partitionieren der Festplatte wird durch das Installationsscript automatisch gestartet. Hier ändere ich nur den Typ meiner 26 MB Primär-Patition um auf Typ 80 (Minix). Nach dem Speichern dieser Änderung will das Skript wissen, auf welcher Partition Minix jetzt installiert werden soll. Ich gebe /dev/hd1 an. Das Skript installiert nun Minix auf der Festplatte. Hierbei wird auch direkt der Boot-Manager auf der Festplatte eingerichtet. Das gesamte Grundsystem von Minix befindet sich also auf der Boot-Diskette. Nach der Installation kann man der Computer neu booten, jetzt von der Festplatte. Hat alles funktioniert, hat man nun ein erstes Minix Grundsystem. Nun sollte man mit dem Befehl:
setup /usr
die Kommandos von Minix installieren. Hierzu zählt auch die Editoren, die C-Compiler und Linker, viele Hilfsprogramme und sogar ein paar Spiele. Mit dem gleichen Kommandos werden auch der Kommando- und System- Sourcecode installiert. Alle was man angeben muss ist die Größe der Disketten (1440) und die Nummer des Laufwerks (0). Die Installation dauerte auf meinem AT etwa eine Stunde. Danach sind etwa 18 MB meiner Festplatte mit Daten belegt.
Erzeugung der Installationsdisketten für Minix 2.0.0
Ich installiere Minix über das 1,44 MB 3,5" Floppy Laufwerk. Hierfür muss ich mir die Disketten aber erstmal erzeugen. Die dafür notwendigen Datei kann man entweder hier herunterladen oder man besitzt die CD zum Buch "Operating System Design and Implementation" auf der sich die Datei ebenfalls befinden.
Die Disketten erzeuge ich auf einem PC unter Windows XP mit dem Hilfsprogramm fdvol. Für eine vollständige Installation mit allen Tools und den Kommando- und System- Sourcecode benötigt man 9 Disketten:
Die Disketten erzeuge ich auf einem PC unter Windows XP mit dem Hilfsprogramm fdvol. Für eine vollständige Installation mit allen Tools und den Kommando- und System- Sourcecode benötigt man 9 Disketten:
- ROOT+USR (BOOT) DISK [fdvol 1440 a: ROOT USR]
- USR DISK 1-3 [fdvol 1440 a: USR.TGZ]
- CMD DISK 1-3 [fdvol 1440 a: CMD.TGZ]
- SYS DISK 1-2 [fdvol 1440 a: SYS.TGZ]
Test der Seagate 251 MFM Festplatte
Mit Hilfe von DOS wird nun die Festplatte auf ihre Funktion überprüft. Diese alte 5,25" Festplatte hat den BIOS TYP 40 (AWARD) CHS 820:4:17 und ist für sein alter (20 Jahre+) noch immer betriebsfähig. Mit FDISK erzeuge ich 4 Partitionen je 10 MB (1x Primär, 1x Extended mit 3 logischen Laufwerken). Dies funktioniert ohne Probleme, die Festplatte hat als keine Schaden im Bereich des Bootblocks. Anschließend formatiere ich die erste Partition hat einen fehlerhaften Sektor. Partition 2 ist fehlerfrei. Beim formatieren der 3 Partition treten dann bei 76% Prozent Fortschritt sehr viele fehlerhafte Sektoren auf. Da die Festplatte versucht die Fehler zu korrigieren was sehr viel mechanische Geräusche verursacht und zu lange dauert, breche ich die Formatierung ab. Partition 4 hat keine Fehler. Nun lösche ich mit FDISK die 4 Partitionen und lege drei neue an. Die erste ist 25 MB groß, die zweite 4 MB und die dritte 12 MB. Anschließend formatiere ich die Partition 1 (1 Fehlerhafter Sektor) und Partition 3 (keine Fehler). Mit FDISK lösche ich nun die Partition 2 in dem die fehlerhaften Sektoren lagen. Diese wird nun nicht mehr benutzt und mir sehen nur noch 37 MB von 41 MB der Platte zur Verfügung. Für Minix wird es hoffentlich reichen.
Freitag, 20. April 2012
Oldie 80286 von eBay
Aus einer eBay Auktion habe ich nun auch den passenden PC ersteigert (12€), auf dem Minix zum laufen gebracht werden soll. Er stand fast zwei Jahrzente auf einem Dachboden und muss nun erstmal wieder zum laufen gebracht werden. Es ist ein 80286-10MHz Mainboard mit 1MB RAM eingebaut. Dazu gibt es einen Floppy und MFM HD AT Controller, eine Multi-I/O Karte (1x SIO/1x PIO/1x GAME) und eine Hercules Grafikkarte mit Bernstein 12" Monitor. Die CMOS Batterie ist ausgelaufen, die Laufwerke verstaubt, die Tastatur abgegriffen und die alte Seagate MFM Festplatte hat sehr scheinbar viele fehlerhafte Sektoren. Gut dass ich noch ausreichend Ersatzteile aus dieser Zeit habe. Es gibt als viel zu tun:- Reinigung der Laufwerke, des Gehäuses und des Netzteils
- Test der Festplatte auf fehlerhafte Sektoren
- Test der Komponenten unter MSDOS
- Kauf einer VGA ISA Grafikkarte und diese gegen die Hercules Grafikkarte austauschen
- Kauf eines VGA Monitor Switchs (KVM)
- Erzeugung der Installations-Disketten für Minix 2.0.0
- Installation von Minix auf der Festplatte
Dienstag, 17. April 2012
Was ist Minix ?
Minix ist ein von Prof. Dr. Andrew S. Tanenbaum entwickeltes Unix Betriebssystem. Version 1.1 wurde 1987 mit einem vom Professor geschriebenem Buch "Operating Systems - Design and Implementation" vertrieben. Obwohl der Source-Code im Quellcode in seinem abgedruckt war, durfte das Betriebssystem nicht frei weitergegeben werden. Erst ab der Version 2.0 wurde die Lizenz für Minix angepasst. Seit 2003 wird nun an der Version 3 von Minix gearbeitet. Diese Version setzt aber einen 80386 Prozessor mit mindestens 8 MB RAM voraus. In der Tat ist das aus heutiger Sicht eine Hardwarevoraussetzung die wohl jeder PC, den man in der freien Wildbahn unter die Finger bekommt, erfüllen wird.
Die Version 1.1 von Minix war für einen PC mit 8088 Prozessor und 256 KB RAM und 2 Disketten-Laufwerke konzipiert. Bis zur Version 2.0.2 ist Minix immerhin noch auf einem PC mit 8088 Prozessor und 640 KB RAM und einer 20 MB Festplatte zum laufen zu kriegen. Ab Version 2.0.3 ist als Minimum ein 80286 mit 1 MB RAM erforderlich. Version 2.0.4 ist die letzte Version des 16 Minix bevor mit der Entwicklung von Minix 3 begonnen wurde.
Ich bin an das Buch der Second Edition gekommen, dass ich nun durcharbeiten werde.
In Phase 1 installiere ich Minix und mache mich mit dem System bekannt. Parallel dazu lese ich das Buch.
Phase 2 beginnt mit ersten Experimenten mit dem Minix Source-Code und der Entwicklung oder Portierung von kleinen Programmen auf Minix.
In Phase 3 werde ich Anpassungen an dem Betriebssystem vornehmen, von Gerätetreibern bis Betriebssystemerweiterungen.
Die Version 1.1 von Minix war für einen PC mit 8088 Prozessor und 256 KB RAM und 2 Disketten-Laufwerke konzipiert. Bis zur Version 2.0.2 ist Minix immerhin noch auf einem PC mit 8088 Prozessor und 640 KB RAM und einer 20 MB Festplatte zum laufen zu kriegen. Ab Version 2.0.3 ist als Minimum ein 80286 mit 1 MB RAM erforderlich. Version 2.0.4 ist die letzte Version des 16 Minix bevor mit der Entwicklung von Minix 3 begonnen wurde.
Ich bin an das Buch der Second Edition gekommen, dass ich nun durcharbeiten werde.
In Phase 1 installiere ich Minix und mache mich mit dem System bekannt. Parallel dazu lese ich das Buch.
Phase 2 beginnt mit ersten Experimenten mit dem Minix Source-Code und der Entwicklung oder Portierung von kleinen Programmen auf Minix.
In Phase 3 werde ich Anpassungen an dem Betriebssystem vornehmen, von Gerätetreibern bis Betriebssystemerweiterungen.
Abonnieren
Kommentare (Atom)
