Tierisch groß - No Limits? (3)

Weiterhin gibt es Bewegung bei allem, was mit dem ATARI und SCSI-Peripherie zusammenhängt. Wenn auch nicht für jedes neue Gerät gleich ein neuer Treiber erforderlich ist, lassen sich gewisse Leistungsmerkmale oft nur mit angepaßten Treibern lösen. Dies ist beispielsweise bei den PD-Laufwerken der Fall, die gleichzeitig optisches Laufwerk und CD-ROM-Laufwerk sind.

Der sowohl eine Fest-oder Wechselplatte als auch ein CD-ROM-Laufwerk besitzt, weiß, daß jeder dieser Gerätetypen einen eigenen Treiber erfordert. Die Aufgaben dieser Treiber sind recht unterschiedlich. Der Festplattentreiber stellt in erster Linie Aufrufe zum Lesen und Schreiben von Sektoren bereit. Interpretiert werden diese Daten vom Treiber jedoch nicht, da das Betriebssystem „weiß", wie es die Sektorinhalte zu behandeln hat, damit sich das für den Benutzer gewohnte Bild aus Dateien und Ordnern ergibt. Daher liegt es auch nicht in der Hand des Festplattentreibers, Erweiterungen im Dateisystem zu realisieren, beispielsweise, um beliebig große PC-Partitionen ansprechen zu können. Hier schaffen ein alternatives GEMDOS wie BIGDOS oder MagiC 5 als alternatives Betriebssystem Abhilfe. Die Schnittstelle eines Festplattentreibers wird stets auf der BIOS-Systemebene realisiert.

Treiber für CD-ROMs dagegen müssen zusätzliche Aufgaben übernehmen, die mit dem Dateisystem auf einer CD Zusammenhängen. Die Struktur der Daten auf einem CD-ROM ist dem Betriebssystem nicht bekannt, so daß der CD-ROM-Treiber für die komplette Decodierung der Daten sorgen muß. Wie genau dies geschieht, hängt davon ab, welches Dateisystem sich auf einer CD befindet. Es genügt also nicht, daß ein Treiber für CD-ROMs lediglich das Lesen von Sektoren unterstützt. Der Treiber muß TOS die Informationen auf der CD in einer dem Betriebssystem genehmen Form zur Verfügung stellen. CD-ROM-Treiber erweitern das Betriebssystem auf GEM-DOS-Ebene.

Bild 1: Ist ein PD-Medium vorhanden, beträgt die Sektorgröße 512 Bytes.

Gespaltene Persönlichkeiten

Die Trennung zwischen den Treibern und den Systemschichten BIOS und GEMDOS läßt in der Regel eine konfliktlose Zusammenarbeit zwischen Treibern für Festplatten und CD-ROM-Laufwerken zu. Der eine Treiber kümmert sich um die Festplatte, der andere um das CD-ROM. Was aber, wenn ein Gerät Wechselplatte und CD-ROM-Laufwerk zugleich ist? Seit es PD-Laufwerke (Phasewriter, Phasenwechsel-Laufwerke) gibt [1], muß man sich diese Frage stellen. Solche Geräte melden sich im Mac-kompatiblen Modus (wird per Jumper eingestellt) unter ein und derselben SCSI-ID mal als optisches Laufwerk, mal als CD-ROM-Laufwerk. Dies hat Auswirkungen auf die Treiber-Software. Für die Verwaltung von Partitionen auf PD-Wechselmedien ist der Festplattentreiber zuständig. Enthält das PD-Laufwerk dagegen eine CD, muß sich der CD-ROM-Treiber um das Medium kümmern. Die Verteilung der Aufgaben ist eindeutig, aber für die Treiber ist diese Situation dennoch nicht trivial.

Dazu ein Beispiel: Der ATARI wird gebootet, während im Mac-kompatibel gejumperten PD-Laufwerk eine CD eingelegt ist.

Das PD-Laufwerk meldet sich deshalb bei jedem Treiber, auch beim Festplattentreiber, als CD-ROM-Laufwerk. Ein Festplattentreiber kann jedoch mit diesem Gerätetyp nichts anfangen und wird das PD-Laufwerk daher ignorieren. Tauscht man nun die CD gegen ein PD-Medium aus, fühlt sich für dieses Medium kein Treiber mehr zuständig. Woher auch soll der Festplattentreiber nach dem Booten wissen, daß plötzlich doch ein für ihn geeignetes Laufwerk vorhanden ist? Ignoriert der Festplattentreiber die CD beim Booten jedoch nicht und versucht, wie bei einer Fest- oder Wechselplatte einen Sektor von der CD zu lesen, kann dies je nach Treiber zu einem Absturz führen.

Dies hängt damit zusammen, daß die physikalische Sektorgröße bei einer CD nicht 512, sondern 2048 Bytes beträgt (Bild 1). Die meisten Festplattentreiber unterstützen jedoch nur Medien mit 512 Bytes pro Sektor, da dies bei Festplatten die Standardgröße ist (Bild 2). Nicht nur bei CDs weicht der Aufbau der Medien von diesem Wert ab. Medien für MODs können Sektoren mit 1024 Bytes pro Sektor aufweisen.

Der Spieß läßt sich auch umdrehen: Man boote ohne Medium oder mit eingelegtem PD-Medium. Nun bekommt der CD-ROM-Treiber Probleme. Das PD-Laufwerk meldet sich in diesem Fall nämlich als optisches Laufwerk, nicht aber als CD-ROM-Laufwerk. Daher kümmert sich der CD-ROM-Treiber nicht weiter um dieses Gerät. Ein Festplattentreiber dagegen, sofern er optische Laufwerke unterstützt, ist zufriedengestellt. Dies allerdings nur solange, bis das PD-Medium gegen eine CD ausgetauscht wird. Dann erhalten wir eine Situation wie bereits beschrieben.

Bild 2: Bei eingelegter Daten-CD umfaßt jeder Sektor 2048 Bytes.

In der Verantwortung des Treibers

Auch im PC-kompatiblen Modus weist ein PD-Laufwerk Besonderheiten auf. Hier meldet es sich nicht unter einer einzigen SCSI-ID mit variierendem Gerätetyp, sondern belegt zwei SCSI-Untereinheiten, sogenannte logische Einheiten (Logical Units, LUNs). Dabei wird ausgenutzt, daß der SCSI-Standard zwar insgesamt nur 8 SCSI-Controller an einem Bus zuläßt, jeder dieser Controller aber weitere 8 Geräte verwalten kann. Diese Möglichkeit wird nur selten genutzt, die PD-Laufwerke machen jedoch in der PC-kompatiblen Betriebsart Gebrauch davon.

Bild 3 verdeutlicht die Situation, wie sie sich einem Programm darstellt, das am SCSI-Bus einen Test aller vorhandenen Geräte durchführt. Das PD-Laufwerk meldet sich unter der SCSI-ID 2 gleich zweimal, einmal als optisches Laufwerk LUNO, einmal als CD-ROM-Laufwerk LUN1. Auch anhand der Abbildungen 1 und 2 läßt sich ersehen, daß sowohl LUNO als auch LUN1 vom PD-Laufwerk belegt werden. Die Verwendung von LUN1 ist übrigens kein wirkliches Novum für ATARI-Anwender. Wer jemals in einer Festplatte der ATARI SH-oder Megafile-Serie ein zweites Laufwerk eingebaut hat, hat bereits davon profitiert, daß ein Controller mehr als ein Gerät unter seine Fittiche nehmen kann.

Es ist also nicht ohne weiteres möglich, ein PD-Laufwerk gleichzeitig als Wechselplatte und als CD-ROM-Laufwerk einzusetzen. Vielmehr hängt es entscheidend vom Verhalten der Treiber ab, inwiefern dies möglich ist. Was den Festplattentreiber bei einem im Mac-kompatiblen Modus betriebenen Laufwerk angeht, sollte dieser Medien mit Sektorgrößen unterstützen, die vom Standardwert für Festplatten abweichen. Andernfalls ist ein Absturz beim Booten mit eingelegter CD möglich. (Zur Zeit akzeptiert lediglich HDDRIVER Sektoren mit beliebiger Größe.) Ferner darf der Festplattentreiber ein PD-Laufwerk im Mac-kompatiblen Modus nicht vollständig ignorieren. Er muß es auch dann als ein für ihn gültiges Gerät akzeptieren, wenn eine CD statt eines PD-Mediums eingelegt ist. Ähnlich sieht es für den CD-ROM-Treiber aus. Dieser muß sich auch dann für ein PD-Laufwerk verantwortlich fühlen, wenn sich beim Booten keine CD, sondern ein PD-Medium im Laufwerk befindet.

Im PC-kompatiblen Modus werden keine besonderen Anforderungen an den Festplattentreiber gestellt. Dieser findet das PD-Laufwerk als optisches Laufwerk unter der LUNO. Dafür muß in diesem Modus der CD-ROM-Treiber in der Lage sein, SCSI-Untereinheiten mit der logischen ID 1 (LUN1) anzusprechen, da sich das PD-Laufwerk unter dieser ID als CD-ROM-Laufwerk meldet.

Medium wechsle dich

Ein weiterer wichtiger Punkt kam bisher noch nicht zur Sprache: der Medienwechsel. Sind mehrere Treiber für dasselbe Laufwerk zuständig, muß bei einem Medienwechsel jeder Treiber eine Information über den Wechsel erhalten. Das Laufwerk meldet einen Wechsel im Mac-kompatiblen Modus jedoch nur genau einmal. Daher ist es erforderlich, daß sich alle Treiber untereinander verständigen, falls ein Medium ausgetauscht wurde. Geschieht dies nicht, können Datenverluste die Folge sein.

Auch hierzu ein Beispiel: Partition P: liegt auf einem PD-Medium und wird durch den Festplattentreiber verwaltet. Hinter Z: verbirgt sich ein Dateisystem auf einem CD-ROM. Beim Gerät, auf dem sich P: und Z: befinden, handelt es sich um ein PD-Laufwerk. (Je nach Typ des eingelegten Mediums ist natürlich nur ein Zugriff entweder auf Z: oder auf P: möglich.) Zunächst ist ein PD-Medium eingelegt, auf das der Festplattentreiber Zugriff hat. Dieses Medium wird nun gegen ein anderes PD-Medium ausgetauscht. Erfolgt der erste Zugriff auf das neue Medium nicht durch den Festplattentreiber, sondern durch den CD-ROM-Treiber, erhält nur dieser eine Information über den Medienwechsel. Dem Festplattentreiber bleibt der Wechsel verborgen, und beim nächsten Zugriff auf Partition P: geht er davon aus, daß noch das ursprüngliche Medium eingelegt ist. Datenverluste bei Schreibzugriffen sind die Folge.

Bild 3: Der Beweis: PD-Laufwerke führen ein "Zwitter-Dasein“.

Abhilfe durch XHDI 1.26

Für einen sicheren Betrieb ist es unter diesen Umständen erforderlich, daß sich Treiber, die für dasselbe Gerät zuständig sind, über den Wechsel von Medien informieren. Nur so lassen sich Datenverluste ausschließen. Treiber, die die XHDI-Spezifikation unterstützen, bieten ideale Voraussetzungen zur Problemlösung. Wie genau ein XHDI-kompatibler Treiber bei der Erkennung von Medienwechseln zu reagieren hat, beschreibt die neue Fassung 1.26 des XHDI-Standards, die in Kürze öffentlich verfügbar sein dürfte. Im wesentlichen ruft jeder zu XHDI 1.26 kompatible Treiber nach einem Medienwechsel die anderen XHDI-Treiber auf und informiert sie über die neue Situation. Der Medienwechsel kann so von jedem XHDI-kompatiblen Treiber erkannt werden. Dies alles bezieht sich selbstverständlich nicht nur auf PD-Laufwerke, sondern auf jede Systemkonfiguration, bei der ein Laufwerk von mehreren Treibern verwaltet wird.

Ungewöhnlich im Sinne der XHDI-Spezifikation in der bisherigen Form ist, daß nun nicht nur Festplattentreiber, sondern auch Treiber für CD-ROMs von XHDI berücksichtigt werden. Diese Treiber müssen allerdings nur ein Minimum an XHDI-Funktionalität bieten. Unterstützt werden muß lediglich der XHDI-Aufruf XHMediumChanged(), wie er auch schon in der bisherigen Fassung des XHDI-Standards zu finden war. Detaillierte Informationen zum XHDI-Standard finden sich im offiziellen XHDI-Archiv (s. u.).

Es soll noch einmal betont werden, daß die Problematik der Medienwechselerkennung nur im Mac-kompatiblen Modus der PD-Laufwerke existiert, nicht aber im PC-kompatiblen Modus. Dann nämlich wird für jede LUN eine eigene Medienwechselmeldung abgesetzt, so daß jeder Treiber direkt vom Laufwerk eine Information über den Medienwechsel erhält. Somit mag die PC-kompatible Betriebsart für den ATARI-Anwender die geeignetere sein. Dieser Modus läßt sich allerdings nur dann verwenden, wenn der CD-ROM-Treiber SCSI-Untereinheiten (LUN1) unterstützt. Andernfalls ist es unumgänglich, im Mac-kompatiblen Modus zu arbeiten.

ZIP-Laufwerke mit Parallel-Port

Nun aber weg von PD-Laufwerken und XHDI und hin zu anderen Themen, die in der letzten Zeit Probleme aufgeworfen haben.

Einige ATARI-Anwender spielen mit dem Gedanken, nicht die SCSI-Version der IOMEGA-ZIP-Laufwerke am ATARI zu betreiben, sondern die speziell für IBM-kompatible PCs entwickelte Variante mit Anschluß an den Parallel-Port. Der Hintergrund ist meist der, daß bereits ein PC mit diesem Laufwerk vorhanden ist und man das ZIP auch am ATARI einsetzen will.

Dazu ist zu sagen, daß dieses Vorhaben zum Scheitern verurteilt ist. Die Hardware des ATARI erlaubt den Anschluß des „Parallel-ZIPs“ nicht. Es fehlen einige Steuersignale am Parallel-Port des ATARI. Selbst wenn sich dieses Hardware-Problem lösen ließe, wäre man kaum einen Schritt weiter, da Treiber für ein ZIP-Laufwerk am Parallel-Port für den ATARI nicht zu erwarten wären. Schließlich läßt sich am ATARI die deutlich schnellere (ca. 6mal) SCSI-Version des ZIP ohne Hardware-Eingriffe betreiben, so daß eine andere, weniger leistungsfähige Lösung keinen Sinn macht. Wer ein ZIP-Laufwerk an einem ATARI und einem PC betreiben will, kann dies leicht dadurch realisieren, daß er zu einem SCSI-ZIP greift und auf der PC-Seite einen SCSI-Adapter zur Ansteuerung verwendet. In diesem Fall sind keine Schwierigkeiten zu erwarten, und man kann sich sicher sein, das SCSI-Laufwerk für eine beliebige Plattform, u.a. auch für Apple oder Unix-Work-stations, nutzen zu können.

Die ZIP-Laufwerke sind ein gutes Beispiel dafür, welche Probleme man sich einhandelt, wenn man zu einer Speziallösung(Parallel-Port) statt zu einer Standardlösung (SCSI) greift: Man verliert Kompatibilität und muß mit Folgekosten (z.B. durch ein zusätzliches Laufwerk) rechnen, um das zu erreichen, was die Standardlösung von vornherein geboten hätte. Einen Preisvorteil gegenüber der SCSI-Ausführung besitzt die parallele Variante des ZIP ohnehin nicht.

Warnung vor AHDI

Abschließend noch ein wichtiger Hinweis zum Festplattentreiber AHDI. Daß AHDI nicht mehr auf dem Stand der Technik ist, darf nicht verwundern. Schließlich stammt die letzte Version AHDI 6.061 aus dem Jahre 1993. Inzwischen hat es auf dem SCSI-Sektor eine Reihe von Neuerungen gegeben und manche Platten werden von AHDI gar nicht erst erkannt. Aber selbst bei SCSI-Festplatten, mit denen AHDI scheinbar klarkommt, kann es zu gefährlichen Situationen kommen. Dies ist genau dann der Fall, wenn eine SCSI-Platte eine Kapazität von mehr als einem GByte aufweist. Daß solche Platten einmal zum Standard werden könnten, wurde bei der Entwicklung von AHDI offenbar nicht in Betracht gezogen. Daher fehlen AHDI geeignete Routinen, um die Sektoren einer Platte anzusprechen, die oberhalb der 1-GByte-Grenze liegen. Dies gilt nicht nur für Platten, die am ACSI-Bus eines ST betrieben werden, sondern auch für den SCSI-Bus von TT und Falcon.

Dieses Manko ist nicht nur bedauerlich, sondern kann sogar zu Datenverlusten führen. Das Ansprechen hoher Sektornummern durch AHDI führt in den meisten Fällen lediglich dazu, daß der Zugriff mit einer Fehlermeldung verweigert wird. Je nach Hardware-Konfiguration ist es jedoch auch möglich, daß ohne irgendeine Fehlermeldung die falschen Sektoren auf der falschen Platte angesprochen werden. Ein Schreibzugriff auf den ersten Sektor oberhalb der 1-GByte-Grenze resultiert dann beispielsweise in einem Zugriff auf den Root-Sektor einer anderen Platte. Der Root-Sektor enthält wichtige Informationen über die Partitionierung. Schwerwiegende Datenverluste sind also nicht auszuschließen, wenn AHDI als Treiber für große SCSI-Platten verwendet wird. Für den Anwender bedeutet dies, bei solchen Platten unbedingt auf einen modernen Treiber auszuweichen, beispielsweise auf HuSHI, CBHD oder HDDRIVER. Die beiden letztgenannten Treiber unterstützen übrigens große SCSI-Platten in Verbindung mit ICD-kompatiblen Host-Adaptern (ICD Link, LINK II, LINK96) auch am ACSI-Bus des ST. Ohne geeigneten Adapter und Treiber ist hier die maximale Plattenkapazität durch die ST-Hardware auf ein GByte beschränkt.

Literatur:

[1] Christian Möller, „Phasenwechsel“, ST Computer 3/96

Software (sobald verfügbar):

Maus MS2: XHDI126.Z00 ftp://acp5.Chemie.uni-kl.de/pub/atari/xhdi-126.zoo


Uwe Seimet
Aus: ST-Computer 09 / 1996, Seite 28

Links

Copyright-Bestimmungen: siehe Über diese Seite