· З метою системної безпеки (заборона запуску програм з файлових систем, обмеження дискового простору для файлової системи, и.т.п)
У загальних рисах файлову систему HP-UX складається з дерева каталогів (директорій) розміщених ієрархічно з кореневим каталогом у вершині. Всі файлові системи мають властивість "монтовані" полягає в тому що будь-яка файлова система може бути змонтована (прикріплена) до існуючої директорії. Будь-яку змонтовану файлову систему крім кореневої можна демонтувати. Монтування кореневої файлової системи здійснює ядро, відразу ж після завантаження.
Структура файлової системи HFS
Все HFS файлові системи мають в своєму складі наступні структури:
· Набір груп циліндрів
Структури даних використовуються в файлової системі містяться в файлі /usr/include/sys/fs.h. Первинний суперблок це безперервний блок даних розмірів 8К розміщується перед початком файлової системи який містить статичну інформацію про файлової системи в момент її створення (або останнього розширення):
· Розмір файлової системи
· Кількість inodes які може зберігати файлова система
· Позиція вільного місця на диску
· Кількість груп цілінров
· Позиції суперблоков, Крупп цилиндро, блоків inodes і блоків даних
· Розмір блоку і фрагмента
Крім цього головний суперблок містить допоміжну інформацію про те коли останній раз монтувалася, модифікувалася і перевірялася файлова система. Тому що головний суперблок містить виключно важливу інформацію про файлову систему, HP-UX завжди зберігає його копії в кожній групі циліндрів. Одна з копій завантажується в пам'ять після завантаження. Головний суперблок розміщується на самому початку файлової системи і кожна група ціліндпров має має свою копію суперблоку. Таким чином досягається резервування критично важливої інформації. Суперблоці груп циліндрів на диску оновлюються кожного разу коли виконується команда sync або коли файлова система размонтіруйте. У файлі / etc / sbtab присутній запис положення всіх суперблоков файлових систем.
Група циліндрів - це група дискових циліндрів йдуть підряд. Циліндр являє собою сукупність треків кожен з яких розміщений на однаковій відстані від центру поверхні дискового носія. Всі треки в ціліндрк доступні за одну операцію читання / запису дискової головки. З метою підвищення продуктивності, циліндри групуються (за замовчуванням 16 циліндрів) в групи циліндрів. Кожна група циліндрів має свій набір inodes і свою карту вільного простору в групі. Така організація зберігання позволяеет мінімізувати час пошуку даних файлу в групі циліндрів. Наведемо структуру групи циліндрів:
1 тільки для першої групи циліндрів
2 см. Розділ inodes
3 см. Розділ блоки даних
Розділ інформації про групу циліндрів зберігає динамічні параметри групи циліндрів, такі як:
· Кількість inodes і блоків даних в групі циліндрів
· Покажчики на останній спожитий блок, фрагмент і inode
· Кількість вільних фрагментів
· Карту використаних inodes
· Карту вільних блоків
Інформація про групу циліндрів занімет один блок (розмір блоку визначається прісозданіі файлової системи і зазвичай дорівнює або чотирьом або восьми кілобайтам).
Крім зберігання інформації про стан файлової системи, групи циліндрів зберігають ключову інформацію про inodes файлової системи - індексам файлів даних (і директорій). Дискова inode містить наступну інформацію про фото:
· Тип файлу і атрибути доступу
· Кількість посилань на файл
· Власника і групу файлу
· Розмір файлу в байтах
· Тимчасові місця (час останнього звернення, останньої модифікації)
· Покажчики на блоки файлової системи містять дані
Коли файл відкритий процесом, інформація про його inode перебуває в пам'яті ядра (in-core inode) в поєднанні з доаполнітельнимі атрибутами, такими як:
· Статус inode, включаючи факт блокування inode, чи відрізняється in-core inode від дискової inode в наслідок модифікації файлу, чи є файл точкою монтування файлової системи ...
· Покажчик на інші in-core inodes збудовані у вигляді списку.
Якщо inode вказує на спеціальний (нерегулярно) файл, то з ним асоціюються додаткові параметри, такі як є чи файл FIFO або pipe, символьним або блоковим пристроєм або ж Директорією. Коли створюється файлова система (команда newfs), створюються inodes. Кількість inodes обмежує кількість файлів в файлову систему. При створенні файлової системи за замовчуванням система має на увазі що в середньому на одну inode припадає 2048 байт даних, що в більшості випадків є більш ніж достатньою кількістю. Іноді, можлива ситуація коли ядро сигналізує про помилку переповнення таблиці in-core inodes (inode: table is full). В цьому випадку необхідно змінити розмір цієї таблиці збільшивши системний параметр ядра ninode.
Після суперблоку, даних про групу циліндрів і таблиці inodes йде місце зарезервоване під блоки даних. HP-UX підтримує блоки розміром 4,8,16,32 і 64 Кб. Розмір блоку задається при створенні файлової системи (команда newfs). Великий розмір блоку дає виграш в швидкості передачі даних при роботі з великими файламіно при цьому є причиною неефективного використання дискового простору приработе з маленькими (яких більшість в HP-UX) файлами. Тому з метою економії дискового простору блок може бути розділений на декілька фрагментів (1,2 або 4Кб). Розмір фрагмента також визначається при створенні файлової системи і не може мати розмір менше ніж одна восьма розміру блоку.