Wayland и збрка са X сервером

Аутор: Никола Харди

Графичка окружења

Unix-олики системи поседују графичка окружења још од средине осамдесетих година када чистокрвни UNIX још није био угрожена врста. Реч је о Xfree86 стандарду који је петнаест година касније замењен X.org пројектом због неких несугласица у вези са лиценцирањем. На интернету се по овом питању управо догађа нова револуција јер се Wayland припрема да замени X.

Од осамдесетих па до данас, скуп технологија које су се низале да бисмо на располагању имали модерна графичка окружења, брзо је растао. Протоколи и стандарди су додавани, мењани и завршили смо са X сервером који је права мала џунгла. Јако мало људи на свету заиста зна и разуме како функционише (прим.аут.). У неком тренутку, вероватно, и њима је престало бити јасно зашто то још увек функционише.

Следи кратак преглед ових технологија, од кернела па до курсора. Драјвере за графичке картице ћемо овај пут оставити по страни. Видећемо где је настала збрка, зашто желимо нов стандард и на крају зашто ћемо нажалост морати да сачекамо још неодређено дуго времена да Wayland замени X.

X stack

Кренимо унатрашке, један по један корак. Пред собом имамо монитор који показује низ пиксела. Низ пиксела који истовремено треба да буду приказани на монитору, зову се фрејм (енг. frame). Место где ће ти пиксели бити нагомилани пре него што буду један за другим послати ка монитору, назива се фрејм бафер (енг. frame buffer) и тај део меморије је наша полазна тачка. X сервер је, поред других ствари, задужен за припремање пиксела који ће бити смештени у фрејм бафер.

У реду, шта треба да буде приказано на монитору? Желимо да видимо апликације које су приказане у виду прозора, са својим менијима, бојама, преклапањима итд. О томе где ће који прозор бити исцртан, које величине ће бити, да ли ће преко њега бити још нешто исцртано, одлучује window manager (wm). Занимљива класа window manager-а су тзв. композитни window manager-и (composite window manger, compositors) који омогућавају преклапање прозора уз укључивање активне прозирности и сличне играрије. Window manager је задужен и за трансформацију прозора (сећате се compiz 3D коцке?). Window manager је део и радног окружења (енг. desktop environment). Радна окружења су широк појам и рецимо да можемо да их апроксимирамо као скуп програма који су потребни за пријатан рад на рачунару (window manager, toolbar, радна површина итд.).

Занимљива ствар је да window manager-и могу да раде и самостално, без радног окружења, што није тако ретка појава. Рецимо dwm, awesome wm, i3, openbox, fluxbox и мноштво других су врло популарни међу заједницом људи који су заљубљени у минимализам и користе рачунаре до крајњих граница.

Где је настала збрка?

Као што смо већ и написали, X је скуп технологија које су у оптицају већ предуго, многе ситнице су ту због компатибилности и историјских разлога. Рецимо X ради кроз мрежу, комуницира кроз tcp/ip протокол. Некада је X био задужен и за управљање уређајима за унос (миш, тастатура и друго), свашта је додавано и избацивано.

Тренутна конфигурација може да се сведе на следећу поставку. X сервер је у центру. Путем X-а апликације комуницирају са window manager-ом (compositor-ом), а X потом смешта пикселе у фрејм бафер. Дакле, све се свело на то да је X само посредник у комуникацији између фрејм бафера и апликација које желе да исцртавају? Како Wayland програмери у шали кажу, X је сада систем за комуникацију између процеса, и то лош систем.

X полако стари, врло је сложен за надоградњу и даљи развој. Због архитектуре тренутног система за графички приказ и мрежних протокола који још увек раде у позадини, X почиње да прави проблеме на слабијем хардверу као што је, рецимо, Raspberry Pi. Осим наведених ставки којe у грубим цртама описују проблем, постоји низ других проблема као што су начин на који су прозори једне апликације представљени X серверу.

Идеја иза Wayland-a је да се тај посредник избаци и да композитор уједно буде задужен и за ту комуникацију са другим апликацијама и за припрему фрејм бафера, односно исцртавање. Wayland није замена за X већ само протокол којим апликације и композитор могу међусобно да комуницирају. То значи да ће нам бити потребни нови window manager-и који ће радити онај део посла за који је X тренутно задужен.

Шта је Wayland, шта је Weston и ко то све прави?

Идеја на први поглед изгледа сулудo. Зашто би се један мали програм као window manager бавио целом том проблематиком? Кључ лежи у томе да Wayland протокол од те проблематике прави рутински посао који се решава у релативно мало линија кода. Битна ствар за коју је прави тренутак да скренемо пажњу, јесте да ће X бити замењен модерним window manager-има, а не Wayland-ом који је само протокол.

Један од window manager-а који је заснован на Wayland протоколу је Weston. Он служи као пример шта све Wayland као протокол омогућава, као пример како други програмери треба да развијају своје композиторе. Weston се најбрже развија и практично је једини који иде у корак са развојем Wayland-а. Битна ставка је да Wayland и Weston развија група људи из X.org фондације која је иначе задужена и за X сервер. Ово је свакако битан податак јер је реч о људима којима верујемо већ јако дуги низ година.

Како могу да пробам?

У реду, надамо се да смо успели да опишемо проблеме који су почели да се јављају са тренутним решењима и да вас заинтересујемо за Wayland/Weston комбинацију, међутим, мораћемо да вас разочарамо јер Wayland још увек није сасвим употребљив и проћи ће још барем неколико година док не заживи свугде око нас, а и тада ће X бити присутан, макар у траговима.

Најједноставнији начин да испробате Wayland, јесте да инсталирате Weston. Када га покренете у постојећој X сесији (у већ покренутом графичком окружењу), пред вама ће бити ново окружење радне површи са којим можете да се играте. Дакле, Weston ће радити свој посао, али неће исцртавати директно на монитор, већ ће исцртавати у прозор који ће X и тренутни window manager већ некако приказати на монитору.

Други начин је да Weston покренете уместо X сесије и користите га баш како је и замишљено. Приметићете да то већ изгледа поприлично фино и употребљиво, осим што апликације на које сте навикли, вероватно не раде у Weston-у. Дакле ипак постоје крупни проблеми за које треба још доста времена да буду решени, а ево и о чему је ту реч.

Зашто нећемо убрзо почети да користимо Wayland?

Графичке библиотеке и програми које користимо у свакодневном раду на unix-оликим оперативним системима, писане су тако да комуницирају са X сервером, а ми сада одједном желимо да оне причају новим протоколом по имену Wayland. Многе популарне библиотеке већ увелико раде на томе да „пропричају” Wayland протоколом, програми се развијају, а window manager-и пишу, али то још није узело маха.

Привремено решење постоји и оно се зове XWayland. Идеја је да поред Weston-а имамо и покренут X сервер и да, као што је раније у тексту било описано, X буде задужен за исцртавање Weston-а, a сада Weston буде задужен за исцртавање апликација које је припремио X. У суштини то изгледа овако. Имамо Wayland клијенте који директно причају са Weston-ом, и имамо старе, X клијенте који причају са X сервером у позадини, а Weston потом њихов садржај исцртава. Напоменућемо да X сервер може да ради у тзв. rootless режиму, тако да су сви програми (X клијенти) који су прикључени на један X сервер, ипак посебни прозори у Weston-у. Дакле, ово је разлог зашто ће се X још дуго задржати, макар у траговима – компатибилност са старијим апликацијама писаним за X.

Конкуренција и мишљење других

Сигурно сте начули да поред Wayland-а постоји и други пројекат који „прети” да замени X. Реч је о пројекту по имену Mir који је покренуо Cannonical за потребе развоја Ubuntu-a и Unity окружења. По концепту је врло сличан Wayland-у.

Уопштено, Wayland је наишао на одобравање у заједници, осим по једном питању око којег се још увек води бучна расправа, али Wayland програмери не одустају од својих ставова. Да ли ће Wayland омогућити употребу графичких програма кроз мрежу, као што то чини X (ssh -X)? Кратко и јасно: неће! Wayland екипа тврди да начин на који је ово реализовано у X серверу, свакако није добар, затим да постоје друга решења и да немају ништа против оваквих могућности, али то је посао за један сасвим нови тим и један сасвим нови пројекат.

One thought on “Wayland и збрка са X сервером

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *

Time limit is exhausted. Please reload CAPTCHA.