Ութ տարվա մշակումից հետո թողարկվեց Muen 1.0 նախագիծը՝ զարգացնելով Separation միջուկը, որի սկզբնական կոդում սխալների բացակայությունը հաստատվեց՝ օգտագործելով պաշտոնական հուսալիության ստուգման մաթեմատիկական մեթոդները։ Միջուկը հասանելի է x86_64 ճարտարապետության համար և կարող է օգտագործվել առաքելության համար կարևոր համակարգերում, որոնք պահանջում են հուսալիության բարձր մակարդակ և ոչ մի խափանումների երաշխիք: Նախագծի սկզբնական կոդը գրված է Ada լեզվով և դրա ստուգելի բարբառով SPARK 2014: Կոդը տարածվում է GPLv3 լիցենզիայի ներքո:
Տարանջատման միջուկը միկրոմիջուկ է, որն ապահովում է միմյանցից մեկուսացված բաղադրիչների կատարման միջավայր, որոնց փոխազդեցությունը խստորեն կարգավորվում է տվյալ կանոններով։ Մեկուսացումը հիմնված է Intel VT-x վիրտուալացման ընդլայնումների օգտագործման վրա և ներառում է անվտանգության մեխանիզմներ՝ արգելափակելու գաղտնի կապի ուղիների կազմակերպումը: Բաժանման միջուկն ավելի մինիմալիստական և ստատիկ է, քան մյուս միկրոմիջուկները, ինչը նվազեցնում է այն իրավիճակների քանակը, որոնք կարող են ձախողման պատճառ դառնալ:
Միջուկն աշխատում է VMX արմատային ռեժիմով, որը նման է հիպերվիզորին, իսկ մյուս բոլոր բաղադրիչներն աշխատում են VMX ոչ արմատային ռեժիմով, ինչպես հյուր համակարգերին: Սարքավորումների հասանելիությունը կատարվում է Intel VT-d DMA ընդլայնումների և ընդհատումների վերարտադրման միջոցով, ինչը հնարավորություն է տալիս PCI սարքերի անվտանգ կապակցումը Muen-ի տակ աշխատող բաղադրիչներին:
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