Proyek Redox OS memperkenalkan manajer paket pkgar, yang ditulis dalam Rust

Pengembang sistem operasi Redoks, tertulis menggunakan bahasa Rust dan konsep mikrokernel, disajikan manajer paket baru pkgar. Proyek ini sedang mengembangkan format paket baru, perpustakaan manajemen paket, dan toolkit baris perintah untuk membuat dan mengambil kumpulan file yang diverifikasi secara kriptografis. Kode pkgar ditulis dalam Rust dan didistribusikan oleh di bawah lisensi MIT.

Format pkgar tidak berpura-pura menjadi universal dan dioptimalkan dengan mempertimbangkan spesifikasi sistem operasi Redox OS. Manajer paket mendukung verifikasi sumber menggunakan tanda tangan digital dan kontrol integritas. Checksum dihitung menggunakan fungsi hash blake3. Fungsionalitas pkgar yang berhubungan dengan verifikasi dapat diakses tanpa benar-benar menyimpan arsip paket, dengan hanya memanipulasi bagian header. Secara khusus, paket tersebut terdiri dari file header (.pkgar_head) dan file data (.pkgar_data). Paket ringkasan lengkap yang ditandatangani dengan benar (.pkgar) dapat diperoleh hanya dengan menambahkan file header ke file data (β€œcat example.pkgar_head example.pkgar_data > example.pkgar”).

File header berisi checksum terpisah untuk header dan struktur dengan parameter dari file data, serta tanda tangan digital untuk memverifikasi paket. File data mencakup daftar berurutan dari semua file dan direktori yang disediakan dalam paket. Setiap elemen data didahului oleh struktur dengan metadata yang mencakup checksum untuk data itu sendiri, ukuran, hak akses, jalur relatif dari file yang diinstal, dan offset parameter elemen data berikutnya. Jika selama proses pembaruan file individual tidak berubah dan checksumnya cocok, maka file tersebut dilewati dan tidak dimuat.

Anda dapat memeriksa integritas sumber dengan hanya menerima file header, dan kebenaran file data yang dipilih dengan hanya memuat struktur dengan parameter file ini dan memastikan bahwa struktur tersebut mematuhi checksum yang disertifikasi dalam file header. Data itu sendiri dapat diperiksa setelah dimuat, menggunakan checksum dari struktur dengan parameter sebelum data.

Paket pada dasarnya dapat diulang, artinya membuat paket untuk direktori tertentu akan selalu menghasilkan paket yang identik. Setelah instalasi, hanya metadata yang disimpan dalam sistem, yang cukup untuk merekonstruksi paket dari data yang diinstal (komposisi paket, checksum, jalur, dan hak akses terdapat dalam metadata).

Tujuan utama pkgar:

  • Atomicityβ€”pembaruan diterapkan secara otomatis bila memungkinkan.
  • Penghematan lalu lintas - data ditransfer melalui jaringan hanya ketika hash berubah (selama pembaruan, hanya file yang diubah yang diunduh).
  • Algoritme kriptografi berkinerja tinggi dan cepat digunakan (blake3 mendukung pemrosesan data paralel saat menghitung hash). Jika data dari repositori belum pernah di-cache sebelumnya, hash untuk data yang diunduh dapat dihitung pada waktu pengunduhan.
  • Minimalis - Tidak seperti format lainnya, pkgar hanya menyertakan metadata yang diperlukan untuk mengekstrak paket.
  • Kemandirian direktori instalasi - paket dapat diinstal di direktori mana pun, oleh pengguna mana pun (pengguna harus memiliki izin menulis ke direktori yang dipilih).
  • Keamanan - Paket selalu diverifikasi secara kriptografis, dan verifikasi dilakukan sebelum operasi sebenarnya dilakukan pada paket (header dimuat terlebih dahulu dan jika tanda tangan digitalnya benar, data dimuat ke direktori sementara, yang kemudian dipindahkan ke direktori target verifikasi).

Sumber: opennet.ru

Tambah komentar