Ang proyekto sa Redox OS nagpaila sa pkgar package manager, nga gisulat sa Rust

Mga developer sa operating system Ang Redox, gisulat gamit ang Rust nga pinulongan ug ang konsepto sa microkernel, gipresentar bag-ong package manager pkgar. Ang proyekto nagpalambo og bag-ong package format, package management library, ug command line toolkit para sa paghimo ug pagkuha sa cryptographically verified nga koleksyon sa mga file. Ang pkgar code gisulat sa Rust ug giapod-apod sa ubos sa lisensya sa MIT.

Ang format sa pkgar wala magpakaaron-ingnon nga unibersal ug gi-optimize nga gikonsiderar ang mga detalye sa operating system sa Redox OS. Gisuportahan sa tagdumala sa pakete ang pag-verify sa gigikanan gamit ang digital nga pirma ug kontrol sa integridad. Ang mga checksum gikalkulo gamit ang hash function blake3. Ang pag-andar nga may kalabotan sa pag-verify sa pkgar mahimong ma-access nga wala tinuud nga pagtipig sa archive sa package, pinaagi sa pagmaniobra lamang sa bahin sa ulohan. Sa partikular, ang package naglangkob sa usa ka header file (.pkgar_head) ug usa ka data file (.pkgar_data). Ang usa ka husto nga gipirmahan nga kompleto nga summary package (.pkgar) mahimong makuha pinaagi lamang sa pagdugang sa header file sa data file ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Ang header file adunay bulag nga mga checksum alang sa header ug istruktura nga adunay mga parameter gikan sa data file, ingon man usa ka digital nga pirma aron mapamatud-an ang package. Ang data file naglakip sa sunodsunod nga listahan sa tanang mga file ug mga direktoryo nga gihatag sa package. Ang matag elemento sa datos giunhan sa usa ka istruktura nga adunay metadata nga naglakip sa usa ka checksum alang sa data mismo, gidak-on, mga katungod sa pag-access, paryente nga agianan sa file nga gi-install, ug ang offset sa mga parameter sa sunod nga elemento sa datos. Kung sa panahon sa proseso sa pag-update ang mga indibidwal nga mga file wala mabag-o ug ang checksum magkatugma, nan kini gilaktawan ug wala gikarga.

Mahimo nimong susihon ang integridad sa tinubdan pinaagi sa pagdawat lamang sa header file, ug ang pagkahusto sa pinili nga data file pinaagi sa pagkarga lamang sa mga istruktura nga adunay mga parameter niini nga file ug pagsiguro nga kini nagsunod sa checksum nga sertipikado sa header file. Ang datos mismo mahimong masusi human kini ma-load, gamit ang checksum gikan sa istruktura nga adunay mga parameter nga nag-una sa datos.

Ang mga pakete sa kinaiyanhon nga masubli, nagpasabut nga ang paghimo og usa ka pakete alang sa usa ka piho nga direktoryo kanunay nga moresulta sa usa ka parehas nga pakete. Pagkahuman sa pag-install, ang metadata ra ang na-save sa sistema, nga igo aron matukod pag-usab ang pakete gikan sa na-install nga datos (ang komposisyon sa pakete, mga checksum, mga agianan ug mga katungod sa pag-access naa sa metadata).

Pangunang tumong sa pkgar:

  • Atomicityβ€”awtomatikong gipadapat ang mga update kung mahimo.
  • Pagdaginot sa trapiko - ang datos gibalhin sa network lamang kung ang hash mausab (sa panahon sa pag-update, ang nausab nga mga file lamang ang ma-download).
  • Taas nga performance, paspas nga cryptographic algorithm gigamit (blake3 nagsuporta parallel data pagproseso sa diha nga kalkulado hash). Kung ang datos gikan sa repository wala pa ma-cache kaniadto, ang usa ka hash alang sa na-download nga datos mahimong makalkula sa oras sa pag-download.
  • Minimalistic - Dili sama sa ubang mga format, ang pkgar naglakip lamang sa metadata nga gikinahanglan aron makuha ang package.
  • Independence sa direktoryo sa pag-install - ang pakete mahimong ma-install sa bisan unsang direktoryo, sa bisan kinsa nga tiggamit (ang tiggamit kinahanglan adunay pagtugot sa pagsulat sa gipili nga direktoryo).
  • Seguridad - Ang mga pakete kanunay nga gipamatud-an sa cryptographically, ug ang pag-verify gihimo sa wala pa ang aktwal nga mga operasyon nga gihimo sa package (ang header gikarga una ug kung ang digital nga pirma husto, ang data gikarga sa usa ka temporaryo nga direktoryo, nga gibalhin ngadto sa target nga direktoryo human sa pag-verify).

Source: opennet.ru

Idugang sa usa ka comment