Операционная система linux

Для тех энтузиастов, кто хочет поэкспериментировать с операционной системой, существует Linux. Эта операционная система была создана студентом Хельсинкского университета Линусом Торвальдсом (Linus Torvalds). Этот продукт не является частной собственностью, поэтому он доступен бесплатно вместе с исходным кодом (глава 5) и всей документацией. Поскольку эта операционная система находится в свободном доступе в форме исходного кода, она стала очень популярна среди студентов, изучающих операционные системы, программистов и всех людей, кому интересны компьютеры. Она также стала распространенной заменой коммерческим операционным системам. Linux считается сегодня одной из самых надежных из доступных систем. Более подробную информацию о Linux можно найти по адресу http://www.linux.org.

В отличие от оболочки, внутренняя часть операционной системы называется ядром (kernel). Ядро операционной системы содержит программы, обеспечивающие функционирование компьютера. Один из таких элементов называется программой управления файлами (file manager), которая координирует использование запоминающих устройств машины. Точнее говоря, программа управления файлами ведет учет всех файлов, хранящихся в машине, включая информацию о том, где они находятся, каким пользователям разрешено с ними работать, какие участки накопителя свободны для записи новых или расширения имеющихся файлов.

Для того чтобы пользователю было удобно работать с файлами, большинство программ управления файлами позволяют группировать файлы в каталоги (directory) или папки (folder). Такой подход помогает пользователям организовывать файлы согласно своим собственным целям. Более того, благодаря тому что каталоги могут включать в себя другие каталоги, называемые подкаталогами, можно создавать иерархические структуры файлов. Например, пользователь может создать папку «Мои документы», а в ней папки «Финансовые документы» и «Медицинские документы». Последовательность папок, ведущая к файлу, называется путем (path). Пути записываются в виде списка папок, разделенных косой чертой (/)'. Например, последовательность животные/доисторические/динозавры обозначает путь, который начинается с папки «Животные», проходит через папку «Доисторические» и заканчивается в папке «Динозавры».

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

Другим компонентом ядра операционной системы является набор драйверов устройств (device drivers), которые представляют собой программы, взаимодействующие с контроллерами (или иногда непосредственно с периферийными устройствами) для выполнения устройствами заданий, назначенных машине. Каждый драйвер разрабатывается специально для определенного устройства (такого как принтер, дисковод или монитор) и преобразует общие запросы в набор более формальных шагов, понятных устройству, подключенному к этому драйверу. Например, драйвер принтера содержит программы для чтения и расшифровывания слова состояния этого принтера. Поэтому другим элементам программного обеспечения не нужно обладать сведениями о технических формальностях, чтобы распечатать файл. Вместо этого другие программы просто просят драйвер распечатать файл и возлагают заботу о формальностях на него. Таким образом, другие программы не зависят от характеристик отдельного устройства. В результате мы имеем операционную систему, которую можно настроить для работы с разными периферийными устройствами, просто установив соответствующий драйвер.

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

Задача модуля управления памятью еще более усложняется, когда область памяти, необходимая для выполнения задачи, превышает пространство, доступное в машине. В этом случае модуль управления памятью может создать иллюзию дополнительного пространства, перемещая программы между оперативной памятью и запоминающим устройством. Предположим, например, что требуется 256 Мбайт памяти, а доступно только 128 Мбайт. Для того чтобы создать иллюзию области памяти большего размера, модуль управления памятью разбивает требуемое пространство на элементы, которые называются страницами (pages) и сохраняет их содержимое на запоминающем устройстве. (Обычно размер одной страницы не превышает нескольких килобайтов.) Поскольку в определенный момент времени требуются не все страницы, модуль управления памятью помещает в оперативную память только необходимые страницы; таким образом, задача выполняется, как если бы все 256 Мбайт памяти были доступны. Такая память называется виртуальной (virtual memory). Также в ядро операционной системы входят планировщик (scheduler) и диспетчер (dispatcher), которые мы рассмотрим в следующем разделе. Сейчас же следует заметить, что в системах с разделением времени планировщик определяет, какие действия будут выполняться, а диспетчер распределяет кванты времени между этими действиями.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: