що таке індексний дескриптор?
Ми знаємо, що файл - це область даних на диску, яку можна знайти на ім'я. Однак в операційних системах на базі ядра Linux вся інформація про фото прив'язана не до імені, а так званому індексному дескриптору. У кожного файлу є свій унікальний (єдиний і неповторний) індексний дескриптор, який містить відомості про фото: в яких блоках диска зберігається вміст файлу, розмір файлу, час його створення і ін.
Пронумеровані індексні дескриптори файлів містяться в спеціальній таблиці. Кожен логічний і фізичний диск має власну таблицю індексних дескрипторів.
Саме номер індексного дескриптора є істинним ім'ям файлу в системі.
Які посилання бувають жорсткими?
Оскільки індексні дескриптори є номери, а файлів в операційній системі зазвичай дуже багато, то шукати файл за номером його дескриптора дуже незручно: людині працювати з осмисленими словами куди зручніше, ніж з величезними числами. Тому будь-якого файлу в системі зазвичай дається осмислене ім'я (зазвичай словесне), яке не містить інформації про фото, а лише вказує (посилається) на його дескриптор.
Файл, що посилається на його індексний дескриптор, називається жорсткою посиланням. Механізм жорстких посилань - це основний спосіб звертатися до файлу по імені в операційних системах, заснованих на ядрі Linux.
скільки імен у файлу?
Файл в системі ідентифікує (визначає) номер його індексного дескриптора, а ім'я файлу містить лише покажчик на нього. Природно, що таких покажчиків можна створити безліч, хоча всі вони будуть направляти на один об'єкт. Для образного порівняння, можна уявити придорожні покажчики на якусь бензоколонку: їх багато, вони знаходяться в різних місцях траси, але вказують на одну й ту ж саму точку. Іншими словами, у файлу в Linux може бути кілька імен.
Але чому буває недостатньо одного імені файлу? Вся справа в зручності доступу (а також надання доступу).
Наприклад, людина працює над проектом і постійно звертається до файлу, місце розташування якого передбачено у вкладеному каталозі. Щоб відкрити цей файл у графічному режимі, доведеться принаймні відкрити послідовно два каталогу. Але куди зручніше буде помістити ще одне ім'я файлу на Desktop (Робочий стіл).
Або припустимо таку ситуацію. Адміністратор системи (людина, керуючий операційною системою) в одному каталозі створив файл, доступ до якого має бути забезпечений і пересічному користувачеві. Однак відкривати цей каталог користувач не має права, а перемістити файл в каталог користувача теж не можна, тому що він необхідний і в даному каталозі. У такій ситуації єдиним виходом буде створити ще одну жорстку посилання на файл і помістити її в каталог користувача.
у чому "м'якість" м'яких посилань?
Незважаючи на всю красу жорстких посилань, у них є і обмеження: їх можна створювати тільки на файли, але не на каталоги. Також жорстке посилання можна створити з одного диска на інший. Останнє означає, що не можна створити жорстке посилання на файл знаходиться, наприклад, на знімному носії (дискети, флеш-пам'ять, CD-R та ін.) Або іншому розділі жорсткого диска.
При копіюванні файлу створюється новий файл, дані якого записуються в вільне місце на диску, і який має власний індексний дескриптор. У разі ж створення жорсткої посилання, файл як і раніше залишається в однині, з'являється лише додатковий покажчик на нього.
Практично це має наступні наслідки. При внесенні змін у файл, звернення до якого було під одним ім'ям, ці зміни виявляться і тоді, коли звернення до файлу відбудеться під іншим ім'ям. При створенні копії файлу і наступних змінах даних цієї копії, дані первинного файлу не зміняться.
У разі м'яких посилань, хоч і створюється новий файл (з власним індексним дескриптором), але він не містить даних файлу-оригіналу, а лише посилається на жорстке посилання.