2016-03-26 14 views
-1

Linuxでは、システムコールはCヘッダーファイルで利用できます。システムコールはC言語以外の言語でも利用できますか?

OSのシステムコールが他の言語で利用できるのだろうか?

私が正しい場合、システムコールはOS固有のものです。もし私が間違っていれば、私を修正してください。

C++、Java、Python、OCamlなどの高級言語では、これらの言語でオペレーティングシステムライブラリが用意されています。それらはシステムコールではなく、システムコールに基づいて実装されたAPIですか?インターフェースはOSに依存しません(例えば、LinuxとWindowsの両方で同じプログラミングインターフェース)?

JavaはJVM上で動作しているので、OS関連のものはOSに依存しません。

Pythonは、通常はクロスOSで使用できるインタープリタで動作しているので、OS関連のものはOSに依存しません。

ありがとうございました。

+2

[Portable Operating System Interface](https://en.wikipedia.org/wiki/POSIX)のようなものですか? –

+0

あなたの質問はそれ以上です言語依存OSに依存します。たとえば、OS APIを呼び出してLISPコードから関数を呼び出すアセンブリ言語でLISP関数を記述することができます。繰り返しますが、あなたの質問に答えさせるために*すべての*言語を調べなければなりません。 –

+0

別の例を挙げましょう:Fortran。 Fortran言語には、関数の呼び出し(パラメータの受け渡しや戻りなど)のための特定のインタフェースがあります。アセンブリ言語でSPIバスポートを読み込み、読み取った値を返す関数を書くことができます。私のアセンブリ言語がFortran呼び出し規約に準拠している限り、FortranプログラムとリンクしてFortranから呼び出すことができます。 –

答えて

1

OSコールは常に利用可能です。

質問は、言語がそれらの呼び出しを行う能力を持っているかどうかです。

は、私はあなたがタグ付けされていない他の言語を含む、個別に各言語を研究提案:FORTRANを、BASICやPerl、LISP、ルビー、スキームなどの言語のための要件はありません

ハスケル、エイダ、共通のコアを持つこと。

+0

ありがとうございます。 「共通コアを持つ言語は必要ありません」では、「共通」とはどういう意味ですか?複数のOSで同じですか? – Tim

+0

すべてのコンピュータ言語が共通の構文やシステム機能にアクセスするための一般的な方法を共有しているとはみなせません。たとえば、JavaとC++は共通点を共有しています。しかし、C++とLISPは全く同じようには見えません。 –

関連する問題