мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
notes:howlinuxworks:vol1 [2026/05/12 14:06] radi0devnotes:howlinuxworks:vol1 [2026/05/12 17:17] (текущий) radi0dev
Строка 1: Строка 1:
 ====== Глава 1: Общая картина ====== ====== Глава 1: Общая картина ======
  
-===== 1.1 уровни абстракции =====+===== 1.1 Уровни абстракции =====
  
 linux можно поделить на 3 уровня обстракции: hardware -> kernel -> processes linux можно поделить на 3 уровня обстракции: hardware -> kernel -> processes
Строка 14: Строка 14:
  
  
-===== 1.3 ядро =====+===== 1.3 Ядро =====
  
 Ядро отвечает за управление задачами в четырех основных областях Ядро отвечает за управление задачами в четырех основных областях
Строка 23: Строка 23:
   * Системные вызовы и поддержка. Процессы обычно используют системные вызовы для связи с ядром.   * Системные вызовы и поддержка. Процессы обычно используют системные вызовы для связи с ядром.
  
-==== 1.3.1 управление процессами ====+==== 1.3.1 Управление процессами ====
  
 **переключение контекста** - это акт передачи одним процессом управления процессором другому процессу. **переключение контекста** - это акт передачи одним процессом управления процессором другому процессу.
Строка 40: Строка 40:
 Переключение контекста позволяет понять, когда именно запускается ядро. Суть заключается в том, что ядро запускается между временными квантами процесса во время переключения контекста. Переключение контекста позволяет понять, когда именно запускается ядро. Суть заключается в том, что ядро запускается между временными квантами процесса во время переключения контекста.
  
-==== 1.3.2 управление памятью ====+==== 1.3.2 Управление памятью ====
  
 Ядро должно управлять памятью во время переключения контекста, а это довольно сложная задача. Должны выполняться следующие условия: Ядро должно управлять памятью во время переключения контекста, а это довольно сложная задача. Должны выполняться следующие условия:
Строка 59: Строка 59:
 ++++ ++++
  
-==== 1.3.3 управления драйверами устройств ====+==== 1.3.3 Управления драйверами устройств ====
  
 Роль ядра в работе с устройствами относительно проста. Устройство обычно доступно только в режиме ядра, поскольку неправильный доступ (например, пользовательский процесс, запрашивающий отключение питания) может привести к сбою системы. Значительная проблема заключается в том, что различные устройства редко имеют один и тот же интерфейс программирования, даже если устройства выполняют одну и ту же задачу (например, две разные сетевые карты). Поэтому драйверы устройств традиционно являются частью ядра, и они стремятся представить единый интерфейс для пользовательских процессов, чтобы упростить работу разработчика программного обеспечения. Роль ядра в работе с устройствами относительно проста. Устройство обычно доступно только в режиме ядра, поскольку неправильный доступ (например, пользовательский процесс, запрашивающий отключение питания) может привести к сбою системы. Значительная проблема заключается в том, что различные устройства редко имеют один и тот же интерфейс программирования, даже если устройства выполняют одну и ту же задачу (например, две разные сетевые карты). Поэтому драйверы устройств традиционно являются частью ядра, и они стремятся представить единый интерфейс для пользовательских процессов, чтобы упростить работу разработчика программного обеспечения.
  
-==== 1.3.4 системные вызовы и поддержка ====+==== 1.3.4 Системные вызовы и поддержка ====
  
 Существует несколько других функций ядра, доступных пользовательским процессам. К примеру, системные вызовы (system calls, syscalls) выполняют определенные задачи, которые сам по себе пользовательский процесс выполнить не может. Например, все действия по открытию, чтению и записи файлов связаны с системными вызовами. Существует несколько других функций ядра, доступных пользовательским процессам. К примеру, системные вызовы (system calls, syscalls) выполняют определенные задачи, которые сам по себе пользовательский процесс выполнить не может. Например, все действия по открытию, чтению и записи файлов связаны с системными вызовами.
Строка 71: Строка 71:
 P.S Технически пользовательский процесс, который обращается к псевдоустройству, должен задействовать системный вызов, чтобы открыть устройство, поэтому процессы не могут полностью избежать применения системных вызовов. P.S Технически пользовательский процесс, который обращается к псевдоустройству, должен задействовать системный вызов, чтобы открыть устройство, поэтому процессы не могут полностью избежать применения системных вызовов.
  
-===== 1.4. пользовательское пространство =====+===== 1.5Пользователи ===== 
 + 
 +Ядро Linux поддерживает традиционную концепцию пользователя Unix. Пользователь (user) — это сущность, которая может запускать процессы и владеть файлами. 
 + 
 +Ядро не управляет именами пользователей, оно лишь идентифицирует пользователей с помощью простых числовых идентификаторов пользователей (**user ID**, **UID**).  
 + 
 +Пользователи существуют в основном для поддержки прав и границ в системе. Каждый процесс пользовательского пространства имеет владельца (**owner**) и, как говорят, выполняется от его имени. Пользователь может прекратить свои процессы или изменить их поведение (в определенных пределах), но не может вмешиваться в процессы других пользователей. Кроме того, пользователи могут владеть файлами 
 +и выбирать, делиться ли ими с другими пользователями. 
 + 
 +Помимо пользователей, ассоциируемых с реальными людьми, есть и т.н. системные пользователи, например пользователи-программы или суперпользователь (**root**), имеющий полный доступ (root access) к системе. Такой пользователь традиционно считается администратором системы.