Интерфейсы ОС ЮНИКС.

ОС UNIX можно представить в виде многоуровневой системы. На нижнем уровне аппаратное обеспечение, состоящее из ЦП, памяти, дисков, терминалов и других устройств. На этом железе работает сама ОС UNIX. Её функции заключаются в управлении аппаратным обеспечением и предоставлении всем программам интерфейсов системных вызовов.

Программы обращаются к системным вызовам помещая аргументы в регистры центрального процессора ( иногда в стек) и выполняя команду эмулированного прерывания для переключения из пользовательского режима в режим ядра и передачи управления в ОС UNIX.

Так как язык Си не позволяет написать команду эмулированного прерывания, это делают библиотечные функции. Эти процедуры написаны на ассемблере, но они могут вызываться из программ, написанных на Си.

 

ОС UNIX подчиняется стандарту соглашений, написанному специально для неё: POSIX – Portable Operating System – переносимая ОС. IX – юниксобразная.

 

POSIX 1003.1 определяет набор библиотечных процедур, которые должна предоставлять соответствующая данному стандарту система UNIX. Большая часть этих процедур обращается к системному вызову, но некоторые могут быть реализованы вне ядра. Идея стандарта POSIX заключается в том, что производитель программного обеспечения использует только процедуры, описанные в стандарте 1003.1, чем гарантирует работоспособность программы на любой версии UNIX, поддерживающей этот стандарт.

Что бы обратиться к системному вызову программа на Си должна вызвать соответствующую библиотечную процедуру. В стандарте POSIXопределён именно интерфейс библиотечных функций, а не интерфейс системных вызовов. То есть стандарт POSIX определяет библиотечные процедуры, соответствующие системным вызовам: параметры этих процедур, действия и результат, возвращаемый системе.

Все версии UNIX содержат большое количество стандартных программ, которые могут различаться в разных версиях. К таким программам относятся: компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами.

Таким образом, подводя итог можно говорить о трёх интерфейсах в ОС UNIX:

1. Интерфейс системных вызовов.

2. Интерфейс библиотечных функций.

3. Интерфейс, создаваемый набором стандартных обслуживающих программ.

Именно третий интерфейс считается пользователями самой системой UNIX, на деле же этот интерфейс практически не имеет никакого отношения и легко может быть заменён. Например, введение графического интерфейса, ориентированного на использование мыши не потребовало никаких изменений в самой системе.