Что делает операционная система
Разбираемся, зачем между вашей программой и «голым железом» вообще нужен посредник.
Операционная система (ОС) — это слой программного обеспечения, который управляет ресурсами компьютера (процессором, памятью, устройствами) и предоставляет программам удобные абстракции вместо работы с железом напрямую.
Две роли операционной системы
У ОС есть две большие роли, и обе одинаково важны. Понимание этих ролей — ключ ко всему курсу.
Роль 1. Менеджер ресурсов
В компьютере есть ограниченные ресурсы: одно (или несколько) ядер процессора, конечный объём оперативной памяти, диск, сеть. А программ, которые хотят их получить, — десятки и сотни. Браузер, музыкальный плеер, мессенджер и компилятор работают «одновременно», хотя ядер у процессора куда меньше, чем процессов.
ОС выступает арбитром: она решает, какой программе и когда отдать процессор, сколько памяти выделить, в каком порядке писать на диск. Без этого арбитра программы дрались бы за ресурсы и портили данные друг друга.
Роль 2. Слой абстракций
Представьте, что для чтения файла вам нужно лично управлять движением головки жёсткого диска и помнить, на каком секторе лежит каждый байт. Это кошмар. ОС прячет эту сложность за простыми абстракциями: файл вместо секторов, процесс вместо ручного дележа процессора, виртуальная память вместо физических адресов.
| Железо (сложно) | Абстракция ОС (удобно) |
| секторы и дорожки диска | файл и каталог |
| физические ячейки памяти | виртуальное адресное пространство |
| такты процессора | процесс и поток |
| порты устройств, прерывания | устройство как файл (/dev/...) |
Аналогия: ОС как администратор гостиницы
Гости (программы) не ходят на кухню и не лезут в электрощиток. Они говорят администратору (ОС): «принесите завтрак», «дайте ключ от номера». Администратор распределяет ограниченные ресурсы — номера, персонал, еду — между гостями так, чтобы всем хватило и никто не мешал соседу. Гость не знает и не должен знать, как устроена проводка отеля.
Что было бы без ОС
На совсем простых устройствах (микроконтроллер в чайнике) ОС может и не быть — там одна программа владеет всем железом. Но как только программ становится много и они должны делить ресурсы безопасно, без ОС не обойтись. Именно ОС обеспечивает три вещи, которые мы принимаем как должное:
- Разделение. Сбой одной программы не роняет остальные и саму систему.
- Справедливость. Ни одна программа не может захватить процессор навсегда.
- Защиту. Программа не может прочитать чужую память или напрямую писать на диск в обход правил.
Из чего состоит ОС
Сердце ОС — ядро (kernel): код, который всегда в памяти и имеет полный доступ к железу. Вокруг ядра — системные библиотеки, драйверы устройств, службы и пользовательские утилиты (оболочка, файловый менеджер). В этом курсе мы в основном говорим про ядро и его задачи: процессы, планирование, память, файлы.
Итог
- ОС решает две задачи: управляет ресурсами и даёт удобные абстракции.
- Абстракции (файл, процесс, виртуальная память) прячут сложность железа.
- ОС обеспечивает разделение, справедливость и защиту между программами.
- Ядро — привилегированная сердцевина ОС с прямым доступом к железу.