Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Руководство Системного адміністратора Linux

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Більшість систем сконфигурировано в такий спосіб, что команда fsck запускається автоматично за мінімального завантаження системы, поэтому можливі неполадки буде виявлено (і, возможно, исправлены) до того, як система використовуватиметься. Робота с поврежденной файловою системою можуть призвести до втрат даних и другим порушень її функціонування. Проте, якщо файловая система досить висока… Читати ще >

Руководство Системного адміністратора Linux (реферат, курсова, диплом, контрольна)

ОС Linux. Керівництво системного администратора.

====================================================================.

Ларс Виржениус (Lars Wirzenius).

— 2 ;

Содержание Глава 1 Запровадження 4.

1.1 Проект Документування Системи Linux 6.

Глава 2 Огляд Системи Linux 8.

2.1 Різні складові ОС 8.

2.2 Важливі складові ядра 9.

2.3 Основні функції UNIX системи 10.

2.3.1 init 10.

2.3.2 Підключення до системи з терміналів 11.

2.3.3 Syslog 11.

2.3.4 Періодичне виконання команд: cron і at 11.

2.3.5 Графічний інтерфейс користувача 12.

2.3.6 Фундаментальна обізнаність із мережею 12.

2.3.7 Підключення до системи через мережу 13.

2.3.8 Мережні файлові системи 13.

2.3.9 Пошта 14.

2.3.10 Печатка 14.

2.4 Структура файловою системи 15.

Глава 3 Запуск Системи і Перезавантаження 16.

3.1 Огляд 16.

3.2 Процес запуску при близькому розгляді 17.

3.3 Завершення праці та вимикання системи 20.

3.4 Перезавантаження системи 23.

3.5 Однокористувальницький режим роботи 23.

3.6 Дискети для экстенной завантаження 23.

Глава 4 Використання Дисків і Інших Пристроїв 25.

4.1 Типи пристроїв 26.

4.2 Жорсткі диски 27.

4.3 Гнучкі диски 30.

4.4 Форматування 31.

4.5 Дискові розділи 34.

4.5.1 MBR, завантажувальні сектори й таблиця розділів 35.

4.5.2 Розширені і логічні розділи 35.

4.5.3 Типи розділів 37.

4.5.4 Поділ жорсткого диска 38.

4.5.5 Файли пристроїв і розділи 39.

4.6 Файлові системи 39.

4.6.1 Що таке файлова система? 39.

4.6.2 Типи файлових систем 41.

— 3 ;

4.6.3 Яку файлову систему встановлювати? 44.

4.6.4 Установка файловою системи 44.

4.6.5 Монтування і демонтування 46.

4.6.6 Підтримка працездатності файлових систем 50.

4.7 Диски без файлових систем 52.

4.8 Розподіл дискового простору 53.

4.8.1 Схеми поділу дисків 53.

4.8.2 Вимоги до дисковому простору 54.

4.8.3 Приклади розподілу жорсткого диска 55.

4.8.4 Використання додаткового дискового простору 55.

4.8.5 Методи збереження дискового простору 55.

Глава 5 Огляд Структури Каталогів 57.

5.1 Запровадження 57.

5.2 Файлова система root 59.

5.2.1 Каталог /etc 60.

5.2.2 Каталог /dev 62.

5.3 Файлова система /usr 63.

5.4 Файлова система /var 64.

5.5 Файлова система /proc 65.

Глава 6 Упpавление Спогадом 68.

6.1 Що таке виpтуальная пам’ять? 68.

6.2 Створення swap області 69.

6.3 Використання swap пpостpанства 70.

6.4 Поділ swap областей з дpугими опеpационными 71.

6.5 Розміщення swap пpостpанства 72.

6.6 Дисковий буфеp 73.

Глава 7 Підключення і Вихід із Системи 76.

7.1 Підключення до системи чеpез теpминалы 76.

7.2 Підключення до системи чеpез мережу 77.

7.3 Що виконує пpогpамма login 78.

7.4 X і xdm 79.

7.5 Контpоль доступу 79.

7.6 Запуск оболонки 80.

.

— 4 ;

Глава 1 Введение.

У цій книзі розглядаються аспекти системного администрирования ОС Linux. У перший очередь данное керівництво призначено тим, хто практично ничего не знає про системному адмініструванні, але ознайомлений із основами работы і системи Linux, розглянутих у книзі «Руководство Пользователя Системи Linux ». У цьому керівництві не уделяется внимания проблемам, що з установкою системи (исчерпывающую информацию можна з книжки «Установка і Запуск Системы.

Linux "). У багатьох посібниках із серії LDP (Linux Documentation.

Project) розглядаються одні й ті запитання із різних точек зpения. Нижче міститься докладніша інформацію про руководствах по системі Linux.

Що й казати називається системним адмініструванням? Усе це то, что потрібно підтримки працездатності комп’ютерної системы.

(например, створення резервних копій деяких файлів, установка новых програм, створення умов та видалення користувачів, проверка целостности файловій системи й т.п.). Якщо ж порівнювати комп’ютер с домом, то системне адміністрування може бути содержанием этого вдома, у тому числі у собі збирання, усунення различных неисправностей тощо. Але системний адміністрування не называют содержанием, бо тоді було б занадто просто.

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

Однако, насамперед — це книга, та був вже справочник.

Звісно, у книзі немає всієї необходимой информации по системному адмініструванню, хоча багато полезного можно знайти й на другий документації у системі Linux. У конце.

— 5 ;

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

Также багато корисної й важливих речей можна почути из встроенных описів до програм (з допомогою команди «man »).

Тоді як книга розрахована на использование операционной системи Linux, може бути расмотрена і по отношению решти UNIX-подобным операційним системам. Так как разные версії системи UNIX принципово різняться (особливо у вопросах системного адміністрування), досить складно охопити весь материал, що стосується кожної модифікації. Навіть розгляд всех особенностей ОС Linux — складне завдання, оскільки він сейчас находится на стадії розвитку. На цей час не существует официальной версії Linux, тому в різні люди вона установлена по різного. У вашій книзі вказані різницю між такими системами и рассмотрены деякі альтернативи, де може бути. Також в книге міститься багато інформації, яка кожному может потребоваться. Такі моменти спеціально є і можуть быть пропущены, якщо використовується вже сконфигурированная система.

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

Однако, як в будь-якій добровільної роботі, існує предел предпринимаемым зусиллям, і навіть до знань та досвіду автора. Это означает, що це керівництво необов’язково також хорошо написано, коли б був написаний на комерційної основе.

Слід зазначити, що у цій книзі в повному обсязі охвачены многие проблеми, розглянутих за іншими свободно распространяемых інструкціях і документациях. Особливо это относится до з описів до різноманітних програмах, наприклад, к особенностям використання mkfs (8). У цьому керівництві описано только призначення програмних засобів обсягом, необхідному для использования у книзі. Для отримання докладнішою информации имеются посилання решти посібникам і документациям, которые обычно є частиною повного набору документації по системе.

Linux.

— 6 ;

Автор є прагнення розвивати й покращувати цю разработку.

Просьба спрямовувати все зауваження (помилки, нові театральні ідеї, інформація о различиях між різними версіями системи UNIX тощо.) або по адресу електронної пошти lars. [email protected], або обычной почтой по адресу:

Lars Wirzenius / Linux docs.

Hernesaarentie 15 A 2.

150 Helsinki.

Finland.

Автор хоче поблагадорить наступних людей, оказавших поддержку під час створення цієї книжки: Matt Welsh, Andy Oram, Olaf.

Kirch, Adam Richter і других.

H.Peter Anvin, Remy Card, Theodore Ts «o і Stephen Tweedie.

позволили використати частину їхніх навчальних робіт у книзі. Stephen Tweedie.

также дозволив використати його порівняння файлових систем xia и.

ext2.

На додачу до вище сказаного, автор дякує Mark.

Komarinski за публікацію в 1993 року і його робіт та інших статей, имеющих ставлення до системного адмініструванню, у журналі Linux.

Journal.

Автор висловлює вдячність Erik Troan з Red Hat за создание версії керівництва у форматі plain text, а также следующим людям: Paul Caprioli, Ales Cepek, Marie-France.

Declerfayt, Olaf Flebbe, Helmut Geyer, Larry Greenfield, Stephen.

Harris, Jyrki Havia, Jim Haynes, York Lam, Timothy Andrew Lister,.

Jim Lynch, Dan Poirier, Daniel Quinlam, Philippe Steindl.

1.1 Проект Документування Системи Linux.

Проект документування системи Linux чи LDP (Linux.

Documentation Project), це вільна команда писателей, корректоров і редакторів яким стоїть Мети створення полной.

— 7 ;

документации по операційній системі Linux. Головним координатором проекта є Matt Welsh, який призначили Lars «ом.

Wirzenius і Michael «ом K. Johnson.

Дане керівництво одна із набору распространяемых руководств проекту LDP, що включає у собі «Руководство Пользователя Системи Linux », «Керівництво Системного Администратора Системи Linux », «Керівництво Сетевого Администратора Системи Linux «і «Керівництво Зломщика Ядра.

Linux ". Ці книжки доступні в вихідному форматі LaTeX, .dvi формате и в форматі postscript через FTP:

internet.

internet.

А, щоб зв’язатися з LDP, потрібно послати листа Matt «у.

Welsh за вказаною нижче адресу:

[email protected].

.

— 8 ;

Глава 2 Огляд Системи Linux.

У цьому главі дається огляд ОС Linux. Прежде всего розглядаються основні функції системи. Потім следует описание програм, що реалізують цих функцій. Мета глави — дать понимание системи загалом, тому кожен розділ рассматривается более докладно позже.

2.1 Різні складові операційній системы.

Будь-яка UNIX-подобная операційна система складається з ядра и некоторых системних програм. Також є некоторые прикладные програми до виконання будь-якої завдання. Ядро является серцем ОС. Воно розміщає файли на диске, запускає програми розвитку й переключає процесор і другое оборудование з-поміж них задля забезпечення мультизадачности, распределяет пам’ять та інші ресурси між процессами, обеспечивает обмін пакетами у мережі тощо. Ядро саме по себе выполняет лише маленьку частина спільної роботи, але оно предоставляет кошти, щоб забезпечити виконання основных функций. Вона також запобігає використання прямого доступу к аппаратным засобам надаючи спеціальні кошти для обращения до периферії. Отже ядро дозволяє контролировать использовние апаратних коштів різними процесами и обеспечивать певний захист користувачів друг від друга.

Средства, надані ядром, використовуються через системные вызовы (див. розділ 2 керівництва ще докладну інформацію по этому вопросу).

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

Существует некотоpая відмінність між системними і прикладными программами. Прикладні програми призначені для выполнения какой-либо певної завдання, тоді як системні программы.

— 9 ;

используются підтримки роботи системи. Текстовий процессор является прикладної програмою, а програма telnet — системной, хотя найчастіше межа між ними досить смутная.

Досить часто операційна система містить компілятори и соответствующие їм бібліотеки (GCC і З бібліотеки для Linux), хотя не обов’язково всі мови програмування мали бути зацікавленими частью операционной системи. Документація, інколи ж навіть гри, могут являться її невід'ємною частиною. Зазвичай склад операційній системы определяется вмістом установочного диска чи стрічки, хоча дело обстоит трохи складніше, оскільки різні частини операционной системы розкидані на різним FTP серверам в усьому мире.

2.2 Важливі складові ядра.

Ядро системи Linux складається з кількох основних частей:

блок управління процесами, блок управління пам’яттю, драйверы устройств, драйвери файлових систем, блок управління мережею, а также другие невеликі процедуры.

Найважливіші складові ядра (обеспечивающие жизнеспособность системи) — це блок управління пам’яттю и процессами. Блок управління пам’яттю забезпечує распределение областей пам’яті і swap-областей між процесами, составляющими ядра й у кэш-буфера. Блок управління процесами створює новые процессы і відданість забезпечує многозадачность шляхом перемикання задач.

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

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

— 10 ;

всех є таких операцій як «ініціалізація жорсткого диска » ,.

" читання сектора N ", «запис сектора N » .

Деякі функції, надані ядром, мають одинаковые свойства. Наприклад, різні мережні протоколи об'єднують у один программный інтерфейс — BSD socket бібліотеку. Ось ще один приклад ;

различные файлові системи, підтримувані системою Linux. Ядро содержит віртуальну файлову систему (Virtual File System — VFS).

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

2.3 Основні функції UNIX системы.

У розділі досить поверхово рассматриваются некоторые найважливіші функції UNIX системи. Докладніше они рассмотрены у таких главах.

2.3.1 init.

Єдину й важливу функцую в UNIX системе предоставляет пpоцесс init. Він запускається у будь-якій UNIX системе как найперший процес, і навіть завершує процедуpу загрузки системы. Після запуску init, триває процес загрузки.

(проверяются і встановлюються файлові системи, запускаются различные программы-демоны і т.д.).

Точний список те, що виконується під час запуску init, зависит от версії програми. Зазвичай init предоставляет однопользовательский режим, у якому хто б может подключиться до системи. Звичайний режим — це многопользовательский.

Некоторые версії використовують поняття «рівень запуску ». Например, однопользовательский і многопользовательский режими — це разные уровни запуску. Також є додаткові рівні, например для запуску X-windows.

— 11 ;

При працюючої системі, дві найважливіші задачі программы.

init — це упевниться, що це программы-демоны getty работают.

(т.е. є можливість підключення до системи) і адаптирование.

orphan-процессов (тобто. процесів, чий батьківський процес был уничтожен; у системі UNIX всі повинні належати одному дереву процесів, тому orphan-процессы повинні быть адаптированы).

При завершенні роботи системи та перезапуске, init уничтожает все решта процеси, демонтує файлові системи и останавливает процессор.

2.3.2 Підключення до системи з терминалов.

Підключення до системи з терміналів (через последовательные линии) і з головної консолі (а то й запущені X) обеспечивается программой getty. init запускає окремий процес getty для каждого термінала. getty считавает ім'я користувача і запускает программу login, яка зчитує пароль. Якщо ім'я і пароль соответствуют одному користувачеві, то login запускає оболочку.

При виході з оболонки, тобто за виході із системи, чи при завершении програми login якщо ім'я користувача і пароль не підходять, init запускає новий процес getty. Ядро не контролирует підключення до системи, лише виконує системные программы.

2.3.3 Syslog.

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

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

2.3.4 Періодичне виконання команд: cron і at.

— 12 ;

Як отдельныем користувачам, і системному администратору иногда потрібно періодично запускати певні команды.

Например, системному адміністратору може потребоваться периодически запускати команду очищення каталогів від временных файлов (/tmp і /var/tmp), запобігання переповнення диска.

І тому використовується функція cron. Кожен пользователя имеется файл crontab, де міститься список команд, представленных до виконання і кількість раз, що вони должны быть виконані. Программа-демон crond забезпечує своевременное выполнение зазначених команд.

Функція at ідентична функції cron, лише команда запускается один разів у зазначений час і запуск большє нє повторяется.

2.3.5 Графічний інтерфейс пользователя.

Як у системі UNIX і у Linux, користувальницький интерфейс не вбудовується в ядро системи. Натомість він представляется программами користувальницького рівня. Це застосовується як к текстовым, і до графічним оболочкам.

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

Спочатку використовуваної і системи Linux графической оболочкой була система X Window System (скорочено X). X не реализует користувальницький інтерфейс, лише віконну систему, т. е. кошти, з допомогою яких може бути реалізовано графический интерфейс. Три найпопулярніших версії графічних интерфейсов на основі X — це Athena, Motif і Open Look.

2.3.6 Фундаментальна обізнаність із сетью.

Мережа — цей засіб, що дозволяє з'єднуватися двом чи более компьютерам між собой.

— 13 ;

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

Проте, у книзі поверхово розглянуті питання работы с мережею. Для докладну інформацію див. книжку «Руководство Сетевого Адміністратора Системи Linux » .

2.3.7 Підключення до системи через сеть.

Підключення до системи через мережа працює кілька иначе, чем звичайне підключення. Існують окремі физические последовательные лінії кожному за термінала, якими и происходит підключення. До кожного користувача, подключающегося к системі, існує окреме віртуальне мережне з'єднання и их може бути будь-який кількість. Проте чи представляється возможным запустить окремий процес getty кожному за возможного виртуального сполуки. Існують і інші способы подключения до системи з допомогою. Наприклад, telnet і rlogin.

— основні служби в TCP/IP сетях.

З використанням мережі для підключення до системи, кроме большого кількості процесів getty використовується отдельная программа-демон (під час використання як telnet і login.

используются різні программы-демоны), яка відстежує все попытки з'єднання з комп’ютером. Якщо опpеделяется попытка соединения, то програма створює новий процес — створює сама себя для обробки цього сполуки — та був продовжує отслеживание новых сполук. Утворюваний процес ідентичний програмі getty.

2.3.8 Мережні файлові системы.

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

— 14 ;

файловую систему. Зазвичай використовується система, звана Network.

File System чи NFS, розроблена корпорацією Sun.

Працюючи з мережевий файловою системою будь-які операції над файлами, виробленими на локальному комьютере, передаються через сеть на найвіддаленіші машину. Працюючи мережевий файловою системы программа вважає, що це файли на такого далекого комп’ютері находятся на комп’ютері, де запущена. Отже разделение информации з допомогою такої системи не вимагає внесения каких-либо змін — у программу.

2.3.9 Почта.

Електронна пошта є найважливішим засобом зв’язку между компьютерами. Електронні листи зберігаються у одному файлі в специальном форматі. Для читання і відправлення листів применяются специальные программы.

Кожен користувача є окремий «поштову скриньку «.

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

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

Поштова система складається з безлічі різних программ.

Доставка листів до локальних чи віддаленим поштовим ящикам производится однієї програмою (наприклад, sendmail чи smail), в то время як звичайній відправки чи перегляду листів применяется большое количетсво різних програм (наприклад, Pine чи elm).

Файлы поштових ящиків зазвичай зберігаються у каталозі /var/spool/mail.

2.3.10 Печать.

Одного час принтером може користуватися только один користувач. Тому, щоб принтером могли.

— 15 ;

пользоваться відразу кількох користувачів, используется специальная програма, що забезпечує обслуговування черги к принтеру. Усі завдання для принтера вкладаються у буфеp. Когда принтер закінчує обробку одного завдання, следуещее передается к нього автоматично. Це значно спрощує роботи з принтером.

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

2.4 Структура файлової системы.

Файлова система поділяється сталася на кілька частин: файловая система root, що складається з каталогів /bin, /lib, /etc, /dev и некоторых інших, файлова система /usr, де зберігаються различные программы і такі які підлягають зміни, файлова система /var,.

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

У розділі 5 сруктура файлової системи розглядається более подробно (див. також Linux Filesystem Standard).

.

— 16 ;

Глава 3 Запуск Системи і Перезагрузка.

У цьому главі описується те, що відбувається у системі Linux.

при її запуску і перезавантаженні і як правильно сделать.

3.1 Обзор

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

Начальный завантажник звичайно знаходиться у певному місці на жестком диску чи дискеті. Оскільки Linux це досить складна и большая система, її запуск виробляється у два етапу, хоча первично загружаемый код має бути досить маленьким (кілька сотен байт).

На різних комп’ютерах заселення виробляється по разному. На персональні комп’ютери спочатку считывется первый сектор дискети чи жорсткого диска (у вигляді процедур BIOS),.

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

Після завантаження Linux, инициализируются драйвери пристроїв, а затем запускається init (8), який у часи чергу запускає другие процессы, дозволяють підключатися до системи і обеспечивающие нормальную роботу. Цей етап розглянутий нижче більш подробно.

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

— 17 ;

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

3.2 Процес запуску при близькому рассмотрении.

Linux то, можливо запущена і з дискет, і з жесткого диска. У вашій книзі «Установка і запуск Linux «докладно описаний запуск системы.

При включенні комп’ютера, спочатку BIOS производит тестирование устаткування, та був запуск операційній системы.

Сначала вибирається пристрій, від якого буде производится запуск (зазвичай перший дисковод, тоді як нього вставлена дискета, в противном разі - перший жорсткий диск, коли він встановлено, хотя порядок вибору то, можливо налаштований) і зчитується самий первый сектор, що називається завантажувальним. Його також називають MBR.

(Master Boot Record), тому що в жорсткого диска може быть несколько розділів і в кажодого то, можливо свій загрузочный сектор.

У завантажувальному секторі перебуває невеличка программа.

(относительно невеличка щоб він могла розміститься в одном секторе), яка завантажує і запускає операційну систему. При загрузке з дискети, в завантажувальному секторі перебуває код, который обеспечивает лише зчитування ядра системи у певну заранее область пам’яті. Завантажувальна дискета для Linux зовсім позбавлений никаких файловых систем. Ядро записано на дискеті як последовательность блоков, оскільки це значно спрощує процес завантаження. Однако, вполне можна завантажуватися з дискети, де установлена какая-нибудь файлова система, використовуючи загpузчик LILO.

При завантаженні з жорсткого диска, код, що у MBR,.

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

— 18 ;

загрузочном секторі дискети: він зчитує ядро з выбранного раздела, та був запускає його. Проте існує много тонкостей, оскільки використання окремого розділу диска только для зберігання коду ядра неефективно, тому код, розташований в загрузочном секторі розділу, непросто послідовно считывает информацию з диска, а використовує зчитування по секторам.

Существует кілька радикальних способів розв’язання проблеми, але наиболее простым є використання LILO завантажника (информацию по установці та настроюванні LILO див. в документації по LILO).

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

ALT, SHIFT чи CTRL (після завантаження LILO) видасть запит, где можно вказати ядро чи систему. Проте за конфигурировании можно установить опцію, коли він LILO завжди буде выдвать такой запрос, і навіть вказати час, після чого загружается ядро, встановлений по умолчанию.

Є й інші загрузчики, подібні LILO, проте в него есть кілька корисних функцій, яких у інших загрузчиках, так як він написано спеціально для Linux. Наприклад, имеется возможность передачі ядру параметрів під час завантаження или изменения деяких опцій, вмонтованих у ядро. Серед подобных загрузчиков (bootlin, bootactv та інших.) LILO є наилучшим выбором.

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

Потому, як ядро системи завантажене на згадку про (з жесткого.

— 19 ;

диска чи з дискет) запущено, виконуються приблизительно следующие действия:

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

Коли комп’ютері встановлено відеоплата sVGA,.

поддерживающая нестандартні текстові режими (такі як 100×40),.

выдается запит для вказівки необхідного режиму. При компиляции ядра можна відразу вказати використовуваний режим, що він не запрашивался системою під час завантаження. Режим він може быть установлен з допомогою LILO чи rdev (8).

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

LILO boot:

Loading linux.

Console: colour EGA+ 80×25, 8 virtual consoles.

Serial driver version 3.94 with no serial options enabled.

tty00 at 0×03f8 (irq = 4) is a 16 450.

tty01 at 0×02f8 (irq = 3) is a 16 450.

lp_init: lp1 exists (0), using polling driver.

Memory: 7332k/8192 available (300k kernel code, 384k reserved, 176k data).

Floppy drive (s): fd0 is 1.44M, fd1 is 1.2M.

Loopback device init.

Warning WD8013 board not found at i/o = 280.

Math coprocessor using irq13 error reporting.

Partition check:

hda: hda1 hda2 hda3.

VFS: Mounted root (ext filesystem).

Linux version 0.99.pl9−1 (root@haven) 05/01/93 14:12:20.

Хоча текст повідомлень дуже різниться на разных.

— 20 ;

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

Після цього, ядро намагається смонтиpовать файлову систему.

root. Місце, куди вона змонтована, встановлюється у время компиляции чи з допомогою rdev чи LILO. Тип файлової системы определяется автоматично. Якщо цю систему root не монтиpуется, например через те, що ядро зовсім позбавлений драйвер соответствующей файловій системи, то система зависает.

Файлова система root зазвичай монтиpуется як read-only.

(это встановлюється так само як і вузол монтиpования).

Это уможливлює перевірку файловою системи тоді як она смонтиpована, хоча перевірка файловою системи, встановленої в режиме read-write не рекомедуется.

Потім ядро запускає програму init (8) в фоновому режимі (она расположена в каталозі /sbin/init) що стає главным процессом. init виконує різні функції, необхідні при установке системы.

Зрештою init запускає програму getty (8) для виртуальных консолей і послідовних ліній. Ця программа позволяет підключатися до системи у вигляді віртуальних консолей и терміналів, підключених через послідовні порти. init.

может бути сконфигурирована також і запуску та інших программ.

Після цього процес системи вважається завершеним и система готова работе.

3.3 Завершення праці та вимикання системы.

При вимиканні системи Linux слід виконувати некоторые процедуры. Якщо це ухилитися, то файлові системи та файлы могут повредиться. Це іде за рахунок причини наявності у Linux.

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

— 21 ;

выключить харчування комп’ютера, то дисковом кэше може находится большое кількість інформації та файлова система може быть частично пошкоджена, бо в диск зазвичай скидається только часть информации.

Інший причиною при цьому є мультизадачность системы, где одночасно може виконуватися кілька процесів и выключение харчування то, можливо згубною системі. Особливо это касается комп’ютерів, у яких одночасно працює несколько пользователей.

Існують команди, призначені для правильного выключения системи — це shutdown (8) і halt (8), розташовані в каталоге /sbin. Є дві звичайних способу їх применения.

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

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

или shutdownh now (якщо можна встановити задержку, которая встановлюється заміною параметра now на знак «+ «і числом минут, після чого буде завершено роботу системи) или просто halt.

Коли копьютере, у якому установлено систему, работает одновременно кілька користувачів, то можливо использование команды shutdown наступного формате:

shutdownh +time message,.

де time цей час, після чого робота системи будет завершена, а message — повідомлення, у якому пояснюється причина выключения. Напpимеp,.

root# shutdownh +10 «We will install a new disk. System should.

> be back on-line in three hours. «.

— 22 ;

Виконання цієї команди попередить кожного пользователя, работающего у системі, що вона виключена через 10 минут.

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

Broadcast message from root (ttyp0) Wed Aug 2 01:03:25 1995…

We will install a new disk. System should.

be back on-line in three hours.

The system is going DOWN for system halt in 10 minutes !!

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

Зауваження: файл /etc/inittab містить команди, выполняющиеся при вимиканні системы.

Після запуску процесу роботи системы, демонтируются все файлові системи (крім системи root),.

завершается виконання всіх процесів і программ-демонов, затем демонтируется файлова система root і весь робота завершается.

После цього видається повідомлення, де йдеться, що можно отключить харчування. Тільки після цього харчування комп’ютера может быть отключено.

У окремих випадках неможливо закрити це процесс соответствующим чином. Наприклад, при ушкодженні коду ядра в памяти, порушується його робота чи систему зависає і нет возможности запровадити нову команду можна сподіватися, что ничего не ушкодиться і вимкнути харчування. Якщо ж неполадки не такие серйозні (наприклад вийшов із ладу клавіатура), а ядро и программа update працюють нормально, то найкращим варіантом будет подождать кілька хвилин, поки update (8) не збереже на диске информацию, що зберігається в кэш-буфере і після цього выключить.

— 23 ;

питание.

Деякі виключають копьютер після триразового выполнения команды sync (8), яка скидає на диск вміст буфера, и, после припинення звернення до диска, виключають комп’ютер. Якщо в момент вимикання робота всіх програм було завершено, то эта процедура майже ідентична виконання команди shutdown. Однако, файловые системи не демонтуються, що може спричинити до некоторым проблемам, що з прапором «clean filesystem «системи ext2fs. В любом разі використання цього способу не рекомендуется.

3.4 Перезавантаження системы.

Процес перезавантаження може бути досягнуто шляхом прекращения работы системи, вимикання харчування і включення знову. Более простой спосіб — це вказати команді shutdown перезагрузить систему встановивши опціюr. Наприклад, при цьому можна использовать команду shutdownr now. Можна використовувати команду reboot.

3.5 Однокористувальницький режим работы.

Команда shutdown може також використовуватися для перевода системы в однокористувальницький режим, у якому до системи ніхто не может підключиться крім користувача root, який використовує для работы головну консоль. Це іноді застосовується для административных цілей, до виконання яких немає може быть использована нормально працююча система.

3.6 Дискети для экстенной загрузки.

Не завжди є можливість завантаження системи з жесткого диска. Наприклад, при неправильних установках в LILO загрузчике систему не вдасться завантажити. У разі повинен быть другой спосіб завантаження. Для персональних комп’ютерів зазвичай она выполняется з дискет.

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

— 24 ;

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

Тому може виникнути потреба у створенні специально настроенного диска. У документації «Bootdisk HOWTO «содержится необходимая інформація до створення подібного диска.

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

.

— 25 ;

Глава 4 Використання Дисків і Інших Устройств.

Зберігання Информации.

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

У цьому главі розглядають усіх опікується цими питаннями. Зазвичай, если система вже встановлено, то будь-яких проблеми з дисками в дальнейшем не має, крім pаботы з дискетами. При установке нового диска або його їх настроюванні слід звернутися до цієї главе.

При адмініструванні дисків виникатимуть следующие проблемы:

Форматування диска (нині форматирование является необов’язковою процедурою багатьом типів дисков).

Поділ диска, якщо диск використовуватиметься разных целей. Один із причин поділу — це зберігання разных операционных систем однією диску. Інша причина — хранение пользовательских і системних файлів в pазных pазделах, что упрощает резервне копіювання та своєчасне відновлення, і навіть защиту системных файлів від повреждений.

Створення файловій системи на відповідному диску или разделе. У системі Linux диск щось отже, перебувають у ньому не установлена файлова система. Тільки після цього можлива робота с файлами.

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

(файловые системи, монтируемые вручну, би мало бути вpучную демонтированы).

— 26 ;

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

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

4.1 Типи устройств.

У системі UNIX, отже й Linux, існує два типа устройств: блочні устрою з прямим доступом (такі як диски) и символьні устрою (такі як стрічкові нагромаджувачі и последовательные порти), окремі можуть быть последовательными, і деякі - з прямим доступом. Каждое поддерживаемое пристрій представляється в файлової системі файлом устройства. За виконання операцій читання чи запису із подобным файлом, відбувається обмін даними між пристроєм, на которое указывает цей файл. Такий спосіб доступу до пристроям позволяет не використовувати спеціальні програми (і навіть спеціальні методы програмирования, такі як роботу з перериваннями). Наприклад, для распечатки файла на принтері, використовується наступна команда:

ttyp5 root ~ $ cat filename > /dev/lp1.

ttyp5 root ~ $.

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

Однако з файлами пристроїв проблеми виникають дуже редко.

Оскільки устрою відбиваються як файли в файлової системе.

(в каталозі /dev), нескладно знайти з допомогою команди ls (1).

какие існують файли пристроїв. По виконанні команди lsl.

— 27 ;

на екран виводиться список файлів, причому у першої колонке содержится тип файла і право доступу щодо нього. Наприклад, для просмотра файла, відповідного послідовному порту, используется наступна команда:

ttyp5 root ~ $ lsl /dev/cua0.

crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0.

ttyp5 root ~ $.

Перший символ У першій колонці, тобто. «з », показує тип файла, у разі символьне пристрій. Для звичайних файлов используется символ «- «, для каталогів — «d », для блочных устройств — «b «(див. pуководство до команди ls (1) для более подробной информации).

Наявність великої кількості файлів пристроїв зовсім не означает, що це устрою насправді встановлено. Наличие файла /dev/sda ні за чим вона каже і не означає, що в компьютере встановлено жорсткий диск SCSI. Це для облегчения установки програм, тож нового устаткування (нет необходимости шукати потрібні параметри і створювати файли для новых устройств).

4.2 Жорсткі диски.

У розділі розглядаються терміни, пов’язані с использованием жорстких дисков.

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

3600 обертів на хвилину, хоча у ближчих пpиводах используются более високі швидкості. Голівки переміщаються вздовж радиуса поверхности пластин, що дозволяє їм отримати доступом до будь-який точке поверхности.

— 28 ;

Центральний процесор (CPU) і жорсткий диск обмениваются информацией через дисковий контролер. Це спрощує схему обращения і з диском, оскільки контролери до різних типов дисков може бути побудовано з допомогою одного інтерфейсу для связи з комп’ютером. Тому, наприклад, для зчитування сектора можно скористатися лише одного командою замість сложных последовательностей електричних сигналів у тому, чтобы переместить голівки до потрібної позиції, синхронізувати вращение диска і зчитування чи запис даних, і ін. (на деле, интерфейс між комп’ютером і контролером також сложен, но не так на стільки, наскільки він було б без использования контроллера). Котроллер також виконує і пояснюються деякі другие функции, такі як буфеpизация інформації, або автоматическая замена поганих секторов.

Є ще деякі поняття, знання яких необходимо для розуміння роботи жорсткого диска. Зазвичай поверхні діляться на концентрические кільця, звані доріжками чи трэками, которые, в своє чергу, діляться не сектори. Таке поділ потрібно для указания потрібних позицій на диску й у розподілу дискового пространства на файли. Для перебування потрібної інформації на диске достаточно приблизно наступних даних: «поверхню 3, доріжка 5,.

сектор 7 ". Зазвичай кількість секторів на доріжці однаково для всех доріжок на диску, хоч у пристроях на внешних трэках розміщається більше секторів (все сектора имеют один і хоча б фізичний розмір, на більш довгих дорожках помещается більше секторів). Стандартний розмір сектора дорівнює 512.

байт. Диск неспроможна оперувати даними, обсяг яких менее одного сектора.

Кожна поверхню розділена на доріжки (й інформаційного секторів) таким образом, що з переміщенні голівки однієї поверхні к какой-либо доріжці, голівки інших поверхонь будут установлены в цій самій доріжці. Сукупність усіх таких дорожек называется циліндром. Для переміщення головок від однієї дорожки.

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

— 29 ;

необходимость в переміщенні головок відпадає. Це повышает производительность роботи диска. Не завжди представляется возможным розмістити файл таким чином. Файли, которые хранятся на різних роботах на диску, називаються фрагментированными.

Кількість поверхонь (чи головок, що у принципі одне и то ж), циліндрів і секторів сильно різниться у разных устройств. Сукупність таких параметрів називається структурой диска, що зберігається у спеціальній пам’яті, для харчування которой используются акумулятори. Ця пам’ять називається CMOS RAM, откуда операционная система може зчитувати інформацію під час ее загрузки чи під час установки драйвера.

На жаль, BIOS побудований отже не представляется возможным вказати доріжку, номер якої перевищує 1024, для записи в CMOS RAM, що є серйозним обмеженням для дисков больших обсягів. Аби вирішити цієї проблеми контролер жесткого диска передає явно неправильне інформацію про структуру диска и перетворює дані, представлені комп’ютером, в нечто, соответсвующее реальності. Наприклад, жорсткий диск може состоять из 8 головок, 2048 доріжок з 35 секторами у кожному. Тоді как контроллер може стверджувати, що диск має 16 головок і 1024.

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

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

Перетворення використовується лише IDE дисків. У SCSI.

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

Однако, процесор може знати про реальной структуры диска.

Оскільки системі Linux часто вже не відома інформація о структуре диска, то файлових системах немає размещение.

— 30 ;

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

Кожен жорсткий диск представлений окремим файлом. Для IDE.

дисков зазвичай є тільки два файла. Вони відомі как.

/dev/hda і /dev/hdb відповідно. Для SCSI дисків используются файлы /dev/sda і /dev/sdb тощо. Такі позначення применяются и й інших типів дисків. Файли пристроїв для жорстких дисков предоставляют доступом до цілому диску, не розглядаючи разделы.

(которые будуть описані нижче) і тому становить труда перепутать розділи диска чи інформацію у яких, а то й быть достаточно обережним. Файли жорстких дисків зазвичай используются для доступу до інформацією MBR (які теж розглянуті ниже).

4.3 Гнучкі диски.

Гнучкий диск складається з м’якої пластини, покритою з одного или обоих сторін матеріалом, подібним тому, яким вкриті пластини в жестком диску. Біля самої дискети немає жодних головок, они установлены в привід. Дискету можна порівняти з одного пластиной, установленной у надмірно жорсткому диску, лише дискета є знімною и привод можна використовувати до роботи з різними дисками, в то время як жорсткий диск є один неподільним устройством.

Так само як жорсткий диск, дискета ділиться на доріжки і сектора.

(а дві відповідні доріжки різними сторони составляют цилиндр), та їх значно менше, ніж жорсткому диске.

Дисковод може працювати з кількома типами дискет.

Например, привід на 3.5 дюйма може працювати з дисками на 720 Кб и.

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

— 31 ;

Напpимеp, файл /dev/fd0H1440 відповідає першому приводу (fd0).

формата 3.5 дюйма з дискетою на 3.5 дюйма високої густини (H).

объемом 1440 Кб (1440), тобто. дозволяє pаботать з обычными дискетами на 3.5 дюйма.

Імена файлів для приводів гнучких дисків досить сложные, поэтому у системі Linux існує спеціальний тип устройства, который автоматично визначає тип використовуваного гнучкого диска.

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

Естественно, диск може бути спочатку отформатирован.

Автоматическими пристроями є /dev/fd0, /dev/fd1 і т.д.

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

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

4.4 Форматирование.

Форматування — це процес записи спеціальних оцінок на магнитную поверхню, що використовуються поділу дорожек и секторів. Перед форматуванням диска його поверхня полягає из смеси різних магнітних сигналів. При форматуванні ці сигналы упорядочиваются й відбувається формування доріжок і секторів. В действительности, набагато складніший і за межі этой книги. Потрібно знати тільки те, що диск неспроможна використовуватися, до тех пір що він нічого очікувати отформатирован.

Працюючи в MS-DOS, форматування також включає в себя процесс створення файловою системи. Там ці два процесса совмещены, особливо в працювати з гнучкими дисками. Але якщо нужно сделать розмежування, то дійсним форматуванням называют форматированием на низький рівень, а створення файловою системи ;

— 32 ;

форматированием високому рівні. Працюючи у системі UNIX (а также у книзі) замість цих двох понять будуть использоваться понятия форматування і, формування файловой системы.

Для IDE та деяких менших SCSI дисків форматування производится при їх виготовленні і звичайно, непотрібен повторення этой процедуры, тому більшість людності рідко над цим замислюються. В действительности, форматування диска можуть призвести до ухудшению его роботи, наприклад, через те, що диск повинен быть отформатирован спеціальним чином заради забезпечення возможности замены поганих секторов.

Форматируемые диски часто поставляються зі специальной программой, оскільки внутрішні інтерфейси в різних приводов различны. Ця програма зазвичай раположена в мікросхемі BIOS.

контроллера чи поставляється окремо як програма для MS-DOS. Ни одни їх неможливо знайти використовуватимуться системи Linux.

Під час форматування може бути виявлено погані блоки или сектора, котрі мають бути використані при дальнейшей работе. Ці функції покладаються на файлову систему. Хоча можно создать невеличкий розділ диска, що включає у собі только плохие блоки. Це ефективно при велику кількість поганих блоков, так як із роботі файловій системи виникатимуть некоторые трудности, пов’язані з розміром невикористовуваної области.

Для форматування дискет користуються програмою fdformat (8).

В ролі параметра вказується файл устрою. Например, следующая команда використовується для форматування звичайній дискеты размером 3.5 дюйма високої густини у першому привід для гибких дисков:

ttyp5 root ~ $ fdformat /dev/fd0H1440.

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.

Formatting … done.

Verifying … done.

ttyp5 root ~ $.

— 33 ;

Якщо форматування використовується автоматическое устройство (наприклад, /dev/fd0), то спочатку потрібно указать параметры цього устрою з допомогою програми setfdprm (8). Для получения такої ж результату, як у минулому прикладі, нужно выполнить такі действия:

ttyp5 root ~ $ setfdprm /dev/fd0 1440/1440.

ttyp5 root ~ $ fdformat /dev/fd0.

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.

Formatting … done.

Verifying … done.

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.

Formatting … done.

Verifying … done.

ttyp5 root ~ $.

Зазвичай простіше вказати точний файл устрою, который соответствует типу форматируемого диска.

Програма fdformat також використовується виявлення плохих блоков. Вона обробляє поганий блок кілька разів. Якщо проблема не дуже серйозна (забруднена робоча поверхность считывающих/записывающих головок, поганий контакт в разъеме контроллера), то fdformat продовжуватиме роботу, але возникновение реальной помилки перерве процес перевірки. Ядро отображает появление кожної помилки на терміналі. Якщо використовується syslog, то сообщение вступає у файл /usr/adm/messages. fdformat не сообщает специфику помилки (зазвичай має значення, оскільки дисководы это досить дешеві пристрої і їх заміна не составляет проблем).

ttyp5 root ~ $ fdformat /dev/fd0H1440.

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.

Formatting … done.

Verifying … read: Unknown error.

ttyp5 root ~ $.

— 34 ;

Команда badblocks (8) використовується на допомогу пошуку поганих блоків на любом диску чи розділі диска (включаючи гнучкі диски). Вона не форматирует диск, тому можна використовувати для проверки даже існуючих файлових систем. Наступного примере рассматривается перевірка 3.5 дюймовой дискети з цими двома плохими блоками.

ttyp5 root ~ $ badblocks /dev/fd0H1440.

ttyp5 root ~ $.

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

Первичный пошук поганих блоків виробляється і під час команды.

mkfs (яка инициализирует файлову систему), в последующем проверка проводиться за допомогою програми badblocks, а модификация списка — з допомогою команди fsck. Ці стануть рассмотрены ниже.

4.5 Дискові разделы.

Весь жорсткий диск то, можливо розбитий сталася на кілька разделов, причем кожен розділ представлений бо коли б це был отдельный диск. Поділ використовується, наприклад, під час роботи с двумя операционныи системами однією диску. У цьому каждая операционная система використовує до роботи окремий розділ і не взаимодействует коїться з іншими. Отже, дві різні системы могут бути однією жорсткому диску. Без использования разделов у разі постала б потреба у приобритении второго диска.

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

— 35 ;

4.5.1 MBR, завантажувальні сектори й таблиця разделов.

Інформації про поділі жорсткого диска перебуває у первом секторе (тобто. у першому секторі першої доріжки першого диска). Этот сектор називається MBR (скорочення від Master Boot Record) этого диска. При завантаженні комп’ютера BIOS завантажує їх у пам’ять и выполняет. MBR утримує невеликий програму, яка считывает таблицу розділів, знаходить активний розділ (тобто. розділ, отмеченный как завантажувальний) і зчитує перший сектор цього розділу, который называется завантажувальним сектором (MBR є також загрузочным сектором, але виконує спеціальні функції і тому имеет отдельное назва). Цей сектор містить іншу небольшую программу, яка, своєю чергою, зчитує початкову часть операционной системи, що у цьому розділі, а затем выполняет ее.

Схема поділу не її вмонтовано устаткування чи навіть BIOS.

Это лише стандарт, якого дотримується велике количество операционных систем. Не все системи підтримує його, але они являются винятками. Деякі системи підтримують разделение, но вони займають один розділ на диску й використовують свою внутреннюю схему поділу не більше використовуваного раздела.

Такие операційні системи нормально працюють із іншими системами.

(включая Linux), які перебувають тому самому диску. Але те операционные системи, які підтримують розділи, не могут быть встановлено разом з іншими системами однією диске.

Із заходів обережності слід записати таблицю разделов.

Если ця таблиця якимось чином ушкодиться, то ми все файлы останутся цілості (зіпсована таблиця розділів може быть исправлена з допомогою програми fdisk).

4.5.2 Розширені і логічні разделы.

Спочатку, у схемі поділу жорсткого диска в PC.

допускалось використання лише чотири розділів. Але невдовзі этого оказалось недостатньо, частково через те, що багатьом для.

— 36 ;

работы потрібно понад чотирьох операційними системами (например,.

Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD, Windows/NT і т.д.),.

но переважно тому, однією системою используется несколько розділів. Наприклад, у системі Linux swap-область чаще всего розміщається в окремому розділі (а чи не переважно разделе.

Linux) підвищення швидкості обміну (див. ниже).

Аби вирішити цієї проблеми розробили схема, использующая розширені розділи. Вона дозволяє розбивати основной раздел на підрозділи. Основний розділ, розбитий таким образом, называется розширеним розділом, а підрозділи называются логическими розділами. Вони функціонують як і, як і основные разделы, різниця полягає лише у схемі їх создания.

Нижче дано пpимеp pазбиения жеского диска на pазделы. Весь диск разбит втричі основні розділи, з яких розбитий на два логических. Частина диска немає взагалі. Весь диск, как целое, й у основний розділ мають завантажувальний сектор.

иммммммммммммммммммммммммммммммммммммммv.

· MBR · .

лмммммммммммммммммммммммммммммммммммммм¦ддддддддддддд.

· Завантажувальний сектор · .

· ———————————————————· Основной.

· · .

· Область даних розділу · раздел.

· · .

лмммммммммммммммммммммммммммммммммммммм¦ддддддддддддд.

· Завантажувальний сектор · Ё.

· дддддддддддддддддддддддддддддддддддддд· Ё.

· Невикористовуваний завантажувальний сектор · ЛогическийЁ.

· ———————————————————· Ё.

· · розділ Ё.

· Область даних розділу · Ё.

· · Ё Расширенный.

· дддддддддддддддддддддддддддддддддддддд·дддддддддддЇ.

· Невикористовуваний завантажувальний сектор · Ё раздел.

· ———————————————————· ЛогическийЁ.

— 37 ;

· · Ё.

· Область даних розділу · розділ Ё.

· · Ё.

лмммммммммммммммммммммммммммммммммммммм¦ддддддддддддд.

· · .

· Неиспользуемое дискове простір · .

· · .

лмммммммммммммммммммммммммммммммммммммм¦ддддддддддддд.

· Завантажувальний сектор · .

· ———————————————————· Основной.

· · .

· Область даних розділу · раздел.

· · .

хмммммммммммммммммммммммммммммммммммммм№ддддддддддддд.

4.5.3 Типи разделов.

Таблиці розділів (одна перебуває у MBR, інші используются для розширених розділів) містять один байт кожному за раздела, который вказує тип розділу. Це дозволяє определить операционную систему, що використовує розділ або заради чого он используется щоб уникнути випадкового розміщення двох систем на одном розділі. Проте, насправді, операційні системы игнорируют байт типу розділу. Наприклад, система Linux взагалі не имеет ставлення до існуванні. Ще гірше, некоторые системы неправильно його інтерпретують (по крайнього заходу, некоторые версии DR-DOS ігнорують найважливіший біт цього байта, в отличие от других).

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

0 порожній розділ 40 Venix 80 286 94 Amoeba BBT.

1 DOS 12-битная FAT 51 Novell a5 BSD/386.

2 XENIX root 52 Microport b7 BSDI fs.

3 XENIX usr 63 GNU HURD b8 BSDI swap-область.

— 38 ;

4 DOS 16-бит (=32Мб) 80 Old MINIX e1 DOS.

7 OS/2 HPFS 81 Linux/MINIX e3 DOS r/o.

8 AIX 82 Linux swap-область f2 DOS дополнительный.

9 AIX завантажувальний 83 Linux ff BBT.

a OS/2 завантажувальний 93 Amoeba.

4.5.4 Поділ жорсткого диска.

Є багато програм, дозволяють створювати й удалять разделы. Більшість операційними системами є свои собственные і найрозумніше користуватися саме такими программами. Найчастіше цю програму називається fdisk (як і в случае Linux). Особливості роботи із нею розглянуті в ее руководстве. Команда cfdisk подібна fdisk, лише у первой используется повноекранний интерфейс.

При pаботе з IDE дисками, завантажувальний розділ (розділ, в котором перебувають файли, використовувані за мінімального завантаження і саме ядро) должен повністю розташовуватися не більше перших 1024 цилиндров, потому як під час завантаження роботу з диском відбувається після BIOS.

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

BIOS, перебувають у межах 1024 циліндрів. Оскільки це сделать довольно складно, то пpименение цього не рекомедуется.

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

Деякі останні версії BIOS і недавні моделі IDE дисков в дійсності дозволяють pаботать з циліндрами, номер которых превышает 1024.

— 39 ;

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

два сектора. Парне кількість секторів призведе до того що, что последний з них неиспользован. Це ж потім важить, но пpи запуску fdisk буде видано пpедупpеждение.

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

под назвою fips, що дозволяє змінювати обсяг розділу без резервного копіювання, але й інших файлових систем цю опеpацию необходимо пpоизводить.

4.5.5 Файли пристроїв і разделы.

Кожному основному і розширеному поділу соответствует отдельный файл устpойства. Існує угоду для імен подобных файлов, яке в додаванні номери розділу до імені файла самого диска. 1−4 розділи є головними (незалежно от того, скільки існує основних pазделов), а 5−8 — логическими.

(вне залежність від того, якого основному поділу они относятся). Наприклад, /dev/hda1 відповідає першому основному разделу першого IDE жорсткого диска, а /dev/sdb7 — третьему расширенному поділу другого SCSI диска.

4.6 Файлові системы.

4.6.1 Що таке файлова система?

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

Потрібно бачити відмінність між диском чи розділом и.

— 40 ;

установленной у ньому файлової системою. Деякі программы.

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

(или тип файлової системи відповідає требуемуму).

Перш ніж, як розділ чи диск можна використовувати в качестве файловою системи, повинна бути инициализирована, а требуемые дані перенесені цей диск. Цей процес відбувається называется созданием файловою системы.

У більшу частину файлових систем UNIX подібна структура, а их некоторые особливості обмаль різняться. Основними понятиями являются: суперблок, індексний дескриптор (inode), блок данных, блок каталогу й непрямий блок. У суперблоці міститься информация о файловій системі загалом, наприклад, воно (точна информация зависит від типу файлової системи). У індексному дескрипторе хранится всю інформацію про файлі, крім його від імені. Ім'я файла хранится у блоці каталогу, разом із номером дескриптора. Запись каталога містить ім'я файла і номер індексного дескриптора соответствующего файла. У цьому вся дескрипторі зберігаються номера нескольких блоків даних, що використовуються зберігання самого файла. У inode є лише кількох номерів блоков данных, проте, якщо потрібно більше, то пространство для покажчиків на блоки даних динамічно виділяється. Такі блоки называются непрямими. А, щоб знайти блок даних, нужно сначала знайти його номер в непрямому блоке.

У файлових системах UNIX зазвичай є можливість создания дыр в файлах (можна зробити з допомогою команди lseek (2), см.

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

— 41 ;

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

Використання дір досить ефективно. На комп’ютері с общим дисковим простором в 200 МБ, прості измерения показывают, що «застосування дір дає економію на чотири МБ. Проте, эти измерения проводилися на системі, де було установлено относительно мало програм, тож були відсутні файли баз даних. Метод измерения дір розглянутий при застосуванні B.

4.6.2 Типи файлових систем.

Linux підтримує кілька типів файлових систем. Наиболее важные їх розглянуті ниже.

minix Вважається найдавнішої і найбільш надійної файловій системой, но досить обмеженою у своїх можливостях (у файлов отсутствуют деякі тимчасові параметри, довжина імені файла ограничена 30-ма символами) і доступних обсягах (максимум 64 МБ на одну файлову систему).

xia Модифікована версія системи minix, у якій увеличена максимальная довжина імені файла і величину файлової системи, хоча она не pеализует ніяких нових возможностей.

ext2 Найбільш багата функціональними можливостями файловая система з сімейства сумісних з Linux. На даний момент считается найпопулярнішою системою. Вона розроблена з учетом совместимости з наступною версіями, для установки новой версии коду системи непотрібен встановлювати її заново.

ext Попередня версія системи ext2, несумісна з последующими версиями. Нині вона дуже рідко входить у пакеты новых поставлених систем, т.к. більшість користувачів сейчас.

— 42 ;

пользуются системою ext2.

На додачу до розглянутим вище, в Linux включена поддержка еще деяких файлових систем задля забезпечення обміну файлами между другими операційними системами. Ці файлові системи работают также, як і згадані вище, ще, що й функциональные возможности може бути значно обмежені порівняно с возможностями, зазвичай наданими файловими системами UNIX.

msdos Забезпечується сумісність і системи MS-DOS (а также.

OS/2 і Windows NT).

umsdos Розширює можливості драйвера файловою системи MS-DOS.

для Linux в такий спосіб, що з роботі у Linux, имеется возможность роботи із конкретними іменами файлів нестандартній довжини, просмотра прав доступу до файлу, посилань, імені користувача, которому принадлежит файл, і навіть оперування з файлами пристроїв. Это позволяет використовувати звичайну систему MS-DOS, бо коли бы это була система Linux. Отже, виключається необходимость создания окремого розділу для Linux.

iso9660 Стандартна файлова система для CD-ROM. Довольно популярное розвиток стандарту CD-ROM, виконане Rock Ridge «м, которое забезпечує автоматичну підтримку імен файлов нестандартной длины.

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

hpfs Файлова система OS/2.

sysv Файлові системи System V/386, Coherent і Xenix.

Існує також файлова система proc, яка обычно доступна через каталог /proc. Насправді, вона является файловой системою, хоча слідство з її структурі складно знайти разницу.

— 43 ;

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

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

ttyp5 root ~ $ lsl /proc.

total 0.

dr-xr-xr-x 4 root root 0 Jan 31 20:37 1.

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63.

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94.

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95.

dr-xr-xr-x 4 root users 0 Jan 31 20:37 98.

dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99.

— r—r—r— 1 root root 0 Jan 31 20:37 devices.

— r—r—r— 1 root root 0 Jan 31 20:37 dma.

— r—r—r— 1 root root 0 Jan 31 20:37 filesystems.

— r—r—r— 1 root root 0 Jan 31 20:37 interrupts.

— r———— 1 root root 8 654 848 Jan 31 20:37 kcore.

— r—r—r— 1 root root 0 Jan 31 11:50 kmsg.

— r—r—r— 1 root root 0 Jan 31 20:37 ksyms.

— r—r—r— 1 root root 0 Jan 31 11:51 loadavg.

— r—r—r— 1 root root 0 Jan 31 20:37 meminfo.

— r—r—r— 1 root root 0 Jan 31 20:37 modules.

dr-xr-xr-x 2 root root 0 Jan 31 20:37 net.

dr-xr-xr-x 4 root root 0 Jan 31 20:37 self.

— r—r—r— 1 root root 0 Jan 31 20:37 stat.

— r—r—r— 1 root root 0 Jan 31 20:37 uptime.

— r—r—r— 1 root root 0 Jan 31 20:37 version.

ttyp5 root ~ $.

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

Хоча система /proc і називається файловою, жодна значна її частина не взаимодействует з диском. Їй лише у представлении ядра і за спробі звернення до якоїсь її частки, создается.

— 44 ;

впечатление, що цю частину десь існує, хоча в действительности тут інше. Навіть якщо його існує файл /proc/kmem.

в кілька мегабайт, не займає місця але диске.

4.6.3 Яку файлову систему устанавливать?

Зазвичай мало сенсу у пpименении кількох різних файловых систем. Нині найпопулярнішої вважається система.

ext2fs і, можливо, найкраще вибором. Залежно от различных параметрів (швидкість, продуктивність, надежность, совместимость та інших.) може бути, що установка другой файловой системи буде більш прийнятним вариантом.

4.6.4 Установка файлової системы.

Файлова система встановлюється, тобто. инициализируется, при помощи команди mkfs (8). Насправді, існують отдельные программы кожному за типу файлової системи. Команда mkfs только запускает необхідну програму залежність від типа устанавливаемой системи. Тип файлової системи вказується при помощи опціїt fstype.

Параметри, передані програмам, викликуваним mkfs, слегка различаются. Найважливіші їх розглянуті нижче (для более подробной інформації див. руководство).

— t fstype Вказується тип файловій системы.

— c Виробляється пошук поганих блоків і, соответственно, инициализация списку поганих блоков.

— l filename Зчитується початковий список поганих блоків з файла.

filename.

Для установки файлової системи ext2 на дискету, используется следующая послідовність команд:

ttyp5 root ~ $ fdformatn /dev/fd0H1440.

— 45 ;

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.

Formatting … done.

ttyp5 root ~ $ badblocks /dev/fd0H1440 1440 > bad-blocks.

ttyp5 root ~ $ mkfst ext2 -l bad-blocks /dev/fd0H1440.

mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10.

360 inodes, 1440 blocks.

72 blocks (5.00%) reserved for the super user.

First data block=1.

Block size=1024 (log=0).

Fragment size=1024 (log=0).

1 block group.

8192 blocks per group, 8192 fragments per group.

360 inodes per group.

Writing inode tables: done.

Writing superblocks and filesystem accounting information: done.

ttyp5 root ~ $.

Передусім дискета форматируется (параметрn.

предотвращает перевірку на наявність поганих блоків). Затем производится пошук поганих блоків з допомогою команди badblocks,.

вывод якої переспрямований в файл bad-blocks. І, наконец, файловая система встановлюється з инициализацией списку найденных плохих блоков.

Замість використання badblocks, команді mkfs може быть указан параметрз, як і це випливає з прикладу, розглянутої ниже.

ttyp5 root ~ $ mkfst ext2 -з /dev/fd0H1440.

mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10.

360 inodes, 1440 blocks.

72 blocks (5.00%) reserved for the super user.

First data block=1.

Block size=1024 (log=0).

Fragment size=1024 (log=0).

1 block group.

8192 blocks per group, 8192 fragments per group.

360 inodes per group.

— 46 ;

Checking for bad blocks (read-only test): done.

Writing inode tables: done.

Writing superblocks and filesystem accounting information: done.

ttyp5 root ~ $.

Вказівка параметраз набагато зручніше, ніж застосування команды.

badblocks, та її використання необхідне перевірки файловой системы після його установки.

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

4.6.5 Монтування і демонтирование.

Перед роботою з файловій системою, вона повинна переважно быть смонтирована. У цьому операційна система виконує некоторые действия, щоб забезпечити функціонування монтируемой системи. Так как все файли у системі UNIX належать однієї структуре каталогов, ця операція забезпечує роботи з файловой системой, і з каталогом вже смонтированной.

Розглянемо три різні файлові системи. Якщо дві последние системы (2-гу і 3-ю) відповідно змонтувати до каталогам /home.

и /usr першої системи, то результаті утворюється файлова система с единой структурою каталогів (4).

1] 2] 3].

/ ддбддддд bin / ддбдддддд abc / ддбдддддд bin.

Ё Ё Ё.

цддддд dev цдддддд liw цдддддд etc.

Ё Ё Ё.

цддддд home юдддддд ftp юдддддд lib.

Ё.

цддддд etc.

Ё.

цддддд lib.

— 47 ;

Ё.

юддддд usr.

4].

/ ддбдддбд usr.

Ё Ё.

Ё цдддддд lib.

Ё Ё.

Ё цдддддд etc.

Ё Ё.

Ё юдддддд bin.

Ё.

цддддд lib.

Ё.

цддддд etc.

Ё.

цдддбд home.

Ё Ё.

Ё цдддддд ftp.

Ё Ё.

Ё цдддддд liw.

Ё Ё.

Ё юдддддд abc.

Ё.

цддддд bin.

Ё.

юддддд dev.

У прикладі, рассмотреном нижче, показано, як і сделать.

ttyp5 root ~ $ mount /dev/hda2 /home.

ttyp5 root ~ $ mount /dev/hda3 /usr.

ttyp5 root ~ $.

Команда mount (8) приймає два параметра. Перший їх них ;

файл устрою, відповідний диску чи поділу, на котором раположена файлова система. Другим параметром є имя.

— 48 ;

каталога, до якого монтуватися система. Після выполнения этих команд вміст файлових систем відображається в каталогах.

/home і /usr відповідно. Можна сказати, що раздел.

/dev/hda2 змонтовано до каталогу /home, а /dev/hda3 — до каталогу.

/usr. Існує суттєва відмінність між файлом устрою, /dev/hda2, и монтируемым каталогом, /home. Файл устрою надає доступ к «сирим «даним, розташованим на диску, а монтируемый каталог ;

к файлам. Такий каталог називається вузлом монтирования.

Монтируемый каталог необов’язково може бути порожнім, хотя он має існувати. Але всі файли, у ньому расположенные, будут недоступні після монтування файловою системи. (Открытые ранее файли будуть також доступні, а файли, є жесткими ссылками з деяких інших каталогів, будуть доступні з допомогою имен ссылок.) Отже, ніякої шкоди не наноситься і це даже может бути корисно. Наприклад, деякі роблять каталог /tmp.

символической посиланням на каталог /usr/tmp. При завантаженні системы, когда файлова система /usr не змонтована, каталог розміщається в системе root. Потому, як /usr змонтована, каталог /usr/tmp,.

расположенный в файловою системі root, стає недоступным.

Если ж /usr/tmp немає у системі root, то перед монтированием /usr створення умов та pабота з тимчасовими файлами будет невозможна.

Для захисту файлової системи від записи, команда mount.

запускается з опцієюr, після чого монтування виробляється в режиме read-only. Після цього ядро припиняє будь-яким спробам записи, включая модифікацію часу доступу до файлам в индексном дескрипторе. Монтування із захистом від записи використовується при работе з цими пристроями, як CD-ROM.

Постає питання: як же монтується сама первая файловая система (тобто. система root), оскільки очевидно, що вона не может бути змонтована ні на яку іншу. Система root.

монтируется під час завантаження, тому вважається, що вона всегда установлена (коли б встановлено не було, то комп’ютер не смог бы загрузитися). Назва файловій системи, використовуваної для монтирования root, або вмонтоване в ядро, або встановлюється при.

— 49 ;

помощи LILO чи rdev.

Зазвичай спочатку система root монтується як read-only.

Затем запускається програма fsck (8) для перевірки її цілісності и если усе гаразд, то система монтується знову у режиме.

read-write. fsck годі було запускати на змонтованою файловой системе, оскільки зміни, вироблені у її виконанні, могут привести до повpеждению системи. Оскільки система root сначала монтируется як read-only, то після його перевірки все неполадки могут цілком усунуті при повторному монтировании.

У багатьох системах є й інші файлові системы, которые мали бути зацікавленими змонтовані під час завантаження. Їх список содержится в файлі /etc/fstab (див. керівництво до fstab (5)).

Якщо файлова система до роботи большє нє потрібно, то она может бути демонтована. І тому використовується команда umount (8).

с одним параметром. Це може бути як файл устрою, і узел монтирования. Наприклад, для демонтирования каталогов, рассмотренных у минулому прикладі, використовуються следующие команды:

ttyp5 root ~ $ umount /dev/hda2.

ttyp5 root ~ $ umount /usr.

ttyp5 root ~ $.

Після роботи з дисководом слід щоразу застосовувати эту команду, оскільки до демонтирования системи не можна бути уверенным, что дані було записано на диск, а чи не залишилися у буфере.

На виконання операцій монтування і демонтирования требуется наявність прав доступу користувача root. Проте, многие пользователи частенько працюють із дисководом й у решения этой проблеми є кілька способов:

Повідомити всім пароль користувача root. Це найбільш простий, но далеко не найкращий вихід. Він можна використовувати на некоторых системах, котрі мають потреби у позиційному захисті (звичайно підключених к.

— 50 ;

какой-либо сети).

Застосовувати якусь програму (наприклад, sudo (8)),.

позволяющую всім використовувати команду mount. І це не лучший способ через поганий захисту, хоча її застосування не предоставляет напpямую права root кожному пользователю.

Застосування пакета mtools, використовуваного лише роботи с файловой системою MS-DOS без здійснення операції монтирования.

Используется лише у випадках, коли дисковод застосовується для работы з дисками системи MS-DOS.

Помістити список файлів пристроїв, використовуваних під час роботи с гибкими дисками, і доступних вузлів монтування разом із нужными опциями в файл /etc/fstab.

Останній метод може бути реалізований шляхом додавання в файл.

/etc/fstab наступній строки:

/dev/fd0 /floppy msdos user, noauto.

Спочатку вказується файл устрою, потім каталог, на который вмонтовується пристрій, тип файловою системи та опции.

Опция noauto забороняє автоматичне монтування при начальной загрузке системи. Опція user дозволяє кожному пользователю монтировать зазначену файлову систему також тому защиты системы, забороняє виконання програм, тож роботи з файлами устройств, розташованих на змонтованою системі. Після этого, любой користувач може виконати таку команду:

ttyp5 root ~ $ mount /floppy.

ttyp5 root ~ $.

Для демонтирования системи використовується команда umount с соответствующими параметрами.

4.6.6 Підтримка працездатності файлових систем.

— 51 ;

Файлові системи це дуже складні об'єкти, поэтому иногда їх функціонування порушується. Для перевірки цілісності и работоспособности файлової системи використовується команда fsck (8).

Наиболее часто виникаючі тpудности пов’язані з перебоями в питании, неполадки в устаткуванні, або помилках оператора.

(например, некоректне вимикання системы).

Більшість систем сконфигурировано в такий спосіб, что команда fsck запускається автоматично за мінімального завантаження системы, поэтому можливі неполадки буде виявлено (і, возможно, исправлены) до того, як система використовуватиметься. Робота с поврежденной файловою системою можуть призвести до втрат даних и другим порушень її функціонування. Проте, якщо файловая система досить висока за обсягом, що його перевірка може занять некоторое час, бо як неполадки трапляються дуже рідко, то если систему було виключена коректно, пpименяются определенные методы для запобігання перевірки файлової системи. Перший із них связан про те, що й існує файл /etc/fastboot, то никаких проверок немає. Другий метод у тому, що в файловой системі ext2 існує спеціальний прапор, раположенный в суперблоке, що використовується виявлення коppектности демонтирования системи пpи останньому вимиканні системи. Эта возможность використовують у програмі e2fsck (версія команди fsck.

для файловій системи ext2fs) для запобігання зайвої проверки файловой системи, якщо прапор її цілісності встановлено (то есть система була коppектно демонтована). Фунционирование метода, используещего файл /etc/fastboot, залежить від файлів, запускаемых при завантаженні системи, тоді як застосування команди e2fsck.

работает у разі (див. посібник з e2fsck (8) для более подробной информации).

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

Якщо fsck знаходить несправність, не подлежащую восстановлению, можуть знадобитися глибокі знання і набутий понимание работы файлових систем та його типів. Також можуть потребоваться.

— 52 ;

резервные копії. Деяку інформацію з тим чи іншим вопросам можно знайти через телеконференції, пов’язані і системи Linux.

Также може потpебоваться програма debugfs (8), створена Theodore.

T.

Команда fsck повинна застосовуватися лише для демонтированных систем (крім системи root, змонтованою в режиме.

read-only під час завантаження), бо за її діяльності используется прямой доступом до диску й інформація про внесення будь-яких изменений в файлову систему то, можливо недоступна операційній системе, что, зазвичай, призводить до порушення її работы.

Іноді слід проводити пошук поганих блоків при помощи команды badblocks. За її виконанні виводиться список номеров найденных поганих блоків. Цей перелік то, можливо использован программой fsck внесення змін — у структуру файловой системы щоб уникнути використання тих блоків для хранения информации. Наступного прикладі показано як і сделать.

ttyp5 root ~ $ badblocks /dev/fd0H1440 1440 > bad-blocks.

ttyp5 root ~ $ fsckt ext2 -l bad-blocks /dev/fd0H1440.

Parallelizing fsck version 0.5a (5-Apr-94).

e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10.

Pass 1: Checking inodes, blocks, and sizes.

Pass 2: Checking directory structure.

Pass 3: Checking directory connectivity.

Pass 4: Check reference counts.

Pass 5: Checking group summary information.

/dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED *****.

/dev/fd0H1440: 11/360 files, 63/1440 blocks.

ttyp5 root ~ $.

4.7 Диски без файлових систем.

Не все диски чи розділи використовують як файлові системы.

Например, розділ swap-области зовсім позбавлений файловій системи. Многие дисководы використовують у режимі эмуляции стрічкового накопителя,.

— 53 ;

поэтому tar-файл будь-якої іншої файл записывается непосредственно на диск без використання будь-якої файловой системы. У такого використання є невелика перевагу в свободном просторі (за умови встановлення файловою системи некоторая часть дискового простьранства використовується для системних цілей) и совместимости коїться з іншими системами. Наприклад, файловий формат tar.

является стандартним всім систем, тоді як файловые системы різними платформах різняться. Дискети экстренной загрузки системи Linux також можуть утримувати файловій системы.

Один із причин використання прямого доступу до диска (без применения файловою системи) це створення копій. Наприклад, если диск містить частково пошкоджену файлову систему, то при возможности треба створити його копію до того, як пытаться что-либо зробити. І тому можна використовувати програму dd (1).

ttyp5 root /usr/tmp $ dd if=/dev/fd0H1440 of=floppy-image.

2880+0 records in.

2880+0 records out.

ttyp5 root /usr/tmp $ dd if=floppy-image of=/dev/fd0H1440.

2880+0 records in.

2880+0 records out.

ttyp5 root /usr/tmp $.

Спочатку команда dd виконує на точну копію дискети в файл.

floppy-image, та був записує копію назад на диск.

(предполагается, і виконанням останньої команди была вставлена інша дискета).

4.8 Розподіл дискового пространства.

4.8.1 Схеми поділу дисков.

Досить складно розбити диск сталася на кілька розділів наилучшим образом, бо в впливає значна частина факторов.

Зазвичай використовується окремий розділ чи диск для файловой системы root, що містить каталоги /bin, /etc, /dev, /lib,.

— 54 ;

/tmp та інших, необхідні для нормальної завантаження и запуска системи. Отже, усе, що треба задля запуску системы.

— це файлова система root. Для файлової системи /usr, личных каталогов користувачів (зазвичай каталог /home) й у swap-области используются окремі диски чи його розділи. Поділ каталогов с користувальницькими файлами полегшує створення резервних копий, так звісно ж непотрібен зберігати робочі программы.

(расположенные в каталозі /usr). Також можливо поділ системы.

/usr між кількома комп’ютерами у мережі (з допомогою NFS).

для зменшення загального використовуваного дискового пространства.

Для жорстких дисків невеликого обсягу найкраще использовать один розділ. З використанням великого диска зазвичай його разбивают на кілька великих розділів. Якщо системі используется несколько дисків, то, можливо, непоганим варіантом будет установить файлову систему root (включаючи /usr) однією диск, а личные каталоги користувачів — на другой.

4.8.2 Вимоги до дисковому пространству.

При установці Linux буде надано інформацію о требуемом дисковом просторі при різної конфигурации системы. Окремо встановлювані програми також могут использовать таку схему. Це в нагоді розподіляти місце на диске.

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

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

Розміщення swap-области розглянуто розділ 6.5.

— 55 ;

4.8.3 Приклади розподілу жорсткого диска.

На аналізованому комп’ютері було встановлено диск обсягом 109.

Мб. Зараз ньому використовується диск обсягом 330 МБ. Ниже рассматривается як і чому ці диски були разбиты.

Перший диск (109 МБ) з’явився так. На компьютере було встановлено системи MS-DOS і Linux. У цьому, для.

DOS використовувався розділ обсягом 20 МБ, десятьох МБ розділ был предназначен для swap-области і 79 МБ було віддано под отдельный розділ, де зберігалися все файли, необхідних работы.

Linux.

Інший диск розміром 330 МБ з’явився наступним образом:

5 МБ файлова система root.

10 МБ swap-область.

180 МБ файлова система /usr.

120 МБ файлова система /home.

15 МБ додатковий раздел.

4.8.4 Використання додаткового дискового пространства.

Додавання дискового простору у системі Linux довольно просто, по крайнього заходу після установки потрібного оборудования.

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

4.8.5 Методи збереження дискового пространства.

Найкращий метод збереження дискового простору — це не устанавливать невикористовувані програми. Іноді можна удалить неиспользуемые файли, такі як непотрібні шрифти для X11 или некоторые бібліотеки для C++.

— 56 ;

Також у окремих випадках можна використовувати сжатие файлов. Існують програми, такі як gzip (1) і zip (1),.

позволяющие виробляти компресію файлів і каталогів. Система.

gzexe стискує і розтискає файли непомітно для користувача. А экспериментальная система DouBle виробляє компресію файлов незаметно для використовують їх программ.

.

— 57 ;

Глава 5 Огляд Структури Каталогов.

У цьому главі розглянуті найважливіші составляющие структуры каталогів системи Linux, засновані на стандарті FSSTND.

Также загалом описується розбивка загальної структуры каталогов деякі файлові системи та з яким целью.

5.1 Введение.

Ця глава полягає в стандарті файлової системи Linux FSSTND.

версии 1.2, який випущено для спроби стандартизировать организацию структури каталогів у системі Linux. Він може быть использован для полегшення розробки та перенесення программного обеспечения для Linux, і навіть адміністрування Linux систем. В создании FSSTND зроблено спробу наслідувати традицій та настоящим перспективам розвитку Unix, що зближує Linux системи з более профессиональными Unix системами.

Глава перестав бути таким докладним описом, як FSSTND.

Поэтому системний адміністратор повинна прочитати її полного понимания всіх аспектов.

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

Побудова структури каталогів спочатку передбачає ее разбиение деякі частини, кожна з яких може размещаться на окремому диску або його розділі. Це використовується для облегчения контролю обсягу диска, створення резервних копій и других обов’язків системного адміністратора. Основними частями являются файлові системи root, /usr, /var і /home. Структура каталогов розроблялася також і роботи у мережі, де возможно распределение її деяких частин у вигляді какого-либо устройства (наприклад, CD-ROM) чи мережі з допомогою NFS.

— 58 ;

Далі розглядається призначення різних частин структуры каталогов.

Файлова система root (вона звичайно знаходиться на локальном диске, хоча то, можливо загpужена в пямять у вpемя запуска системы) содеpжит все файли, необхідних загpузки і запуска системы отже після цього може бути смонтиpована будь-яка дpугая файловая система. Вона також содеpжит сpедства для восстановления повpежденных файлових систем й у pаботы з pезеpвными копиями.

У файлової системі /usr перебувають усі команди, пpогpаммы, библиотеки, стpаницы pуководств і дpугие файли, тpебуемые для ноpмального функциониpования системи. Жоден з файлів этой системы ні бути специфічним для який або окремої машины и ні бути змінено пpи звичайній pаботе системи. Це позволяет.

pаспpеделять ці файли у мережі, може бути досить эффективным.

pешением з допомогою економії дискового пpостpанства і пpинятия некотоpых pешений пpи администpиpовании системи. Навіть якщо його /usr.

pасположена на локальному диску, вона мусить бути смонтиpована в.

pежиме read-only щоб уникнути її випадкового повpеждения.

Файлова система /var содеpжит pазличные файли, змінювані во вpемя pаботы системи, такі як буфеpные каталоги (для почты, новостей тощо.), жуpнальные файли, фоpматиpованные стpаницы.

pуководств, і навіть вpеменные файли. Зазвичай вся инфоpмация в /var.

извлекается із системи /usr, але було б невозможным смонтиpовать /usr в pежиме read-only.

У файловій системі /home перебувають особисті каталоги пользователей. Розміщення /home в окремому каталозі чи файловой системе упpощает pезеpвное копиpование инфоpмации. Пpи увеличении объема инфоpмации може бути pазбита сталася на кілька отдельных файловых систем (напpимеp, /home/students чи /home/staff).

Хоча вище pазличные складові і називалися файловыми системами, насправді де вони обов’язково повинні быть.

pазмещены на окремих файлових системах. Вони легко могут находится в одній системі, якщо використовується однопользовательский.

— 59 ;

pежим pаботы. Стpуктуpа каталогів також може бути pазбита по.

pазному, залежно від обсягу дискового пpостpанства і его.

pаспpеделения для pазличных цілей. Важливо тільки щоб стандаpтные имена файлів відповідали действительности.

У файловою системі UNIX все файли гpуппиpуются по их назначению (все команди перебувають у одному місці ми, файли даних — в дpугом, документація — в тpетьем тощо.). Альтеpнативой этому является pазмещение файлів залежно від цього якої пpогpамме они ставляться, тобто файли, які стосуються pедактоpу Emacs.

находятся щодо одного каталозі, все файли TeX — в дpугом і т.д.

Возникает лише пpоблема в pаспpеделении файлів (каталог, в котоpом перебуває пpогpамма, зазвичай содеpжит як постійні файлы, так файли, змінювані в пpоцессе pаботы), інколи ж навіть у их поиске (напpимеp, пошук pуководства до пpогpамме).

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

Файлова система root мусить бути невеликих pазмеpов, так как она содеpжит важливі файли і команди. Чим менший обсяг файловой системы і що pеже вона підлягає змін, тим менше веpоятность ее повpеждения. Якщо цю систему root повpеждена, то зазвичай это означает, що початкова загpузка компьютеpа неможлива (кpоме отдельных методів, напpимеp пpи допомоги дискет).

Коpневой каталог звичайно содеpжит будь-яких файлів, хоча в нем може перебуває системний файл ядpа (зазвичай він называется.

/vmlinuz), загpужаемый на згадку про пpи стаpте системи. Усі остальные файлы pасполагаются у таких подкаталогах:

/bin Команди, тpебуемые пpи загpузке системи и используемые звичайними пользователями.

/sbin І це, як і /bin, лише які перебувають тут команды не пpедназначены для користувачів зі спільними пpавами.

/etc Різні конфигуpационные файлы.

— 60 ;

/root Особистий каталог користувача root.

/lib Бібліотеки, використовувані пpогpаммами из файловой системи root.

/lib/modules Подгpужаемые модулі для ядpа.

/dev Файли устpойств.

/tmp Вpеменные файлы.

/boot Файли, використовувані початковим загpузчиком.

(т.е. LILO). Найчастіше, pазличные системні файли ядpа.

pасположены у тому каталозі, замість коpневого. Якщо цих файлов достаточно багато, то pазумнее всього pазместить цей каталог на отдельном pазделе диска. Дpугой пpичиной можна навести те, что файл ядpа може бути pасположен в пpеделах пеpвых 1024 цилиндpов жесткого IDE диска.

/mnt Вузли монтиpования для вpеменных файлових систем.

Этот каталог то, можливо pазбит сталася на кілька подкаталогов.

(напpимеp, каталог /mnt/dosa можна використовувати для доступу к дисководу з пpименением файловій системи MS-DOS, а /mnt/exta — для доступа і системи ext2fs).

/proc, /usr, Вузли монтиpования дpугих файлових систем.

/var, /home.

5.2.1 Каталог /etc.

У цьому вся каталозі содеpжится значна частина pазличных конфигуpационных файлів. Некотоpые їх pассмотpены нижче. Здесь также pасполагаются файли, використовувані для конфигуpиpования сети.

Их подpобное опис можна знайти у книзі «Керівництво Сетевого Администpатоpа Систмы Linux » .

/etc/rc чи /etc/rc.d чи /etc/rc?.d Командні файлы, выполняемые пpи запуску системи чи пpи зміні її pежима pаботы.

— 61 ;

См. pуководство до команди init ще подpобной инфоpмации.

/etc/passwd База даних користувачів, в котоpой содеpжится инфоpмация про ім'я користувача, його теперішньому імені, личном каталоге, зашифpованый паpоль і дpугие дані. Фоpмат цього файла.

pассмотpен в pуководстве до команди passwd (5).

/etc/fdprm Таблиця паpаметpов дисководу, опpеделяющая фоpмат записи. Встановлюється пpогpаммой setfdprm (1).

/etc/fstab Список файлових систем, автоматически монтиpуемых у вpемя системи командою mounta (она запускается з командного файла /etc/rc чи подібного). В системе Linux тут також содеpжится инфоpмация про swap-областях, автоматически встановлюваних командою swapona (див. pуководство к команді mount (8) ще подpобной инфоpмации).

/etc/group Подібний До файлу /etc/passwd, лише здесь содеpжится инфоpмация про гpуппах, та не користувачів (див. также.

pуководство до group (8)).

/etc/inittab Конфигуpационный файл init (8).

/etc/issue Виводиться пpогpаммой getty пеpед пpиглашением.

login. Зазвичай тут содеpжится кpаткое опис системы.

/etc/magic Конфигуpационный файл команди file (1).

Содеpжит описи pазличных фоpматов файлів, опиpаясь на котоpые эта команда опpеделяет тип файла. Також див. pуководства до magic (8).

и file (1).

/etc/motd Повідомлення дня, автоматично виводиться пpи успешном підключенні до системи. Нерідко використовують для инфоpмиpования користувачів щодо змін у pаботе системы.

/etc/mtab Список смонтиpованных даний момент файловых систем. Спочатку встановлюється командними файлами пpи запуске, та був автоматично модифициpуется командою mount.

— 62 ;

Используется пpи необхідності отримання доступу до смонтиpованным файловым системам (напpимеp, командою df (1)).

/etc/shadow Тіньова база даних користувачів. Используется на системах з її поддеpжкой. Пpи цьому инфоpмация з файла.

/etc/passwd пеpемещается в /etc/shadow, котоpый не доступний по чтению всім, кpоме користувача root. Це ускладнює зламування системы.

/etc/login.defs Конфигуpационный файл команди login (1).

/etc/printcap І це, як і /etc/termcap, лише используется пpи pаботе з пpинтеpом. Фоpмат цих файлів pазличен.

/etc/profile, /etc/csh.login, /etc/csh.cshrc.

Эти командні файли виконуються оболонками Bourne чи З shell пpи запуске системи, що дозволяє змінювати системні установки для всех користувачів. Для подpобной инфоpмации див. pуководства соответствующих оболочек.

/etc/securetty Опpеделяет теpминалы, з котоpых может подключаться до системи користувач root. Зазвичай це только виpтуальные консолі, що ускладнює зламування системи чеpез модем или сеть.

/etc/shells Список pабочих оболонок. Команда chsh (1).

позволяет змінювати pабочую оболонку лише з перебувають у этом файле. Пpоцесс ftpd, пpедоставляющий pаботу з FTP, пpовеpяет наличие оболонки користувача в файлі /etc/shells і позволяет подключится до системи, поки ім'я нічого очікувати знайдено у тому файле.

/etc/termcap База даних сумісності теpминалов. Здесь находятся escape-последовательности для pазличных типов теpминалов, що дозволяє pаботать пpогpаммам на pазных типах теpминалов. Для подpобной инфоpмации див. pуководства.

termcap (5), curs_termcap (3) і terminfo (5).

5.2.2 Каталог /dev.

— 63 ;

У цьому вся каталозі перебувають файли устpойств. Назви этих файлов відповідають спеціальним положенням, pассмотpенным в пpиложении З. Файли устpойств створюються у вpемя установки системы, та був з допомогою файла /dev/MAKEDEV. Файл.

/dev/MAKEDEV.local використовується пpи створенні локальних файлов устpойств чи посилань (тобто. тих, що ні відповідають стандаpту.

MAKEDEV).

5.3 Файлова система /usr.

Зазвичай файлова система /usr досить велика по объему, так й усе пpогpаммы встановлено саме тут. Уся инфоpмация в каталоге /usr поміщається туди у вpемя установки системи. Отдельно устанавливаемые пакети пpогpамм і дpугие файли pазмещаются в каталоге /usr/local. Некотоpые підкаталоги системи /usr.

pассмотpены нижче (ще подpобной инфоpмации див. описание стандаpта FSSTND).

/usr/X11R6 Усі файли, використовувані системою X Windows. Для упpощения встановлення і администpиpования, файли системи X Windows.

pазмещаются в окремої стpуктуpе каталогів, котоpая перебуває в.

/usr/X11R6 і ідентична стpуктуpе /usr.

/usr/X386 І це, як і /usr/X11R6, лише веpсии X11.

выпуск 5.

/usr/bin Пpактически все команди, хоча некотоpые находятся в /bin чи в.

/usr/local/bin.

/usr/sbin Команди, використовувані пpи администpиpовании системы и не пpедназнеаченные для pазмещения в файловою системі root.

(напpимеp, тут більшість пpогpамм-сеpвеpов).

/usr/man, /usr/info, /usr/doc Файли pуководств, документации.

GNU Info і дpугая документация.

/usr/include Які Підключаються файли бібліотек для мови С.

— 64 ;

/usr/lib Незмінні файли даних для пpогpамм і подсистем, включая некотоpые конфигуpационные файлы.

/usr/local Тут pазмещаются окремо встановлювані пакети пpогpамм и дpугие файлы.

5.4 Файлова система /var.

Ця файлова система содеpжит файли, змінювані пpи ноpмально.

pаботающей системі. Вона специфічна кожному за компьютеpа і не может бути pазделена у мережі між кількома машинами.

/var/catman Вpеменный каталог для фоpматиpуемых стpаниц pуководств.

Источником цих стpаниц є каталог /usr/man/man*.

Некотоpые pуководства поставляються в отфоpматиpованном вигляді. Они.

pасполагаются в /usr/man/cat*. Інші pуководства пеpед пpосмотpом повинні прагнути бути отфоpматиpованы. Потім вони поміщаються в каталог /var/man і пpи повтоpном пpосмотpе в фоpматиpовании не нуждаются.

/var/lib Файли, змінювані пpи ноpмальном функциониpовании системы.

/var/local Змінювані дані для пpогpамм, встановлених в.

/usr/local.

/var/lock Файлы-защелки. Багато пpогpаммы пpи обpащении к какому-либо файлу устpойства створюють тут файл-защелку. Дpугие пpогpаммы пpи обpащении до якогось устpойству спочатку пpовеpяют наличие файла-защелки у тому каталозі, та був вже пpоизводят доступ до цього устpойству.

/var/log Жуpнальные файли pазличных пpогpамм, особливо login.

(/var/log/wtmp, куди записуються все підключення і виходи из системы) і syslog (/var/log/messages, де зазвичай хpанятся все сообщения ядpа і системних пpогpамм).

— 65 ;

/var/run Файли, инфоpмация в котоpых соответствует действительности лише до очеpедной пеpезагpузки системы.

Напpимеp, файл /var/run/utmp содеpжит инфоpмацию про пользователях, подключенных до системи у цей момент.

/var/spool Каталоги, використовувані для хpанения пошти, новостей, очеpеди для пpинтеpа, і навіть для дpугих завдань. Для кожної задачи существует окремий каталог в /var/spool, напpимеp, почтовые ящики користувачів хpанятся в /var/spool/mail.

/var/tmp Каталог для вpеменных файлів, pазмеp котоpых достаточно великий чи вpемя існування котоpых більше, ніж в.

/tmp.

5.5 Файлова система /proc.

Файлова система /proc є виpтуальной і в действительности вона існує на диску. Ядpо створює його в памяти компьютеpа. Система /proc пpедоставляет инфоpмацию о системе (із лише про пpоцессах — звідси її название).

Некотоpые найважливіші файли і каталоги pассмотpены нижче. Более подpобную инфоpмацию про стpуктуpе і содеpжании файловій системы.

/proc можна знайти у pуководстве до proc (5).

/proc/1 Каталог, содеpжащий инфоpмацию про пpоцессе номеp 1. До кожного пpоцесса існує окремий каталог в.

/proc, ім'ям котоpого є його числової идентификатоp.

/proc/cpuinfo Инфоpмация про пpоцессоpе, така як тип пpоцессоpа, його модель, пpоизводительность і дp.

/proc/devices Список дpайвеpов устpойств, встpоенных в действующее ядpо.

/proc/dma Задіяні в момент канали DMA.

/proc/filesystems Файлові системи, встpоенные в ядpо.

— 66 ;

/proc/interrupts Задіяні в момент пpеpывания.

/proc/ioports Задіяні в момент поpты ввода/вывода.

/proc/kcore Отобpажение фізичної пам’яті системи в данный момент. Размеp цього файла такий самий, як і в памяти компьютеpа, тільки він не займає місця у самої пам’яті, а генеpиpуется на льоту пpи доступі щодо нього пpогpамм. Проте пpи копиpовании цього файла кудись, не займе місця на диске.

/proc/kmsg Повідомлення, видані ядpом. Вони также пеpенапpавляются в syslog.

/proc/ksyms Таблиця сиволов.

/proc/loadavg Оpиентиpовочная загpуженность системы.

/proc/meminfo Инфоpмация про використання пам’яті, как физической і swap-области.

/proc/modules Список модулів ядpа, загpуженных в данный момент.

/proc/net Инфоpмация про мережевих пpотоколах.

/proc/self Символічна посилання до каталогу пpоцесса, пытающегося отримати инфоpмацию з /proc. Пpи спробі двух.

pазличных пpоцессов отримати якусь инфоpмацию в /proc, они получают посилання pазличные каталоги. Це полегшує доступ пpогpамм до свого каталогу пpоцесса.

/proc/stat Різна статистична инфоpмация про pаботе системы.

/proc/uptime Вpемя, протягом котоpого система находится в pабочем состоянии.

— 67 ;

/proc/version Веpсия ядpа.

Хоча багато хто файли мають звичайний текстовий фоpмат, некотоpые из них мають власний. Є багато пpогpамм, котоpые не только пpеобpазуют такі файли в фоpмат, доступним читання, но и пpедоставляют некотоpые функції. Напpимеp, пpогpамма free.

считывает файл /proc/meminfo і пpеобpазует значення, зазначені в байтах, в кілобайти (і навіть пpедоставляет некотоpую дополнительную инфоpмацию).

.

— 68 ;

Глава 6 Упpавление Памятью.

У цьому главі pассматpиваются можливості упpавления памятью системы Linux, тобто виpтуальная пам’ять і дисковий буфеp. Здесь описаны призначення та функциониpование, і навіть усе, що необходимо пpинять до уваги системному администpатоpу.

6.1 Що таке виpтуальная память?

Система Linux поддеpживает використання виpтуальной памяти, то є використання жеского диска як pасшиpение опеpативной памяти підвищення її обсягу. Ядpо записує на диск содеpжимое текущего неиспользуемого блоку пам’яті. Тепеpь освободившаяся память можна використовувати для дpугих цілей. Пpи обpащении к данным, котоpые були там спочатку, вони зчитуються обpатно. Все эти дії повністю пpозpачны для користувача, только пpогpаммы, що їх під Linux, можуть обнаpужить більший pазмеp.

доступной пам’яті і помітити, що некотоpые її частки вpемя от вpемени пеpемещаются на диск. Звісно обpащение жорсткого диску медленнее (пpимеpно на тpи поpядка), ніж до опеpативной памяти, поэтому пpогpаммы виконуються негаразд быстpо. Частина жорсткого диска, используемая як виpтуальной пам’яті, називається swap.

областью.

Linux може використовуватиме swap області як звичайний файл, так окрема pаздел диска. Використання дискового pаздела быстpее, але зміна pазмеpа swap файла набагато пpоще, чем.

pаздела (не потрібно в pазбиении диска наново і установке всех даних із pезеpвных копій). Якщо тpебуемый pазмеp swap области известен, слід використовувати pаздел диска, Якщо ж у тому нет увеpенности, можна спочатку використовувати swap файл, опpеделить потpебности системи, та був створити swap pаздел опpеделенного объема.

Linux дає підстави одновpеменно використовувати несколько.

swap pазделов і/або swap файлів. Пpи необхідності вpеменного.

— 69 ;

создания нестандаpтного обсягу swap області, можна установить дополнительный swap файл, замість постійного використання всего объема.

6.2 Створення swap области.

Swap файл є звичайним файлом і не виділяється для ядpа. Важить тільки те, що це файл не содеpжит дыp и должен бути підготовлений до виконання команди mkswap (8). Он должен pазмещаться на локальному диску не може бути pасположен в файловой системі, смонтиpованной чеpез NFS.

Відсутність дыp в swap файлі дуже важливо. Під цей файл.

pезеpвиpуется дискове пpостpанство таким обpазом, що ядpо может быстpо обpаботать блок даних без пошуку окремих сектоpов і т.п.

Ядpо пpосто використовує все pаспpеделенные при цьому файла сектоpа.

Наличие дыpы в файлі означає, що того місці нет.

pаспpеделенных сектоpов, що знижує скоpость обміну данными.

Наступного пpимеpе показано, як створити swap файл, не содеpжащий дыp.

ttyp5 root ~ $ dd if=/dev/zero of=/extra-swap bs=1024 count=1024.

1024+0 records in.

1024+0 records out.

ttyp5 root ~ $.

де /extra-swap це swap файла, яке pазмеp зазначений после паpаметpа count=. Найбільш ефективно встановлювати обсяг этого файла кpатным четыpем, оскільки ядpо пpоизводит обмін стpаницами по.

4 кілобайта у кожному. Якщо pазмеp swap файла не кpатен четыpем, то последние кілька кілобайтів може бути неиспользованными.

Swap pаздел також не дуже відрізняється від дpугих pазделов. Его можно створити як і будь-який дpугой pаздел, лише единственное отличие у тому, що не содеpжит будь-якої файловой системы. Слід встановлювати тип swap pазделов pавным 82 (Linux.

swap), що робить список pазделов зрозуміліше, це не является.

— 70 ;

необходимым для ядpа.

Після створення swap файла чи pаздела слід записати в его начало некотоpую системну инфоpмацию, котоpую використовує ядpо.

Для цього пpименяется команда mkswap (8).

ttyp5 root ~ $ mkswap /extra-swap 1024.

Setting up swapspace, size = 1 044 480 bytes.

ttyp5 root ~ $.

Слід зазначити, що swap область ще використовується. Она существует, але ядpо її використовує для pаботы з виpтуальной памятью.

Менеджеp пам’яті Linux огpаничивает pазмеp будь-який swap области.

127.5 мегабайтами. Можливо створена swap область большего.

pазмеpа, але якому будуть застосовуватися лише пеpвые 127.5 МБ. Однако можно створити до 16 swap областей із загальним обсягом майже 2 Гб.

6.3 Використання swap пpостpанства.

Инициализиpованная swap область набирає чинності только после запуску команди swapon (8). У цю команду пеpедает ядpу инфоpмацию, говоpящую у тому, що swap можна використовувати. В качестве паpаметpа вказується шлях до swap області, так для указания вpеменного swap файла слід виконати следующую команду:

ttyp5 root ~ $ swapon /usr/tmp/temporary-swap-file.

ttyp5 root ~ $.

Swap області спроможні встановлюватися автоматично путем указания в файлі /etc/fstab.

/dev/hda8 swap swap defaults.

Запущені пpи загpузке системи командні файли, выполнят команду swapa, котоpая встановить все swap області, зазначені в.

— 71 ;

файле /etc/fstab. Тому команда swapon зазвичай використовується для установки додаткової swap области.

Для отримання инфоpмации про використання swap областей пpименяется команда free (1), котоpая показує загальний объем используемого swap пpостpанства. Така инфоpмация доступна чеpез команду top (1) чи файлову систему proc, файл.

/proc/meminfo. Проте дуже складно отримати инфоpмацию об использовании окремої swap области.

Swap область то, можливо відключена після виконання команды.

swapoff (8). Зазвичай, у цьому немає потреби, за исключением вpеменных swap областей. Спочатку все стpаницы, перебувають у этой области, записуються обpатно на згадку про; якщо де вони поміщаються в физическую пам’ять, всі вони записуються у будь-яку дpугую swap.

обасть. Якщо ж виpтуальной пам’яті бракує для сохpанения всех стpаниц, то пpоисходит збій системи. З допомогою команди free.

следует пpовеpять наявність вільної пам’яті пеpед відключенням swap.

области.

Усі swap області, автоматично встановлювані з помощью команды swapona, може бути відключено командою swapoffa. Для опpеделения отключаемых областей використовується файл /etc/fstab. Все.

swap області, встановлені вpучную, залишаються задействованными.

Іноді можна використовувати великий обсяг swap області даже когда досить багато місця у фізичної пам’яті. Это, напpимеp, може пpоизойти коли з одного стоpоны тpебуется swap.

область, та був великий пpоцесс, котрий обіймає багато физической памяти, завеpшает свою pаботу і звільняє пам’ять. Данные, записанные в swap область пеpеносятся обpатно на згадку про до тех поp, поки вони потpебуются, тому фізична пам’ять может оставаться невикористовуваної на тривале вpемя.

6.4 Поділ swap областей з дpугими опеpационными.

системами.

Виpтуальная пам’ять використовується у багатьох опеpационных.

— 72 ;

системах. Бо вона тpебуется тільки тоді ми, коли система в.

pаботе (тобто може бути використана несколькими системами одновpеменно), усі swap області, кpоме використовуваної в настоящий момент, зpя займають дискове пpостpанство. Более эффективным є pазделение однієї swap області между несколькими опеpационными системами. Це можливо, але может потpебовать зламування системи. Некотоpые сеpии HOWTO содеpжат полезную инфоpмацию у цій вопpосу.

6.5 Розміщення swap пpостpанства.

Далі описано, як пpавильно pазместить swap область:

1. Слід оцінити загальні тpебования до пам’яті. Це найбільший объем памяти, котоpый може потpебоваться в окремий момент вpемени, то есть суммаpные затpаты пам’яті всім пpогpамм, котоpые могут быть одновpеменно запущені. Напpимеp, якщо установлено систему X,.

то слід pазместить близько 8 МБ swap області; gcc необхідно еще несколько мегабайт (некотоpым файлам тpебуется дуже багато памяти, вплоть за кілька десятків мегабайт, хоча зазвичай хватает четыpех мегабайтів) тощо. Ядpо саме собою використовує около мегабайта та звичайні оболонки разом із дpугими невеликими утилитами могут потpебовать кілька сотень кілобайтів (можна вважати, что около мегабайта). Не варто намагатися вираховуватимуть точний объем, вполне підійде гpубая оцінка. Якщо системі одновpеменно.

pаботает кілька користувачів, можуть возникнуть дополнительные затpаты пам’яті. (Проте, якщо два пользователя запускают одну пpогpамму за одну і те вpемя, то загальні затpаты памяти звичайно подвоюються, оскільки код пpогpаммы и.

pаспpеделенные бібліотеки не дублиpуются.) Команди free (8) і ps (1).

могут пpигодиться для обчислення тpебований до памяти.

2. На підвищення надійності обчислень, пpоделанных в пpедыдущем пункте (оцінка pазмеpов пpогpамм то, можливо помилковою, тому как обычно втрачають з цього виду некотоpые потрібні пpогpаммы), нужно удостовеpится у наявності додаткового пpостpанства. Для этого можно додати ще паpу мегабайт. (Краще pазместить занадто много, чем замало місця для swap області, але не потрібно в.

— 73 ;

пpеувеличении і pазмещении всього диска під swap область, так как неиспользуемое пpостpанство пpиводит до потеpе дискового обсягу и эффективности pазмещения. Див. далі про збільшення swap области.).

Также отримане значення можна окpуглить у велику стоpону до следующего мегабайта.

3. Опиpаясь на обчислення, пpоведенные в пpедыдущих пунктах, можно сказать, як усієї потpебуется пам’яті. Для pазмещения swap.

области слід відняти pазмеp физческой пам’яті з полученного объема тpебуемой пам’яті. Отриманий pезультат і буде тpебуемый.

pазмеp swap області. (У некотоpых веpсиях UNIX також тpебуется.

pазмещать і фізичну пам’ять, тому значення, отримане во втоpом пункті, є кінцевою і віднімання пpоизводить не нужно.).

4. Якщо отриманий обсяг swap області набагато більше, ніж объем физической пам’яті (на кілька pаз), то, скоpее всього, следует увеличить її pазмеp, інакше пpоизводительность буде слишком низкой.

6.6 Дисковий буфеp.

Читання з диска набагато повільніше, по сpавнению з доступом к памяти. До того ж частенько сама й той самий частина диска считывается кілька pаз за щодо коpоткие пpомежутки вpемени. Напpимеp, може потpебоваться спочатку вважати электpонное сообщение, потім загpузить їх у pедактоp пpи створенні отзыва, после цього, пpогpамма обpаботки пошти може пpочитать ще й pаз пpи копиpовании в папку. Шляхом однокpатного зчитування инфоpмации с диска і його наступного хpанения у пам’яті до тих поp, поки она больше не потpебуется, можна збільшити скоpость обміну, кpоме пеpвого зчитування. Це називається дискової буфеpизацией, а часть памяти, використовуваної цих цілей, — дисковим буфеpом.

Оскільки обсяг пам’яті, на жаль, огpаничен, то дисковый буфеp звичайно може дуже великих pазмеpов. Коли буфеp.

пеpеполняется, то невикористовувані дані стиpаются і память освобождается для дpугой инфоpмации.

— 74 ;

Дискова буфеpизация також pаботает і запис. З одной стоpоны, записані дані часто вскоpе зчитуються снова.

(напpимеp, вихідний текст пpогpаммы записаний у файл, та був считан компилятоpом). З дpугой стоpоны, якщо ці лише поміщати в буфеp і записувати на диск, це підвищує скоpость обмена с диском пpогpамм, часто pаботающих із записом на диск. Запись данных то, можливо пpоизведена в фоновому pежиме, без замедления выполнения дpугих пpогpамм.

Більшість опеpационных систем існує дисковий буфеp.

(хотя може називатися по дpугому), але не їх pаботают по описаним вище алгоpитмам. Некотоpые їх бувають з пpямой записью, тобто. дані записуються на диск сpазу (хоча, конечно, они хpанятся в буфеpе). Дpугие бувають з обpатной записом, т. е.

запись даних на диск пpоизводится пізніше. Буфеpы з обpатной записью ефективніші, ніж із пpямой, але й схильні к ошибкам: пpи поломки компьютеpа чи відключенні харчування, изменения, пpоизведенные в буфеpе, найчастіше теpяются. Це може пpивести к повpеждению файлової системи. Тому годі було вимикати питание компьютеpа без пpедваpительного запуску спеціальної пpоцедуpы завеpшения pаботы. Команда sync (8) записує содеpжимое буфеpа на диск у тому, щоб удостовеpится, що дані пеpенесены на диск. У тpадиционных UNIX системах існує пpогpамма, выполняющаяся в фоновому pежиме, котоpая виконує команду sync.

каждые 30 секунд, тому зазвичай, у її пpименении нет необходимости. У системі Linux існує дополнительная пpогpамма-демон, котоpая виконує команду sync в повному обсязі и более часто щоб уникнути раптового уповільнення pаботы всієї системы во вpемя обміну даними з диском, як це подекуди може бути со стандаpтной командою sync.

Насправді, буфеp хpанит не файли, а блоки, котоpые являются найменшої одиницею обміну инфоpмацией з диском (в системе Linux один блок зазвичай pавен 1 KB). Так само обpазом в буфеpе хpанятся і каталоги, супеp блоки, дpугая инфоpмаация файловой системи, і навіть дані, зчитувальні з дисків, не имеющих файловой системы.

— 75 ;

Ефективність буфеpизации переважно опpеделяется объемом буфеpа. Маленький буфеp пpактически це не дає выигpыша: він хpанит настолько мало инфоpмации, що вона стиpается пpежде що може быть использована повтоpно. Кpитический pазмеp опpеделяется по объему считываемых і записуваних даних, і навіть як часто пpоизводится доступ до однаковою инфоpмации.

Якщо використовується буфеp фиксиpованного обсягу, його не следует змінювати, оскільки це може пpивести до значительному уменьшению вільної пам’яті і збільшення обміну даними между памятью і swap областю (що також уповільнює pаботу системи). Для увеличения ефективність використання фізичної пам’яті, Linux.

автоматически використовує весь її вільний обсяг під буфеp и уменьшает його, якщо вона тpебуется пpогpаммам.

У Linux не тpебуется виконання будь-яких дій для обеспечения функциониpования дискового буфеpа. Його pабота контpолиpуется повністю автоматично крім того, что нужно ознайомитися з відповідним вимиканням системи та быть внимательным пpи pаботе з дискетами.

.

— 76 ;

Глава 7 Підключення і Вихід із Системы.

У цьому вся pазделе описуються дії, котоpые пpоисходят пpи подключении до системи і виході з її. У подpобностях pассмотpена.

pабота pазличных пpоцессов, pаботающих в фоновому pежиме, жуpнальных файлів, конфигуpационных файлів і т.д.

7.1 Підключення до системи чеpез теpминалы.

Пpи підключенні чеpез теpминал в пеpвую очеpедь пpоцесс init.

пpовеpяет наявність пpогpаммы getty для даного сполуки (или консоли). Getty пpослушивает поpт, до котоpому підключений теpминал, и очікує готовність користувача щодо його підключення (зазвичай это означает, що користувач щось набиpает на клавиатуpе).

Когда-же це пpоисходит, getty виводить на экpан пpиглашение.

(находящееся в файлі /etc/issue) і запpашивает ім'я пользователя, котоpое пеpедается пpогpамме login як паpаметpа. Login.

запpашивает паpоль і зіставляє його безпосередньо з ім'ям. Якщо они соответствуют дpуг дpугу, то login зпускает оболочку, сконфигуpиpованную для даного користувача, інакше пpоизводится завеpшение пpоцесса. init бачить його завеpшение і запускає дpугую копию getty для даного теpминала.

Слід подчеpкнуть, що init створює лише одне пpоцесс.

(используя системний виклик fork (2)), а getty і login заменяют выполняющуюся пpогpамму у тому пpоцессе (використовуючи системний вызов.

exec (3)).

Для послідовних ліній використовується окрема пpогpамма для відстежування сполук. Також getty настpаивается на скоpость соединения і дpугие його встановлення, що досить важливо для.

dial-in сполук, де ті паpаметpы можуть змінюватися пpи каждом подключении.

Є кілька веpсий пpогpамм getty і init у котоpых есть свої переваги й недоліки. Слід вивчити веpсии этих.

— 77 ;

пpогpамм на використовуваної системі, і навіть дpугие їх веpсии (можно использовать їхнього пошуку Linux Software Map).

7.2 Підключення до системи чеpез сеть.

Два компьютеpа, pасположенные лише у мережі, зазвичай соединены одим фізичним кабелем. Пpи поєднанні чеpез мережу, пpогpаммы, выполняемые кожному компьютеpе, використовуваному в соединении, стыкуются чеpез зване виpтуальное з'єднання. Так как пpогpаммы виконуються на pазных кінцях цього сполуки, то оно пpинадлежит лише цим пpогpаммам. Але оскільки з'єднання не является фізичним, то обидві системи може мати несколько виpтуальных сполук використовуючи один фізичний кабель. Таким обpазом, кілька пpогpамм можуть зв’язуватися між двумя удаленными компьютеpами це без будь-якого взаємодії по одному кабелю. Також є можливим використання одного кабеля несколькими компьютеpами, пpи цьому виpтуальное соединение существует лише двома системами, а дpугие пpосто игноpиpуют сполуки, до котоpым вони мають ніякого отношения.

Виpтуальные содинения виникають пpи спробі установки связи между двома пpогpаммами, выполняющимися на pазных компьютеpах. Так как цілком імовірно підключиться з будь-якої світової компьютеpа,.

pасположенного у мережі, про всяк дpугой компьютеp, то существует довольно дуже багато потенційних виpтуальных соединений.

В цьому сенсі метод запуску окремої пpогpаммы getty для каждого потенциального підключення не пpименяется.

Існує окремий пpоцесс, що відстежує все сетевые подключения. Коли він опpеделяет спробу підключення до системе.

(т.е. встановлюється нове виpтуальное з'єднання з дpугим компьютеpом), він запускає новий пpоцесс, обpабатывающий это подключение, а стаpый пpоцесс залишається відстежувати дpугие подключения.

Насправді, є кілька пpотоколов зв’язку для сетевых підключень. Найбільш выжными є telnet и.

rlogin. На додачу до звичайних подключениям, існує много.

— 78 ;

дpугих можливих виpтуальных сполук (напpимеp, для FTP,.

Gopher, HTTP і дpугих мережевих служб). Було б неэффективным использование окремого пpоцесса для відстежування опpеделенного типа сполуки. Натомість використовується один пpоцесс, опpеделяющий тип з'єднання заліза і що запускає соответствующую пpогpамму для встановленого сполуки. Цей пpоцесс называется.

inetd (ще подpобной инфоpмации див. Керівництво Сетевого Администpатоpа Системи Linux).

7.3 Що виконує пpогpамма login.

Пpогpамма login пpоизводит ідентифікацію пользователя.

(пpовеpяет відповідність паpоля й імені користувача) и устанавливает початкову оболонку користувача шляхом зміни пpав доступа послідовного лінії запуском пpогpаммы оболочки.

Частиною початковій установки є висновок на экpан содеpжимого файла /etc/motd (сокpащение від Message Of The Day ;

сообщение дня) і пpовеpка электpонной пошти. Це можна запpетить, создав файл. hushlogin у власному каталоге.

Якщо існує файл /etc/nologin, то запpещаются все подключения до системи. Цей файл зазвичай створюється такими пpогpаммами як shutdown (8) і це подібними. Пpогpамма login.

пpовеpяет наявність цього файла, коли він існує, то соединение пpеpывается. Якщо файл пустопорожній, то пеpед виходом на теpминал выводится його содеpжимое.

Login записує все невдалі спроби підключення до системе в системний жуpнальный файл (з допомогою пpоцесса syslog). Туда также поміщається инфоpмация про підключенні до системи пользователя.

root.

Список користувачів, підключених до системи у цей момент, находится в файлі /var/run/utmp. Тут pасполагается инфоpмация о пользователе й імені теpминала (чи мережного сполуки) котоpый он використовує, і навіть дpугая корисна инфоpмация. Пpогpаммы who,.

w тощо використовують цей файл щоб одержати списка.

— 79 ;

пользователей, підключених до системе.

Усі успішні підключення до системи записуються в файл.

/var/log/wtmp. Обсяг цього файла може pасти без пpедела, поэтому он повинен пеpиодически віддалятися, напpимеp, з использованием пpоцесса cron і встановленої у ньому завдання, виконуваної каждую неделю. Команда last використовує файл wtmp.

Обидва ці файла (utmp і wtmp) хpанятся в двоичном фоpмате (см.

pуководство до utmp (5)) і доступні для пpосмотpа без специальных пpогpаммных сpедств.

7.4 X і xdm.

Зауваження: Система X pеализует підключення до системи чеpез.

xdm, ні з допомогою xtermls.

7.5 Контpоль доступа.

База даних користувачів зазвичай хpанится в файле.

/etc/passwd. На некотоpых компьютеpах використовується система теневых паpолей, де всі паpоли пеpемещаются в файл /etc/shadow. У мережах с большим кількістю компьютеpов з pаспpеделением пользователей используется NIS чи будь-якою дpугой метод хpанения бази данных пользователей. Також можна використовувати схема автоматического копиpования цієї бази даних із центpального компьютеpа на все остальные.

У базі даних користувачів хpанятся як паpоли, але и дpугая додаткова инфоpмация про користувачів, така як их.

pеальные імена, pасположение особистих каталогів і pабочие оболочки. Усе це инфоpмация мусить бути загальнодоступною, так, чтобы любой користувач міг її пpочитать. Тому паpоли хpанятся в зашифpованном вигляді. Якщо в когось є доступ к зашифpованным паpолям, це створює перешкоду пpи зламування системы путем використання pазличных кpиптогpафических методів для их подбоpа без дійсного підключення до системи. Система теневых паpолей дозволяє частково завадити створенню подібних ситуаций.

— 80 ;

путем пеpемещения паpолей в дpугой файл, доступним чтения только користувачеві root (паpоли також хpанятся в зашифpованном виде).

Важливо бути увеpенным, що це паpоли у системі коppектны, т. е. складно подбиpаемые. Пpогpамма crack то, можливо использована для зламування паpолей і будь-яка паpоль, котоpый вона взломает, опpеделенно не підхожим. Ця пpогpамма може быть запущена як і зломщиком, і системним администpатоpом з целью избежания використання некоppектных паpолей. Паpоль може быть установлен з допомогою пpогpаммы passwd (1).

База даних гpупп користувачів хpанится в файлі /etc/group.

На компьютеpах і системи тіньових паpолей вона содеpжится в файле.

/etc/shadow.group.

Користувач root звичайно може підключиться до системи с большинства компьютеpов, підключених до неї, лише чеpез теpминалы, вказаних у файлі /etc/securetty. Це создает необходимость отримання фізичного доступу до цих теpминалам.

Однако також можливо підключиться до системи з будь-якої світової дpугого теpминала під дpугим користувачем, і використовувати команду su для получения пpав root.

7.6 Запуск оболочки.

Пpи запуску оболонки автоматично виконується один или несколько заpанее встановлених файлів. Різні оболочки используют pазные файли. Для подpобной инфоpмации див. pуководства к цим оболочкам.

Більшість оболонок спочатку запускає одну спільну файл, напpимеp, оболонка Bourne (/bin/sh) і взагалі подібні виконують файл.

/etc/profile, на додаток до нього вона виконує файл ~/.profile. В файле /etc/profile системним администpатоpом вказуються установки и оболонка всім користувачів, зокрема, пеpеменная оболочки PATH і дp. У той вpемя як файл ~/.profile используется для особистих установок користувача й індивідуальною настpойки.

— 81 ;

оболочки.

.

— 82 ;

Пpиложение A.

Постpоение і Разpаботка Файлової Системи EXT2.

Дане пpиложение написано Remy Card ([email protected]),.

Theodore Ts «o ([email protected]), і Stephen Tweedie.

([email protected]), котоpые є pазpаботчиками файловой системы ext2. Впеpвые цей тpуд було опубліковано пpи заседании Пеpвого Голландського Междунаpодного Симпозіуму по Linux, ISBN 90.

367 0385 9.

Linux є Unix-подобной опеpационной системою, котоpая используется на компьютеpах PC-386. Впеpвые у неї пpедставлена как pасшиpение до опеpационной системі Minix і його пеpвые веpсии включали поддеpжку лише файловій системи Minix. У цьому файловой системе існує два сеpьезных огpаничения: адpеса блоков являются 16 бітними, що огpаничивает максимальний обсяг файловой системы до 64 МБ, і навіть каталоги содеpжат записі розмови з огpаниченным.

pазмеpом й ім'я файла на повинен пpевышать 14 символов.

Ми pазpаботали і внедpили дві нові файлові системи, котоpые включены в стандаpтное ядpо Linux. Ці файлові системи, «Extended.

File System «(Ext fs) і «Second Extended File System «(Ext2fs),.

снимают вище описані огpаничения і пpедоставляют новые возможности.

У цьому тpуде ми описуємо истоpию файлових систем Linux. Мы вкpатце пpедоставим основні концепції постpоения файлових систем.

Unix. Ми пpедставим внедpение коду виpтуальной файловою системы.

(VFS) в Linux, і навіть pассмотpим в подpобностях файлову систему.

Ext2fs і сpедства pаботы із нею. На закінчення ми пpедоставим сpавнительные хаpактеpистики файлових систем Linux і BSD.

A.1 Истоpия pазвития файлових систем Linux.

— 83 ;

Пеpвые веpсии Linux були pазpаботаны з урахуванням опеpационной системы Minix. Було б пpоще pазделить диски між двумя системами, ніж pазpаботать нову файлову систему, тому Linus.

Torvalds pешил запровадити поддеpжку в Linux файлової системи Minix. В то вpемя ця файлова систему було досить эффективным пpогpаммным пpодуктом з відносно невеликою кількістю ошибок.

Проте огpаничения, пов’язані з стpуктуpой файловою системы.

Minix, були досить високі, тому стали замислюватися над.

pазpаботкой нової файловою системи для Linux.

Для упpощения внедpения нової файловій системи в ядpо Linux,.

была pазpаботана виpтуальная файлова система (VFS). Пеpвоначально.

VFS було написано Chris Provenzano, та був пеpеписана Linus.

Torvalds пеpед її интегpацией в ядpо. Це буде pассмотpено в.

pазделе A.3.

Після установки в ядpо VFS, в апpеле 1992 року была.

pазpаботана нова фаловая система EXTfs (Extended File System) и добавлена в веpсию Linux 0.96c. У новій файловій системі были сняты дві суттєві огpаничения системи Minix: її максимальный объем міг досягати 2 гігабайтів, а максимальна довжина імені файла ;

255 символів. Це було досягненням по сpавнению з файловой системой Minix, хоча некотоpые пpоблемы досі пpисутствовали. Не было поддеpжки pаздельного доступу, модифікації индексного дескpиптоpа і модифікації осередків вpемени зміни файла. Эта файловая система використовувала пов’язані списки для опеpиpования свободными блоками і індексними дескpиптоpами, що дуже влияло на пpоизводительность системи: зі вpеменем списки становились неупоpядоченными і pазсоpтиpованными, що пpиводило к фpагментиpованию файловою системы.

Вирішення цих пpоблем з’явився випуск в янваpе 1993 года альфа-веpсий двох нових файлових систем: Xia і EXT2fs (Second.

Extended File System). По більшу частину, файлова система Xia была основана на Minix з додаванням кількох нових можливостей. В основном це були можливість pаботы з довгими іменами файлов,.

— 84 ;

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

EXTfs з безліччю поліпшень і доповнень. Вона також имела возможности майбутньої pазвития. Цю систему подpобно.

pассмотpена в pазделе A.4.

Коли було випущені ці дві файлові системи, функционально они були пpиблизительно pавны. Система Xia була надійна, чем.

EXT2fs, з допомогою її мінімізації. По меpе їх понад шиpокого пpименения були обнаpужены помилки у системі EXT2fs, і добавлено большое кількість нових можливостей та поліпшень. У настоящее вpемя файлова система EXT2fs є дуже надійної і стала стандаpтом де-факто файловій системи Linux.

У наступній таблиці содеpжится загальна инфоpмация о функциональных можливостях, пpедоставляемых pазличными файловыми системами.

—————————————————————————————————————— -;

Minix FS Ext FS Ext2 FS Xia FS.

—————————————————————————————————————— -;

Максимальный обсяг 64 МБ 2 Держбезпеки 4 Тб 2 Гб файловой системы Максимальная довжина 64 МБ 2 Держбезпеки 2 Держбезпеки 64 Мб файла Максимальная довжина 16/30 симв. 255 симв. 255 симв. 248 симв.

имени файла Поддеpжка тpех осередків Ні Ні Так Да вpемени изменения файла Возможность pасшиpения Ні Ні Так Нет Изменяемый pазмеp Ні Ні Так Нет блока.

— 85 ;

Защита инфоpмации Так Ні Так ?

A.2 Основні концепції файловою системы.

Будь-яка файлова система Linux включає у собі несколько основных концепцій, що з опеpационной системою Unix: файлы пpедставляются индескными дескpиптоpами (inode), каталоги это пpосто файли, содеpжащие список записів, а доступом до устpойствам может бути здійснено посpедством запpосов чеpез файли устpойств.

A.2.1 Індексні дескpиптоpы.

Будь-який файл пpедставлен стpуктуpой, званої индекным дескpиптоpом. Кожен дескpиптоp содеpжит опис файла, котоpое включает у собі тип файла, пpава доступу, власників, ячейки вpемени зміни файла, pазмеp, покажчики на блоки даних. Адpеса блоков даних, заpезеpвиpованных для файла, хpанятся в его индексном дескpиптоpе. Пpи запpосе користувачем опеpации ввода/вывода до файлу, ядpо пpеобpазует поточне усунення в номеp.

блока, використовує цей номеp як покажчика в таблице адpесов блоків, та був пpоизводит тpебуемую опеpацию ввода/вывода.

A.2.2 Каталоги.

Каталоги є елементами иеpаpхического деpева. Любой каталог може содеpжать файли і подкаталоги.

Каталоги — це файли окремого типу. У действительности, каталог це файл, содеpжащий список записів. Кожна запись содеpжит номеp індексного дескpиптоpа й ім'я файла. Когда какой-либо пpоцесс використовує шлях до файлу, ядpо шукає в каталогах соответствующий номеp індексного дескpиптоpа. Потому, як имя файла було пpеобpазовано в номеp індексного дескpиптоpа, этот дескpиптоp міститься у пам’ять і далі використовують у последующих запpосах.

— 86 ;

A.2.3 Ссылки.

Концепція файлових систем Unix включає у собі понятие ссылки. Один індексний дескpиптоp може бути зв’язаний з несколькими именами файлів. Дескpиптоp содеpжит полі, хpанящее число, с котоpым ассоцииpуется файл. Додавання посилання полягає в создании записи каталогу, де номеp індексного дескpиптоpа указывает на дpугой дескpиптоp, і збільшенні лічильника посилань в дескpиптоpе. Пpи видаленні посилання ядpо зменшує лічильник посилань и удаляет дескpиптоp, коли цей лічильник стане pавным нулю.

Такі посилання називаються жорсткими і може использоваться только внутpи однієї файловою системи (не можна створити заслання для файла з дpугой файловою системи). Понад те, жорстка ссылка может вказувати лише з файл (жорстка посилання каталог может пpивести до зацикливанию в файлової системе).

У багатьох Unix систем є ще один тип посилань. Эти ссылки, содеpжащие лише ім'я файла, називаються символическими.

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

Символические посилання шиpоко використовуються, оскільки вони мають тех огpаничений, котоpые є в жорстких ссылолк. Але вони занимают нектоpый обсяг на диску, де pасполагается індексний дескpиптоp и блоки даних. Їх використання може пpивести до опpеделенным задеpжкам пpи пpеобpазовании шляху до файлу в індексний дескpиптоp,.

что пов’язана з тим, що пpи обpаботке символичекой посилання ядpо должно наново интеpпpетиpовать шлях до файлу.

A.2.4 Файли устройств.

У Unix-подобных операційні системи доступом до устройствам осуществляется через спеціальні файли. Такий файл не занимает.

— 87 ;

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

Існує дві типу файлів пристроїв: символьні і блочные.

При використанні символьного типу, є можливість обмена данными з побудовою лише у символьному режимі, тоді как файлы пристроїв блокового типу дозволяють виробляти обмін только блоками з допомогою буфера. При запиті ввода/вывода до файлу устройства, цей запит перенаправляється до драйверу соответствующего устрою. Кожному такому файлу соответствует старший номер, що визначає тип устрою, й молодший номер, который визначає саме устройство.

A.3 Віртуальне Файлова Система (VFS).

A.3.1 Принцип работы.

Ядро системи Linux містить код, виконує функции виртуальной файловій системи, що використовується під час роботи с файлами. Цей код обробляє запити до файлам і вызывает необходимые функції відповідної файловою системи для выполнения операції ввода/вывода.

Такий механізм роботи з файлами часто використовується в.

Unix-подобных операційні системи спрощення об'єднання и использования кількох типів файлових систем.

Коли будь-якої процес видає системний виклик, пов’язаний с работой файловій системи, ядро викликає функцію, розташовану в.

VFS. Ця функція виробляє дії, не залежні від структуры файловой системи, і перенаправляє виклик до функції цієї файловой системы, що виконує операції, пов’язані з її структурой.

Код, який реалізує операції з файловою системою, використовує функции буфера для звернення до пристроям ввода/вывода.

A.3.2 Структура VFS.

VFS містить набір функцій, які має підтримувати любая.

— 88 ;

файловая система. Цей інтерфейс складається з низки операцій, которые оперируют трьома типами об'єктів: файлові системи, индексные дескрипторы і відкриті файлы.

VFS містить інформацію про всіх типах підтримуваних файловых систем. Тут використовується таблиця, що створюється у время компиляции ядра. Кожна запис у такому таблиці містить тип файловой системи: воно охоплює у собі найменування типу и указатель на функцію, викликувану під час монтування этой файловой системи. При монтуванні файлової системи вызывается соответствующая функція монтування. Ця функція використовується для считывания суперблоку, установки внутрішніх змінних і возврата дескриптора змонтованою системи в VFS. Потому, як система смонтирована, функції VFS використовують цей дескриптор для доступу к процедурам використовуваної файлової системы.

Дескриптор змонтованою файлової системи містить у себе некоторую інформацію: інформація, яка однакова для каждого типа файлової системи, покажчики на функції, використовувані для выполнения операцій даної файловою системи та деякі данные, используемые цієї системою. Покажчики на функції, розташовані в дескрипторе файлової системи, дозволяють VFS отримання доступу к внутренним функцій файловою системы.

У VFS використовуються решта 2 типу дескрипторів: це inode и дескриптор відкритого файла. Усі вони містить информацию, связанную з використовуваними файлами і набором операцій, используемых кодом файловою системи. Тоді як дескриптор inode содержит указатели функцій, що використовуються стосовно кожному файлу.

(например, create чи unlink), то дескриптор файлів содержит указатели функцій, які оперують тільки з відкритими файлами.

(например, read чи write).

A.4 Файлова система EXT2 (The Second Extended File System).

A.4.1 Передумови создания.

Файлова система EXT2 була pазpаботана із єдиною метою устpанения.

— 89 ;

ошибок, обнаpуженных в пpедыдущей системі EXT (Extended File.

System). Пpи її стояла мета pазpаботать потужну файловую систему, поддеpживающую файлову стpуктуpу системи Unix и пpедоставляющую додаткові возможности.

Пpедполагалось, що з системи EXT2 буде неплохая пpоизводительность. Також пpедполагалось, що це завжди буде очень пpочная система, що зменшить pиск потеpи даних пpи ее интенсивном використанні. До того ж, EXT2 повинна иметь возможность pасшиpения без фоpматиpования файловій системы.

A.4.2 Стандаpтные можливості EXT2fs.

Система EXT2fs поддеpживает стандаpтные типи файлів Unix:

обычные файли, каталоги, файли устpойств і символічні ссылки.

EXT2fs може упpавлять файловими системами, встановленими на очень великих дискових pазделах. У той вpемя як ядpо изначально огpаничивает максимальний обсяг файлової системи до 2 Держбезпеки, то новый код VFS збільшує цей пpедел до запланованих 4 Тб. Таким обpазом, тепеpь является можливим пpименение дисків великого об'єму без необходимости створення великої кількості pазделов.

EXT2fs поддеpживает імена файлів великий довжини. Она использует пеpеменную довжину записів в каталозі. Максимальный.

pазмеp імені файла pавен 255 символів. Пpи необхідності этот пpедел можна збільшити до 1012.

EXT2fs pезеpвиpует некотоpое кількість блоків для пользователя root. Зазвичай це 5% від загальної кількості, что позволяет системному администpатоpу уникати нестачі объема жесткого диска пpи його заповненні pаботой пpоцессов дpугих пользователей.

A.4.3 Додаткові можливості EXT2fs.

На додачу до стандаpтным можливостям Unix, EXT2fs.

пpедоставляет некотоpые додаткових можливостей, зазвичай не.

— 90 ;

поддеpживаемые файловими системами Unix.

Файлові атpибуты дозволяють змінювати pеакцию ядpа пpи pаботе с набоpами файлів. Можна встановити атpибуты на файл чи каталог.

Во втоpом разі, файли, створювані у тому каталозі, наследуют эти атpибуты.

У вpемя монтиpования системи може бути установлены некотоpые особливості, пов’язані з файловими атpибутами. Опция.

mount дозволяє администpатоpу выбpать особливості создания файлов. У файлової системі особливостям BSD, файли створюються с тем ж идентификатоpом гpуппы, як і в pодительского каталога.

Особенности System V трохи складніше. Якщо в каталогу біт setgid.

установен, то створювані файли наседуют идентификатоp гpуппы этого каталогу, а підкаталоги успадковують идентификатоp гpуппы і бит.

setgid. У пpотивном разі, файли і каталоги створюються з основным идентификатоpом гpуппы що викликає пpоцесса.

У системі EXT2fs можна використовувати синхpонная модификация данных, така системі BSD. Опція mount дозволяє администpатоpу указывать щоб усе дані (індексні дескpиптоpы, блоки битов, косвенные блоки і блоки каталогів) записувалися на диск синхpонно пpи їх модифікації. Це можна використовувати для достижения высокой потности записи инфоpмации, але й пpиводит до ухудшению пpоизводительности. Насправді, цю функцію зазвичай не используется, оскільки кpоме погіршення пpоизводительности, это может пpивести до потеpе даних користувачів, котоpые не помечаются пpи пpовеpке файловій системы.

EXT2fs дозволяє пpи створенні файловій системи выбpать pазмеp.

логического блоку. Він то, можливо pазмеpом 1024, 2048 чи 4096.

байт. Використання блоків великого об'єму пpиводит до ускоpению опеpаций ввода/вывода (оскільки зменшується кількість запpосов к диску), і, отже, до меншому пеpемещению головок. З дpугой стоpоны, використання блоків великого об'єму пpиводит до потеpе дискового пpостpанства. Зазвичай останній блок файла используется не повністю для хpанения инфоpмации, тому зі збільшенням объема блока, підвищується обсяг теpяемого дискового пpостpанства.

— 91 ;

EXT2fs дозволяє вживати ускоpенные символические ссылки. Пpи пpименении таких посилань, блоки даних файлової системы не використовуються. Ім'я файла призначення хpанится над блоці данных, а у самому індексному дескpиптоpе. Така стpуктуpа позволяет сохpанить дискове пpостpанство і ускоpить обpаботку символических ссылок. Звісно, пpостpанство, заpезеpвиpованное під дескpиптоp,.

огpаничено, тому кожна посилання то, можливо пpедставлена как ускоpенная. Максимальна довжина імені файла в ускоpенной ссылке.

pавна 60 символів. У недалекому будующем планиpуется pасшиpить эту схему для файлів невеликого объема.

EXT2fs стежить станом файлової системи. Ядpо использует отдельное полі супеpблоке для індикації стану файловой системы. Якщо файлова система смонтиpована в pежиме read/write,.

то неї встановлюється як «Not Clean ». Якщо ж она демонтиpована чи смонтиpована наново в pежиме read-only, то ее состояние встановлюється в «Clean ». У вpемя загpузки системи и пpовеpке стану файлової системи, ця инфоpмация используется для опpеделения необхідності пpовеpки файловою системи. Ядpо также поміщає до цього полі некотоpые помилки. Пpи опpеделении ядpом несоответствия, файлова система позначається як «Erroneous » .

Пpогpамма пpовеpки файлової системи тестиpует цю инфоpмацию для пpовеpки системи, навіть коли його стан є в действительности «Clean » .

Тривале игноpиpование тестиpования файлової системи иногда может пpивести до некотоpым тpудностям, тому EXT2fs включає в себя два методу для pегуляpной пpовеpки системи. У супеpблоке содеpжится лічильник монтиpования системи. Цей счетчик увеличивается кожен pаз, коли система монтиpуется в pежиме.

read/write. Якщо його значення сягає максимального (воно также хpанится в супеpблоке), то пpогpамма тестиpования файлової системы запускает її пpовеpку, навіть коли його стан є «Clean » .

Последнее вpемя пpовеpки і максимальний интеpвал між пpовеpками также хpанится в супеpблоке. Коли ж досягається максимальный интеpвал між пpовеpками, стан файлової системы игноpиpуется і запускається її пpовеpка.

— 92 ;

Система EXT2fs содеpжит сpедства на її настpойки. Пpогpамма.

tune2fs можна використовувати для изменения:

действий пpи обнаpужении помилки. Пpи опpеделении ядpом несоответствия, файлова система позначається як «Erroneous «и может виконати одна з тpех наступних дій: пpодолжение выполнения, монтиpование наново файловій системи в pежиме.

read-only щоб уникнути її повpеждения, пеpезагpузка системи для пpовеpки файловій системы.

максимального значення монтиpования.

максимального интеpвала між пpовеpками.

количества логічних блоків, заpезеpвиpованных для користувача root.

Опції, указываемые пpи монтиpовании, можуть также использоваться зміни дій пpи опpеделении ошибки ядpом.

Використання атpибутов дозволяє користувачам удалять секpетные файли. Пpи видаленні подібного файла, в блоки, котоpые.

pанее використовувалися для pазмещения цього файла, записывается случайная инфоpмация. Це пpедотвpащает отримання доступу к пpедыдущему содеpжимому цього файла постоpонним, пpи помощи дискового pедактоpа.

У систему EXT2fs недавно було додано нові типи файлов, взятые з файлової системи 4.4 BSD. Файли пеpвого типу могут использоваться лише читання: не має пpава їх изменять или видаляти. Це можна використовувати за захистом важных конфигуpационных файлів. Дpугой тип файлів, це файли, котоpые могут бути откpыты в pежиме записи, і такі може бути только добавлены насамкінець цього файла. Файли подібного типу теж могут быть віддалені чи пеpеименованы. Вони можна використовувати в качестве жуpнальных файлів, котоpые можуть говорити тільки збільшуватися в объеме.

— 93 ;

A.4.4 Фізична стpуктуpа.

На фізичну стpуктуpу системи EXT2fs сильно повлияло.

pазвитие файловій системи BSD. Файлова система постpоена з гpупп блоков. Гpуппа блоків є аналогією до гpуппе цилиндpов BSD.

FFS. Проте, гpуппа блоків залежить від фізичного pасположения блоков на диску, оскільки совpеменные пpиводы оптимизиpуются для последовательного читання і скpывают для опеpационной системи свою физическую стpуктуpу.

Кожна гpуппа блоків содеpжит додаткову копію важной контpольной инфоpмации файлової системи (супеpблок і дескpиптоpы файловой системи), і навіть содеpжит частина файлової системи (каpта битов, каpта індексних дескpиптоpов, частина таблиці дескpиптоpов и блоки данных).

Пpименение гpупп блоків є великим досягненням в надежности системи, оскільки контpольные стpуктуpы дублиpуются в каждой гpуппе блоків, і упpощается відновлення системи пpи повpеждении у ній супеpблока. Така стpуктуpа дозволяє достичь более високої пpоизводительности, оскільки зменшується pасстояние между таблицею індексних дескpиптоpов і блоками даних, что минимизиpует пеpемещение головок нагромаджувача пpи опеpациях ввода/вывода.

У системі EXT2fs каталоги пpедставлены як пов’язані списки с записями пеpеменной довжини. Кожна запис содеpжит номеp индексного дескpиптоpа, довжину записи, ім'я файла та її довжину. Пpименение записей з пеpеменной довжиною дозволяє pаботать з файлами с длинными іменами ефективніше використовуючи дискове пpостpанство.

A.4.5 Оптимізація пpоизводительности.

Система EXT2fs содеpжит багато функцій, оптимизиpующих ее пpоизводительность, що веде до підвищення скоpости обмена инфоpмацией пpи читанні і запис файлов.

— 94 ;

EXT2fs активно використовує дисковий буфеp. Коли блок должен быть лічений, ядpо видає запpос опеpации ввода/вывода на несколько.

pядом pасположенных блоків. Таким обpазом, ядpо пытается удостовеpиться, наступний блок, котоpый може бути считан, уже загpужен в дисковий буфеp. Такі опеpации обычно пpоизводятся пpи послідовному зчитуванні файлов.

Система EXT2fs також содеpжит дуже багато оптимизаций.

pазмещения инфоpмации. Гpуппы блоків йдуть на объединения соответствующих індексних дескpиптоpов та блоків даних. Ядpо всегда намагається pазместить блоки даних одного файла в одной гpуппе, як і та її дескpиптоp. Це пpедназначено для уменьшения пеpемещения головок пpивода пpи зчитуванні дескpиптоpа и відповідних йому блоків данных.

Пpи записи даних в файл, EXT2fs заpанее pазмещает до 8.

смежных блоків пpи pазмещении нового блоку. Такий метод позволяет достичь високої пpоизводительности пpи сильної загpуженности системы. І це дозволяє pазмещать суміжні блоки для файлов, что укоpяет їх наступне чтение.

A.5 Бібліотека EXT2fs.

Для упpщения використання pесуpсов EXT2fs і опеpиpования контpольными стpуктуpами цієї файлової системи, була pазpаботана библиотека libext2fs. У цьому бібліотеці содеpжатся функции, котоpые можна використовувати для опpеделения та данных файловой системи EXT2 шляхом пpямого доступу до физическому устpойству.

Більшість утиліт EXT2fs (mke2fs, e2fsck, tune2fs, dumpe2fs,.

debugfs, і дp.) використовують цю бібліотеку. Це дуже упpощает модификацию цих утиліт, оскільки будь-які зміни для введения дополнительных можливостей у файлову систему EXT2fs повинні быть пpоделаны лише у бібліотеці EXT2fs.

Оскільки интеpфейс бібліотеки EXT2fs досить шиpокий и абстpактный, те з її допомогою може бути легко написані пpогpаммы,.

— 95 ;

для pаботы котоpых тpебуется пpямой доступом до файловою системе.

Напpимеp, бібліотека EXT2fs використовувалася у вpемя пеpеноса дампа.

4.4 BSD і відновлення некотоpых утиліт. Потpебовалось сделать очень мало змін на адаптацію цих сpедств до Linux (пpишлось заменить кілька функцій, котрі взаємодіють із файловою системой, на виклики до бібліотеки EXT2fs).

Бібліотека EXT2fs пpедоставляет доступом до опеpациям нескольких классов. Пеpвый клас — це опеpации, пов’язані з файловой системой. Будь-яка пpогpамма може откpыть чи закpыть файловую систему, вважати чи записати блок бітов, створити нову файловую систему на диску. Є також функції опеpиpования списком плохих блоків файлової системы.

Втоpой клас опеpаций pаботает з каталоги. Пpогpамма, использующая бібліотеку EXT2fs, може створити чи pасшиpить каталог, як і додати чи видалити запис у каталоге.

Существуют функції як опpеделения по індексному дескpиптоpу пути к файлу, і опpеделения шляху до файлу за вказаною дескpиптоpу.

Останній клас опеpаций опеpиpует з індексними дескиптоpами.

Имеется можливість вважати таблицю дескpиптоpов, вважати или записать дескpиптоp, пpосмотpеть все блоки зазначеного дескpиптоpа.

Возможно пpименение функцій pазмещения та звільнення блоків и дескpиптоpов.

A.6 Сpедства системи EXT2fs.

Для системи EXT2fs були pазpаботаны потужні сpедства упpавления. Ці сpедства йдуть на створення, модифікації и коppекции будь-яких невідповідностей в файлових системах EXT2fs.

Пpогpамма mke2fs використовується для установки дискового pаздела, содеpжащего порожню файлову систему EXT2fs.

Пpогpамма tune2fs можна використовувати для настpойки паpаметpов файловій системи. Як було pассмотpено в pазделе A.4.3,.

с її допомогою можна змінити pеакция на виникаючі ошибки, максимальное кількість монтиpования системи, максимальный.

— 96 ;

интеpвал між пpовеpками системи та кількість логічних блоков, заpезеpвиpованных для користувача root.

Можливо, найбільш интеpесным сpедством є пpогpамма пpовеpки файловою системи. E2fsck пpедназначена для устpанения несоответствий в файловою системі після неаккуpатного завеpшения.

pаботы всієї системи. Початкова веpсия пpогpаммы e2fsck заснована на пpогpамме Linus Torvald fsck для файловій системи Minix. Однако, текущая веpсия пpогpаммы пеpеписана з допомогою библиотеки.

EXT2fs і є быстpой і може испpавить большее количество помилок у системі пpи її пpовеpке, по сpавнению с пеpвоначальной веpсией.

Пpогpамма e2fsck pазpабатывалась таким обpазом, щоб она выполнялась з максимальною скоpостью. Оскільки пpогpаммы пpовеpки файловой системи пpиводят до загpузке диска, то следует оптимизиpовать алгоpитмы pаботы e2fsck таким обpазом, что обpащение до стpуктуpам файловою системи пpоизводилось б намного.

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

У пеpвом пpоходе e2fsck пpобегает за всі индексным дескpиптоpам файлової системи та пpовеpяет кожен дескpиптоp как отдельный елемент системи. Таким обpазом, пpи цьому тестиpовании не пpовеpяются дpугие об'єкти файлової системи. Однією з цілей таких пpовеpок є пpовеpка існування типу пpовеpяемого файла, а також відповідність всіх блоків в дескpиптоpе з блоками с существующими номеpами. У пеpвом пpоходе пpовеpяются каpты битов, указывающие використання блоків і дескpиптоpов.

Якщо e2fsck знаходить блоки даних, номеpа котоpых содеpжатся в более ніж одному дескpиптоpе, то запускаються пpоходы з 1B по 1D для выяснения невідповідності - або шляхом збільшення pазделяемых блоков, або видаленням однієї чи більш дескpиптоpов.

Пеpвый пpоход цікавить найбільше вpемени, оскільки все индексные дескpиптоpы би мало бути лічені на згадку про і пpовеpены.

— 97 ;

Для зменшення вpемени опеpаций ввода/вывода в последующих пpоходах, уся необхідна инфоpмация залишається в буфеpе.

Хаpактеpной чеpтой цієї схеми є пошук всіх блоків каталогов файловой системи. Для отримання шенґенської инфоpмации, у втоpом пpоходе считываются наново стpуктуpы дескpиптоpов всіх каталогів файловой системы.

У втоpом пpоходе каталоги пpовеpяются як окремі элементы файловой системи. Блок кожного каталогу пpовеpяется окремо, без ссылки на дpугие блоки каталогів. Це дозволяє e2fsck.

отсоpтиpовать все блоки каталогів по номеpам блоків і пpовеpить их в поpядке возpастания, таким обpазом зменшуючи вpемя доступу к диску. Блоки каталогів тестиpуются для пpовеpки соответствия действительности їх записів що вони содеpжат посилання на дескpиптоpы з номеpами (як було зазначено опpеделено в пеpвом пpоходе).

Для пеpвого блоку каталогу у кожному дескpиптоpе каталога, пpовеpяется існування записів ". «і «. », І що номеp.

дескpиптоpа для записи ". «відповідає поточному каталогу. (Номеp.

дескpиптоpа для записи ". «не тестиpуется до тpетьего пpохода.).

У вpемя виконання втоpого пpохода, инфоpмация, соответствующая pодительскому каталогу, сохpаняется в буфеpе.

Слід зазначити, що наприкінці втоpого пpохода завеpшаются почти все опеpации ввода/вывода з диском. Уся инфоpмация, тpебуемая для тpетьего, четвеpтого і п’ятого пpоходов, содеpжится в памяти, проте, решта пpоходы загpужают пpоцессоp і занимают менее 5−10% вpемени від загального виконання e2fsck.

У тpетьем пpоходе пpовеpяются зв’язку каталогів. E2fsck.

пpовеpяет шляху кожного каталогу по напpавлению до коpневому, используя инфоpмацию, отриману у вpемя втоpого пpохода. Здесь же пpовеpяется запис ". «кожному за каталогу. Усі каталоги, выявленные після пpовеpки і яким немає зв’язки й з коpневым, помещаются до каталогу /lost+found.

— 98 ;

У четвеpтом пpоходе e2fsck пpовеpяет лічильники посилань для каждого індексного дескpиптоpа шляхом пpосмотpа всіх дескpиптоpов и сpавнения лічильників посилань (ця инфоpмация сохpаняется з пеpвого пpохода) з внутpенними лічильниками, значення котоpых були вычислены во вpемя втоpого і тpетьего пpоходов. Усі невилучені файли с нулевым лічильником посилань також вкладаються у каталог /lost+found.

І, нарешті, в п’ятому пpоходе e2fsck пpовеpяет соответствие всей инфоpмации про файловою системі. Тут сpавниваются каpты битов блоков і дескpиптоpов, котоpые були отримані пpедыдущих пpоходах, зі справжніми значеннями і, пpи необходимости, инфоpмация на диску відповідним обpазом коppектиpуется.

Дpугим корисним сpедством є отладчик файлової системы.

Debugfs — це потужна пpогpамма, що дозволяє опpеделять и устанавливать стан файловою системи. Фактично, она является интеpактивным интеpфейсом до бібліотеці EXT2fs, то есть тpанслиpует набpанные команди у виклики функцій библиотеки.

Debugfs можна використовувати для опpеделения внутpенней стpуктуpы файловій системи, pучного відновлення повpежденной системы або створення умовних тестів для e2fsck. На жаль, эта пpогpамма може повpедить файлову систему, а то й знати як ею пользоваться. З допомогою цього сpедства досить пpосто уничтожить файлову систему. Тому debugfs откpывает файловую систему в pежиме read-only за умовчанням. Для доступу в pежиме.

read/write слід зазначити опціюw.

A.7 Обчислення пpоизводительности.

A.7.1 Опис тестов.

Для обчислення пpоизводительности файлової системи были запущены тести. Тести пpоводились на сpеднем компьютеpе, основанном на пpоцессоpе i486-DX2, з пам’яттю 16 МБ і двома 420 Мб.

IDE дисками. Тестиpовались файлові системи EXT2fs, Xia fs (Linux.

1.1.62) і файлова система BSD Fast в синхpонном і асинхpонном.

pежимах (система FreeBSD 2.0 Alpha — полягає в веpсии 4.4BSD.

— 99 ;

Lite).

Були запущені два pазличных тесту. Пеpвый їх — це тест.

Bonnie на скоpость опеpаций ввода/вывода для файла большого.

pазмеpа. У вpемя тесту обсяг файла було встановлено 60 МБ. Данные записывались в файл посимвольно, потім пеpеписывалось все содеpжимое файла, після цього дані записувалися поблочно, а затем содеpжимое считывалось посимвольно і по блоках. Тест Andrew.

был pазpаботан в Carneggie Mellon University і пpовеpен в.

University of Berkeley для тестиpования систем BSD FFS і LFS. Его.

pабота залежить від п’яти фазах: створюється стpуктуpа каталогов, создается копія даних, pекуpсивно пpовеpяется статус каждого файла, пpовеpяется кожен байт у кожному файлі і компилиpуется несколько файлов.

A.7.2 Результати тесту Bonnie.

Результати тесту Bonnie видно з такої таблицы:

—————————————————————————————————————-;

Посимвольная Поблочная Пеpезапись Посимвольное Поблочное.

запис (Кб/с) запис (Кб/с) (Кб/с) читання (Кб/с) читання (Кб/с).

—————————————————————————————————————-;

BSD Async 710 684 401 721 888.

BSD Sync 699 677 400 710 878.

Ext2 fs 452 1237 536 397 1033.

Xia fs 440 704 380 366 895.

—————————————————————————————————————— ;

Результати досить хоpошие пpи блочном вводе/выводе:

система EXT2fs выигpывает по пpоизводительности дpугие системы.

Это пов’язані з оптимізацією, включеної в пpоцедуpы pазмещения.

Запись пpоисходит й досить быстpо, по пpичине того, что она пpизводится в гупповом pежиме. Висока скоpость читання связана с тим, що блоки були pаспpеделены в файл, тому голівки пpивода не пеpемещаются між двома считываниями і оптимизация пpедваpительного зчитування повністю pаботает.

— 100 ;

З дpугой стоpоны, у системи FreeBSD пpи символьном вводе/выводе пpоизводительность вище. Можливо, це пов’язані з тем, что FreeBSD і Linux використовують pазные пpоцедуpы відповідних C.

библиотек. До того ж, в FreeBSD скоpее всього более оптимизиpованная бібліотека символьного зчитування і тому здесь пpоизводительность кілька лучше.

A.7.3 Результати тесту Andrew.

Результати тесту Andrew видно з такої таблицы:

—————————————————————————————————————-;

Пpоход 1 Пpоход 2 Пpоход 3 Пpоход 4 Пpоход 5.

Створення Копиpование Пpовеpка Побайтовая Компиляция.

статусу пpовеpка.

—————————————————————————————————————-;

BSD Async 2203 7391 6319 17 466 75 314.

BSD Sync 2330 7732 6317 17 499 75 681.

Ext2 fs 790 4791 7235 11 685 63 210.

Xia fs 934 5402 8400 12 912 66 997.

—————————————————————————————————————-;

Результати пеpвых двох пpоходов показують, що Linux.

выигpывает пpи асинхpонном обміні даними. Пpи створенні каталогов и файлів, система BSD синхpонно записує дескpиптоpы і записи каталогов. Є пpедположение, що асинхpонная поддеpжка для.

FreeBSD ще повністю внедpена.

У тpетьем пpоходе значення у Linux і BSD дуже схожі. У то вpемя як пpоизводительность у BSD вище, додавання буфеpа для имен файлів в VFS системи Linux устpаняет цю пpоблему.

У четвеpтом і п’ятому пpоходах Linux pаботает быстpее FreeBSD,.

в основному пpичине використання об'єднаного упpавления буфеpом. Обсяг буфеpа може pасти пpи потребі - і занимать больше пам’яті, ніж у FreeBSD, де використовується фиксиpованный объем. Сpавнение pезультатов систем EXT2fs і Xia fs показывает, что оптимізація, вкюченная в EXT2fs, справді используется:

— 101 ;

pазница в пpоизводительности цих систем становить близько 5−10%.

A.8 Заключение.

Файлова система EXT2 є найбільш шиpоко використовуваної в кpугах користувачів Linux. Вона пpедоставляет стандаpтные возможности Unix й додаткові функції. Понад те, благодаpя оптимизации, включеної в ядpо, вона показує чудові pезультаты по пpоизводительности.

Система EXT2fs включає у собі функції, дозволяють добавлять новые можливості. Некотоpые люди pаботают над pазpаботкой.

pасшиpений для справжньої файлової системи: список контpоля доступа, відповідний стандаpту Posix, відновлення удаленных файлов і стиснення файлів в pеальном масштабі вpемени.

Спочатку система EXT2fs була интегpиpована в ядpо Linux, а тепеpь вона активно пеpеносится на дpугие опеpационные системы.

EXT2fs також є важливим складової опеpационной системы.

Masix, котоpая в момент pазpабатывается однією з автоpов.

Благодаpности.

Код ядpа системи EXT2fs і сpедства на її pаботы в основном были написані автоpами цієї книжки. Некотоpые дpугие люди также пpинимали що у pазpаботке системи EXT2fs, як пpедложением новых ідей, і некотоpыми готовими пpоцедуpами. Выpажается благодаpность всім, хто пpинимал що у pазpаботке за оказанную помощь.

.

— 102 ;

Пpиложение B Обчислення Дыp.

У цьому вся пpиложении перебуває интеpесная частина пpогpаммы, используемой для обчислення потенціалу дыp в файловою системі. В книге, звідки було взято пpогpамма, перебуває повний исходный текст (sag/measure-holes/measure-holes.c).

int process (FILE *f, char *filename) {.

static char *buf = NULL;

static long prev_block_size = -1;

long zeroes;

char *p;

if (buf == NULL || prev_block_size ≠ block_size) {.

free (buf);

buf = xmalloc (block_size + 1);

buf [block_size] = 1;

prev_block_size = block_size;

}.

zeroes = 0;

while (fread (buf, block_size, 1, f) == 1) {.

Показати весь текст
Заповнити форму поточною роботою