Mobile OS Мобильный операционные системы вступление сравнение
Операционные системы 2015, лекция № 1
-
Upload
aleksey-bragin -
Category
Education
-
view
237 -
download
4
Transcript of Операционные системы 2015, лекция № 1
Операционные Системы
1. Введение
Брагин Алексей Владимирович[email protected]
ИУ9, МГТУ им. Н.Э. Баумана
В этой лекции…
• Организационная часть• Обзор курса
• Об авторе
• Общая структура курса
• Правила
• Операционные системы• Что это?
© 2015 Брагин А.В. [email protected] 2
Информационные Ресурсы
• Вся актуальная информация по курсу:http://www.reactos.org/wiki/Study
• Информация по ReactOS• Список рассылки. Только для технических вопросов,
англоязычный[email protected]
• Техническое вики проекта ReactOShttp://www.reactos.org/wiki
• А.С.Танненбаум «Современные ОС» - основа
• в помощь!
© 2015 Брагин А.В. [email protected] 3
Обзор курса
• Один семестр
• Два модуля• Общая теория построения ОС
• Практика реализации ОС
• Лабораторные работы• Практические задачи, связанные с внутренним
устройством ОС
• Вы научитесь• Компилировать ОС собственными силами
• Модифицировать ядро и компоненты ОС
© 2015 Брагин А.В. [email protected] 4
Обзор курса. Результаты
• Что вы узнаете из этого курса?• Основные компоненты большинства ОС• Архитектура ОС• Наиболее важные интерфейсы и алгоритмы• Как сделаны популярные, современные ОС• Как сделаны малоизвестные, исследовательские ОС
• Зачем?• Большинство из вас не будет разрабатывать ОС• Но любой учёный или инженер должен понимать основы,
или «как оно работает»• Знания из этого курса помогут понять, как сделать лучшее
ПО, и найти лучший компромисс при разработке ПО.• Это интересно
© 2015 Брагин А.В. [email protected] 5
Что такое Операционная Система?
• Современный «компьютер» состоит из:• Одного или нескольких процессоров
• Основной памяти
• Дополнительной памяти
• Периферийного оборудования• Ввод, вывод
• Хранение
• Для управления всем этим нужно особое ПО –операционная система
© 2015 Брагин А.В. [email protected] 6
Что такое ОС? (2)
© 2015 Брагин А.В. [email protected] 7
Прикладное ПО (браузер, мессенджер, и т.п.)
Интерфейс пользователя
Операционная система
«Железо»
• ОС – это всё то, что не нужно писать программисту при разработке прикладного ПО
Что такое ОС? (3)• ОС – это библиотека, и
• с одной стороны это так:• все операции ввода/вывода требуют вызовов ОС
(системные вызовы)
• с другой стороны это не так:• Процессор и память используются без системных вызовов
• ОС может сама вмешиваться в процесс выполнения
• ОС – это расширенная машина• Абстрагирует плохой интерфейс железа
• ОС – это менеджер ресурсов• Позволяет программам работать одновременно
• Управляет памятью, вводом/выводом, и пр.
© 2015 Брагин А.В. [email protected] 8
История операционных систем
• Почему ОС существуют в том виде, в котором они есть сейчас
• Определить функции современных ОС
• Развитие смартфонов повторяет историю развития ПК
© 2013 Брагин А.В. 9
Эволюция ОС
• Последовательное выполнение заданий
• Простая пакетная обработка (batch systems)
• Мультипрограммирование в пакетных системах
• Разделение времени (time sharing)
• Современные операционные системы
© 2015 Брагин А.В. [email protected] 10
Последовательное выполнение
• Самый ранний этап
• Операционная система отсутствует
• Программист работает напрямую с аппаратурой
• Проблемы• Много времени тратится на то, чтобы подготовить
программу к запуску• Прямой доступ ко всему оборудованию• Сложно программировать
• Отсутствие понятий автоматизированного планирования заданий• Пользователи резервировали своё вычислительное время в
специальном расписании
© 2015 Брагин А.В. [email protected] 11
Простая пакетная обработка
• Пакетная обработка (batch processing)• Уменьшение времени подготовки программ за счёт
группировки подобных заданий
• Это и были первые мейнфреймы
• Автоматическое последовательное выполнение заданий, автоматическая передача управления от одной задачи к другой. Возник язык управления заданиями Job Control Language (JCL)
• Резидентный монитор• Предшественник операционной системы• Управление процессором переключалось между
монитором и пользовательской программой
© 2015 Брагин А.В. [email protected] 12
Простая пакетная обработка (2)
• Резидентный монитор• Постоянно находится в памяти• Управляет последовательностью событий• Включает интерпретатор языка JCL
• Работа монитора• Загрузка заданий
• Пользовательская программа• Дополнительная программа (напр. компилятор)• Данные для обработки
• Загрузка дополнительных нерезидентных частей монитора и общих функций, необходимых для программ (т.н. «загрузка по требованию»)
© 2015 Брагин А.В. [email protected] 13
Простая пакетная обработка (3)
• Монитор• Управляет последовательностью действий• Цикл выполнения
• Монитор загружает задачу и передаёт управление загруженной программе
• Программа выполняется• Когда программа завершила выполнение, управление возвращается
монитору
• Процессор• Вначале выполняет инструкции из памяти, в которой находится
монитор• Во время выполнения может быть загружена задача и
процессор будет выполнять пользовательскую программу• Передача управления заданию: процессор выполняет инструкции из
области памяти, где находится пользовательская программа• Передача управления обратно монитору: процессор выполняет
инструкции из области памяти, где находится монитор
© 2015 Брагин А.В. [email protected] 14
Простая пакетная обработка (4)
• Общие наблюдения• Пользовательская программа может содержать ошибки
• Опасно для всей вычислительной системы• Может перезаписать ту область памяти, в которой находится
монитор (или операционная система)• Задача может не передать управление обратно в монитор
(зациклилась)• «Не изобретать велосипед»
• Многие пользовательские программы выполняет похожие действия
• Нужна библиотека подпрограмм, которые реализуют функции, требуемые всеми программами, напр. операции ввода/вывода
• Эти проблемы и определяли дальнейшее развитие и архитектуру операционных систем
© 2015 Брагин А.В. [email protected] 15
Поддержка в аппаратуре• Защита памяти для ОС
• Разделение памяти на область ОС и область пользователя• Процессор обнаруживает недопустимое обращение к
памяти и прерывает выполнение задания
• Привилегированные инструкции• Могут выполняться только операционной системой• Процессор обнаруживает недопустимую инструкцию и
прерывает выполнение задания
• Таймер• Устанавливать временные ограничения на задачи
• Прерывания• Дают ОС больше гибкости в управлении
пользовательскими программами
© 2015 Брагин А.В. [email protected] 16
Режимы работы в современных ОС
• режим пользователя (user mode)• некоторые области памяти защищены
• некоторые инструкции запрещены
• режим ядра (kernel mode)• функции операционной системы
• разрешён доступ к защищённым областям памяти
• разрешено исполнение привилегированных инструкций
© 2015 Брагин А.В. [email protected] 17
Системы разделения времени• Интерактивность
• Несколько пользователей могут одновременно работать с системой через терминалы
• Пользователи взаимодействуют через терминальную сессию или оболочку, которая понимает команды, необходимые для запуска программ
• ОС распределяет процессорное время между пользовательскими программами
• Каждой программе пользователя выделяется короткий период или квант процессорного времени• Когда с системой работают N пользователей, каждому пользователю
будет выделено 1/N эффективной вычислительной мощности (а также ещё есть накладные расходы на саму ОС)
• Т.к. человек «медленнее» в сравнении со скоростью процессора, то время ответа такого разделённого компьютера может быть близко ко времени ответа выделенного компьютера
• Цели• Быстрое время ответа
• Пользователю нужен ответ от компьютера как можно быстрее• Разделение времени создаёт иллюзию, что ему доступен весь компьютер
целиком
• Максимизация использования процессора: больше программ – больше время ответа
© 2015 Брагин А.В. [email protected] 18
Современные ОС
• UNIX
• Apple Macintosh
• Microsoft Windows
• Свободное ПО – GNU
• Minix – AST
• Linux
• ReactOS
• Встраиваемые ОС
© 2015 Брагин А.В. [email protected] 19
UNIX
• Философия – Ken Thompson и Dennis Ritchie• Короткий, простой, модульный код
• UNiplexed Information and Computing Service
• Разработана в 1969 в Bell Systems для PDP-7
• В 1973 переписана на новом языке С• BCPL -> B -> C
• Возникли многие производные системы• BSD, AIX (IBM), HP-UX (HP), IRIX (SGI), Solaris (Sun)
• Linux, FreeBSD
© 2015 Брагин А.В. [email protected] 20
Apple Macintosh
• MacOS• 1984 – Motorola 68000
• 1998 – PowerPC
• MacOS X• 1998 – PowerPC
• 2006 – Intel x86, x64, ARM
• XNU – X is Not Unix
• Гибридное ядро (Mach + BSD)
© 2015 Брагин А.В. [email protected] 21
IBM / Microsoft Windows
• 1981 Персональный Компьютер IBM (MS/DOS)
• 1993 – Windows NT 3.1
• 1996 – Windows NT 4.0
• 2000 – Windows NT 5.0 (2000)
• 2001 – Windows NT 5.1 (XP)
• 2009 – Windows NT 6.1 (7)
• 2013 – Windows NT 6.2 (8)
• 2015 – Windows NT ?.? (10)
© 2015 Брагин А.В. [email protected] 22
Свободное ПО - GNU
• Проект GNU начат в 1984
• GNU is Not Unix
• Цель – свободный UNIX
• 1ый шаг: свободные UNIX утилиты• Компилятор
• Библиотеки
• Emacs
• Bash
• 2ой шаг: …
© 2015 Брагин А.В. [email protected] 23
Minix – Andrew Tannenbaum
• 1987 – Mini Unix от Andrew Tannenbaum
• Minix 3 – маленькая микроядерная ОС
• Совместимая с NetBSD
• Главным образом для учебных целей
© 2015 Брагин А.В. [email protected] 24
Linux – Linus Torvalds
• 1 версия вышла в 1991
• UNIX Linus’а = Linux
• Linux – ядро для GNU
• GNU/Linux - ОС• Вместе со всем тем, что сделал Richard Stallman в
рамках проекта GNU
• Дистрибутивы: RedHat, Debian, Ubuntu и ещё 999
© 2015 Брагин А.В. [email protected] 25
ReactOS
• С 1997 появились первые сборки
• Свободная реализация Windows NT 5.1
• Совместима с драйверами и ПО для Windows
• Схожие с GNU и Linux принципы:• GNU: сделаем свободный UNIX
• Linux: сделаем свободное UNIX-ядро
• ReactOS: сделаем свободный Windows (ядро+утилиты)
© 2015 Брагин А.В. [email protected] 26
Встраиваемые ОС
• ОС для мобильных устройств
• Android от Google
• Tizen от Samsung
• Sailfish от Jolla
• ...
© 2015 Брагин А.В. [email protected] 27