Unix базові принципи і особливості

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Що входить у ядро ​​Що знаходиться в оперативній пам'яті Засоби економії пам'яті. Віртуальна пам'ять Файлова система Unix Внутрішня структура файлової системи Unix Формат індексного описувача файлу

Усі системні дії виконує ядро ​​операційної системи Unix. Ядро - звичайний виконуваний файл, розташований у файлі / unix або / stand / unix або / vmunix або / vmlinuz (залежно від конкретної реалізації). Можете подивитися розмір цього файлу - не маленький. При початковому завантаженні системи ядро ​​цілком завантажується в оперативну пам'ять, і надалі резидентно знаходиться в ній, виконуючи всі необхідні роботи.

Що входить в ядро.

ДРАЙВЕРИ ПРИСТРОЇВ. І тих, які є, і тих, яких немає, але можуть бути, а також і такі, які ніколи вам не знадобляться.

КЕРУЮЧІ підпрограми: частини коду, відповідальні за забезпечення роботи користувача програм - поділ часу і інших ресурсів системи.

СЛУЖБОВІ ТАБЛИЦІ І ДАНІ ЯДРА: таблиці поточних процесів, відкритих файлів, керуючі структури ...

СИСТЕМНІ ВИКЛИКИ. (Те, що MS-DOSе називається "21 переривання" - можна вважати певною аналогією / пародією на системні виклики.) З точки зору програміста це звичайна сі-шна функція, тільки виконує вона системно-залежні дії, наприклад: прочитати дані з файлу, встановити з'єднання з мережею, створити каталог, і т.д. і т.п. Усі системні виклики (а всього їх понад 1500 штук) вкомпіліровани в тіло ядра unix. Користувальницькі програми, викликають функції, які є системними викликами, насправді містять тільки jump'и на відповідні адреси пам'яті в ядрі. У налаштовувану програму системні виклики не влінковиваются.

Що знаходиться в оперативній пам'яті.

Ядро операційної системи.

Буферний КЕШ. Частина оперативної пам'яті резервується під кешування читання і запису на диск. Будь-яка операція читання з диска призводить до того, що прочитані з блоки поміщаються в буферний кеш, а з нього вже передаються що запросив дані програмами. Якщо блок потрапив в кеш, то всі наступні звернення до нього будуть отримувати образ блоку з кешу, причому не залежно, від того - та ж сама програма, звертається до блоку, або яка-небудь інша. Кешується так само і запис на диск, знову ж таки, колективна між всіма виконуваними програмами.

ПРОЦЕСИ. Процесом в Unix "е називається виконується програма

Засоби економії пам'яті. Віртуальна пам'ять.

Реєнтерабельним КОДА. Коли одна і та ж програма (виконуваний файл) запущена в кількох примірниках, то в оперативну пам'ять завантажується тільки одна копія виконуваного ассемблерного коду на всіх. Кожен виконуваний процес використовує один і той же текст програми, просто в кожного процесу є свій власний покажчик на поточний оператор.

Отеки. (У Windows є схоже поняття DLL - динамічно підвантажується бібліотека). Деяка кількість часто виконуваних функцій (наприклад printf, та й багато інших) оформляється у вигляді спеціальним чином підготовленої бібліотеки (SHARED LIBRARY). При компіляції програми, що використовує колективні бібліотеки, ці функції не лінкуются всередину коду програми. Вони "висмикуються" з бібліотеки на стадії виконання програми. Цим ми економимо місце на диску і в оперативній пам'яті: у програмах відсутній код поділюваних функцій, а в оперативній пам'яті ця функція присутня в одному примірнику на всіх.

SWAPING. Кожен Unix-процес функціонує у своєму власному 32-х бітному віртуальному адресному просторі, що не перетинається з іншими. Адресний простір процесу може бути більшим, ніж фізична оперативна пам'ять. Віртуальна пам'ять підтримується за допомогою PAGING'а - дозволу віртуальних адрес у фізичні "на льоту", з підкачкою відсутніх сторінок пам'яті з swap-області на жорсткому диску.

Насправді SWAPING'а як такого в Unix "е немає, замість нього застосовується набагато більш гнучкий PAGING. (Swaping - за визначенням, це ПОВНА вивантаження програми на swap-область з метою звільнення місця в оперативній пам'яті).

Область пам'яті, зайнята програмою розділена на три частини: TEXT (що їх коди програми), DATA (статичні дані програми), STACK (динамічні дані). Коли операційка звільняє місце в пам'яті за рахунок Text'а, то вона не займається скиданням його на диск. Вона відразу позначає його як вільний. Дійсно, коли буде потрібно завантажити TEXT назад в пам'ять, його можна буде взяти з самого виконуваного файлу з програмою. Така економія має один побічний ефект. Файл програми, яка в даний момент виконується, неможливо знищити. Операційна система повідомить в цьому випадку: "text file busy", і відмовиться виконувати видалення.

БІТ Нав'язливі. (Sticky bit). Виконувана програма може мати додатковий атрибут. Так званий "біт нав'язливості". Коли така програма закінчує виконання, операційка (по можливості) намагається не займати пам'ять, в якій містився текст програми. Відповідно, повторний її запуск відбудеться дуже швидко - адже програма все ще завантажена в пам'ять, її не потрібно зачитувати з диска. Потрібно просто передати на неї управління.

Файлова система Unix.

Файлова система в Unix - "дерев'яна", складається з файлів і каталогів. На кожному розділі диска створюється власна незалежна файлова система. Окремі файлові системи "зчіплюються" разом, у єдине загальне дерево директорій. Така операція називається "монтуванням". Виглядає це приблизно так:

mount-F ufs / dev/dsk/m197_c0d0s5 / home1 mount-F ufs / dev/dsk/m197_c0d0s4 / usr df

Отримати доступ до файлів "несмонтірованной" файлової системи неможливо. Порочний пракіка MS-DOSа - скільки розділів, стільки й "дисків" (a: b: c: d: e: ... k: l: m: n:) у Unix не застосовується. У Unix завжди є рівно одне загальне дерево каталогів, і, за великим рахунком, користувачам абсолютно все одно, на якому саме диску або розділі диска розташовані його файли / usr / spool / moshkow або / home1/moshkow/bin/mcopy ...

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

При кожній початковій завантаженні Unix перевіряє - чи коректно було вимкнуто машина в минулий раз, і якщо ні - автоматично запускає утиліту fsck (File System Check) - перевірку і ремонт файлових систем ..

Внутрішня структура файлової системи Unix.

Розділ диска, в якому створена файлова система, розбитий на три частини.

Суперблок. Займає 1 Kb. Містить службову інформацію:

Тип файлової системи,
Розмір
Початок списку вільних блоків.
. . . щось ще

ОБЛАСТЬ INOD-ів. Займає приблизно 8% загального розміру розділу. inode - Index-node - описувач файлу. Він містить всю інформацію про фото, за винятком імені файлу, і власне даних файлу. У inod'е зберігається:

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

ОБЛАСТЬ ДАНИХ. У цій області розташовані блоки з даними фай лов. Незайняті блоки провязав в СПИСОК ВІЛЬНИХ БЛОКІВ

Файли бувають двох основних типів. ФАЙЛ, КАТАЛОГ.

ФАЙЛ - він і є файл.

КАТАЛОГ - файл фіксованого формату: складається з рядків з іменами файлів, що входять в каталог

імя_файла1 Номер_Інода1 імя_файла2 Номер_Інода2. . .

Щоб отримати доступ до файлу по імені, операційна система

знаходить це ім'я в каталозі, що містить файл, бере Номер_Інода файлу, за номером знаходить inod в області inod'ов, з inod'а бере адреси блоків, в яких розташовані дані файлу, за адресами блоків зчитує блоки з області даних.

Все.

Формат індексного описувача файлу.

Область Інода розбита на 64-х байтниє структури - inod'и. У inod'е зберігається:

Тип файлу (файл / каталог / спеціальний файл / fifo / socket)
Атрибути (права доступу)
Власник файлу
Група-власник файлу
Часи створення, модифікації, останнього доступу до файлу
Довжина файлу
Адреса 1-го блоку файлу
Адреса 2-го блоку файлу
...
Адреса 10-го блоку файлу
Адреса блоку непрямої адресації (блоку з 256 адресами блоків)
Адреса блоку 2-й непрямої адресації (блоку з 256 адресами блоків з адресами)
Адреса блоку третій непрямої адресації (блоку з адресами блоків з адресами блоків з адресами)

Точний формат структури файлової системи, див man fs


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Доповідь
17.5кб. | скачати


Схожі роботи:
Базові принципи позиціонування фірми
Менеджмент базові принципи кадрової політики
Основні роботи операційної системи UNIX Підтримка мережі UNIX
Базові компоненти характеру
Базові схеми режимів самозбудження
Базові функції поштових клієнтів
Базові концепції фінансового менеджменту
Базові стандарти технологій Web
Двигуни внутрішнього згорання і базові тягачі
© Усі права захищені
написати до нас