
- •Основные понятия операционных систем.
- •Основные понятия, концепции ос
- •2. Классификация ос.
- •3. Функции операционных систем, сравнительный анализ операционных систем.
- •4. Ядро операционной системы, понятие, состав.
- •5.Архитектура ос. Преимущества и недостатки различных архитектур.
- •4 Преимущества и недостатки архитектуры ос с микроядром
- •Эволюция развития операционных систем.
- •Серверные операционные системы. Особенности.
- •Логическая организация файловой системы Linux. Структура и назначение каталогов.
- •Информация о группах и пользователях.
- •10.Разделы диска и таблица разбиения диска. Имена разделов в Linux.
- •Первичный (основной) раздел
- •Расширенный (дополнительный) раздел
- •Этапы загрузки операционных систем. Mbr.
- •Виды совместимостей операционных систем
- •Загрузчики. Оболочки. Утилиты. Репозиторий.
- •Классификация прикладного и системного программного обеспечения.
- •Процессы. Состояния процессов. Операции над процессами. Контекст и дескриптор процесса. Команды управления процессами.
- •Состояние процессов
- •Процесс init и файл /etc/inittab. Жизненный цикл процесса, приоритеты
- •Фоновый режим в Linux. Демоны. Запуск демонов.
- •Нити. Семафоры. Потоки. Жизненный цикл потока. Операции над потоками.
- •Перенаправление команд. Понятие конвейера.
- •Распределение памяти.
- •22. Критерии планирования
- •23. Классификация методов распределения памяти.
- •24. Схема с фиксированными разделами
- •Перемещаемые разделы
- •Свопинг
- •26. Управление ресурсами. Освобождение дискового пространства.
- •29. Монтирование и демонтирование файловой системы
- •30. Основные типы файлов. Права доступа к файлу. Операции над файлами
- •31. Перенаправление ввода-вывода, каналы и фильтры. Категории средств обмена информацией
- •32.Работа в командном режиме.Скрипты. Среда переменных.
- •33.Параметры и переменные. Окружение оболочки. История команд.
- •34.Квотирование. Особенности квотирования в Linux.
- •35. Основные конфигурационные файлы. Конфигурационный файл.
- •36.События, системные вызовы, прерываний, исключительные ситуации.
- •37. Команды управления сетью.
- •39.Безопасность в Linux. Администрирование системы Linux.Взлом Linux
- •40.Защитные механизмы ос.
Эволюция развития операционных систем.
Начиная с 1949 г., когда заработала первая цифровая вычислительная машина с запоминаемой программой, и до 1956 г. устройство и способ действия вычислительных машин оставался относительно постоянным. Их классическая фон неймановская архитектура была основана на строго последовательном выполнении команд, включая операции ввода-вывода. При загрузке и выполнении программ пользователи обычно работали за консолью непосредственно с машиной, устанавливая значения регистров, проверяя ячейки памяти и вообще взаимодействуя со своими вычислениями на самом низком машинном уровне. Программы писались на абсолютном машинном языке (десятичная и восьмеричная нотация) и при вводе им предшествовал абсолютный загрузчик). Средства автоматизации программирования либо отсутствовали, либо были минимальными — лишь на наиболее сложных установках имелись простые ассемблеры и интерпретаторы с незначительным использованием библиотечных стандартных программ.
Когда была признана важность символического программирования и ассемблирующие системы получили более широкое распространение, выработалась стандартная операционная процедура: ассемблер считывается загрузчиком; ассемблер преобразует в абсолютную форму “символические колоды” исходных программ пользователя с добавлением библиотечных стандартных программ; ассемблированная программа записывается на ленту или карты, а загрузчик снова используется для считывания карт этой программы в основную память; абсолютная программа затем выполняется. Каждый шаг требует манипуляций со стороны оператора и занимает много времени, в особенности по сравнению со временем, которое требуется ЭВМ для обработки карт на этом шаге.
“Первое поколение” операционных систем было вызвано к жизни упомянутой выше неэффективностью, а также другими соображениями. Эти дополнительные факторы включали: затраты на управление оборудованием; наличие других языков; развитие библиотечных программ и вспомогательных средств, в особенности относящихся к операциям ввода-вывода; неудобство трансляции в абсолютную программу, которая требовала, чтобы все программные секции и подпрограммы, необходимые для прогона, транслировались вместе первоначально и всегда при внесении изменений в любую из программ. Первые пакетные системы автоматизировали стандартную последовательность “загрузка/трансляция/загрузка/ выполнение” с помощью центральной управляющей программы, которая отыскивает и загружает требуемые системные программы (ассемблер, компилятор, загрузчик или библиотечные подпрограммы), а также управляет переходами от задания к заданию. Языковые трансляторы были переписаны для создания программ в перемещаемой, а не в абсолютной форме. Были разработаны связывающие загрузчики, позволяющие смешивать колоды, содержащие программы в исходной и перемещаемой объектной форме, затем также стало возможным хранить и библиотечные программы в перемещаемой объектной форме. Со стороны человека-оператора требовалось управление физическими устройствами, предназначенными для ввода и вывода пакетов, обслуживание нестандартных заданий и восстановление системы при отказах. Автор задания не имел непосредственного доступа к процессу выполнения его задания. В этих ОС защита была самой трудной и насущной проблемой: система могла быть легко разрушена самопроизвольно или пользователем, кроме того, какой-либо пользователь мог легко прочитать в составе своего задания следующее задание в пакете. Распределение ресурсов, в первую очередь основной памяти и устройств ввода-вывода, было в большей степени задачей языковых процессоров и программ пользователей, нежели ОС.
С точки зрения перспективы развития операционных систем различия в аппаратном обеспечении, чем различия, которые могут быть обнаружены в архитектуре аппаратуры и программного обеспечения; периоды же времени приблизительно совпадают с периодами развития поколения ЭВМ.
В период с 1959 до 1963 гг. несколько значительных аппаратных разработок получили широкое распространение и стимулировали развитие ОС. Важным аппаратурным новшеством был канал данных — простейшая ЭВМ со своей собственной системой команд, регистрами и устройством управления, которое управляет связью и передачей данных между основной ЭВМ и устройствами ввода-вывода. При получении запроса на ввод-вывод от центрального обрабатывающего устройства (ЦОУ) канал выполняет операцию ввода-вывода асинхронно и параллельно с продолжающейся работой ЦОУ; становится возможным совмещение во времени операций ввода-вывода и ЦОУ. Основная память разделяется ЦОУ и каналом, поскольку она хранит программы и данные для них. Вначале ЦОУ могло лишь опрашивать состояние канала, но вскоре стало ясно, что можно повысить эффективность, если бы канал с целью передачи сообщения мог также прерывать работу ЦОУ. в большинстве случаев при завершении операции ввода-вывода.
Были написаны более сложные системы программирования ввода-вывода с целью использования преимуществ потенциальной эффективности этой новой архитектуры. В их состав вошли программные средства буферизации для обеспечения автоматического считывания данных, прежде чем они понадобятся программе, и для помещения выходных данных в очередь, с тем чтобы отложить их вывод, а также стандартные программы обработки прерываний, которые должны реагировать на прерывания ввода-вывода и возвращать управление прерванным программам.
Прерывания стали использоваться, чтобы сигнализировать об исключительных внутренних условиях, таких, как арифметическое переполнение, и были добавлены команды для выборочного разрешения (включения), запрещения (выключения) и приостановки (задержки действия) механизмов прерывания.
По мере пополнения и усложнения задач ОС (воспринимаемой как “машина” типичным пользователем, который все больше отдаляется от реальной аппаратуры) оказалось необходимым определить более систематическим способом характеристики заданий и требований к ним. Для этой цели были введены языки управления заданиями.
Для этого периода характерно последовательная пакетная обработка с попыткой эффективно использовать каналы данных, прерывания и вспомогательную память. Однако обработка заданий по одному в каждый момент времени по-прежнему приводила к низкой активности канала для заданий с интенсивными вычислениями и к низкой активности ЦОУ для заданий с интенсивным вводом-выводом, даже если было достигнуто максимальное совмещение операций ЦОУ и канала.
С 1962 по 1969 г. в больших ОС стал почти повсеместно использоваться новый метод обработки заданий —мультипрограммирование, был также разработан новый способ выполнения вычислений, разделение времени, как альтернатива пакетной обработке. Большие дисковые устройства с быстрым доступом обеспечили непосредственно управляемую память для систем и библиотечных программ пользователей, а также для ожидающих обработки заданий пользователей. Во многие ЭВМ были введены аппаратные средства защиты команд и памяти; в некоторых больших машинах появились системы основной памяти с аппаратными средствами настройки адресов, которые допускали реализацию большой “виртуальной” памяти; стали более распространенными мультипроцессорные конфигурации, Проблемы распределения ресурсов и защиты стали более острыми и трудноразрешимыми в мультипрограммной среде, где много процессов могут одновременно запрашивать как совместное, так и монопольное использование ресурсов системы, часто должны передавать сигналы друг другу и могут являться потенциально “злонамеренными” или ошибочными. Именно в этот период исследование операционных систем стало одним из главных направлений в области вычислительной техники.
В это время начинают предлагать коммунальные услуги большие сети ЭВМ, построенные на основе линий связи. Сети предъявляют еще большие требования к системному программному обеспечению. Другие изменения в аппаратуре, такие, как появление управляющей памяти с возможностью перезаписи микропрограмм, иерархий устройств основной памяти с автоматической передачей информации между уровнями, экономичных ассоциативных запоминающих устройств, а также углубление параллелизма в обрабатывающих устройствах, в том числе программируемого, приведут к новым требованиям в отношении программного обеспечения и заставят глубже понимать принципы ОС. К современным направлениям в области разработки программного обеспечения можно отнести:
- выявление примитивов ОС для планирования ресурсов и процессов, которые могли бы быть реализованы с помощью аппаратуры, микропрограмм или стандартного программного обеспечения;
- человеко-ориентированные языки. управления заданиями;
- языки и системы, обеспечивающие параллелизм;
- подсистемы для измерения действия ОС;
- более универсальные схемы защиты.
Важный период развития вычислительных машин относится к началу 60-х – 1980 г. Для повышения эффективности использования процессорного времени вводится прием подкачки-откачки данных или spooling (сокращение от Simultaneous Peripheral Operation On Line) . Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.
Дальнейшее повышение эффективности использования процессора было достигнуто с помощью мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при однопрограммном режиме, а выполняет другую программу. Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы.