Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Логічна структура диску в MS-DOS

За своєю внутрішньою структурою логічний диск повністю відповідає дискеті, тому спочатку розглядаємо логічну структуру жорсткого диску, а потім деякі зауваження відносно гнучких дискет.

Розбиття фізичного диску на декілька логічних корисно з таких точок зору:

1. У випадку пошкодження логічного диску пропадає тільки та інформація, яка знаходилась на цьому логічному диску.

2. Реорганізація та вивантаження диску малого розміру простіше і швидше ніж великого.

3. Можливе розділення дискового простору між окремими користувачами комп’ютеру.

4. При використанні спеціальних утиліт для розділення диску на частини (менеджерів), можлива установка для окремих логічних дисків захисту від запису. На такі диски можна записувати інформацію, що не міняється. Шкода від програм-вірусів буде менша – вірус не зможе записати себе на захищений диск.

5. Один фізичний диск може вміщувати декілька різних ОС, розташованих в різних логічних розділах диску. Під час початкового завантаження можна вказати розділи диску, з якого повинна виконуватись завантаження ОС.

Перший сектор жорсткого диску (сектор 1, доріжка 0, головка 0) вміщує так званий головний завантажувальний запис (Master But Record). Цей запис призначений для завантаження операційної системи.

Сам по собі головний завантажувальний запис – це програма. Вона під час початкового завантаження ОС з жорсткого диску розміщується за фіксованою адресою в оперативній пам’яті (7С00:0000), після чого, їй передається керування. Завантажувальний запис продовжує процес завантаження ОС.

В кінці першого сектору жорсткого диску розташовується таблиця розділів диску (Partition Table). Ця таблиця вміщує чотири елементи, що описує максимально чотири розділи диску. В останніх двох байтах сектора знаходиться число 55АА. Це ознака таблиці розділів.

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

Елемент таблиці розділів диску - це структура розміром 16 байтів, що описує частину диску, яка називається розділом. В структурі описані межі розділів в термінах номерів сектора, доріжки та головки, там розміщується інформація про розміри розділу в секторах та про призначення розділу.

Розділи диску можуть бути активними, активний розділ може бути використаний для завантаження ОС. Диск може вміщувати одночасно декілька активних розділів, які можуть належати різним ОС.

 

Формат самого першого сектору жорсткого диску

Зміщення Розмір Вміст
(+0) 1BEh Головний завантажувальний запис – програма, яка завантажується та виконується під час початкового завантаження ОС.
+1BEh 10H Елемент таблиць розділів диску.
+1CEh 10H Елемент таблиць розділів диску.
+1DEh 10H Елемент таблиць розділів диску.
+1EEh 10H Елемент таблиць розділів диску.

 

У першому секторі активного розділу розташований запис завантаження (Boot Record Program), який не треба плутати з головним завантажувальним записом (Master Boot Record). Запис завантаження читається в оперативну пам’ять головним завантажувальним записом, після чого першому передається керування для подальшого завантаження певної (вибраної) операційної системи.

 

 

Таким чином, завантаження ОС з жорсткого диску – двохступеневий процес. Спочатку модулі ініціалізації BIOS читають головний завантажувальний запис в пам’ять за адресою 7С00:0000 і йому передається керування. Цей запис проглядає таблицю розділів і знаходить активний розділ. Якщо активних розділів декілька, на консоль виводиться повідомлення про необхідність вибору активного розділу для продовження завантаження.

Після того, як активний розділ знайдено, головний завантажувальний запис читає самий перший сектор розділу в ОП. Цей сектор вміщує запис завантаження, якому і передається управління.

Запис завантаження активного розділу виконує завантаження тої ОС, що знаходиться в активному розділі. Такий двохступеневий спосіб завантаження ОС необхідний тому, що спосіб завантаження залежить від самої ОС, тому кожна ОС має свій власний завантажувач. Фіксованим є тільки розташування запису завантаження – самий перший сектор активного розділу.

 

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

Зміщення Розмір Вміст
(+0)   Ознаки активного розділу: 0 – розділ не активний, 80h – розділ активний.
(+1)   Номер головки для початкового сектору розділу.
(+2)   Номер сектору та циліндру для початкового сектору розділу у форматі функції читання сектору INT13h.
(+4)   Код системи: 0 – невідома система, 1,4 – DOS, 5 – розширений розділ DOS.
(+5)   Номер головки для останнього сектору-розділу.
(+6)   Номер сектору та циліндра для останнього сектору розділу в форматі функції читання сектору INT13h.
(+8)   Відносний номер сектору початку розділу.
+12   Розмір розділу в секторах.

 

Розглянемо докладніше деякі поля елементу таблиці розділу диску.

Байт із зміщенням 0 – це прапорець активного розділу і може приймати одне із двох значень: 0h або 80h відповідно для неактивного і активного розділів диску.

Двобайтове слово, що розташоване із зміщенням 8 містить відносний номер першого сектору розділу. Він вираховується наступним чином. Значення 0 відповідає доріжці 0, головці 0, сектору 1. Першим збільшується відносний номер сектору на доріжці, потім номер головки і, нарешті, номер доріжки. Для обчислення відносного номера сектору можна використати таку формулу

 

RelSect = (Cyl × Sect × Head) + (Head × Sect) + (Sect - 1)

 

де Cyl – номер доріжки, Sect – номер сектора на доріжці, Head – номер головки.

 

Звичайно розділи починаються з парних номерів доріжок, за виключенням самого першого розділу. Цей розділ може починатись з сектору 2 нульової доріжки (головка 0), тому що самий перший сектор диска зайнятий головним завантажувальним записом.

Байт із зміщенням 4 – це код системи, що використовує розділ диска. Для DOS зарезервовані 0, 1, 4, 5.

0 – невикористаний розділ диску;

1 або 4 – розділ використовується DOS як первинний (Primary Partition). Цей первинний розділ використовується DOS як логічний диск. Він зазвичай активний і з нього виконується завантаження ОС. В залежності від того, який код використовується (1 або 4) міняється одна з характеристик логічного диска – розмір елемента таблиці розміщення файлів (FAT) – File Allocation Table. 1 – 12-бітний FAT. 4 – 16-бітний FAT.

5 – позначає розширений розділ DOS (Extended DOS Partition).

Неважко зауважити, що навіть використовуючи всі елементи таблиці розділів для створення логічних дисків неможливо створити більше чотири логічних диски.

Використання розширеного розділу DOS дозволяє створювати довільну кількість логічних дисків. Всі ці диски будуть розташовані в межах одного розширеного розділу.

Якщо код системи 5 в елементі таблиці розділів, то на початку розділу, вказаному в цьому елементі, розташовується сектор, що вміщує таблицю логічних дисків. Якщо код елемента 5, то він знову вказує на наступну таблицю логічних дисків. Таким чином, таблиці логічних дисків зв’язані у список, на початок цього списку вказує елемент таблиці розділів диску з кодом системи, рівним 5.

Для таблиці логічних дисків маємо відмінність в використанні полів (границь) меж логічних дисків: якщо код системи рівний 1 або 4, ці межі обчислюються відносно початку розширеного розділу; для елемента з кодом 5 використовується абсолютна адресація (відносно фізичного початку диска).

На малюнку приклад:

На диску два розділи – первинний та розширений. Первинний використовується для завантаження MS-DOS (диск С:). Розширений вміщує логічні диски D:,E:,F:.

Запис завантаження (BOOT)

Перший сектор логічного диску (а також перший сектор на системній дискеті) займає запис завантаження (Boot Record Program). Цей запис читається з активного розділу диску програмою головного запису завантаження (Master Boot Record) та запускається на виконання. Задача запису завантаження – виконати завантаження ОС. Кожний тип ОС має свій запис завантаження. Навіть для різних версій одної ОС програма завантаження може виконувати різні дії.

Крім програми початкового завантаження ОС в запису завантаження знаходяться параметри, що описують характеристики даного логічного диску. Всі ці параметри розташовуються на самому початку сектору, в області, що називається „форматованою областю”.

 

Варіант формату завантажувального запису ОС DOS

Зміщення Розмір Вміст
(+0)   Команда JMPxxxx – перехід типу NEAR на програму початкового завантаження.
(+3)   Назва фірми та версії (IBM 4.0)
(+11)   Extended BPB – розширений блок параметрів BIOS.
(+36)   Фізичний номер дисководу: 0 – дискета; 80h – жорсткий диск.
(+37)   Зарезервовано.
(+38)   Символ ‘)’ – ознака розширеного запису завантаження DOS 4.0
(+39)   Серійний номер диску (Створюється підчас форматування).
(+43)   Мітка диску.
(+54)   Зарезервовано.

 

 

Запис завантаження (BOOT)

Перший сектор логічного диску (а також перший сектор на системній дискеті) займає запис завантаження (Boot Record Program). Цей запис читається з активного розділу диску програмою головного запису завантаження (Master Boot Record) та запускається на виконання. Задача запису завантаження – виконати завантаження ОС. Кожний тип ОС має свій запис завантаження. Навіть для різних версій одної ОС програма завантаження може виконувати різні дії.

Крім програми початкового завантаження ОС в запису завантаження знаходяться параметри, що описують характеристики даного логічного диску. Всі ці параметри розташовуються на самому початку сектору, в області, що називається „форматованою областю”.

 

Варіант формату завантажувального запису ОС DOS

Зміщення Розмір Вміст
(+0)   Команда JMPxxxx – перехід типу NEAR на програму початкового завантаження.
(+3)   Назва фірми та версії (IBM 4.0)
(+11)   Extended BPB – розширений блок параметрів BIOS.
(+36)   Фізичний номер дисководу: 0 – дискета; 80h – жорсткий диск.
(+37)   Зарезервовано.
(+38)   Символ ‘)’ – ознака розширеного запису завантаження DOS 4.0
(+39)   Серійний номер диску (Створюється підчас форматування).
(+43)   Мітка диску.
(+54)   Зарезервовано.

 

(+0) – команда переходу в середині сегменту JMPxxxx. Вона необхідна для обходу фор матованої зони сектору та передачі керування програмі завантаження.

(+11) – містить деякі характеристики логічного диску, що використовуються драйвером диску. Це звичайний (BPB) та розширений блоки параметрів BIOS.

 

Формат звичайного та розширеного блоків параметрів BIOS

Зміщення Розмір Вміст
Звичайний блок параметрів BIOS
(+0)   Число байтів у одному секторі диску
(+2)   Число секторів в одному кластері диску
(+3)   Число зарезервованих секторів
(+5)   Число таблиць FAT
(+6)   Максимальне число дескрипторів файлів, що може міститися в кореневому каталозі диску.
(+8)   Загальне число на носії даних (у розділі DOS)
(+10)   Байт – описувач носія данх
(+11)   Число секторів, що займає одна копія FAT
Розширений блок параметрів BIOS
(+13)   Число секторів на доріжці
(+15)   Число магнітних головок
(+17)   Число невидимих секторів для розділу, який за розміром менший 32 МБайти
(+19)   Число невидимих секторів для розділу, який за розміром перевищує 32 МБайти (тілики для DOS 4.0)
(+21)   Загальне число секторів диску для розділу, який за розміром перевищує 32 МБайти

 

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

Байт – описувач носія даних – служить для ідентифікації носія та містить значення, що характеризують носій за числом сторін та числом секторів на доріжці, наприклад:

FFh – 2 сторони, 8 секторів на доріжці;

FEh – 1 сторони, 8 секторів на доріжці;

EDh – 2 сторони, 9 секторів на доріжці;

FCh – 1 сторони, 9 секторів на доріжці;

F9h – 2 сторони, 15 секторів на доріжці;

F8h – жорсткий диск.

 

<== предыдущая лекция | следующая лекция ==>
Завантажувані модулі COM та EXE – файли | Використання BOOT-сектору
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 1383; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.033 сек.