- •18. Ос семейства unix. Архитектура виртуальной файловой системы. Виртуальные индексные дескрипторы. Монтирование файловых систем. 82
- •31. Файловая система Novell NetWare. Журналирование. Поддержка дополнительных пространств имен. 126
- •32. Ос семейства unix. System V ipc. Разделяемая память. Семафоры. Сообщения. Программные каналы. 126
- •Билет 1
- •1. Классификация современных ос.
- •2. Ос семейства unix. System V ipc. Разделяемая память. Семафоры. Сообщения. Программные каналы.
- •Разделяемая память
- •Семафоры
- •Сообщения
- •Программные каналы
- •Билет 2
- •Распределение оперативной памяти (conversional memory, hma, ems, xms)
- •Базовая память (conventional memory)
- •Дополнительная память (Extended Memory Specification - xms)
- •Расширенная память (Expanded Memory Specification - ems)
- •Верхняя память (High Memory Area - hma)
- •4. Ос семейства unix. Сигналы. Сигналы
- •Доставка и обработка сигнала
- •Билет 3
- •5. Файловые системы fat и vfat. Файловая система fat
- •Загрузочный сектор
- •Корневой каталог root
- •Файловая система vfat
- •6. Ос семейства unix. Управление вводом - выводом. Блочные, символьные и потоковые драйверы. Управление вводом – выводом
- •Принципы системной буферизации ввода/вывода
- •Системные вызовы для управления вводом/выводом
- •Блочные, символьные и потоковые драйверы Блочные драйверы
- •Символьные драйверы
- •Потоковые драйверы
- •Билет 4
- •7. Сравнительные особенности ядер операционных систем Windows nt и os/2 Ядро Windows nt
- •8. Ос семейства unix. Потоки. Программный интерфейс сокетов. Потоки
- •Программный интерфейс сокетов Сокет
- •Программный интерфейс сокетов
- •Билет 5
- •9. Одноранговые сетевые ос. Структура сетевой операционной системы
- •Одноранговые сетевые ос и ос с выделенными серверами
- •10. Ос семейства unix. Архитектура виртуальной файловой системы. Виртуальные индексные дескрипторы. Монтирование файловых систем. Архитектура виртуальной файловой системы
- •Виртуальные индексные дескрипторы
- •Монтирование файловых систем
- •Структура NetWare и обзор особенностей
- •Способы повышения производительности
- •Способы обеспечения открытости и расширяемости
- •Способы обеспечения надежности
- •Защита информации
- •Нити Диспетчеризация процессов (нитей)
- •Кольца защиты Первый уровень защиты sft-I
- •Второй уровень надёжности sft-II
- •Третий уровень надёжности sft-III
- •12. Основные сетевые сервисы ос unix. X-Window. Основные сетевые сервисы ос unix
- •Перечень основных сетевых сервисов
- •Общая организация X-Window
- •Клиентская и серверная части
- •Базовые библиотеки
- •13. Файловая система Novell NetWare. Журналирование. Поддержка дополнительных пространств имен. Файловая система Novell NetWare
- •Журналирование Поддержка дополнительных пространств имен Пространства имен
- •Билет 8
- •15. Концепции Windows nt. Архитектура ядра nt, защищенные подсистемы (Win 32, Win 16, dos, os/2, posix). Концепции Windows nt
- •Архитектура ядра nt, защищенные подсистемы (Win 32, Win 16, dos, os/2, posix) Архитектура ядра Windows nt 5.0
- •Архитектура системы
- •Режим ядра
- •Исполняемая часть
- •Абстракция от оборудования
- •Пользовательские процессы
- •Подсистемы среды и библиотеки dll
- •Новые черты ядра nt 5.0
- •Объект "Задание"
- •Управление памятью большой емкости
- •Пользователи и группы
- •Идентификаторы
- •Разграничения прав на доступ к файловой системе
- •Алгоритм планирования процессов и нитей
- •Передача параметров
- •Связывание (binding)
- •Обработка особых ситуаций (exception)
- •Семантика вызова
- •Представление данных
- •Билет 11
- •21. Концепции построения семейств Windows 3.X и 9x/me
- •1. Самое начало
- •2. Начало: Windows 1.0 /Ноябрь 1985/
- •3. Улучшения: Windows 2.0 /Ноябрь 1987/
- •Windows 386 /9 декабря 1987 / Windows 2.1 (286) /Июнь 1988/
- •4. Обещанное: Windows 3.0/22 мая 1990/
- •5. Ещё лучше: Windows 3.1 /1992/
- •6. Интеграция сетевых средств: Windows for Workgroups 3.11 /Ноябрь 1992/
- •7. Новые технологии: Windows nt 3.1 /27 июля 1993/
- •Windows nt 3.5 /21 сентября 1994/ Windows nt 3.51 /30 мая 1995/
- •8. Прорыв: Windows 95 /24 августа 1995/
- •9. Nt с новым лицом: Windows nt 4.0 /31 июля 1996/
- •10. Хит: Windows 98 /Ноябрь(?) 1998/
- •11. Продолжение: Windows Me/1999(?)/
- •22. Ос семейства unix. Пользовательская и ядерная составляющая процессов. Жизненный цикл процесса. Пользовательская и ядерная составляющая процессов Понятие нити (threads)
- •Жизненный цикл процесса
- •Суперблок
- •Индексные дескрипторы
- •Имена файлов
- •Недостатки и ограничения
- •Структура каталога
- •Каталоги
- •Виртуальная память
- •Аппаратно-независимый уровень управления памятью
Монтирование файловых систем
Прежде чем может состояться работа с файлами, соответствующая файловая система должна быть встроена в существующее иерархическое дерево. Только после этого ядро сможет выполнять файловые операции, такие как создание, открытие, чтение или запись в файл. Эта операция встраивания получила название подключения или монтирования файловой системы.
Каждая подключенная файловая система представлена на независимом уровне в виде структуры vfs, аналоге записи таблицы монтирования дисковой файловой системы. Структуры vfs всех подключенных файловых систем организованы в виде односвязного списка, в совокупности обеспечивая информацию, необходимую для обслуживания всего иерархического дерева, а также информацию о реальной файловой системе, которые не изменяются на протяжении работы. Первой записью списка всегда является корневая файловая система. В дальнейшем, список vfs мы будем называть устоявшимся термином - таблица монтирования. Поля структуры vfs приведены в табл. 3.3.
Таблица 3.3 Поля структуры vfs
struct vfs *vfs_next |
Следующая файловая система в списке монтирования. |
struct vfsops *vfs_op |
Операции файловой системы. |
struct vnode *vfs_vnodecovered |
vnode, перекрываемый файловой системой. |
int vfs_flag |
Флаги: только для чтения, запрещен бит SUID и т. д. |
int vfs_bsize |
Размер блока файловой системы. |
caddr_t vfs_data |
Указатель на специфические данные, относящиеся к реальной файловой системе. |
Поле vfs_data содержит указатель на данные реальной файловой системы. Например, для дисковой файловой системы s5fs, это поле указывает на суперблок, размещенный в памяти.
Поле vfs_op указывает на операции файловой системы, которые в терминах объектно-ориентированного подхода могут быть названы виртуальными методами объекта vfs. Возможные операции файловой системы приведены в табл. 3.4. Поскольку они существенным образом зависят от архитектуры и конкретной реализации, поля vfs_op заполняются указателями на соответствующие функции реальной файловой системы при ее монтировании.
Таблица 3.4. Операции файловой системы
int (*vfs_mount)() |
Подключает файловую систему. Обычно операция включает размещение суперблока в памяти и инициализацию записи в таблице монтирования. |
int (*vfs_unmount)() |
Отключает файловую систему. Операция включает актуализацию данных файловой системы на накопителе (например, синхронизацию дискового суперблока и его образа в памяти). |
int (*vfs_root)() |
Возвращает корневой vnode файловой системы. |
int (*vfs_statfs)() |
Возвращает общую информацию о файловой системе, в частности: размер блока хранения данных, число блоков,число свободных блоков,число inode. |
int (*vfs_sync)() |
Актуализирует все кэшированные данные файловой системы. |
int (*vfs_fid)() |
Возвращает файловый идентификатор (fid - file Identifier), однозначно адресующий файл в данной файловой системе. В качестве fid может, например, выступать номер inode реальной файловой системы. |
int (*vfs_vget)() |
Возвращает указатель на vnode для файла данной файловой системы, адресованного fid. |
Для инициализации и монтирования реальной файловой системы UNIX хранит коммутатор файловых систем (File System Switch), адресующий процедурный интерфейс для каждого типа файловой системы, поддерживаемой ядром. UNIX System V для этого использует глобальную таблицу, каждый элемент которой соответствует определенному типу реальной файловой системы, например s5fs, ufs или nfs. Элемент этой таблицы vfssw имеет поля, указанные в табл. 3.5.
Таблица 3.5. Коммутатор файловых систем
char *vsw_name |
Имя типа файловой системы |
int (*vsw_init)() |
Адрес процедуры инициализации |
struct vfsops *vsw_vfsops |
Указатель на вектор операций файловой системы |
long vsw_flag |
Флаги |
Монтирование файловой системы производится системным вызовом mount(2). В качестве аргументов передаются тип монтируемой файловой системы, имя каталога, к которому подключается файловая система (точка монтирования), флаги (например, доступ к файловой системе только для чтения) и дополнительные данные, конкретный вид и содержимое которых зависят от реализации реальной файловой системы. При этом производится поиск vnode, соответствующего файлу - точке монтирования (операция lookup() или namei() трансляции имени), и проверяется, что файл является каталогом и не используется в настоящее время для монтирования других файловых систем.
Затем происходит поиск элемента коммутатора файловых систем vfssw[], соответствующего типу монтируемой файловой системы. Если такой элемент найден, вызывается операция инициализации, адресованная полем vsw_init().
После этого вызывается операция vfs_mount(), соответствующая данному типу файловой системы. Конкретные действия определяются реализацией файловой системы и могут существенно различаться. Например, операция монтирования локальной файловой системы ufs предусматривает считывание в память метаданных системы, таких как суперблок, в то время как монтирование удаленной NFS файловой системы включает передачу сетевого запроса файловому серверу. Однако монтирование предусматривает выполнение и ряда общих операций, включающих:
проверку соответствующих прав на выполнение монтирования;
размещение и инициализацию специфических для файловой системы данного типа данных, сохранение адреса этих данных в поле vfs_data элемента vfs;
размещение vnode для корневого каталога подключаемой файловой системы, доступ к которому осуществляется с помощью операции vfs_root().
После подключения файловая система может быть адресована по имени точки монтирования. В частности, при отключении файловой системы с помощью системного вызова umount(2), в качестве аргумента ему передается имя точки монтирования. Адресация с помощью специального файла устройства, как это происходило раньше, нарушает унифицированный вид виртуальной файловой системы, так как некоторые типы вообще не имеют такого устройства (например, NFS).
Рис.3.10 Монтирование файловой системы
Билет 6
11. Концепции ОС семейства Novell NetWare. NLM. Нити. Кольца защиты.
Концепции ОС семейства Novell NetWare
Структурная схема OC
На рисунке 2.2 представлена укрупненная структурная схема ОС NetWare.
Рис. 2.2. Структурная схема ОС NetWare
Ядро ОС NetWare загружается в ОП файлового сервера из-под DOS (программа SERVER.EXE). Программа SERVER.EXE выполняет следующие действия.
1. Читает из каталога DOS файл STARTUP.NCF и интерпретирует закодированные в нём операторы. Этот небольшой текстовый файл обычно содержит следующие команды:
оператор загрузки (load) NLM-модуля DOMAIN.NLM (только для версии 4.х); этот модуль читается из каталога DOS и обеспечивает защиту оперативной памяти файлового сервера,
оператор загрузки NLM-модуля драйвера жесткого диска, например ISADISK.DSK; после этого становится доступной файловая система NetWare,
может быть некоторые SET-команды, например, указание максимального уровня вложенности каталогов файловой системы NetWare.
2. Монтирует том SYS файлового сервера и открывает каталог SYSTEM на этом томе.
3. Читает из каталога SYSTEM конфигурационный файл AUTOEXEC.NCF и интерпретирует закодированные в нем операторы. Этот небольшой текстовый файл обычно содержит следующие группы команд:
некоторые SET-команды, например, обеспечивающие переход на летнее и зимнее время,
SET-команды, определяющие Bindery-контексты в дереве NDS (только для версии 4.х),
операторы, указывающие имя файлового сервера и внутренний номер сети,
операторы загрузки драйверов сетевых адаптеров (например, NE2000.LAN) и их связи с протоколом IPX,
операторы загрузки некоторых дополнительных NLM-модулей.
Далее устанавливаются значения SET-параметров, принятые по умолчанию. Изменяя SET-параметры, можно оптимизировать работу операционной системы. Эти параметры следует изменять с помощью SET-команд, которые можно включать в конфигурационные файлы STARTUP.NCF и AUTOEXEC.NCF или вводить с консоли файлового сервера.
В процессе функционирования ядро выполняет также роль диспетчера нитей (задач) операционной системы. Каждая нить или связана с каким-либо NLM-модулем, или представляет внутреннюю задачу ОС. NLM-модуль - это исполняемый файл ОС NetWare 3.х и 4.х.
Системная база данных сетевых ресурсов является частью операционной системы и играет роль надежного хранилища системной информации о
объектах,
их свойствах (атрибутах),
значениях этих свойств.
NetWare поддерживает возможность описания различных типов объектов: пользователей, групп, файловых серверов, очередей печати, серверов печати и т.д. Каждый из этих типов объектов имеет свой набор свойств. Например, объект "пользователь" характеризуется следующими атрибутами: пароль, балансовый счет, список групп, участником которых является пользователь, и т.д. Значением атрибута (свойства) является та совокупность данных, которая содержится в полях этого атрибута. Системная база данных представляет собой множество файлов, хранящихся на томе SYS файлового сервера. В NetWare 3.х и 4.х эти базы организованы по-разному. В NetWare 3.х она представлена в виде БД Bindery, а в NetWare 4.х - в виде глобального сетевого каталога NDS. NDS стала мощным средством управления большими корпоративными сетями.
Следует подчеркнуть, что в NetWare 3.х и 4.х данные о защите файлов и каталогов отделены от системной базы данных и хранятся в элементах DET томов файлового сервера.
