И особенности архитектуры

Первой целью при разработке этой системы было стремление сохранить простоту и обойтись минимальным количеством функций. Все реальные сложности остав­лялись пользовательским программам.

Второй целью была общность. Одни и те же методы и механизмы должны были использоваться во многих случаях:

- обращение к файлам, устройствам ввода-вывода и буферам межпроцессных сообщений выполняются с помощью одних и тех же примитивов;

- одни и те же механизмы именования, присвоения альтернативных имен и за­щиты от несанкционированного доступа применяются и к файлам с данными, и к каталогам, и к устройствам;

- одни и те же механизмы работают в отношении программно и аппаратно ини­циируемых прерываний.

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

Наконец, четвертая цель состояла в создании мультитерминальной операционной системы с эффективными механизмами разделения не только процессорного вре­мени, но и всех остальных ресурсов. В мультитерминальной операционной систе­ме на одно из первых мест по значимости выходят вопросы защиты одних вычис-

' Создателями системы UNIX считаются Кен Томпсон и Деннис Ритчи. В своей операционной систе­ме Томпсон и Ритчи учли опыт работы над проектом сложной мультизадачной операционной систе­мы с разделением времени, которая имела название MULTICS (MULTiplexed Information and Computing System). Название новой системы UNIX произошло от аббревиатуры UNICS (Uniplexed Information and Computing System).


Семейство операционных систем UNIX____________________________________ 313

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

Операционная система UNIX обладает простым, но очень мощным командным языком и независимой от устройств файловой системой. Важным, хотя и простым с позиций реализации такой возможности, является тот факт, что система UNIX предоставляет пользователям средства направления выхода одной программы не­посредственно на вход другой. В результате достигается четвертая цель — большие программные системы можно создавать путем композиции имеющихся небольших программ, а не путем написания новых, что в большинстве случаев упрощает зада­чу. UNIX-системы существуют уже 30 лет, и к настоящему времени имеется чрез­вычайно большой набор легко переносимых из системы в систему отлично отла­женных и проверенных временем приложений.

В число системных и прикладных программ, поставляемых с UNIX-системами, входят редакторы текстов, программируемые интерпретаторы командного языка, компиляторы с нескольких популярных языков программирования, включая С, C++, ассемблер, PERL, FORTRAN и многие другие, компоновщики (редакторы межпрограммных связей), отладчики, многочисленные библиотеки системных и пользовательских программ, средства сортировки и ведения баз данных, много­численные административные и обслуживающие программы. Для абсолютного большинства всех этих программ имеется документация, в том числе исходные тексты программ (как правило, хорошо комментированные). Кроме того, описа­ния и документация по большей части доступны пользователям в интерактивном режиме. Используется иерархическая файловая система с полной защитой, рабо­та со съемными томами, обеспечивается независимость от устройств.

Центральной частью UNIX-систем является ядро (kernel). Оно состоит из боль­шого количества модулей и с точки зрения архитектуры считается монолитным. Однако в ядре всегда можно выделить три основные подсистемы: управления про­цессами, управления файлами, управления операциями ввода-вывода между цен­тральной частью и периферийными устройствами. Подсистема управления про­цессами организует выполнение и диспетчеризацию процессов, их синхронизацию и разнообразное межпроцессное взаимодействие. Важнейшая функция подсисте­мы управления процессами — это распределение оперативной памяти и (для со­временных систем) организация виртуальной памяти. Подсистема управления файлами тесно связана и с подсистемой управления процессами, и с драйверами. Ядро может быть перекомпилировано с учетом конкретного состава устройств компьютера и решаемых задач. Не все драйверы могут быть включены в состав ядра, часть из них может вызываться из ядра. Более того, очень большое количе­ство системных функций выполняется системными программными модулями, не входящими непосредственно в ядро, но вызываемых из ядра. Основные систем­ные функции, которые должно выполнять ядро совместно с остальными систем­ными модулями, строго стандартизированы. За счет этого во многом достигается переносимость кода между разными версиями UNIX и абсолютно различным ап­паратным обеспечением.


314________________ Глава 10. Краткий обзор современных операционных систем

Основные понятия

Одним из достоинств ОС UNIX является то, что система базируется на неболь­шом числе понятий; рассмотрим их вкратце. Здесь необходимо отметить, что на­стоящая книга не претендует на полноценное изложение основ работы и детальное описание архитектуры системы UNIX (или Linux). На эту тему имеется достаточ­ное количество специальной литературы, например отличная монография [39] или такие замечательные книги, как [23,43]. Тем не менее, исходя из имеющегося опы­та преподавания предметов, относящихся к операционным системам и системно­му программному обеспечению, считаю полезным изложить здесь минимальный набор основных понятий, который часто помогает студентам «погрузиться в мир UNIX», отличающийся от привычного всем окружения Windows.

Виртуальная машина

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

- из образа памяти;

- значений общих регистров процессора;

- состояния открытых файлов;

- текущего каталога файлов;

- другой информации.

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

Образ памяти делится на три логических сегмента:

- сегмент реентерабельных процедур (начинается с нулевого адреса в виртуаль­ном адресном пространстве процесса);

1 Сигнатура этого раздела обозначается как 082h.


Семейство операционных систем UNIX___________________________________ 315

- сегмент данных (располагается следом за сегментом процедур и может расти в сторону больших адресов);

- сегмент стека (начинается со старшего адреса и растет в сторону младших адре­сов по мере занесения в него информации при вызовах подпрограмм и при пре­рываниях).

В современных версиях UNIX-систем все виртуальное адресное пространство каж­дого образа отображается на реальную физическую память компьютера. Исполь­зуется страничный механизм организации виртуальной памяти. И следует разли­чать замещение процессов и подкачку страниц, хотя в обоих случаях используется термин swapping.

Пользователь

Мы уже отмечали, что с самого начала операционная система UNIX замышлялась как интерактивная многопользовательская система. Другими словами, UNIX пред­назначена для мультитерминальной работы. Чтобы начать работать, пользователь должен «войти» в систему, введя со свободного терминала свое учетное, или вход­ное, имя (account name, или login) и пароль (password). Человек, зарегистрирован­ный в учетных файлах системы и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде.

Ядро операционной системы UNIX идентифицирует каждого пользователя по его идентификатору (User Identifier, UID), уникальному целому значению, присваива­емому пользователю при регистрации в системе. Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется не­которым целым значением (Group Identifier, GID). Значения UID и GID для каждого зарегистрированного пользователя сохраняются в учетных файлах системы и при­писываются процессу, в котором выполняется командный интерпретатор, запущен­ный при входе пользователя в систему. Эти значения наследуются каждым новым процессом, запущенным от имени данного пользователя, и используются ядром си­стемы для контроля правомочности доступа к файлам, выполнения программ и т. д.

Все пользователи операционной системы UNIX явно или неявно работают с фай­лами. Файловая система операционной системы UNIX имеет древовидную струк­туру [39]. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется домашним (home) каталогом поль­зователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нем. Пользователь может создавать, удалять и модифицировать каталоги и файлы, со­держащиеся в домашнем каталоге. Потенциально возможен доступ и ко всем дру­гим файлам, однако он может быть ограничен, если пользователь не имеет доста­точных привилегий.


316________________ Глава 10. Краткий обзор современных операционных систем

Суперпользователь

Очевидно, что администратор системы, который тоже является зарегистрирован­ным пользователем, чтобы управлять всей системой, должен обладать существен­но большими, чем обычные пользователи, привилегиями. В операционных систе­мах UNIX эта задача решается путем выделения единственного нулевого значения UID. Пользователь с таким значением UID называется суперпользователем (su-peruser) и обозначается словом root (корень). Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. Кроме того, такой пользователь имеет возможность полного контроля над системой. Он может оста­новить ее и даже разрушить. По этой причине не рекомендуется работать под этой учетной записью. Администратор должен создать себе обычную учетную запись простого пользователя, а для выполнения действий, связанных с административ­ными полномочиями, рекомендуется использовать команду su. Команда su запра­шивает у пользователя пароль суперпользователя, и, если он указан правильно, операционная система переводит сеанс пользователя в режим работы суперполь­зователя. После выполнения необходимых действий, требующих привилегий су­перпользователя, следует выполнить команду exit, которая и вернет администра­тору статус простого пользователя.

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








Дата добавления: 2016-09-20; просмотров: 501;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.