Runtime im OS



  • Hallo ihr Genis,

    Wie bekomme ich eigentlich in ein neu in Assembler geschriebenes OS die Runtime von z.B. C# oder C++ rein?
    Muss ich dafür einen neuen Compiler in Assembler schreiben der unter meinem OS läuft?
    Wie kann ich mein OS nach dem starten davon überzeugen c++ code auszuführen?

    Danke für die Hilfe!
    Gruß
    GW



  • Global Warrior schrieb:

    ein neu in Assembler geschriebenes OS

    Dein OS?!

    Global Warrior schrieb:

    Runtime von z.B. ... C++ rein?

    Seit wann hat den C++ eine Runtime? 😕
    Vielleicht meinst du die (ANSI) Bibliotheken, die ein C++-Sprache braucht, um zu funktionieren. Damit man das new delete Zeug benutzen kann... Wenn du das meinst, dann brauchst du erst ein maloc() und free() Zeugs in deinem OS... naja...
    Was mit C# aussieht kann ich dir sagen, du musst den Code selber interpretieren d.h. du musst mit hilfe der Funktionen des OS die Anwendungen zeichnen, wie genau das aussieht hab ich keine Ahnung...



  • Hi, danke für die Antwort.

    Genau das ANSI zeug meine ich!
    das ist doch alles OS spezifisch oder etwa nicht?

    Und könntest du mir vielleicht noch erklären wie ein OS ein Programm startet?



  • Also lass dir sagen, dass es irre viel Arbeit ist. Zu viel für eine Person 😉

    Compiler musst du nicht unbedingt neu schreiben, aber vielleicht etwas anpassen - so wie die gcc-Anpassung für cygwin oder mingw oder für dieses Spielzeug-OS, dessen Namen ich jetzt vergessen habe.

    glibc kannst du vielleicht auch portieren, aber das ist eine sehr wüste Arbeit.



  • was soll denn beim portieren der c standardlibrary soviel aufwand machen?? müsste man doch nur die systemaufrufe ändern oder nicht??



  • Schau dir mal an, wie viele Files die glibc hat ;). Das Ding compiliert Stunden 😮.

    Ok, man muss natürlich nicht alle Files ändern, sondern nur die plattformspezifischen. Das ist zum Glück eh schon schön aussortiert. Trotzdem ist es eine ziemlich mühsame Arbeit, allein mal den Build-Prozess zu durchschauen. Und dann muss man es halt irgendwie ins System integrieren, also build-Skripts für die binutils schreiben bzw. die binutils um neue Targets erweitern. Es ist alles möglich, aber wenn es nicht so abschreckend viel Arbeit wäre, gäbe es sicher schon viel mehr selbstgestrickte Betriebssysteme, die komplett mit C-Library und Compiler daherkommen.



  • Wow. Der Download ist 17 MB. Ich dachte die C Library wäre ziemlich klein. Ich hätte gedacht die hat unter 100 Funktionen und kompiliert in 30 Sekunden. 🤡



  • bis man die libc laufen hat vergehen monate

    aber so ne runtime in nen kleinen kernel setzen ist kein problem

    man nehme teile der bibliotheksarchive libgcc, libgcc_eh , libsupc++ und schreibe den code den es benötigt (speicher-allokation, printf und einige dummy's)

    linke das ganze dan passend, und fertig ist der kernel mit c++ runtime

    für .net ist man im mom natürlich angearscht, evtl bekommen es ein paar leute aber noch hin


Anmelden zum Antworten