ritschmanhard: Low level HDD Access in modernen Betriebssystemen

Hallo!

Ich weiss zwar nicht, ob ich mit dieser Frage hier richtig bin, aber ich wüsst' sonst auch nicht, wo fragen:
Also hier die Frage:
Zu DOS/Win 9x Zeiten war es so, dass meines Wissens der Festplattenzugriff stets über int 21h und/oder int 13h erfolgt ist, wobei auch der int 21h stets den int 13h aufgerufen hat.
Somit konnte über Patchen des int 13h der HDDzugriff "geändert" werden.
Und nun die Frage:
Arbeiten "moderne" Betriebssysteme, insbesondere XP und SuSe Linux 10 immer noch auf dem BIOS int 13h oder wird hier der Festplattenzugriff anders geregelt?

Viele Grüsse,
Richard

  1. Hallo Richard,

    Zu DOS/Win 9x Zeiten war es so, dass meines Wissens der Festplattenzugriff stets über int 21h und/oder int 13h erfolgt ist, wobei auch der int 21h stets den int 13h aufgerufen hat.

    richtig, wobei die int 21h-Funktionen den "offiziellen" Aufruf der Systemfunktion darstellen und in der Regel auf Dateisystemebene arbeiten, während der int 13h als BIOS-Funktion nur noch auf der Ebene von physikalischen Laufwerken und Sektoren arbeitet.
    Dazwischen gab's noch die DOS-Calls int 25h (Absolute Disk Read) und int 26h (Absolute Disk Write), mit denen man immerhin auf der Ebene logischer Laufwerke, aber immer noch sektorweise arbeiten konnte.

    Somit konnte über Patchen des int 13h der HDDzugriff "geändert" werden.

    Ja, z.B. softwaremäßig ein Schreibschutz für die HDD. ;-)

    Arbeiten "moderne" Betriebssysteme, insbesondere XP und SuSe Linux 10 immer noch auf dem BIOS int 13h oder wird hier der Festplattenzugriff anders geregelt?

    Nein, diese Systeme bringen ihre eigenen Treiber mit und sprechen die Hardware des HDD-Controllers direkt an. Das gilt übrigens auch für Win9x, wenn es nicht ausnahmsweise ein Laufwerk im sogenannten Kompatibilitätsmodus betreibt - dann benutzt Win9x auch die BIOS-Funktionen bzw. den DOS-Treiber zum Zugriff auf die Platte.

    So long,
     Martin

    --
    Wenn alle das täten, wass sie mich können,
    käme ich gar nicht mehr zum Sitzen.
    1. Hello,

      Nein, diese Systeme bringen ihre eigenen Treiber mit und sprechen die Hardware des HDD-Controllers direkt an. Das gilt übrigens auch für Win9x, wenn es nicht ausnahmsweise ein Laufwerk im sogenannten Kompatibilitätsmodus betreibt - dann benutzt Win9x auch die BIOS-Funktionen bzw. den DOS-Treiber zum Zugriff auf die Platte.

      Die DOSen stellen aber weiterhin ihr API über den Interrupt 21h zur Verfügung, nur das der Dispatcher inzwischen um etliche Nummern erweitert ist (z.B. lange Dateinamen).

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      1. Hallo Tom,

        diese Systeme bringen ihre eigenen Treiber mit und sprechen die Hardware des HDD-Controllers direkt an. Das gilt übrigens auch für Win9x, wenn es nicht ausnahmsweise ein Laufwerk im sogenannten Kompatibilitätsmodus betreibt - dann benutzt Win9x auch die BIOS-Funktionen bzw. den DOS-Treiber zum Zugriff auf die Platte.

        Die DOSen stellen aber weiterhin ihr API über den Interrupt 21h zur Verfügung, nur das der Dispatcher inzwischen um etliche Nummern erweitert ist (z.B. lange Dateinamen).

        das ist richtig - aber was willst du mir damit sagen?  .oO(?)

        Ja, sämtliche(!) Windowse stellen auch das int 21h-API noch zur Verfügung, auch wenn dessen Verwendung inzwischen (außer für Konsolen-Anwendungen) nicht mehr üblich und auch nicht empfohlen ist.
        Allerdings setzen diese Systeme die int 21h-Aufrufe intern auf die Funktionen ihrer eigenen Treiber um, soweit möglich (einige werden ignoriert, ein paar wenige führen zum gewaltsamen Tod der Applikation wegen einer "unerlaubten Operation", z.B. manche IOCTL-Funktionen).

        Schönen Tag noch,
         Martin

        --
        Funktion und Referenz auf diese sind mir bekannt, mit Zeigern kann ich nicht viel mehr anfangen, als damit auf Buttons zu klicken.
          (Ashura)