SlideShare a Scribd company logo
1 of 27
Операционные
Системы
1. Введение
Брагин Алексей Владимирович
aleksey@reactos.org
ИУ9, МГТУ им. Н.Э. Баумана
В этой лекции…
• Организационная часть
• Обзор курса
• Об авторе
• Общая структура курса
• Правила
• Операционные системы
• Что это?
© 2015 Брагин А.В. aleksey@reactos.org 2
Информационные Ресурсы
• Вся актуальная информация по курсу:
http://www.reactos.org/wiki/Study
• Информация по ReactOS
• Список рассылки. Только для технических вопросов,
англоязычный!
ros-dev@reactos.org
• Техническое вики проекта ReactOS
http://www.reactos.org/wiki
• А.С.Танненбаум «Современные ОС» - основа
• в помощь!
© 2015 Брагин А.В. aleksey@reactos.org 3
Обзор курса
• Один семестр
• Два модуля
• Общая теория построения ОС
• Практика реализации ОС
• Лабораторные работы
• Практические задачи, связанные с внутренним
устройством ОС
• Вы научитесь
• Компилировать ОС собственными силами
• Модифицировать ядро и компоненты ОС
© 2015 Брагин А.В. aleksey@reactos.org 4
Обзор курса. Результаты
• Что вы узнаете из этого курса?
• Основные компоненты большинства ОС
• Архитектура ОС
• Наиболее важные интерфейсы и алгоритмы
• Как сделаны популярные, современные ОС
• Как сделаны малоизвестные, исследовательские ОС
• Зачем?
• Большинство из вас не будет разрабатывать ОС
• Но любой учёный или инженер должен понимать основы,
или «как оно работает»
• Знания из этого курса помогут понять, как сделать лучшее
ПО, и найти лучший компромисс при разработке ПО.
• Это интересно
© 2015 Брагин А.В. aleksey@reactos.org 5
Что такое Операционная Система?
• Современный «компьютер» состоит из:
• Одного или нескольких процессоров
• Основной памяти
• Дополнительной памяти
• Периферийного оборудования
• Ввод, вывод
• Хранение
• Для управления всем этим нужно особое ПО –
операционная система
© 2015 Брагин А.В. aleksey@reactos.org 6
Что такое ОС? (2)
© 2015 Брагин А.В. aleksey@reactos.org 7
Прикладное ПО (браузер,
мессенджер, и т.п.)
Интерфейс пользователя
Операционная система
«Железо»
• ОС – это всё то, что не нужно писать
программисту при разработке прикладного ПО
Что такое ОС? (3)
• ОС – это библиотека, и
• с одной стороны это так:
• все операции ввода/вывода требуют вызовов ОС
(системные вызовы)
• с другой стороны это не так:
• Процессор и память используются без системных вызовов
• ОС может сама вмешиваться в процесс выполнения
• ОС – это расширенная машина
• Абстрагирует плохой интерфейс железа
• ОС – это менеджер ресурсов
• Позволяет программам работать одновременно
• Управляет памятью, вводом/выводом, и пр.
© 2015 Брагин А.В. aleksey@reactos.org 8
История операционных систем
• Почему ОС существуют в том виде, в котором
они есть сейчас
• Определить функции современных ОС
• Развитие смартфонов повторяет историю
развития ПК
© 2013 Брагин А.В. 9
Эволюция ОС
• Последовательное выполнение заданий
• Простая пакетная обработка (batch systems)
• Мультипрограммирование в пакетных системах
• Разделение времени (time sharing)
• Современные операционные системы
© 2015 Брагин А.В. aleksey@reactos.org 10
Последовательное выполнение
• Самый ранний этап
• Операционная система отсутствует
• Программист работает напрямую с аппаратурой
• Проблемы
• Много времени тратится на то, чтобы подготовить
программу к запуску
• Прямой доступ ко всему оборудованию
• Сложно программировать
• Отсутствие понятий автоматизированного
планирования заданий
• Пользователи резервировали своё вычислительное время в
специальном расписании
© 2015 Брагин А.В. aleksey@reactos.org 11
Простая пакетная обработка
• Пакетная обработка (batch processing)
• Уменьшение времени подготовки программ за счёт
группировки подобных заданий
• Это и были первые мейнфреймы
• Автоматическое последовательное выполнение
заданий, автоматическая передача управления от
одной задачи к другой. Возник язык управления
заданиями Job Control Language (JCL)
• Резидентный монитор
• Предшественник операционной системы
• Управление процессором переключалось между
монитором и пользовательской программой
© 2015 Брагин А.В. aleksey@reactos.org 12
Простая пакетная обработка (2)
• Резидентный монитор
• Постоянно находится в памяти
• Управляет последовательностью событий
• Включает интерпретатор языка JCL
• Работа монитора
• Загрузка заданий
• Пользовательская программа
• Дополнительная программа (напр. компилятор)
• Данные для обработки
• Загрузка дополнительных нерезидентных частей
монитора и общих функций, необходимых для
программ (т.н. «загрузка по требованию»)
© 2015 Брагин А.В. aleksey@reactos.org 13
Простая пакетная обработка (3)
• Монитор
• Управляет последовательностью действий
• Цикл выполнения
• Монитор загружает задачу и передаёт управление загруженной
программе
• Программа выполняется
• Когда программа завершила выполнение, управление возвращается
монитору
• Процессор
• Вначале выполняет инструкции из памяти, в которой находится
монитор
• Во время выполнения может быть загружена задача и
процессор будет выполнять пользовательскую программу
• Передача управления заданию: процессор выполняет инструкции из
области памяти, где находится пользовательская программа
• Передача управления обратно монитору: процессор выполняет
инструкции из области памяти, где находится монитор
© 2015 Брагин А.В. aleksey@reactos.org 14
Простая пакетная обработка (4)
• Общие наблюдения
• Пользовательская программа может содержать ошибки
• Опасно для всей вычислительной системы
• Может перезаписать ту область памяти, в которой находится
монитор (или операционная система)
• Задача может не передать управление обратно в монитор
(зациклилась)
• «Не изобретать велосипед»
• Многие пользовательские программы выполняет похожие
действия
• Нужна библиотека подпрограмм, которые реализуют функции,
требуемые всеми программами, напр. операции
ввода/вывода
• Эти проблемы и определяли дальнейшее развитие и
архитектуру операционных систем
© 2015 Брагин А.В. aleksey@reactos.org 15
Поддержка в аппаратуре
• Защита памяти для ОС
• Разделение памяти на область ОС и область пользователя
• Процессор обнаруживает недопустимое обращение к
памяти и прерывает выполнение задания
• Привилегированные инструкции
• Могут выполняться только операционной системой
• Процессор обнаруживает недопустимую инструкцию и
прерывает выполнение задания
• Таймер
• Устанавливать временные ограничения на задачи
• Прерывания
• Дают ОС больше гибкости в управлении
пользовательскими программами
© 2015 Брагин А.В. aleksey@reactos.org 16
Режимы работы в современных ОС
• режим пользователя (user mode)
• некоторые области памяти защищены
• некоторые инструкции запрещены
• режим ядра (kernel mode)
• функции операционной системы
• разрешён доступ к защищённым областям памяти
• разрешено исполнение привилегированных
инструкций
© 2015 Брагин А.В. aleksey@reactos.org 17
Системы разделения времени
• Интерактивность
• Несколько пользователей могут одновременно работать с системой
через терминалы
• Пользователи взаимодействуют через терминальную сессию или
оболочку, которая понимает команды, необходимые для запуска
программ
• ОС распределяет процессорное время между пользовательскими
программами
• Каждой программе пользователя выделяется короткий период
или квант процессорного времени
• Когда с системой работают N пользователей, каждому пользователю
будет выделено 1/N эффективной вычислительной мощности (а также
ещё есть накладные расходы на саму ОС)
• Т.к. человек «медленнее» в сравнении со скоростью процессора, то
время ответа такого разделённого компьютера может быть близко ко
времени ответа выделенного компьютера
• Цели
• Быстрое время ответа
• Пользователю нужен ответ от компьютера как можно быстрее
• Разделение времени создаёт иллюзию, что ему доступен весь компьютер
целиком
• Максимизация использования процессора: больше программ – больше
время ответа
© 2015 Брагин А.В. aleksey@reactos.org 18
Современные ОС
• UNIX
• Apple Macintosh
• Microsoft Windows
• Свободное ПО – GNU
• Minix – AST
• Linux
• ReactOS
• Встраиваемые ОС
© 2015 Брагин А.В. aleksey@reactos.org 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 Брагин А.В. aleksey@reactos.org 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 Брагин А.В. aleksey@reactos.org 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 Брагин А.В. aleksey@reactos.org 22
Свободное ПО - GNU
• Проект GNU начат в 1984
• GNU is Not Unix
• Цель – свободный UNIX
• 1ый шаг: свободные UNIX утилиты
• Компилятор
• Библиотеки
• Emacs
• Bash
• 2ой шаг: …
© 2015 Брагин А.В. aleksey@reactos.org 23
Minix – Andrew Tannenbaum
• 1987 – Mini Unix от Andrew Tannenbaum
• Minix 3 – маленькая микроядерная ОС
• Совместимая с NetBSD
• Главным образом для учебных целей
© 2015 Брагин А.В. aleksey@reactos.org 24
Linux – Linus Torvalds
• 1 версия вышла в 1991
• UNIX Linus’а = Linux
• Linux – ядро для GNU
• GNU/Linux - ОС
• Вместе со всем тем, что сделал Richard Stallman в
рамках проекта GNU
• Дистрибутивы: RedHat, Debian, Ubuntu и ещё 999
© 2015 Брагин А.В. aleksey@reactos.org 25
ReactOS
• С 1997 появились первые сборки
• Свободная реализация Windows NT 5.1
• Совместима с драйверами и ПО для Windows
• Схожие с GNU и Linux принципы:
• GNU: сделаем свободный UNIX
• Linux: сделаем свободное UNIX-ядро
• ReactOS: сделаем свободный Windows
(ядро+утилиты)
© 2015 Брагин А.В. aleksey@reactos.org 26
Встраиваемые ОС
• ОС для мобильных устройств
• Android от Google
• Tizen от Samsung
• Sailfish от Jolla
• ...
© 2015 Брагин А.В. aleksey@reactos.org 27

More Related Content

What's hot

postgresql monitoring by okmeter.io
postgresql monitoring by okmeter.iopostgresql monitoring by okmeter.io
postgresql monitoring by okmeter.ioNikolay Sivko
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
 
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Ontico
 
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Iosif Itkin
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Ontico
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Nikolay Sivko
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)Ontico
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Ontico
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Ontico
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)Ontico
 
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Ontico
 
Java Memory Model. Quick introduction.
Java Memory Model. Quick introduction.Java Memory Model. Quick introduction.
Java Memory Model. Quick introduction.Yury Kisliak
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesIosif Itkin
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 

What's hot (20)

postgresql monitoring by okmeter.io
postgresql monitoring by okmeter.iopostgresql monitoring by okmeter.io
postgresql monitoring by okmeter.io
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
 
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 
RootConf 2015
RootConf 2015RootConf 2015
RootConf 2015
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
 
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
 
Java Memory Model. Quick introduction.
Java Memory Model. Quick introduction.Java Memory Model. Quick introduction.
Java Memory Model. Quick introduction.
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 

Similar to Операционные системы 2015, лекция № 1

Веб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и ITВеб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и ITDevDay
 
программное обеспечение современного компьютера. пшеничникова
программное обеспечение современного компьютера. пшеничниковапрограммное обеспечение современного компьютера. пшеничникова
программное обеспечение современного компьютера. пшеничниковаghostofthedream
 
Презентация системы автоматической проверки решений задач по программированию...
Презентация системы автоматической проверки решений задач по программированию...Презентация системы автоматической проверки решений задач по программированию...
Презентация системы автоматической проверки решений задач по программированию...Yurii Kadirov
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеDenis Chistyakov
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и средыAlexandr Konfidentsialno
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems
 

Similar to Операционные системы 2015, лекция № 1 (20)

Веб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и ITВеб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и IT
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
программное обеспечение современного компьютера. пшеничникова
программное обеспечение современного компьютера. пшеничниковапрограммное обеспечение современного компьютера. пшеничникова
программное обеспечение современного компьютера. пшеничникова
 
Презентация системы автоматической проверки решений задач по программированию...
Презентация системы автоматической проверки решений задач по программированию...Презентация системы автоматической проверки решений задач по программированию...
Презентация системы автоматической проверки решений задач по программированию...
 
Prezentatsia Elina
Prezentatsia ElinaPrezentatsia Elina
Prezentatsia Elina
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и среды
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 
лекция 1
лекция 1лекция 1
лекция 1
 
Dotnet
DotnetDotnet
Dotnet
 
операционная система
операционная системаоперационная система
операционная система
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Errors Tracker
Errors TrackerErrors Tracker
Errors Tracker
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 

Операционные системы 2015, лекция № 1

  • 1. Операционные Системы 1. Введение Брагин Алексей Владимирович aleksey@reactos.org ИУ9, МГТУ им. Н.Э. Баумана
  • 2. В этой лекции… • Организационная часть • Обзор курса • Об авторе • Общая структура курса • Правила • Операционные системы • Что это? © 2015 Брагин А.В. aleksey@reactos.org 2
  • 3. Информационные Ресурсы • Вся актуальная информация по курсу: http://www.reactos.org/wiki/Study • Информация по ReactOS • Список рассылки. Только для технических вопросов, англоязычный! ros-dev@reactos.org • Техническое вики проекта ReactOS http://www.reactos.org/wiki • А.С.Танненбаум «Современные ОС» - основа • в помощь! © 2015 Брагин А.В. aleksey@reactos.org 3
  • 4. Обзор курса • Один семестр • Два модуля • Общая теория построения ОС • Практика реализации ОС • Лабораторные работы • Практические задачи, связанные с внутренним устройством ОС • Вы научитесь • Компилировать ОС собственными силами • Модифицировать ядро и компоненты ОС © 2015 Брагин А.В. aleksey@reactos.org 4
  • 5. Обзор курса. Результаты • Что вы узнаете из этого курса? • Основные компоненты большинства ОС • Архитектура ОС • Наиболее важные интерфейсы и алгоритмы • Как сделаны популярные, современные ОС • Как сделаны малоизвестные, исследовательские ОС • Зачем? • Большинство из вас не будет разрабатывать ОС • Но любой учёный или инженер должен понимать основы, или «как оно работает» • Знания из этого курса помогут понять, как сделать лучшее ПО, и найти лучший компромисс при разработке ПО. • Это интересно © 2015 Брагин А.В. aleksey@reactos.org 5
  • 6. Что такое Операционная Система? • Современный «компьютер» состоит из: • Одного или нескольких процессоров • Основной памяти • Дополнительной памяти • Периферийного оборудования • Ввод, вывод • Хранение • Для управления всем этим нужно особое ПО – операционная система © 2015 Брагин А.В. aleksey@reactos.org 6
  • 7. Что такое ОС? (2) © 2015 Брагин А.В. aleksey@reactos.org 7 Прикладное ПО (браузер, мессенджер, и т.п.) Интерфейс пользователя Операционная система «Железо» • ОС – это всё то, что не нужно писать программисту при разработке прикладного ПО
  • 8. Что такое ОС? (3) • ОС – это библиотека, и • с одной стороны это так: • все операции ввода/вывода требуют вызовов ОС (системные вызовы) • с другой стороны это не так: • Процессор и память используются без системных вызовов • ОС может сама вмешиваться в процесс выполнения • ОС – это расширенная машина • Абстрагирует плохой интерфейс железа • ОС – это менеджер ресурсов • Позволяет программам работать одновременно • Управляет памятью, вводом/выводом, и пр. © 2015 Брагин А.В. aleksey@reactos.org 8
  • 9. История операционных систем • Почему ОС существуют в том виде, в котором они есть сейчас • Определить функции современных ОС • Развитие смартфонов повторяет историю развития ПК © 2013 Брагин А.В. 9
  • 10. Эволюция ОС • Последовательное выполнение заданий • Простая пакетная обработка (batch systems) • Мультипрограммирование в пакетных системах • Разделение времени (time sharing) • Современные операционные системы © 2015 Брагин А.В. aleksey@reactos.org 10
  • 11. Последовательное выполнение • Самый ранний этап • Операционная система отсутствует • Программист работает напрямую с аппаратурой • Проблемы • Много времени тратится на то, чтобы подготовить программу к запуску • Прямой доступ ко всему оборудованию • Сложно программировать • Отсутствие понятий автоматизированного планирования заданий • Пользователи резервировали своё вычислительное время в специальном расписании © 2015 Брагин А.В. aleksey@reactos.org 11
  • 12. Простая пакетная обработка • Пакетная обработка (batch processing) • Уменьшение времени подготовки программ за счёт группировки подобных заданий • Это и были первые мейнфреймы • Автоматическое последовательное выполнение заданий, автоматическая передача управления от одной задачи к другой. Возник язык управления заданиями Job Control Language (JCL) • Резидентный монитор • Предшественник операционной системы • Управление процессором переключалось между монитором и пользовательской программой © 2015 Брагин А.В. aleksey@reactos.org 12
  • 13. Простая пакетная обработка (2) • Резидентный монитор • Постоянно находится в памяти • Управляет последовательностью событий • Включает интерпретатор языка JCL • Работа монитора • Загрузка заданий • Пользовательская программа • Дополнительная программа (напр. компилятор) • Данные для обработки • Загрузка дополнительных нерезидентных частей монитора и общих функций, необходимых для программ (т.н. «загрузка по требованию») © 2015 Брагин А.В. aleksey@reactos.org 13
  • 14. Простая пакетная обработка (3) • Монитор • Управляет последовательностью действий • Цикл выполнения • Монитор загружает задачу и передаёт управление загруженной программе • Программа выполняется • Когда программа завершила выполнение, управление возвращается монитору • Процессор • Вначале выполняет инструкции из памяти, в которой находится монитор • Во время выполнения может быть загружена задача и процессор будет выполнять пользовательскую программу • Передача управления заданию: процессор выполняет инструкции из области памяти, где находится пользовательская программа • Передача управления обратно монитору: процессор выполняет инструкции из области памяти, где находится монитор © 2015 Брагин А.В. aleksey@reactos.org 14
  • 15. Простая пакетная обработка (4) • Общие наблюдения • Пользовательская программа может содержать ошибки • Опасно для всей вычислительной системы • Может перезаписать ту область памяти, в которой находится монитор (или операционная система) • Задача может не передать управление обратно в монитор (зациклилась) • «Не изобретать велосипед» • Многие пользовательские программы выполняет похожие действия • Нужна библиотека подпрограмм, которые реализуют функции, требуемые всеми программами, напр. операции ввода/вывода • Эти проблемы и определяли дальнейшее развитие и архитектуру операционных систем © 2015 Брагин А.В. aleksey@reactos.org 15
  • 16. Поддержка в аппаратуре • Защита памяти для ОС • Разделение памяти на область ОС и область пользователя • Процессор обнаруживает недопустимое обращение к памяти и прерывает выполнение задания • Привилегированные инструкции • Могут выполняться только операционной системой • Процессор обнаруживает недопустимую инструкцию и прерывает выполнение задания • Таймер • Устанавливать временные ограничения на задачи • Прерывания • Дают ОС больше гибкости в управлении пользовательскими программами © 2015 Брагин А.В. aleksey@reactos.org 16
  • 17. Режимы работы в современных ОС • режим пользователя (user mode) • некоторые области памяти защищены • некоторые инструкции запрещены • режим ядра (kernel mode) • функции операционной системы • разрешён доступ к защищённым областям памяти • разрешено исполнение привилегированных инструкций © 2015 Брагин А.В. aleksey@reactos.org 17
  • 18. Системы разделения времени • Интерактивность • Несколько пользователей могут одновременно работать с системой через терминалы • Пользователи взаимодействуют через терминальную сессию или оболочку, которая понимает команды, необходимые для запуска программ • ОС распределяет процессорное время между пользовательскими программами • Каждой программе пользователя выделяется короткий период или квант процессорного времени • Когда с системой работают N пользователей, каждому пользователю будет выделено 1/N эффективной вычислительной мощности (а также ещё есть накладные расходы на саму ОС) • Т.к. человек «медленнее» в сравнении со скоростью процессора, то время ответа такого разделённого компьютера может быть близко ко времени ответа выделенного компьютера • Цели • Быстрое время ответа • Пользователю нужен ответ от компьютера как можно быстрее • Разделение времени создаёт иллюзию, что ему доступен весь компьютер целиком • Максимизация использования процессора: больше программ – больше время ответа © 2015 Брагин А.В. aleksey@reactos.org 18
  • 19. Современные ОС • UNIX • Apple Macintosh • Microsoft Windows • Свободное ПО – GNU • Minix – AST • Linux • ReactOS • Встраиваемые ОС © 2015 Брагин А.В. aleksey@reactos.org 19
  • 20. 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 Брагин А.В. aleksey@reactos.org 20
  • 21. 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 Брагин А.В. aleksey@reactos.org 21
  • 22. 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 Брагин А.В. aleksey@reactos.org 22
  • 23. Свободное ПО - GNU • Проект GNU начат в 1984 • GNU is Not Unix • Цель – свободный UNIX • 1ый шаг: свободные UNIX утилиты • Компилятор • Библиотеки • Emacs • Bash • 2ой шаг: … © 2015 Брагин А.В. aleksey@reactos.org 23
  • 24. Minix – Andrew Tannenbaum • 1987 – Mini Unix от Andrew Tannenbaum • Minix 3 – маленькая микроядерная ОС • Совместимая с NetBSD • Главным образом для учебных целей © 2015 Брагин А.В. aleksey@reactos.org 24
  • 25. Linux – Linus Torvalds • 1 версия вышла в 1991 • UNIX Linus’а = Linux • Linux – ядро для GNU • GNU/Linux - ОС • Вместе со всем тем, что сделал Richard Stallman в рамках проекта GNU • Дистрибутивы: RedHat, Debian, Ubuntu и ещё 999 © 2015 Брагин А.В. aleksey@reactos.org 25
  • 26. ReactOS • С 1997 появились первые сборки • Свободная реализация Windows NT 5.1 • Совместима с драйверами и ПО для Windows • Схожие с GNU и Linux принципы: • GNU: сделаем свободный UNIX • Linux: сделаем свободное UNIX-ядро • ReactOS: сделаем свободный Windows (ядро+утилиты) © 2015 Брагин А.В. aleksey@reactos.org 26
  • 27. Встраиваемые ОС • ОС для мобильных устройств • Android от Google • Tizen от Samsung • Sailfish от Jolla • ... © 2015 Брагин А.В. aleksey@reactos.org 27