Представлені розробники операційної системи Redox нещодавно що вони запровадили новий менеджер пакетів пкгар, які будуть використовуватися в системі.
Для тих, хто не знає про Redox який це операційна система що Його основна увага полягає в тому, що в його розробці використовується мова Rust та концепція мікроядра де на рівні ядра забезпечується лише взаємодія між процесами та управлінням ресурсами, а всі інші функціональні можливості передаються бібліотекам, які можуть використовуватися як ядром, так і агентами користувачів.
В рамках проекту, розробляється новий формат пакету, бібліотека з функціями управління пакетами та інструмент командного рядка для створення та вилучення колекції криптографічно перевірених файлів.
Формат pkgar не призначений універсальним і він оптимізований з урахуванням особливостей операційної системи Redox OS.
Менеджер пакетів підтримує перевірку джерела цифровим підписом та перевірку цілісності. Контрольні суми обчислюються за допомогою хеш-функції blake3. Функціональність перевірки pkgar можна отримати без фактичного збереження файлу пакета, маніпулюючи лише заголовком.
Зокрема пакет складається з файлу заголовка (.pkgar_head) та файл даних (.pkgar_data). Правильно підписаний пакет повного дайджесту (.pkgar) можна отримати, просто прикріпивши файл заголовка до файлу даних.
Файл заголовка містить окремі контрольні суми заголовка та параметризованих структур файлу даних, а також цифровий підпис для перевірки пакета.
Файл даних включає послідовний список усіх наданих файлів і каталогів в упаковці. Перед кожним елементом даних існує структура з метаданими, яка включає контрольну суму самих даних, розмір, права доступу, відносний шлях до файлу для встановлення та зміщення параметрів наступного елемента даних.
Якщо в процесі оновлення окремі файли не змінилися, а контрольна сума відповідає, їх пропускають та не завантажують.
Цілісність джерела можна перевірити, отримавши лише файл заголовка та правильність вибраного файлу даних, завантаживши лише структури з параметрами цього файлу та переконавшись, що вони відповідають контрольній сумі, перевіреній у файлі заголовка.
Безпосередньо самі дані можна перевірити після їх завантаження, використовуючи контрольну суму структури з параметрами, що передують даним.
Спочатку пакети передбачають можливість повторюваної збірки, що означає, що створення пакета для певного каталогу завжди призводить до формування ідентичного пакета. Після встановлення в системі зберігаються лише метадані, чого достатньо для відновлення пакету з встановлених даних (склад метаданих, контрольні суми, шляхи та права доступу доступні в метаданих).
Основні цілі pkgar:
- Атомний: оновлення застосовувати, коли це можливо автоматично.
- Економія трафіку: дані передаються по мережі лише при зміні хешу (під час оновлення завантажуються лише оновлені файли).
- Задіяні високопродуктивні швидкі криптографічні алгоритми (blake3 підтримує розпаралелювання обробки даних при обчисленні хешу). Якщо дані сховища раніше не були кешовані, для завантажених даних під час завантаження можна розрахувати хеш.
- Мінімалізм: На відміну від інших форматів, pkgar включає лише метадані, необхідні для вилучення пакету.
- Незалежність каталогу встановлення: Будь-який користувач може встановити пакет у будь-який каталог (користувач повинен мати право писати у вибраний каталог).
- Безпека: пакети завжди криптографічно перевіряються, а перевірка проводиться до того, як виконуються фактичні пакетні операції (спочатку завантажується заголовок, і якщо цифровий підпис правильний, дані передаються у тимчасовий каталог, який після перевірки переміщується до місця призначення каталогу).