programmcode ohne kernel ausführbar?

  • Rein Interessehalber wollte ich mal fragen / wissen ob Programmcode (z.b.: .exe) auch ohne kernel ausführbar ist?

    Ist jedes Programm prinzipiell nach dem kompilieren in maschinencode (binär)?

    Und noch was:
    Die CPU führt ja im wesentlichen Rechenoperationen aus. (Zumindest soweit ich das verstanden habe.)
    Welche Schicht ist den dafür verantwortlich zu bestimmen was mit dem "errechneten" geschiet? -> Pixeldarstellung auf dem Bildschirm, beschreiben der harddisc, usw?

    Kommt der Kernel nur bei Betriebssystem relevanten Aufgaben zum Einsatz?

    EDIT:
    Noch was, giebt es einen Unterschied in der Nutzung der "Softwarearchitektur" / Schichten (Oder wie auch immer ich das nennen soll..) zwischen höheren Programmiersprachen (z.b. Phyton) und beispielsweise C+. (Phython muss ja, (zumindest soweit ich zu wissen glaube), nicht kompiliert werden..)

    Mfg.

  • Das Verständnis zum Ausführen von grundlegenden Dateiformaten wie EXE, DLL, SYS und anderen liegt im Kernel selbst, welcher ja wissen muß, wie er die Systembibliotheken und Treiber anspricht. Eine EXE ohne Kernel geht also nicht ...
    Programme, welche in den "hohen" Sprachen (C, C#, C++, etc.) geschrieben wurden, werden beim Kompilieren stets zu Maschinencode.
    Bzgl. der Schichten empfehle ich dir https://de.wikipedia.org/wiki/Ring_(CPU)
    Zu den Aufgaben des Kernels: https://de.wikipedia.org/wiki/Kernel_(Betriebssystem)
    Die Skriptsprachen wie Python oder Perl sind stets auf einen in Maschinencode Interpreter angewiesen. Dieser Interpreter führt dann wie ein Programm das Skript aus. Welche Möglichkeiten es damit gibt und welche Schicht damit letzten Endes damit angesprochen wird, hängt von den Fähigkeiten der Skriptsprache ab. Manche können nah ans System ran, andere nicht.

    Falls was unklar ist, Hand heben ... ;)

  • Rein Interessehalber wollte ich mal fragen / wissen ob Programmcode (z.b.: .exe) auch ohne kernel ausführbar ist?

    Nein. Darum ist es auch nicht möglich, Windows Programme auf Linux auszuführen.

    Ist jedes Programm prinzipiell nach dem kompilieren in maschinencode (binär)?

    Man unterscheidet zusätzlich zwischen Maschinencode und Bytecode, welcher auch binär ist.

    Und noch was:
    Die CPU führt ja im wesentlichen Rechenoperationen aus. (Zumindest soweit ich das verstanden habe.)
    Welche Schicht ist den dafür verantwortlich zu bestimmen was mit dem "errechneten" geschiet? -> Pixeldarstellung auf dem Bildschirm, beschreiben der harddisc, usw?

    Es gibt verschiedene Softwareebenen, mit denen man dies erreichen kann. Auf hoher Ebene kann man sagen "Lade mir Textur X auf Koordinate Y", auf unterer Ebene müssen dazu CPU Register und Speicherbereiche bemüht werden.

    Kommt der Kernel nur bei Betriebssystem relevanten Aufgaben zum Einsatz?


    Definitionssache. Der Kernel (bzw. der Sheduler) vergiebt z.B. Prozessorkapazität an einzelne Programme.

    EDIT:
    Noch was, giebt es einen Unterschied in der Nutzung der "Softwarearchitektur" / Schichten (Oder wie auch immer ich das nennen soll..) zwischen höheren Programmiersprachen (z.b. Phyton) und beispielsweise C+. (Phython muss ja, (zumindest soweit ich zu wissen glaube), nicht kompiliert werden..)

    C++ wird direkt in Maschinencode übersetzt, Python idr. in Bytecode.

    Die Skriptsprachen wie Python oder Perl sind stets auf einen in Maschinencode Interpreter angewiesen. Dieser Interpreter führt dann wie ein Programm das Skript aus. Welche Möglichkeiten es damit gibt und welche Schicht damit letzten Endes damit angesprochen wird, hängt von den Fähigkeiten der Skriptsprache ab.

    Der Umgang mit Python unterscheidet sich mit der verwendeten Umgebung. Kodi übersetzt Python Code in Bytecode, um eine zügige Ausführun zu gewährleisten.


    Durchsuch am besten mal 15 Minuten Wikipedia. Da steht mehr, als wir dir in unserer inperfekten Weise mitteilen können-

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!