Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 26:

Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность

< Лекция 25 || Лекция 26: 1234 || Лекция 27 >

Ключевые термины

ELF (Executable and Linkage Format) – популярный формат файла исполняемого кода в UNIX и в Linux, основанный на представлении файла в виде совокупности секций.

Ext2FS файловая система в Linux, основанная на использовании блоков небольшого размера и многоуровневой косвенной адресации.

Linux proc – файловая системы в Linux, основанная на отсутствии явного хранения данных и вычислении данных при выполнении запросов на ввод-вывод.

TTY – традиционное обозначение терминальных устройств в UNIX и Linux.

Конвейер (pipe) - механизм взаимодействия процессов в UNIX и Linux, позволяющий дочернему процессу наследовать коммуникационный канал от процесса-родителя.

Партнерская куча (buddy-heap) - метод распределения физической памяти в Linux, основанный на расщеплении блоков памяти и объединении соседних свободных блоков.

Подключаемые аутентификационные модули (pluggable authentication modules - PAM) – динамически подключаемые модули аутентификации пользователей, используемые в Linux.

Краткие итоги

Система распределения физической памяти в Linux использует механизм партнерской кучи, основанный на расщеплении свободных блоков и на объединении соседних свободных блоков памяти.

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

При создании нового процесса его адресное пространство пусто и наполняется регионами виртуальной памяти по мере загрузки программ. Системный вызов fork полностью копирует в дочерний процесс адресное пространство процесса-родителя.

Для управления страницами используется механизм откачки и подкачки.

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

Linux поддерживает как a.out- , так и ELF-форматы файлов исполняемого кода; статическую и динамическую линковку.

В Linux реализована виртуальная файловая система (VFS), скрывающая различие между разными системами файлов. Основная файловая система Linux – Ext2fs, основанная на использовании блоков небольшого размера, битовой карты блоков и многоуровневой косвенной адресации. Другая файловая система – Linux proc – не хранит данные явно, а генерирует их при выполнении запросов на ввод-вывод.

Система ввода-вывода Linux использует кэш страниц и буферный кэш. Устройства разбиты на три класса – блочные, символьные и сетевые. Для блочных устройств используется блочный буферный кэш. Для символьных устройств поддерживаются специфические операции ввода-вывода и не поддерживается произвольный доступ к блокам данных. Особым образом организованы драйверы терминальных устройств (TTY), для которых ядро поддерживает стандартный интерфейс.

Как и в UNIX, в Linux сигнализация о событиях для пользовательских процессов реализуется с помощью сигналов. Процессы ядра не используют сигналы и взаимодействуют с помощью системных структур планировщика.

Для взаимодействия процессов используются конвейер (pipe) и разделяемые объекты в общей памяти.

Сетевая система Linux поддерживает как сетевые протоколы связи UNIXUNIX, так и протоколы ОС, отличных от UNIX. Реализация сетевой системы Linux имеет три уровня абстракции: сокетный интерфейс, драйверы протоколов и драйверы сетевых устройств. Поддерживается набор протоколов Интернета. Обеспечивается маршрутизация пакетов на любом участке сети. На верхнем уровне протокола маршрутизации поддерживаются протоколы UDP, TCP, ICMP.

Безопасность в Linux реализована на основе динамически подключаемых аутентификационных модулей. Управление доступом, как и в UNIX, осуществляется с помощью уникальных идентификаторов пользователя и группы и масок защиты. Реализована совместимость с POSIX – возможность многократно освобождать и получать uid процесса. Кроме того, реализована возможность выборочно передавать доступ к файлу любому серверному процессу.

Направления развития и использования Linux: новые ОС на основе ядра Linux (например, ОС для мобильных устройств Google Android) и обучение на основе Linux (российская ОС для школьников Альт Линукс).

Набор для практики

Вопросы

  1. На каких принципах основана система распределения физической памяти в Linux?
  2. Что такое партнерская куча?
  3. Как организована виртуальная память в Linux?
  4. Что такое регион виртуальной памяти?
  5. Какие форматы файлов исполняемого кода поддекрживает Linux?
  6. Каковы основные особенности формата ELF?
  7. Что такое статическая и динамическая линковка и в чем их сравнительные достоинства и недостатки?
  8. Что такое Linux VFS?
  9. По каким принципам организована файловая система Ext2FS?
  10. В чем особенность файловой системы Linux proc?
  11. На какие три класса подразделяются устройства ввода-вывода в Linux?
  12. Каковы особенности блочных устройств?
  13. Каковы особенности символьных устройств?
  14. Каковы особенности сетевых устройств?
  15. Какими способами взаимодействуют в Linux пользовательские процессы и процессы ядра?
  16. Что такое конвейер (pipe)?
  17. Какие три уровня абстракции реализованы в сетевой системе Linux?
  18. Что такое подключаемый аутентификационный модуль?
  19. Какая информация используется в Linux для защиты файлов?
  20. Какая ОС для мобильных устройств разработана на основе ядра Linux?
  21. Какая ОС для школьников разработана в России на основе Linux?

Упражнения

  1. Сравните и сформулируйте, в чем особенности системы управления физической памяти в Linux, по сравнению с методами управления памятью, рассмотренными в курсе.
  2. Сравните и сформулируйте, в чем особенности системы управления виртуальной памяти в Linux, по сравнению с методами управления памятью, рассмотренными в курсе.
  3. Сравните и сформулируйте, в чем особенности системы управления процессами в Linux, по сравнению с методами, рассмотренными в курсе.
  4. Смоделируйте файловую систему Ext2fs, ее основные структуры данных и операции.

Темы для курсовых работ, рефератов, эссе

  1. Обзор методов управления памятью в Linux (реферат).
  2. Обзор методов управления процессами в Linux (реферат).
  3. Обзор методов управления файлами и файловых систем в Linux (реферат).
  4. Операционная система для мобильных устройств Google Android на базе ядра Linux (реферат).
  5. Моделирование файловой системы Ext2fs, ее основных структур данных и операций (курсовая работа).
< Лекция 25 || Лекция 26: 1234 || Лекция 27 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Олег Волков
Олег Волков
Россия, Балаково, МБОУ СОШ 19