Главная » Ядро Linux » Системные вызовы

0

дро операционной системы  предоставляет  набор  интерфейсов, благодаря  которым  процессы,  работающие в пространстве пользователя,  могут  взаимодействовать   с  системой. Эти  интерфейсы  предоставляют пользовательским  программам доступ к аппаратному  обеспечению  и другим  ресурсам операционной системы. Интерфейсы  работают как  посыльные между  прикладными  программами и  ядром, при  этом  пользовательские программы выдвигают различные запросы,  а ядро  выполняет  их (или приказывает  убираться подальше).  Тот факт,  что такие интерфейсы существуют,  а также то,  что прикладные  программы  не имеют  права непосредственно  делать  все, что им  заблагорассудится, является ключевым моментом для  обеспече-

ния  стабильности системы, а также  позволяет избежать крупных беспорядков.

Системные  вызовы  являются  прослойкой между аппаратурой  и процессами, работающими в  пространстве пользователя.  Эта  прослойка служит  для  трех  главных целей.  Во-первых,   она  обеспечивает  абстрактный интерфейс  между аппаратурой  и пространством пользователя.  Например, при записи  или  чтении  данных  из файла прикладным программам нет  дела  до типа  жесткого диска, до среды, носителя информации, и даже до типа  файловой системы, на  которой находится файл.  Во-вторых,  системные  вызовы  гарантируют безопасность  и стабильность  системы.  Так как ядро  работает посредником  между  ресурсами системы и  пространством пользователя,  оно может принимать  решение  о предоставлении  доступа в соответствии  с правами  пользователей и другими  критериями. Например, это  позволяет предотвратить возможность  неправильного использования аппаратных  ресурсов  программами, воровство  каких-либо   ресурсов  у других программ,   а также  возможность  нанесения вреда  системе. И  наконец, один  общий слой  между  пространством пользователя и остальной  системой  позволяет  осуществить  виртуальное  представление  процессов, как  обсуждается в главе 3, "Управление процессами".

Если  бы  приложения имели свободный доступ  ко  всем  ресурсам системы без  помощи  ядра,  то было бы почти  невозможно  реализовать  многозадачность  и виртуальную  память. В операционной системе Linux  системные вызовы являются единственным  средством,  благодаря которому пользовательские программы могут  связываться с  ядром; они  являются единственной законной точкой входа в ядро.  Другие  интерфейсы ядра, такие  как  файлы устройств или  файлы на  файловой системе /ргос , в конечном  счете сводятся  к обращению  через системные  вызовы.

Интересно,   что в ОС  Linux реализовано  значительно  меньше  системных  вызовов, чем  во  многих  других  операционных системах1.

В этой  главе  рассказывается о роли  и  реализации системных вызовов в операционной  системе  Linux.

Источник: Лав,  Роберт. Разработка ядра  Linux, 2-е  издание. : Пер.  с англ.  — М.  : ООО  «И.Д.  Вильяме» 2006. — 448 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии