Redox OS жобасы Rust тілінде жазылған pkgar пакет менеджерін ұсынды

Операциялық жүйені әзірлеушілер Редокс, жазылған Rust тілі мен микроядро тұжырымдамасын қолдану, ұсынылды жаңа пакет менеджері пкгар. Жоба жаңа бума пішімін, буманы басқару кітапханасын және файлдардың криптографиялық тексерілген жинағын жасау және шығарып алу үшін пәрмен жолы құралдар жинағын әзірлеуде. Pkgar коды Rust және тілінде жазылған таралады MIT лицензиясы бойынша.

Pkgar пішімі әмбебап болып көрінбейді және Redox OS операциялық жүйесінің ерекшеліктерін ескере отырып оңтайландырылған. Пакет менеджері сандық қолтаңбаны және тұтастықты басқаруды пайдалана отырып, көзді тексеруді қолдайды. Бақылау сомасы хэш функциясы арқылы есептеледі Blake3. pkgar тексеруге қатысты функционалдығын пакет мұрағатын нақты сақтамай-ақ, тек тақырып бөлігін өңдеу арқылы қол жеткізуге болады. Атап айтқанда, бума тақырып файлынан (.pkgar_head) және деректер файлынан (.pkgar_data) тұрады. Дұрыс қол қойылған толық жиынтық буманы (.pkgar) тақырып файлын деректер файлына жай ғана қосу арқылы алуға болады («мысық мысал.pkgar_head мысал.pkgar_data > мысал.pkgar»).

Тақырып файлында деректер файлындағы параметрлері бар тақырып пен құрылымдар үшін бөлек бақылау сомасы, сондай-ақ буманы тексеру үшін сандық қолтаңба бар. Деректер файлы бумада берілген барлық файлдар мен каталогтардың дәйекті тізімін қамтиды. Әрбір деректер элементінің алдында деректердің өзіне, өлшеміне, қатынасу құқықтарына, орнатылып жатқан файлдың салыстырмалы жолына және келесі деректер элементінің параметрлерінің ығысуына арналған бақылау сомасын қамтитын метадеректері бар құрылым болады. Жаңарту процесінде жеке файлдар өзгермесе және бақылау сомасы сәйкес келсе, олар өткізіліп жіберіледі және жүктелмейді.

Дереккөздің тұтастығын тек тақырып файлын алу арқылы, ал таңдалған деректер файлының дұрыстығын тек осы файлдың параметрлері бар құрылымдарды жүктеу және олардың тақырып файлында куәландырылған бақылау сомасына сәйкестігіне көз жеткізу арқылы тексеруге болады. Деректердің өзі жүктелгеннен кейін деректер алдындағы параметрлері бар құрылымның бақылау сомасын пайдаланып тексерілуі мүмкін.

Пакеттер қайталанатын болады, яғни нақты каталог үшін бума жасау әрқашан бірдей бумаға әкеледі. Орнатқаннан кейін жүйеде тек метадеректер сақталады, ол орнатылған деректерден пакетті қайта құру үшін жеткілікті (бума құрамы, бақылау сомасы, жолдар және қол жеткізу құқығы метадеректерде қамтылған).

Pkgar негізгі мақсаттары:

  • Atomicity — жаңартулар мүмкіндігінше автоматты түрде қолданылады.
  • Трафикті үнемдеу - деректер хэш өзгерген кезде ғана желі арқылы тасымалданады (жаңарту кезінде тек өзгертілген файлдар жүктеледі).
  • Жоғары өнімділік, жылдам криптографиялық алгоритмдер қолданылады (blake3 хэштерді есептеу кезінде деректерді параллель өңдеуді қолдайды). Репозиторийдегі деректер бұрын кэштелмеген болса, жүктелген деректерге арналған хэшті жүктеу уақытында есептеуге болады.
  • Минималистикалық - Басқа пішімдерден айырмашылығы, pkgar тек буманы шығару үшін қажетті метадеректерді қамтиды.
  • Орнату каталогының тәуелсіздігі – буманы кез келген каталогқа, кез келген пайдаланушы орнатуы мүмкін (пайдаланушыда таңдалған каталогқа жазу рұқсаты болуы керек).
  • Қауіпсіздік - пакеттер әрқашан криптографиялық түрде тексеріледі және тексеру пакетте нақты әрекеттер орындалмас бұрын орындалады (бірінші тақырып жүктеледі және егер цифрлық қолтаңба дұрыс болса, деректер уақытша каталогқа жүктеледі, ол кейіннен мақсатты каталогқа жылжытылады. тексеру).

Ақпарат көзі: opennet.ru

пікір қалдыру