Журнал LinuxFormat - перейти на главную

LXF130:Что за штука

Материал из Linuxformat
Перейти к: навигация, поиск

Что за штука… MicroXwin?

Но­вая окон­ная систе­ма баль­за­мом оросит ду­шу раз­ра­бот­чи­ков встраи­вае­мо­го Linux. Мар­ко Фио­рет­ти объ­яснит, по­че­му...
  • Так что же за шту­ка MicroXwin?

MicroXwin (http://www.microxwin.com) – за­ме­насисте­ме X Window System, обыч­но при­ме­няе­мой в Linux и Unix.

  • Хо­ро­шо, а что за шту­ка X Window System?

X Window System, или про­сто X – стан­дартная систе­ма, ис­поль­зуе­мая все­ми при­ло­жения­ми Linux и Unix для взаи­мо­дей­ствия с гра­фи­че­скими драй­ве­ра­ми с це­лью ото­бра­жения объ­ек­тов, опе­ра­ций с ок­на­ми, кон­тро­ля дви­жений мы­ши и т. д. Осо­бую гиб­кость систе­ме X при­да­ют два свой­ства: ар­хи­тек­ту­ра кли­ент–сер­вер и се­те­вая про­зрач­ность.

  • Что оз­на­ча­ет «ар­хи­тек­ту­ра кли­ент–сер­вер»?

Ис­поль­зуя ПО с гра­фи­че­ским ин­тер­фей­сом (GUI) на осно­ве X, вы все­гда имее­те де­ло с дву­мя со­вер­шен­но раз­ны­ми про­грам­ма­ми: X-сер­ве­ром и X-кли­ен­том. Сер­вер кон­тро­ли­ру­ет гра­фи­че­ский чип­сет ком­пь­ю­те­ра и ото­бра­жа­ет изо­бра­жение на монито­ре. Кли­ен­ты – это при­клад­ные про­граммы вро­де OpenOffice.org, GIMP или Firefox. Ес­ли вы пред­пи­ше­те им от­крыть ок­но или на­ри­со­вать ме­ню, они об­ра­тят­ся с со­от­вет­ствую­щим «пред­ложением» к X-сер­ве­ру, как к рас­по­ря­ди­те­лю ре­сурсов. При на­жа­тии кноп­ки или пе­ре­ме­щении мыши сер­вер со­об­ща­ет об этом кли­ен­там, что­бы они мог­ли реа­ги­ро­вать на ва­ши дей­ствия.

  • А как сер­вер об­ща­ет­ся с раз­ны­ми кли­ен­та­ми?

Как пра­ви­ло, X-кли­ен­ты пи­шут с по­мо­щью вы­со­коуровневых гра­фи­че­ских ин­ст­ру­мен­та­ри­ев, ти­па GTK или Qt. А с сер­ве­ром они свя­зы­ва­ют­ся по про­то­ко­лу X Window System, при­ме­няе­мо­му в низ­ко­уровневых про­грамм­ных биб­лио­те­ках под на­званием Xlib.

  • Оста­лось объ­яснить, что та­кое се­те­вая про­зрач­ность...

Это оз­на­ча­ет, что X-кли­ент – то есть ис­поль­зуе­мое ва­ми ПО – мо­жет ра­бо­тать во­все не на том компь­ю­те­ре, за ко­то­рым вы си­ди­те, а вы да­же не заме­ти­те разницы. X-сер­вер на ва­шем ком­пь­ю­те­ре бу­дет взаи­мо­дей­ство­вать с уда­лён­ной про­граммой тем же спо­со­бом, что и с локаль­ной. Именно се­те­вая про­зрач­ность де­ла­ет та­кие про­ек­ты, как Linux Terminal Server, по­лез­ны­ми и про­сты­ми в на­строй­ке.

  • За­чем тогда ну­жен MicroXwin? Че­го нам не хва­та­ет в X?

При обыч­ной ра­бо­те – все­го хва­та­ет. Од­на­ко в ря­де дру­гих си­туа­ций дан­ное ре­шение слишком слож­но: «ви­но­ва­ты» те са­мые функ­ции, что при­да­ют ему удоб­ство и гиб­кость. Се­те­вая про­зрач­ность и про­то­кол X силь­но «утя­же­ляют» со­об­щения, пе­ре­сы­лае­мые ме­ж­ду сер­ве­ром и кли­ен­та­ми. Мно­го­сту­пен­ча­тый про­цесс по­жи­ра­ет уй­му про­цессор­но­го вре­мени, да­же ес­ли клиент и сер­вер вы­пол­ня­ют­ся на одной ма­шине. В по­следнем слу­чае де­ло ослож­ня­ет­ся непре­рыв­ным пе­ре­клю­чением кон­тек­ста: яд­ро по­сто­ян­но «пры­га­ет» ме­ж­ду кли­ен­та­ми и серве­ром (это необ­хо­ди­мо для взаи­мо­дей­ствия ме­ж­ду ними).

  • Ну и что? Про­цес­со­ры в на­ше вре­мя мощ­ные, па­мять де­ше­ва...

Для на­столь­ных ком­пь­ю­те­ров – да. Но ведь Linux ра­бо­та­ет в бес­чис­лен­ных встраи­вае­мых устрой­ствах, от мо­биль­ных те­ле­фо­нов и ав­то­мо­билей до до­машней элек­троники. Про­цес­со­ры та­ких при­бо­ров (на­при­мер, ARM 9) за­мет­но «тор­мо­зят», вы­пол­няя все фор­маль­но­сти X Window System (а по­рой и неспо­соб­ны её вы­тя­нуть). Систе­ма MicroXwin раз­ра­бо­та­на спе­ци­аль­но для та­ких случа­ев, хо­тя ис­поль­зо­вать её на на­столь­ном ПК тоже мож­но.

  • А в чем глав­ная внут­рен­няя разница MicroXwin и X?

То, что MicroXwin от­ка­зы­ва­ет­ся от опи­сан­ных выше двух свойств, а зна­чит, бу­дет го­раз­до бы­ст­рее и ком­пактнее обыч­но­го X-сер­ве­ра.

  • За счет че­го?

MicroXwin – пер­вая гра­фи­че­ская систе­ма, ко­то­рая мо­жет ин­тег­ри­ро­вать­ся в яд­ро Unix/Linux как мо­дуль. Она ко­пи­ру­ет дан­ные пря­мо из пользо­ва­тель­ско­го про­стран­ства в бу­фер кад­ров, а от­ ту­да – на эк­ран. Это пол­но­стью уст­ра­ня­ет про­блему пе­ре­клю­чения кон­тек­стов и по­зво­ля­ет на­чать вы­вод гра­фи­ки на бо­лее ранних ста­ди­ях за­гру­зочно­го про­цес­са.

  • Есть ли дру­гие ком­понен­ты?

Кро­ме соб­ствен­но ядер­но­го мо­ду­ля, есть ещё две глав­ные биб­лио­те­ки. Од­на их них служит для от­прав­ки гра­фи­че­ских команд на мо­дуль и бу­дет за­ме­ной Xlib (720 КБ). Вто­рая биб­лио­тека яв­ля­ет­ся осно­вой для напи­сания рас­ши­рений MicroXwin (7 КБ). Мо­дуль яд­ра для плат­фор­мы х86 «ве­сит» око­ло 300 КБ.

  • Ве­лик ли вы­иг­рыш в ско­ро­сти?

Сайт MicroXwin со­об­ща­ет о зна­чи­тель­ном пре­иму­ще­стве в ско­ро­сти по сравнению с X.org (стан­дарт­ным X-сер­ве­ром боль­шин­ства со­вре­менных ди­ст­ри­бу­ти­вов) по ре­зуль­та­там тестов Gtkperf и X11perf. Все под­роб­но­сти – на сай­те.

  • И сколь­ко па­мя­ти тре­бу­ет MicroXwin?

Для мо­ду­ля необ­хо­ди­мо око­ло 500 КБ па­мяти яд­ра, про­тив 18–20 МБ, ис­поль­зуе­мых (нера­ботаю­щим) сер­ве­ром X.

  • Неве­ро­ят­но! И всё это со­вмести­мо со стан­дарт­ны­ми X-кли­ен­та­ми?

Да – ведь ин­тер­фейс прежний! Раз­ра­бот­чи­ки до­би­ва­ют­ся, что­бы про­грам­мы мог­ли ра­бо­тать на MicroXwin по­сле про­стой пе­ре­ком­пи­ля­ции или предпи­сания ис­поль­зо­вать биб­лио­те­ки MicroXwin вме­сто тра­ди­ци­он­ных Xlib. К на­стоя­ще­му вре­мени цель поч­ти достиг­ну­та.

  • Ну, а ста­биль­ность? Тес­ная ин­те­гра­ция ме­ж­ду гра­фи­кой и ядром Windows — од­на из при­чин по­яв­ления «синих эк­ра­нов смер­ти»...

Хо­тя и нечасто, у тра­ди­ци­он­ных X-сер­ве­ров тоже слу­ча­ют­ся сбои, об этом лю­бой Linux-пользо­ва­тель зна­ет. Что ка­са­ет­ся MicroXwin, то раз­работ­чи­ки за­ме­ти­ли, что ошиб­ки в лю­бом драй­ве­ре или мо­ду­ле яд­ра спо­соб­ны при­вести к за­ви­санию или кра­ху Linux.

  • То есть, ес­ли систе­ма с MicroXwin «па­да­ет»...

...зна­чит, в мо­дуль дан­ной вер­сии вкра­лась ошиб­ка; та­кое бы­ва­ет и в X. Тут нет свя­зи с тем, что это мо­дуль яд­ра, а не сер­вер поль­зо­ва­тель­- ско­го про­стран­ства.

  • MicroXwin ра­бо­та­ет толь­ко на Linux?

Со­глас­но сай­ту, но­вую систе­му лег­ко пор­тиро­вать на лю­бую плат­фор­му.

  • Мо­гу ли я напи­сать кли­ент MicroXwin, ис­поль­зуя мой лю­би­мый ин­ст­ру­мен­та­рий или окон­ный менед­жер?

Конеч­но, по­то­му-то и бо­рют­ся за со­вмести­мо­сть со стан­дарт­ным ин­тер­фей­сом Xlib. Что­бы ва­ши при­ло­жения ра­бо­та­ли с MicroXwin, доста­точно иметь биб­лио­те­ки и мо­дуль яд­ра.

  • Се­кун­доч­ку: ска­жи­те, а это всё сво­бод­ное ПО?

Биб­лио­те­ки – да, а вот мо­дуль яд­ра про­прие­тарный.

  • Ну вот, мо­дуль яд­ра — и про­прие­тар­ный…

Та­кой во­прос за­да­ва­ли на сай­те MicroXwin. Пе­ре­ска­зы­ваю свои­ми сло­ва­ми: что­бы про­грам­мы бы­ли со­вмести­мы с MicroXwin и остава­лись в сфе­ре от­кры­то­го ПО, раз­ра­бот­чи­кам FOSS необ­хо­ди­мы толь­ко сво­бод­ные биб­лио­те­ки. Про­грам­ми­сты MicroXwin объ­яснили, что деньги от ли­цен­зи­ро­вания мо­ду­ля яд­ра нуж­ны им для про­дви­жения раз­ра­бот­ки MicroXwin на системах Linux и Unix. Ес­ли за­ду­мать­ся, ар­гу­мен­ты убеди­тель­ные, и всё это не долж­но нега­тив­но сказать­ся на раз­ви­тии сво­бод­но­го ПО.

  • По­че­му?

Как мы уже упо­ми­на­ли, со­вре­мен­ным ПК и но­ут­бу­кам хва­та­ет мощ­но­сти, что­бы обой­тись без MicroXwin. Мо­дуль яд­ра MicroXwin, ли­цен­зиро­ван­ный на усло­ви­ях GPL, при­го­дил­ся бы раз­ве что для ожив­ления спи­сан­ных ком­пь­ю­те­ров х86, но пла­тить за это никто не бу­дет. Основ­ные рынки MicroXwin – где но­вая систе­ма бу­дет по­лезной, до­ход­ной и при­вле­ка­тель­ной – это смартфо­ны, мо­биль­ные ин­тернет-уст­рой­ства, нетбу­ки и про­чие встраи­вае­мые систе­мы. Но боль­шин­ство этих плат­форм в лю­бом слу­чае за­кры­ты, то есть мо­ди­фи­ци­ро­вать или уста­нав­ли­вать со­от­ветствую­щие ОС име­ют пра­во толь­ко про­из­во­ди­тели уст­ройств.

  • То есть ли­цен­зия ядер­но­го мо­ду­ля не коснет­ся конеч­но­го по­тре­би­те­ля и раз­ра­бот­чи­ка?

Да, вер­но. Но она очень да­же ка­са­ет­ся про­из­води­те­ля ап­па­рат­но­го обес­пе­чения, же­лаю­ще­го рас­ши­рить сбыт сво­ей про­дук­ции. По­куп­ка лицен­зии MicroXwin тут же де­ла­ет его раз­ра­ботку со­вмести­мой с ты­ся­ча­ми го­то­вых Linux-прило­жений. По­это­му в дол­го­сроч­ной пер­спек­ти­ве мож­но про­дать зна­чи­тель­но боль­ше уст­ройств, чем без ли­цен­зии.

  • Так что же год гря­ду­щий го­то­вит MicroXwin? Ку­да дви­жет­ся про­ект?

Вер­сия MicroXwin 2.0, вклю­чаю­щая об­нов­ленную под­держ­ку XRender, бы­ла вы­пу­ще­на в ян­варе. Кро­ме то­го, раз­ра­бот­чи­ки планиру­ют за­кон­чить в 2010 го­ду пор­ти­ро­вание на мик­ро­про­цес­соры ARM. Это чи­пы для нетбу­ков и мо­биль­ных интернет-уст­ройств, вы­пуск ко­то­рых на по­тре­битель­ский ры­нок ожи­да­ет­ся в те­ку­щем го­ду.

Персональные инструменты
купить
подписаться
Яндекс.Метрика