@MARTIN:
habe ich gesagt, dass man es nicht kann? Ich hab ledigleich gesagt, dass man dafür modifikationen vornehmen muss!! Aber bitte, probiers mal, schreib nen einfachen Mini-Kernel in C++, kompiliere ihn, linke ihn mit dem Init-Kernel und starte ihn dan mit irgend nem Bootloader! Ich garantiere dir, es wird nicht starten!
mfg,
Maximilian Mayerl
PS: Ich spreche von allen C++-Compilern, die sich 100%ig an den ANSI-Standart halten!
"Windowsprogrammiersprache"
Ja prima, jetzt muss ich einen Kernel schreiben um das Gegentel zu beweisen.
Also Kyoko12 erkläre mit bitte noch mal logisch was ist am C-Quellcode so besonderes dass er sich in Programme übersetzen lässt die ohne irgendwelche Änderungen auf einer Maschine laufen und warum das mit einem C++ Quellcode nicht möglich sein soll.
Ich habe es nämlich so gelernt:
Man nimmt sich den geeigneten Compiler der die Programme für die Zielplatform (sei es Windows, sei es Linux, sei es PC ohne Betriebsystem, sei es ARM-Prozessor) erzeugen kann.
Je nach Platform gibt es natürlich einschränkungen, auf einem 8-bit prozessor ohne FPU, ist wohl zimmlich ungeschcikt long double zuverwenden, oder mit 512Byte RAM malloc funktion zu implementiern,
aber es gibt keinen Grund warum ein Programm, der von einem C++ Compiler erzeugt wurde, erst "von Hand" geändert werden muss das mit es ausgeführt werden kann.
Darum kümmert sich der Compiler, dass die erzeugte Executabe für die Zielplatform geeignet ist.
Und C++ eignet sich eben so gut für die hardware-nahe Programierung wie C, natürlich entfällt da der ganze C++ schnick-schnak.
Kannst endlich mal erklären wovon du ganze Zeit da spricht? In deinem vorigen Beitrag hast du auch Sachen geschrieben die irgendwie total aus dem Zusammenhang gerissen zu sein scheinen:
Also Kyoko12 erkläre mit bitte noch mal logisch was ist am C-Quellcode so besonderes dass er sich in Programme übersetzen lässt die ohne irgendwelche Änderungen auf einer Maschine laufen und warum das mit einem C++ Quellcode nicht möglich sein soll.
Ich habe es nämlich so gelernt:
Man nimmt sich den geeigneten Compiler der die Programme für die Zielplatform (sei es Windows, sei es Linux, sei es PC ohne Betriebsystem, sei es ARM-Prozessor) erzeugen kann.
Je nach Platform gibt es natürlich einschränkungen, auf einem 8-bit prozessor ohne FPU, ist wohl zimmlich ungeschcikt long double zuverwenden, oder mit 512Byte RAM malloc funktion zu implementiern,
aber es gibt keinen Grund warum ein Programm, der von einem C++ Compiler erzeugt wurde, erst "von Hand" geändert werden muss das mit es ausgeführt werden kann.
Darum kümmert sich der Compiler, dass die erzeugte Executabe für die Zielplatform geeignet ist.
Und C++ eignet sich eben so gut für die hardware-nahe Programierung wie C, natürlich entfällt da der ganze C++ schnick-schnak.
Mit was Linken ?Was?linke ihn mit dem Init-Kernel
Kannst endlich mal erklären wovon du ganze Zeit da spricht? In deinem vorigen Beitrag hast du auch Sachen geschrieben die irgendwie total aus dem Zusammenhang gerissen zu sein scheinen:
Was ?[...] [BITS 16] [...]
[...] und dann der Sprung zum Main-Laben, also call _main, und dann noch hlt [...]
[...] Um C im Kernel zu verwenden brauchst du nur ein kleines Zwischenprogramm zwischen Bootloader und Kernel [...]
Amilo 1667|Suse Linux 10.1_64bit/WinXP |PB 4.00/3.94