Unter Linux sind die Systemaufrufe in C-Header-Dateien verfügbar.Sind Systemaufrufe in anderen Sprachen als C verfügbar?
Ich frage mich, ob die Systemaufrufe eines Betriebssystems in anderen Sprachen verfügbar sind?
Wenn ich richtig bin, sind Systemaufrufe Betriebssystem-spezifisch. Oder korrigiere mich, wenn ich falsch liege.
In C++, Java, Python, OCaml und anderen High-Level-Sprachen gibt es Betriebssystembibliotheken in diesen Sprachen. Sind das nicht Systemaufrufe, sondern APIs, die aufgrund von Systemaufrufen implementiert werden? Sind ihre Schnittstellen vom Betriebssystem unabhängig (z. B. die gleiche Programmierschnittstelle unter Linux und Windows)?
Java läuft auf JVM, also denke ich, dass seine OS-bezogenen Funktionen OS-unabhängig sind.
Python läuft auf seinen Interpretern, die normalerweise über Betriebssysteme verfügbar sind, also denke ich, dass seine OS bezogenen Sachen OS-unabhängig sind.
Danke.
Was, wie eine Art von [Portable Operating System Interface] (https://en.wikipedia.org/wiki/POSIX)? –
Ihre Frage ist sprachabhängiger als vom Betriebssystem abhängig. Beispielsweise könnten Sie eine LISP-Funktion in Assemblersprache schreiben, die eine OS-API aufruft und dann die Funktion aus LISP-Code aufruft. Auch hier müßtest du * jede * Sprache recherchieren, um deine Frage beantworten zu können. –
Nehmen wir ein anderes Beispiel: Fortran. Die Fortran-Sprache verfügt über eine spezifizierte Schnittstelle zum Aufrufen von Funktionen (z. B. Übergabe und Rückgabe von Parametern). Ich kann eine Funktion in Assembler schreiben, die einen SPI-Bus-Port liest und den gelesenen Wert zurückgibt. Solange meine Assemblersprache den Fortran-Aufrufkonventionen entspricht, kann ich sie mit meinem Fortran-Programm verknüpfen und von Fortran aus aufrufen. –