C++ dateien booten????



  • das habe ich doch gerade gesagt^^



  • mcdgt schrieb:

    das habe ich doch gerade gesagt^^

    Nein, hast du nicht. Man benötigt auch kein .NET-Framework für C++. Wär ja noch schöner.



  • mcdgt schrieb:

    ganz simpel du brauchst .net framework für c++^^

    Tatsächlich? Ich programmiere ja schon viele Jahre in C++, aber das war mir gänzlich neu.

    Im Ernst: verwechselst du da grade C++ mit C# oder C++/CLI?



  • back to topic kann mir wer helfen???

    Achja wen ich versuche ohne .Net ein c++ programm zu starten sacht der mir "das programm ist keine gültige WIN32 datei"



  • mcdgt schrieb:

    Moin ich hab meine eine Frage, ich möchte gerne mit assembler einen Bootloader erstellen, der dann mit c++ erstellte Programme startet. Das ist doch nicht möglich weil ein bootloader kein .net Framework hat oder?

    Ode gibt es eine möglichkeit einen C++ bootloader zu schreiben?

    Wieso verwendest du nicht einfach DOS?
    Dos lässt sich auf einer Diskette unterbringen und
    du könntest dir die Zeit sparen ein eigenes Süppchen zu kochen?

    Alternativ kannst du auch gerne so wie ich Arch Linux ververnden.



  • okay jetzt nochmal meine frage, kann ich mit nem bootloader auch C++ dateien laden oder NUR EXE dateien???



  • mcdgt schrieb:

    okay jetzt nochmal meine frage, kann ich mit nem bootloader auch C++ dateien laden oder NUR EXE dateien???

    C++ kann soweit ich weiß kein JIT
    Da kommst du mit Java weiter.



  • Ehm.. wie diskutiert ihr denn aneinander vorbei? 🙄


  • Mod

    mcdgt schrieb:

    okay jetzt nochmal meine frage, kann ich mit nem bootloader auch C++ dateien laden oder NUR EXE dateien???

    Das wird immer verwirrender. Wo soll da der Unterschied sein (zumindest nach compilieren)? Ich glaube du bringst hier irgendwelche Sachen ganz gewaltig durcheinander.

    Um mal die Frage so wie sie gestellt wurde (aber wahrscheinlich nicht gemeint war): Ja, man kann Programme die mit C++ erstellt wurden mit einem Bootloader laden. Man muss jedoch drauf achten, dass in diesem Fall häufig keine C++ Laufzeitumgebung vorhanden ist, wodurch man beim Programmieren ein bisschen aufpassen muss. Prinzipiell kannst du aber das ganze Betriebssystem in C++ schreiben (abgesehen von ein paar Zeilen Assembler für den Bootloader selbst).



  • darkfate schrieb:

    C++ kann soweit ich weiß kein JIT
    Da kommst du mit Java weiter.

    Das bezweifle ich doch. Wenn du es geschafft hast, mit einem Javaprogramm zu booten, sag Bescheid.

    @OP
    Das ist nicht so einfach, wie du dir das denkst. Du benötigst eine Implementation der C++-Standardlibrary, die nicht auf OS-Funktionen zurückgreift. Da wirst du erst einmal in das Thema Betriebssystementwicklung einsteigen müssen.



  • Wo ist denn das Problem? C++ kann direkt zu Maschienencode kompiliert werden und dementsprechend auch von einem Bootloader gestartet werden (check ma deinen Compiler und prüfe, ob du nicht C++/CLI programmierst, C++ braucht definitiv kein .NET).
    Mehr ein Problem könnte das Fehlen der Standardbibiliothek sein, die man ohne Betriebssystem selbst implementieren muss. Natürlich musst du deinen Compiler auch etwas bearbeiten, damit er ein Format erzeugt, was du gut von Bootloader aus starten kannst. Aber rein prinzipiell steht dem nichts im Weg.

    Du kannst auch mal im OS-Dev-Forum nachfragen, die werden dir da bestimmt besser helfen können.

    mcdgt schrieb:

    okay jetzt nochmal meine frage, kann ich mit nem bootloader auch C++ dateien laden oder NUR EXE dateien???

    Du willst nicht wirklich durch Zauberhand eine C++-Quelldatei ausführen lassen, oder? Ansonsten musst du diese kompilieren und heraus kommt - z.B. eine EXE-Datei. Ich glaub aber nicht, dass du in deinem Bootloader noch Code für das Lesen des PE-Format programmieren willst.

    darkfate schrieb:

    C++ kann soweit ich weiß kein JIT
    Da kommst du mit Java weiter.

    Ist das ein schlechter Scherz? C++ wird vorab kompiliert, da bedarf es keines JIT. Und mit Java kommt er ganz sicher nicht weiter, weil er da die gesamte Java-VM mitschleppen darf, die sich - da bin ich mir sicher - nicht vom Bootloader aus starten lässt.



  • darkfate schrieb:

    Ist das ein schlechter Scherz? C++ wird vorab kompiliert, da bedarf es keines JIT. Und mit Java kommt er ganz sicher nicht weiter, weil er da die gesamte Java-VM mitschleppen darf, die sich - da bin ich mir sicher - nicht vom Bootloader aus starten lässt.

    Stichwörter:
    Sun: picojava von Sun Microsystems
    http://web.archive.org/web/20060820102254/http://www.sun.com/microelectronics/picoJava/
    Patriot Scientific: PSC
    http://www.forthfreak.net/misc/psc1000.pdf
    Atmel AVR32 kann sogar Bytecode ausführen.

    Außerdem gibt es noch Java fähige ARM-Handys mit speziellen Befehlen: "Jazelle"



  • Ok, es gibt Java-Prozessoren (wieder was gelernt). Aber ich bezweifle, dass der TE so einen hat. Schon allein deshalb, weil er offenbar unter Windows programmiert und Windows meines Wissens nicht in Java programmiert wurde, ergo auf dem Prozessor gar nicht laufen würde.



  • ipsec schrieb:

    Ok, es gibt Java-Prozessoren (wieder was gelernt). Aber ich bezweifle, dass der TE so einen hat. Schon allein deshalb, weil er offenbar unter Windows programmiert und Windows meines Wissens nicht in Java programmiert wurde, ergo auf dem Prozessor gar nicht laufen würde.

    War eigentlich als Antwort auf diese Zeile gedacht.

    ipsec schrieb:

    Und mit Java kommt er ganz sicher nicht weiter, weil er da die gesamte Java-VM mitschleppen darf, die sich - da bin ich mir sicher - nicht vom Bootloader aus starten lässt.

    Solche Prozessoren gibt es genügend in alten Handys. Er müsste sich folglich nur umschauen welches sich am bequemsten rooten lässt und wie es geht. Da gibt es aber auch schon mittlerweile genügend Infomaterial.

    Außerdem hat er bisher nicht gesagt was er bereits besitzt und wie er es umsetzen möchte. Manchmal sind Alternativwege wesentlich bequemer. Wer C++ kann, wir nicht lange brauchen um Java zu können.



  • Ok, ich gestehe, auch mit Java kann man Betriebssysteme schreiben, meine Aussage war falsch.
    Trotzdem wirst du mir sicher zustimmen, dass C++ von beiden Sprachen die bei weitem gebräuchlichere in der Betriebssystementwicklung ist und dass ein C++-Programm - entgegen der Intention des TE - durchaus auch ohne Betriebssystem ausgeführt werden kann, während das für ein Java-Programm nur sehr bedingt zutrifft (man braucht eben spezielle Prozessoren).



  • ipsec schrieb:

    Ok, ich gestehe, auch mit Java kann man Betriebssysteme schreiben, meine Aussage war falsch.
    Trotzdem wirst du mir sicher zustimmen, dass C++ von beiden Sprachen die bei weitem gebräuchlichere in der Betriebssystementwicklung ist und dass ein C++-Programm - entgegen der Intention des TE - durchaus auch ohne Betriebssystem ausgeführt werden kann, während das für ein Java-Programm nur sehr bedingt zutrifft (man braucht eben spezielle Prozessoren).

    Ich glaube fast der TE wird mit seinen Vorstellungen hier nicht glücklich. 🙂



  • also um das mal zum ende zu führe ich kann per bootloader problem eine kompilierrte C++ ausführen lassen ohne Probelem?



  • Jep. Also rein technisch ohne Probleme, bei der praktischen Umsetzung werden sich zwangsläufig Probleme ergeben, da die handelsüblichen Otto-Normalcompiler nicht dafür angedacht sind.



  • kk also was muss ich bei der programmierung genau beachten



  • mcdgt schrieb:

    also um das mal zum ende zu führe ich kann per bootloader problem eine kompilierrte C++ ausführen lassen ohne Probelem?

    Da Dir anscheinend ein paar wichtige Basics fehlen, würde ich das "ohne Problem" nicht annehmen.

    Wenn Du keinen besonderen Linker hast, muß der Bootloader in der Lage sein, normale DOS-oder Windows Executables zu laden, je nachdem, was Du da hast. Vieleicht kann Dir gcc da aber weiter helfen.

    Bedenke auch, daß der Intelprozessor nach dem Einschalten im 16-Bit Modus läuft. Du mußt die CPU auch auf das richtige Format bringen.

    Das EXE-File darf auf keinerlei (ich wiederhole auf rein gar nichts) aufsetzten außer dem BIOS, das in dem Rechner steckt. Also kein .NET, kein Windows, kein DOS nichts und überhaupt nichts. Bedenke, daß die Standard Library der meisten Compiler jedoch hiervon regen Gebrauch machen.

    So ich hoffe, ich habe nichts vergessen.

    Ich vergaß: Linux, Mac OS X, OS/9, OS/2, Solaris, BSD etc. sind natürlich auch tabu.

    mfg Martin


Anmelden zum Antworten