Betriebssystem via C++ programmieren ?
-
F :Betriebssystem via C++ programmieren ?
Hallo Leute,
ich wollte wissen, ob man tramite C++ ein BetriebsSystem programmieren
kann.Ich denke mal dazu bräuchte man ein eigenen Kernel und Bootloader.
Wenn man die hat zieht man die auf eine CD als .img Datei.Das wäre so meine Idee dazu. Ich hoffe ihr könnt mir einige Anregungen
geben, wie man so etwas realisieren kann oder sogar ganz neue Ideen.Mfg
jookerxxx
-
Ja. Ansonsten: Dein Name ist Programm?
-
Wie mein "Name ist Programm ?" ?xD
-
jookerxxx schrieb:
Wie mein "Name ist Programm ?" ?xD
Er meinte damit, es ist etwas kniviliger, als du dir das vorstellst.
-
Warum?
Einen kleinen Kernel zu schreiben ist einfach.
-
-
Einen kleinen Tick Assembler brauchst du schon, für den Bootloader.
Von da springst du in deinen C/C++ Code.
Hast du denn schon mal gegoogled? Ist ja nicht so als gäbs dazu nicht Tutorials wie Sand am Meer.
http://www.lowlevel.eu/wiki/Lowlevel:Portal
-
Man kann auch auf einen fertigen Bootloader wie z.B. Grub zurückgreifen und sich damit viel Fummelei ersparen. Aber ohne einen Tick Assembler kommt man auch beim Kernel nicht weit.
-
Bei C++ muss man im Gegensatz zu C beachten, dass einige Spracheigenschaften eine entsprechende Laufzeitumgebung benötigen. zB Rtti und Exceptions. Entweder verzichtet man auf diese Features oder schreibt die entsprechende Laufzeitumgebung.
Es haben mal ein paar Leute den C++-Laufzeitteil für den Linux-Kernel geschrieben: http://web.archive.org/web/20071222161357/http://netlab.ru.is/exception/LinuxCXX.shtml
-
jookerxxx schrieb:
Warum?
Einen kleinen Kernel zu schreiben ist einfach.Meinst Du mit Assembler oder C++ ?
Er meint damit kein Betriebssystem, sondern ein Programm, welches kein Betriebssystem benötigt. Etwas wie "Hello World".
Man kann auch auf einen fertigen Bootloader wie z.B. Grub zurückgreifen und sich damit viel Fummelei ersparen. Aber ohne einen Tick Assembler kommt man auch beim Kernel nicht weit.
Man kann sich natürlich auch diese Fummelei ersparen und ein fertiges System nehmen. Zum Beispiel Linux oder Windows. Von MacOS würde ich abraten, dass soll bisweilen alles andere als gut auf normalen Computern laufen.
-
bloob schrieb:
jookerxxx schrieb:
Warum?
Einen kleinen Kernel zu schreiben ist einfach.Meinst Du mit Assembler oder C++ ?
Er meint damit kein Betriebssystem, sondern ein Programm, welches kein Betriebssystem benötigt. Etwas wie "Hello World".
Klar geht das, hat man früher so gemacht, als Spiele auf einem PC noch direkt von Diskette ohne MS-DOS gebootet wurden.
Ohne Betriebssystem muß man sich aber um alles kümmern.
Ansteuern der Grafikkarte, sofern nicht auf den Textmodus des BIOS zurückgegriffen wird. Ansteuern der USB Schnittstelle usw.Im Prinzip schreibt man also ein kleines OS.
-
Was meinste wohl, welches System ich gerade haben , ? xD
Irgendeins muss es ja sein, sonst ist schreiben schia unmöglich oda?
-
schia unmöglich oda
ge zurük auf haubtschul.
-
rüdiger schrieb:
Bei C++ muss man im Gegensatz zu C beachten, dass einige Spracheigenschaften eine entsprechende Laufzeitumgebung benötigen. zB Rtti und Exceptions. Entweder verzichtet man auf diese Features oder schreibt die entsprechende Laufzeitumgebung.
Es haben mal ein paar Leute den C++-Laufzeitteil für den Linux-Kernel geschrieben: http://web.archive.org/web/20071222161357/http://netlab.ru.is/exception/LinuxCXX.shtml
Wichtiger ist es die Konstruktoren der globalen Objekte aufzurufen bevor man die Kontrolle an main()/C++ Code abgibt.
-
hs schrieb:
schia unmöglich oda
ge zurük auf haubtschul.
Du kannst kein Deutsch, das heißt:
Ey Alder, geh zurük auf haubtschul sonst gibts auf Fres.
-
Wenn ihr das etwas gehobener diskutieren wollt, dann kommt nach:
http://www.c-plusplus.net/forum/f62
IRC-Server: irc.euirc.net Channel: #PrettyOS
Für einen Nibo-Roboter habe ich die Routinen in C++ geschrieben, allerdings bringt das nur bezüglich des Designs Vorteile, das man mit viel Overhead erkauft: http://www.henkessoft.de/Roboter/Nibo.htm#mozTocId872713