Эта статья требует дополнительных ссылок для проверки . ( октябрь 2012 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Современная компьютерная операционная система , как правило , выделяет виртуальную память в пространстве ядра и пользовательского пространства . [a] В первую очередь, это разделение служит для обеспечения защиты памяти и защиты оборудования от злонамеренного или ошибочного поведения программного обеспечения.
Пространство ядра строго зарезервировано для запуска ядра привилегированной операционной системы , расширений ядра и большинства драйверов устройств . Напротив, пространство пользователя - это область памяти, в которой выполняется прикладное программное обеспечение и некоторые драйверы.
Обзор [ править ]
Термин пользовательские программы (или в пространстве пользователя) относится ко всему коду , который работает вне ядра операционной системы. [1] Userland обычно относится к различным программам и библиотекам, которые операционная система использует для взаимодействия с ядром: программное обеспечение, которое выполняет ввод / вывод , управляет объектами файловой системы , прикладное программное обеспечение и т. Д.
Каждый процесс пользовательского пространства обычно выполняется в собственном пространстве виртуальной памяти и, если это явно не разрешено, не может получить доступ к памяти других процессов. Это основа защиты памяти в современных основных операционных системах и строительный блок для разделения привилегий . Отдельный пользовательский режим также можно использовать для создания эффективных виртуальных машин - см. Требования к виртуализации Попека и Голдберга . Обладая достаточными привилегиями, процессы могут запрашивать ядро для отображения части пространства памяти другого процесса на его собственное, как в случае с отладчиками . Программы также могут запрашивать общую памятьрегионов с другими процессами, хотя доступны и другие методы, позволяющие осуществлять обмен данными между процессами .
Пользовательский режим | Пользовательские приложения | bash , LibreOffice , GIMP , Blender , 0 AD , Mozilla Firefox , ... | ||||
---|---|---|---|---|---|---|
Системные компоненты | Демоны : Systemd , runit , udevd , polkitd , SSHD , Smbd ... | Оконный менеджер : X11 , Wayland , SurfaceFlinger (Android) | Графика : Mesa , AMD Catalyst , ... | Другие библиотеки: GTK , Qt , EFL , SDL , SFML , FLTK , GNUstep , ... | ||
Стандартная библиотека C | fopen , execv , malloc , memcpy , localtime , pthread_create ... (до 2000 подпрограмм ) Glibc цели , чтобы быть быстрой, MUSL и uClibc целевых встроенные системы, бионические , написанные для Android и т.д. Все стремятся быть POSIX / SUS -Совместимы. | |||||
Режим ядра | Ядро Linux | stat , splice , dup , read , open , ioctl , write , mmap , close , exit И т.д. (около 380 системных вызовов) Ядро Linux Интерфейс системных вызовов (SCI, цели быть POSIX / SUS -Совместим) [ править ] | ||||
Подсистема планирования процессов | Подсистема IPC | Подсистема управления памятью | Подсистема виртуальных файлов | Сетевая подсистема | ||
Другие компоненты: ALSA , DRI , evdev , LVM , устройство картографа , Linux Network Scheduler , Netfilter Модули безопасности Linux : SELinux , Tomoyo , AppArmor , Хлопайте | ||||||
Аппаратное обеспечение ( ЦП , основная память , устройства хранения данных и т. Д.) |
Реализация [ править ]
Наиболее распространенный способ реализации пользовательского режима отдельно от режима ядра - это кольца защиты операционной системы .
Другой подход, принятый в экспериментальных операционных системах, заключается в том, чтобы иметь единое адресное пространство для всего программного обеспечения и полагаться на семантику языка программирования, чтобы гарантировать невозможность доступа к произвольной памяти - приложения просто не могут получить какие-либо ссылки на объекты, которые им запрещены. доступ. [2] [3] Этот подход был реализован в JXOS , Unununium, а также в исследовательском проекте Microsoft Singularity .
См. Также [ править ]
- BIOS
- Режимы ЦП
- Защита памяти
Заметки [ править ]
- ^ Старые операционные системы, такие как DOS и Windows 3.1x , не используют эту архитектуру.
Ссылки [ править ]
- ^ "userland, n." Жаргон файла . Эрик С. Раймонд . Проверено 14 августа 2016 .
- ^ "Введение в систему Unununium" . Архивировано из оригинала на 2001-12-15 . Проверено 14 августа 2016 .
- ^ "uuu / docs / system_introduction / uuu_intro.tex" . Руководство по внедрению системы UUU . 2001-06-01 . Проверено 14 августа 2016 .
Внешние ссылки [ править ]
- Определение пространства ядра Linux
- Вход в режим пользователя на Wayback Machine (архивировано 26 марта 2016 г.)