•  Back 
  •  Main 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : FreeMiNT für absolute Anfänger
Author      : Draco (draco@atari.org)
Version     : mint.stg (9/1/2001)
Subject     : MiNT
Nodes       : 73
Index Size  : 2258
HCP-Version : 3
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : 
@options    : -i -s +zz -t4 -d10
@width      : 75
View Ref-FileDas init-Programm

Es ist vielleicht nicht ganz offensichtlich, aber ein typisches
Betriebssystem besteht üblicherweise aus mindestens zwei verschiedenen
Teilen. Einer ist der Systemkernel, das ist meistens eine Bibliothek
von sehr grundlegenden Funktionen. Der andere ist eine Shell, die
tatsächliche Benutzerschnittstelle. Natürlich gibt es noch mehr Teile,
aber diese zwei sind die echten Eckpfeiler.

Obwohl beide in der Prozessliste als Prozesse erscheinen, ist nur
die Shell wirklich einer, weil der Kernel ja nie explizit zur
Ausführung gelangt. Sein Code wird nur ausgeführt, wenn ein anderer
Prozess eine Systemfunktion aufruft, um Systemdienste zu nutzen, die
der Kernel anbietet.

Bei FreeMiNT ist der Kernel das tatsächliche Systembinär (mint.prg).
Es kann nicht alleine laufen, da es keinerlei Code enthält, der als
Betriebssystem-Shell arbeiten könnte. Die Aufgabe von mint.prg ist,
die Maschine zu initialisieren und ihre Konfiguration für eine
Multitasking-Umgebung einzurichten, das grundlegende Environment zu
setzen, was zum Beispiel beinhaltet, die Speicherverwaltung zu
reinitialisieren und den Scheduler vorzubereiten, und schließlich
muß es noch eine Anzahl von Funktionen zu Verfügung stellen, die
Programme verwenden können, um die Ressourcen des Computers zu
verwalten. Nachdem all das erledigt ist, versucht der Kernel ein
externes Programm zu finden, zu laden und ihm die Kontrolle zu
übergeben, welches die weitere Initialisierung und (möglicherweise)
Verantwortung für die Interaktion mit dem Benutzer übernimmt. In
Unices wird so ein Program allgemein 'init' genannt.

 Es ist sehr wichtig, zu verstehen, daß das 'init' Programm,
 egal was es in Wirklichkeit ist, für die Funktionsfähigkeit des
 System absolut unverzichtbar und notwendig ist.

In einer MultiTOS-artigen Konfiguration des FreeMiNT, ist das
'init'-Programm GEM, oder, genauer gesagt, die Multitasking-AES. Das
GEM (AES) ist nicht Teil des FreeMiNT Kernelbinärs, und (aus
gesetzlichen Gründen) nicht einmal Teil der FreeMiNT-Distributionen.
Anders gesagt, um ein Multitasking-GEM zu benutzen, müssen Sie es sich
anderswo beschaffen.

 Weil das GEM nur eines von mehreren möglichen init Programmen ist,
 können Sie keine GEM-Applikation bei den INIT= or GEM=
 Schlüsselwörtern angeben, da zu diesem Zeitpunkt der
 Systeminitialisierung das GEM noch gar nicht aktiv ist!

Um das 'init'-Programm zu starten, müssen Sie seinen vollen Pfadnamen
in dem Schlüsselwort INIT= der Datei mint.cnf angeben. Ein Beispiel:

INIT=u:\c\multitos\init.prg

Wenn andererseits Ihr init-Programm GEM ist(wie oben beschrieben),
können Sie das GEM= Schlüsselwort benutzen, welches eine Instanz des
zuvor erwähnten INIT= Schlüsselworts, jedoch mit leicht abgewandelter
Bedeutung, ist. Dies ist kein Platz um technische Einzelheiten zu
erklären, jetzt müssen Sie nur wissen, daß Sie GEM= benutzen, falls
Ihr init-Programm GEM ist, und sonst INIT= . Beachten Sie, daß nur
eines der beiden Schlüsselwörter in einer mint.cnf Datei benutzt
werden kann!

 Der Pfadname, wie er in INIT= or GEM= übergeben wird, muß genau sein,
 und er muss auf eine gültige ausführbare Datei zeigen. Falls der
 Start des init-Programm fehlschlägt, hält der FreeMiNT-Kernel den
 Rechner an, und es bleibt Ihnen keine andere Wahl außer neu ins TOS
 zu booten, um die Konfiguration in Ordnung zu bringen.

Nach seinem Start übernimmt das init-Program (egal welches) die
Kontrolle über den weiteren Bootvorgang, wobei eigene
Konfigurationsdateien und/oder -skripte verwendet werden. Atari GEM
(die Multitasking-Versionen) und Geneva verwenden gem.cnf Dateien,
während das Un*x-artige init - bekannt als 'init.prg' oder auch nur
'init' - nach Shell-Skripten im Verzeichnis /etc (u:\etc) sucht. Daher
müssen Sie sich an die Dokumentation des init-Programmes Ihrer Wahl
halten, um herauszufinden wie Sie es am besten für Ihre Erfordernisse
und Gegebenheiten konfigurieren.