В Linux системные вызовы доступны в файлах заголовков C.Доступны ли системные вызовы на других языках, кроме C?
Интересно, доступны ли системные вызовы ОС на других языках?
Если я прав, системные вызовы зависят от ОС. Или исправьте меня, если я ошибаюсь.
В языках C++, Java, Python, OCaml и других языках высокого уровня на этих языках имеются библиотеки операционных систем. Не являются ли они системными вызовами, но API-интерфейсами, которые реализованы на основе системных вызовов? Являются ли их интерфейсы независимыми от ОС (например, один и тот же программный интерфейс как для Linux, так и для Windows)?
Java работает на JVM, поэтому я думаю, что его ОС, связанный с ОС, не зависит от ОС.
Python работает на своих интерпретаторах, которые обычно доступны для перекрестных ОС, поэтому я думаю, что их продукты, связанные с ОС, не зависят от ОС.
Спасибо.
Что, как какой-то интерфейс [Portable Operating System] (https://en.wikipedia.org/wiki/POSIX)? –
Ваш вопрос больше Язык Зависит от ОС. Например, вы можете написать функцию LISP на языке ассемблера, которая вызывает API OS, а затем вызывает функцию из кода LISP. Опять же, вам нужно будет исследовать * каждый * язык, чтобы ответить на ваш вопрос. –
Возьмем еще один пример: Фортран. Язык Fortran имеет определенный интерфейс для вызова функций (таких как передача и возврат параметров). Я могу написать функцию на языке ассемблера, которая считывает порт шины SPI и возвращает прочитанное значение. Пока мой язык ассемблера соответствует соглашениям о назначении Fortran, я могу связать его с моей программой Fortran и вызвать его из Fortran. –