1. Foren
  2. Kommentare
  3. OpenSource
  4. Alle Kommentare zum Artikel
  5. › Intel: Linux beendet Itanium-Support

Warum muss Linux das Supporten? Das ist doch compileraufgabe?

Über PC-Games lässt sich am besten ohne nerviges Gedöns oder Flamewar labern! Dafür gibt's den Freiraum!
  1. Thema

Neues Thema Ansicht wechseln


  1. Warum muss Linux das Supporten? Das ist doch compileraufgabe?

    Autor: dangi12012 29.01.21 - 14:00

    Linux ist in C und C++ geschrieben vielleicht ist das naiv und es gibt doch noch assembly?

    Ich würde die aufgabe des compilers sehen den code perfekt für einen architektur zu kompilieren. Das Betriebssystem sollte architekturagnostisch sein im idealfall.

    Nachdem bei Linux auch Treiber im Kernel landen ist das sogar der fall weil diese dann in architektur X vom compiler übersetzt werden.

  2. Re: Warum muss Linux das Supporten? Das ist doch compileraufgabe?

    Autor: schubumkehr 29.01.21 - 14:17

    Es gibt durchaus noch genügend und notwendigen Assemblercode um mit der der Hardware zu reden. Der Linux-Kernel benötigt dies, um die Differenzen zwischen den ganzen Architekturen irgendwie zu generalisieren.

  3. Re: Warum muss Linux das Supporten? Das ist doch compileraufgabe?

    Autor: Valdyn 29.01.21 - 14:20

    Meines Wissens nach nur C, kein C++, und natürlich steckt Assembler in einem Betriebssystem, oder welche C-Konstrukte kennst du zur MMU-Verwaltung und Register retten/wiederherstellen beim Task-Wechsel? Interrupts, Semaphoren und MultiProcessing könnten auch noch Kandidaten sein.

  4. Re: Warum muss Linux das Supporten? Das ist doch compileraufgabe?

    Autor: csgaw 29.01.21 - 14:29

    Viele Grundfunktionen eines Betriebssystems sind hochgradig von der Prozessorarchitektur abhängig und müssen daher für x86, ARM, PowerPC usw. neu implementiert werden. Teile davon sind nur in Assembler umsetzbar.

    Eine Grundfunktion ist bspw. Multitasking. Wie schafft es ein Betriebssystem, mehrere Prozesse ("Tasks") quasi-gleichzeitig laufen zu lassen, obwohl nur z.B. 4 Rechenkerne zur Verfügung stehen? Vereinfacht gesagt bekommt jeder Task eine bestimmte Rechenzeit (z.B. 10ms) zugewiesen. Spätestens nach dieser Zeit wird dem Prozess die CPU "entzogen" und ein neuer Prozess kommt an die Reihe. Dazu muss das Betriebssystem einen Hardware-Timer konfigurieren, der in einem gewissen Intervall (z.B. 10ms) der CPU einen Interrupt zustellt. In diesem Interrupt-Handler muss dann der Prozesskontext (unter anderem alle verwendeten CPU-Register) gesichert und auf einen anderen Prozess umgeschaltet werden. Alle diese Aktionen sind direkt von der Prozessorarchitektur abhängig und müssen teilweise in Assembler umgesetzt werden.

    Weitere zentrale Funktionen wie Speicherschutz (sodass ein User-Prozess nicht auf den RAM eines anderen User-Prozesses zugreifen kann) oder Schutzlevel (sodass ein User-Prozess z.B. die CPU nicht anhalten oder Interrupts deaktivieren darf) benötigen Hardware-Unterstützung der CPU und sind ebenso architekturabhängig.

  5. Re: Warum muss Linux das Supporten? Das ist doch compileraufgabe?

    Autor: MarcusK 29.01.21 - 14:30

    dangi12012 schrieb:
    --------------------------------------------------------------------------------
    > Linux ist in C und C++ geschrieben vielleicht ist das naiv und es gibt doch
    > noch assembly?
    >
    > Ich würde die aufgabe des compilers sehen den code perfekt für einen
    > architektur zu kompilieren. Das Betriebssystem sollte architekturagnostisch
    > sein im idealfall.
    >
    > Nachdem bei Linux auch Treiber im Kernel landen ist das sogar der fall weil
    > diese dann in architektur X vom compiler übersetzt werden.

    weil es hier nicht um eine Anwendung geht sondern um ein Betriebssystem. Die CPU muss z.b. richtig initialisiert werden genauso so wieder Speicher und IRQ Controller. Das alles macht ja kein Compiler, dafür muss code geschrieben werden.

    Dabei muss es noch nicht einmal ASM sein, es wird ausreichend C Code geben der nur für die Itanium Plaffform vorhanden ist.

  6. Re: Warum muss Linux das Supporten? Das ist doch compileraufgabe?

    Autor: JouMxyzptlk 29.01.21 - 14:49

    dangi12012 schrieb:
    --------------------------------------------------------------------------------
    > Linux ist in C und C++ geschrieben vielleicht ist das naiv und es gibt doch
    > noch assembly?
    >
    > Ich würde die aufgabe des compilers sehen den code perfekt für einen
    > architektur zu kompilieren. Das Betriebssystem sollte architekturagnostisch
    > sein im idealfall.

    Das gibt es nicht. Du brauchst die Info wie die Hardware anzusprechen ist. Ansonsten läuft dein Code auf der CPU, aber ohne Storage geht nichts. LAN, Grafik (rudimentär Text wenigstens), der PCI Bus etc etc. Die CPU alleine bringt die nichts.
    Oder willst du GNU/Hurd haben, was deinem Anspruch nahe kommt, aber nicht umsetzbar ist. Bisher haben sie nur x86 mit 32 und 64 Bit erreicht.

    > Nachdem bei Linux auch Treiber im Kernel landen ist das sogar der fall weil
    > diese dann in architektur X vom compiler übersetzt werden.

    Der Bootloader sollte Kernel und die nötigsten Treiber laden können. Das ist bei allen OS-es nahezu gleich. Aber wenn dein Bootloader den Storage nicht sieht? Wenn der Hauptspeicher nicht sichtbar ist?

  7. Re: Warum muss Linux das Supporten? Das ist doch compileraufgabe?

    Autor: brainslayer 29.01.21 - 16:20

    dangi12012 schrieb:
    --------------------------------------------------------------------------------
    > Linux ist in C und C++ geschrieben vielleicht ist das naiv und es gibt doch
    > noch assembly?
    >
    > Ich würde die aufgabe des compilers sehen den code perfekt für einen
    > architektur zu kompilieren. Das Betriebssystem sollte architekturagnostisch
    > sein im idealfall.
    >
    > Nachdem bei Linux auch Treiber im Kernel landen ist das sogar der fall weil
    > diese dann in architektur X vom compiler übersetzt werden.

    ja das ist naiv. erstens gibt es assembler code. zweitens muss man auch in c hardwarespezifischen code schreiben

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. dSPACE GmbH, Paderborn
  2. Endress+Hauser Process Solutions AG, Freiburg im Breisgau
  3. BAHN-BKK, Münster
  4. Hannover Rück SE, Hannover

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 89,90€
  2. 179€ (Bestpreis)
  3. (u. a. Rocketman für 8,99€, Ready Player One für 8,79€, Atomic Blondie für 9,49€)
  4. (u. a. EA Promo (u. a. Unravel für 8,99€, Anthem für 8,99€), Tiny and Big: Grandpa's...


Haben wir etwas übersehen?

E-Mail an news@golem.de


Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme