Redox OS төсөл нь Rust дээр бичигдсэн pkgar багц менежерийг нэвтрүүлсэн

Үйлдлийн систем хөгжүүлэгчид Редокс, бичсэн Rust хэл болон микро цөмийн концепцийг ашиглан, танилцуулсан шинэ багц менежер pkgar. Төсөл нь шинэ багц формат, багцын удирдлагын номын сан, криптографаар баталгаажуулсан файлуудын цуглуулга үүсгэх, сэргээх командын мөрийн хэрэгслийг боловсруулж байна. pkgar код нь Rust болон бичигдсэн байна тараасан MIT лицензийн дагуу.

Pkgar формат нь бүх нийтийнх мэт дүр эсгэдэггүй бөгөөд Redox OS үйлдлийн системийн онцлогийг харгалзан оновчтой болгосон. Багц менежер нь тоон гарын үсэг болон бүрэн бүтэн байдлын хяналтыг ашиглан эх сурвалжийн баталгаажуулалтыг дэмждэг. Шалгах нийлбэрийг хэш функц ашиглан тооцдог блэк3. Pkgar-ийн баталгаажуулалттай холбоотой функцэд зөвхөн толгой хэсгийг удирдах замаар багцын архивыг хадгалахгүйгээр хандах боломжтой. Ялангуяа багц нь толгой файл (.pkgar_head) болон өгөгдлийн файлаас (.pkgar_data) бүрдэнэ. Зөв гарын үсэг зурсан бүрэн хураангуй багцыг (.pkgar) толгой файлыг өгөгдлийн файлд хавсаргаснаар авч болно ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Толгой файл нь өгөгдлийн файлын параметрүүд бүхий толгой ба бүтцийн хувьд тусдаа шалгах нийлбэр, мөн багцыг баталгаажуулах тоон гарын үсгийг агуулдаг. Өгөгдлийн файл нь багцад байгаа бүх файл, лавлахуудын дараалсан жагсаалтыг агуулдаг. Өгөгдлийн элемент бүрийн өмнө өгөгдлийн өөрөө шалгах нийлбэр, хэмжээ, нэвтрэх эрх, суулгах файлын харьцангуй зам, дараагийн өгөгдлийн элементийн параметрүүдийн офсет зэргийг багтаасан мета өгөгдөл бүхий бүтэц бий. Хэрэв шинэчлэлт хийх явцад бие даасан файлууд өөрчлөгдөөгүй бөгөөд шалгах нийлбэр таарч байвал тэдгээрийг алгасаж, ачаалахгүй.

Та эх сурвалжийн бүрэн бүтэн байдлыг зөвхөн толгой файлыг хүлээн авах замаар, сонгосон өгөгдлийн файлын зөв эсэхийг зөвхөн энэ файлын параметр бүхий бүтцийг ачаалж, толгой файлд баталгаажуулсан шалгах нийлбэртэй нийцэж байгаа эсэхийг шалгах боломжтой. Өгөгдлийг ачаалсны дараа өгөгдлийн өмнөх параметрүүдтэй бүтцийн хяналтын нийлбэрийг ашиглан өөрөө шалгаж болно.

Багцууд нь угаасаа давтагдах боломжтой бөгөөд тодорхой директорт зориулж багц үүсгэх нь үргэлж ижил багцыг бий болгоно гэсэн үг юм. Суулгасны дараа системд зөвхөн мета өгөгдөл хадгалагдах бөгөөд энэ нь суулгасан өгөгдлөөс багцыг дахин бүтээхэд хангалттай (багцын бүтэц, хяналтын нийлбэр, зам, нэвтрэх эрх нь мета өгөгдөлд агуулагддаг).

Pkgar-ийн гол зорилго:

  • Atomicity-шинэчлэлтүүд боломжтой бол автоматаар хийгддэг.
  • Замын хөдөлгөөний хэмнэлт - өгөгдөл нь зөвхөн хэш өөрчлөгдөх үед сүлжээгээр дамждаг (шинэчлэх явцад зөвхөн өөрчлөгдсөн файлуудыг татаж авдаг).
  • Өндөр гүйцэтгэлтэй, хурдан криптограф алгоритмуудыг ашигладаг (blake3 нь хэшийг тооцоолохдоо зэрэгцээ өгөгдөл боловсруулахыг дэмждэг). Хэрэв репозитороос өгөгдлийг урьд нь кэшдээгүй бол татаж авсан өгөгдлийн хэшийг татаж авах үед тооцоолж болно.
  • Минималист - Бусад форматаас ялгаатай нь pkgar нь зөвхөн багцыг задлахад шаардлагатай мета өгөгдлийг агуулдаг.
  • Суулгацын лавлахын бие даасан байдал - багцыг дурын санд, дурын хэрэглэгч суулгаж болно (хэрэглэгч сонгосон лавлах руу бичих зөвшөөрөлтэй байх ёстой).
  • Аюулгүй байдал - Пакетууд нь үргэлж криптографаар баталгааждаг бөгөөд багц дээр бодит үйлдлүүд хийгдэхээс өмнө баталгаажуулалт хийгддэг (эхлээд толгой хэсгийг ачаалах ба хэрэв тоон гарын үсэг зөв бол өгөгдлийг түр зуурын лавлах руу ачаалж, дараа нь зорилтот лавлах руу шилжүүлдэг. баталгаажуулалт).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх