Օպերացիոն համակարգերի մշակողներ , Rust լեզվի և միկրոբջջային կոնցեպտների օգտագործմամբ, նոր փաթեթային կառավարիչ . Ծրագրի շրջանակներում զարգանում է նոր փաթեթների ձևաչափ, փաթեթների կառավարման ֆունկցիաներով գրադարան և հրամայական շարադրանքի գործիք, որպեսզի ստեղծի և վերանայեն վավերացված ֆայլերի հավաքածուի ստեղծման համար: pkgar կոդը գրված է Rust լեզվով և MIT լիցեզիայի տակ է:
pkgar ձևաչափը միանգամայն համընդհանուր չի հանդիսանում և մշակված է Redox OS օպերացիոն համակարգի մասնագիտական հատկանիշների համար: Փաթեթային կառավարիչն աջակցում է աղբյուրի վավերացման թվային ստորագրությամբ և ամբողջության վերահսկմամբ: Հսկողության թվերը հաշվարկվում են հաշվարկչի օգնությամբ: pkgar-ի հետ կապված վավերացման ֆունկցությունը կարող է հասանելի լինել առանց փաթեթի արխիվի իրական պահպանման, միայն վերևի մասով տեքստերով մանիպուլյացիա անելով: Նախապես, փաթեթը կազմվում է վերևի ֆայլից (.pkgar_head) և տվյալների ֆայլից (.pkgar_data): Սպասվող կազմավորված լիակատար փաթեթը (.pkgar) կարող է ձեռք բերվել վերևի ֆայլը տվյալների ֆայլին պարզ լրացնելով («cat example.pkgar_head example.pkgar_data > example.pkgar»):
Վերևի ֆայլը պարունակում է առանձին վերահսկողության թվեր վերևի մասը և տվյալների ֆայլի պարամետրերի արտաքին կառուցվածքներին, ինչպես նաև թվային ստորագրություն փաթեթի ստուգման համար: Տվյալների ֆայլը ներառում է բոլոր փոխանցվող ֆայլերի և կատալոգների հաջորդական ցուցակ: Յուրաքանչյուր տվյալից առաջ ներկայացվում է բեռնաթափված կառուցվածք, որը ներառում է տվյալների վերահսկողության թիվ, չափ, իրավունքներ, տեղամասային ճանապարհ, և հաջորդ տվյալների տարրի պարամետրերի մոնտաժումը: Եթե մասնակի ֆայլեր թարմացման ընթացքում չեն փոխվել և վերահսկման թիվը համընկնում է, ապա դրանք անցկացվում են և չեն բեռնվում:
Աղբյուրի ամբողջությունը ստուգել կարելի է միայն վերևի ֆայլը ստանալով, իսկ տվյալների ֆայլի ուղղղության ճշգրտությունը ստուգելով միայն տվյալների ֆայլի պարամետրերի կառուցվածքների բեռնմամբ և համոզվելով, որ դրանք համապատասխանել են վերևի ֆայլի վերահսկման թվին: Միջապես տվյալները կարելի է ստուգել դրանք բեռնվելուց հետո՝ օգտագործելով տվյալների կառուցվածքի վերահսկման թիվը:
Փաթեթները սկզբունքորեն ենթադրում են կրկնվող հավաքագրման հնարավորություն, ինչը նշանակում է, որ որոշակի կատալոգի համար փաթեթի ստեղծումը միշտ առաջացնում է նույնական փաթեթ: Տեղադրումից հետո համակարգում պահպանվում են միայն մանրամասները, որոնք բավարար են հավաքագրման վերականգնման համար: (փաթեթի կազմը, վերահսկողության թվերը, ուղիները և իրավունքները գտնվում են մանրամասներում):
pkgar-ի հիմնական նպատակները՝
- Ատոմարությունը — թարմացումները հնարավորինս ավտոմատ կերպով կիրառում են:
- Տրաֆիկի տնտեսում — տվյալները փոխանցվում են ցանցով միայն Hash-ի փոփոխության դեպքում (թարմացման ժամանակ լիցքավորվում են միայն փոխված ֆայլերը):
- Երեք-կողմանի արդյունավետություն, օգտագործվում են արագ ստուգման ալգորիթմներ (blake3-ը աջակցում է տվյալների գործընթացի պարալելացմանը, երբ հաշվարկվում է hash-ը): Եթե տվյալները նախօրոք չեն կասկածվել ռեպոզիտորիայի կողմից, ապա հաշիվը կարող է հաշվարկվել տվյալների ներբեռնումի ընթացքում:
- Առլընտայականություն — այլ ֆորմատներից տարբերվում է՝ pkgar-ն ընդգրկում է միայն մետատվյալները, որոնք անհրաժեշտ են փաթեթի քաղելու համար:
- Իրականացման կատալոգի անկախություն — փաթեթը կարող է տեղադրվել ցանկացած կատալոգում, ցանկացած օգտվողի կողմից (օգտվողը պետք է ունի գրանցման իրավունք ընտրված կատալոգում):
- Անվտանգություն — փաթեթները միշտ կիբերանվտանգորեն ստուգվում են, և ստուգումը իրականացվում է փաստացի գործողությունները կատարելուց առաջ (մինչև ապաէտրել լրանը, եթե թվային ստորագրությունը ճիշտ է, տվյալները ներբեռնում են ժամանակավոր կատալոգում, որից հետո դրանք տեղափոխվում են նպատակային կատալոգ):
Ընտանիք: opennet.ru
