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

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

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

Что за штука… Wayland&?

Мар­ко Фио­рет­ти взве­ши­ва­ет «за» и «про­тив» но­во­го сер­ве­ра гра­фи­ки для на­столь­но­го Linux, ко­то­рый внедрит­ся в по­пу­ляр­ные ди­ст­ри­бу­ти­ве в этом го­ду.
  • Ну и что за шту­ка — Wayland?
Это но­вая сис­те­ма ото­бра­жения гра­фи­ки для Linux (офи­ци­аль­ный сайт http://wayland.freedesktop.org/), ко­то­рая идет на сме­ну X Window System. По­след­няя в той или иной фор­ме су­ще­ст­ву­ет аж с се­ре­ди­ны 1980‑х.
  • За­ме­на X.org?! Ну, это ещё ви­ла­ми по во­де пи­са­но!
По­ка Wayland ра­бо­та­ет в про­стых ва­ри­ан­тах кон­фи­гу­ра­ции и не на всех ап­па­рат­ных сред­ст­вах, и еще несколь­ко лет X ничто не уг­ро­жа­ет. Од­на­ко есть как минимум па­ра серь­ёз­ных при­чин по­ин­те­ре­со­вать­ся Wayland уже сей­час.
  • И эти при­чи­ны…
Во-пер­вых, к Wayland про­яв­ля­ют ин­те­рес Ubuntu и Fedora.
  • Прав­да? И дав­но?
В 2010 го­ду, од­но­вре­мен­но с за­яв­лением о за­мене стан­дарт­но­го ин­тер­фей­са Ubuntu (Gnome) на Unity, Марк Шатт­л­ворт со­об­щил о на­ме­рении при­менить Wayland. Кро­ме то­го, но­вая сис­те­ма ото­бра­жения долж­на вой­ти в Fedora 15.
  • По­че­му Ubuntu вы­би­ра­ет Wayland?
По сло­вам Шатт­л­вор­та, ему нуж­ны «сверх­глад­кая гра­фи­ка и ви­зу­аль­ные эф­фек­ты» для Ubuntu – и он убе­ж­дён, что с Wayland мы добь­ем­ся это­го бы­ст­рее, чем до­ж­дав­шись ре­форм про­грамм­но­го и ап­па­рат­но­го обес­пе­чения.
  • Вы го­во­ри­ли о дру­гих при­чи­нах ин­те­ре­са к Wayland
Кро­ме уско­рения гра­фи­ки, Wayland обе­ща­ет пре­взой­ти X ещё по двум по­ка­за­те­лям, а имен­но: груп­по­вая ра­бо­та с GPU и иг­ро­вая сфе­ра.
  • Про­сти­те, а что та­кое GPU?
Это гра­фи­че­­ский про­цес­сор – спе­ци­аль­ный про­цес­сор, встро­ен­ный в ви­део­кар­ту или чип­сет. Не­ко­то­рые уст­рой­ст­ва осна­ща­ют­ся да­же двой­ны­ми GPU. Wayland смо­жет пе­ре­клю­чать­ся ме­ж­ду GPU и гра­фи­че­­ски­­ми драй­ве­ра­ми без пе­ре­за­груз­ки, что по­мо­жет со­хра­нять долж­ную от­зыв­чи­вость сис­те­мы при ин­тен­сив­ной на­груз­ке на гра­фи­ку.
  • А в иг­ро­вой сфе­ре?
Од­на из це­лей раз­ра­бот­ки Wayland – обес­пе­чение пол­но­эк­ран­но­го ре­жи­ма, не бло­ки­рую­ще­го осталь­ную часть ра­бо­че­го сто­ла. Ес­ли иг­ра (или дру­гое при­ло­жение) за­пра­ши­ва­ет пол­но­эк­ран­ный ре­жим – да­же и с осо­бым эк­ран­ным раз­ре­шением – Wayland «идёт на об­ман». При­ло­жение по­лу­ча­ет яко­бы пол­ный эк­ран (то есть, на са­мом де­ле, цен­траль­ную часть ра­бо­че­го сто­ла) и принима­ет на се­бя все со­бы­тия мы­ши. Од­на­ко Wayland со­хра­ня­ет за со­бой кон­троль за си­туа­ци­ей, и поль­зо­ва­тель мо­жет пе­рей­ти к лю­бой час­ти ра­бо­че­го сто­ла, на­жав несколь­ко кла­виш, без неприят­ных эф­фек­тов.
  • Кру­то, но пре­ж­де чем хва­тать­ся за Wayland, по­ясните, че­го недоста­ет X?
X – ве­ли­ко­леп­ное ПО. Бе­да в том, что ра­ди его под­держ­ки при­хо­дит­ся со­хра­нять со­вмес­ти­мость с приё­ма­ми про­грам­ми­ро­вания чет­верть­ве­ко­вой дав­но­сти. Это нелёг­кий труд, и с ка­ж­дым го­дом всё менее оп­рав­дан­ный.
  • По­че­му?
Од­на из про­блем – про­из­во­ди­тель­ность: тре­бо­вания про­то­ко­ла X по час­ти по­ло­сы про­пускания и ла­тент­но­сти ста­ли об­ре­менитель­ны, осо­бен­но для де­ше­вых нетбу­ков и план­шет­ных ком­пь­ю­те­ров. Дру­гая (воз­мож­но, бо­лее важ­ная) при­чи­на – необ­хо­ди­мость под­дер­жи­вать функ­ции (на­при­мер, встро­ен­ные шриф­ты), ко­то­рые ныне ис­поль­зу­ют­ся ред­ко. На­стро­ить но­вые ап­па­рат­ные сред­ст­ва на ра­бо­ту с ги­гант­ским мас­си­вом ко­да ста­но­вит­ся всё сложнее – а уре­зать X невоз­мож­но. Вот и при­хо­дит­ся под­дер­жи­вать, увя­зы­вать и гру­зить эле­мен­ты ко­да, ко­то­рые с ка­ж­дым го­дом те­ря­ют ак­ту­аль­ность.
  • Ка­жет­ся, я на­чи­наю улав­ли­вать ва­шу мысль. Но ведь раз­ветв­ление — это всегда пло­хо и при­во­дит к дуб­ли­ро­ванию уси­лий, раз­ве нет?
В об­щем-то да. Но пре­лесть Wayland, хо­тя бы по идее, в том, что это во­все не от­ветв­ление от X. Это бо­лее про­стой и со­вер­шен­но иной спо­соб вы­полнения ра­бо­ты, ис­поль­зую­щий со­вре­мен­ные дости­жения ди­ст­ри­бу­ти­вов GNU/Linux.
  • Ка­кие, на­при­мер?
Сей­час та­кие за­да­чи, как управ­ление па­мя­тью или шриф­та­ми, пе­ре­да­ны из X в яд­ро Linux или в спе­ци­аль­ные биб­лио­те­ки – ска­жем, Fontconfig. Wayland пы­та­ет­ся вы­полнить остав­шее­ся, за­од­но из­бав­ля­ясь от под­держ­ки уста­рев­ших функ­ций. В ре­зуль­та­те уско­ря­ет­ся и ста­но­вит­ся менее ре­сур­со­ём­кой связь ме­ж­ду гра­фи­че­­ским ин­тер­фей­сом при­ло­жений и драй­ве­ра­ми ап­па­рат­ной гра­фи­ки.
  • И как Wayland до­би­ва­ет­ся этой це­ли?
Wayland – ком­би­на­ция про­то­ко­ла ком­по­нов­щи­ка окон и реа­ли­за­ции C-биб­лио­те­ки для него. По­это­му, в от­ли­чие от X, при­ло­жение под Wayland «ри­су­ет» соб­ст­вен­ное ок­но в пре­до­пре­де­лён­ной об­лас­ти па­мя­ти. За­кон­чив от­ри­сов­ку, про­грам­ма ин­фор­ми­ру­ет об этом Wayland, ко­то­ро­му оста­ёт­ся толь­ко ском­по­но­вать ок­но.
  • Вы имее­те в ви­ду ком­по­нов­ку это­го и всех дру­гих окон?
Точ­но. Wayland ко­пи­ру­ет дан­ную об­ласть па­ мя­ти в от­ве­дён­ное ме­сто на эк­ране, впе­ре­ди или по­за­ди дру­гих окон в дан­ной зоне. Дру­гие основ­ные за­да­чи Wayland – управ­ление ви­зу­аль­ны­ми эф­фек­та­ми и на­прав­ление вход­ных команд поль­зо­ва­те­ля (на­при­мер, дви­жений мы­ши) со­от­вет­ст­вую­щим кли­ен­там. По­сколь­ку Wayland яв­ля­ет­ся ком­по­нов­щи­ком окон, да­же не ну­жен окон­ный менед­жер.
  • От­лич­но и всё та­кое, ну, а ес­ли при­ло­жение ра­бо­та­ет толь­ко с X?
Вы пра­вы, об­рат­ная со­вмес­ти­мость очень важ­на. Wayland её обес­пе­чит, ра­бо­тая с X-сер­ве­ром как с кли­ен­том. При­ло­жение, ра­бо­таю­щее толь­ко под X, вы­даст сер­ве­ру за­прос на от­ри­сов­ку ок­на, и тот бу­дет ри­со­вать его в вы­де­лен­ной об­лас­ти па­мя­ти…
  • …а Wayland пе­ре­даст это де­ло гра­фи­че­­ско­­му драй­ве­ру. По­нял! А не бу­дет ли этот про­цесс тор­мо­зить?
Ну да, по сравнению с X (ес­ли вы об этом). Од­на­ко раз­ра­бот­чи­ки счи­та­ют, что за­мед­ление не бу­дет фа­таль­ным.
  • Как на­счёт се­те­вой про­зрач­но­сти?
Досто­ин­ст­во X в том, что эта сис­те­ма уме­ет ото­бра­жать гра­фи­че­­ские при­ло­жения на уда­лён­ных ком­пь­ю­те­рах пря­мо как на ва­шем соб­ст­вен­ном монито­ре…
  • А Wayland та­кое уме­ет?
Нет. Ну, а когда вы по­следний раз этим поль­зо­ва­лись? Толь­ко че­ст­но.
  • Хм, и прав­да не пом­ню… но один мой друг зна­ет од­но­го — тот хрониче­­ски это де­ла­ет…
Вот раз­ра­бот­чи­ки Wayland и по­ду­ма­ли: от­дель­ным поль­зо­ва­те­лям се­те­вая про­зрач­ность нуж­на, но боль­шин­ст­во о ней да­же не слы­ша­ли. Так за­чем ра­бо­че­му сто­лу тор­мо­зить, под­дер­жи­вая ненуж­ные функ­ции? Пра­во­та раз­ра­бот­чи­ков ста­но­вит­ся ещё бо­лее оче­вид­ной, ес­ли вспомнить, что для уда­лён­ной ра­бо­ты мно­гие при­ме­ня­ют web-брау­зер, Ajax и по­доб­ные сред­ст­ва.
  • Вер­но, но как всё-та­ки быть тем, кто ра­бо­та­ет с уда­лён­ны­ми X-при­ло­жения­ми?
Да это не про­бле­ма. X уй­дет с аре­ны не ско­ро. И кто же за­пре­тит при необ­хо­ди­мо­сти ра­бо­тать с X вме­сто Wayland (или с X в ка­че­­ст­ве кли­ен­та Wayland, о чём мы с ва­ми толь­ко что го­во­ри­ли)? При на­ли­чии доста­точ­но­го спро­са мо­гут да­же на­пи­сать спе­ци­аль­ный кли­ент Wayland для уда­лён­но­го управ­ления X-при­ло­жения­ми.
  • Итак, Wayland — сплош­ной вы­иг­рыш, без вся­ко­го рис­ка?
Конеч­но, нет. По­ми­мо се­те­вой про­зрач­но­сти, мож­но спрог­но­зи­ро­вать про­бле­мы с неста­биль­но­стью и под­держ­кой ря­да ви­део­карт. На­при­мер, неяс­но, бу­дет ли Nvidia пи­сать про­прие­тар­ные драй­ве­ры с под­держ­кой Wayland – а ес­ли бу­дет, то на­сколь­ко пол­ной бу­дет под­держ­ка.
  • А с че­го бы Wayland быть неста­биль­ным?
Иным ка­жет­ся, что ар­хи­тек­ту­ра Wayland по­вы­ша­ет ве­ро­ят­ность кра­ха всей сис­те­мы из-за сбоя в един­ст­вен­ном при­ло­жении. Пра­вы они или нет, по­ка­жет вре­мя.
  • Труд­но ли пе­ре­вес­ти Gnome, KDE и про­чее по­пу­ляр­ное сво­бод­ное ПО на Wayland?
По оп­ре­де­лению, кли­ент Wayland дол­жен ри­со­вать вклад­ки, вид­же­ты и прочее са­м, в сво­ём лич­ном окне (точнее, в вы­де­лен­ной об­лас­ти па­мя­ти). Го­то­вые де­мо-кли­ен­ты уже де­ла­ют это с по­мо­щью биб­лио­тек, подобных Cairo или OpenGL. Но пе­ре­вод при­ло­жения в раз­ряд кли­ен­тов Wayland тре­бу­ет зна­чи­тель­ных уси­лий. Ра­ду­ет од­но: эту ра­бо­ту при­дёт­ся про­де­лать лишь раз – в об­щих биб­лио­те­ках (GTK, Qt) или да­же на бо­лее низ­ком уровне.
  • Сто­ит ли всё это за­те­вать?
На­зна­чение Wayland – сде­лать на­столь­ное сво­бод­ное ПО эф­фек­тивнее и бы­ст­рее. Ес­ли уда­ст­ся это­го до­бить­ся, то – да! До­ро­гу оси­лит иду­щий.
Персональные инструменты
купить
подписаться
Яндекс.Метрика