Важно. Эта статья написана не для опытных пользователей, которые и так в курсе как все работает, а для тех кто только начинает разбираться в принципах работы операционных систем. Хотя в общем и целом все описанное ниже верно, все же возможны упрощения для простоты понимания.
Уважаемый читатель, чтобы хорошо усвоить данный материал (если ты ставишь перед собой такую цель) пожалуйста просмотри, чтобы быстренько вспомнить, другие статьи из этой серии, а именно: абстракции и интерфейсы и система изнутри часть 1. Если же вы впервые на данном канале, то прежде чем прочитать данную статью, мы настоятельно рекомендуем прочесть те две, названия которых указанны выше.
Итак как вы уже знаете компьютер это аппарано-программный комплекс. К программному комплексу относится набор программ.
Короткая справка:
Очень кратенько напомним, что программа это специально оформленный текст, так называемый исходный код, по стандарту определённого языка программирования. В свою очередь он делится на функции, небольшая часть текста исходного кода, которое задает определённое действие, и модули, набор функций логически связанных друг с другом. Подробнее читайте на нашем канале в статье языки программирования.
Ядро операционной системы это ее основа, которая состоит из очень маленьких, но очень важных программ. В чем же их важность?
А вот в чем. Эти программы являются стражами и защитниками критически важных ресурсов системы. Что это за ресурсы? А вот они:
процессорное время
память
интерфейс ввода-вывода
Давайте теперь каждый из этих ресурсов коротко рассмотрим и определим в чем заключается критическая важность каждого из них.
Процессорное время.
Процессорное время это время необходимое процессору для обработки запросов от программ, а также время, которое может уделить процессор одной, конкретной программе, в зависимости от ее важности.
Почему это важный ресурс? Представьте, что все программы будут делать запросы к процессору и ни одна из них не будет закрываться, что тогда произойдёт? Если нам будут поручать задания больше чем мы можем выполнить, что случится с нами? Мы не будем с ними со всеми справляться, а значит выполняя задания полученные первыми, мы будем пренебрегать другими наиболее важными.
. Также и с процессором, выполняя запросы от программ по порядку, он может пренебречь более важными программами, том числе и программами входящих в операционную систему. А если программы от операционной системы не будут успевать обрабатываться, что тогда случится? Тогда операционная система перестанет отвечать, или другими словами она зависнет. Поэтому процессорное время это критически важный ресурс.
В другом случае одна программа из-за некачественного кода может отнимать слишком много времени у процессора на обработку своих данных, настолько много, что другие программы просто не смогут обрабатываться, в том числе программы от операционной системы. И это тоже приведёт к зависанию и сбою операционной системы. Это еще одна причина почему процессорное время это критически важный ресурс. Такой метод атаки в своё время был очень популярен у хакеров, цель которых было порушить работу операционной системы. Сейчас же более выгодным стало с их точки зрения похищение и продажа персональных данных пользователей, а также похищение финансовой информации: логинов и паролей от онлайн банков.
Память
В данном случае мы поговорим об оперативном запоминающем устройстве ( далее ОЗУ ), оно же "оперативка", оно же RAM.
Что это и для чего оно нужно? Во-первых, это более быстрая чем постоянно запоминающее устройство ( или ПЗУ, а также ROM, к нему относятся жесткие диски, флешки и тому подобное ) и поэтому более дорогая память в производстве. Во-вторых, так уж сложилось, что эта память энергозависима. То есть при отключении питания все данные оттуда пропадают.
Почему ОЗУ критически важный ресурс? Дело в том, что так как ОЗУ более быстрая память, то она работает с уже запущенными программами, чтобы увеличить скорость их отклика. Но если внутри нее будет запущено программ больше чем она сможет обработать, то и как в случае с процессором, программы ОС перестанут обрабатываться и тогда система зависнет. Но даже если этого не произойдёт, то в любом случае отклик пользовательских программ существенно сократится и они будут работать оооооочень медленно.
. И это еще не все. Так как программы выполняются в ОЗУ, то туда переносятся и данные этих программ, в том числе, те которые важны для их выполнения. И если бы не было защитных механизмов защищающих данные одной программы от данных других, то программы могли повредить друг другу (или одна программа могла получить доступ к другим )! К счастью такие механизмы существуют и реализованы они в ядре ОС.
Устройства ввода-выывода.
Что это? Если сказать просто, это внешнее устройства с помощью, которых человек дает команды и получает видимый результат. К этому относится манипулятор "мышь", клавиатура.
Почему это критически важный ресурс? Ну тут в общем-то все очевидно. Если кто-то чужой захватит устройство ввода, то именно он будет отдавать команды вашему компьютеру. А если захватить устройство выводы, то будет видеть, то же что и вы глядя на свой монитор. Думается понятно к чему может привести захват устройства ввода-вывода вместе. Защита устройств ввода-вывода также реализована на уровне ядра. Но как показывает практика она не достаточна. Поэтому все же на сегодняшний день без качественных дополнительных мер защиты не обойтись.
На сегодня это все. Следующая статья из этой серии будет посвящена графическому интерфейсу и драйверам.