Diskussion:OS-Dev für Einsteiger — Änderungen 9692 → 9694

Zeile 155: Zeile 155:
 
:Ich sehe da rein gar keinen Geschwindigkeitsnachteil zu deinem handoptimierten Assembler. Im Gegenteil, der gcc spart sich sogar den Funktionsaufruf und macht alles über Register.
 
:Ich sehe da rein gar keinen Geschwindigkeitsnachteil zu deinem handoptimierten Assembler. Im Gegenteil, der gcc spart sich sogar den Funktionsaufruf und macht alles über Register.
 
:Zu dem OS-Kommentar sag ich einfach mal nichts, das ist wirklich Geschmackssache. Und wenn vielleicht irgendwann alle Rechner mit ARM laufen, braucht man IN und OUT ja sowieso nicht mehr (braucht man bei moderner Hardware außerdem überhaupt kaum noch, vielleicht mal zum Initialisieren, aber die ganzen Datenstrukturen liegen im Speicher und werden mit PCI-DMA abgearbeitet). —[[Benutzer:XanClic|Clici McXan]] 12:10, 20. Apr. 2011 (CEST)
 
:Zu dem OS-Kommentar sag ich einfach mal nichts, das ist wirklich Geschmackssache. Und wenn vielleicht irgendwann alle Rechner mit ARM laufen, braucht man IN und OUT ja sowieso nicht mehr (braucht man bei moderner Hardware außerdem überhaupt kaum noch, vielleicht mal zum Initialisieren, aber die ganzen Datenstrukturen liegen im Speicher und werden mit PCI-DMA abgearbeitet). —[[Benutzer:XanClic|Clici McXan]] 12:10, 20. Apr. 2011 (CEST)
 +
 +
Nur weil es bei einer Diskussion rauskommt, heist das noch lange nicht, dass Assembler tatsächlich fehleranfällig ist. In erster Linie hängt das einmal davon ab wie gut jamand eine Programmiersprache kann, und wie Gewissenhaft man Programmiert. Es ist aber auffällig, das moderne Software (die meistens in Hochsprachen geschrieben sind) häufiger Bugfixes und und "Service-Packs" benötigen, wärend ältere Assembler-Programme in der Regel einfach funktionieren. Um bei Betriebssystemen zu bleiben MS-DOS 5.0 ist z.b. von wesentlich höherer Qualität als Windows XP.
 +
Was das C-Beispiel angeht, muss ich zugeben, das der GNU-C-Compiler das deutlich besser löst, als mein 80er Jahre Turbo-C-Compiler (bei dem Outportb tatsächlich eine Bibliotheksfunktion ist). (Wobei trotzdem noch die Frage bleibt, wieso im ersten Beispiel EAX statt AL genommen wird.)
 +
Dann bleibt natürlich die Frage, wieso in einem '''Lowlevel'''-Wiki so viel '''Highlevel''' Programmiersprachen benutzt werden ? Es erweckt eher den Eindruck, als ob es hier überwiegend um in C geschriebene Unixoide Bertriebssystem geht.
 +
Damit das Betriebssysteme Geschmackssache sind, hast du vollkommen recht, dann stellt sich aber die Frage, warum einige Artikel so übertrieben abfällig über DOS sind, und laut diesem Artikel UNIX-kenntnisse zur Lowlevel Programmierung nötig sind ? (Was übrigens auch weiter oben auf dieser Seite erwähnt wird). Es gibt schlieslich noch andere Betriebssysteme. Das ist eigentlich auch - wie man bei Wikipedia sagt - ''Point of View''.
 +
Nebenbei werden der PCI- (Ports 0CF8h-0CFFh) und der DMA- (Ports 00h-0Fh) Controller eben mit den Befehlen IN und OUT gesteuert. [[Benutzer:IO.SYS|IO.SYS]] 21:32, 20. Apr. 2011 (CEST)