Мицрософт открива како ради његов подсистем Виндовс 10 линук

Видео: Comprendre l'encodage: UTF-8 / ISO avec PHP et HTML 2024

Видео: Comprendre l'encodage: UTF-8 / ISO avec PHP et HTML 2024
Anonim

Басх он Убунту у Виндовс-у омогућава да се изворни Линук ЕЛФ64 бинарни подаци покрећу на Виндовс-у преко Виндовс подсистема за Линук (ВСЛ). Иако су многи људи били шокирани најавом Басх он Убунту, вриједи споменути да она отвара нова врата за компатибилност између различитих оперативних система. Мицрософт прави још један корак напријед и открива како функционише његов ВСЛ како бисмо боље разумјели како два система комуницирају један са другим.

ВСЛ је креирао Мицрософт Виндовс Кернел тим и садржи и кориснички режим и компоненте режима кернела. Тачније, систем се састоји од:

  • услуга менаџера сесија корисничког режима која управља животним циклусом инстанције Линук
  • Пицо управљачки програми (лксс.сис, лкцоре.сис) чија је улога да опонашају Линук кернел превођењем Линук сисцаллс
  • Пицо обрађује хостинг немодификованог корисничког режима Линук (нпр. / Бин / басх).

Веза између три компоненте је описана на следећи начин:

То је простор између Линук-ових бинарних система корисника и компоненти Виндовс кернел-а где се догађа магија. Постављањем немодификованих Линук бинарних датотека у Пицо процесе омогућавамо усмеравање системских позива у Виндовс кернел. Управљачки програми лксс.сис и лкцоре.сис преводе позиве система Линук у НТ АПИ-је и опонашају Линук кернел.

Главни изазов у ​​овом процесу је да два система раде заједно:

ВСЛ извршава немодификоване Линук ЕЛФ64 бинарне датотеке виртуализујући Линук кернел интерфејс на врху Виндовс НТ кернела. Један од интерфејса кернела који је изложен јесу системски позиви (сисцаллс). Сисцалл је услуга коју пружа кернел која се може позвати из корисничког режима. И Линук кернел и Виндовс НТ кернел излажу неколико стотина сисцаллс корисничком режиму, али имају различиту семантику и углавном нису директно компатибилни. На пример, Линук кернел укључује ствари попут форк, опен анд килл док Виндовс НТ кернел има упоредиве НтЦреатеПроцесс, НтОпенФиле и НтТерминатеПроцесс.

Виндовс подсистем за Линук укључује управљачке програме режима кернела (лксс.сис и лкцоре.сис) који су одговорни за руковање захтевима за системски позив у координацији са Виндовс НТ кернелом. Управљачки програми не садрже код из Линук кернела, већ су уместо чисте имплементације Линук-компатибилних кернел сучеља чиста соба. На матичном Линуку, када је системски позив направљен из извршног корисничког режима, њиме управља Линук кернел. На ВСЛ-у, када је системски позив направљен од истог извршног језгра Виндовс НТ, прослеђује захтев лкцоре.сис. Где је то могуће, лкцоре.сис преводи сисцалл Линука у еквивалентни Виндовс НТ позив, што заузврат подиже тешко дизање.

Узимајући у обзир Мицрософтово интересовање за платформе отвореног кода, многи су се питали да ли би технолошки гигант требало да стекне велике компаније фокусиране на Линук, попут Цаноницал-а, компаније која стоји иза Убунту оперативног система. Иако су Мицрософт и Цаноницал сарађивали на софтверу отвореног кода, нити један коментар није дао ову могућност.

Ако вас занима како се развија интеракција Линук и Виндовс, посетите Мицрософтов блог. Тим је обећао да ће уследити још постова на блогу на ову тему.

Мицрософт открива како ради његов подсистем Виндовс 10 линук