Redox OS նախագիծը ներկայացրեց pkgar փաթեթի կառավարիչը, որը գրված է Rust-ով

Օպերացիոն համակարգերի մշակողները Ռեդոքս, գրված օգտագործելով Rust լեզուն և միկրոմիջուկի հայեցակարգը, ներկայացվել է նոր փաթեթի կառավարիչ պկգար. Ծրագիրը մշակում է փաթեթի նոր ձևաչափ, փաթեթի կառավարման գրադարան և հրամանի տող գործիքակազմ՝ ֆայլերի գաղտնագրությամբ հաստատված հավաքածու ստեղծելու և առբերելու համար: pkgar կոդը գրված է Rust և տարածվում է MIT լիցենզիայի ներքո:

Pkgar ձևաչափը չի հավակնում լինել ունիվերսալ և օպտիմիզացված է՝ հաշվի առնելով Redox OS օպերացիոն համակարգի առանձնահատկությունները: Փաթեթի կառավարիչը աջակցում է աղբյուրի ստուգմանը` օգտագործելով թվային ստորագրությունը և ամբողջականության վերահսկումը: Չեկային գումարները հաշվարկվում են հեշ ֆունկցիայի միջոցով blake3. Pkgar-ի ստուգման հետ կապված ֆունկցիոնալությունը կարելի է մուտք գործել առանց փաթեթի արխիվն իրականում պահելու՝ շահարկելով միայն վերնագրի հատվածը: Մասնավորապես, փաթեթը բաղկացած է վերնագրի ֆայլից (.pkgar_head) և տվյալների ֆայլից (.pkgar_data): Ճիշտ ստորագրված ամբողջական ամփոփ փաթեթ (.pkgar) կարելի է ստանալ՝ պարզապես վերնագրի ֆայլը տվյալների ֆայլին կցելով («cat example.pkgar_head example.pkgar_data > example.pkgar»):

Վերնագրի ֆայլը պարունակում է տվյալների ֆայլի պարամետրերով վերնագրի և կառուցվածքների առանձին ստուգաչափեր, ինչպես նաև փաթեթը ստուգելու համար թվային ստորագրություն: Տվյալների ֆայլը ներառում է փաթեթում մատակարարված բոլոր ֆայլերի և գրացուցակների հերթական ցանկը: Տվյալների յուրաքանչյուր տարրին նախորդում է մետատվյալներով կառուցվածքը, որը ներառում է տվյալների ստուգման գումարը, չափը, մուտքի իրավունքները, տեղադրվող ֆայլի հարաբերական ուղին և հաջորդ տվյալների տարրի պարամետրերը: Եթե ​​թարմացման գործընթացում առանձին ֆայլեր չեն փոխվել, և ստուգման գումարը համընկնում է, ապա դրանք բաց են թողնվում և չեն բեռնվում:

Դուք կարող եք ստուգել աղբյուրի ամբողջականությունը՝ ստանալով միայն վերնագրի ֆայլը, իսկ ընտրված տվյալների ֆայլի ճիշտությունը՝ բեռնելով միայն կառուցվածքները այս ֆայլի պարամետրերով և համոզվելով, որ դրանք համապատասխանում են վերնագրի ֆայլում վավերացված ստուգիչ գումարին: Տվյալներն ինքնին կարող են ստուգվել բեռնվելուց հետո՝ օգտագործելով կառուցվածքից ստացված ստուգիչ գումարը՝ տվյալներին նախորդող պարամետրերով:

Փաթեթներն ի սկզբանե կրկնվող են, ինչը նշանակում է, որ որոշակի գրացուցակի համար փաթեթ ստեղծելը միշտ կհանգեցնի նույնական փաթեթի: Տեղադրվելուց հետո համակարգում պահպանվում են միայն մետատվյալները, որոնք բավարար են տեղադրված տվյալներից փաթեթը վերակառուցելու համար (փաթեթի կազմը, ստուգիչ գումարները, ուղիները և մուտքի իրավունքները պարունակվում են մետատվյալներում):

Pkgar-ի հիմնական նպատակները.

  • Ատոմականություն. հնարավորության դեպքում թարմացումները կիրառվում են ավտոմատ կերպով:
  • Երթևեկության խնայողություն - տվյալները փոխանցվում են ցանցով միայն այն ժամանակ, երբ հեշը փոխվում է (թարմացման ընթացքում ներբեռնվում են միայն փոխված ֆայլերը):
  • Օգտագործվում են բարձր կատարողականություն, արագ գաղտնագրման ալգորիթմներ (blake3-ն աջակցում է տվյալների զուգահեռ մշակմանը հեշերը հաշվարկելիս): Եթե ​​պահոցից տվյալները նախկինում պահված չեն եղել, ապա ներբեռնված տվյալների համար հեշը կարող է հաշվարկվել ներբեռնման ժամանակ:
  • Minimalistic - Ի տարբերություն այլ ձևաչափերի, pkgar-ը ներառում է միայն փաթեթը հանելու համար անհրաժեշտ մետատվյալները:
  • Տեղադրման գրացուցակի անկախություն - փաթեթը կարող է տեղադրվել ցանկացած գրացուցակում, ցանկացած օգտագործողի կողմից (օգտագործողը պետք է ընտրված գրացուցակում գրելու թույլտվություն ունենա):
  • Անվտանգություն - Փաթեթները միշտ գաղտնագրորեն ստուգվում են, և ստուգումը կատարվում է նախքան փաթեթի վրա իրական գործողությունները կատարելը (նախ վերնագիրը բեռնվում է, և եթե թվային ստորագրությունը ճիշտ է, տվյալները բեռնվում են ժամանակավոր գրացուցակում, որը տեղափոխվում է նպատակային գրացուցակ հետո: ստուգում):

Source: opennet.ru

Добавить комментарий