Что такое операционная система
- Операционная система
- программный комплекс, обеспечивающиий унификацию, разделение и учёт использования ресурсов компьютера.
- Ресурсы компьютера
- оперативная память, машинное время, внешние устройства
История появления ОС
- «Большие» компьютеры и пакетный режим выполнения, очередь заданий (возможно, ручная)
- ⇒ Заданию доступны все ресурсы
- «Operating System» — «инструкция по использованию» + подпрограммы, которые можно вызвать, чтобы сделать что-то стандартное (например, вывести данные на печать)
⇒ Унификация использования ресурсов (устройства печати разные, подпрограмма называется одинаково)
- Скорее всего, ЭВМ на фото изначально работала именно в пакетном режиме: для запуска задания надо было вставить магнитную ленту (белые кольца вверху посередине), считать его в память. Оставшиеся три ленты можно было использовать для загрузки утилит и записи данных. Видно пять секций, хранящих таких ленты.
- Мультипрограммный режим: каждое задание в очереди работает в течение небольшого кванта времени, затем уступает место следующему, а когда все немного поработают, снова продолжает выполнение. Графический рабочий стол, приложения в системном лотке (апплеты), демоны, пользовательские приложения в окнах — все они работают «одновременно» по этой схеме.
⇒ Разделение доступа к ресурсам
- несколько заданий обращаются к печати — как не перемешать их вывод?
- несколько заданий работают с оперативной памятью — как им не испортить данные друг друга?
⇒ Учёт использования ресурсов
- Планировщик заданий; «справедливое» выделение квантов времени на работу
Процедура выделения оперативной памяти (со стороны ОС) и дисциплина доступа к ней
Современные ОС, чем они занимаются
Кстати, на фото выше — авторы Unix, операционной системы, которая включала в себя все компоненты, характерные для современной ОС. Её и пишут!
- Ядро
- монолитный программный компонент, который постоянно находится в памяти и выполняет основные функции ОС
- Модули ядра
- части ядра, которые компонуются с ним по необходимости
- Например, для унификации работы с внешними устройствами («драйверы») — при обнаружении соответствующего устройства
- Демоны
(в действительности — даймоны) программы, которые запускаются при старте системы, но обычно ничего не делают, а по наступлении определённых событий активизируются для их обработки. Часто называются «службами» или «подсистемами».
- Подсистема печати начинает печатать, если в очереди появился документ
- Подсистема выполнения заданий по расписанию запускает задание, когда подойдёт время
- …
- Утилиты
- небольшие программы для решения простых задач, связанных с объектами ОС
Утилиты для работы с файлами и т. п.
- Утилита для постановки документа на печать и другие утилиты взаимодействия со службами
- …
Оболочка (например, Bash) — утилита для склейки результатов работы других утилит (скриптования). Называется также интерпретатором командной строки.
- Приложения
- программы (или комплекты), решающие задачи пользователя. Часто (но не всегда) обладают GUI.
- Офис, браузер, мессенджер… you name it
- Интерфейс ОС
способ взаимодействия с операционной системой. Условно можно выделить три типа взаимодействия.
- Графический интерфейс
- основан на визуальном поиске и выборе из вариантов. Не обязательно использует собственно графику, есть т. н. TUI.
- Командный интерфейс
- основан на интерпретаторе командной строки, в котором можно запускать все доступные в системе утилиты / приложения, передавая им дополнительные параметры, а также пользоваться функцией склейки / скриптованием.
- Программный интерфейс
основан на предоставляемых ядром операционной системой функциях (т. н. системных вызовах). В состав ОС входят также т. н. библиотеки — сборники полезных функция для написания приложений. Пользователь программного интерфейса пишет программу на каком-нибудь языке программирования (например, Си), используя большое число функций из библиотек, часть из которых обращается к системным вызовам.