Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекцій із Системного програмування та...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
786.31 Кб
Скачать

1. Системні файли ntfs

Файлова структура NTFS розроблена на зміну системам FAT й HPFS з метою підвищення продуктивності, надійності й сумісності. Вона так само підтримує механізми захисту, необхідні для використання на файлі-сервері мережі.

Любий розподілений сектор NTFS належить якому-небудь файлу. Це ставиться навіть до внутрішніх структур даних. Системою використаються наступні файли:

2. Master File Table (mft)

Для кожного файлу на томі NTFS існує спеціальний запис в MFT. Перші 16 записів MFT зарезервовані для спеціального використання. Перший запис описує саму MFT, а друга - її копію MFT2. Початок області даних MFT й MFT2 записано в завантажувальному секторі, розташованому на початку диска. Копія завантажувального сектора зберігається в середині диска. Третій запис визначає Log File (див.п.9.5.3), використовуваний для відновлення файлової структури у випадку збоїв. Починаючи із сімнадцятого запису в MFT утримується інформація про каталоги й файли.

Кожен запис в MFT займає досить велике місце. Невеликі файли (до 1500 байт) містяться усередині цього запису й не вимагають для зберігання додаткового місця на диску.

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

3. Цілісність даних і здатність до самовідновлення.

Існує три види файлових структур

Careful-write file systems - файлові системи, у яких для підтримки цілісності запис на диск відбувається негайно з появою запиту на запис. Приклад FAT в MS DOS.

Lazy-write file systems - файлові системи, у яких для підвищення продуктивності виробляється кешування даних. У випадку краху системи дані в кеш можуть бути загублені, а цілісність файлової структури - порушена. Приклад: FAT в Windows NT і більшість структур в UNIX.

Recoverable file systems - файлові системи, які поряд з кешування, що підвищує продуктивність, застосовують спеціальні засоби підтримки цілісності даних і здатні до самовідновлення після краху системи. До таких систем ставиться NTFS.

Кожна операція, що змінює вміст тому NTFS розглядається як транзакція й може бути розбита на послідовність елементарних дій. Коли виробляється операція зміни вмісту будь-якого файлу, у файл протоколу (Log й1е)заноситься наступна інформація;

Яким образом можна повторити транзакцію (redo)

Яким образом можна скасувати транзакцію (undo)

Крім цього, кожні кілька секунд Windows NT перевіряє дисковий кеш на предмет виконання операцій запису й заносить відповідні мітки в Log file.

При кожнім завантаженні операційної системи відбувається перевірка коректності завершення її роботи. У випадку, якщо робота системи завершилася крахом, виробляються дії по відновленню файлової структури. При цьому використається інформація, записана в Log file.

4. Організація й керування дисками

При організації й керуванні дисками в Windows NT можна використати наступні можливості:

Можливість використання декількох фізичних дисків. При цьому допускається як розбивка кожного фізичного диска на розділи (volume sets), так і розміщення одного роздягнула вроздріб на декількох фізичних дисках (stripe sets).

Можливість використання спеціальних механізмів захисту від збоїв (fault-tolerance options)

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

Кожен фізичний диск може бути розбитий максимум на чотири розділи. Розділи можуть бути основними (primary) і розширеними (extended). Основний розділ може містити код завантаження операційної системи. Розширений розділ може бути додатково розбитий на підрозділи. Кожному розділу й підрозділу операційна система ставить у відповідність логічний диск і призначає своє ім'я (З:, D:, Е: і т.д.)

Крім розбивки фізичного диска на розділи, система дозволяє один логічний диск вроздріб на декількох фізичні. Розділи різних фізичних дисків збираються в один логічний диск. Це збільшує продуктивність дискової підсистеми.

Наступні прийоми використаються для захисту від збоїв:

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

Подвоєння дисків (disk duplexing) повністю аналогічно дзеркальному відображенню, за винятком того, що використаються не тільки різні фізичні диски, але й різні контролери. Для Windows NT дзеркальне відображення й подвоєння дисків нерозрізнені.

Розміщення одного роздягнула на декількох дисках з контролем парності (Disk striping with parity). Цей метод побудований на основі простого розміщення одного роздягнула на декількох дисках і відрізняється тим, що один розділ на кожному фізичному диску виділяється для зберігання контрольних сум.

Лекція 18

Тема: Загальна модель безпеки в Microsoft Windows NT

Механізми безпеки (security) діють автоматично для всіх додатків, що працюють під керуванням Windows NT. У більшості випадків цього досить. На додаток до цього функції безпеки Win32 API дозволяють додаткам вибірково надавати або забороняти доступ до окремих об'єктів.

Windows NT розроблена таким чином, щоб задовольняти рівню безпеки З2 міністерства оборони США (див.п.2.2). Основні вимоги рівня З2 наступні:

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

Пам'ять повинна бути захищена таким чином, щоб неможливо було прочитати інформацію навіть після звільнення пам'яті процесом.

Користувачі повинні реєструвати себе в системі й мати унікальні ідентифікатори. Всі дії користувачів, контрольовані системою, повинні бути персоніфіковані.

Системний адміністратор і тільки він повинен мати можливість контролювати виконання дій, що ставляться до безпеки.

Система повинна бути захищена від втручання, наприклад, від модифікації системного коду в пам'яті або системних файлах на диску.

Всі об'єкти в Windows NT можуть бути захищені. Атрибути захисту кожного об'єкта описані в його дескрипторі захисту (security descriptor). Дескриптор захисту містить інформацію про власника об'єкта й список керування доступом (ACL - access control list). Список керування доступом складається з елементів (АСІ - access control entry), кожний з яких відповідає користувачеві й групі користувачів, яким дозволений або заборонений доступ до об'єкта.

При реєстрації користувача його пароль звіряється з інформацією, що зберігається в системній базі даних. У випадку успіху на підставі цієї інформації йому призначається маркер доступу (access token). Цей маркер надалі буде привласнюватися кожному процесу, що запустить користувач. Маркер містить інформацію про користувача, групу, привілеї й правах доступу. При спробі процесу звернутися до об'єкта виробляється пошук в ACL цього об'єкта АСІ, що відповідає процесу, що звернувся. На основі порівняння маркера доступу й АСІ приймається рішення про дозвіл або заборону доступу процесу до об'єкта.

Література

  1. В.Н. Пильщиков. Программирование на языке ассемблера IBM PC.-М.:Диалог-МИФИ, 1994.

  2. П. Абель. Язык ассемблера для IBM PC и программирования.-М.:Высшая школа,1992.

  3. Лебедев В.Н. Введение в системы программирования. – М.: Статистика, 1975.

  4. Костин А.Е., Шапьгии В.Ф. Организация и обработка данных в вычислительных системах: Учеб. Пособ. Для вузов. – М.: Высш.шк., 1987.

  5. Кнут Д. Искусство программирования. Т.2. Получисленные алгоритмы: Учеб. Пособ. 3-е изд../Пер. с англ. – М.: Издательский дом «Вильяме», 2000.

  6. Сваи Т. Освоение Turbo Assembler. – Киев: Диалектика, 1996.

  7. Гудман С., Хидетииеми С. Введение в разработку и анализ алгоритмов. – М.: Мир, 1981.

  8. Вирт Н. Алгоритмы и структуры данных/ Пер. с англ. – М.: Мир, 1989.