X Window System TODO

Linux Weekly News jeszcze raz zrelacjonowało wystąpienia z linux.conf.au 2008 związane z przyszłością X Window System. Jedno z nich dotyczyło ogólnie architektury X-ów, a drugie konkretnie sterowników grafiki.

Keith Packard wymienił właściwie całą listę spraw do załatwienia w kodzie X.org. Na najbliższą przyszłość chodzi o pełną “składalność” biurka (composite), likwidację opóźnień w odświeżaniu obrazu (tearing), integrację API 2D i 3D, start systemu bez mrugania ekranu z powodu zmian trybów graficznych, szybkie i bezpieczne przełączanie użytkowników, pełną obsługę mechanizmu hotplug, redukcję zużycia energii oraz zminimalizowanie kodu wymagającego praw roota. W trakcie swojej prelekcji opowiadał o stanie prac nad tymi sprawami.

O sterownikach opowiadał Dave Airlie. On także wspominał o kwestii ustawiania trybów graficznych – podobno jest to obecnie największy obszar prac w dziedzinie sterowników. Trwają też wysiłki nad przeniesieniem menedżera pamięci TTM do jądra, sterowniki są stopniowo (czyli niestety powoli…) portowane do nowej architektury Gallium3D, a na horyzoncie jest wprowadzenie modelu DRI2.

Jasne jest już chyba dla wszystkich, że pora skończyć z samodzielnością X-ów. Początkowo było to obejście problemów z grafiką w różnych systemach operacyjnych, ale w efekcie doprowadziło do dublowania funkcji jądra, tak, że Jon Smirl mógł narzekać w swojej znanej diagnozie: “Czy X-y to aplikacja czy system operacyjny?”. Kontrola sprzętu musi wrócić pod niepodzielne władanie jądra, które jest do tego najbardziej odpowiednim miejscem. Dopiero jeśli jakieś jądro nie potrafi samo zająć się odpowiednio zaawansowaną obsługą grafiki można wykorzystać obecne możliwości X Window, ale akurat Linuksowi to raczej nie grozi.

Kto nie mógł sam wybrać się na niedawno zakończone konferencje w Melbourne ani do Los Angeles, może sobie przynajmniej poczytać jak wyglądały te spotkania.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

37 odpowiedzi na „X Window System TODO”
  1. Awatar Azrael Nightwalker
    Azrael Nightwalker

    "X-ów"
    Nie ma czegoś takiego jak "iXy". Jest X. X server.
    X jest jeden. Pojedynczy. A nie w liczbie mnogiej.

    1. Awatar pawels
      pawels

      no chyba, że ktoś uruchomi dwa serwery naraz 😉

  2. Awatar jeronimmo
    jeronimmo

    Każden geek mówi pod Xami, opaliłem Xy, na tej maszynie nie mam Xów …
    Btw. może w końcu naprawią problem ze znikającym kursorem:
    Option "sw_cursor" "on"

    !!!

    1. Awatar Azrael Nightwalker
      Azrael Nightwalker

      To że większość mówi i pisze z błędami nie oznacza że trzeba to powtarzać. Kapójerz? 😉

      1. Awatar chester
        chester

        a może to neologizm ?
        nie nazwałbym tego na pewno błędem bo większość używa tego świadomie

        1. Awatar pawels
          pawels

          Spora liczba ludzi całkiem świadomie pisze "grzegrzułka". Czy w związku z ową świadomością jest to więc pisownia poprawna?

        2. Awatar kubus
          kubus

          a jak buło z pewnym słowem na h a konczącym się na j? obie formy sa poprawene bo wiele ludzi je mylilo.. wiec piszemy przez ch i h:)

        3. Awatar Jarek
          Jarek

          Poprawna była i jest pisownia tylko i wyłącznie przez "ch".
          Fakt, że brak znajomosci otrografii dotyczy w większym stopniu osób charakteryzujących się skłonnoscią do wypisywania tego słowa na murach wcale nie sankcjonuje stosowanej przez nich błędnej pisowni.

        4. Awatar bunyi
          bunyi

          dodajmy że etymologia tego słowa (chojak) jednoznacznie wskazuje na jego prawidłową pisownie 😀

      2. Awatar wojtekm
        wojtekm

        Nie myl kolego kolokwializmów z błędami. Tak się mówi i tyle, podobnie jak użycie słów "porszak" czy "audica" nie świdczy o nieznajomości pisowni marek Porsche czy Audi.

      3. Awatar quar
        quar

        Kiedyś Miodek przebąkiwał, że jak większość ludzi zaczyna używać nowej formy słowa to ta forma staje się formą oficjalną i czas wtedy na zrewidowanie używanych słowników.

    2. Awatar olo
      olo

      "A z tymi windowsami to same problemy, znowu windowsy mi się wykrzaczyły ;)"
      Mnie także nie pasuje tu forma "wykrzaczyły" i "odpaliłem"
      😀

  3. Awatar marcin
    marcin

    poruszone tu sprawy sa bardzo istotne… mam nadzieje ze jak najszybciej doczekamy rozwiazania tych problemow 🙂

  4. Awatar wadosm
    wadosm

    Ja mam wielką nadzieję, że w końcu poprawią stabilność X server. Wydaje mi się to trochę nie w porządku, żeby zwykła aplikacja na prawach użytkownika potrafiła zawiesić lub zrestartować X'y. X server powinno być jak skała, to błędne aplikacje powinny padać, a nie tak ważny element systemu.

    1. Awatar trasz
      trasz

      Byloby super, ale trzebaby chyba specyfikacje x11 zmienic. Mozliwosc zawieszenia xserwera na przyklad w ten sposob:

      XGrabKey(GDK_DISPLAY(), AnyKey, AnyModifier, GDK_ROOT_WINDOW(), TRUE, GrabModeSync, GrabModeSync);

      …nie jest afaik traktowana jako blad. Tak to po prostu dziala, tak ma byc.

      1. Awatar __paplo__
        __paplo__

        proponuje wyprubować jeszcze to z poziomu emulatora terminala pod sesją X:

        #strace -p

        X Serwer po prostu się "zapętli" i nie można się nawet przełączyć na konsolę (Ctl_Alt_F?) !!!

        1. Awatar __paplo__
          __paplo__

          miało być:

          #strace -p <pid_procesu_X_serwera>

  5. Awatar bunyi
    bunyi

    Test:
    Renoise 1.9.x
    Utwór demo Digging for Gold

    Platforma 1: AMD64 3000+/512MB/Radeon 9600Pro/Ubuntu 7.10 konfiguracja domyślna 1280×1024

    obciążenie DSP na wskaźniku Renoise: do 35%
    realne obciążenie wg wskaźnika systemowego: powyżej 50%
    po zmniejszeniu częstotliwości odświeżania GUI do minimum: ~40% (wtedy wskaźniki poruszają się w tempie niemal raz na sekundę)
    realne obciążenie wg wskaźnika systemowego z włączonym scrollem pattenów: powyżej 90% 🙁
    z ciekawostek – na pełnym ekranie przy scrollu już nie wyrabia i widać falowanie

    Platforma 2: C2D 2,16/1GB/GMA950/OS X 10.5.2 1280×800

    obciążenie DSP na wskaźniku Renoise: do 22%
    realne obciążenie wg wskaźnika systemowego: ~25%
    realne obciążenie wg wskaźnika systemowego z włączonym scrollem pattenów: bez zmian

    wnioski pozostawiam do wyciągnięcia we własnym zakresie
    oczywiście nie jest to jakiś super profesjonalny test, tylko raczej zgrubne porównanie, jednak podobnych objawów zawsze doświadczałem i przy innych programach muzycznych, które z zasady intensywnie wykorzystują GUI. Jeśli ktoś ma ochotę może niech dopisze tu swoje wyniki na innych konfiguracjach (ciekaw jestem jak to wygląda na nvidiach)

    1. Awatar cromo
      cromo

      Na Ubuntu korzystasz zapewne z otwartego sterownika radeon, osx ma sterownik binarny pisany od poczatku z pomoca ati.

    2. Awatar abc
      abc

      A teraz porównaj te platformy:
      – Procesor – w Macu C2D – 2 rdzenie, wydajny, w PC jeden rdzeń, przeciętnie wydajny (i wolniej taktowany w dodatku)
      -RAM – 512MB na korzyść Maca mówi samo za siebie
      -Karta graficzna – z zasady słabe przy OpenGL ATI, kontra słaby sam z siebie, ale dobrze wspierany Intel (otwarte sterowniki).
      -Rozdzielczość – znaczenie marginalne, ale trochę punktów na niekorzyść PC.

      Jeśli masz taką możliwość to przeprowadź ten test na dwóch systemach na jednym sprzęcie (MacBooki działają z Ubuntu)

      1. Awatar bunyi
        bunyi

        zwracam honor X-om – na macu pod linuksem te obciazenia wygladaja podobnie jak pod OS X, a wiec to sterowniki radeona daja w kosc :/
        Niestety tu za to dzwiek sie permanentnie zacina, na PC pomimo obciazenia systemu ani sie nie zajaknal

        1. Awatar wojtekm
          wojtekm

          A może to po prostu źle napisana aplikacja. ZTCW pod Windows korzysta z DirectX, więc siłą rzeczy autorzy musieli obsługę GUI przepisać dla Mac-a i Linuksa. Nie znam szczegółów ale porównując to np. z takim Schism Trackerem, który w SDL-u emuluje cały interfejs tekstowy Impulse Trackera, i działa to nawet na moim starym Pentuim II 266 MHz bez zacinania, to myślę sobie, że nie trzeba wiele wysiłku by porządnie to zimplementować także w Renoise. Kwestia tylko tego jak jest napisana sama aplikacja i na ile kod GUI jest niezależny od reszty jej logiki – z tego co piszesz wynika, że jest dość mocno zależny, i to jest IMHO główny problem.

  6. Awatar Sadhu
    Sadhu

    Podobnie jak w przypadku MPX obydwie prezentacje można pobrać w postaci video ze strony: http://linux.conf.au/programme/presentations

  7. Awatar barteqx
    barteqx

    Z tego co zrozumiałem, to chcą zrobić największą durnotę – zintegrować X w jądrze. Jeżeli źle zrozumiałem, to mnie poprawcie.

    1. Awatar Loksyx
      Loksyx

      Źle rozumiesz – chcą tylko, aby jądro samodzielnie zajmowało się obsługą sprzętu. 😉

    2. Awatar trasz
      trasz

      Zle zrozumiales. W kernelu ma byc to, co jest w kernelu w kazdym normalnym systemie nie uzywajacym Xorg (Solarisie, OSX, Windows, whatever) – sterownik do grafiki. Sterownik, nie xserwer.

      1. Awatar radekk
        radekk

        W Solarisie, powiadasz … który korzysta z X.org 🙂

        pozdr

        Radek

        1. Awatar trasz
          trasz

          @radekk: AFAIK nadal domyslnym xserwerem jest Xsun, nie Xorg. Drivery do kart graficznych, przynajmniej na sparkach, sa w kernelu.

    3. Awatar jellonek
      jellonek

      zle zrozumiales…
      keith ztcp od roku dosc glosno mowil o tych planach. tj. o przeniesieniu czesci odpowiedzialnosci na jadro (zmiana trybow graficznych, czy np. ustalenie okreslonego trybu przy starcie systemu). dzieki temu ztcp mial zniknac efekt migania/przelaczania trybow – w momencie gdy przelaczasz sie miedzy 2 serwerami X, majacymi wybrany jednakowy tryb graficzny, albo przy przelaczaniu na kosole pod frame buffer – ustawiona w tej samej rozdzielczosci. obecnie kazde przelaczenie – to ponowne inicjalizowanie danego trybu – mimo ze w obu przypadkach jest on jednakowy.

      1. Awatar master
        master

        ja właśnie na to czekam podobno miało być to już z wersja 7.4 ale coś cicho się ostatnio zrobiło.. Ciekawe czy deweloperzy, wspomogą do portowania do innych platform niż linux

  8. Awatar __paplo__
    __paplo__

    A ja tam wolę FBUI 🙂

  9. Awatar paplo
    paplo

    A ja tam preferuje FBUI 🙂

    1. Awatar agent_J
      agent_J

      Mnie się jakoś bardziej podobało KDE 1 odpalane na 386, 24MB RAM i karcie Hercules (RedHat 6) 😉

      1. Awatar kubus
        kubus

        mnie też, potem wyszła 2 i przeszedłem na gnome i tak mi zostało, znosząc różnie niedoskonałości serii 2.x

    2. Awatar trasz
      trasz

      FBUI to ciekawy kawalek oprogramowania. Ciekawy dlatego, ze zrywa z tradycja implementowania w Linuksie rzeczy, ktore inne uniksy mialy dziesiec lat wczesniej (jak ostatnio odpowiednik Sunowego cachefs-a, a wczesniej crashdumpy albo gcore). FBUI implementuje cos, czego inne uniksy _pozbyly sie_ kilkanascie lat wczesniej – SunView zostal przez Suna uznany za obsolete w 1992 roku bodajze, zastapili go API "udawanym" na x11.

      1. Awatar __paplo__
        __paplo__

        dzięki za wsparcie bo myslałem że jestem jedyny na tym forum dla którego X'y to "nadęty" podsystem warstwy użytkownika.
        Z drugiej strony wydaje mi się że FBUI ma mylącą nazwę i jest źle zaprojektowany, synchronizacja podsystemu z procesami na bazie sygnałów jest podatna na błędy i "race condition" (np. przy nieoczekiwanym unicestwieniu procesu podsystem "gubi" okna itp.).
        Powinno to być "niezależne" od podsystemu framebuffer'a a informacje o stanie procesu powinny być zapisane w deskryptorze procesu current task_struct w kernel'u i synchronizowane z podsystemem bezpośrednio za pomocą funkcji scheduler'a (implementacja "niezależnej" ogólnej kolejki zdarzeń w jądrze).

        Idea medzera'a okien (fbwm) jest bez sensu, implementacja funkcji zamykania i zmiany rozmiarów okna powinna być implementowana na poziomie procesu (tak jak np. xmms) a nie obsługiwana przez zewnętrzny proces co prowadziłoby do większej "prostoty" i minimalizacji "rozdęcia" podsystemu.

        PS: trochę namieszałem ale od jakiegoś czasu myśle o "prawdziwym" podsystemie okien w kernel'u i jestem ciekawy czy jest ktoś myśli podobnie 🙁

        1. Awatar trasz
          trasz

          Przepraszam, jesli moj sarkazm byl zbyt subtelny.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *