Теорія операційної системи

:: Меню ::

Головна
Представлення даних в обчислювальних системах
Машинні мови
Завантаження програм
Управління оперативною пам'яттю
Сегментна і сторінкова віртуальна пам'ять
Комп'ютер і зовнішні події
Паралелізм з точки зору програміста
Реалізація багатозадачності на однопроцесорних комп'ютерах  
Зовнішні пристрої
Драйвери зовнішніх пристроїв
Файлові системи
Безпека
Огляд архітектури сучасних ОС

:: Друзі ::

Карта сайту
 

:: Статистика ::

 

 

 

 

 

Драйвери файлових систем

При експлуатації ОС може виникнути необхідність вмонтовувати файлові системи, що відрізняються від "рідний" ФС. Особливо часто вона виникає в організаціях, де використовуються ОС декількох різних типів. Та і в організаціях, що працюють з монокультурою MS Dos/ms Windows, така потреба виникає все частіше. По-перше, доступ до файлів на файловому сервері здійснюється істотно іншими способами, чим до файлів локальному диску, навіть якщо на сервері коштує та ж ДОС з тією ж Фс тип FAT. По-друге, дисководи для CD-ROM стають все дешевшими і расгт страняются все ширше. При цьому стандартна ФС на CD-ROM — зовсім FAT.
Вирішення цієї проблеми приходить в голову відразу — необхідний драйвеп файлової системи із стандартним інтерфейсом, подібний до драйвера ннеш його пристрої. Природно, набір функцій такого драйвера має бути істотно іншим.

  • mount — монтування ФС. Залежно від типа ФС параметри тгой функції повинні розрізнятися. Для ФС на локальних дисках досить передати системний ідентифікатор вмонтовуваного диска. Для ФС на видаленій машині ми повинні передати мережеву адресу цієї машини і ім'я необхідної файлової системи. У багатьох випадках проводиться відмінність між монтуванням ФС для чтенія/модіфікациі або лише для читання: при монтуванні з модифікацією встановлюється прапор забруднення (dirty flag) ФС.
  • umount — размонтірованіє ФС.
  • Getfreespace або df — здобуття інформації про ФС: спільний простір, вільний простір, кількість файлів і так далі
  • Findfirst/findnext АБО opendir/readdir — функції длячтенія з каталога. Лічену інформацію необхідно привести до формату, прийнятого в даній ОС. Зокрема, може виявитися необхідним скоротити і перетворити лічені імена файлів. Наприклад, драйвер HPFS, використовуваний в-емуляторе MS DOS, в системі Os/2 не виконує такого перетворення. В результаті — програми DOS не бачать файлів і каталогів з довгими іменами.
  • access — перевірити існування файлу і можливість доступу до нього в заданому режимі, наприклад, для читання або для запису.
  • stat — функція для здобуття інформації про файл із заданим ім'ям. Драйвер ФС повинен рахувати доступну інформацію про файл і привести її до прийнятого в ОС формату. При цьому можливо доведеться проігнорувати частину ліченої інформації, а іншу частину, напро-- тів, драйвер вимушений вигадувати сам. Так, драйвер файлової системи FAT в ОС сімейства Unix вимушений вигадувати ідентифікатор господаря файлу, права доступу і так далі
  • open - відкрити що існує або створити новий файл із заданим ім'ям.
  • read і write — функції прочитування даних з файлу ц запису в нього.
  • lseek — позиціювання у файлі.
  • lock — функція (насправді, набір функцій) блокування для
    синхронізації доступу до файлу або його ділянок. (Детальніше про них див. в
    разд. Захват ділянок файлів). При роботі з локальними ФС операції блокування можуть просліджуватися ядром системи і не доходити до драйвера ФС, але при
    роботі з тими, що розділяються по мережі ФС блокування необхідно відстежувати
    на рівні протоколу розділення файлів, тому драйвер мережевий ФС
    зобов'язаний знати про блокування.
  • close — закрити файл.
  • delete або unlink — видалити файл або його ім'я.
  • link — створити зв'язок з файлом (нове ім'я). Далеко не все ОС і ФС підтримують цю операцію.
  • mkdir — створити каталог.
  • rmdir — видалити каталог. Зазвичай дозволено видалення лише порожніх каталогів.

Окрім власне драйвера ФС, для її повноцінної підтримки потрібні наступні програми:

  • програма створення ФС — mkfs або FORMAT;
  • програма контролю і лагодження ФС — fsck або CHKDSK;
  • програма fstyp, яка дивиться на вміст пристрою і намагається визначити, "її" це ФС або не її. Вона корисна при монтуванні ФС з автоматичним визначенням її типа;
  • програма mount, яка приймає з командного рядка залежні від типа ФС параметри, перевіряє їх допустимість і ініціалізував драйвер ФС.

Драйвери файлових систем в SCO Unixware
Наприклад, дистрибутив ОС Unxiware 2.0 фірм SCO, заснованою на ядрі UNIX System V R4.2, містить драйвери наступних файлових систем.
memfs — файлова система, що розміщує файли в оперативній пам'яті. Може розглядатися як еквівалент віртуального диска в MS DOS.
dosfs — файлова система FAT.
s5 — "класична" ФС, така, що збереглася майже без змін з найраніших версій системи— s5, мабуть, означає Unix System 5. Обмежує ім'я файлу 14 символами. Нестійка до збоїв.
ufs — файлова система, розроблена в університеті Берклі, відома також як FFS (Fast File System) і Berkley FS. Є основний ФС в більшості версій BSD UNIX і підтримується багатьма іншими ОС сімейства Unix. Має вищу продуктивність, ніж s5, в першу чергу за рахунок розбиття таблиці інодов і списку вільних блоків на ділянки (групи циліндрів). Підтримує дискові квоти обмеження на об'єм дискового простору, зайнятого файлами того і~~ іншого користувача. Обмежує ім'я файлу розміром блоку (зазвичай 512 символів). Нестійка до збоїв.
bfs — Boot File System — завантажувальна файлова система. Ета ФС дуже просту структуру, частково схожу на файлову систему
всі файли в ній зобов'язані займати безперервний простір. "Гака структура спрощує первинний завантажувач системи, якому тепер не потрібно знатися на каталогах і інодах. bfs має досить низьку про-ізводітельность і вимагає тривалої процедури размонтірованія. якщо в неї були записані нові дані. Фактично, при такому размонтирова-нии відбувається операція стискування ФС, еквівалентна команді SQEESE в Rt-11. Використовується для зберігання ядра системи і декількох конфігураційних файлів, вживаних при завантаженні. Всі ці дані прочитуються лише при завантаженні системи і перезаписуються лише при змінах конфігурації ядра, тому висока продуктивність від цієї ФС не потрібний.
vxfs — стійка до збоїв ФС Veritas з реєстрацією намірів. Версія, що входить в стандартне постачання системи, включає в реєстровані транзакції лише системні структури даних. За окрему платню можна придбати "просунуту" версію Veritas, яка забезпечує транзакції і для запису призначених для користувача даних.
cdfs — файлова система ISO, використовувана на CD-ROM.
nfs — Network File System — драйвер файлової системи, що забезпечує розділення файлів з використанням мережевого протоколу Tcp/ip. Протокол NFS був запропонований фірмою Sun Microsystems в середині 80-х років і в даний час підтримується практично всіма членами сімейства Unix. NFS-клиенты і NFS-серверы реалізовані практично для всіх сучасних ОС.
rfs — Remote File Sharing — використання видаленої UNIX-системы як файловий сервер. Цей протокол був розроблений фірмою At&t в 80-і роки і придатний лише для з'єднання систем UNIX System V.
nucfs — Netware Unix Client File System. Цей драйвер призначений для приєднання до файлових серверів Novell Netware. Він входить до складу системи Unixware, фірмою SCO, що поставляється, але не в останні версії UNIX Svr4.

Цікаво, що навіть Ms/dr DOS версій вище 3.30 мають можливість встановлювати драйвер файлової системи. Такий драйвер може бути реалізований шляхом перехоплення недокументованих функцій переривання 0x2f — групи функцій "Network Redirector" і "IPS". Таким чином реалізований ряд мережевих клієнтів для Ms/dr DOS. На жаль, автор не зміг знайти повноцінного опису цих функцій.

 

:: Реклама ::

 

:: Посилання ::


 

 

 


Copyright © Kivik, 2017