Праект Redox OS прадставіў пакетны мэнэджар pkgar, напісаны на мове Rust

Распрацоўнікі аперацыйнай сістэмы Аднаўленне, напісанай з выкарыстаннем мовы Rust і канцэпцыі мікраядра, прадставілі новы пакетны менеджэр пкгар. У рамках праекта развіваецца новы фармат пакетаў, бібліятэка з функцыямі кіравання пакетамі і інструментарый каманднага радка для стварэння і выманні крыптаграфічна праверанай калекцыі файлаў. Код pkgar напісаны на мове Rust і распаўсюджваецца пад ліцэнзіяй MIT.

Фармат pkgar не прэтэндуе на ўніверсальнасць і аптымізаваны з улікам спецыфікі аперацыйнай сістэмы Redox OS. Пакетным мэнэджэрам падтрымліваецца верыфікацыя крыніцы па лічбавым подпісе і кантроль цэласнасці. Кантрольныя сумы разлічваюцца пры дапамозе хэш-функцыі Блэйк3. Звязаная з верыфікацыяй функцыянальнасць pkgar можа быць даступная без фактычнага захавання архіва пакета, маніпулюючы толькі загалоўкавай часткай. У прыватнасці, пакет утвораць загалоўкавых файлаў (.pkgar_head) і файл з дадзенымі (.pkgar_data). Карэктна падпісаны поўны зводны пакет (.pkgar) можа быць атрыманы шляхам простага далучэння файла з загалоўкам да файла з дадзенымі ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Файл з загалоўкам утрымоўвае асобныя кантрольныя сумы для загалоўка і структур з параметрамі з файла дадзеных, а таксама лічбавы подпіс для праверкі пакета. Файл c дадзенымі ўключае паслядоўны пералік усіх файлаў і каталогаў, якія пастаўляюцца ў пакеце. Перад кожным элементам дадзеных прыводзіцца структура з метададзенымі, якія ўключаюць кантрольную суму для саміх дадзеных, памер, правы доступу, адносны шлях усталёўванага файла і зрушэнне параметраў наступнага элемента дадзеных. Калі падчас абнаўленняў асобныя файлы не змяніліся і кантрольная сума супадае, то яны прапускаюцца і не загружаюцца.

Праверыць цэласнасць крыніцы можна атрымаўшы толькі загалоўкавых файлаў, а карэктнасць абранага файла з дадзенымі - загрузіўшы толькі структуры з параметрамі гэтага файла і пераканаўшыся ў іх адпаведнасці кантрольнай суме, заверанай у загалоўкавым файле. Непасрэдна самі дадзеныя можна праверыць пасля іх загрузкі, выкарыстоўваючы кантрольную суму са структуры з параметрамі, якая ідзе перад дадзенымі.

Пакеты першапачаткова маюць на ўвазе магчымасць паўтаранай зборкі, якая прадугледжвае тое, што стварэнне пакета для вызначанага каталога заўсёды прыводзіць да фармавання ідэнтычнага пакета. Пасля ўсталёўкі ў сістэме захоўваюцца толькі метададзеныя, якіх досыць для рэканструявання пакета з усталяваных дадзеных (склад пакета, кантрольныя сумы, шляхі і правы доступу маюцца ў метададзеных).

Асноўныя мэты pkgar:

  • Атамарнасць - абнаўленні ўжываюцца па магчымасці аўтаматычна.
  • Эканомія трафіку - дадзеныя перадаюцца па сетцы толькі пры змене хэша (пры абнаўленні загружаюцца толькі якія змяніліся файлы).
  • Высокая прадукцыйнасць, задзейнічаны хуткія крыптаграфічныя алгарытмы (blake3 падтрымлівае распаралельванне апрацоўкі дадзеных пры вылічэнні хеша). Калі дадзеныя з рэпазітара не былі раней пракэшаваныя хэш для загружаных дадзеных можа быць вылічаны падчас загрузкі.
  • Мінімалістычнасць - у адрозненне ад іншых фарматаў, pkgar уключае толькі метададзеныя, неабходныя для вымання пакета.
  • Незалежнасць ад каталога ўсталёўкі - пакет можа быць усталяваны ў любы каталог, любым карыстачом (карыстальнік павінен мець права на запіс у абраны каталог).
  • Бяспека - пакеты заўсёды крыптаграфічна верыфікуюцца, а верыфікацыя выконваецца да здзяйснення фактычных аперацый з пакетам (спачатку загружаецца загаловак і калі лічбавы подпіс дакладны, у часовы каталог загружаюцца дадзеныя, якія перамяшчаюцца ў мэтавы каталог пасля верыфікацыі).

Крыніца: opennet.ru

Дадаць каментар