ABC Unix Выпуск 1.0.01
Total Page:16
File Type:pdf, Size:1020Kb
ABC Unix Выпуск 1.0.01 сент. 07, 2017 Оглавление 1 Операционная система GNU/Linux3 1.1 Операционная система GNU/Linux..............................3 2 Администрирование вычислительных сетей 115 2.1 Администрирование вычислительных сетей........................ 115 3 Открытые облачные системы 211 3.1 Открытые облачные системы................................. 211 i ii ABC Unix, Выпуск 1.0.01 Сквозной набор дисциплин для освоения технологий построения современных вычислительных систем на базе открытого программного обеспечения. Курсы лекций, курсовые работы и практиче- ские занятия базируются на программном обеспечения Red Hat совместимых операционных систем: RHEL, CentOS, Oracle Linux. Практические занятия проводятся на базе блейд-системы Fujitsu PRIMERGY BX400 S1. Оглавление 1 ABC Unix, Выпуск 1.0.01 2 Оглавление ГЛАВА 1 Операционная система GNU/Linux Дисциплина входит в вариативную часть образовательной программы подготовки студентов по направлению «09.04.01 Информатика и вычислительная техника». Курс предназначен для изу- чения основ установки, настройки и администрирования аппаратно-программных комплексов на базе блейд-систем под управлением Red Hat совместимых операционных систем. Лекционный курс дополняют практические занятия по: • установке и настройке операционной системы CentOS (RHEL, Oracle Linux) версий 6 и 7; • управлению пользователями, файловой системой и программным обеспечением; • настройке планировщика задач, системы протоколирования; • мониторингу аппаратно-программного комплекса; • созданию и обслуживанию RAID, BTRFS, LVM; • осуществлению мероприятий по обеспечению безопасности. Операционная система GNU/Linux Краткие сведения из теории операционных систем Основные понятия В процессе эволюции возникло несколько важных концепций, которые стали неотъемлемой частью теории и практики ОС. Рассматриваемые в данном разделе понятия будут встречаться и разъяс- няться на протяжении всего курса. Здесь дается их краткое описание. Прерывание Прерывание (interrupt) событие, генерируемое либо устройством (аппаратное), либо исполняемым кодом (программное). Аппаратное прерывание это асинхронное событие, которое не зависит от того, какой код исполняется процессором в данный момент. 3 ABC Unix, Выпуск 1.0.01 Защишенный режим (режим пользователя) В этом режиме код исполняется в защищенном режиме и имеет доступ к памяти пользовательских программ, тоько в соответствии с провами доступа. Не защищенный режим (режим ядра) В этом режиме работает код ядра операционной системы, который имеет полный доступ к памяти любых пользовательских программ. Системные вызовы В большинстве современных операционных систем поддерживается механизм, который позволяет пользовательским программам обращаться к функциям ядра. В ОС UNIX такой механизм назы- ваются системными вызовами. Системные вызовы организованы в виде библиотеки процедур (libc или glibc), которые загружают машинные регистры параметрами и осуществляют прерывание про- цессора, после чего управление передается обработчику данного вызова, в ядре операционной систе- мы. Главной особенностью системных вызовов является то, что они выполняются в незащищенном режиме, в отличии от обычных процедур пользователя, выполняющихся в защищенном режиме. В ОС UNIX системный вызов осуществляется командой программного прерывания (INT). Поэто- му, их иногда еще называют программными прерываниями в отличие от аппаратных прерываний, которые чаще всего называют просто прерываниями. Исключительные ситуации Исключительная ситуация (exception) событие, возникающее в результате попытки выполнения программой недопустимой команды. Исключительные ситуации так же, как и системные вызовы, являются синхронными событиями, возникающими в контексте текущей задачи. Исключительные ситуации можно разделить на исправимые и неисправимые. К исправимым относятся такие ис- ключительные ситуации, как отсутствие нужной информации в оперативной памяти. После устра- нения причины исправимой исключительной ситуации программа может продолжить выполнение. Возникновение в процессе работы операционной системы исправимых исключительных ситуаций является нормальным явлением. Неисправимые исключительные ситуации обычно возникают в результате ошибок в программах. Обычно операционная система реагирует на такие ситуации за- вершением программы, вызвавшей исключительную ситуацию. Файлы Файлы предназначены для хранения информации на внешних носителях, то есть принято, что ин- формация, записанная, например, на диске, должна находиться внутри файла. Обычно под файлом понимают именованную часть пространства на носителе информации. Главная задача файловой системы (file system) – скрыть особенности ввода-вывода и дать программисту простую абстракт- ную модель файлов, независимых от устройств. Для чтения, создания, удаления, записи, открытия и закрытия файлов также имеется обширная категория системных вызовов (создание, удаление, открытие, закрытие, чтение и т.д.). Пользователям хорошо знакомы такие связанные с органи- зацией файловой системы понятия, как каталог, текущий каталог, корневой каталог, путь. Для манипулирования этими объектами в операционной системе имеются системные вызовы. Структура вычислительной системы Любая вычислительная система состоит из: • технического обеспечения (процессора, памяти, устройств ввода вывода, дисковых устройств и т.д.), обычно объединенного магистральным соединением, которое называется шиной. 4 Глава 1. Операционная система GNU/Linux ABC Unix, Выпуск 1.0.01 • программного обеспечения (ПО). Все программное обеспечение принято делить на две части: • прикладное программное обеспечение • системное программное обеспечение Разделение ПО на прикладное и системное трудно формализовать. К прикладному ПО, как правило, относят разнообразные программы используемые обычным поль- зователем. Под системным ПО обычно понимают программы, обеспечивающие функционирование вычисли- тельной системы. Современную вычислительную систему общего назначения можно представить в виде следующей иерархической структуры: Пользователь ---------------------------------------+ Прикладные| программы| | -------------+| Системные||--- Программное обеспечение программы|| |--- Системные программы| Операционная|| система|| -------------+| ---------------------------------------+ Техническое обеспечение Операционная система является базовой состовляющей системного программного обеспечения. Определение операционной системы В монографии Э. Таненбаум “Операционные системы” приводятся несколько определений опера- ционной системы (ОС): • операционная система как виртуальная машина, • операционная система как менеджер ресурсов, • операционная система как диспетчер пользовательских запросов и программ, • операционная система как постоянно функционирующее ядро. На настоящий момент не существует адекватного определения для всех существующих разновид- ностей ОС. Проще сказать, что конкретная операционная система делает и для чего она нужна. Поэтому в следующих разделах рассматриается история и классификация ОС. Затем дается “опре- деление” UNIX-подобных операционных систем. Основные функции классической операционной системы 1. Планирование заданий и использования процессора. 2. Обеспечение программ средствами коммуникации и синхронизации. 3. Управление памятью. 4. Управление файловой системой. 1.1. Операционная система GNU/Linux 5 ABC Unix, Выпуск 1.0.01 5. Управление вводом-выводом. 6. Защита программ и данных пользователей Архитектурные особенности ОС Классификация по типу ядра Исторически сложилось, что все операционные системы, начиная с самых первых и до самых совре- менных, принадлежат к одному из двух классов, которые различаются архитектурой построения ядра: - макроядро, появилось первым, другое название - монолитное ядро. К этому классу отно- сится большая часть известных операционных систем: IBM OS/360, RSX-11, VAX-VMS, MS-DOS, OS/2, GNU/Linux, все клоны BSD, Sun Solaris; - микроядро возникло позже, другие названия: клиент-серверные операционные системы и системы с обменом сообщениями. К этому классу от- носятся: QNX, MINIX 3, HURD, ядро Darwin MacOS. Макроядро В макроядерной архитектуре все запросы приложения выполняют отдельные ветви кода внутри ядра. Приложение A, когда ему необходим доступ к определенному сервису, формирует системный вызов к ядру, который передается через единую для всех типов запросов точку входа. Код ядра вы- полняет полученный системный вызова в пространстве ядра, и по завершению копирует результат в адресное пространство процесса A. В данном типе архитектуры значительно больше системных вызовов (порядка нескольких сотен), чем в микроядре. В операционных системах с монолитным ядром сборка ядра, осуществляется отдельно для каждого компьютера, на который устанавливает- ся операционная система. При этом выбирается список оборудования и программных протоколов, поддержка которых будет включена в ядро. Единственный способ добавить в монолитное ядро но- вые компоненты или исключить неиспользуемые - это перекомпиляция. Присутствие в ядре лишних компонентов крайне нежелательно, так как ядро полностью располагается в оперативной памяти. Кроме того, исключение ненужных компонент повышает надежность операционной системы. Для системы промышленного уровня, когда необходимо обеспечить поддержку широкого спектра обо- рудования, часть которого еще неизвестна в момент написания ядра, технология макроядра уже не подходит. Поэтому современные монолитные операционные системы поддерживают ту или иную модель динамической реконфигурации. Макроядро с поддержкой модулей Одной из технологий динамической реконфигурации монолитного ядра является т.н. технология