Лекція - архіватори та архіви

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

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

Програма, створюючи архів, обробляє як текстові файли.

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

Організація текстового файлу

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

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

Переваги текстового файлу

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

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

Недоліки текстового файлу

Недоліком текстових файлів є їх низька інформаційна ентропія [джерело не вказано 135 днів] - ці файли займають більше місця, ніж мінімально необхідно.

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

Двійковий (бінарний) файл - в широкому сенсі: послідовність довільних байтів. Назва пов'язана з тим, що байти складаються з біт, тобто двійкових (англ. Binary) цифр.

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

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

1. За ступенем стиснення

2. По швидкості стиснення

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

Не потрібно плутати архіватор з архівом файлів.

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

Схема спільного використання архіватора і компресора

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

Файл, що містить рівно один стислий файл. Часто зустрічається в UNIX-подібних ОС: compress, gzip, bzip2, freeze, lzma. Використовуються самостійно або разом з програмами типу tar для отримання архівів, зазвичай мають розширення типу «.tar.gz» або «.tar.bz2».

Деякі архіватори та формати архівів об'єднують ці дві функції в довільному порядку - наприклад, 7z, ARJ, ZIP. У таких випадках, якщо стиск проводиться після об'єднання, архів називається «безперервним». Це дозволяє зменшити розмір отриманого архіву, але ускладнює відновлення при пошкодженні даних.

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

До архіву може бути приєднаний виконуваний код, який при виконанні розпаковує архів. Код може бути повнофункціональної програмою розпакування цього формату архівів. Такий архів називається Саморозпаковується (англ. Self-extracting, іноді скорочено «SFX»).

Дані в архіві можуть бути зашифровані будь-яким способом. При використанні універсальних архіваторів зазвичай використовується просто шифрування з паролем. При послідовному використанні tar, gzip і GnuPG результуючий файл іноді має розширення .tar.gz.gpg.

Архів майже завжди містить метадані. наприклад:

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

2. Ідентифікатори власників, груп, і т. П. Файлів, і їх прав

3. Розміри файлів

4. Дати зміни, створення файлів

5. Контрольні суми файлів для перевірки правильності розпакування

6. Розмір і контрольні суми архіву

7. Надлишкові дані для відновлення даних при пошкодженні

8. Цифровий підпис творця архіву.