stringtranslate.com

Пользовательское пространство и пространство ядра

Современная компьютерная операционная система обычно использует виртуальную память для создания отдельных адресных пространств, называемых пространством пользователя и пространством ядра . [a] В первую очередь такое разделение служит для обеспечения защиты памяти и оборудования от вредоносного или ошибочного поведения программного обеспечения.

Пространство ядра строго зарезервировано для запуска привилегированного ядра операционной системы , расширений ядра и большинства драйверов устройств . Напротив, пользовательское пространство — это область памяти, в которой выполняются прикладное программное обеспечение и некоторые драйверы, обычно одно адресное пространство на каждый процесс.

Обзор

Термин « пространство пользователя» (или «страна пользователя ») относится ко всему коду, который выполняется вне ядра операционной системы. [1] Под пользовательским пространством обычно понимаются различные программы и библиотеки , которые операционная система использует для взаимодействия с ядром: программное обеспечение, выполняющее ввод/вывод , манипулирующее объектами файловой системы , прикладное программное обеспечение и т. д.

Каждый процесс пользовательского пространства обычно выполняется в собственном пространстве виртуальной памяти и, если это явно не разрешено, не может получить доступ к памяти других процессов. Это основа защиты памяти в современных операционных системах и строительный блок для разделения привилегий . Отдельный пользовательский режим также можно использовать для создания эффективных виртуальных машин — см. требования к виртуализации Попека и Голдберга . Обладая достаточными привилегиями, процессы могут запросить ядро ​​отобразить часть пространства памяти другого процесса в его собственное, как в случае с отладчиками . Программы также могут запрашивать области общей памяти с другими процессами, хотя доступны и другие методы, обеспечивающие межпроцессное взаимодействие .

Выполнение

Самый распространенный способ реализации пользовательского режима отдельно от режима ядра включает в себя кольца защиты операционной системы . Кольца защиты, в свою очередь, реализованы с помощью режимов ЦП . Обычно программы пространства ядра работают в режиме ядра , также называемом режимом супервизора ; обычные приложения в пользовательском пространстве запускаются в пользовательском режиме.

Многие операционные системы представляют собой операционные системы с единым адресным пространством — они имеют единое адресное пространство для всего кода пользовательского режима. (Код режима ядра может находиться в том же адресном пространстве или во втором адресном пространстве). Многие другие операционные системы имеют адресное пространство для каждого процесса, отдельное адресное пространство для каждого процесса пользовательского режима.

Другой подход, используемый в экспериментальных операционных системах, заключается в том, чтобы иметь единое адресное пространство для всего программного обеспечения и полагаться на семантику языка программирования, чтобы гарантировать невозможность доступа к произвольной памяти - приложения просто не могут получить какие-либо ссылки на объекты, доступ к которым им запрещен. доступ. [3] [4] Этот подход был реализован в JXOS , Unununium, а также в исследовательском проекте Microsoft Singularity .

Смотрите также

Примечания

  1. ^ Старые операционные системы, такие как DOS и Windows 3.1x , не используют эту архитектуру.

Рекомендации

  1. ^ "Пользовательское пространство, н." Файл жаргона . Эрик С. Рэймонд . Проверено 14 августа 2016 г.
  2. ^ "README Руководство администратора" . Git-репозитории Kernel.org .
  3. ^ "Введение в систему Унунуниум" . Архивировано из оригинала 15 декабря 2001 г. Проверено 14 августа 2016 г.
  4. ^ "ууу/docs/system_introduction/uuu_intro.tex". Руководство по ознакомлению с системой UUU . 01.06.2001 . Проверено 14 августа 2016 г.

Внешние ссылки