Процесс может задать собственный корневой каталог при помощи системного вызова chroot, и установить текущий каталог системным вызовом chdir. Каждый процесс может в любой момент выполнить вызов chdir, но chroot позволено выполнять только процессу с административными привилегиями. Chroot обычно используется для ограничения доступа к системе.
Взяв файловую систему, изображенную на Рисунке 2.2, и полагая, что процесс имеет в качестве корневого каталога корневой каталог файловой системы, и в качестве текущего каталога /usr, он может обратиться к файлу vi либо от корня по абсолютному имени /usr/bin/vi, либо из текущего каталога с относительным именем bin/vi.
Системные утилиты и базы данных располагаются в нескольких всем известных каталогах. Частью предопределенной иерархии является каталог, содержащий домашний каталог для каждого пользователя - например, /usr/staff/mckusick и /usr/staff/karels на Рисунке 2.2 Когда пользователи регистрируются в системе, то рабочий каталог их командного процессора устанавливается в домашний каталог. В своих домашних каталогах пользователи могут создавать каталоги так же легко, как и обычные файлы. Таким образом, пользователь может строить иерархии каталогов произвольной сложности.
Пользователь обычно знает только об одной файловой системе, но система может знать, что одна виртуальная файловая система на самом деле состоит из нескольких физических файловых систем, каждая из которых расположена на отдельном устройстве. Физическая файловая система не может располагаться на нескольких физических устройствах. Так как большинство физических дисковых устройств разбиваются на несколько логических устройств, то на одном физическом устройстве может располагаться более одной файловой системы, но не более одной для каждого логического устройства. Одна из файловых систем - та, с которой начинаются все абсолютные имена - называется корневой файловой системой, и она всегда доступна. Другие файловые системы могут монтироваться; это значит, что они могут интегрироваться в иерархию каталогов корневой файловой системы. Ссылки на каталог, в котором находится смонтированная в него файловая системе, прозрачно преобразуются ядром в ссылки на корневой каталог смонтированной файловой системы.
Файлы организованы иерархически в каталоги. Каталог является типом файла, но, в отличие от обычных файлов, каталог имеет структуру, определяемую системой. Процесс может читать каталог, как будто это обычный файл, но только ядру разрешено изменять каталог. Каталоги создаются системным вызовом mkdir и удаляются системным вызовом rmdir. До 4.2BSD системные вызовы mkdir и rmdir были реализованы как последовательность системных вызовов link и unlink. Имелось три причины для добавления системных вызовов специально для создания и удаления каталогов:
Операция может быть сделана атомарной. Если система завершила работу аварийно, то каталог не может оставаться в промежуточном состоянии, что может случиться при последовательном вызове серии операций.
При работе сетевой файловой системы создание и удаление файлов и каталогов должны выполняться атомарно, чтобы могли выполняться последовательно.
При реализации поддержки не-UNIX файловых систем, таких, как файловая система MS-DOS, на другом разделе диска, может оказаться, что эта файловая система не поддерживает ссылочных операций. Хотя другие файловые системы могут поддерживать концепцию каталогов, скорее всего, они не будут создавать и удалять каталоги со ссылками, как это делается в файловой системе UNIX. Соответственно они могут создавать и и удалять каталоги только при наличии явных запросов на удаление или создание каталогов.
Не все CD могут быть прочитаны во всех операционных системах, очень многое зависит от файловой системы и способа именования файлов при создании диска. Если Вам нужна максимальная совместимость, проверьте это по таблице:
Файловая система/имена файлов | Операционная система | |||||
DOS/Windows 3.1 | Windows | Mac | Unix | |||
95 | NT 3.51 | NT 4.0 | ||||
ISO 9660 Level 1 | + | + | + | + | + | + |
Joliet | +* | + | - | + | +* | +* |
Romeo | - | + | + | + | +*** | +/- |
HFS (Mac) | - | - | - | - | + | +**** |
UDF (DirectCD) | - | +** | - | +** | +** | |
ISO 9660 Level 3 (DirectCD for Windows) | - | + | + | - |
* короткие имена FILENA~1. TXT или длинные с патчем для Linux ** если установлен драйвер UDF *** если имя короче 31 символа **** Linux со специальным патчем.
ISO 9660 (8+3 characters set) (или ISO 9660 Level 1)
MS-DOS 8+3 filenames (неограниченный набор символов)
Joliet
Другие файловые системы
ISO-9660 Level 2
ISO-9660 Level 3
Rock Ridge
HFS
1. Автоматизированные информационные технологии в экономике. Под. ред. Г.А. Титоренко - М. Компьютер ЮНИТИ, 1998, - 336 с.
2. Бердтис А. Структуры данных. - М.: Статистика, 1974, - 408 с.
3. Блек Ю. Сети ЭВМ: протоколы, стандарты, интерфейсы. - М.: Мир, 1980.
4. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. - М.: Финансы и статистика, 1992.
5. Бойков В., Савинков В.М. Проектирование баз данных информационных систем. М. Мир 1997.
6. Боэм Б.У. Инженерное программирование для проектирования программного обеспечения. - М.: Радио і связь, 1985, - 512с.
7. Брябрин В.М. Программное обеспечение персональных ЭВМ. - М.: Наука, 1988.
8. Васильев В.Н. Организация, управление и экономика гибкого интегрированного производства в машиностроении. - М.: Машиностроение, 1986. -312 с.
9. Вершинин О.В. Компьютер для менеджера. - М.: Высшая школа, 1990.
10. Вычислительные машины, системы и сети / Под ред. А.П. Пятибратова. - М.: Финансы и статистика, 1991.
11. Герасименко В.А. Защита информации в автоматизированных системах обработки данных. - В 2-х кн. - М.: Энергоатомиздат, 1994.
12. Гершгорин Л.Г. Что такое АРМ бухгалтера. - М.: Финансы и статистика, 1988.