Организация UNIX-систем и ОС Solaris


Внутреннее устройство UNIX - часть 2


man 4 system

В системах, загружающихся в 64-разрядном режиме, файл unix называется /platform/`uname -m`/kernel/sparcv9/unix. Когда загрузчик ufsboot загрузит оба этих файла (genunix и unix) в память, они становятся одним целым - ядром. Затем это ядро загружает модули, используя ufsboot для чтения файлов.

Подробнее о процессе загрузки говорится в лекции 9.

Демоны - это серверные приложения, отвечающие за обработку запросов от других (клиентских) программ.

Утилиты - это программы, которые нужны для выполнения разных базовых работ в системе: копирования файлов, управления процессами, восстановления файловой системы и т.п.

В разных вариантах UNIX используются разные файловые системы, причем часто поддерживается несколько разных файловых систем. Например, Linux умеет работать с ext2, ext3 (это ее родные файловые системы), UFS, HPFS, NTFS, FAT и другими. Solaris, как и некоторые другие ОС UNIX, использует файловую систему типа UFS.

UNIX - это многопользовательская многопроцессная система, т.е. в ней может одновременно быть запущено несколько процессов от имени разных пользователей. Число процессов, которые можно одновременно запустить, ограничивается размерами таблицы процессов в ядре и другими настройками ядра.

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

Одной из функций ядра является планирование процессов, т.е. передача управления от одного процесса к другому. Для этого в ядре есть отдельная подпрограмма, называемая планировщиком задач. Процессы получают управление от планировщика задач в соответствии со своим приоритетом. Планировщик задач через определенное количество микросекунд решает, следует ли передать управление следующему в очереди процессу.

Ядро представляет собой отдельный процесс, выполняющийся с наивысшим приоритетом. В большинстве систем UNIX, включая Solaris, реализована возможность выполнять несколько параллельных подпроцессов внутри процесса. Эти подпроцессы называют потоками (threads). Более подробно этот аспект процессов рассмотрен в лекции 8.

Каждый пользователь в UNIX имеет свою собственную учетную запись пользователя (account), которая содержит имя пользователя, пароль, идентификатор пользователя (UID), идентификатор главной группы пользователя (GID), описание пользователя, его домашний каталог и путь к командному процессору, который следует запустить при интерактивном входе пользователя в систему.

Пользователь, работающий в UNIX, имеет уникальное имя пользователя и уникальный идентификатор. Идентификатор пользователя (User ID, UID) - это целое число от 0 до 2147483647. Обычные пользователи в Solaris имеют идентификатор в диапазоне от 100 до 60000.

Пользователю не надо знать свой идентификатор, потому что он используется только системой, а для входа в систему пользователь указывает свое имя (username). Имя пользователя может состоять из латинских букв и цифр; длина имени должна быть от 2 до 8 символов. Первый символ должен быть буквой, и по крайней мере один символ должен быть буквой нижнего регистра. Имя пользователя назначает системный администратор при создании новой учетной записи. Имя пользователя в руководствах часто называют "логин" (login) или "username".

Пользователи объединены в группы. Каждая группа имеет свое имя и уникальный идентификатор (Group ID, GID). В группе может быть сколько угодно пользователей, и каждый из них может быть участником любого количества групп. Однако у каждого пользователя есть главная группа - она указывается в свойствах любого файла, который создает пользователь. Идентификатор группы имеет значение от 100 до 60000, если только это не специальная группа. Для специальных (предопределенных) групп зарезервирован диапазон от 0 до 99.

Пользователей объединяют в группы для того, чтобы было удобнее администрировать систему.

Например, если право редактировать содержимое web-сайта надо предоставить нескольким ответственным, то достаточно создать специальную группу, например, webedit, и включить их всех в эту группу.

Предположим, что эти ответственные - пользователи ivan, lena и kira. Тогда в файл /etc/group следует добавить новую группу:




Начало  Назад  Вперед