2.1   Спеціальні файли. Драйвери зовнішніх пристроїв

Файл - це об’єкт, що має ім’я та може зберігати дані, програму або будь-яку іншу інформацію. Найбільш видимою користувачу частиною будь-якої ОС є файлова система. Існують два визначення терміну "файлова система":

1) файлова система - це сукупність файлів та керуючої інформації на диску для доступу до файлів;

2) файлова система - це сукупність програмних засобів ОС для доступу до файлів на диску.

Надалі, говорячи про файлову систему згідно визначенню 1, будемо використовувати термін "файлова система на диску", а говорячи про файлову систему згідно визначенню 2, ‑ термін "засоби операційної системи для доступу до файлів". Засоби ОС для доступу до файлів призначені для виконання наступних операцій з файлами:

Ä       створення файлів;

Ä       знищення файлів;

Ä       пошук файлів на диску;

Ä       читання-запис інформації з файлу (в файл);

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

Ä       відкриття файлів;

Ä       закриття файлів.

MS-DOS підтримує наступні види файлів:

Ä       регулярні;

Ä       спеціальні символьні;

Ä       директорії.

Регулярний файл ‑ це звичайний файл на диску. Фізично він складається з блоків фіксованої довжини ‑ секторів. Розмір сектора в MS-DOS звичайно дорівнює 512 байтам. При роботі з регулярними файлами MS-DOS звертається до спеціальної програми ‑ драйверу блокового пристрою. За одне звернення до такого драйверу завжди переноситься один або декілька секторів (блоків).

Спеціальний символьний файл ‑ це логічне подання драйвера символьного пристрою.

Директорій ‑ це файл, що зберігає спеціальну інформацію про регулярні файли і директорії.

Драйвери пристроїв ‑ це спеціальні програми, що виконують фізичне управління периферійним пристроєм. MS-DOS розрізняє два класи драйверів ‑ драйвери символьних пристроїв і драйвери блокових пристроїв. Перші за одне звернення до драйверу переносять в MS-DOS один символ, а другі - цілий блок. Розмір блоку кратний розміру сектора диску (як правило, 512 байт).

Всі драйвери поділяються на стандартні та інстальовані. Стандартні драйвери розміщені в файлі IO.SYS (IBMBIO.СОМ) та відповідають стандартному набору пристроїв персонального комп’ютера ‑ клавіатурі, дисплею і фізичним існуючим накопичувачам на диску. Якщо до складу комп’ютера включаються не стандартні периферійні пристрої або користувач комп’ютера хоче замінити стандартні драйвери на інші, необхідно виконати встановлення (інсталяцію) драйвера. Інсталяцію виконує сама MS-DOS, обробляючи в ході початкового завантаження системи спеціальний текстовий файл ‑ CONFIG.SYS. Покажчиком на завантаження інсталюємого драйвера є спеціальна команда файлу конфігурації CONFIG.SYS:

device=ім’я_файлу_драйвера

Можна вважати, що стандартні драйвери ‑ це драйвери що інсталюються за замовчанням.

Символьні пристрої, що мають свої драйвери, трактуються операційною системою як файли з унікальним ім’ям, доступ до яких здійснюється з допомогою спеціальних системних викликів. Ім’я драйвера стає відомим системі в ході початкового завантаження. Конкретному символьному пристрою відповідає лише одне ім’я, тому драйвер символьного пристрою управляє роботою лише одного пристрою. Деякі імена символьних пристроїв зарезервовані MS-DOS. (Табл. 2). Для цих пристроїв у файлі IO.SYS (IВМВIO.СОМ) є стандартні драйвери пристроїв. Якщо інсталюємому драйверу пристрою надається одне з зарезервованих імен, він заміщує стандартний.

Табл. 2 Деякі імена символьних пристроїв зарезервовані MS-DOS

Зарезервоване ім’я

Пристрій

CON

Клавіатура та екран консолі

AUX або COM1

Перший порт адаптеру послідовного зв’язку

COM2

Другий порт адаптеру послідовного зв’язку

COM3

Третій порт адаптеру послідовного зв’язку

COM4

Четвертий порт адаптеру послідовного зв’язку

LPT1 або PRN

Перший паралельний порт (принтер)

LPT2

Другий паралельний порт

LPT3

Третій паралельний порт

NUL

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

Примітки.

1.        Недозволено створювати звичайні файли, імена яких співпадають з іменами, наведеними вище (Табл. 2).

2.        Зарезервовані імена пристроїв можуть використовуватися на місці імені файлу в командах DOS. Наприклад,

copy myfile.txt prn

викликає друк файлу myfile.txt на принтері.

3.        Число фізичних портів і пристроїв, що підтримуються, залежить від апаратури і конфігурації апаратних та програмних засобів персонального комп’ютера.

На відміну від драйверів символьних пристроїв доступ до драйверів блокових пристроїв здійснюється по літері логічного накопичувача. Один драйвер блокового пристрою може відповідати за роботу декількох логічних накопичувачів, що називаються далі пристроями-одиницями (units). Для організації доступу до драйверів блокових пристроїв MS-DOS при обробці файлу CONFIG.SYS створить спеціальну “карту”. При її побудові MS-DOS виконує наступні дії:

1.       визначає по апаратним регістрам ‑ конфігураторам кількість накопичувачів на магнітних дисках (НМД), встановлених в системі. Вони обслуговуються стандартними драйверами блокових пристроїв. Для посилання на ці драйвери MS-DOS використовує перші літери англійського алфавіту:

А – для накопичувача на гнучкому магнітному диску 1 (НГМД 1);

В – для НГМД 2 в системі з двома НГМД і для іншої дискети в комп’ютері з єдиним НГМД при виконанні операцій копіювання на єдиному накопичувачі з перестановкою дисків (спочатку встановлюється дискета-джерело, потім дискета-призначення, після цього знову дискета-джерело і т. д. У відповідності з запрошеннями MS-DOS);

C – для фіксованого диску, якщо комп’ютер оснащений НМД такого типу. При його відсутності літера С стає першою літерою, за яку “зачіплюються” інстальовані драйвери пристроїв (поточною максимальною літерою);

2.       обробляючи файл конфігурації, послідовно інсталює драйвери, визначаючи по заголовку драйвера, чи є він драйвером блокового пристрою. Якщо це блоковий драйвер, він самостійно під час інсталяції повідомляє число n пристроїв-одиниць, за роботу яких драйвер відповідає. До “карти” додається n рядків. Літерами для посилання на цей драйвер будуть n літер, починаючи з поточної максимальної літери. Наприклад, якщо поточною максимальною літерою була літера C, а інстальований драйвер обслуговує два пристрої-одиниці, то для посилання на драйвер використовуються літери C та D, причому C – це посилання на перший пристрій –одиницю, а D-на другий пристрій-одиницю.

Таким чином, закріплення літер накопичувачів за драйверами залежить від числа фізичних накопичувачів на диску комп’ютера, місця рядка “device=файл_драйвера” в файлі конфігурації і від кількості пристроїв-одиниць в інстальованих раніше драйверах блокових пристроїв.