Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема 10Організація файлових систем

Работа добавлена на сайт samzan.net:


Тема 10.Організація файлових систем.

Функції файлової системи ОС і ієрархія даних.

Головний завантажувальний запис диску.

Таблиця розділів.

Розбиття диску на розділи.

Основні утиліти ОС Windows для розбиття диску на розділи.

Функції файлової системи ОС і ієрархія даних.

Нагадаємо, що під файлом звичайно розуміють набір даних, організованих у виді сукупності записів однакової структури. Для керування цими даними створюються відповідні системи керування файлами. Можливість мати справу з логічним рівнем структури даних і операцій, виконуваних над ними в процесі їхньої обробки, надає файлова система. Таким чином, файлова система — це набір специфікацій і відповідне їм програмне забезпечення, що відповідають за створення, знищення, організацію, читання, запис, модифікацію і переміщення файлової інформації, а також за керування доступом до файлів і за керування ресурсами, що використовуються файлами. Саме файлова система визначає спосіб організації даних на диску чи на якому-небудь іншому носії даних. Як приклад можна привести файлову систему FAT, реалізація для якої є в абсолютній більшості ОС, що працюють у сучасних ПК.

Як правило, усі сучасні ОС мають відповідні системи керування файлами. Надалі постараємося розрізняти файлову систему і систему керування файлами.

Система керування файлами є основною підсистемою в абсолютній більшості сучасних операційних систем, хоча в принципі можна обходитися і без неї. По-перше, через систему керування файлами зв'язуються за даними всі системні обробні програми. По-друге, за допомогою цієї системи вирішуються проблеми централізованого розподілу дискового простору і керування даними. По-третє, завдяки використанню тієї чи іншої системи керування файлами користувачам даються наступні можливості:

створення, видалення, перейменування (і інші операції) іменованих наборів даних (іменованих файлів) зі своїх програм чи за допомогою спеціальних керуючих програм, що реалізують функції інтерфейсу користувача з його даними й активно використовують систему керування файлами;

робота з не дисковими периферійними пристроями як з файлами;

обмін даними між файлами, між пристроями, між файлом і пристроєм (і навпаки);

робота з файлами за допомогою звертань до програмних модулів системи керування файлами (частина API орієнтована саме на роботу з файлами);

захист файлів від несанкціонованого доступу.

У деяких ОС може бути кілька систем керування файлами, що забезпечує їм можливість працювати з декількома файловими системами. Очевидно, що системи керування файлами, будучи компонентом ОС, не є незалежними від цієї ОС, оскільки вони активно використовують відповідні виклики API (application program interface, прикладний програмний інтерфейс). З іншого боку, системи керування файлами самі доповнюють API новими викликами. Можна сказати, що основне призначення файлової системи і відповідної їй системи керування файлами — організація зручного доступу до даних, організованих як файли, тобто замість низькорівневого доступу до даних із вказівкою конкретних фізичних адрес потрібного нам запису використовується логічний доступ із вказівкою імені файлу і запису в ньому.

Іншими словами, термін «файлова система» визначає, насамперед, принципи доступу до даних, організованих у файли. Цей же термін часто використовують і стосовно конкретних файлів, розташованих на тім чи іншім носії даних. А термін «система керування файлами» варто вживати стосовно конкретної реалізації файлової системи, тобто це — комплекс програмних модулів, що забезпечують роботу з файлами в конкретній операційній системі.

Потрібно ще раз відмітити, що будь-яка система керування файлами не існує сама по собі — вона розроблена для роботи в конкретній ОС. Як приклад можна сказати, що усім відома файлова система FAT (file allocation table) має безліч реалізацій як система керування файлами. Так, система, що одержала цю назву і розроблена для перших персональних комп'ютерів, називалася просто FAT (зараз її називають FAT-12). Її розробляли для роботи з дискетами, і якийсь час вона використовувалася при роботі з жорсткими дисками. Потім її удосконалили для роботи з жорсткими дисками більшого об’єму, і ця нова реалізація одержала назву FAT-16. Цю назву файлової системи ми використовуємо і стосовно системи керування файлами самої MS-DOS. Реалізацію же системи керування файлами для OS/2, що використовує основні принципи системи FAT, називають super-FAT; основна відмінність — можливістъ підтримувати для кожного файлу розширені атрибути. Є версія системи керування файлами з принципами FAT і для Windows 9.1/98, для Windows NT і т.д. Іншими словами, для роботи з файлами, організованими відповідно до деякої файлової системи, для кожної ОС повинна бути розроблена відповідна система керування файлами. Ця система керування файлами буде працювати тільки в тієї ОС, для якої вона і створена; але при цьому вона дозволить працювати з файлами, створеними за допомогою системи керування файлами інший ОС, що працює по тим же основним принципам файлової системи.

Структура магнітного диска (розбивка дисків на розділи).

Для того щоб можна було завантажити з магнітного диска власне саму ОС, а вже з її допомогою й організувати роботу тієї чи іншої системи керування файлами, були прийняті спеціальні системні угоди про структуру диска. Розташування структури даних, що несе інформацію про логічну організацію диска і найпростішу програму, за допомогою якої можна знаходити і завантажувати програми завантаження тієї чи іншої ОС, очевидно — це найперший сектор магнітного диска.

Як відомо, інформація на магнітних дисках розміщається і передається блоками. Кожен такий блок називається сектором (sector), сектори розташовані на концентричних доріжках поверхні диска. Кожна доріжка (track) утвориться при обертанні магнітного диска під зафіксованою в деякім визначеному положенні голівкою читання/запису. Накопичувач на жорстких магнітних дисках (НЖМД) містить один чи більше дисків (у сучасних розповсюджених НЖМД часто — два чи три). Однак звичайно під терміном «жорсткий диск» розуміють весь пакет магнітних дисків. Групи доріжок (треків) одного радіуса, розташованих на поверхнях магнітних дисків, утворять так звані циліндри (cylinder). Сучасні жорсткі диски можуть мати кілька десятків тисяч циліндрів, у той час як на поверхні дискети число доріжок (число циліндрів) нині, як правило, складає всього вісімдесят.

Кожен сектор складається з поля даних і поля службової інформації, що обмежує й ідентифікує його. Розмір сектора (точніше — ємність поля даних) встановлюється контролером чи драйвером. Користувальницький інтерфейс DOS підтримує єдиний розмір сектора — 512 байт. BIOS же безпосередньо надає можливості роботи із секторами розміром 128, 256, 512 чи 1024 байт. Якщо керувати контролером безпосередньо, а не через програмний інтерфейс більш високого рівня (наприклад, рівень DOS), то можна обробляти сектори і з іншими розмірами. Однак у більшості сучасних ОС розмір сектора вибирається рівним 512 байт. Фізична адреса сектора на диску визначається за допомогою трьох «координат», тобто представляється тріадою [c-h-s], де c — номер циліндра (доріжки на поверхні диска, cylinder), h — помер робочої поверхні диска (магнітної голівки, head), а s — номер сектора на доріжці. Номер циліндра c лежить у діапазоні 0..C-1, де C — кількість циліндрів. Номер робочої поверхні диска h належить діапазону 0..Н-1, де Н — число магнітних голівок у накопичувачі. Номер сектора на доріжці s вказується в діапазоні 1..S, де S — кількість секторів на доріжці. Наприклад, тріада [1-0-2] адресує сектор 2 на доріжці 0 (звичайно верхня робоча поверхня) циліндра 1. Надалі ми теж будемо користуватися саме цими позначеннями.

Нагадаємо, що обмін інформацією між ОЗУ і дисками фізично здійснюється тільки секторами. Уся сукупність фізичних секторів на вінчестері представляє його неформатований об’єм.

Жорсткий диск може бути розбитий на кілька розділів (partition), які в принципі потім можуть використовуватися або однією ОС, або різними ОС. Причому самим головним є те, що на кожнім розділі може бути організована своя файлова система. Однак для організації навіть одної файлової системи необхідно визначити, принаймні, один розділ.

Розділи диска можуть бути двох типівprimary (звичайно цей термін переводять як первинний) і extended (розширений). Максимальне число primary розділів дорівнює чотирьом. При цьому на диску обов'язково повинний бути принаймні один primary-розділ. Якщо primary-розділів декілька, то тільки один з них може бути активним. Саме завантажнику, розташованому в активному розділі, передається керування при включенні комп'ютера і завантаженню операційної системи. Інші primary-розділи в цьому випадку вважаються «невидимими, схованими» (hidden).

Відповідно до специфікацій на одному жорсткому диску може бути тільки один extended - розділ, що, у свою чергу, може бути розділений на велику кількість підрозділів — логічних дисків (logical). У цьому змісті термін «первинний» варто визнати не зовсім вдалим перекладом слова primary; можна це слово перевести і як «найпростіший, примітивний». У цьому випадку стає зрозумілим і логічним термін extended.

Один з primary-розділів повинний бути активним, саме з його повинна завантажувати програма завантаження операційної системи, чи так званий менеджер завантаження, призначення якого — завантажити програму завантаження ОС з якого-небудь іншого розділу, і вже з її допомогою завантажувати операційну систему. Оскільки до завантаження ОС система керування файлами працювати не може, то варто використовувати для вказівки згаданих завантажників винятково абсолютні адреси у форматі [c-h-s].

По фізичній адресі [0-0-1] на вінчестері розташовується головний завантажувальний запис (master hoot record, MBR), що містить позасистемний завантажник (non-system bootstrap — NSB), а також таблицю розділів (partition table, FT). Цей запис займає рівно один сектор, вона розміщується в пам'яті, починаючи з адреси 0:7C00h, після чого керування передається коду, що міститься в цьому найпершому секторі магнітного диска. Таким чином, у найпершому (стартовому) секторі фізичного жорсткого диска знаходиться не звичайний запис boot record, як на дискеті, a master boot record.

MBR є основним засобом завантаження з жорсткого диска, підтримуваним BIOS. У MBR знаходяться три важливих елементи:

програма початкового завантаження (non-system bootstrap). Саме вона запускається BIOS після успішного завантаження в пам'ять першого сектора з MBR. Вона, мабуть, не перевищує 512 байт і її вистачає тільки на те, щоб завантажити наступну, трохи більш складну програму, звичайно — стартовий сектор операційної системи — і передати йому керування;

таблиця опису розділів диска (partition table). Розташовується в MBR по зсуві Ox1BE і займає 64 байта;

сигнатура MBR. Останні два байти MBR повинні містити число AA55h. По наявності цієї сигнатури BIOS перевіряє, що перший блок був завантажений успішно. Сигнатура ця обрана не випадково. Її успішна перевірка дозволяє установити, що всі лінії передачі даних можуть передавати і нулі, і одиниці.

Таблиця partition table описує розміщення і характеристики наявних на вінчестері розділів. Можна сказати, що ця таблиця розділів — одна з найбільш важливих структур даних на жорсткому диску. Якщо ця таблиця ушкоджена, то не тільки не буде завантажуватися операційна система (чи одна з операційних систем, встановлених на вінчестері), але перестануть бути доступними і дані, розташовані на вінчестері, особливо якщо жорсткий диск був розбитий на кілька розділів.

Зміщення (Offset)

Розмір

(Sise)(байт)

Вміст (Contents)

0

446

Програма аналізу Partition Table і загрузки System Bootstrap з активного розділу жорсткого диску

+1BEh

16

Partition 1 entry (Описувач розділу)

+1CEh

16

Partition 2 entry

+1DEh

16

Partition 3 entry

+1EEh

16

Partition 3 entry

+1FEh

16

Сигнатура (АА55Н)

Рис.10.4. Структура MBR.

Спрощено структура MBR представлена на рис.10.4. З неї видно, що на початку цього сектора розташовується програма аналізу таблиці розділів і читання першого сектора з активного розділу диска. Сама таблиця partition table - розташовується наприкінці MBR, і для опису кожного розділу в цій таблиці  приділяється по 16 байтів. Першим байтом в елементі розділу йде прапор активності розділу boot indicator (0 - не активна, 128 (80Н) - активний). Він служить для визначення, чи є розділ системним завантажувальним і чи є необхідність робити завантаження операційної системи з нього при старті комп'ютера. Активним може бути тільки один розділ. За прапором активності розділу іде байт  номера голівки, з яким починається розділ. За ним ідуть два байти, що означають відповідно номер сектора і номер циліндра завантажувального сектора, де розташовується перший сектор завантажника операційної системи. Потім іде кодовий ідентифікатор System ID (довжиною в один байт), що вказує на приналежність даного розділу до тієї чи іншої операційної системи й установки на ньому відповідної файлової системи. У табл.10.1 приведені деякі (найбільш відомі) ідентифікатори.

Таблиця 10.1. Сигнатури (типи) розділів

System ID

Тип розділу

System ID

Тип розділу

00

Empty («пустий» розділ)

41

PPC PreP Boot

01

FAT 12

42

SFS

02

XENIX root

4D

QNX 4.x

03

XENIX usr

4E

QNX 4.x 2nd part

04

FAT 16 (<32 Мбайт)

4F

QNX 4.x 3nd part

05

Extended

50

OnTrack DM

06

FAT 16

51

OnTrack DM6 Aux

07

HPFS/NTFS

52

CP/M

08

AIX

53

OnTrack DM6

09

AIX bootable

54

OnTrack DM6

0A

OS/2 Boot Manager

55

EZ Drive

0B

Win95 FAT32

56

Golden Bou

0С

Win95 FAT32 LBA

5C

Priam Edisk

0E

Win95 FAT 16 LBA

61

Speed Stor

0F

Win95 Extended

64

Novell Netware

10

OPUS

65

Novell Netware

11

Hidden FAT12

75

PC/1X

12

Compaq diagnost

80

Old Minix

14

Hidden FAT16 (<32 Мбайт)

82

Linux swap

16

Hidden FAT16

83

Linux native

17

Hidden HPFS/NTFS

84

OS/2 hidden C:

18

AST Windows swap

85

Linux Extended

1B

Hidden Win95 Fat

86

NTFS volume set

1C

Hidden Win95 Fat

A5

BSD/386

IE

Hidden Win95 Fat

A6

Open BSD

24

NEC DOS

A7

Next Step

3C

Partition Magic

EB

Be OS

40

Venix 8028G

За байтом коду операційної системи розміщений байт номера головки кінця розділу, за яким йдуть два байти – номер сектора і номер циліндра останнього сектора доного розділу. Нижче  представлений формат елемента таблиці розділів.

Таблиця 10.2 Формат елемента таблиці розділів.

Назва запису елемента Partition Table

Довжина, байт

Флаг активності розділу

1

Номер головки початку розділу

1

Номер сектора і номер циліндра завантажуючого сектору розділу

2

Кодовий ідентифікатор операційної системи

1

Номер головки кінця розділу

1

Номер сектора і циліндра останнього сектора розділу

2

Молодше і старше двухбайтове слово відносного номера сектора

4

Молодше і старше двухбайтове слово розміру розділу в секторах

4

Номера сектора і номер циліндра секторів у розділах займають по 6 і 10 біт відповідно. Нижче представлений формат запису, що містить номера сектора і циліндра.

 Як ми вже сказали, завантажник non-system bootstrap служить для пошуку за допомогою partition table активного розділу, копіювання в оперативну пам'ять комп'ютера завантажника system bootstrap з обраного розділу і передачі йому керування, що дозволяє здійснити завантаження ОС.

Слідом за сектором MBR розмішаються власне самі розділи (рис.10.5). У процесі початкового завантаження сектора MBR, що містить таблицю partition table, працюють програмні модулі BIOS. Початкове завантаження вважається виконано коректно тільки в тому випадку, коли таблиця розділів містить припустиму інформацію.

У MS-DOS і первинному розділі може бути сформований тільки один логічний диск, а в розширеному – будь-яку їхню кількість. Кожен логічний диск «керується» своїм логічним приводом. Кожному логічному диску на вінчестері відповідає своя (відносна) логічна нумерація. Фізична ж адресація жорсткого диска наскрізна.

Первинний розділ DOS включає тільки системний логічний диск без яких-небудь додаткових інформаційних структур.

Рис. 10.5. Розбивка диска на розділи

Розширений розділ DOS містить вторинний запис MBR (secondary MBR SMBR), до складу якого замість partition table входить таблиця логічного диска (LDT, logical disk table), їй аналогічна. Таблиця LDT описує розміщення і характеристики розділу, що містить єдиний логічний диск, а також може специфікувати наступний запис SMBR. Отже, якщо в розширеному розділі DOS створено K логічних дисків, то він містить K екземплярів SMBR, зв'язаних у список. Кожен елемент цього списку описує відповідний логічний диск і посилається (крім останнього) на наступний елемент списку.

Утиліти, що дозволяють розбити диск на розділи і тим самим сформувати як partition table, так і, можливо, спискову структуру з LDT (подібно тому як це зображено на рис.10.6), звичайно називаються FDISK (від form disk), хоча мережа утиліти і з іншою назвою, що вміють виконати розбивку диска. Нагадаємо, що FD1SK від MS-DOS дозволяє створити тільки один primary-розділ і один extended, що, у свою чергу, пропонується розділити на кілька логічних дисків. Аналогічні утиліти інших ОС мають істотно більше можливостей. Так, наприклад. FDISK системи OS/2 дозволяє створювати кілька primary-розділів, причому їх можна виділяти не тільки послідовно, починаючи з перших циліндрів, але і з кінця вільного дискового простору. Це зручно, якщо потрібно виключити з роботи деякий діапазон дискового простору (наприклад, через дефекти на поверхні магнітного диска). За допомогою цієї утиліти можна установити і менеджер завантаження (boot-менеджер).

Перш ніж перейти до boot-менеджерів, розглянемо ще раз процес завантаження ОС. Процедура початкового завантаження (bootstrap loader) викликається як програмне переривання (BIOS INT 19h). Ця процедура визначає перший готовий пристрій зі списку дозволених і доступних (гнучкий чи жорсткий диск, у сучасних комп'ютерах це можуть бути також CD-ROM, привод ZIP-drive компанії iomega, мережний адаптер чи інший пристрій) і намагається завантажити з нього в ОЗУ коротку головну програму-завантажник. Для вінчестерів — це завантажник non-system bootstrap з MBR, і йому передається керування. Головний завантажник визначає на диску активний розділ, завантажує його власний завантажник (system bootstrap) і передає керування йому. І, нарешті, цей завантажник завантажує необхідні файли операційної системи і передає їй керування. Далі операційна система виконує ініціалізацію підвідомчих їй програмних і апаратних засобів. Вона додає нові сервіси, викликаємі, як правило, теж через механізм програмних переривань, і розширює (чи заміняє) деякі сервіси BIOS. Необхідно відзначити, що в сучасних мультипрограмних операційних системах більшість сервісів BIOS, споконвічно розташованих в ПЗУ, як правило, заміняються власними драйверами, оскільки вони повинні працювати в режимі переривань, а не в режимі сканування готовності.

Відповідно розглянутому процесу завантаження, ми ще раз при запуску комп'ютера будемо попадати в ту саму ОС. Але іноді це нас не влаштовує. Так звані boot-менеджери (менеджери завантаження) призначені для того, щоб користувач міг вибрати серед декількох установлених на комп'ютері ОС потрібну і передати керування завантажнику цієї обраної ОС. Існує велика кількість таких менеджерів. На наш погляд, одним із кращих довгий час був Boot manager компанії IBM, що входить до складу утиліт OS/2. Для його розміщення створюється окремий primary-розділ, що, природно, і є активним (він позначається як startable). Розділ для Boot-менеджера OS/2 займає всього один циліндр і може розміщатися не тільки на нульовому (початковому) циліндрі, але і на останньому циліндрі. У цьому розділі не організується ніякої файлової системи, оскільки звертання до менеджера йде з використанням абсолютної адресації, а сам Boot manager являє собою найпростішу абсолютну двійкову програму. Установка Boot manager здійснюється з програми FDISK. При цьому з'являється можливість вказати, які розділи можуть бути завантажуваними (вони позначаються як bootable), тобто в яких розділах на першому логічному секторі будуть розміщені програми завантаження ОС. Завантажуючими можуть бути як primary-, так і extended-розділи. При цьому, природно, є можливість вказати як час на ухвалення рішення, так і завантаження деякої ОС «за замовчуванням». Зручним є і те, що при розбивці диска на розділи можна взагалі не створювати primary-розділів. Це особливо важливо, якщо в комп'ютері встановлено більш одного дискового накопичувача або якщо ми підготовляємо вінчестер, що повинний досить часто переноситися з одного комп'ютера на іншій. Справа в тім, що в більшості ОС прийняте наступне правило іменування логічних дисків: перший логічний диск позначається  літерою C: другий — D: і т.д. При цьому літеру C: одержує активний primary розділ. Однак якщо до одного вінчестера в персональному комп'ютері підключити другий вінчестер і він теж має активний primary-розділ, то цей primary-розділ другого вінчестера одержить літеру D:, відсуваючи логічний диск D: першого вінчестера на місце диска Е: (і т.д. по ланцюжку). Якщо ж другий (і наступні) вінчестер не має primary-розділу з встановленої на ньому файловою системою, яку дана ОС знає, то «іменування» логічних дисків першого вінчестера не порушується. Природно, що логічні диски другого вінчестера одержують літери логічних дисків слідом за дисками першого вінчестера Boot manager OS/2, створюючи тільки логічні диски на вінчестері, насправді створює і «порожній» primary-розділ, однак цей розділ не стає активним і не одержує статус логічного диска. На жаль, усе більш популярна в наші дні ОС Windows 2000 тепер не тільки знімає прапор активності з розділу, у якому розміщений Boot manager (як це відбувалося при інсталяції будь-яких ОС від компанії Microsoft), але і фізично знищує його двійковий код. Заміна драйвера FASTFAT.SYS системи Windows 2000 на більш ранню версію (у бета-версії ОС Windows 2000 система не знищувала код Boot manager) допомагає лише до установки Service pack. Тому рекомендувати цей менеджер завантаження вже не можна. З останніх менеджерів завантаження, мабуть, найбільш могутнім є Boot star, але його не можна рекомендувати непідготовленим користувачам.

Однієї з найвідоміших і дотепер досить часто використовуваних утиліт за допомогою якої можна подивитися і відредагувати таблицю розділів а також виконати й інші дії, зв'язані з вивченням і виправленням даних як на дискеті, так і на вінчестері, є програма Disk editor з комплекту нортоновских утиліт. Потрібно відмітити, що Disk editor, з одного боку, дуже могутній засіб, і тому його варто використовувати з великою обережністю, а з іншого боку - ця утиліта працює тільки в середовищі DOS. На сьогоднішній день головним недоліком цієї утиліти є обмеження на максимальний розмір диска в 8 Гбайт.

Треба визнати, що останнім часом з'явилася велика кількість утиліт які надають можливість більш наочно представити розбивку диска на розділи, оскільки в них використовується графічний інтерфейс. Ці програми успішно і коректно працюють з найбільш розповсюдженими типами розділів (розділи під FAT, FAT32, NTFS). Однак створені вони в основному для роботи в середовищі Win32API, що часто обмежує можливість їхнього використання. Однією з найвідоміших і могутніх програм для роботи з розділами жорсткого диска є Partition Magic  фірми Power Quest




1. Введение в предмет гипноза
2. Лекция 1. Теория коммуникации как наука План Понятие коммуникации Законы и категории теории комму
3. Системы перевязки швов.html
4. дверь в дверь ориентированность на малый и средний бизнес ЧП ПБЮЛ ООО ОАО ЗАО увеличение доли на
5. Тема- Поисковое чтение с целью определения наличия в тексте запрашиваемой информацииПрочитайте текст и выпо
6. Характеристика производства полимерных труб и его технико-экономический уровень
7. Християнська етика Всі конспекти уроків
8. ТЕМА 1 НАЛОГИ И ИХ ФУНКЦИИ В РЫНОЧНОЙ ЭКОНОМИКЕ
9. Тема 2 Анализ действующих нормативноправовых актов которые регулируют деятельность службы экономической б
10. Ишемическая болезнь сердца
11. Техническим рисунком называют наглядное изображение имеющегося или проектируемого предмета выполненное б
12. реферату- Ціноутворення на промислові товариРозділ- Маркетинг Ціноутворення на промислові товари План
13. Из литературы 18 века и обзорное изучение творчества писателя В
14. John Brleycorn 1913 he hd quitted school t 14 nd strted working for living s his fmily ws very poor
15. наука о частях Она включает в себя классификацию по морфемам и то как слово членится на морфемы
16. Танки времен Великой Отечественной войны
17. ЗАДАНИЕ по курсу Микроэкономика Выполнил а Ф
18. Бюджетные и внебюджетные фонды
19. на тему- Документооборот Выполнила- ученица группы 46 Зумберова Наталья
20. Методические рекомендации для практических семинарских лабораторных занятий Тема- Циркуляция крови