Əməliyyat sisteminin proqramçıları , Rust dilindən və mikro-kernel konsepsiyasından istifadə etməklə, yeni paket meneceri . Layihə çərçivəsində yeni paket formatı, paket idarəetmə funksiyalarını əhatə edən kitabxana və kriptografik olaraq təsdiqlənmiş fayl kolleksiyasını yaratmaq və çıxarmaq üçün komanda xətti alətləri inkişaf etdirilir. pkgar kodu Rust dilində yazılıb və MIT lisenziyası altında.
pkgar formatı universallıq iddiasında deyil və Redox OS əməliyyat sisteminin xüsusiyyətləri nəzərə alınaraq optimallaşdırılmışdır. Paket meneceri digital imza ilə mənbənin doğrulamasını və bütövlüyün kontrolunu dəstəkləyir. Yoxlama cəmləri hash funksiyası vasitəsilə hesablanır . pkgar ilə əlaqədar olan doğrulama funksionallığı, yalnız archivin başlıq hissəsi ilə manipulyasiya edərək, əsl paket arxivinin saxlanılması olmadan əldə edilə bilər. Xüsusilə, paket başlıq faylı (.pkgar_head) və məlumat faylını (.pkgar_data) əhatə edir. Düzgün imzalanmış tam kolleksiya paketi (.pkgar), başlıq faylını məlumat faylına sadəcə qoşaraq əldə edilə bilər ("cat example.pkgar_head example.pkgar_data > example.pkgar").
Başlıq faylı, başlıq və məlumat faylındakı strukturlar üçün ayrıca yoxlama cəmləri, həmçinin paketi təsdiqləmək üçün digital imza ehtiva edir. Məlumat faylı, paketdə təqdim edilən bütün fayl və qovluqların təhlükəsiz siyahısını ehtiva edir. Hər bir məlumat elementindən əvvəl, həmin məlumat üçün kontrol cəmi, ölçüsü, icazələri, quraşdırılan faylın nisbət yolu və növbəti məlumat elementinin parametrlərinin ofsetini əhatə edən metadata strukturu göstərilir. Yenilənmə prosesində, bəzi fayllar dəyişməz qalarsa və yoxlama cəmi uyğun gəlirsə, onlar atlanılır və yüklənilmir.
Mənbənin bütövlüyünü yalnız başlıq faylını əldə etməklə yoxlamaq mümkündür, seçilmiş məlumat faylının dəqiqliyini isə yalnız faylın parametrlərinin strukturlarını yükləyərək və onların başlıq faylında təsdiq olunan yoxlama cəminə uyğunluğunu təmin etməklə yoxlamaq mümkündür. Birbaşa məlumatlar, onların yüklənməsindən sonra parametrlər strukturlarından gələn yoxlama cəmi istifadə edilərək yoxlanıla bilər.
Paketlər, bir katalog üçün paket yaratmağın həmişə eyni paketin yaranmasına gətirib çıxaracağı teorem üçün müntəzəm tərtib prosesi nəzərdə tutur. Sistemdə quraşdırıldıqdan sonra yalnız rekonstruksiya etmək üçün kifayət qədər metadata saxlanılır (paketin tərkibi, yoxlama cəmləri, yollar və icazələrin metadata içində olması lazımdır).
pkgar-ın əsas məqsədləri:
- Atomiklik — yeniləmələr mümkün olduqda avtomatik olaraq tətbiq edilir.
- Trafik qənaəti — məlumatlar yalnız hash dəyişdikdə şəbəkə vasitəsilə ötürülür (yeniləndikdə yalnız dəyişmiş fayllar yüklənir).
- Yüksək performans, sürətli kriptoqrafik alqoritmlər istifadə olunur (blake3, hash hesablanması zamanı məlumatların emalını paralelləşdirməkdə dəstəkləyir). Əgər depodan olan məlumatlar əvvəlcə önbelleğe alınmamışsa, yüklənən məlumatların hash-i yükləmə zamanı hesablanır.
- Minimalizm — digər formatlardan fərqli olaraq, pkgar yalnız paketi çıxarmaq üçün zəruri olan metadata daxil edir.
- İnstallasiya kataloqundan asılılıq — paket istənilən kataloqa, istənilən istifadəçi tərəfindən quraşdırıla bilər (istifadəçi seçilən kataloqda yazma hüququna malik olmalıdır).
- Təhlükəsizlik — paketlər həmişə kriptoqrafik cəhətdən doğrulanır və doğrulama faktiki əməliyyatlar həyata keçirilməzdən əvvəl edilir (öncədən başlıq yüklənir və əgər rəqəmsal imza düzgündürsə, müvəqqəti kataloğa məlumatlar yüklənir, bu məlumatlar isə doğrulama sonrası hədəf kataloqa köçürülür).
Mənbə: opennet.ru
