Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   io.sys (https://www.delphipraxis.net/26782-io-sys.html)

Borti 29. Jul 2004 12:36


io.sys
 
Hallo!
ich bin grad über die Datei io.sys gestolpert. Soweit ich dem netz entnehmen konnte kann diese Datei direkt hardwarkomponenten ansprechen. ist das korrekt? Und wenn ja, wie steuer ich diese Datei dann mit Delphi an?
Gruß,
Borti

neolithos 29. Jul 2004 12:42

Re: io.sys
 
Tut mir leid das sagen zu müssen -> Garnicht!

Denn diese Datei wird soweit ich weis im WinNT nicht mehr benötigt.
Bei Win9x war sie auch nur noch wegen der abwärtskompatiblität dabei.

Direkt HW ansprechen kann man nur über Treiber.
Treiber und Delphi, das Thema hatte wir schon zur genüge. -> Grenzen von Delphi

Hansa 29. Jul 2004 12:51

Re: io.sys
 
Das kommt noch aus alten DOS-Zeiten. Du brauchtest nur die COMMAND.COM, die IO.SYS und die MSDOS.SYS, um ein bootfähiges Sytem zu haben. Warum willst du die ansprechen ?

Borti 30. Jul 2004 17:26

Re: io.sys
 
Wenn du meine Tätigkeiten im Forum dir anschaust, wirst du feststellen, dass ich versuch den LPT-Port anzusprechen.
Ich hab's schon mit einem Treiber geschafft, wollt aber noch nach anderen Möglichkeiten schauen.
Gruß,
Borti

scp 30. Jul 2004 17:59

Re: io.sys
 
Zitat:

Zitat von neolithos
Bei Win9x war sie auch nur noch wegen der abwärtskompatiblität dabei.

Sicher? Lösch mal die IO.SYS in einem 9x-System und starte den Rechner neu -> nichts geht mehr. 9x basiert noch auf MS-DOS und da gehört die IO.SYS eben zum "Kern".

PS: Die io.sys ist übrigens in WinXP 0 Byte gross, was da wohl drin sein mag :)

Hansa 30. Jul 2004 18:24

Re: io.sys
 
Zitat:

Zitat von scp
..Sicher? Lösch mal die IO.SYS in einem 9x-System und starte den Rechner neu -> nichts geht mehr. 9x basiert noch auf MS-DOS und da gehört die IO.SYS eben zum "Kern".

9X basiert nicht auf MS-DOS. Aber vielleicht wurde die Datei nicht umbenannt, wie CONFIG.NT anstatt CONFIG.SYS. WIN9X wird von mir nicht mehr unterstützt. 8) Nur noch W2000 oder XP.

Alter Mann 30. Jul 2004 18:37

Re: io.sys
 
???

IO.SYS stellt die grundlegenden Bearbeitungsroutinen von MS-DOS zur Verfügung. Das Heißt wenn der Rechner bootet, schaut das
BIOS nach ob eine Festplatte eingetragen ist(oder Versucht eine zu finden). Ist eine gefunden wird der MBR in den Speicher
geladen. Da dieser mit einer Sprungadresse anfängt(dort ist vermerkt welche Datei ausgeführt werden soll), lädt es das Prog
und führt es aus. Unter MS-DOS bis Win9x ist es die IO.SYS, unter NT die ntldr. Es gibt aber IBM.SYS (Dr.DOS, Caldera DOS, Novell-DOS). Die Aufgaben von IO.SYS ist es zuprüfen ob es eine Config.sys/Autoexec.bat gibt und die enthaltenen Befehle mit den
Commandointerpreter abzuarbeiten. Mehr nicht!

Um den LPT anzusprechen, reichen auch die BIOS-Routinen, was anderes nutzt IO.SYS auch nicht.

Gruss

Alter Mann

scp 31. Jul 2004 01:03

Re: io.sys
 
Zitat:

Zitat von Hansa
Zitat:

Zitat von scp
..Sicher? Lösch mal die IO.SYS in einem 9x-System und starte den Rechner neu -> nichts geht mehr. 9x basiert noch auf MS-DOS und da gehört die IO.SYS eben zum "Kern".

9X basiert nicht auf MS-DOS. Aber vielleicht wurde die Datei nicht umbenannt, wie CONFIG.NT anstatt CONFIG.SYS. WIN9X wird von mir nicht mehr unterstützt. 8) Nur noch W2000 oder XP.

Ich sags mal so: Ohne MS-DOS (das integrierte) kannst du kein Win9x laden. Die IO.SYS von Win9x ist zwar um einiges erweitert, entspricht aber in etwa dem, was die IO.SYS in MS-DOS 6.x usw. ausmachte. Schliesslich kannst du ja auch in Win9x eine MS-DOS-Bootdiskette erstellen, welche diesselbe IO.SYS enthält, wie sie beim booten von Win9x verwendet wird (bei WinMe weicht sie geringfügig ab, hier wurde erfolglos versucht, DOS zu verstecken).
Mit Kompatiblität hat das nur insofern zutun, das man sich damals noch nicht entschliessen konnte/wollte komplett auf das NT-System umzusteigen.
Wenn Windows erst mal fertig geladen ist hat das natürlich nicht mehr viel mit MS-DOS zu tun, da hast du recht.

Borti 31. Jul 2004 13:11

Re: io.sys
 
Zitat:

Um den LPT anzusprechen, reichen auch die BIOS-Routinen, was anderes nutzt IO.SYS auch nicht.
Was ist damit gemeint? wie sehen diese Bios-Routinen aus?

Alter Mann 1. Aug 2004 11:17

Re: io.sys
 
Hi Borti,

gemeint ist Int $17 mit den Funktionen
$00 - Zeichen parallel ausgeben,
$01 - Initialisierung und
$02 - Parallelen Schnittstellenstatus ermitteln.

Delphi-Quellcode:
type
    registers = record
                  case boolean of
                   true: (ax,bx,cx,dx,bp,si,di,ds,es,flags:Integer);
                   false:(al,ah,bl,bh,cl,ch,dl,dh:byte;
                end;

var
   cpu   : regsiters;
   status : byte;

procedure Init_Drucker(Drucker:Integer);
begin
  cpu.ah := 1;
  cpu.dx := Drucker;
  Intr($17, cpu);
  Status := cpu.ah;
end;

(aus: PC Profibuch - Sybex Verlag 8. Auflage 1991 - ISBN: 3-88745-836-2)
Gruss

Alter Mann

sakura 1. Aug 2004 11:49

Re: io.sys
 
Zitat:

Zitat von Hansa
9X basiert nicht auf MS-DOS. Aber vielleicht wurde die Datei nicht umbenannt, wie CONFIG.NT anstatt CONFIG.SYS. WIN9X wird von mir nicht mehr unterstützt. 8) Nur noch W2000 oder XP.

Der ist mir neu, selbst Microsoft würde bei Deiner Aussage stutzen ;) Im Ernst, Du brauchst kein MS-DOS installiert zu haben um Win9X zu installieren, aber dafür erledigen die 9Xer Versionen dieses im Hintergrund.

Das damit ausgelieferte DOS ist voll fünktionsfähig und man den Rechner sogar ohne Windows zu laden starten. Also ist es wohl doch MS-DOS, welches Win 9X zum laufen bringt :zwinker:

...:cat:...

Hansa 1. Aug 2004 11:58

Re: io.sys
 
Zitat:

Zitat von sakura
...Im Ernst, Du brauchst kein MS-DOS installiert zu haben um Win9X zu installieren, aber dafür erledigen die 9Xer Versionen dieses im Hintergrund.

Sakura. :shock: Schon mal versucht eine Platte > 2 GB mit MS-DOS zu formatieren ? Oder mit Win >= 95 ? Was sagt uns das ? :mrgreen:

sakura 1. Aug 2004 12:03

Re: io.sys
 
Zitat:

Zitat von Hansa
Sakura. :shock: Schon mal versucht eine Platte > 2 GB mit MS-DOS zu formatieren ? Oder mit Win >= 95 ? Was sagt uns das ? :mrgreen:

Worauf willst Du hinaus :gruebel: Das die DOS-Versionen von Win 9X weiterentwickelter sind als die von Win3.X, ist doch logisch, oder? Win98 hatte sogar die FAT32 in DOS integriert :zwinker:

...:cat:...

Hansa 1. Aug 2004 12:13

Re: io.sys
 
Ich will darauf hinaus, ob 16 Bit oder 32 Bit Betriebssystem. Mit 16 Bit lassen sich eben Festplatten von 20 GB nicht mehr ohne Umwege adressieren/ansprechen. Win < 95 war eine Benutzeroberfläche (3.11 usw.) mit dem Betriebssystem MS-DOS. Win >= 95 ist selber ein Betriebssystem, braucht deshalb nicht noch eines und hat deshalb mit MS-DOS nichts mehr zu tun. Seit dieser Zeit gibt es allerdings ein Zusatzprogramm namens "MS-DOS Eingabeaufforderung", welches es ermöglicht in einer Emulation, Dos Programme ablaufen zu lassen. Genau diese Zukunft steht auch den jetzigen WinApi-Programmen bevor.

Microsoft wäre übrigens heilfroh, wenn es möglich gewesen wäre, das Wort "MS-DOS" ersatzlos zu streichen.

scp 1. Aug 2004 13:35

Re: io.sys
 
Zitat:

Zitat von Hansa
Seit dieser Zeit gibt es allerdings ein Zusatzprogramm namens "MS-DOS Eingabeaufforderung", welches es ermöglicht in einer Emulation, Dos Programme ablaufen zu lassen.

Das ist klar, wenn Windows erst mal geladen ist, muss emuliert werden um keine Konflikte hervorzurufen.
Bei 95/98/Me war dies allerdings nicht komplett emuliert wie es bei NT/2000/XP der Fall ist. Dies erkennt man daran, das hier noch die "echte" COMMAND.COM, also eine DOS-Executable aufgerufen wird, während es bei NT-Systemen eine gefakte COMMAND.COM bzw. die CMD.EXE ist, eine 32bit-Windows-Executable, die noch zusätzliche Binaries verwendet (NTDOS.SYS usw.).

PS: Auch unter DOS ist ein 32bit Betrieb möglich, er ist halt nur nicht direkt in den "Kernel" integriert.

sakura 1. Aug 2004 13:43

Re: io.sys
 
Zitat:

Zitat von Hansa
Seit dieser Zeit gibt es allerdings ein Zusatzprogramm namens "MS-DOS Eingabeaufforderung", welches es ermöglicht in einer Emulation, Dos Programme ablaufen zu lassen. Genau diese Zukunft steht auch den jetzigen WinApi-Programmen bevor.

Wie scp schon schrieb, das ist so nicht ganz korrekt. Das CMD-Zusatzprogramm gibt es erst seit NT.

Unter 9X war es noch das echte DOS, welchem lediglich die Kontrolle übergeben wurde :mrgreen:

...:cat:...

Borti 3. Aug 2004 19:11

Re: io.sys
 
Um noch mal auf den Code von "Alter Mann" zurück zu kommen:
Könnt ihr mir den noch mal genauer erläutern? (Ich versteh nur Bahnhof)
Gruß,
Borti

Hansa 3. Aug 2004 19:28

Re: io.sys
 
Was willst du nur mit der IO.SYS ? Was "Alter Mann" :shock: meint, ist direkt auf die Register des Prozessors zuzugreifen. Aber dafür ist ein Betriebssystem doch da. Was rechnest du dir denn damit für Vorteile aus ? Brauchst du einen neuen Rechner oder wie ? 8)

Da ist ja noch was von Sakura : :zwinker:

Zitat:

Zitat von sakura
...Unter 9X war es noch das echte DOS, welchem lediglich die Kontrolle übergeben wurde :mrgreen:

...:cat:...

:cat: sind anscheinend ungläubig. :drunken: Der Schnitt kam mit Win95. Vorher ließ sich ein Rechner nicht ohne DOS hochfahren. Formatiere mal eine Diskette mit DOS. Aber nicht mit der Win-Eingabeaufforderung und versuche einen >=Win95 - Rechner damit hochzufahren. Auf der NT-Schiene kam dann noch das NTFS dazu. Damit war DOS dann komplett eliminiert und wurde immer mehr versteckt. Die Fat32 alleine ist nun mal KEIN Betriebssystem. :bouncing4:

Stop, anders rum ist es besser. Versuche mal ein ab D3 Programm unter Dos zu starten. :mrgreen:

NicoDE 3. Aug 2004 20:01

Re: io.sys
 
Zitat:

Zitat von sakura
Unter 9X war es noch das echte DOS, welchem lediglich die Kontrolle übergeben wurde :mrgreen:

Der Kernel von Win9x beteht aus einer netten Mischung von 16-Bit und 32-Bit Komponenten. Insofern gibt's da nichts zu Übergeben :)
Die "Dos-Emulation" ist ein eigener Modus (Virtual Real Mode) des Prozessors (wie auch der Real Mode und der Protected Mode).
Unter Windows NT kann die Virtual DOS Machine (VDM) mittels eigener Virtual Device Driver (VDD) erweitert werden (so wie zum Beispiel VDMSound eine komplett in Software implementierte Soundkarte für die VDM bereitstellt...).

Gruss Nico

topic: man kann die Hardware nur über die vorhandenen Schnitstellen (oder sich selbst eine schaffen - Treiber) ansprechen - alles andere sind böse Hacks, die letztendlich nur das Betriebssystem umgehen und nur für Ärger sorgen...

scp 3. Aug 2004 20:09

Re: io.sys
 
Zitat:

Zitat von Hansa
:cat: sind anscheinend ungläubig. :drunken: ....

Hanseaten (?) anscheinend auch. :-D
Nein, im Ernst wird drehen uns so langsam im Kreis. Les nochmal genau, was geschrieben wurde.
Es hat keiner behauptet, das Win9x mit jedem beliebigen DOS gestartet werden kann. Das liegt daran, weil Microsoft in sein DOS wie beim Sprung von DOS 3.3 zu DOS 5.0 auch beim Sprung zu DOS 7.x (Win95/98 DOS) sehr viele Neuerungen eingebaut haben. Diese Neuerungen sind für Win9x absolut erforderlich, DOS-Versionen anderer Hersteller haben diese aber nicht integriert.
DOS wird also seit Windows 95 bis hin zu Me immer mitgeliefert. Entfernt man hingegen den DOS-Teil von seiner Installation (IO.SYS, COMMAND.COM usw.) gibt es keine Chance, Win9x zu starten.

Vergleich es doch mal mit Linux: Dort wird der Kernel und die Oberfläche auch in einem Paket "ausgeliefert". Würde jetzt zum Beispiel ein Betriebssystem namens "KDE 2006" herauskommen, wäre Linux trotzdem noch als Unterbau vorhanden. Du könntest dann halt trotzdem kein "KDE 2006" mit einem 2.0 Kernel starten, weil die benötigten Neuerungen fehlen.

Hansa 3. Aug 2004 20:24

Re: io.sys
 
Nun gut, du hast es so gewollt. 8) Habe hier noch alte Platte mit Win98 rumliegen. Da lösche ich die 3 wichtigen Dos-Dateien. Egal was passiert und ich auch nur Inlands-Hanseat bin (mit Daniel kann ich nicht mithalten 8) ). Die Platte wird danach sowieso versenkt. Nur eben in der Saar und nicht in der Elbe. :mrgreen:

P.S.: da ist ja noch NicoDEs Beitrag. 8) Jo, da war doch was mit Real und Protected und DOS-Modus :gruebel:

Muetze1 3. Aug 2004 23:52

Re: io.sys
 
Moin!

Mein Gott habt ihr euch darüber ausgelassen. Ich will dazu auch noch meinen Senf dazugeben:

Grundlegend ist es möglich bis Windows 95 auch ein anderes DOS als Untersatz für das Windows zu nutzen. Bei dem DOS 7 zu Windows 95 waren schon die "Chicago" Erweiterungen mit enthalten die dafür sorgten, das der DOS Kommandoprompt bei vorhandenem Handler auch die langen Dateinamen konnte (die "Chicago" getaufte Erweiterung). (Für die Sache mit dem anderen DOS gibt es übrigens mehrere Anleitungen im Internet - und nein, leider muss ich sie erstmal euch schuldig bleiben - klingt doof, ist aber so).

Dann ist es so, das eher das DOS von dem Windows abhängt. Viele DOS Funktionen rufen über einen illegalen Opcode den PM Handler in Windows auf um somit über folgenden Code und Registerinhalte Funktionen aus einem 16 Bit Code in einem 32 Bit Code Teile auszuführen (siehe die VDM Calls in DOS).

Microsoft versucht doch schon seit Jahren seine Vorherrschaft zu festigen und auszubauen. Gutes Beispiel ist dazu doch auch vor allem der "AARD" Code im damaligen Windows 3.0 bzw. 3.1 (darin standardmässig disabled) der fehl schlug bei nicht echten MS DOS Versionen (um u.a. DR-DOS auszubooten).

Grundlegendes: Ich kann euch die Bücher "DOS Internals", "undocumented DOS" und weitere aus der Andrew Schulmann Serie ans Herz legen. Lest die, und dann braucht ihr solche Diskussionen nicht mehr zu führen...

Es gab noch mehr Punkte aus eurer Diskussion, aber die lasse ich, da ich schon wieder viel zu Offtopic wurde. Ansonsten Bitte an die Moderatoren: Abspalten...

MfG
Muetze1

Borti 5. Aug 2004 10:36

Re: io.sys
 
Zitat:

Was willst du nur mit der IO.SYS ? Was "Alter Mann" meint, ist direkt auf die Register des Prozessors zuzugreifen. Aber dafür ist ein Betriebssystem doch da.
Grad dieser direkte Hardware-Zugriff auf den CPU interessiert mich.
Zitat:

Brauchst du einen neuen Rechner oder wie ?
Soll das heißen, dass ich mit dem Code, wenn ich mich dumm anstelle, meinen PC schrotten kann?
Gruß,
Borti


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz