Ise agbese Redox OS ṣafihan oluṣakoso package pkgar, ti a kọ sinu Rust

Awọn olupilẹṣẹ eto iṣẹ atunse, ti a kọ lilo ede Rust ati imọran microkernel, gbekalẹ titun package faili pkgar. Ise agbese na n ṣe agbekalẹ ọna kika package tuntun, ile-ikawe iṣakoso package, ati ohun elo irinṣẹ laini aṣẹ fun ṣiṣẹda ati mimuwapada akojọpọ awọn faili ti a rii daju ni cryptographically. Awọn koodu pkgar ti kọ ni ipata ati pin nipasẹ labẹ iwe-aṣẹ MIT.

Ọna kika pkgar ko ṣe dibọn pe o jẹ gbogbo agbaye ati pe o jẹ iṣapeye ni akiyesi awọn pato ti ẹrọ ṣiṣe Redox OS. Oluṣakoso package ṣe atilẹyin ijẹrisi orisun nipa lilo ibuwọlu oni nọmba ati iṣakoso iduroṣinṣin. Awọn ayẹwo ayẹwo jẹ iṣiro nipa lilo iṣẹ hash kan òke3. Iṣẹ ṣiṣe ti o ni ibatan ijẹrisi ti pkgar le wọle laisi fifipamọ ibi ipamọ package gangan, nipa ifọwọyi apakan akọsori nikan. Ni pato, awọn package oriširiši ti a akọsori faili (.pkgar_head) ati ki o kan data faili (.pkgar_data). A o ti tọ wole pipe Lakotan package (.pkgar) le ti wa ni gba nipa a nìkan fi awọn akọsori faili si awọn data faili ("nran example.pkgar_head example.pkgar_data> example.pkgar").

Faili akọsori naa ni awọn sọwedowo lọtọ fun akọsori ati awọn ẹya pẹlu awọn aye lati faili data, bakanna bi ibuwọlu oni nọmba lati rii daju package naa. Faili data pẹlu atokọ lẹsẹsẹ ti gbogbo awọn faili ati awọn ilana ti a pese ninu package. Ẹya data kọọkan jẹ iṣaju nipasẹ igbekalẹ pẹlu metadata ti o pẹlu checksum kan fun data funrararẹ, iwọn, awọn ẹtọ iwọle, ọna ibatan ti faili ti a fi sii, ati aiṣedeede ti awọn paramita ti eroja data atẹle. Ti lakoko ilana imudojuiwọn awọn faili kọọkan ko yipada ati awọn ibaamu checksum, lẹhinna wọn ti fo ati pe wọn ko gbe.

O le ṣayẹwo iduroṣinṣin ti orisun nipasẹ gbigba faili akọsori nikan, ati deede ti faili data ti o yan nipa ikojọpọ awọn ẹya nikan pẹlu awọn aye ti faili yii ati rii daju pe wọn ni ibamu pẹlu checksum ti a fọwọsi ni faili akọsori. Awọn data funrararẹ le ṣayẹwo lẹhin ti o ti kojọpọ, ni lilo checksum lati eto pẹlu awọn aye ti o ṣaju data naa.

Awọn idii jẹ atunwi ti ara ẹni, afipamo pe ṣiṣẹda package kan fun itọsọna kan pato yoo ma ja si ni package kanna nigbagbogbo. Lẹhin fifi sori ẹrọ, metadata nikan ni o wa ni ipamọ ninu eto, eyiti o to lati tun ṣe package lati data ti o fi sii (tiwqn ti package, awọn sọwedowo, awọn ọna ati awọn ẹtọ iwọle wa ninu metadata).

Awọn ibi-afẹde akọkọ ti pkgar:

  • Atomity — awọn imudojuiwọn ti wa ni loo laifọwọyi nigbakugba ti o ti ṣee.
  • Awọn ifowopamọ ijabọ - data ti wa ni gbigbe lori nẹtiwọki nikan nigbati hash ba yipada (lakoko imudojuiwọn, awọn faili ti o yipada nikan ni igbasilẹ).
  • Iṣẹ ṣiṣe giga, awọn algoridimu cryptographic yara ni a lo (blake3 ṣe atilẹyin sisẹ data afiwera nigbati o ba ṣe iṣiro awọn hashes). Ti data lati ibi ipamọ ko ba ti jẹ cache tẹlẹ, hash kan fun data ti a ṣe igbasilẹ le ṣe iṣiro ni akoko igbasilẹ.
  • Minimalistic - Ko dabi awọn ọna kika miiran, pkgar nikan pẹlu metadata ti o nilo lati yọkuro package naa.
  • Ominira ti ilana fifi sori ẹrọ - package le fi sori ẹrọ ni eyikeyi itọsọna, nipasẹ olumulo eyikeyi (olumulo gbọdọ ni igbanilaaye kikọ si itọsọna ti o yan).
  • Aabo - Awọn apo-iwe nigbagbogbo jẹ ijẹrisi cryptographically, ati pe a ṣe iṣeduro ṣaaju ṣiṣe awọn iṣẹ gangan lori package (akọsori ti kojọpọ ni akọkọ ati ti ibuwọlu oni-nọmba ba jẹ deede, data ti kojọpọ sinu itọsọna igba diẹ, eyiti o gbe si itọsọna ibi-afẹde lẹhin ti ijerisi).

orisun: opennet.ru

Fi ọrọìwòye kun