Вход/Регистрация
Операционная система UNIX
вернуться

Робачевский Андрей Михайлович

Шрифт:

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

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

Рис. 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.

  • Читать дальше
  • 1
  • ...
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: