Redox操作系統開發商揭曉 最近 他們介紹的 新的包管理器 帕克加, 將在系統內使用。
對於那些不了解氧化還原的人 這 是一個操作系統 這 它的主要重點是它的開發是使用Rust語言和微內核的概念 其中僅在內核級別提供進程和資源管理之間的交互,所有其他功能都轉移到可由內核和用戶應用程序使用的庫。
作為該項目的一部分, 正在開發一種新的封裝格式, 具有包管理功能和命令行工具的庫,用於創建和提取經過加密驗證的文件的集合。
pkgar 格式並不是通用的。 並根據 Redox OS 操作系統的具體功能進行優化。
包裹經理 支持通過數字簽名和完整性檢查進行源驗證。 校驗和是使用 blake3 哈希函數計算的。 通過僅操作標頭部分,無需實際保存包文件即可訪問 pkgar 的驗證功能。
特別是 該數據包由頭文件組成 (.pkgar_head)和數據文件(.pkgar_data)。 只需將頭文件附加到數據文件即可獲得完整的正確簽名的摘要包(.pkgar)。
頭文件包含數據文件頭和參數化結構的單獨校驗和,以及用於驗證數據包的數字簽名。
數據文件包括所有提供的文件和目錄的順序列表 在包裹中。 每個數據元素之前都有一個帶有元數據的結構,其中包括數據本身的校驗和、大小、訪問權限、要安裝的文件的相對路徑以及下一個數據元素的參數的偏移量。
如果在更新過程中各個文件沒有更改並且校驗和匹配,則它們將被跳過並且不會下載。
您可以通過僅獲取頭文件來檢查源的完整性,並通過僅加載具有該文件中參數的結構並確保它們與頭文件中驗證的校驗和匹配來檢查所選數據文件的正確性。
直接地,數據本身可以在下載後使用結構與數據前面的參數的校驗和進行驗證。
最初,包意味著可重複組裝的可能性,這意味著為特定目錄創建包總是會導致形成相同的包。 安裝後,系統上僅保存元數據,這足以從已安裝的數據重建軟件包(元數據中提供軟件包組成、校驗和、路徑和訪問權限)。
pkgar的主要目標:
- 原子: 更新 盡可能申請 自動地.
- 節省流量: 僅當哈希值發生變化時才通過網絡傳輸數據(更新期間僅下載更新的文件)。
- 涉及快速、高性能的加密算法(blake3 在計算哈希時支持數據處理的並行化)。 如果存儲庫中的數據之前沒有被緩存,則可以在啟動時為下載的數據計算哈希值。
- 極簡主義: 與其他格式不同,pkgar 僅包含提取包所需的元數據。
- 安裝目錄獨立性: 任何用戶都可以將軟件包安裝在任何目錄中(用戶必須具有對所選目錄的寫入權限)。
- 安全性: 包總是經過加密驗證,並且在對包執行實際操作之前完成驗證(首先加載標頭,如果數字簽名正確,則將數據傳輸到臨時目錄,然後將其移動到目標目錄)確認)。