
- •Unix: учебный курс Алексей Федосеев
- •Несколько слов об этом курсе
- •Методические рекомендации Введение для лектора
- •Порядок изучения материалов
- •Часть I. Лекции Глава 1. Введение в операционную систему unix
- •Основные концепции операционных систем Обзор компьютерных систем
- •Назначение операционной системы
- •Операционная система как виртуальная машина
- •Операционная система как менеджер ресурсов
- •Архитектура операционной системы
- •Монолитная операционная система
- •Микроядерная операционная система
- •Место unix в истории вычислительных систем
- •Что было до операционных систем
- •Операционные системы для мэйнфреймов
- •Появление операционной системы unix
- •Развитие операционных систем в глобальных сетях
- •Операционные системы для персональных компьютеров
- •Операционные системы для встраиваемых систем
- •Такой разный unix
- •Классификация операционных систем по назначению
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Файлы и устройства Особенности архитектуры unix
- •Два кита unix: файлы и процессы
- •Беглый взгляд на архитектуру unix
- •Ядро unix
- •Файловая система unix
- •Особенности файловой системы
- •Виртуальная файловая система
- •Дерево каталогов
- •Устройства и драйверы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Процессы
- •Управление памятью
- •Управление процессами
- •Контекст процесса
- •Планирование процессов
- •Создание новых процессов
- •Процессы и потоки
- •Межпроцессное взаимодействие
- •Разделяемая память
- •Переменные окружения
- •Сигналы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 2. Использование unix
- •Терминал и командная строка
- •Терминал
- •Управляющие символы
- •Одновременный доступ к системе
- •Командная строка
- •Командная оболочка
- •Приглашение
- •Команды
- •Параметры
- •Шаблоны
- •Перенаправление ввода и вывода
- •Программное окружение
- •Стандартные переменные окружения
- •Служебные символы
- •Процесс выполнения команды
- •Возвращаемое значение
- •Эффективное использование командной строки
- •Редактирование командной строки
- •История команд
- •Автодополнение
- •Средства объединения команд
- •Справочная подсистема
- •Страницы руководства
- •Поиск по руководствам
- •Программа info
- •Документация, поставляемая с программой
- •Интегрированные системы документации
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Введение в безопасность unix
- •Основы информационной безопасности
- •Политика безопасности
- •Управление доступом
- •Аутентификация и авторизация
- •Концепции безопасности unix
- •Пользователи и группы
- •Права доступа
- •Разделяемые каталоги
- •Подмена идентификатора процесса
- •Ограничения базовой модели доступа и её расширения
- •Суперпользователь
- •Аутентификация пользователей
- •Управление пользователями и правами доступа База данных пользователей системы
- •Изменение базы данных пользователей
- •Изменение прав доступа
- •Ограничения сеанса пользователя
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Сеть в unix
- •Введение в сети
- •Семиуровневая модель osi
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Протоколы Internet: tcp/ip
- •Сетевой интерфейс в unix
- •Конфигурация ip-сетей Сетевой адрес
- •Маршрутизация
- •Служебный протокол icmp
- •Информация о соединениях
- •Настройка сети при загрузке системы
- •Службы Internet Служба доменных имён
- •Удалённый терминал
- •Прокси-серверы
- •Межсетевой экран
- •Концепции iptables
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 3. Базовое администрирование unix
- •Управление службами
- •Загрузка операционной системы Этапы загрузки системы
- •Процесс init
- •Конфигурационный файл init
- •Различия в загрузке unix-подобных систем
- •Системы, наследующие System V
- •Системы, наследующие bsd
- •Системы со смешанной схемой загрузки
- •Системные службы
- •Запуск и остановка служб
- •Автоматическая загрузка служб
- •Какие бывают службы
- •Служба планирования заданий
- •Конфигурация планировщика заданий
- •Запуск программ
- •Сетевые службы
- •Мониторинг и журналирование
- •Служба системного журнала
- •Основные системные журналы
- •Ротация системных журналов
- •Мониторинг пользователей
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Управление программным обеспечением
- •Управление программным обеспечением: роли и задачи Основные роли в создании и использовании по
- •Задачи системы управления программным обеспечением
- •Формы распространения программного обеспечения в двоичной форме или в исходных текстах?
- •Сборочные процедуры как средство управления по
- •Дистрибутивы
- •Дистрибутивы, основанные на сборке программ из исходных текстов
- •Дистрибутивы, основанные на двоичных пакетах
- •Управление пакетами
- •Задачи менеджера пакетов
- •Менеджер пакетов rpm
- •Работа с репозитариями пакетов: apt
- •Источники программ (репозитории)
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Часть II. Практические занятия
- •Глава 4. Практические занятия по командам unix
- •Методические указания по основным командам unix
- •Команды по работе с файловой системой
- •Команды по работе с текстом
- •Команды, использующие регулярные выражения
- •Практическое занятие. Работа с файлами в unix
- •Сценарий: Знакомство с каталогами unix
- •Сценарий: Изучение типов файлов в unix
- •Сценарий: Поиск системных журналов
- •Сценарий: Архивирование и деархивирование файлов и каталогов
- •Сценарий: Cоздание новых текстовых файлов
- •Сценарий: Разрезание и склеивание файлов
- •Сценарий: Быстрый анализ текстов
- •Сценарий: Поиск строк по регулярным выражениям
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Работа с файлами в unix
- •Методические указания по командам управления системой в unix Команды получения сведений о системе
- •Команды по работе с процессами
- •Практическое занятие. Сбор сведений о системе и управление процессами
- •Сценарий: Сбор сведений о системе
- •Сценарий: Управление процессами с помощью сигналов
- •Сценарий: Выполнение задач в фоновом режиме
- •Сценарий: Запуск демонов
- •Сценарий: Изменение приоритетов выполняющихся программ
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Сбор сведений о системе и управление процессами
- •Глава 5. Практическое занятие по безопасности unix
- •Методические указания по командам управления безопасностью в unix Команды по управлению правами
- •Команды по управлению пользователями
- •Практическое занятие. Управление доступом. Управление пользователями Сценарий: Вход в систему и завершение сеанса
- •Сценарий: Изучение базовых прав доступа
- •Сценарий: Переход в режим суперпользователя
- •Сценарий: Изучение базы данных пользователей
- •Сценарий: Добавление и удаление пользователей
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление доступом. Управление пользователями
- •Глава 6. Практические занятия по сетям в unix
- •Методические указания по командам управления сетью в unix Команды по конфигурированию сети
- •Команды по диагностике сети
- •Сценарий: Настройка таблицы маршрутизации
- •Сценарий: Изучение службы доменных имён
- •Сценарий: Простая диагностика работы сети
- •Сценарий: Работа по удалённому терминалу
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление сетью
- •Практическое занятие. Расширенная диагностика и настройка сети
- •Сценарий: Сканирование локальной сети
- •Сценарий: Сканирование удалённых хостов
- •Сценарий: Настройка сетевого экрана
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Расширенная диагностика и настройка сети
- •Глава 7. Обзор прикладных программ
- •Программы сетевого обмена sendmail: программа отправления почты
- •Параметры команды
- •Wget: консольный загрузчик файлов
- •Параметры команды
- •Настройка
- •Глава 8. Практические занятия по базовому администрированию unix
- •Методические указания по командам управления службами и журналами Текстовые редакторы
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Режимы работы
- •Команды по управлению службами
- •Команды по мониторингу пользователей
- •Практическое занятие. Управление службами
- •Сценарий: Загрузка системы
- •Команды по работе с репозитарием пакетов
- •Установка или обновление пакета
- •Удаление установленного пакета
- •Обновление всех установленных пакетов
- •Поиск пакетов
- •Приложение a. Список вопросов
Дополнительные материалы
Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. — СПб.: Питер, 2002. — 672 с.: ил.
Курячий Г.В., Маслинский К.А. Операционная система Linux. — М.: Интуит.Ру, 2005. — 392 с.: ил.
Вопросы
Какие уровни входят в модель ISO OSI? Какие можно провести аналогии с реально существующими протоколами?
Что такое сетевой интерфейс в UNIX? Для чего он используется и каким образом настраивается?
Как управлять IP-маршрутизацией в UNIX?
Что такое служба доменных имён в UNIX? Как она конфигурируется?
Какие функции выполняет межсетевой экран? Каковы принципы управления межсетевым экраном iptables?
Презентация
Рисунок 2.36. Презентация 6-01: введение в сети
Рисунок 2.37. Презентация 6-02: взаимодействие открытых систем
Рисунок 2.38. Презентация 6-03: протоколы Internet: TCP/IP
Рисунок 2.39. Презентация 6-04: сетевой интерфейс в UNIX
Рисунок 2.40. Презентация 6-05: сетевой адрес
Рисунок 2.41. Презентация 6-06: маршрутизация
Рисунок 2.42. Презентация 6-07: протокол ICMP
Рисунок 2.43. Презентация 6-08: сетевые соединения
Рисунок 2.44. Презентация 6-09: служба доменных имён
Рисунок 2.45. Презентация 6-10: удалённый терминал
Рисунок 2.46. Презентация 6-11: межсетевой экран iptables
Рисунок 2.47. Презентация 6-12: резюме
Глава 3. Базовое администрирование unix
Содержание
Управление службами
Загрузка операционной системы
Системные службы
Мониторинг и журналирование
Резюме
Дополнительные материалы
Вопросы
Презентация
Управление программным обеспечением
Управление программным обеспечением: роли и задачи
Формы распространения программного обеспечения
Управление пакетами
Резюме
Дополнительные материалы
Вопросы
Презентация
Прошлые лекции были посвящены различным особенностям архитектуры UNIX, использованию этой операционной системы в локальной и сетевой работе, некоторым аспектам администрирования системы. В этой части речь пойдет о двух центральных задачах, встающих перед администратором любой UNIX-системы — об управлении службами и управлении программным обеспечением.
Управление службами
В этой лекции освещаются процесс загрузки UNIX-систем и запуск системных служб. Некоторые их них, такие как планировщик заданий или системный журнал, рассмотрены более подробно.
Загрузка операционной системы Этапы загрузки системы
Презентация 7-01: этапы загрузки системы
Загрузку операционной системы можно разделить на несколько этапов. Начальный этап загрузки не зависит от того, какая операционная система установлена на компьютере, он в первую очередь связан с особенностями архитектуры используемого компьютера. Затем следуют этапы загрузчиков, которые также могут не относиться к определённым операционным системам, после чего инициализируется ядро операционной системы и производятся специфические только для этой ОС операции.
Рассмотрим загрузку операционной системы UNIX как следующую последовательность этапов (Рисунок 3.1, «Этапы загрузки ОС UNIX»):
Рисунок 3.1. Этапы загрузки ОС UNIX
досистемный загрузчик
Как правило, сразу после включения питания программа ПЗУ BIOS проводит тестирование оборудования, затем запускается досистемный загрузчик.
Задача этого этапа — определить (возможно, с помощью пользователя), с какого устройства будет идти загрузка, загрузить оттуда специальную программу-загрузчик и запустить её. Например, выяснить, что устройство для загрузки — жесткий диск, считать самый первый сектор этого диска и передать управление программе, которая находится в считанной области.
загрузчик первого уровня
Загрузчик первого уровня занимает обычно не более одного сектора в самом начале диска — в его загрузочной записи. Загрузочная запись диска (Master Boot Record) — первый сектор диска, в котором хранится таблица разделов и код системного загрузчика.
Ядро операционной системы имеет довольно сложную структуру — а значит, и непростой способ загрузки; оно может быть довольно большим и может располагаться в произвольной област диска, подчиняясь законам файловой системы (например, состоять из нескольких частей, разбросанных по диску). Учесть все это первичный загрузчик не в состоянии, поэтому его задача — определить, где на диске находится загрузчик второго уровня, загрузить его в память и передать ему управление.
загрузчик второго уровня
Вторичный загрузчик — уже более сложная программа с интерфейсом пользователя, который даёт возможность выбирать операционную систему или параметры загрузки ядра. Чтобы продолжить загрузку, необходимо иметь доступ к образу ядра, поэтому зачастую в код загрузчика включается поддержка файловых систем. Более простые загрузчики в процессе предварительной установки сохраняют адреса всех блоков диска, в которых располагается файл с образом ядра.
В любом случае вторичный загрузчик читает образ ядра в определённый адрес памяти и передаёт туда управление.
Большинство операционных систем имеют собственные загрузчики первого и второго уровней. Однако существуют и универсальные загрузчики, не привязанные к конкретной операционной системе, например GRUB.
инициализация ядра операционной системы
Как мы уже выяснили ранее, ядро — очень сложная программа, взаимодействующая с различным оборудованием, поэтому прежде чем начать работу с системой, ядро необходимо проинициализировать.
Этот этап специфичен для различных операционных систем. В UNIX-подобных системах при этом обычно выводится информация отладочного характера о ходе загрузке ядра.
Первым делом ядро занимается определением параметров вычислительной подсистемы компьютера: выясняет тип и быстродействие центрального процессора, объем оперативной памяти, объем и структуру кэш-памяти; делает предположение об архитектуре компьютера в целом и многое другое.
На следующем шаге ядро определяет состав и архитектуру всего аппаратного наполнения компьютера: тип и параметры шин передачи данных и устройств управления ими (контроллеров), список внешних устройств, доступных по шинам, настройки этих устройств — диапазон портов ввода-вывода, адрес ПЗУ, занимаемое аппаратное прерывание, номер канала прямого доступа к памяти и т. п.
Ядро на основании параметра, переданного ему загрузчиком, выбирает корневой раздел — файловую систему, содержащую будущий каталог / и его подкаталоги (для системной начальной загрузки важны каталоги /etc, /bin, и /sbin). Корневой раздел монтируется в качестве /. После этого ядро запускает первый процесс — init (по умолчанию, /sbin/init).
процесс init
С этого момента операционная система обеспечивает полноценную функциональность всем исполняющимся процессам. В UNIX первым запускаемым процессом является init, о котором сказано в следующем разделе.