Уровни и слои абстракции в операционной системе Linux

Уровни и слои абстракции в операционной системе Linux

Использование абстракций для разделения компьютерных систем на компоненты упрощает их понимание, но не приносит пользы, если отсутствует структура. Мы упорядочим компоненты в виде слоев, или уровней. Слой, или уровень, — это способ классификации (или группирования) компонентов в соответствии с их располо­жением между пользователем и аппаратными средствами. Браузеры, игры и т. п. расположены на верхнем слое; на нижнем слое мы видим память компьютера: нули и единицы. Операционная система занимает наибольшее число слоев между этими двумя.

В операционной системе Linux три главных уровня. На рис. 1 показаны уров­ни, а также некоторые компоненты внутри каждого из них. В основе расположены аппаратные средства. Они включают память, а также один или несколько цен­тральных процессоров (CPU), выполняющих вычисления и запросы на чтение из памяти и запись в нее. Такие устройства, как жесткие диски и сетевые интерфейсы, также относятся к аппаратным средствам.

Уровнем выше располагается ядро, которое является сердцевиной операцион­ной системы. Ядро — это программа, расположенная в памяти компьютера и от­дающая распоряжения центральному процессору. Ядро управляет аппаратными средствами и выступает главным образом в качестве интерфейса между аппарат­ными средствами и любой запущенной программой.

Процессы — запущенные программы, которыми управляет ядро, — в совокупности составляют верхний уровень системы, именующийся пространством пользователя.

Более точным термином, чем «процесс», является термин «пользовательский процесс», вне зависимости от того, взаимодействует ли пользователь с этим процессом напрямую. Например, все веб-серверы работают как пользовательские процессы.

Блог об SMM маркетинге в социальных сетях https://pricesmm.com/ готов предложить Вам базу интересных советов и практических решений по продвижению в любой социальной сети. С его помощью Вы сможете развивать свои аккаунты с большой скоростью, а главное — с минимальными затратами или же вовсе без них. Это поможет Вам не только стать популярнее, но и сэкономить время, усилия и средства.

Существует важное различие между тем, как запускаются процессы ядра и про­цессы пользователя: ядро запускается в режиме ядра, а пользовательские процес­сы — в режиме пользователя. Код, работающий в режиме ядра, обладает неограни­ченным доступом к процессору и оперативной памяти. Это сильное преимущество, но оно может быть опасным, поскольку позволяет процессам ядра с легкостью нарушить работу всей системы. Область, которая доступна только ядру, называет­ся пространством ядра.

В режиме пользователя, для сравнения, доступен лишь ограниченный (как пра­вило, небольшой) объем памяти и разрешены лишь безопасные инструкции для процессора. Пространством пользователя называют участки оперативной памяти, которые могут быть доступны пользовательским процессам. Если какой-либо процесс завершается с ошибкой, ее последствия будут ограниченными и ядро сможет их очистить. Это означает, что, если, например, произойдет сбой в работе браузера, выполнение научных расчетов, которые вы запустили на несколько дней в фоновом режиме, не будет нарушено.

Уровни и слои абстракции в операционной системе Linux
Рис. 1. Общая структура операционной системы Linux

Теоретически неконтролируемый пользовательский процесс не способен причи­нить существенный вред системе. В действительности же все зависит от того, что именно вы считаете «существенным вредом», а также от особых привилегий данного процесса, поскольку некоторым процессам разрешено делать больше, чем другим.

Например, может ли пользовательский процесс полностью уничтожить данные на жестком диске? Если должным образом настроить разрешения, то сможет, и для вас это окажется крайне опасным. Для предотвращения этого существуют защитные меры,и большинству процессов просто не будет позволено сеять смуту подобным образом.

Понравилась статья? Поделиться с друзьями:
Изучаем Linux