Пользовательское пространство (Операционные Системы)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 15:42, 25 мая 2019.

Пользовательское пространство — адресное пространство виртуальной памяти операционной системы, отводимое для пользовательских программ, в которой выполняются процессы пользователя и содержатся некоторые библиотеки. [1]

Описание

Современная компьютерная операционная система, в отличие от старых ОС, таких как DOS и Microsoft Windows 3.1x, обычно разделяет виртуальную память на пространство ядра и пространство пользователя. Прежде всего, это разделение служит для обеспечения защиты памяти и защиты оборудования от вредоносного или ошибочного поведения программного обеспечения.

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

Различные уровни в Linux, также показывающие разделение между пользовательским пространством и пространством ядра
Пользовательский режим Пользовательские приложения Например, bash, LibreOffice, GIMP, Blender, Mozilla Firefox, компьютерные игры и так далее
Низкоуровневые компоненты системы: Системные демоны:
systemd, runit, logind, networkd, PulseAudio, ...
"Оконная" система:
X11, Wayland, SurfaceFlinger (Android)
Другие библиотеки:
GTK+, Qt, Enlightenment Foundation Libraries(EFL), Simple DirectMedia Layer(SDL), Simple and Fast Multimedia Library(SFML), FLTK, GNUstep, и так далее.
Графика:
Mesa, AMD Catalyst, ...
C стандартная библиотека open(), exec(), sbrk(), socket(), fopen(), calloc(), ... (до 2000 подпрограмм)
Glibc стремится быть POSIX/SUS-совместимым, uClibc предназначается для встраиваемых систем, bionic написано для Android, и так далее.
Режим ядра Ядро Linux stat, splice, dup, read, open, ioctl, write, mmap, close, exit, и так далее (около 380 системных вызовов)
Интерфейс системных вызовов ядра Linux (SCI,совместим с POSIX / SUS )
Подсистема планирования
процессов
Подсистема IPC Подсистема управления
памятью
Подсистема виртуальных
файлов
Сетевая
подсистема
Другие компоненты: Advanced Linux Sound Architecture(ALSA), Direct Rendering Infrastructure(DRI), evdev, Logical Volume Manager(LVM), device mapper, Linux Network Scheduler, Netfilter
Модули безопасности Linux: Security-Enhanced Linux(SELinux), TOMOYO Linux, AppArmor, Smack (Linux security module) и так далее.
Аппаратное обеспечение (CPU, оперативная память, компьютерная память, и так далее)

Реализация

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

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

Источники

  1. User Space Definition // The Linux Information Project. [2005]. Дата обновления 08.02.2005. URL: http://www.linfo.org/user_space.html (дата обращения: 01.05.2019).
  2. User space // Wikimedia Foundation, Inc. [2019]. Дата обновления 26.01.2019. URL: https://en.wikipedia.org/wiki/User_space (дата обращения: 01.05.2019).

См. также