3.2 Використання loop-пристроїв та псевдопристроїв (/dev/zero та /dev/null). Розглянути основні поняття. Призначення псевдо пристроїв
Псевдопристрій /dev/null -- спеціальний файл в системах класу UNIX, що є «порожнім пристроєм». Запис в нього відбувається успішно, незалежно від обєму «записаної» інформації. Читання з /dev/null еквівалентне прочитуванню кінця файлу (EOF).
У DOS є псевдофайл NUL з аналогічними властивостями.
Псевдопристрій /dev/null вважається символьним. Він створюється за допомогою утиліти mknod.
Приклади використання:
1) Найчастіше перенаправлення в /dev/null використовується для придушення стандартного виводу (вихідного потоку) і/або виводу повідомлень про помилки (потоку діагностики) програми їх перенаправленням в /dev/null, таке придушення найчастіше використовується в командних сценаріях (shell scripts) для придушення небажаного виводу на консоль.
2) Запуск програми reader, чекаючу, як обовязковий параметр імя файлу введення, якого немає:
reader /dev/null
3) Перевірка доступності всіх файлів в каталозі foo і його підкаталогах для читання:
find foo/ -type f -readable > /dev/null
Псевдопристрій /dev/zero -- спеціальний файл в UNIX-подібних системах, що є джерелом нульових байтів (ASCII NUL, 0x00). При читанні цього файлу ніколи не досягається його кінець.
Будь-які дані, записані в /dev/zero, будуть проігноровані, а сам запис завершиться успішно -- точно так, як і при записі в /dev/null (хоча останнє набагато частіше використовується як «чорна діра», ніж /dev/zero).
Пристрій /dev/zero вважається символьним. У Linux він створюється за допомогою утиліти mknod.
Приклади використання:
1) Найчастіше /dev/zero використовується для створення файлу заданого розміру (наприклад, для розміщення там образу файлової системи).
Наприклад, для створення файлу image.iso розміром 100 кБ можна виконати команду:
dd if=/dev/zero of=image.iso bs=1024 count=100
2) /dev/zero можна використовувати як джерело інформації для перезапису пристроїв і файлів (наприклад, для безповоротного видалення всіх даних з жорсткого диска).
3.3 Використання loop-пристроїв для створення файлової системи у файлі
Створити файлову систему ext3 у файлі /root/MyFs_Прізвище_студента. Розмір файлу має становити (Номер_за_журналом+500) МБ. Змонтувати отриману файлову систему у каталог /mnt/Прізвище_студента. Для цього можна використати команди: dd, mkfs, mnt.
3.4 Користуючись командою df, отримати інформацію про змонтовані файлові системи. Навести результати із коментарями. Порівняти із результатами п. 3.1
Рисунок 3.5 - Перегляд змонтованих файлових систем
Звідси бачимо, що створена і змонтована файлова система розміщена у розділі /dev/sda6 розміром 516Мб. Порівнюючи з пунктом 3.1, раніше в цьому розділі цієї файлової системи не було.
Розділ 4 Робота з каталогом спеціального призначення /proc
4.1 Переглянути розділи жорсткого диску (/proc/partitions) та інформацію про файлові системи, які підтримуються ядром (/proc/filesystems)
При перегляді каталогу /proc/partitions отримав наступний список (див. таблицю 4.1):
Таблиця 4.1 - перегляд каталогу /proc/partitions:
Major |
Minor |
#blocks |
Name |
|
8 |
0 |
3944448 |
hda |
|
8 |
1 |
3710983 |
hda1 |
|
8 |
2 |
1 |
hda2 |
|
8 |
5 |
232911 |
hda5 |
|
8 |
16 |
117220824 |
hdb |
|
8 |
17 |
20683656 |
hdb1 |
|
8 |
18 |
1 |
hdb2 |
|
8 |
21 |
43046136 |
hdb5 |
|
8 |
22 |
43062201 |
hdb6 |
|
8 |
23 |
770048 |
hdb7 |
|
8 |
24 |
5244928 |
hdb8 |
|
8 |
25 |
4408320 |
hdb9 |
В цьому списку містяться старші (major) і молодші (minor) номера кожного розділу, а також кількість блоків (розмір розділу в кілобайтах) і імя розділу.
Щоб дізнатися про файлові системи, потрібно знайти файл з імям «filesystems», який знаходиться у каталозі спеціального призначення /proc. В ньому знаходиться список файлових систем, підтримка яких вбудована в ядро. Зазвичай використовується програмою mount для пошуку потрібної файлової системи, якщо вона не вказана при монтуванні.
При перегляді цього файлу дізнався які файлові системи підтримуються Linux XP Desktop 2006 (див. таблицю 4.2):
Таблиця 4.2 - файлові системи, які підтримуються Linux XP Desktop 2006:
Змонтова файлова система |
Файлова система |
|
nodev |
sysfs |
|
nodev |
rootfs |
|
nodev |
proc |
|
nodev |
tmpfs |
|
nodev |
devtmpfs |
|
nodev |
securityfs |
|
nodev |
sockfs |
|
nodev |
usbfs |
|
nodev |
pipefs |
|
nodev |
anon_inodefs |
|
nodev |
devpts |
|
ext3 |
||
ext2 |
||
nodev |
ramfs |
|
nodev |
hugetlbfs |
|
iso9660 |
||
nodev |
mqueue |
|
ext4 |
||
nodev |
fuse |
|
fuseblk |
||
vfat |
Перша колонка показує, яка файлова система змонтована на блоковий пристрій. У моєму випадку, є розділи, налаштовані із змонтованими ext2, ext3, ext4, iso9660, fuseblk та vfat.
Тепер докладніше про файлові системи:
Sysfs -- віртуальна файлова система в операційній системі Linux. Експортує в простір користувача інформацію ядра Linux, про присутні в системі пристрої і драйвери. Вперше зявилася в ядрі версії 2.6. Необхідність створення була викликана застарілою системою роботи ядра з пристроями.
Rootfs -- коренева файлова система. Є основним компонентом Linux. Коренева файлова система містить все необхідне для роботи повноцінної операційної системи Linux. Вона містить всі додатки, налаштування, пристрої, дані. Без кореневої файлової системи запуск операційної системи Linux неможливий.
Proc -- файлова система, яка використовується в операційній системі Linux.
Це віртуальна файлова система, тому файли, які знаходяться в цьому каталозі, насправді не займають місця на жорсткому диску. Це дуже зручний спосіб для отримання інформації про систему, особливо через те, що більшість файлів в цьому каталозі зручно читати користувачу.
Tmpfs -- тимчасове файлове сховище в багатьох Linux ОС. Призначене для монтування файлової системи, але розміщується в ОЗУ замість ПЗУ.
Securityfs -- файлова система, з її допомогою можна одержати інформацію про завантажені профілі.
Usbfs - файлова система для забезпечення роботи USB-пристроїв. Це динамічна віртуальна файлова система, що є частиною файлової системи /proc, розташована в каталозі /proc/bus/usb.
Devpts - це віртуальна файлова система, що забезпечує доступ до терміналів pseudo (PTY).
Third Extended File System (третя версія розширеної файлової системи), скорочено Еxt3 -- журналюєма файлова система, яка використовується в операційних системах на ядрі Linux. Є файловою системою за умовчанням в багатьох дистрибутивах. Заснована на файловій системі ext2.
Основна відмінність від ext2 полягає у тому, що ext3 журналюєма в ній передбачений запис деяких даних, що дозволяють відновити файлову систему при збоях в роботі компютера.
Стандартом передбачено три режими журналювання:
1) writeback: у журнал записуються тільки метадані файлової системи, тобто інформація про її зміну. Не може гарантувати цілісності даних, але вже помітно скорочує час перевірки в порівнянні з ext2;
2) ordered: те ж, що і writeback, але запис даних у файл відбувається гарантовано до запису інформації про зміну цього файлу. Не на багато знижує продуктивність, але також не може гарантувати цілісності даних;
3) journal: повне журналювання як метаданих файлової системи, так і призначених для користувача даних. Найповільніший, але і найбезпечніший режим. Може гарантувати цілісність даних при зберіганні журналу на окремому розділі (а краще -- на окремому жорсткому диску).
Указується режим журналювання в рядку параметрів для програми mount, наприклад:
mount /dev/hda6 /mnt/disc -t ext3 -o data=<режим>
Еxt2 -- файлова система ядра Linux. По швидкості і продуктивності роботи вона може служити еталоном в тестах продуктивності файлових систем. Головний недолік ext2 у тому, що вона не є журналюємою файловою системою. Він був усунений у файловій системі ext3 -- наступної версії Extended File System, повністю сумісної з ext2.
Файлова система ext2 як і раніше використовується на флеш-картах і твердих накопичувачах (SSD), оскільки відсутність журналювання файлової системи є перевагою при роботі з накопичувачами, що мають обмежену кількість циклів запису.
Ramfs -- cистема використовувана для створення RAM-диска в процесі завантаження операційних систем сімейства BSD і на ядрі Linux.
Hugetlbfs - це псевдофайлова система, резервується на вимогу системного адміністратора за допомогою запису кількості сторінок, які необхідно зарезервувати.
ISO 9660 -- випущений Міждународною організацією по стандартизації стандарт, що описує файлову систему для дисків CD-ROM. Метою стандарту є забезпечити сумісність носіїв під різними операційними системами, такими як Unix, Mac OS, Windows.
Розширення стандарту, назване Joliet, додає підтримку довгих імен файлів без ASCII символів в іменах.
Еxt4 -- файлова система, яка використовується ядром Linux. Заснована на файловій системі ext3.
Основною особливістю стало збільшення максимального обєму одного розділу диска до 1 эксабайта (260 байт) при розмірі блоку 4Kb, і збільшення розміру одного файлу до 16 терабайт. Крім того, в ext4 представлений механізм просторового (extent) запису файлів (нова інформація додається в кінець наперед виділеної по сусідству області файлу), зменшуючий фрагментацію і підвищуючий продуктивність.
FUSE (Файлова система в призначеному для користувача просторі) -- це модуль для ядер Unix-подібних операційних систем. Fuse дозволяє користувачам створювати їх власні файлові системи без необхідності переписувати код ядра. Це досягається за рахунок запуску коду файлової системи в просторі користувача, тоді як модуль FUSE тільки надає «міст» для актуальних інтерфейсів ядра. FUSE була офіційно включена в головне дерево коду Linux у версії 2.6.14.
VFAT -- це розширення FAT. У VFAT була додана підтримка довгих (до 255 символів) імен файлів в кодуванні UTF-16LE.
4.2 Проаналізувати вміст файлу /proc/loadavg
/proc/loadavg: файл, що показує середнє завантаження процесора. При його перегляді отримав значення:
0.40 0.55 0.26 3/245 8158
Його інформація включає використовування центрального процесору в останню хвилину, останні пять хвилин і останні 10 хвилин, а також число процесів, що працюють в даний момент.
4.3 Отримати список драйверів пристроїв, вбудованих в ядро (/proc/devices)
Отримав наступний список:
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound/mixer
14 sound/dsp
14 sound/audio
14 sound/mixer2
14 sound/midi2
14 sound/dmmidi2
21 sg
29 fb
99 ppdev
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
202 cpu/msr
226 drm
252 hidraw
253 bsg
254 rtc
Block devices:
2 fd
259 blkext
7 loop
8 sd
9 md
11 sr
67 sd
134 sd
135 sd
253 device-mapper
В цьому списку показуються всі вбудовані і завантажені символьні (Character devices) і блокові (Block devices) пристрої. Це спеціальні файли, які не містять даних, а просто служать точками, через які можна звернутися до драйвера відповідного пристрою. Основна їх відмінність у тому, що для блокових пристроїв операції вводу виводу здійснюються не окремими байтами (символами), а блоками фіксованого розміру.
4.4 Отримати інформацію про процесор (/proc/cpuinfo)
За допомогою цього файлу я дізнався про процесор наступне (див. таблицю 4.3):
Таблиця 4.3 - інформація про процесор: