Wie ist ein Betriebssystem aufgebaut?



  • Hallo,
    Ich programmiere schon seid ca. 1 Jahr aus Hobby mit C++. Nun habe ich mich gefragt, wie ein Betriebssystem wie z.B. Windows erstellt wurde. Das muss ja ganz etwas anderes sein da ja C++ auf Windows basiert. Wie kann man überhorbt ein betriebssystem programmieren, so dass es auf jeden beliebigen Pc läuft ohne das irgendetwas vorinstalliert ist.
    Die Frage ist aus reinem Interesse. Wäre nett wenn ihr mir das ein bisschen erläutern könntet. 😉



  • Ganz kurz: Es ist (meist) c-Code der direkt in die Prozessorsprache übersetzt wurde. Gegen C++ spricht nix, auch C++ kann man übersetzen (Es gibt sogar einen Proof of Concept, dass man mit Java ein Betriebssystem schreiben kann).

    Apropos "beliebiger Pc", schön wärs. Hard- und Software müssen aufeinander abgestimmt sein, sonst geht gar nix. Oder hast du dich noch nie gewundert, dass es sowenige Macs gibt, die mit Windows laufen? 😉



  • DER_PETER schrieb:

    Das muss ja ganz etwas anderes sein da ja C++ auf Windows basiert.

    Ich weiß nicht, wo Du das her hast, aber es ist definitiv falsch. C++ gibt's zum Beispiel auch auf Linux. Und die würden sich nun wirklich ungern nachsagen lassen auf Windows zu basieren. 😉



  • Windows basiert auf C und nicht auf C++, Unix natürlich auch auf C. Bei Linux weis ich es nicht.



  • Hallo,

    da ja C++ auf Windows basiert

    Das würd' ich so nicht stehen lassen; ich glaube aber, Du meinst im Prinzip schon etwas Richtiges.
    Zwischen Hochsprachen wie C++ und Betriebssystemen gibt es immer bestimmte Schnittstellen, die genau verhindern, dass Du direkt auf die Hardware zugreifen kannst (bei neueren Systemen) bzw. musst (bei ältere wie DOS). Das hat dann den Vorteil, dass etwa ein in ANSI-C geschriebenes Programm auf jeder Plattform läuft, für die es einen Kompiler und entsprechende Bibliotheken gibt.
    Du teilst dann dem Betriebssystem über die entsprechenden Funktionsaufrufe der Bibliothek (printf, malloc,...) mit WAS Du machen willst, brauchst Dich aber nicht darum zu kümmern WIE es gemacht wird., d.h. es erfolgt eine Abstraktion von der Hardware.
    Das ist eines der wichtigsten Grundprinzipien.

    ohne das irgendetwas vorinstalliert ist.

    Ganz ganz grob: Wenn Du am Rechner den Schalter drückst, läuft eine vom BIOS gesteuerte Boot-Routine ab. Dadurch wird die Hardware so weit hochgefahren, dass die Kontrolle an eine Software übergeben werden kann. Dies erfolgt an vereinbarter Stelle, z.B. durch Laden eines bestimmten Plattensektors in den Hauptspeicher. Dort "beginnt" dann Dein Betriebssystem.

    Es ist eine recht komplizierte Thematik. Wenn das Interesse bestehen bleibt, such' mal einfach nach Schlagworten wie "FH Skript Betriebssysteme", da gibt's viele Infos kostenlos,
    z.B.
    http://hera.mni.fh-giessen.de/~hg52/lv/bs1/skripten/bs1skript/pdf/bs1skript.pdf

    Es gibt auch sehr umfangreiche Bücher, z.B. aus dem Pearson-Verlag (eins von Stallings, eins von Tanenbaum) - vielleicht hast Du eine Hochschul-Bib in Deiner Nähe?

    Allerdings wirst Du nicht umhinkommen, Dich auch mit der Hardwareseite näher zu beschäftigen. Denn Du interessierst Dich ja gerade für die Schnittstelle zwischen Hardware und Anwender.

    Viel Spaß,

    Gerry

    Ciao, Gerry



  • Vielen Dank für die zahlreichen Antworten hat mir echt sehr viel weitergeholfen!!!!



  • Hier findest Du weitere konkrete Links zur praktischen Umsetzung:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-124713.html


Anmelden zum Antworten