Vlákno názorů k článku Programování pro X Window System (10) od Zdenek Pavlas - - Jak funguje komunikace mezi window managerem, a...

  • Článek je starý, nové názory již nelze přidávat.
  • 4. 6. 2004 0:16

    Zdenek Pavlas (neregistrovaný)

    - Jak funguje komunikace mezi window managerem, a X serverem? Jen pres server, nebo komunikuje i primo s klienty? Existuje nejake API v X protokolu, kde se WM zaregistruje, a muze hakovat pozadavky? To omezeni jen na toplevel okna je zabudovano v X serveru?

    - Kdyz kazdy drobny prvek v GUI je na X-serveru reprezentovan jako "okno" s nejakym numerickym window id (vim akorat ze se alokuje per-klient a deterministicky, takze asynchronne), maly dialog klidne bude obsahovat desitky az stovky oken. Jakym zpusobem jsou na X serveru okna reprezentovana? Kdyz vidim to mnozstvi atributu, ktere lze pro kazde okno nastavit, proste ceckove struktury by byly v obecnem pripade zbytecne velke, a plne defaultnich hodnot. Pouziva X server nejaky chytry objektovy a atributovy model? Jaka je jeho pametova rezie?

    - Jak moc je xlib reentrantni?

    Diky...

  • 4. 6. 2004 13:39

    Lubos Lunak (neregistrovaný)

    - Komunikace mezi WM a X serverem funguje naprosto normalne, WM je X klient ktery ma jen navic nektera specialni privilegia (viz nize). Zadni X klienti nekomunikuji primo, veskera komunikace jde pres X server (leda ze by pouzili neco jineho nez X protocol, treba DCOP). Ano, WM si zaregistruje event mask SubstructureRedirectMask na root okne, a potom X server misto provedeni nekterych operaci s toplevel okny jen posle o tom udalost WM a ten se rozhodne, jestli a jak tu operaci provede. Tu event mask lze pouzit i jinde, ale jinde nez u root okna to pro WM moc nedava smysl.
    - To fakt netusim.
    - Pokud se pouzije XInitThreads(), mel by byt Xlib plne thread-safe.