Genode дээр суурилсан дотоодын OS Phantom-ийн прототип нь оны эцэс гэхэд бэлэн болно

Дмитрий Завалишин Phantom үйлдлийн системийн виртуал машиныг Genode microkernel OS орчинд ажиллуулах төслийн талаар ярилаа. Ярилцлагад Phantom-ийн үндсэн хувилбар нь туршилтын төслүүдэд аль хэдийн бэлэн болсон бөгөөд Genode дээр суурилсан хувилбарыг оны сүүлээр ашиглахад бэлэн болгоно гэж тэмдэглэжээ. Үүний зэрэгцээ одоогийн байдлаар төслийн вэбсайт дээр зөвхөн ажиллах боломжтой концепцийн прототипийг зарласан бөгөөд тогтвортой байдал, ажиллагаа нь үйлдвэрлэлийн зориулалтаар ашиглахад тохиромжгүй түвшинд хүрээгүй бөгөөд хамгийн ойрын төлөвлөгөөний нэг бол альфа хувилбарыг бий болгох явдал юм. гуравдагч талын хөгжүүлэгчид туршилт хийхэд тохиромжтой.

Төслийн кодыг LGPL лицензийн дагуу түгээдэг боловч үндсэн репозитор дахь хамгийн сүүлийн өөрчлөлт нь 2019 оны 2020-р сард хийгдсэн. Төсөлтэй холбоотой олон нийтийн үйл ажиллагаа нь XNUMX оны XNUMX-р сараас эхлэн Иннополисын их сургуулийн оюутан Антон Антоновын удирдаж байсан Генодын сэрээ бүхий агуулахад төвлөрч байна.

2000-аад оны эхэн үеэс эхлэн Phantom үйлдлийн системийг Дмитрий Завалишингийн хувийн төсөл болгон боловсруулж, 2010 оноос хойш Дмитрийгийн бүтээсэн Digital Zone компанийн жигүүрийн дор шилжүүлсэн. Энэхүү систем нь өндөр найдвартай байдалд анхаарлаа хандуулж, "бүх зүйл бол файл" гэсэн ойлголтын оронд "бүх зүйл бол объект" гэсэн ойлголтыг ашигладаггаараа онцлог бөгөөд энэ нь санах ойн төлөвийг хадгалах, тасралтгүй мөчлөгийн улмаас файлын хэрэглээг арилгадаг. ажил. Phantom дахь програмууд зогсохгүй, зөвхөн түр зогсоож, зогссон газраасаа үргэлжлүүлнэ. Бүх хувьсагч болон өгөгдлийн бүтцийг програмын хэрэгцээ шаардлагад нийцүүлэн хадгалах боломжтой бөгөөд программист өгөгдлийг хадгалахын тулд онцгой анхаарал тавих шаардлагагүй болно.

Phantom дахь програмууд нь Java виртуал машинтай төстэй стек дээр суурилсан виртуал машин дээр ажилладаг байт код болгон хөрвүүлэгддэг. Виртуал машин нь програмын санах ойн тогтвортой байдлыг хангадаг - систем нь виртуал машины төлөв байдлын агшин зуурын зургийг тогтмол зөөвөрлөгч рүү үе үе устгадаг. Унтраах эсвэл гацсаны дараа хамгийн сүүлд хадгалсан санах ойн агшин зуураас эхлэн ажлыг үргэлжлүүлж болно. Хормын хувилбарууд нь виртуал машиныг түдгэлзүүлэхгүйгээр асинхроноор үүсгэгддэг боловч хормын хувилбар нь виртуал машиныг зогсоож, дискэнд хадгалж, дахин эхлүүлсэн мэт нэг удаагийн зүсмэлийг авдаг.

Бүх програмууд нь нийтлэг дэлхийн хаягийн орон зайд ажилладаг бөгөөд энэ нь цөм болон програмуудын хооронд контекст шилжих шаардлагагүй бөгөөд лавлагаа дамжуулалтаар объект солилцох боломжтой виртуал машин дээр ажиллаж байгаа програмуудын хоорондын харилцаа холбоог ихээхэн хялбарчилж, хурдасгадаг. Хандалтыг тусгаарлах нь объектын түвшинд хийгддэг бөгөөд тэдгээрийн лавлагааг зөвхөн холбогдох аргуудыг дуудаж авах боломжтой (заагч арифметик байхгүй). Аливаа өгөгдөл, түүний дотор тоон утгыг тусдаа объект гэж үздэг.

Програмын хувьд ажил нь тасралтгүй харагдах бөгөөд үйлдлийн систем дахин ачаалах, эвдрэх, компьютер унтрах зэргээс хамаардаггүй. Phantom-д зориулсан програмчлалын загварыг объектын програмчлалын хэл дээр хэзээ ч зогсохгүй програмын сервер ажиллуулж байгаатай харьцуулдаг. Phantom-д зориулсан Java програмуудыг зөөвөрлөх нь програмыг хөгжүүлэх гол арга замуудын нэг гэж тооцогддог бөгөөд энэ нь Phantom виртуал машин нь JVM-тэй ижил төстэй байдаг. Төслийн хүрээнд Java хэлний байт код хөрвүүлэгчээс гадна Python болон C#-д зориулсан хөрвүүлэгч үүсгэх, мөн WebAssembly завсрын кодоос орчуулагчийг хэрэгжүүлэхээр төлөвлөж байна.

Видео болон аудио боловсруулалт гэх мэт өндөр гүйцэтгэл шаардсан үйлдлүүдийг гүйцэтгэхийн тулд хоёртын объектыг эх кодоор тус тусад нь хэлхээнд ажиллуулах боломжтой (LLVM нь хоёртын объектыг бүтээхэд ашиглагддаг). Доод түвшний цөмийн үйлчилгээнд хандахын тулд VM-ийн зарим ангиллыг ("дотоод" ангиуд) үйлдлийн системийн цөмийн түвшинд хэрэгжүүлдэг. Линукс програмуудыг ажиллуулахын тулд Unix процессуудыг ажиллуулахад шаардлагатай дуудлагуудыг дуурайдаг POSIX давхаргыг хангасан (POSIX давхарга дахь програмуудын тогтвортой байдал хараахан хангагдаагүй байна).

Genode дээр суурилсан дотоодын OS Phantom-ийн прототип нь оны эцэс гэхэд бэлэн болно

Уламжлалт Phantom OS нь виртуал машинаас гадна утас, санах ойн менежер, хог цуглуулагч, синхрончлолын механизм, оролт / гаралтын систем, тоног төхөөрөмжтэй ажиллах драйверуудыг агуулсан өөрийн цөмийг агуулдаг бөгөөд энэ нь тоног төхөөрөмжтэй ажиллахад ихээхэн хүндрэл учруулдаг. төслийг өргөнөөр ашиглахад бэлэн болгох. Сүлжээний стек, график дэд систем, хэрэглэгчийн интерфейс бүхий бүрэлдэхүүн хэсгүүдийг тусад нь боловсруулж байна. График дэд систем болон цонхны менежер нь цөмийн түвшинд ажилладаг нь анхаарал татаж байна.

Төслийн тогтвортой байдал, зөөврийн байдал, аюулгүй байдлыг сайжруулахын тулд Phantom виртуал машиныг Германы Genode Labs компани удирддаг Genode бичил цөмийн нээлттэй үйлдлийн системийн бүрэлдэхүүн хэсгүүдийг ашиглан ажилд шилжүүлэх оролдлого хийсэн. Genode дээр суурилсан Phantom-ийг турших хүсэлтэй хүмүүст зориулж Docker дээр суурилсан тусгай бүтээх орчинг бэлдсэн.

Genode-ийг ашигласнаар аль хэдийн шалгагдсан микро цөм болон драйверуудыг ашиглахаас гадна драйверуудыг хэрэглэгчийн орон зайд оруулах боломжтой болно (одоогийн хэлбэрээр драйверууд нь C хэл дээр бичигдсэн бөгөөд Phantom цөмийн түвшинд ажилладаг). Тодруулбал, хэрэгжилт нь албан ёсны хэл дээр заасан техникийн үзүүлэлтүүдтэй бүрэн нийцэж байгааг баталгаажуулж, найдвартай байдлын математик баталгаажуулалтыг давсан seL4 бичил цөмийг ашиглах боломжтой болно. Phantom виртуал машины найдвартай байдлын ижил төстэй нотолгоог бэлтгэх боломжийг судалж байгаа бөгөөд энэ нь үйлдлийн системийн орчныг бүхэлд нь шалгах боломжийг олгоно.

Генод дээр суурилсан портын хэрэглээний гол талбар нь төрөл бүрийн үйлдвэрлэлийн болон суулгагдсан төхөөрөмжүүдэд зориулсан програмуудыг хөгжүүлэх явдал юм. Одоогийн байдлаар виртуал машинд зориулсан хэд хэдэн өөрчлөлтийг аль хэдийн бэлтгэсэн бөгөөд цөмийн байнгын бүрэлдэхүүн хэсгүүд болон доод түвшний үндсэн интерфейсүүдэд Genode дээр ажиллаж байгаа холболтууд нэмэгдсэн байна. Phantom виртуал машин нь 64 битийн Genode орчинд аль хэдийн ажиллах боломжтой боловч VM-ийг тогтвортой горимд хараахан хэрэгжүүлээгүй, драйверын дэд системийг дахин боловсруулж, сүлжээний стек, график дэд систем бүхий бүрэлдэхүүн хэсгүүдийг ашиглах шаардлагатай байгааг тэмдэглэв. Genode-д дасан зохицох.

Genode дээр суурилсан дотоодын OS Phantom-ийн прототип нь оны эцэс гэхэд бэлэн болно
Genode дээр суурилсан дотоодын OS Phantom-ийн прототип нь оны эцэс гэхэд бэлэн болно
Genode дээр суурилсан дотоодын OS Phantom-ийн прототип нь оны эцэс гэхэд бэлэн болно


Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх