
- •Поняття операційної системи
- •Операційна система як розширена машина
- •Операційна система як менеджер ресурсів
- •Історія розвитку операційних систем
- •Перше покоління (1945-1955): електронні лампи і комутаційні панелі
- •Друге покоління (1955-1965): транзистори і системи пакетної обробки
- •Третє покоління (1965-1980): інтегральні схеми і багатозадачність
- •Четверте покоління (з 1980 року по наші дні): персональні комп'ютери
- •Історія minix 3
- •Основні концепції
- •Процеси
- •Оболонка
- •Системні виклики
- •Системні виклики для управління процесами
- •Системні виклики для управління сигналами
- •Системні виклики для управління файлами
- •Системні виклики для управління каталогами
- •Системні виклики для захисту
- •Системні виклики для управління часом
- •Структура операційної системи
- •1.5.2. Багаторівневі системи
- •1.5.3. Віртуальні машини
- •1.5.4. Екзоядра
- •1.5.5. Модель клієнт-сервер
- •2.1.1. Модель процесів
- •2.1.2. Створення процесів
- •2.1.3. Завершення процесів
- •2.1.4. Ієрархії процесів
- •2.1.5. Стани процесів
- •2.1.6. Реалізація процесів
- •2.1.7. Програмні потоки
- •2.2. Взаємодія між процесами
- •5.1. Файли
- •5.1.1. Іменування файлів
- •5.1.2. Структура файлу
- •5.1.3. Типи файлів
- •5.1.4. Доступ до файлів
- •5.1.5. Атрибути файлів
- •5.1.6. Операції з файлами
- •5.2. Каталоги
- •5.2.1. Прості каталоги
- •5.2.2. Ієрархічні системи каталогів
- •5.2.3. Шляхи
- •5.2.4. Операції з каталогами
- •5.3. Реалізація файлової системи
- •5.3.1. Структура файлової системи
- •5.3.2. Реалізація файлів
- •5.3.4. Організація дискового простору
5.1. Файли
У наступних декількох розділах файли розглядаються з точки зору користувача, тобто обговорюються їх використання і властивості.
5.1.1. Іменування файлів
Файли є об'єктами абстрактного механізму. Вони надають засіб збереження інформація на диску і її подальшого зчитування. При цьому від користувача повинні ховатися такі подробиці, як спосіб і місце зберігання інформації, а також деталі роботи дисків.
Ймовірно, найбільш важливою характеристикою будь-якого абстрактного механізму
є те, як іменуються керовані об'єкти, тому ми почнемо вивчення файлової системи з назв файлів. При створенні файлу процес дає файлу ім'я. Коли процес завершує роботу, файл продовжує своє існування, і по його імені до нього можуть отримати доступ інші процеси.
Правила іменування файлів варіюються від системи до системи, але все сучасні операційні системи підтримують використання в якості імен файлів 8-символьних текстових рядків. Тобто ідентифікатори andrea, bruce і cathy є допустимими іменами файлів. Часто в іменах файлів також дозволяється вживання цифр і спеціальних символів, тому допустимі і такі імена, як 2, urgent! HFig.2-14. Багато файлові системи
підтримують імена файлів довжиною до 255 символів. В деяких файлових системах, наприклад UNIX, розрізняються прописні і малі літери, тоді як в інших, таких як MS-DOS, немає. Таким чином, імена maria, Maria і MARIA в системі UNIX вказують на три різних
файлу, і в той же час в MS-DOS всі три імені відносяться до одного файлу. Операційна система Windows знаходиться десь посередині між цими крайностями. В основі файлових систем Windows 95 і Windows 98 лежала файлова система MS-DOS; з цієї причини були успадковані багато властивостей останньої, зокрема, принцип іменування файлів. З кожною версією в файлову систему додавалися удосконалення, проте ми в основному обмежимося вивченням можливостей, загальних у MS-DOS і «класичних» версій Windows. Операційні системи Windows NT, Windows 2000 і Windows XP надавати пріоритет надають підтримку файлової системи MS-DOS, проте мають і власної
файловою системою NTFS (New Technology File System - файлова система нової технології), що має інші властивості (такі як іменування файлів в кодуванні Unicode). У перерахованих версіях Windows система NTFS також змінювалася. У цьому розділі розглядається файлова система старіших версій Windows, таких як Windows 98. Якщо будь-яка описувана риса відсутня в MS-DOS або Windows 95, ми особливо відзначимо це. Говорячи про NTFS, ми маємо на увазі файлову систему Windows XP, а якщо розглянутий
аспект непридатний до файлових систем Windows NT і Windows 2000, це також
обмовляється. Термін «Windows» означає всі операційні системи Windows, починаючи з Windows 95. У багатьох операційних системах ім'я файлу може складатися з двох частин,
розділених крапкою, наприклад prog. с. Частина імені файлу після точки називається розширенням імені файлу і зазвичай характеризує його тип. Так, в MS-DOS ім'я файлу може містити від 1 до 8 символів плюс розширення від 1 до 3 символів. В UNIX величина розширення файлу визначається користувачем. Крім того, файл може мати кілька розширень, наприклад prog. с. bz2, де розширення bz2 означає, що файл prog, з стиснутий за допомогою алгоритму bzip2. Деякі часто зустрічаються розширення імен файлів і їх смислове навантаження представлені в табл. 5.1.
Таблиця 5.1. Деякі типові розширення імен файлів
Розширення Значення
file.bak Резервна копія файлу
file.с Оригінальний текст програми на мові С
file.gif Зображення у форматі GIF
file.hip Файл довідки
file.html Документ в форматі HTML (веб-сторінка)
file.jpg Статичний зображення стандарту JPEG
file.iso Образ компакт-диска, призначений для його . запису
file.mp3 Музика в аудіоформаті MPEG, рівень 3
file.mpg Фільм у форматі MPEG
file.о Об'єктний файл (ще не скомпонований . . вихідний файл компілятора)
file.pdf Документ формату PDF (програми Adobe Acrobat)
file.ps Документ формату PostScript
file.tex Вхідний файл для програми форматування ТЕХ
file.txt Текстовий файл загального призначення
file.zip Стиснутий архів
В окремих системах (наприклад, в UNIX) розширення є просто
угодами, і операційна система не примушує користувача строго цих угод дотримуватися. Файл f ile. txt може бути текстовим, але це швидше нагадування користувачеві, а не керівництво до дії для операційної системи. З іншого боку, не виключено, що компілятор мови С відмовиться компілювати файли з розширеннями, відмінними від с.
Подібні угоди особливо корисні, коли одна і та ж програма повинна управляти різними типами файлів. Наприклад, інтегрованого компіляції компілятору мови С може бути наданий список файлів, які він повинен перетворити в об'єктний код і потім скомпонувати, причому деякі з файлів можуть містити програми на мові С (наприклад, f оо. с), тоді як інші можуть бути асемблерними (наприклад, bar. s) або об'єктними (наприклад, other.о). В цьому випадку саме по розширень компілятор відрізняє одні
файли від інших. Windows, навпаки, приймає розширення в розрахунок і надає їм зміст.
Користувачі та процеси можуть реєструвати розширення в операційній системі і вказувати, яка програма «бере шефство» над тим чи іншим розширенням. Коли користувач здійснює подвійне клацання мишею на файлі, програма, відповідна його розширення, запускається, а ім'я файлу передається їй в як параметр. Наприклад, подвійне клацання на файлі з ім'ям f ile. doc запускає Microsoft Word, відкриваючи зазначений файл для редагування. Деяким користувачам здається дивним, що компанія Microsoft по умовчанням замовчуванням приховує відомі розширення файлів, якщо вже вони грають таку важливу роль. На щастя, більшість параметрів Windows, за замовчуванням
«Неправильних», можна змінити, хоча для цього потрібно бути досвідченим користувачем
і знати, де знайти їх.