Wayland – nowy serwer X od Red Hata
4 listopada 2008, michuk
Deweloper Red Hata, Kristian Høgsberg, pracuje nad nowym serwerem X-ów o nazwie Wayland. Ma być prostszy niż X.org (również dla twórców oprogramowania) i lepiej dostosowany do obecnych wymagań użytkowników.
Serwer Wayland zbudowany jest w oparciu o najnowsze pomysły w dziedzinie uniksowych technologii graficznych, jak kernel mode-setting czy Graphics Execution Manager.
Wayland zawiera też wbudowany compositing manager, jednak można wykorzystać dodatkowo dedykowanego menedżera (jak np. Compiz-Fusion, jeśli zostanie sportowany na Waylanda), który działałby na wyższym poziomie abstrakcji.
Høgsberg tak opisuje swój projekt:
Nowy serwer implementuje tylko małą część funkcjonalności X, jaką w praktyce wykorzystujemy obecnie na desktopach. Chodzi tu głównie o zarządzanie buforem (czyli coś podobnego do tego co robi DRI2 w X.org), przechwytywanie urządzeń wejścia oraz “haki” umożliwiające compositorowi tworzyć właściwy pulpit. Całe renderowanie ma miejsce po stronie klienta (podobnie jak działa obecnie OpenGL, ale myślę, że pixman i cairo mogłyby się również szybko nauczyć bezpośredniego renderowania), a sprawy związane ze sprzętem (w tym modesetting) robione są na poziomie jądra. Dzięki temu udało się usunąć wiele skomplikowanych spraw z samego serwera.
Serwer Wayland jest w dość wstępnej fazie rozwoju i składa się z 3.200 wierszy kodu C. Høgsberg pracuje głównie nad rozwiązaniem problemów, które dręczą obecne serwery X, takimi jak przekierowanie wejścia, zmiana rozmiaru okien czy spójne przerysowywania okien, czyli sprawy kluczowe dla zwykłych użytkowników.
Obecnie nie ma planów, żeby zrobić z Waylanda podstawowy serwer w systemach uniksowych. Wayland może być jednak świetnym rozwiązaniem do wykorzystania przez GDM jako dedykowany serwer do wygaszacza ekranu czy jako serwer ostatniej szansy, gdy X.org nie wstaje i normalnie bylibyśmy zmuszeniu do skorzystania z interfejsu tekstowego. Docelowo Wayland może też być idealny do systemów wbudowanych z dedykowanym compositorem.
W związku z wymaganiem funkcjonalności kernel modesetting, Wayland obecnie działa sensownie jedynie z kartami graficznymi ATI i Intela, które dobrze to obsługują.


Bardzo ciekawa wiadomość, mimo wczesnej fazy rozwoju; tam jest jeszcze mowa o rootless X i możliwościach jakie to daje.
Przy okazji polecam też lekturę linkowanego tam artykułu o Plymouth, czyli graficznego systemu startu, włącznie z filmikami pokazującymi jak naprawdę fajnie wygląda płynna zmiana trybu graficznego i inne takie rzeczy:
http://www.phoronix.com/scan.php?page=article&item=fedora_plymouth&num=1
Jej, czyżby wreszcie szło ku nowemu? Długo nic, wiele nieudanych prób, ale jeśli weźmie się za to Red Hat to może wreszcie uda się wyeliminować wady projektowe iksów
Unix Hater’s Handbook:
“7 The X-Windows Disaster
How to Make a 50-MIPS Workstation Run Like a 4.77MHz IBM PC”
“If the designers of X Windows built cars, there would be no fewer
than five steering wheels hidden about the cockpit, none of which followed
the same principles—but you’d be able to shift gears with your
car stereo. Useful feature, that.”
—Marcus J. Ranum
Digital Equipment Corporation
ROTFL
super tylko czemu tylko na linux? rozumiem ze linux powoli idzie w strone maca – aplikacje unixowe beda dzialac ale juz linuxowe na unixach nie…
Ale Ty bzdury wypisujesz.
eee podejrzewam że będzie dostępny kod źródłowy także jak tylko ukaże się coś sensownego, ściągaj i portuj pod uniksa
jaki problem?
poza tym zgadzam się ze SlashBeast
No niestety, podobnie sie spuszczali z TTM, potem z GEM, niektore steroniki korzystaja z GEM z ‘TTM iternals’, miala byc EXA zamiast XXA, do tego doszla jeszcze UXA, straszny cyrk sie z tego wszystkiego zrobil, nawet nie wiadomo co portowac i kiedy oraz jak dlugo wogole bedzie to na czasie.
Tak samo tutaj, wpychaja coraz wiecej rzeczy do jadra Linuxa, gdzie niestety jest straszny burdel, i potem ten burdel trzeba przenosic na uporzadkowany kernel jak FreeBSD czy OpenSolaris i jest o wiele wiecej roboty.
Do tego doszlo kernel mode setting ktore rowniez zapuscili gleboko w jadro Linuxa i wrzucaja wiecej rzeczy, jeszcze troche to trzeba bedzie stworzyc caly SANDBOX da jadra Linux na systemach UNIX zeby wogole x11 startowal :ASD
Uważasz, że Red Hat musi wrzucić wsparcie dla innych uniksów? Może jeszcze mają napisać KMS dla *BSD?
w zasadzie to powinni, kod z bsd bez zająknięcia działa na Linuksie wiec czemu ma nie być vice versa?
Kod z Linuksa też pewnie by zadziałał, ale ludziom od BSD nie podoba się licencja
“w zasadzie to powinni”
Chyba coś ci na głowę spadło.
Gdyby mi ktoś płacił za pisanie pod Linuksa, to *BSD miałbym w du$#, dopóki by mi nie zapłacili za pisanie pod ten system. RH nie bawi się w BSD, więc wiesz gdzie mają ten system…
A piep$##$, że ktoś coś musi, czy ktoś coś powinien, to sobie możesz wsadzić wiesz gdzie.
@WoW: trochę więcej pokory a nie szczekasz jak gówniarz pod blokiem do staruszki.
A jeżeli nie rozumiesz to ci wytłumaczę – świat OS nie kończy się tylko na Linuksie, a RedHat który jest uważany za wielkiego gracza Open Source ma gdzieś inne systemy niż Linux.
PS. Przykro stwierdzić ale strasznie zOneciał OSnews ale trzeba się z tym pogodzić. Wszystko jest piękne gdy nie jest zbyt powszechne – pamięta ktoś Internet z przed 15 lat?
No przepraszam ale z jakiej paki Red Hat ma się zajmować dodatkowo BSD? Kod będzie zapewne wolny, niech devy bsd sie łapią i portują. red hat ma zarabiać pieniądze a nie bawić się w akcje charytatywne zeby bsd lepsze bylo.
@plichu: nikt tutaj nie mówi o BSD ale o szeroko pojętym OS wyobraź sobie że poza Linuksem istnieje jeszcze masa UNIX-ów. Te wszystkie nowe super ficzery są pisane pod śmieciowy kod Linuksa którego później nijak ładnie przenieść gdziekolwiek.
Yay, kolejny fanboj! Idź na LKML i powiedz Coksowi, Mortonowi i Viro, że piszą śmieciowy kod. Bo tutaj sobie możesz siać fud, ale tam musiałbyś już wskazać co i gdzie. A z tym byłoby ciężko, prawda?
@michu: Dlatego, ze developerzy BSD nie wymyslaja swoich wlasnych pseudostandardow zamiast zaimplementowac przyjete przez reszte swiata rozwiazania. Na przyklad.
@Thar: Popatrz na ilosc patchy we fribzdowych portach. I pomysl, ile z nich byloby potrzebne, gdyby autorzy oprogramowania testowali je pod czymkolwiek poza Linuksem.
@trasz: A patche zostały podesłane tym autorom? Bo nie każdy ma możliwość uruchamiania iluś systemów, bawić się w wirtualizację i n zupełnie różnuch konfiguracji (choćby 4 podstawowe FreeBSD, OpenBSD, NetBSD, Solaris).
Podsumowujac, panowie z RH napisali pod Linuksa cos takiego, jak WindowServer w OSX. Jesli przerobia toolkity w taki sposob, zeby potrafily z tego poprawnie korzystac – wypas.
W zasadzie to toolkit juz powinien w tym byc zintegrowany. I powinno to oczywiscie byc QT.
W zasadzie, jak wypieprzymy z X-ow X-y i zintegrujemy QT to mamy QT-embedded.
Do tego proste (?) biblioteki które by robiły za “emulator” innych widgetów – fltk, gtk i czego tam jeszcze – by wszystko używało QT, nawet odpalając takiego Firefox czy np. programy w tcl/tk.
) no i sterowniki by pozostały tam gdzie ich miejsce – w kernelu (np. jako moduły – ale jądra!)
W ten sposób linux miałby realną szansę zainstnieć na rynku desktop – byłby ogromny wybór programów (nikt by się nie ograniczał np. do programów od swojego WM, bo inne wyglądają tragicznie), gdize wszystkie programy idealnei się komponują z systemem – to ważne. Po przeniesieniu części funkcji na jądro może by nawet wzrosła responsywność (zamiast pipes, mamy bezpośrednie memcpy
Czekam na Linuksa który ma to w standardzie – wtedy porzucę Windows.
ps. Pewniak na maturę 2009: “nienawiść w internecie – omów na przykładzie minusów na osnews.pl”, to ad. powyższych
@puppy: To akurat jest fatalny pomysl. Po pierwsze, “emulatora” – czyli wrappera – toolkitow nie napiszesz, bo sie w praktyce nie da. Miedzy toolkitami sa drobne, ale kluczowe roznice – we wszystkim, od wyswietlania, po “sposob obslugi” przez programy. Po drugie, nie chcesz pakowac tego do kernela, serio. Popatrz na OSX – w kernelu jest tam to, co w nim byc powinno, czyli sterowniki. GUI jest robione przez userland. WindowServer tez jest w userlandzie. Nijak to nie przeszkadza w osiagnieciu swietnej responsywnosci.
“nikt by się nie ograniczał np. do programów od swojego WM, bo inne wyglądają tragicznie” – nie wyglądają tragicznie, wyglądają bardzo ładnie, trzeba być idiotą, żeby się ograniczać do programów do używanego przez siebie WM
Magnes: Ta, i do tego jeszcze pod jakimś fluxboxem czy openboxem,
Mam z Leopardem trochę inne doświadczenia :/
Ta.. powiedz to na jakimś forum Applowym to cie zjedzą… :C
obawiam sie, ze to niekoniecznie musi miec jakikolwiek zwiazek z grafika…
osx ma kiepski vm. duzo gorzej niz linux czy windows radzi sobie w sytuacjach, gdy zaczyna brakowac pamieci fizycznej. a gigabajt, z ktorym sprzedawano do niedawna wiekszosc makow, to po prostu duzo za malo. dodatkowo na to nakladaly sie problemy z indeksowaniem spotlight zaraz po wydaniu leoparda (dzialalo dlugo, namietnie i w najmniej odpowiednich momentach – baaardzo negatywnie wplywajac na responsywnosc).
w efekcie leopard mogl/moze wydawac sie malo responsywny.
ale – tiger na tej samej maszynie dziala wyraznie lepiej, a przy wlozeniu 2, czy 4 gb ramu leopard rowniez…
@Magnes: użyłem skrót myślowy – nie tyle samego WM, o tyle biblioteki widgetów – chodziło mi np. o programy pisane pod QT do uruchamiania w systemie gdzie używamy gnome – więc siłą rzeczy większość naszego UI jest w gtk. I vice-versa. Wtedy już tak słodko nie jest, choćby okna wyboru plików się różnią, jeśli nawet sobie odpowiednie theme znajdziemy.
@trasz: no nie wiem czy niemożliwe. Poza tym ten nowy X może mieć własne API na wzór np. windowsowego – jedyne słuszne, za to standardowe, któego wszyscy używają. Emulator byłby jak najbardziej możliwy – w gruncie rzeczy wszystkie biblioteki robią to samo i mają podobny zestaw elementów – wyświetlają okna z elementami typu przyciski, pola tekstowe czy combo.
Choć nie mówię że taki emulator jest sprawą kluczową, bo powstać może całkiem niezależnie od implementacji X.
Swoją droga, kiedyś tworzyłem projekt najmniejszego linuksa jaki się wciśnie na dyskietkę (heh: http://wiki.jiyuu.info/tutitux) i tam właśnie zastosowałem prosty pseudo-X – nanoX. Tam były biblioteki które emulowały cały Xserver, tak by tradycyjne programy działały na tym drobiazgu. Stąd mój pomysł.
“nikt by się nie ograniczał np. do programów od swojego WM, bo inne wyglądają tragicznie” – nie wyglądają tragicznie, wyglądają bardzo ładnie, trzeba być idiotą, żeby się ograniczać do programów do używanego przez siebie WM
@Magnes :
I oczywiście tą integrację pomiędzy gtk a qt bardzo łatwo osiągnąć zarówno na poziomie tematów, czcionek, dialogów zapisu odczytu pliku, ikon, itd.
Pytanie więc czemu większość dystrybucji nie ma tego out of the box ?
@Trasz: Mnostwo roboty, ale da sie. tylko nazwalbym to biblioteka posrednia, lub eniginem renderowania a nie ‘emulatorem’. Zarowno dla GTK+2 byl lengine renderujacy za pomoca Qt3, jak i jest dla Qt4 renderujacy za pomoca GTK2+2.
Ale nasuwa mi sie jedno pytanie, co sie k*** z Traszem stalo (kosmici go porwali, czy co) ? Jego posty sa naprawde wywazone i sensowne oO
Przestraszył się wyników sondy?
No, no, jak tak dalej pójdzie to zacznę odpowiadać na jego wpisy.
@Jarek: Malo czasu mam. Niedlugo postram sie wrocic do poprzedniej formy.
@evil_core: Nie da sie. Jakby sie dalo, to projekty, ktore wymieniles, bylyby w znacznie lepszej kondycji, bo zapotrzebowanie na ta funkcjonalnosc jest potezne. A tymczasem skonczyly w stadium proof of concept – cos tam niby dziala, ale produkcyjnie tego nie zastosujesz.
@soft: Fakt, OSX z brakiem ramu nie radzi sobie. Inna sprawa, ze przy dzisiejszych cenach pamieci, hu kers?
@Thar: Zrob maly eksperyment. Uruchom OSX-owy Mail. Zlap myszka pozioma ramke oddzielajaca widok wiadomosci od listy wiadomosci i przesun ja pare razy – szybko, powoli, jak chcesz – do gory i w dol. Zwroc uwage na plynne przesuwanie sie zawartosci maila, plynne przeskalowywanie suwakow i brak migania. I szybka reakcje na cokolwiek, co robisz. Nastepnie popatrz na to samo w dowolnym kliencie poczty pod Linuksa – Evolution, na przyklad – i powiedz, czemu miga.
Qt to to nie będzie i tego możesz być pewien. Zależne od firmy i obwarowane w taki sposób, że przy użyciu komercyjnym musisz bulić.
nie musisz bulić przy użyciu komercyjnym, bulisz tylko jeśli chcesz zamknąć kod swojej aplikacji. Jak dla mnie to dwie różne rzeczy.
@trasz wybacz mi osobisty wypad, dziś obejrzałem filmik http://pl.youtube.com/watch?v=DpHZ-c3kw98, który od razu skojarzył mi się z wojnami linux-w32, właśnie tak odbieram polemikę ludzi MS kontra reszta świata (w stylu ,,zarabianie na drukowaniu pieniędzy” etc). Nie chodzi mi teraz o ten konkretny komentarz a o całokształt. Myślę, że za 10lat podobnie jak z filmikiem okaże się kto wygrał tego 1 centa.
Tak, z jedną znaczącą różnicą. WindowSerwer jest zamknięty
Nie, nie będzie. Nie, nie zrobili. Wayland to zabawka.
I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready.
PS. Yes – it’s free of any minix code, and it has a multi-threaded fs.
.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that’s all I have
Słodkie. Ale nawet w porównaniu do Linuksa 0.01 Wayland to zabawka (możesz sobie poczytać oba). Nie jest to też żadne zastępstwo Xorg/X11. Być może będzie użyty jako jeszcze jeden backend renderujący w Xorg. Być może…
A ja czekam na serwer graficzny, który rysowałby wektorowo zamiast per piksel. Dostawałoby się screenshoty w formacie *.svg, wyglądąłoby ładniej i ogólnie wszyscy byliby szczęśliwi
Bylo, nie dzialalo. Hint: aliasing.
W dodatku wymagało by to ogromnego nakładu obliczeń.
NeXTStep tego przez przypadek nie mial? Wiec bylo i dzialalo.
nextstep mial display postscript
15lat temu?
@mario: Nie, nie wymagaloby. NeWS to mial i byl uzywalny na procesorach majacych po paredziesiat MHz.
@macias: W sumie to prawda lezy posrodku. Zalozylem, ze przedpiscy chodzilo o cos jak Berlin, ze zmiennoprzecinkowymi wspolrzednymi. To bylo (Berlin) i nie dzialalo (aliasing).
NeWS natomiast owszem, byl, byl wektorowy i dzialal. Mniej wiecej. Ale problemy nie byly zwiazane stricte z wektorowoscia, tylko z implementacja wykonywania w serwerze kodu w postscripcie pchanego do niego przez aplikacje.
Tak wiec – owszem, takie cos jest i dziala. Tyle, ze ze staloprzecinkowymi wspolrzednymi. Nazywa sie Quartz i jest w makach.
Ja czekam na karty graficzne renderujące wektorowe grafiki
Tylko wtedy miałoby to sens wydajnościowy.
Ale przecież rysują wektorowo. Między CPU a kartą grafiki śmigają głównie wektory, no chyba że ktoś jpega chce wyświetlić. Karta zamienia to dopiero na raster.
Dzietaaaam.
Akurat stawiałbym, że między GPU a CPU to więcej śmiga tekstur niż geometrii. Ale to zależy od aplikacji. Z resztą geometrię masz tylko do etapu GS, później jest rasteryzacja i PS — wyłącznie na pikselach.
No, gdzieś rasteryzacja i tak musi być. Chyba, że zrobią wektorowe monitory
Na CRT teoretycznie by się dało i nawet gdzieś widziałem gierkę używającą jako wyjście oscyloskopu rysującego w trybie X/Y. Zero rastra, tylko wektory
.
@bies: Rasteryzacja to podstawa nawet w grafice wektorowej. Bez niej się nie obejdzie, póki nie zaczną produkować wektorowych ekranów
.
Królik mnie ubiegł – cieszę się, że się zgadzamy
.
@Królik: Każdy CRT to taki oscyloskop co omiata conajmniej 50 razy na sekundę większą część swojej lampy zygzakiem z góry na dół
.
A tytuł ma nawiązywać do najlepszej tradycji Faktu i Superexpresu? A wystarczyło sprawdzić u źródła¹, zamiast głupio powtarzać. Dziennikarstwo nie polega na tłumaczeniu z zagranicznych serwisów.
¹ ,,it’s not a new X server, it’s a tiny display server + compositing manager”, http://hoegsberg.blogspot.com/2008/11/premature-publicity-is-better-than-no.html
W sumie, to nawet natrafiłem na określenie, że całe rysowanie ma się dobywać po stronie klienta. Teraz już wszystko zrozumiałem
.
Wielki szacun dla programistów z Red Hata. Masę różnych przydatnych rzeczy na Linuksa wyszło spod ich klawiatur. Dlaczego np. programiści zajmujący się Ubuntu (a jest ich pewnie wielu) nie zajmują się tworzeniem nowych, rewolucyjnych rzeczy? (Oprócz upstart’a i bzr jakoś nic innego brandowanego przez Canonical mi nie przychodzi do głowy).
Ale za to Canonical zrobił system dla ludu, który daje się używać na desktopie domowym.
a Red Hat niczego ‘na destkop’ nie zrobil?
toc stary Red Hat- w czasach gdy byl jeszcze darmowy- przewyzszal uzytecznoscia (i latwoscia w uzytkowaniu) inne dystrybucje.
a, w nowszych czasach- fedora to sie na destkop nie nadaje?
He he
RedHat byl pierwszym Linuxem, jakiego skosztowalem. Zainstalowalem i… po krotkim czasie mialem dosc ciaglych problemow z zaleznosciami, ktore w czasach internetu przez tpsa_0202122 i modem 56K cholernie bolaly. Nawet spisywalem braki, zeby je posciagac gdzies w inetkafejce, a pozniej w domu sie okazywalo, ze ich nie moglem skompilowac, bo brakuje czegos innego. Na szczescie mialem wtedy Amige, ktorej system wlasnie dla mnie “przewyzszal uzytecznoscia i latwoscia w uzytkowaniu” tamtego RedHata. Zdecydowanie. A bylo to gdzies ok. roku 1999/2000
Próbowałeś innych dystrybucji?
linux szybko idzie do przodu
jak w pewnym komiksie na openbsd.org/lyrics.html
Zabawna strona. Ale Puffy Baba and the 40 Vendors – gorzkie. Oby się nie spełniło…