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

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

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

Ввод и вывод в Linux

Система файлов Linux, ориентированная на устройства, осуществляет доступ к дисковой памяти с помошью двух кэшей:

  • Данные хранятся в кэше страниц, который объединен с системой виртуальной памяти;
  • Метаданные хранятся в буферном кэше, причем каждый кэш индексируется блоком диска.

Linux разбивает устройства на три класса:

Блочные устройства допускают произвольный доступ к полностью независимым блокам данных фиксированного размера.

Символьные устройства включают большую часть всех других устройств; они не нуждаются в поддержке функциональности обычных файлов.

Сетевые устройства взаимодействуют с сетевой системой ядра.

Модульная структура драйверов устройств в Linux изображена на рис. 26.5.

Модульная структура драйверов устройств.

увеличить изображение
Рис. 26.5. Модульная структура драйверов устройств.

Блочные устройства обеспечивают основной интерфейс ко всем дисковым устройствам в системе. Блочный буферный кэш служит для двух основных целей:

  • Как буферный пул для активного ввода-вывода
  • Как кэш для завершенного ввода-вывода.

Менеджер запросов управляет чтением и записью содержимого буферов с помощью драйвера блочного устройства.

Символьные устройства. Драйвер символьного устройства не поддерживает произвольный доступ к фиксированным блокам данных.

Драйвер символьного устройства регистрирует набор функций, реализующих разнообразные требуемые операции ввода-вывода.

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

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

Взаимодействие процессов в Linux

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

Существует ограниченный набор сигналов, и они не могут нести какую-либо информацию: только факт, что сигнал имеет место, доступен процессу.

Ядро Linux не использует сигналы для коммуникации процессов, исполняемых в режиме ядра. Коммуникация внутри ядра осуществляется с помощью структур планировщикаstates ( состояния ) и wait.queue (очередь ожидания).

Механизм конвейера (pipe) позволяет дочернему процессу наследовать коммуникационный канал от процесса-родителя. Данные, записываемые с одного конца конвейера, могут быть прочитаны на другом конце.

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

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

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

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

Разделяемые объекты помнят свое содержимое, даже если в данный момент никакие процессы не отображают их в свои виртуальные пространства памяти.

Структура сети в Linux

Работа в сети – ключевая область функциональности в Linux.

Сетевая система Linux поддерживает основные Интернет-протоколы для коммуникаций UNIX - UNIX. Она также реализует протоколы, характерные для ОС, отличных от UNIX, в частности, протоколы, используемые в сетях PC, таких как Appletalk и IPX.

Сетевая система Linux реализована в виде трех уровней абстракции:

  • Сокетный интерфейс
  • Драйверы протоколов
  • Драйверы сетевых устройств.

Наиболее важный набор сетевых протоколов в Linux – это набор протоколов Интернета.

Сетевая система Linux обеспечивает маршрутизацию между различными машинами на любом участке сети. На верхнем уровне протокола маршрутизации поддерживаются UDP-, TCP- и ICMP-протоколы.

Безопасность в Linux

В системе Linux реализованы подключаемые аутентификационные модули (pluggable authentication modules - PAM основаны на общей библиотеке, которая может быть использована любыми компонентами, где требуется аутентифицировать пользователя).

Управление доступом в системах типа UNIX, включая и Linux, осуществляется с помощью уникальных числовых идентификаторов пользователя и группы ( uid и gid ).

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

Linux дополняет стандартный механизм UNIX ( setuid ) двумя способами:

  • Реализует этот механизм по спецификации POSIX, что позволяет каждому процессу многократно освобождать и вновь получать свой действующий uid.
  • Добавлена характеристика процесса, которая предоставляет лишь подмножество полномочий, согласно действующему uid.

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

Развитие и использование Linux

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

Кроме того, в России на основе Linux разработана отечественная ОС для школьников - Альт- Линукс.

В целом, перспективы Linux мы считаем весьма многообещающими.

< Лекция 25 || Лекция 26: 1234 || Лекция 27 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Олег Волков
Олег Волков
Россия, Балаково, МБОУ СОШ 19