Символьне посилання

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

Символьні посилання вже були присутні до 1978 року в операційних системах міні-комп'ютерів від DEC і RDOS Data General. Сьогодні вони підтримуються стандартом операційної системи POSIX[1], більшістю Unix-подібних операційних систем, таких як FreeBSD, Linux і macOS. Обмежена підтримка також існує в операційних системах Windows, таких як Windows Vista, Windows 7 і до певної міри в Windows 2000 і Windows XP у вигляді файлів швидкого доступу.

ОглядРедагувати

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

Символьні посилання відрізняються від жорстких посилань. Жорсткі посилання[2] не можуть вказувати на файли іншої файлової систем, оскільки зберігають inode номер у конкретній файловій системі, тоді як символьні посилання можуть вказувати на будь-який файл або каталог, навіть неіснуючий.

POSIX і Unix-подібні операційні системиРедагувати

У POSIX-сумісних операційних системах символьні посилання створюються за допомогою системного виклику символьного посилання. Команда оболонки ln[3] зазвичай використовує системний виклик link, який створює жорстке посилання. Коли вказано ln -s, замість нього використовується системний виклик symlink(), створюючи символьне посилання. Наступна команда створює символьне посилання в інтерфейсі командного рядка(shell):

 ln -s target_path link_path

target_path — це відносний або абсолютний шлях, на який має вказувати символьне посилання.

Зберігання символьних посиланьРедагувати

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

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

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

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

Псевдоніми Mac OSРедагувати

У Mac OS[4] програми або користувачі також можуть використовувати псевдоніми, які мають додаткову функцію слідування за target. Це не слід плутати з псевдонімом команди оболонки.

Microsoft WindowsРедагувати

Символьне посилання NTFSРедагувати

NTFS[5] представила підтримку символьних посилань для будь-якого типу файлів. Він був включений у Windows XP, але був включений за замовчуванням лише для програм у режимі ядра; Windows Vista та новіші версії Windows також увімкнули підтримку символьних посилань на програми режиму користувача та надали утиліту командного рядка mklink для їх створення. Щоб увімкнути підтримку символьних посилань NTFS у Windows XP, необхідні драйвери сторонніх розробників. На відміну від точок з'єднання, символьне посилання може також вказувати на файл або мережевий шлях віддаленого блоку повідомлень сервера (SMB). Крім того, реалізація символьного посилання NTFS забезпечує повну підтримку міжфайлових посилань. Однак функціональність, що забезпечує міжхостові символічні посилання, вимагає, щоб віддалена система також підтримувала їх.

Точки з'єднання NTFSРедагувати

Версія NTFS для Windows 2000 представила reparse point, що дозволило, використовувати точки підключення томів і точки з'єднання. Точки з'єднання призначені лише для каталогів, і, крім того, лише для локальних каталогів; точки з'єднання з віддаленими спільними ресурсами не підтримуються. Комплекти ресурсів Windows 2000 і XP включають програму під назвою linkd для створення точок з'єднання.

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

ЯрликиРедагувати

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

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

Застарілі системиРедагувати

AmigaРедагувати

Команда створення символьних посилань — makelink, яка також використовується для жорстких посилань. Всередині dos.library повертає код помилки, який вказує, що target є м'яким посиланням, якщо ви намагаєтеся виконати з нею дії, які є законними лише для файлу, а програми, які хочуть перейти за символьним посиланням, повинні явно викликати перейдіть за посиланням і повторіть операцію. Оболонка AmigaDOS автоматично переходитиме за посиланнями.[6]

OS/2Редагувати

В операційній системі OS/2 символьні посилання дещо нагадують тіні в графічній оболонці Workplace. Однак тіні, завдяки повністю об'єктно-орієнтованій системній об'єктній моделі, є значно потужнішими та надійнішими, ніж просте посилання. Наприклад, тіні не втрачають своїх можливостей при перейменуванні або при переміщенні об'єкта або суб'єкта посилання.[7]

Змінні символічні посиланняРедагувати

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

ПриміткиРедагувати

Див. такожРедагувати

ПосиланняРедагувати