Что делает операционная система

Разбираемся, зачем между вашей программой и «голым железом» вообще нужен посредник.

Операционная система (ОС) — это слой программного обеспечения, который управляет ресурсами компьютера (процессором, памятью, устройствами) и предоставляет программам удобные абстракции вместо работы с железом напрямую.

Две роли операционной системы

У ОС есть две большие роли, и обе одинаково важны. Понимание этих ролей — ключ ко всему курсу.

Роль 1. Менеджер ресурсов

В компьютере есть ограниченные ресурсы: одно (или несколько) ядер процессора, конечный объём оперативной памяти, диск, сеть. А программ, которые хотят их получить, — десятки и сотни. Браузер, музыкальный плеер, мессенджер и компилятор работают «одновременно», хотя ядер у процессора куда меньше, чем процессов.

ОС выступает арбитром: она решает, какой программе и когда отдать процессор, сколько памяти выделить, в каком порядке писать на диск. Без этого арбитра программы дрались бы за ресурсы и портили данные друг друга.

Роль 2. Слой абстракций

Представьте, что для чтения файла вам нужно лично управлять движением головки жёсткого диска и помнить, на каком секторе лежит каждый байт. Это кошмар. ОС прячет эту сложность за простыми абстракциями: файл вместо секторов, процесс вместо ручного дележа процессора, виртуальная память вместо физических адресов.

Железо (сложно)Абстракция ОС (удобно)
секторы и дорожки дискафайл и каталог
физические ячейки памятивиртуальное адресное пространство
такты процессорапроцесс и поток
порты устройств, прерыванияустройство как файл (/dev/...)

Аналогия: ОС как администратор гостиницы

Гости (программы) не ходят на кухню и не лезут в электрощиток. Они говорят администратору (ОС): «принесите завтрак», «дайте ключ от номера». Администратор распределяет ограниченные ресурсы — номера, персонал, еду — между гостями так, чтобы всем хватило и никто не мешал соседу. Гость не знает и не должен знать, как устроена проводка отеля.

Что было бы без ОС

На совсем простых устройствах (микроконтроллер в чайнике) ОС может и не быть — там одна программа владеет всем железом. Но как только программ становится много и они должны делить ресурсы безопасно, без ОС не обойтись. Именно ОС обеспечивает три вещи, которые мы принимаем как должное:

  • Разделение. Сбой одной программы не роняет остальные и саму систему.
  • Справедливость. Ни одна программа не может захватить процессор навсегда.
  • Защиту. Программа не может прочитать чужую память или напрямую писать на диск в обход правил.

Из чего состоит ОС

Сердце ОС — ядро (kernel): код, который всегда в памяти и имеет полный доступ к железу. Вокруг ядра — системные библиотеки, драйверы устройств, службы и пользовательские утилиты (оболочка, файловый менеджер). В этом курсе мы в основном говорим про ядро и его задачи: процессы, планирование, память, файлы.

Итог

  • ОС решает две задачи: управляет ресурсами и даёт удобные абстракции.
  • Абстракции (файл, процесс, виртуальная память) прячут сложность железа.
  • ОС обеспечивает разделение, справедливость и защиту между программами.
  • Ядро — привилегированная сердцевина ОС с прямым доступом к железу.
Проверьте себя
1. Какие две главные роли выполняет операционная система?
AКомпиляция кода и его отладка
BУправление ресурсами и предоставление абстракций
CХранение паролей и шифрование диска
DРисование интерфейса и воспроизведение звука
2. Что из перечисленного является абстракцией, которую предоставляет ОС?
AСекторы и дорожки диска
BФизические ячейки оперативной памяти
CФайл и каталог
DТакты процессора
3. Почему сбой одной программы обычно не роняет всю систему?
AПотому что программы пишут на разных языках
BПотому что ОS обеспечивает разделение и защиту между программами
CПотому что у каждой программы свой процессор
DПотому что антивирус блокирует сбои
Поддержать проект