Андрей Робачевский - Операционная система UNIX

Тут можно читать онлайн Андрей Робачевский - Операционная система UNIX - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство BHV - Санкт-Петербург, год 1997. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Операционная система UNIX
  • Автор:
  • Жанр:
  • Издательство:
    BHV - Санкт-Петербург
  • Год:
    1997
  • Город:
    Санкт-Петербург
  • ISBN:
    5-7791-0057-8
  • Рейтинг:
    4.63/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Андрей Робачевский - Операционная система UNIX краткое содержание

Операционная система UNIX - описание и краткое содержание, автор Андрей Робачевский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).

Для широкого круга пользователей

Операционная система UNIX - читать онлайн бесплатно полную версию (весь текст целиком)

Операционная система UNIX - читать книгу онлайн бесплатно, автор Андрей Робачевский
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

□ размещение и инициализацию специфических для файловой системы данного типа данных, сохранение адреса этих данных в поле vfs_dataэлемента vfs;

□ размещение vnode для корневого каталога подключаемой файловой системы, доступ к которому осуществляется с помощью операции vfs_root().

После подключения файловая система может быть адресована по имени точки монтирования. В частности, при отключении файловой системы с помощью системного вызова umount(2) , в качестве аргумента ему передается имя точки монтирования. Адресация с помощью специального файла устройства, как это происходило раньше, нарушает унифицированный вид виртуальной файловой системы, так как некоторые типы вообще не имеют такого устройства (например, NFS).

Определение корневого vnode для подключенной файловой системы производится с помощью операции vfs_root(). Заметим, что в некоторых реализациях независимой файловой системы (например, в SCO UNIX, хотя там используется другая терминология) одно из полей записи таблицы монтирования явно указывало на корневой vnode. Подход, предложенный фирмой Sun Microsystems, позволяет не хранить корневой vnode постоянно, размещая его только при необходимости работы с файловой системой. Это минимизирует ресурсы, занимаемые подключенными файловыми системами, которые продолжительное время не используются.

На рис. 4.10 приведен вид логического файлового дерева до и после монтирования файловой системы А к каталогу /usr/local. На рис. 4.11 приведен вид виртуальной файловой системы после этой операции монтирования.

Рис 410 Монтирование файловой системы А к корневой файловой системе Рис - фото 58

Рис. 4.10. Монтирование файловой системы А к корневой файловой системе

Рис 411 Схема монтирования файловых систем различных типов Исследовать - фото 59

Рис. 4.11. Схема монтирования файловых систем различных типов

Исследовать описанные структуры данных можно с помощью утилиты crash(1M) . Для этого применяются команды vfs и mode , отображающие содержимое соответствующих структур данных. Приведем пример такого исследования файлового дерева операционной системы Solaris 2.5:

# crash

dumpfile = /dev/mem, namelist = /dev/ksyms, outfile = stdout

> !mount

/ on /dev/dsk/c0t3d0s0 read/write on Tue Feb 25 15:29:11 1997

/usr/local on /dev/dsk/c0t0d0s0 read/write on Tue Feb 25 15:29:13 1997

/tmp on swap read/write on Tue Feb 25 15:29:13 1997

/dev/fd on fd read/write/setuid on Tue Feb 25 15:29:11 1997

/proc on /proc read/write/setuid on Tue Feb 25 15:29:11 1997

/cdrom/unnamed_cdrom on /dev/dsk/c0t6d0 ronly on Mon Mar 25 15:29:43 1997

> vfs

FSTYP BSZ MAJ/MIN FSID VNCOVERED PDATA BCOUNT FLAGS

ufs 8192 32,24 800018 0 f5b79b78 0 notr

ufs 8192 32,0 800000 f5c29ad0 f5c28c88 0 notr

tmpfs 4096 0,0 0 f5958d18 f5d16ee0 0 notr

fd 1024 158,0 2780000 f5c4f5d8 0 0

proc 1024 156,0 2700000 f5c4f718 0 283920

hsfs 2048 91,1 b9d02de5 f5f20698 f5b60d98 0 rd

Мы распечатали список подключенных файловых систем (команда mount(1M) ) и элементы vfs таблицы монтирования. Рассмотрим подробнее vnode точки монтирования файловой системы раздела /dev/dsk/c0t0d0s0.

> vnode f5c29ad0

VCNT VFSMNTED VFSP STREAMP VTYPE RDEV VDATA VFILOCKS VFLAG

2 f5c25c60 f0286570 0 d - f5c29ac8 0 -

Удостоверимся, что поле v_ vfsmountedhere( VFSMNTED) адресует элемент vfsподключенной файловой системы, а поле v_fsp( VFSP) указывает на элемент корневой файловой системы.

> vfs f5c25c60

FSTYP BSZ MAJ/MIN FSID VNCOVERED PDATA BCOUNT FLAGS

ufs 8192 32,0 800000 f5c29ad0 f5c28c88 0 notr

> vfs f0286570

FSTYP BSZ MAJ/MIN FSID VNCOVERED PDATA BCOUNT FLAGS

ufs 8192 32,24 800018 0 f5b79b78 0 notr

Наконец, посмотрим на содержимое inode файловой системы ufs, адресованного полем v_data( VDATA) виртуального индексного дескриптора:

> ui f5c29ac8

UFS INODE TABLE SIZE = 1671

SLOT MAJ/MIN INUMB RCNT LINK UID GID SIZE MODE FLAGS

- 32,24 7552 2 2 0 0 512 d---755 rf

Полученная информация показывает, что запись таблицы inode ufs адресует дисковый индексный дескриптор с номером 7552 ( INUMB). Для того чтобы узнать имя файла, используем команду ncheck(1M) :

> !ncheck -i 7552

/dev/dsk/c0t3d0s0:

7552 /usr/local

Трансляция имен

Прикладные процессы, запрашивая услуги файловой системы, обычно имеют дело с именем файла или файловым дескриптором, полученным в результате определенных системных вызовов. Однако ядро системы для обеспечения работы с файлами использует не имена, а индексные дескрипторы. Таким образом, необходима трансляция имени файла, передаваемого, например, в качестве аргумента системному вызову open(2) , в номер соответствующего vnode.

В табл. 4.6 приведены системные вызовы, для выполнения которых требуется трансляция имени файла.

Таблица 4.6. Системные вызовы, требующие трансляции имени

exec(2) Запустить программу на выполнение
chown(2) Изменить владельца-пользователя
chgrp(2) Изменить владельца-группу
chmod (2) Изменить права доступа
statfs(2) Получить метаданные файла
rmdir(2) Удалить каталог
mkdir(2) Создать каталог
mknod(2) Создать специальный файл устройства
open(2) Открыть файл
link(2) Создать жесткую связь

Говоря формально, полное имя файла представляет собой последовательность слов, разделенных символом '/'. Каждый компонент имени, кроме последнего, является именем каталога. Последний компонент определяет собственно имя файла. При этом полное имя может быть абсолютным или относительным . Если полное имя начинается с символа '/', представляющего корневой каталог общего логического дерева файловой системы, то оно является абсолютным, однозначно определяющим файл из любого места файловой системы. В противном случае, имя является относительным и адресует файл относительно текущего каталога. Примером относительного имени может служить include/sys/user.h, а абсолютное имя этого файла — /usr/include/sys/user.h. Как следует из этих рассуждений, два каталога играют ключевую роль при трансляции имени: корневой каталог и текущий каталог. Каждый процесс адресует эти каталоги двумя полями структуры u_area:

struct vnode *u_cdir Указатель на vnode текущего каталога
struct vnode *u_rdir Указатель на vnode корневого каталога

В зависимости от имени файла трансляция начинается с vnode, адресованного либо полем u_cdir, либо u_rdir. Трансляция имени осуществляется покомпонентно, при этом для vnode текущего каталога вызывается соответствующая ему операция vn_lookup(), в качестве аргумента которой передается имя следующего компонента. В результате операции возвращается vnode, соответствующий искомому компоненту.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Андрей Робачевский читать все книги автора по порядку

Андрей Робачевский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Операционная система UNIX отзывы


Отзывы читателей о книге Операционная система UNIX, автор: Андрей Робачевский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x