Das FDOS Betriebssystem - Programmer`s Heaven User Uploaded

Werbung
Das FDOS Betriebssystem
Ein Einstieg in die Systemprogrammierung
(5. Ausarbeitung)
Von Stefan Tappertzhofen
Auf
der
Basis
einer
Informatikfacharbeit
(Grundkurs
(GK),
Jahrgangsstufe, Abgabetermin: 15. März 2002, Lehrer: Herr Warthmann)
12.
Inhaltsverzeichnis
1.
Seite
Vorwort und Einführung
3
1.1. Definition eines Betriebssystems und
einige Beispiele bekannter Systeme
1.2. Der Bootvorgang und der Bootsektor
1.3. Der Kernel als ein fundamentaler
Bestandteil eines Betriebssystems
2.
Zielsetzung und Eigenanteil
6
2.1. Die Realisierung des Bootsektors und
des Dateisystems
2.2. Der Kernel mit einem eigenen Interrupt
3.
Dokumentation
und 9
Anwendungsmöglichkeiten
3.1. PC- und Systemstatus Abfrage und
Informationen rund um das System
3.2. Dateisystem
3.3. Speicher- und Prozessmanagement
3.4. Weitere Programme
3.5. Die Konzeption eigener Mikroprogramme
mit Hilfe des Kernels
3.6. Das System beenden
4.
Reflexion
4.1. Hindernisse und Probleme die bei der
Entwicklung des Systems auftraten
4.2. Mögliche Erweiterungen am System
4.3. Schlusswort
18
5.
Anhang
5.1. Literatur- und Quellenverzeichnis
21
5. Überarbeitung (3.08.2003)
(c) Stefan Tappertzhofen 2002 – 2003
Freigegeben nach GNU Lizenz
Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public
License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren,
entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird,
aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der
VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public
License.
Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten
haben. Falls nicht, schreiben Sie an die Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307, USA.
Version 0.0.5, Copyright (C) 2002 Stefan Tappertzhofen Für FDOS besteht KEINERLEI GARANTIE;
FDOS ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.
Das FDOS Betriebssystem
2
1. Vorwort und Einführung
Betriebssysteme spielen im Umgang mit dem PC eine
fundamentale Rolle. Trotzdem ist vielen PC Benutzern die
Funktionsweise eines solchen Systems völlig unbekannt. Die
Leistungen, die moderne Betriebssysteme heute vollbringen sind für
den einfachen PC Nutzer schlichtweg unüberschaubar geworden. Ich
versuche in meiner Ausarbeitung die Funktionsweise einfacher
Betriebssysteme (um nicht den Rahmen der Ausarbeitung zu
sprengen), dargestellt an einem Beispiel eines selbst entwickelten
Betriebssystem mit ausgewählten Funktionen zu verdeutlichen.
Dabei werde ich in vier Schritten vorgehen. Zum einen werde ich
den Begriff des Betriebssystems erklären. Dies ist jedoch nicht so
einfach. In der heutigen Zeit ist es schwierig bei Produkten wie
Windows 2000 noch zwischen dem eigentlichen Betriebssystem und
den mitgelieferten Anwendungsprogrammen zu unterscheiden. Aus
diesem Grund lege ich meinen Schwerpunkt hauptsächlich auf
„einfache Betriebssysteme“. Doch was ist ein „einfaches
Betriebssystem“? Welchem Funktionsprinzip entspringt ein
„einfaches Betriebssystem“ und gibt es überhaupt ein gewisses
Prinzip, das alle System miteinander verbindet?
Im zweiten Teil meiner Ausarbeitung werde ich genauer auf die
Entwicklung meines Systems eingehen, welches ich komplett in
Assembler programmiert habe um die Funktionsweise eines
Betriebssystems zu erläutern.
Die Dokumentation über mein Betriebssystem findet sich dann
im dritten Teil. Ich werde hier auch etwas näher über verschiedene
Funktionen (auf die ich später noch zu sprechen komme) des Kernels
schreiben. Unter anderem zeige ich wie ein Anwender mit Hilfe des
Kernels eigene Mikroprogramme entwickeln kann.
Der vierte Teil meiner Ausarbeitung beinhaltet die Reflexion. Das
Ziel meiner Reflexion soll die kritische Analyse meiner Arbeit,
insbesondere der Programmierung sein. So werde ich unter anderem
auf allgemeine und spezielle Probleme und mögliche Erweiterungen
an meinem Betriebssystem eingehen.
1.1 Definition eines Betriebssystems und einige Beispiele
bekannter Systeme
Die Definition eines Betriebssystem ist nicht genau festgelegt. So
beschäftigt sich Dr. Peter Schnupps „Standart Betriebssysteme“ (s.
Quellen) im Grunde genommen die ganze Zeit mit der Klärung des
Begriffs „Betriebssystem“. Laut der DIN Norm 44300 sind
Betriebssysteme (engl. Operating System, kurz: OS) die „Programme
Das FDOS Betriebssystem
3
eines digitalen Rechensystems, die zusammen mit den
Eigenschaften der Rechenanlage die Basis der möglichen
Betriebsarten des digitalen Rechensystems bilden und insbesondere
die Abwicklung von Programmen steuern und überwachen“
(Schnupp, 1990, S. 16).
Bei modernen Betriebssystemen, wie zum Beispiel Microsoft
Windows XP, ist die Funktionsweise um ein Vielfaches komplexer als
die Funktionsweise von einfachen Systemen wie MS-DOS, da diese
Betriebssysteme dem Benutzer eine Vielzahl von beigelieferten
Programmen (Dienste) anbieten. Doch was ist ein einfaches
Betriebssystem? Da es keine genauen Definitionen hierfür gibt und
sich jeder selbst seine eigene Meinung über einfache
Betriebssysteme bilden kann, kann man diese Frage auch nicht so
leicht beantworten. Damit der Begriff (einfaches Betriebssystem) aber
in meiner Ausarbeitung mehr Substanz gewinnt bezeichne ich ein
Betriebssystem als einfach, wenn man das eigentliche System klar
von den beigelieferten Anwendungsprogrammen oder Diensten
(sofern vorhanden) abgrenzen kann. Bei Betriebssystemen mit einer
grafischen Oberfläche ist dies zum Teil nicht mehr der Fall. Die
grafische Oberfläche von Microsoft Windows 98 zum Beispiel ist sehr
stark vom Microsoft Internet Explorer 4.x geprägt. Doch der Internet
Explorer ist kein Bestandteil des Systems, sondern nur ein
Anwendungsprogramm. Da die klare Trennung zwischen System und
Anwendungsprogramm in diesem Beispiel nicht gegeben ist,
bezeichne ich MS Windows 98 auch nicht als einfaches
Betriebssystem. Nach meiner Meinung ist jedoch die angesprochene
Trennung bei Microsoft DOS in gewisser Weise schon vorhanden.
Dieses Betriebssystem läuft auch ohne die beigelieferten Dienste (im
Gegensatz zu Windows). DOS könnte man also schon eher als
einfach bezeichnen.
Alle Betriebssysteme lassen sich aber im Prinzip auf ein
bestimmtes Aufgabenmuster zurückführen., so verwalten sie die
Nutzung von Hardwareressourcen wie den Arbeitsspeicher,
Peripheriegeräte und den Prozessor (engl. Central Processing Unit,
kurz CPU). Daneben sind Betriebssysteme auch der Ausgangspunkt,
von dem aus Anwendungsprogramme aufgerufen werden und der PC
konfiguriert werden kann.
Das am meisten verbreitete Betriebssystem ist heute immer
noch Microsoft DOS, auf welches Microsoft Windows 95, 98 und ME
noch aufbauen. Daneben finden sich auch einige andere Systeme
wie Mac-OS, Linux, BeeOS und Windows NT. (vgl. „Betriebssystem“,
MS Encarta 99).
Das FDOS Betriebssystem
4
1.2 Der Bootvorgang und der Bootsektor
Ich beschränke mich bei dem hier angesprochenen Bootvorgang
nur auf den Bootvorgang einer bootfähigen Diskette, da der
Bootvorgang einer Festplatte mitunter anders verlaufen kann.
Beim Starten des Computers wird zuerst das BIOS (engl. Basic
Input/Output System, dt.: Basis Ein- und Ausgabesystem) geladen,
welches die Hardware und das System überprüft. Nun folgt der
Bootvorgang. Das BIOS lädt den ersten Sektor (den Bootsektor) der
Diskette in die Speicherstelle 0000:7C00h. Der Bootsektor ist immer
512 Byte groß (ein Sektor ist standardmäßig 512 Byte groß). Die
Aufgabe des Bootsektors besteht nun darin den Kernel, auf den ich
später noch eingehen werde, und eventuell anschließend eine
Benutzerumgebung (UI, User Interface) zu laden, die es dem
Benutzer ermöglicht Befehle an das System zu senden (vgl.
tecChannel, „Der Bootvorgang, 2002).
Normalerweise initialisiert der Bootsektor auch das Dateisystem.
So finden sich in solchen Bootsektoren auch Diskettenspezifische
Eigenschaften, die später für das Dateisystem von großer Wichtigkeit
sind. (vgl. Zimmermann, „Organisation der Diskette unter DOS“,
2002)
Aus der Sicht des Entwicklers ist es wichtig den Bootsektor nicht
größer als 512 Byte werden zu lassen. Außerdem darf man die
sogenannte Bootsignatur nicht vergessen, die den Sektor erst für das
BIOS zu einem richtigen bootfähigen Sektor macht. Als Bootsignatur
bezeichnet man die letzten 2 Bytes des Bootsektors. Für den Fall,
dass der Bootsektor weniger als 510 Byte groß ist lässt man ihn auf
510 Byte füllen, damit die letzten 2 Byte auf jeden Fall die
Bootsignatur bilden. (vgl. Marjamäki, 2002)
1.3 Der Kernel als ein fundamentaler Bestandteil eines
Betriebssystems
Der Kernel (auch Betriebssystemkern genannt) enthält eine
Reihe von Funktionen, mit denen ein Betriebssystem oder ein
Anwendungsprogramm einen Computer steuern kann. Unter
anderem verfügt der Kernel über Funktionen die Ein- und Ausgabe
von Texten und Zeichen auf dem Bildschirm steuern. Diese
Funktionen bezeichnet man als API (Application Program Interfaces,
dt.:
Anwendungsprogramm
Schnittstelle).
Bei
vielen
Betriebssystemen sind die Interrupts Bestandteile von der API und
werden genauso behandelt. In modernen Systemen befindet sich der
Kernel nicht in nur einer einzigen Datei, sondern kann in viele
Das FDOS Betriebssystem
5
verschiedene Dateien unterteilt sein (vgl. R. Lee, Beitrag in einem
Forum, 2002).
Hardware u. virtuelle
Hardware
(API)
Programme
(UI*)
Betriebssystem
Benutzer
*UI = User Interface, Benutzer
Oberfläche
Grober Aufbau eines einfachen Betriebssystems
Die Abbildung verdeutlicht den Aufbau eines einfachen
Betriebssystems. Der Kernel dient dabei als Schnittstelle und
Steuerungszentrale für die Programme, die über die API des Kernels
arbeiten und somit auf die Hardware (und eventuelle virtuelle
Hardware) zugreifen können. Über die UI (User Interface) kann der
Benutzer das System steuern und das System wiederum übergibt
den Benutzer über die UI Statuswerte oder Fehlermeldungen.
2. Zielsetzung und Eigenanteil
Um die Funktionsweise eines Betriebssystems darzustellen habe
ich ein eigenes kleines Betriebssystem entwickelt (genannt „FDOS“ –
„Floppy Disk Operating System“). Ich setze voraus, dass der Leser
eine ausreichende Grundkenntnis über Assembler und den Aufbau
von Computern besitzt. Als Assembler nutze ich den NASM (The
Netwide Assembler Project, siehe Quellen). Während der
Entwicklung erwies sich dieser kostenlose Assembler als sehr
nützlich für die Programmierung von Betriebssystemen, da die
meisten Assembler Codes (TASM oder MASM) leicht an NASM
angepasst werden konnten. Leider zeigte sich jedoch auch, dass
NASM noch in der Entwicklung ist und deshalb noch einige kleine
Fehler hat.
2.1 Die Realisierung des Bootsektors und des Dateisystems
In meinem System besteht die Aufgabe des Bootsektors im
Grunde genommen nur darin die Datei „fdos.sys“ in die
Das FDOS Betriebssystem
6
Speicherstelle 50h (= 80d) zu laden. Dazu muss man zuvor jedoch
eine
Reihe
von
Vorkehrungen
treffen.
So
wird
die
Dateizuordnungstabelle (FAT = File Allocation Table), sowie das
Hauptverzeichnis in die Speicherstelle 200h (= 512d) je nach Bedarf
geladen.
Zunächst wird der STACK initialisiert, damit wir vollen Zugriff auf
die 64 KB Arbeitsspeicher haben (mehr als 64 KB Arbeitsspeicher
werden von FDOS, da es sich um ein Real Mode und nicht Protected
Mode System handelt, nicht unterstützt). Nun sind wir in der Lage die
ersten Dateisystem-Operationen vorzunehmen.
Dazu müssen wir zunächst einmal das Hauptverzeichnis in den
Speicher (Speicherstelle siehe oben) lesen. Beim FAT 12
Dateisystem liegt der Inhalt des Hauptverzeichnisses einer Diskette
normalerweise zwischen den Sektoren 19 und 33. Über eine kurze
Rechnung haben wir die benötigten Sektoren ausfindig gemacht und
sind nun in der Lage das Hauptverzeichnis zu speichern. Der Aufbau
eines Verzeichnisses in FAT 12 ist äußerst simpel. Es handelt sich
lediglich um eine Liste mit vordefinierten Spaltenlängen. So sind für
den Dateinamen 11 Zeichen (8 Dateiname, 3 Dateiendung)
zugewiesen. Des weiteren gibt es Spalten, die uns vermitteln, ob es
sich bei der Datei um eine normale Datei, ein Verzeichnis oder gar
das Datenträger Label handelt. Ferner werden Datums- und
Zeitangaben, sowie die Datei- und Verzeichnisattribute mitgeteilt. Für
Dateisystem-Operationen sind jedoch auch die Spalten „Dateigröße“
sowie „StartCluster“ wichtig.
Wenn wir unsere gewünschte Datei nun in der Liste gefunden
haben sind wir nun in der Lage mittels des StartClusters und der
Dateigröße die Datei zu laden. Dafür muss nun die
Dateizuordnungstabelle (FAT) geladen werden. Diese Tabelle wird im
folgenden wichtig für die Cluster Abhandlungen. Cluster sind ein oder
mehrere Sektoren in einem Paket zusammengefaßt, deren
Paketgröße in der Datenträgertabelle (die ersten 59 Bytes des
Bootsektors) gespeichert ist.
Die FAT gibt eine Aussage über den Status von jedem Cluster
des Datenträgers. Normalerweise zeigt der jeweilige Eintrag eines
Clusters in der FAT auf den folgenden Cluster. Das heißt, dass sich
eine Cluster-Kette bildet, die dann den Dateiinhalt darstellen. Ein
Cluster kann allerdings auch den Status „Leer“, „Datei Ende“ oder
„Nicht verwendbar“ besitzen. Über die FAT ist es demnach recht
einfach möglich Clustern Dateien in der richtigen Reihenfolge
zuzuordnen oder den Freien Speicherplatz zu ermitteln.
Nachdem wir nun die einzelnen Cluster unser „fdos.sys“ mit Hilfe
der FAT in den Speicher geladen haben sind wir nun in der Lage das
Programm auszuführen. Damit ist die Arbeit des Bootsektors
beendet. Er muss lediglich noch auf 510 Bytes aufgefüllt werden,
Das FDOS Betriebssystem
7
damit wir sicher stellen können, dass die letzten 2 Bytes eine korrekte
Boot Signatur darstellen (Eine korrekte Bootsignatur lautet: AA44h
(=43605d)).
2.2 Der Kernel mit einem eigenen Interrupt
In der Speicherstelle 50h befindet sich nun die „fdos.sys“ Sie
beinhaltet neben einer Eingabeaufforderung um Programme zu laden
auch den Interrupt 21h (= 33d).
Um den Kernel und die
Eingabeaufforderung nutzen zu können muss der Interrupt zunächst
einmal geladen werden und dann die jeweilige Interrupt
Vektornummer (in diesem Falle 21h) in die Interrupt Tabelle
gespeichert werden. Dazu muss man zunächst die Interrupts
deaktivieren und den eigenen Interrupt Code in die Interrupt Tabelle
eintragen. Danach werden die Interrupts wieder aktiviert.
Die jeweilige Funktionsnummer des Interrupts wird in den AX
Teilregister AH gespeichert. Über den Befehl INT 21h kann man in
Kombination mit weiteren Parametern die gewünschte Funktion
ausführen. Bei einem Fehler wird eine besondere Fehlerrückgabe zur
Fehlerbehandlung bereitgestellt.
Interrupt Funktionen sind im Grunde nicht von anderen
Prozeduren oder Unterprogrammen zu unterscheiden. Als
Rücksprung wird jedoch der Befehl IRET (Interrupt Return) benötigt.
Nun sind wir in der Lage auf unseren eigenen Interrupt
zuzugreifen. Wir werden im weiteren Verlauf nur noch mit dem INT
21h arbeiten, da dieser alle Funktionen vereint die wir benötigen. So
auch die Funktionen, mit denen wir es dem Benutzer ermöglichen
Dateien auf dem Datenträger auszuführen. Anders als bei FDOS
0.0.4 gibt es bei FDOS 0.0.6 gibt es nun neben ausführbaren Dateien
auch Shell Befehle. Da FDOS 0.0.6 nun auch Ordner unterstütz und
es natürlich Befehle geben muss, die für alle Ordner gelten, wurden
einige Befehle in den Shell implementiert.
Neben den oben schon beschriebenen Prozessen lädt der Kernel auch
Geräte Treiber (in der Version 0.0.6 nur einen Pseudotastaturtreiber)
3. Benutzer Dokumentation
In der Dokumentation lernen Sie die Standart BefehlsProgramme von FDOS 0.0.6 kennen. Daneben bietet diese
Dokumentation eine Beschreibung, die Ihnen verdeutlicht, wie Sie
eigene Mikroprogramme für das System entwickeln können.
Das FDOS Betriebssystem
8
3.1 PC- und Systemstatus Abfrage und Informationen rund um
das System
Um eine kleine Hilfe zu erhalten müssen Sie den Befehl „help“
eingeben. Es wird die Datei „HELP.BIN“ auf der Diskette (im
Hauptordner) ausgeführt. Die Datei enthält eine knappe Hilfe in
verschiedenen Rubriken unterteilt. Die Befehle „date“ und „time“ sind
identisch (sie befinden sich im Ordner „FDOS“). Die beiden
Programme enthalten den gleichen Code und zeigen Datum und
Uhrzeit an. Eine Statusabfrage erhalten Sie über den Befehl „status“
(im Ordner „FDOS“. Der Befehl „ver“ zeigt Ihnen die FDOS Daten an
(bei diesem Befehl handelt es sich um einen Shellbefehl).
3.2 Dateisystem
Der Befehl „dir“ ist ein implementierter Shell Befehl. Auf dem
Bildschirm wird das aktuelle Verzeichnis wiedergegeben. Bei
Verzeichnissen handelt es sich im Grunde um nichts anderes als
Dateien, die eine mit dem Hauptverzeichnis vom Aufbau her ähnliche
Struktur beinhalten. Mit dem Shell Befehl „cd“ wechselt man in ein
Unterverzeichnis:
Beispiel:
cd fdos
In diesem Beispiel wechselt der Benutzer vom aktuellen
Verzeichnis in das Unterverzeichnis „FDOS“. Groß- und
Kleinschreibung wird dabei nicht beachtet. Ordnernamen
entsprechen auf Grund ihrer technischen Eigenschaft den 8.3
Konventionen (8 Zeichen Dateiname, 3 Zeichen Typenname). Mit
„cd..“ wechselt man von einem von einem Unterordner in den
übergeordneten Ordner. „CD/“ wechselt direkt zum Hauptverzeichnis.
3.3 Speicher- und Prozessmanagement
FDOS 0.0.6 verfügt nun über ein neues Speichersystem und
damit
verbunden
auch
zum
ersten
mal
ein
kleines
Prozessmanagement. Letzteres dient dazu einen Überblick über den
verwendeten Speicher zu geben.
Das FDOS Betriebssystem
9
Neue Speicherbelegung von FDOS 0.0.6:
Name
Start
Bis...
FDOS SYS
FAT
Verzeichnis
Name Verzeichnis
Tastatur Codes
Rücksprung WORD 1
Rücksprung WORD 2
Reserviert
Parameter
Reserviert
FDOS Verzeichnis
Prozesse
Neues Programm
50h
2000h
4401h
6400h
6500h
6601h
6610h
6620h
6700h
6801h
7000h
7100h
8000h
2000h
4400h
6400h
6500h
6600h
6609h
6619h
6699h
6800h
6999h
7099h
7200h
Die ersten 32768 Byte stehen dem FDOS System zu. Weitere 32 KB
können dann frei vom Benutzer verwendet werden. Mit dem Befehl
„MEM“ erhält man eine Übersicht über die Prozesse.
3.4 Weitere Programme
Die FDOS Version 0.0.4 ermöglichte zum ersten mal Programme
mit Parametern zu starten. Daraufhin wurden zwei weitere
Programme eingebunden.
Zum ein stellt sich das Programm „SCRIPT.BIN“ (im Ordner
„FDOS“) als Mini-Scriptsprachen Interpreter dar. Zur Zeit werden nur
der Anschauung halber drei Befehle unterstützt.
Beispiel:
cd fdos
script /h
script echo Hallo
> Wechselt nach FDOS
> Gibt eine Kurzinfo aus
> Gibt “Hallo” aus
Neben dem Script Befehl gibt es nun auch eine Art
Tastaturtreiber – „KEYB.BIN“ (im Hauptverzeichnis) für Deutsche
Tastaturen. Jedenfalls werden einige Tasteneingaben für Deutsche
Tastaturen angepasst. Leider ist dieses Programm noch in der
Entwicklung. Über Parameter kann man zwischen der deutschen und
Das FDOS Betriebssystem
10
der englischen Tastatur wählen. Beim start von FDOS wird übrigens
automatisch mit „keyb /de“ die deutsche Tastatur ausgewählt
3.5 Die Konzeption eigener Mikroprogramme mit Hilfe des
Kernels
Die Konzeption eigener Mikroprogramme setzt die Kenntnis über
die API-Funktionen des Kernels voraus. Im weiteren Verlauf werde
ich auf die wichtigsten API-Funktionen des Kernels eingehen. Eine
Funktion rufen Sie in Assembler über folgenden Code auf:
MOV AH, 0
INT 21h
;
;
;
;
;
;
Hier die
Funktionsnummer
eintragen
Aufruf des
Interrupt 21h (Kernel
API)
Interrupt 21h Funktionsaufruf unter NASM
Manche Funktionen fordern noch weitere Parameter an, die dann
über die in dieser Dokumentation (oder im Quelltext) angegebenen
(Teil-) Register übergeben werden.
Wir beschäftigen uns jetzt mit der Konzeption eines einfachen
„Hello World“ Programms. Dieses kleine Mikroprogramm soll beim
Aufruf eine Textmeldung ausgeben und sobald eine Taste gedrückt
wurde sich beenden und zu FDOS zurückkehren. Die
Programmierung läuft hierbei in vier Schritten ab. Als Erstes muss
dem PC mitgeteilt werden, dass wir das Segment ausführen wollen,
in das wir das Programm gespeichert haben. Man könnte dies als
Initialisierung bezeichnen. Danach sollte der eigentliche Quellcode
des Programms folgen. Mit Hilfe der Kernel Funktionen können wir
die Textausgabe steuern und auf einen Tastendruck warten. Um das
Programm zu beenden rufen wir die Funktion 0 des Interrupt 21h
(Kernel). Als letztes muss nun nur noch der String als Variable erstellt
werden, der ausgegeben werden soll. Den Quellcode des
Beispielprogramms finden Sie auf der Diskette (vgl. „hello.asm“).
Um das Programm nun zu kompilieren geben Sie bitte folgenden
Befehl in die MS-DOS Eingabeaufforderung ein: nasm test.asm f bin -o test.bin (mehr über die Optionen von NASM erfahren
Sie in der auf der Diskette beiliegenden NASM-Dokumentation).
Das FDOS Betriebssystem
11
Kopieren sie das Programm auf die FDOS Diskette. Wenn Sie
FDOS nun starten und „test“ eingeben, sollte das Programm
ausgeführt werden. Drücken Sie eine Taste um zu FDOS zurück
zukehren.
3.6 Das System beenden
Um FDOS zu beenden geben Sie bitte den Befehl exit ein. Sie
gelangen nun auf ein Menü mit 5 Auswahlmöglichkeiten. Drücken Sie
die jeweilige Zahl, um das System mit der jeweiligen Option zu
beenden. Wenn Sie FDOS einfach neu starten möchten
(Schnellstart) drücken Sie die Option 1. Das System wird nun neu
gebootet. Daneben stehen Ihnen zwei weitere Neustart-Optionen
offen: Kalt- und Warmstart. Bei beiden wird das BIOS neu geladen.
Der Warmstart ist jedoch in der Regel etwas schneller. Die 4. Option
ist nur für APM fähige Rechner sinnvoll. Wenn Sie die 4. Option
auswählen und Ihr Rechner ein APM fähiger Rechner ist wird er
komplett ausgeschaltet. Ob ihr Rechner APM fähig ist können Sie
entweder bei den meisten Rechnern aus dem BIOS oder der
Gebrauchsanweisung entnehmen.
4. Reflexion
Das von mir entwickelte System erhebt natürlich nicht den
Anspruch
auf
Vollständigkeit.
Es
verdeutlicht
nur
die
Grundfunktionen. In diesem Kapitel will ich auf die Probleme
eingehen, die sich bei der Entwicklung meines Systems ergaben.
Daneben versuche ich das System kritisch zu betrachten, vor allem
im Hinblick und auf eventuelle Erweiterungen.
4.1 Hindernisse und Probleme die bei der Entwicklung des
Systems auftraten
Da Assembler nicht die Möglichkeit eines Debuggers bietet und
der Assembler Code mitunter sehr unübersichtlich werden kann,
kann es leicht zu Fehlern kommen. Es ist sehr mühselig diese Fehler
ausfindig zu machen. Schon kleine Veränderungen an bestimmten
Teilregistern können zu unerwarteten Problemen führen. Außerdem
könnte die Fehlerursache bei machen Problemen an Bugs (Fehlern)
des NASM Assemblers und nicht an meinem Code liegen.
Das FDOS Betriebssystem
12
4.2 Mögliche Erweiterungen am System
Im Vergleich zu Systemen wie MS-DOS, die auch noch relativ
einfach aufgebaut sind, stellt sich mein System als ein ziemlich
unbrauchbares dar. Bei der Einbindung eines Dateisystems stellte
sich die Frage, welches Dateisystem solle man denn nun verwenden.
Die drei meist verbreiteten sind FAT (File Allocation Table), genutzt
von MS Windows und DOS (FAT spaltet sich in FAT 12 für Disketten,
FAT 16 für kleine Festplatten und FAT 32 für große Festplatten),
NTFS (New Technology File System), genutzt von MS Windows NT
und Windows 2000 und den Unix/Linux Systemen wie EXT/2. Jedes
dieser Dateisysteme hat seine Vor- und seine Nachteile.
3 MB
Erweiterungsspeicher
(XMS)
(2 MB)
HMA
1 MB
640 KB
Expansionsspeicher
(EMS)
(1 MB)
Hoher Speicherbereich (348
KB)
Konventioneller
Arbeitsspeicher
(640 KB)
„Speicherkonfiguration eines typischen Computers“
(MS-DOS Benutzerhandbuch, S. 128)
FAT Systeme sind relativ einfach aufgebaut. Ein gutes
Dateisystem erfordert jedoch auch ein gutes Speichermanagement.
Im Grunde bietet mein System überhaupt kein Speichermanagement.
Außerdem adressiert mein System nur den Konventionellen
Arbeitsspeicher (bis 64 KB). Der hohe Speicherbereich (bis 384 KB),
der Erweiterungsspeicher (XMS) oder der Expansionsspeicher (EMS)
wird gar nicht angesprochen. Microsoft MS-DOS benutzt
verschiedene Speichermanager, wie z.B. Emm386 um auch den
Speicher oberhalb von 64 KB zu nutzen. Der Hohe Speicherbereich
wird
hauptsächlich
von
der
Hardware
benutzt.
Das FDOS Betriebssystem
13
Erweiterungsspeichermanager wie Himen verwalten den XMS (vgl.
MS-DOS Benutzerhandbuch, S. 126 f.). Man kann schon erahnen,
dass die Verwaltung des Speichers ein recht kompliziertes Verfahren
ist.
Der Einbau einer Fenstertechnik wäre erst sinnvoll, wenn mein
System Multitasking unterstützen würde. Beim Multitasking ist es
möglich mehrere Prozesse nebeneinander laufen zu lassen, es
erfordert jedoch ein noch viel kompliziertes Speichermanagement.
Außerdem lässt sich Multitasking und Fenstertechnik nur effizient in
einer GUI (engl. Graphical User Interface, dt.: Grafische
Benutzeroberfläche) einsetzten.
Die Entwicklung einer GUI ist jedoch nicht so einfach. Man
würde schnell von Assembler zu sogenannten „Hochsprachen“ wie C,
C++ oder auch Pascal übergehen, da sie die Programmierung
vereinfachen (auf der anderen Seite aber auch nicht so schnelle,
kleine und flüssige Programme wie Assembler erzeugen). Oft sieht
man heute eine Kombination aus einer Hochsprache und Assembler.
Dabei werden zum Beispiel bei Pascal oder C bestimmte Funktionen
oder Befehle mit Assembler Code ergänzt (vgl. Rohde, S. 481 ff.,
2001).
4.3 Schlusswort
Allgemein kann ich jedoch von meinem System behaupten, dass
es der Zielsetzung nahe kommt. Eigentlich hatte ich vor ein
komplettes und einfaches System, möglichst ohne Bugs (Fehler) zu
erstellen. Da jedoch wie schon erwähnt die Fehlersuche in Assembler
sich als äußerst schwierig erweist und bei mehr als 2600 Zeilen
Assembler Quelltext zu einem langwierigen Verfahren werden kann
war es mir schlichtweg unmöglich alle Fehler zu beheben. Mein
System jedenfalls ist lauffähig und wurde auf zwei Privat-Rechner
getestet.
Ich hoffe, dass ich dem interessierten Leser die Funktionsweise
von Betriebssystemen etwas näher gebracht habe und durch mein
eigenes System gezeigt habe, wie die Entwicklung eines Systems
aussehen könnte. Viele Funktionen eines System konnte ich nur kurz
erläutern. So ließe sich zum Beispiel. über Dateisysteme ganze
Bücher schreiben. Das von mir erwünschte Thema der Facharbeit,
auf der die weitere Ausarbeitung aufbaut („Funktionen eines
einfachen Betriebssystems, dargestellt an einem Beispiel eines selbst
entwickelten Betriebssystem mit ausgewählten Funktionen“) erwies
sich als ein sehr komplexes Thema und bei der Bearbeitung der
Ausarbeitung musste ich auf viele näheren Erläuterungen und
Informationen verzichten, die sonst den Rahmen gesprengt hätten.
Das FDOS Betriebssystem
14
Mein Ziel war es aber auch die Bedeutung von Betriebssystemen
für den PC und für den Anwendung herauszustellen. Ich hoffe, dass
ich diesem Ziel gerecht wurde.
Stefan Tappertzhofen; Düsseldorf, den 3.08.2003
(Überarbeitete Version vom 3.8.2002; weitere Informationen
zu den Änderungen enthält die Datei „readme.doc“)
Das FDOS Betriebssystem
15
5. Anhang
In diesem Anhang finden Sie eine Dokumentation über die einzelnen
API Funktionen von FDOS.
5.1 API Dokumentation
Programm beenden und zu FDOS zurückkehren
Eingabe:
Funktionsnummer (AH=) 0
Ausgabe:
Keine
Beschreibung: Diese Funktion beendet ein Mikroprogramm und
kehrt zu FDOS zurück.
Beispielcode:
MOV AH, 0
INT 21h
Funktionsweise: Die Werte der beiden Kernel Variablen (siehe
Übersicht über Speichermanagement) werden
nacheinander in den Stack als WORD Zahlen
geschrieben. Per IRET springt die CPU nun an die
Stelle zurück, wo das Programm ursprünglich
geladen wurde.
Nullterminierten String ausgeben
Eingabe:
Funktionsnummer (AH=) 1, SI = Verweis zum String
Ausgabe:
Auf dem Bildschirm
Beschreibung: Schreibt einen Null terminierten String auf den
Bildschirm. Wenn der PC das Zeichen 0 erreicht hat
bricht er die Funktion ab, ansonsten würde eine
Endlosschleife entstehen.
Beispielcode:
JMP SHORT WriteAusgabeString
DB ’Hallo’,13,10,0
Write:
MOV AH, 1
MOV SI, AusgabeString
INT 21h
Funktionsweise: Der API wird mittels dem Offset Register SI die
Speicherstelle des Strings überliefert. Danach wird
der String eingelesen, indem SI jeweils um eins
addiert und der Wert der Speicherstelle SI in AL
geschrieben wird. Sobald die Funktion auf den AL
Wert = 0 trifft, wird der Rücksprung eingeleitet.
Würde man also den String nicht null terminieren
hätte man eine Endlosschleife.
Das FDOS Betriebssystem
16
Null terminierten String eingeben
Eingabe:
Funktionsnummer (AH=) 2, DI = ZielString
Ausgabe:
Zielstring
Beschreibung: Schreibt über die Tastatur einen String bis Enter
oder Return gedrückt wird. Der String ist NullTerminiert, d.h. als letztes Zeichen wird
automatisch eine 0 geschrieben.
Beispielcode:
JMP SHORT ReadZielString
TIMES 10 DB 0
Read:
MOV AH, 2
MOV DI, ZielString
INT 21h
Funktionsweise: Mittels einer BIOS Funktion findet sich die aktuell
gedrückte Taste als ASCI Code im Teilregister AL.
Dieser wird in den String, auf den DI zeigt
gespeichert und DI um eins erhöht. Wenn Enter
gedrückt wurde wird der String noch null terminiert.
Die Back Taste wird ebenfalls unterstützt.
FDOS Version ermitteln
Eingabe:
Funktionsnummer (AH=) 3
Ausgabe:
AL = Hauptversion, AH = Unterversion, BL =
Revision, BH = Sprachcode, CL = Jahrhundert, CH
= Jahr, DL = Monat, DH = Tag
Beschreibung: Liefert die FDOS Version zurück.
Beispielcode:
MOV AH, 3
INT 21h
MOV [Hauptversion], AL
Funktionsweise: Die Werte für die Version und das Datum werden
einfach nach einem bestimmten Muster in die
jeweiligen Rückgabe-Register geschrieben.
Das FDOS Betriebssystem
17
Bildschirm leeren (Clear Screen, CLS)
Eingabe:
Funktionsnummer (AH=) 4
Ausgabe:
Bildschirm
Beschreibung: Leert den Bildschirm und bewegt den Zeiger zum
Anfang.
Beispielcode:
MOV AH, 4
INT 21h
Funktionsweise: Eine BIOS Funktion wird aufgerufen, um den
Bildschirm zu leeren und den Text Zeiger wieder an
den Anfang zu setzten.
FDOS beenden
Eingabe:
Funktionsnummer (AH=) 5, AL = Modus
Ausgabe:
keine
Beschreibung: Je nach Modus wird FDOS beendet oder
neugestartet.
Beispielcode:
MOV AH, 5
MOV AL, 3
; Abschalten
INT 21h
Funktionsweise: Je nach Modus wird entweder ein BIOS Interrupt
aufgerufen, um das System einfach Neuzustarten.
Bei anderen Modi werden besondere Speicherstelle
geladen, die das Abschalten/Neustarten des
Rechners verursachen. APM fähige Rechner
können mittels Interrupt 15 ausgeschaltet werden.
Auf Tastendruck warten
Eingabe:
Funktionsnummer (AH=) 6
Ausgabe:
AL = Zeichen, CH = Scan Code
Beschreibung: Auf Tastendruck warten.
Beispielcode:
MOV AH, 6
INT 21h
Funktionsweise: Diese Funktion macht nichts anderes, als eine
ALIAS Funktion für die BIOS Funktion „Auf
Tastendruck warten“ zu sein.
Das FDOS Betriebssystem
18
WORD in BYTE umwandeln
Eingabe:
Funktionsnummer (AH=) 7, BX = Zahl (< 256)
Ausgabe:
BL = BYTE(BX)
Beschreibung: Wandelt eine in BX gespeicherte WORD Zahl in ein
Byte um.
Beispielcode:
MOV AH, 7
MOV BX, 233
INT 21h
Funktionsweise: Diese Funktion ist eigentlich unnötig. Für Benutzer,
die in Assembler noch nicht so ganz geübt sind
stellt sie jedoch eine besonders einfache
Möglichkeit dar Daten in andere Datentypen
umzuwandeln.
BYTE nach WORD
Eingabe:
Funktionsnummer (AH=) 8, BL= Zahl
Ausgabe:
BX
Beschreibung: Wandelt ein Byte in ein Word um.
Beispielcode:
MOV AH, 8
MOV BL, 233
INT 21h
Funktionsweise: Diese Funktion ist eigentlich unnötig. Für Benutzer,
die in Assembler noch nicht so ganz geübt sind
stellt sie jedoch eine besonders einfache
Möglichkeit dar Daten in andere Datentypen
umzuwandeln.
Das FDOS Betriebssystem
19
Datei einlesen und als Programm ausführen
Eingabe:
Funktionsnummer (AH=) 9, BX = Segment, DX =
Verweis auf Dateiname
Ausgabe:
keine
Beschreibung: Lädt die jeweilige Datei in die Speicherstelle BX
und führt das Programm aus.
Beispielcode:
MOV AH, 9
MOV DX, FileName
MOV BX, 4000h
INT 21h
Funktionsweise: Zunächst wird im aktuellen Verzeichnis nach der
Datei gesucht, wobei DX auf den Dateinamen zeigt.
Wurde er nicht gefunden bricht die Funktion ab und
gibt AL = 3 als Fehlermeldung zurück. Wird die
Datei dagegen gefunden wird der erste Cluster
ermittelt und geladen. Danach wird die FAT
geöffnet und der Eintrag des ersten Clusters stellt
den Verweis zum nächsten Cluster in der FAT dar.
Dieser Cluster wird wiederum eingelesen und der
FAT Eintrag stellt wiederum den nächsten Cluster
dar. Dies geschieht solange bis EOF (End of File)
gefunden wurde. Danach wird das Programm
ausgeführt.
Die Funktion 10 ist identisch mit der Funktion 6.
Zeichen ausgeben
Eingabe:
Funktionsnummer (AH=) 11, AL = ASCI Code
Ausgabe:
Bildschirm
Beschreibung: Gibt ein Zeichen auf dem Bildschirm aus
Beispielcode:
MOV AH, 9
MOV AL, ‘A‘
INT 21h
Funktionsweise: Diese Funktion macht nichts anderes, als eine
ALIAS Funktion für die BIOS Funktion „Zeichen
ausgeben“ zu sein.
Das FDOS Betriebssystem
20
WORD nach STRING
Eingabe:
Funktionsnummer (AH=) 12, BX = Zahl, DI = String
Variable
Ausgabe:
DI
Beschreibung: Konvertiert ein WORD in einen STRING
Beispielcode:
MOV AH, 12
MOV DI, Buffer
MOV BX, 1234
INT 21h
Funktionsweise: Das Prinzip ist es die jeweils vorne stehende Zahl
herauszufiltern und in ein ASCI Zeichen zu
verändern. Eine WORD Zahl kann dargestellt
maximal 5 Zeichen lag sein, d.h. zunächst wird die
Zahl durch 10.000 dividiert. Nun hat man in AX die
vorderste Zahl stehen. Der Rest dieser Division
wird dann gespeichert und durch 1.000 dividiert und
so weiter.
STRING nach WORD
Eingabe:
Funktionsnummer (AH=) 13, SI = EingabeString
Ausgabe:
BX (Zahl)
Beschreibung: Wandelt einen String in ein Word um.
Beispielcode:
MOV AH, 13
MOV SI, Buffer
INT 21h
Funktionsweise: Die Werte, die hinter SI liegen werden eingelesen
und addiert, wobei der zweite Wert = zweiter Wert x
10, der dritte Wert = dritter Wert x 100 und so
weiter ist.
Systeminformationen
Eingabe:
Funktionsnummer (AH=) 14
Ausgabe:
AX = konventioneller Speicher, BL (0 = Real Mode,
1 = Protected Mode), CX = Erweiterungsspeicher
Beschreibung: Gibt die Systeminformationen zurück
Beispielcode:
MOV AH, 14
INT 21h
MOV [MB_Ram], CX
Funktionsweise: Diese Funktion greift auf BIOS Daten zurück.
Das FDOS Betriebssystem
21
Prozessorinformationen
Eingabe:
Funktionsnummer (AH=) 15
Ausgabe:
AL (1 = Pentium, 2 = P Pro, P II, P Celeron, P 4, 3
= P 3, 4 = unbekannt)
Beschreibung: Gibt die Prozessorinformationen zurück
Beispielcode:
MOV AH, 15
INT 21h
MOV [CPU_Type], AL
Funktionsweise: Diese Funktion greift auf BIOS Daten zurück.
Kommandozeile
Eingabe:
Funktionsnummer (AH=) 16, DI = EingabeString
Ausgabe:
DI
Beschreibung: Gibt die Parameter der Kommandozeile zurück
Beispielcode:
MOV AH, 16
MVO DI, TestString
INT 21h
Funktionsweise: Der Kommandozeileninterpreter speichert bei jeden
Start eines neuen Programms die Parameter an
einer
besonderen
Speicherstelle
(siehe
Speichermanagement: Shell Variable). Diese
Funktion schreibt in den String, auf den DI zeigt den
Wert des Parameters.
FAT einlesen
Eingabe:
Ausgabe:
Beschreibung:
Beispielcode:
Funktionsnummer (AH=) 17, BX = Segment
BX
FAT einlesen
MOV AH, 17
MOV BX, 7000h
INT 21h
Funktionsweise: Anhand der Diskettendaten wird errechnet wo die
FAT liegt und dann mittels ReadSector eingelesen.
Das FDOS Betriebssystem
22
ROOT Dir einlesen
Eingabe:
Funktionsnummer (AH=) 18, BX = Segment
Ausgabe:
BX
Beschreibung: ROOT Dir einlesen
Beispielcode:
MOV AH, 18
MOV BX, 7000h
INT 21h
Funktionsweise: Anhand der Diskettendaten wird errechnet wo das
RootDir liegt und dann mittels ReadSector
eingelesen.
Datei einlesen
Eingabe:
Funktionsnummer (AH=) 20, BX = Segment, DX =
Dateiname
Ausgabe:
BX
Beschreibung: Datei einlesen
Beispielcode:
MOV AH, 20
MOV DX, [FileName
MOV BX, 7000h
INT 21h
Funktionsweise: Zunächst wird im aktuellen Verzeichnis nach der
Datei gesucht, wobei DX auf den Dateinamen zeigt.
Wurde er nicht gefunden bricht die Funktion ab und
gibt AL = 3 als Fehlermeldung zurück. Wird die
Datei dagegen gefunden wird der erste Cluster
ermittelt und geladen. Danach wird die FAT
geöffnet und der Eintrag des ersten Clusters stellt
den Verweis zum nächsten Cluster in der FAT dar.
Dieser Cluster wird wiederum eingelesen und der
FAT Eintrag stellt wiederum den nächsten Cluster
dar. Dies geschieht solange bis EOF (End of File)
gefunden wurde. Danach springt die Funktion
zurück.
Das FDOS Betriebssystem
23
String ausgeben mit fester Länge
Eingabe:
Funktionsnummer (AH=) 21, SI = String, CX =
Länge
Ausgabe:
Bildschirm
Beschreibung: String ausgeben mit fester Länge
Beispielcode:
MOV AH, 21
MOV CX, 300
MOV SI, [TestString]
INT 21h
Funktionsweise: Der String auf den SI zeigt wird solange
abgearbeitet, bis der interne Zähler den
übergebenen maximal Wert enthält.
Freier Speicher ermitteln
Eingabe:
Funktionsnummer (AH=) 22
Ausgabe:
ECX = Anzahl der freien Cluster, BX = Freier
Speicher in KB
Beschreibung: Freier Speicher ermitteln (der Diskette)
Beispielcode:
MOV AH, 22
INT 21h
Funktionsweise: Die FAT wird nach „0“-Einträge abgearbeitet und
deren Anzahl gespeichert. Nun hat man die Anzahl
der freien Cluster. Verrechnet mit der Clustergröße
und der Anzahl der freien Cluster erhält man den
freien Speicher in KB.
32 Bit Zahl in ASCI
Eingabe:
Funktionsnummer (AH=) 23, EBX = 32 Bit Zahl, DI
= Ausgabe String
Ausgabe:
DI
Beschreibung: Freier Speicher ermitteln (der Diskette)
Beispielcode:
MOV AH, 23
MOV DI, Buffer
MOV EBX, 100000
INT 21h
Funktionsweise: Siehe Word in ASCI
Das FDOS Betriebssystem
24
Neuen Prozess einfügen
Eingabe:
Funktionsnummer (AH=) 24, BX = Prozess Typ
(siehe Liste unten), DX = Star Adresse, DI = Größe
in Byte
Ausgabe:
Prozess Tabelle
Beschreibung: Fügt einen neuen Prozess in die Prozess Tabelle
ein
Werte für Prozess Typ:1: FDOS System, 2: FAT, 3:
Dir, 4: Dir Name, 5: Tastatur, 6: Kernel Variablen, 7:
Reserviert, 8: Shell Variable, 9: Shell Dir, 10:
Prozesssteuerung, 11: Applikation
Beispielcode:
MOV AH, 24
MOV DI, 1024
; Byte
MOV DX, 8000h
; Segment
MOV BX, 11
; Applikation
INT 21h
Funktionsweise: In der Prozesstabelle wird ein neuer Prozess mit
den übergebenen Daten gespeichert.
Prozess löschen
Eingabe:
Funktionsnummer (AH=) 25, BX = Prozess ID
Ausgabe:
Prozess Tabelle
Beschreibung: Löscht einen Prozess aus der Prozesstabelle
Beispielcode:
MOV AH, 25
MOV BX, 11
INT 21h
Funktionsweise: Die Prozesstabelle wird nach der ID aus BX
durchsucht. Wenn der Prozess gefunden wurde
wird er gelöscht.
Prozesstabelle leeren
Eingabe:
Funktionsnummer (AH=) 26
Ausgabe:
Prozess Tabelle
Beschreibung: Löscht alle Prozesse aus der Prozesstabelle
Beispielcode:
MOV AH, 26
INT 21h
Funktionsweise: Die Prozesstabelle wird komplett durch 0-en ersetzt
und ist damit für den Kernel gelöscht.
Das FDOS Betriebssystem
25
5.2 Literatur-, Hilfsmittel- und Quellenverzeichnis
Olejko, André: Assembler ASM 2.1, Demo-Software Packet, Stand
3. März 2002, http://assembler86.de, Das Software Packet liegt auf
der Diskette bei. Ich habe sowohl Codebeispiele aus dem Software
Packet entnommen, als auch die Hilfen (als Anwendungen im
Ordner “books” abgelegt) benutzt, Kommentare in meinem
Quelltext machen darauf aufmerksam, wenn Code aus dem
Software Packet entnommen wurde
Rohde, Joachim: Assembler GE-PACKT, 1. Auflage 2001, mitipVerlag Bonn; Diese Assembler Referenz diente mir als Hilfsmittel
Siegert, Prof. Dr. Hans-Jürgen und Baumgarten, Prof. Dr. Uwe:
Betriebssysteme: Eine Einführung, Technische Universität
München, 5. überarbeitete und erweiterte Auflage 2001,
Oldenbourg Verlag München Wien
Podschun, Trutz Eyke: Das Assembler-Buch: Grundlagen und
Hochsprachenoptimierung, 3. aktualisierte Auflage 1996, Reading,
Mass. [u.a.]: Addision Wesley 1996 (Addison-Wesley Publishing
Company), dieses ”Assembler-Buch” diente mir als Hilfsmittel
TecChannel: Der Bootmanager, © IDG Interactive 2001; Stand 3.
März 2002; http://www.tecchannel.de
Lee, Robert: LeeOS Web page, © Copyright 2002 by Robert Lee. All
rights reserved; http://leeos.cjb.net; LeeOS Operating System (die
Quellcodes des Systems liegen auf der Diskette und ein Download
ist möglich auf der Seite von LeeOS); LeeOS Forum
Microsoft: Microsoft® Encarta® 99 Enzyklopädie, © 1993-1998
Microsoft Corporation. Alle Rechte vorbehalten; sowie Microsoft
MS-DOS Benutzerhandbuch, (Benutzerhandbuch Microsoft MSDOS 6.22 - Für das MS-DOS Betriebssystem), © 1985-1994
Microsoft Corporation. Alle Rechte vorbehalten.
NASM (The Netwide Assembler): Version 0.98, Stand 3. März
2002, http://www.web-sites.co.uk/nasm (mit diesem Assembler, der
auf der Diskette beiliegt wurde das System entwickelt)
Gerken, Till: Protected Mode Tutorial, Version 0.02, Stand 10. März
2002,
http://www.nondot.org/sabre/os/files/ProtectedMode/PMTUT.txt
Das FDOS Betriebssystem
26
Brown, Ralf: Ralf Brown's Interrupt List, Indexed HTML Version Release 6, Stand 3. März 2002, http://www.ctyme.com/intr/int.htm
Schnupp, Dr. Peter: Standart-Betriebssysteme, 2. verbesserte
Auflage 1990, Oldenbourg Verlag München Wien
Lattner, Chris: The Operating System resource center (OSRC),
Copyright
©
1995-2001,
Stand
3.
März
2002,
http://www.nondot.org/sabre/os/articles
Schaefer, Thomas: WWW-Ecke mit Infos rund um den PC, Stand 3.
März
2002,
http://www.tuchemnitz.de/informatik/RA/kompendium/index.html
Ziemmermann, Marco: “Organisation der Diskette unter DOS”,
Stand
3.
März
2002,
http://www.tuchemnitz.de/informatik/RA/kompendium/vortraege_96/Floppy/disk4
.htm,
Marjamäki, Daniel: Daniels NASM Bootstrap Tutorial, Stand
14.08.2002
(Datum
auf
der
Seite
angegeben),
http://www.nondot.org/sabre/os/files/Booting/nasmBoot.html
Matthew Vea: All Copyright © 2001; Last Modified 21 August 2002;
FAT 12 Code http://www.geocities.com/mvea/bootstrap.htm
Simeon Maxein: Diverse Erklärungen zum FAT 12 System
5.3 Stichwortverzeichnis
A
Anwendungsprogramm Schnittstelle .................................................. 6
Anwendungsprogrammen .............................................................. 3, 4
API...................................................................................................... 6
API Dokumentation........................................................................... 19
API-Funktionen ................................................................................. 13
APM.................................................................................................. 14
Application Program Interfaces........................................................... 6
Arbeitsspeicher ......................................................................... 5, 8, 16
Assembler..................................................................... 3, 7, 15, 17, 18
Das FDOS Betriebssystem
27
Aufgabenmuster ................................................................................. 5
B
Basic Input/Output System ................................................................. 5
BeeOS ................................................................................................ 5
Befehle ............................................................................................... 6
Begriff des Betriebssystems ............................................................... 3
Benutzer ............................................................................................. 7
Benutzer Dokumentation .................................................................. 10
Benutzerumgebung ............................................................................ 6
Betriebssysteme ................................................................................. 3
BIOS ............................................................................................. 5, 14
Bootsektor .......................................................................................... 5
Bootsignatur ................................................................................... 6, 9
Bootvorgang ....................................................................................... 5
Bootvorgang einer bootfähigen Diskette ............................................. 5
Bugs ........................................................................................... 15, 17
C
C ..................................................................................................... 17
C++................................................................................................... 17
cd ..................................................................................................... 11
Central Processing Unit ...................................................................... 5
Cluster ................................................................................................ 9
Cluster-Kette....................................................................................... 9
CPU .................................................................................................... 5
D
Dateigröße .......................................................................................... 8
Dateiinhalt........................................................................................... 9
Dateinamen ........................................................................................ 8
Dateisystem .............................................................................. 6, 8, 11
Dateisystems .................................................................................... 16
Dateizuordnungstabelle ...................................................................... 8
Datenträger Label ............................................................................... 8
Debugger .......................................................................................... 15
Definition ............................................................................................ 4
deutsche Tastatur ............................................................................. 13
Diensten ............................................................................................. 4
DIN Norm 44300................................................................................. 4
dir ..................................................................................................... 11
Diskettenspezifische Eigenschaften ................................................... 6
Das FDOS Betriebssystem
24
DOS .................................................................................................. 16
E
einfache Betriebssysteme .................................................................. 3
Eingabeaufforderung .......................................................................... 9
Emm386 ........................................................................................... 17
EMS .................................................................................................. 17
Erweiterungen .................................................................................. 15
Erweiterungsspeicher ....................................................................... 17
exit .................................................................................................... 14
Expansionsspeicher ......................................................................... 17
EXT/2 ............................................................................................... 16
F
FAT ............................................................................................... 8, 16
FAT 12 .......................................................................................... 8, 16
FAT 16 .............................................................................................. 16
FAT 32 .............................................................................................. 16
FDOS ......................................................................... 7, 10, 11, 13, 14
Fehler ......................................................................................... 10, 17
Fehlern ............................................................................................. 15
Fenstertechnik .................................................................................. 17
Festplatte ............................................................................................ 5
File Allocation Table ..................................................................... 8, 16
Floppy Disk Operating System ........................................................... 7
Freien Speicherplatz ........................................................................... 9
Funktionsweise ................................................................................... 4
Funktionsweise eines Betriebssystems .............................................. 3
G
Geräte Treiber .................................................................................. 10
Grafische Benutzeroberfläche .......................................................... 17
grafischen Oberfläche ........................................................................ 4
Graphical User Interface ................................................................... 17
GUI ................................................................................................... 17
H
Hardware ............................................................................................ 5
Hardwareressourcen .......................................................................... 5
Hauptverzeichnis .......................................................................... 8, 11
Hello World ....................................................................................... 13
help................................................................................................... 10
Das FDOS Betriebssystem
25
Hilfe .................................................................................................. 10
Himen ............................................................................................... 17
Hindernisse und Probleme ............................................................... 15
Hochsprache .................................................................................... 17
I
INT 21h ............................................................................................... 9
Interrupt ........................................................................................ 9, 10
Interrupt 21h ............................................................................... 13, 14
Interrupt Return ................................................................................ 10
Interrupt Tabelle ................................................................................. 9
Interrupt Vektornummer ...................................................................... 9
Interrupts ............................................................................................ 6
IRET ................................................................................................. 10
K
Kalt- und Warmstart.......................................................................... 14
Kernel ........................................................................................... 6, 14
L
Leistungen .......................................................................................... 3
Linux ................................................................................................... 5
M
Mac-OS .............................................................................................. 5
MASM ................................................................................................. 7
MEM ................................................................................................. 12
Microsoft Windows 98 ........................................................................ 4
Microsoft Windows XP ........................................................................ 4
Mikroprogramm ................................................................................ 13
Mikroprogramme .............................................................................. 13
modernen Betriebssystemen .............................................................. 4
MS Windows..................................................................................... 16
MS-DOS ............................................................................................. 4
Multitasking....................................................................................... 17
N
NASM ..................................................................................... 7, 13, 15
NTFS ................................................................................................ 16
Das FDOS Betriebssystem
26
P
Parameter ................................................................................... 12, 13
Parametern ......................................................................................... 9
Pascal ............................................................................................... 17
Peripheriegeräte ................................................................................. 5
Protected Mode .................................................................................. 8
Prozesse .......................................................................................... 17
Prozessmanagement........................................................................ 11
Prozessor ........................................................................................... 5
Pseudotastaturtreiber ....................................................................... 10
Q
Quelltext ........................................................................................... 18
R
Real Mode .......................................................................................... 8
Rechenanlage .................................................................................... 4
Rechensystems .................................................................................. 4
Reflexion .......................................................................................... 15
Register ............................................................................................ 13
rrupt 21h ............................................................................................. 9
S
Schlusswort ...................................................................................... 17
Schnellstart ....................................................................................... 14
Schwerpunkt ....................................................................................... 3
Scriptsprachen Interpreter ................................................................ 12
Segment ........................................................................................... 14
Sektor ................................................................................................. 5
Shellbefehl ........................................................................................ 11
sis Ein- und Ausgabesystem .............................................................. 5
Speicher- und Prozessmanagement ................................................ 11
Speicherbelegung............................................................................. 12
Speicherstelle ................................................................................. 5, 9
Speichersystem ................................................................................ 11
STACK ............................................................................................... 8
Standart Betriebssysteme .................................................................. 4
StartCluster......................................................................................... 8
String ................................................................................................ 14
System beenden............................................................................... 14
Das FDOS Betriebssystem
27
T
TASM ................................................................................................. 7
Tastaturtreiber .................................................................................. 13
Tastendruck ...................................................................................... 14
Teilregister ........................................................................................ 15
Textausgabe ..................................................................................... 14
The Netwide Assembler Project ......................................................... 7
U
UI ................................................................................................... 6, 7
Unterverzeichnis ............................................................................... 11
User Interface ................................................................................. 6, 7
V
ver .................................................................................................... 10
Verzeichnis ....................................................................................... 11
Verzeichnisattribute ............................................................................ 8
Verzeichnisses ................................................................................... 8
W
Warmstart ......................................................................................... 14
Windows 2000 .................................................................................... 3
Windows NT ....................................................................................... 5
X
XMS .................................................................................................. 17
Das FDOS Betriebssystem
28
Herunterladen