Linux 14.982 Themen, 106.349 Beiträge

Kernelkompilierung mit gcc 3.3

KarstenW / 6 Antworten / Flachansicht Nickles

Hallo,

ich kompiliere in der Regel immer einen eigenen Kern. Ich habe irgendwo gelesen , das der Kompiler 3.x noch nicht für den kernl 2.6.x freigegeben ist. Stimmt das , oder kann man einen Kern 2.6.x auch mit einem neuen Kompiler gcc 3.x kompilieren? Linus Torwalds hat sich schon darüber beschwert das die neuen Kompilerversionen 3.x von gcc schlechten C - Code erzeugen würden. Da der Betriebsystemkern in C programmiert ist, möchte ich hier gern mal die Experten fragen.

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
KarstenW REPI „Gibt es schlechten und guten Binärcode ? Wichtig ist doch in erster Linie, ob...“
Optionen

Ja , es gibt guten und schlechten Binärcode. Ich selbst bin keine Informatiker, aber ein C-Compiler soll den Binärcode z.B. für verschienene Prozessoren optimieren.
Ich kann nicht einschätzen ob der erzeugte Binärcode gut oder schlecht ist.

Jeder Prozessor hat einen erweiterten Befehlssatz gegen über dem Vorgängermodell. Ein Prozessor wird maßgeblich (soweit ich weiß) durch zwei Dinge schneller , einmal die Taktfrequenz und zum anderen durch neue Befehle gegenüber dem Vorgängermodell.
Ein neuer Befehl ersetzt eine Reihe alter Befehle. Jeder Befehl braucht eine bestimmte Anzahl von Taktzyklen bis er abgearbeitet worden ist. Wenn der Betriebsystemkern jetzt nur noch einen neuen Befehl statt einer Anzahl alter Befehle nutzt, hat er die gleiche Arbeit mit weniger Taktzyklen abgearbeitet.
Dadurch kann der Betriebsystemkern schneller werden.

Deshalb finde ich die Diskusion um Intel- und AMD-Prozessoren so unsinnig. Zuersteinmal müßte der Betriebsystemkern oder auch das Programm den erweiterten Befehlsatz des jeweiligen Prozessors nutzen, um schneller zu werden.
Windows 2000 ist für einen Pentium 1 Prozessor kompiliert worden. Wenn man einen Pentium 4 Prozessor im Rechner hat bedeutet das, das der Rechner wie mit einem Pentium 1 Prozessor läuft, nur eben mit einer höheren Taktfrequenz.

Der Compiler gcc soll eben den Binärcode für einen bestimmten Prozessor optimieren, sodas auch der erweiterte Befehlssatz des jeweiligen Prozessors genutzt werden kann.

Ich weiß eben nicht ob die neuen Compilerversionen 3.x das so gut können, deshalb meine Frage.

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen