Внутреннее устройство Linux - страница 4

стр.

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

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


Примечание

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

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

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

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

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


1.2. Аппаратные средства: оперативная память

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

Вам часто будет встречаться термин «состояние», который будет относиться к памяти, процессам, ядру и другим частям компьютерной системы. Строго говоря, состояние — это какое-либо упорядоченное расположение битов. Например, если в памяти находятся четыре бита, то последовательности 0110, 0001 и 1011 представляют три различных состояния.

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


ПРИМЕЧАНИЕ

Поскольку при описании состояния обычно используются абстрактные понятия, а не реальные биты, для обозначения какого-либо физического размещения битов применяется термин «образ».