Muen 1.0-ի թողարկում՝ բաց կոդով միկրոմիջուկ՝ բարձր հուսալի համակարգեր կառուցելու համար

Ութ տարվա մշակումից հետո թողարկվեց Muen 1.0 նախագիծը՝ զարգացնելով Separation միջուկը, որի սկզբնական կոդում սխալների բացակայությունը հաստատվեց՝ օգտագործելով պաշտոնական հուսալիության ստուգման մաթեմատիկական մեթոդները։ Միջուկը հասանելի է x86_64 ճարտարապետության համար և կարող է օգտագործվել առաքելության համար կարևոր համակարգերում, որոնք պահանջում են հուսալիության բարձր մակարդակ և ոչ մի խափանումների երաշխիք: Նախագծի սկզբնական կոդը գրված է Ada լեզվով և դրա ստուգելի բարբառով SPARK 2014: Կոդը տարածվում է GPLv3 լիցենզիայի ներքո:

Տարանջատման միջուկը միկրոմիջուկ է, որն ապահովում է միմյանցից մեկուսացված բաղադրիչների կատարման միջավայր, որոնց փոխազդեցությունը խստորեն կարգավորվում է տվյալ կանոններով։ Մեկուսացումը հիմնված է Intel VT-x վիրտուալացման ընդլայնումների օգտագործման վրա և ներառում է անվտանգության մեխանիզմներ՝ արգելափակելու գաղտնի կապի ուղիների կազմակերպումը: Բաժանման միջուկն ավելի մինիմալիստական ​​և ստատիկ է, քան մյուս միկրոմիջուկները, ինչը նվազեցնում է այն իրավիճակների քանակը, որոնք կարող են ձախողման պատճառ դառնալ:

Միջուկն աշխատում է VMX արմատային ռեժիմով, որը նման է հիպերվիզորին, իսկ մյուս բոլոր բաղադրիչներն աշխատում են VMX ոչ արմատային ռեժիմով, ինչպես հյուր համակարգերին: Սարքավորումների հասանելիությունը կատարվում է Intel VT-d DMA ընդլայնումների և ընդհատումների վերարտադրման միջոցով, ինչը հնարավորություն է տալիս PCI սարքերի անվտանգ կապակցումը Muen-ի տակ աշխատող բաղադրիչներին:

Muen 1.0-ի թողարկում՝ բաց կոդով միկրոմիջուկ՝ բարձր հուսալի համակարգեր կառուցելու համար

Muen-ի հնարավորությունները ներառում են բազմամիջուկ համակարգերի աջակցություն, հիշողության մեջ տեղադրված էջեր (EPT, Extended Page Tables), MSI (Message Signaled Interrupts) և հիշողության էջի հատկանիշի աղյուսակներ (PAT, Page Attribute Table): Muen-ը նաև տրամադրում է ֆիքսված շրջանաձև ժամանակացույց՝ հիմնված Intel VMX կանխարգելիչ ժամանակաչափի վրա, կոմպակտ գործարկման ժամանակ, որը չի ազդում աշխատանքի վրա, վթարի աուդիտի համակարգ, կանոնների վրա հիմնված ստատիկ ռեսուրսների նշանակման մեխանիզմ, իրադարձությունների մշակման համակարգ և ընդհանուր հիշողության ալիքներ: հաղորդակցություն գործող բաղադրիչների շրջանակներում:

Այն աջակցում է 64-բիթանոց մեքենայի կոդով գործարկվող բաղադրիչներին, 32 կամ 64-բիթանոց վիրտուալ մեքենաներին, 64-բիթանոց հավելվածներին Ada և SPARK 2014 լեզուներով, Linux վիրտուալ մեքենաներով և ինքնակառավարվող «unikernels»-ով, որը հիմնված է MirageOS-ի վրա Muen-ի վերևում:

Muen 1.0-ի թողարկման մեջ առաջարկվող հիմնական նորամուծությունները.

  • Հրապարակվել են փաստաթղթեր միջուկի (սարք և ճարտարապետություն), համակարգի (համակարգի քաղաքականություն, Tau0 և գործիքակազմ) և բաղադրիչների բնութագրերով, որոնք փաստում են նախագծի բոլոր ասպեկտները:
  • Ավելացվել է Tau0 (Muen System Composer) գործիքակազմը, որը ներառում է պատրաստի ստուգված բաղադրիչների հավաքածու՝ համակարգի պատկերներ կազմելու և ստանդարտ ծառայություններ մշակելու համար, որոնք աշխատում են Muen-ի վերևում: Տրամադրված բաղադրիչները ներառում են AHCI (SATA) վարորդ, Սարքի կառավարիչ (DM), բեռնիչ, համակարգի կառավարիչ, վիրտուալ տերմինալ և այլն:
  • Muenblock Linux-ի դրայվերը (բլոկ սարքի իրականացում, որն աշխատում է Muen-ի ընդհանուր հիշողության վերևում) փոխակերպվել է blockdev 2.0 API-ն օգտագործելու համար:
  • Իրականացված գործիքներ հայրենի բաղադրիչների կյանքի ցիկլը կառավարելու համար:
  • Համակարգի պատկերները փոխակերպվել են՝ օգտագործելու SBS (Signed Block Stream) և CSL (Command Stream Loader)՝ ամբողջականությունը պաշտպանելու համար:
  • Ներդրվել է ստուգված AHCI-DRV դրայվեր, որը գրված է SPARK 2014 լեզվով և թույլ է տալիս միացնել կրիչներ, որոնք աջակցում են ATA ինտերֆեյսին կամ առանձին սկավառակի միջնորմները բաղադրիչներին:
  • Բարելավված unikernel աջակցություն MirageOS և Solo5 նախագծերից:
  • Ada լեզվի գործիքակազմը թարմացվել է GNAT Community 2021 թողարկման համար:
  • Շարունակական ինտեգրման համակարգը Bochs էմուլյատորից տեղափոխվել է QEMU/KVM ներդրված միջավայրեր:
  • Linux բաղադրիչի պատկերները օգտագործում են Linux 5.4.66 միջուկը:

Source: opennet.ru

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