Найти в Дзене
IT Еxtra

Как работает компьютер? Часть 70. От кремния к системе: зачем нужна Операционная система?

Мы с вами проделали огромный путь: начали с электричества и логических элементов, собрали из них процессор и память, научились общаться с процессором на языке ассемблера и даже писать программы на Python. На всех наших схемах, где мы показывали, как данные идут от диска к процессору, неизменно присутствовал один ключевой участник — операционная система. Мы упоминали её вскользь, как нечто само собой разумеющееся. Но теперь пришло время разобраться, что же это такое на самом деле и почему без нее современный компьютер просто немыслим. Представьте, что вы построили великолепный город с домами (железо), провели электричество, водопровод и дороги (архитектура и шины). Но в этом городе нет ни мэра, ни правил дорожного движения, ни коммунальных служб. Каждый житель (программа) будет делать что захочет, что неизбежно приведёт к хаосу и разрушению. Операционная система — это и есть мэр, правительство и полиция для вашего компьютерного «города».

Давайте вспомним: «голое железо» — что происходит сразу после включения питания? Микроскопическая прошивка BIOS проводит быструю проверку, оживляет процессор, память и диски, находит на диске небольшой загрузчик и передаёт ему управление. И вот здесь начинается власть ОС. Загрузчик — это уже часть операционной системы, её первый посланник. Его задача — найти и загрузить в память главную часть ОС — её ядро. Ядро — это сердце и мозг всей системы, программа, которая будет постоянно работать в RAM, пока компьютер включен. С момента, когда ядро получает контроль, жизнь компьютера кардинально меняется.

Без операционной системы каждая программа, написанная вами на Python или ассемблере, должна была бы взять на себя невероятный объём работы. Ей пришлось бы самой знать, как работать с вашей конкретной видеокартой, чтобы вывести букву на экран, как читать данные с вашей конкретной модели SSD, как распределить память, чтобы не затереть код другой программы. Это сделало бы программы огромными, несовместимыми друг с другом и чрезвычайно уязвимыми. ОС решает эту проблему, становясь универсальным посредником — абстрактным слоем между «железом» и программами. Когда ваше приложение хочет вывести на экран надпись «Привет, мир!», оно не посылает сигналы видеокарте напрямую. Вместо этого оно вежливо обращается к ОС с помощью системного вызова — специальной команды, которая говорит: «Дорогая операционная система, пожалуйста, выведи вот эту строку в то окно, которое принадлежит мне». А уж ОС, пользуясь своими драйверами, знает, как именно общаться с вашей видеокартой.

Таким образом, операционная система берёт на себя четыре гигантские задачи. Первая — управление процессами: она решает, какая программа и сколько времени будет работать на процессоре, создавая иллюзию, что все программы работают одновременно. Вторая — управление памятью: она распределяет оперативную память между программами, изолируя их друг от друга, чтобы одна сбойная программа не могла «уронить» все остальные. Третья — управление устройствами ввода-вывода: через драйверы она общается с принтерами, дисками, сетью и другим железом, предоставляя программам простой и единообразный интерфейс. И наконец, четвёртая — предоставление интерфейса пользователю: будь то командная строка или графический оконный интерфейс, это всё — программы, работающие поверх ОС, которые делают сложную машину понятной и удобной для человека. Именно операционная система превращает груду кремния, пластика и металла с миллионами транзисторов в тот универсальный инструмент для творчества, работы и общения, без которого мы уже не представляем свою жизнь.

Спасибо за внимание!

Подписывайтесь на канал. Дальше интереснее)