Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#22

Re: Eigenes Betriebssystem schreiben ?

  Alt 14. Jan 2004, 19:27
@dizzy: Mag sein, daß die 99% ein wenig übertrieben sind (60%-80%, wenn Inline-Assembler mitzählt und man nur das zum OS zählt, was wirklich benötigt wird) und daß eine GUI nicht zum OS gehört, aber sämtliche Strukturen kann man in C oder Pascal schreiben. Scheduling z.B. Den Timer programmiert man mit Assembler (sind ein paar Zeilen an INs und OUTs und ein bisschen Eumgeschiebe), den Handler an sich in C oder Pascal. Alles, was z.B. an einem Scheduler in Assembler sein muss, ist das eigentliche Ausführen der Aktion, also Taskstatussegment aktualisieren, coderegister aktualisieren, LDT austauschen, usw. Der eigentliche Algorithmus kann durchaus in C geschrieben sein, und die Algorithmen und Strukturen, die dahinter stecken, sind teilweise viel bequemer in einer Hochsprache geschrieben.
Der benötigte Anteil an Assembler wird meist überschätzt, obwohl man sogar den Videospeicher im RealMode in C ansprechen kann, wenn man einen entsprechenden Compiler hat der 16bit-Code erzeugt.


@mwiesbau: Linux erweitern um ein Betriebssystem zu programmieren?
Ich weiß ja nicht, ob du sowas schonmal gemacht hast, aber bevor ich mich du ein so komplexes System wie das weit vorgeschrittene Linux mache, schreib ich mir eher ein Betriebssystem selbst...
Außerdem ist alles, was man so braucht, schon sehr lange in Linux enthalten. Alles, was sich lohnen würde, wären irgendwelche Spezialtreiber für exotischste Hardware, und da muss man mehr über die Hardware an sich wissen, als über ein Betriebssystem. Dann schon eher DOS 5.0 mit anständigen Treibern, ProtectedMode und 'ner neuen command.com ausstatten, das wäre wesentlich einfacher.
-----
Und warum soll der Kernel den Delphi-Quellcode kompilieren? Wieso meint jeder, zu einem Betriebssystem gehört ein eigener Compiler (kürzlich schonmal gesehen)?
Wenn man den Kernel soweit hat, daß er den PE32-Header interpretieren kann und entsprechend die EXE laden kann, muss man "nur noch" die Laufzeitumgebung aufbauen. Denn selbst wenn man keine API-Aufrufe hat, verbergen sich in der VCL genug davon. Und wie schwierig es ist, die Windows-API-Calls zu reimplementieren, zeigt das WinE-Projekt...
Delphi hat den großen Nachteil, daß es ganz streng an Windows gebunden ist, daher ist Delphi für Betriebssystementwicklung nicht zu gebrauchen. Wer Pascal nehmen will, findet in FreePascal und dem GPC-Frontend zur GCC zwei gute Alternativen.
  Mit Zitat antworten Zitat