Einstieg in C oder C++?



  • elise schrieb:

    unabhängig vom betriebssystem gibt es nicht.
    erstmal so long

    Nicht? also mit ASM geht das...

    Ich meinte aich nicht unabhängig vom Betreibsystem(BIOS 😉 ), sondern von "windows" (eh kein echtes OS)...

    Sobald ich eine Bootdisk erstelle und mein objektfile(maschinencode) dorthin kopiere wo die CPU nach dem PC-Start "sucht" so bin ich doch unabhängig.

    Falls ich doch unter win arbeiten muss.. Will ich wenigstens in alle Adressbereiche schreiben können...

    Kann ja sein das ich ein eigenes kleines OS schreiben will... 🙂
    sowas muss doch in C / C++ möglich sein..



  • dein eigenes natürlich schon..
    sorry, zu schnell gelesen.

    gcc müsste dein compiler sein, oder vielleicht noch der turbo c.. kannst mal im compilerforum nachschauen, es gab einige threads zum "selber programmieren".

    natürlich mit bestimmten einstellungen.



  • ach ja, schau dir das noch an
    http://www.robsite.de/tutorials.php?tut=osdev

    und das low level magazin fand ich gut (weiß nicht, ob die weitergemacht haben).



  • elise schrieb:

    ach ja, schau dir das noch an
    http://www.robsite.de/tutorials.php?tut=osdev

    und das low level magazin fand ich gut (weiß nicht, ob die weitergemacht haben).

    cool.....



  • Also der beste C++ Compliter ist Dev-c++

    einfach mal gogglen



  • metallicakeke schrieb:

    Also der beste C++ Compliter ist Dev-c++

    einfach mal gogglen

    troll...



  • metallicakeke schrieb:

    Also der beste C++ Compliter ist Dev-c++

    einfach mal gogglen

    Dev-c++ ist eine IDE und keine Compiler. 🙄



  • 2. Welchen Compiler soll ich verwenden?

    3. Zu einem guten Compiler gehört auch das Linken.. Also den Sourcecode z.B. in eine EXE umzuwandeln.

    4. Wie verwandle ich mein C-Programm in Maschinencode?
    (Keine C_to_EXE-Scheisse sondern 01101001 in einem File)
    Ob ich es dann linken(EXE) will oder auf eine andere Plattform portieren und dort linken will soll mir überlassen werden...

    Der Compiler wandelt die Quelltexte in Objektdateien um, diese werden dann gelinkt damit man ein ausführbares Programm bekommt.
    Welche Befehle das sind? Das ist natürlich Compilerabhängig -> RTFM Doku. ist ein muss.

    Ansonsten kannst du C++ selbstverständlich auch mit einem Texteditor schreiben.
    Da du unter Windows anscheinend nicht arbeitest gehe ich mal von Unix/Linux aus.
    Dafür gibt es zb: EMACS oder VIM die mehr Komfort bieten als ein Texteditor.

    Der Linuxkernel selber ist übrigens in C geschrieben, mit Inline Assembler.

    Mit C/C++ kann man alles machen, wenn man es kann 🙂

    Für WIRKLICHE Zeitkritische Programme ist Assembler halt immer noch die erste Wahl.

    Sobald ich eine Bootdisk erstelle und mein objektfile(maschinencode) dorthin kopiere wo die CPU nach dem PC-Start "sucht" so bin ich doch unabhängig.

    Objektfile != Programm
    Für Bootdisketten muss man gewisse Regeln beachten, da werden executes jeglicher Art drauf gehauen!.



  • Für Bootdisketten muss man gewisse Regeln beachten, da werden executes jeglicher Art drauf gehauen!.

    Für Bootdisketten muss man gewisse Regeln beachten, da werden nicht einfach 'execute´s' jeglicher Art drauf gehauen!.



  • poncholino schrieb:

    Für Bootdisketten muss man gewisse Regeln beachten, da werden executes jeglicher Art drauf gehauen!.

    Für Bootdisketten muss man gewisse Regeln beachten, da werden nicht einfach 'execute´s' jeglicher Art drauf gehauen!.

    Objectfile = Maschinencode oder?

    also muss ich es dafür sorgen, das der JUMP befehl
    (boot sektor) in assembler auf mein programm zeigt oder?



  • Perl_master schrieb:

    poncholino schrieb:

    Für Bootdisketten muss man gewisse Regeln beachten, da werden executes jeglicher Art drauf gehauen!.

    Für Bootdisketten muss man gewisse Regeln beachten, da werden nicht einfach 'execute´s' jeglicher Art drauf gehauen!.

    Objectfile = Maschinencode oder?

    also muss ich es dafür sorgen, das der JUMP befehl
    (boot sektor) in assembler auf mein programm zeigt oder?

    objektdatei!=Maschinencode;
    die objektdatei enthält eine vorstufe des fertigen codes, der vom linker nachbearbeitet werden _muss_. erst beim linken werden die stackaddressen richtig eingesetzt, vorher sind es meist nur relative angaben, die der linker dann durch absolute ersetzt.





  • So ein Gelabere hier. Gehe am besten ins Assembler-Forum, da findest du die Leute, die eigene OS entwickeln. ASM und C dürften deine Sprachen sein. Man bootet in ASM und macht dann in C weiter.

    siehe: NASM, DJGPP, GRUB

    siehe auch dort:
    http://www.linuxgazette.com/issue77/krishnakumar.html
    http://www.linuxgazette.com/issue79/krishnakumar.html
    http://www.linuxgazette.com/issue82/raghu.html
    http://database.sarang.net/study/OS/os-faq.html


Anmelden zum Antworten