Portál AbcLinuxu, 13. července 2025 19:57


Dotaz: Vypadá architektura KDE-X11-Qt takto?

30.7.2007 11:19 Taiko | Opava
Vypadá architektura KDE-X11-Qt takto?
Přečteno: 281×
Odpovědět | Admin

Zkusil jsem si udělat obrázek, jestli jsem dobře pochopil základní rysy architektury X11. Podívejte se prosím na ten obrázek a řekněte mi, jestli ZHRUBA vystihuje vrstvy architektury X11. Případně mi prosím poraďtě, jak by jste to upravili, nebo co by jste odebrali. Nejsem si jistý hlavně u toho X-serveru, jestli komunikuje pouze s OS nebo i přímo s HW. A pojem widget knihovna = GUI knihovna? Nebo i jiné neGUI knihovny mohou nést název "widget" knihovna?

Obrázek je zde.

Vysvětlivky k obrázku budou asi takto: X-klienti představují nejvyšší vrstvu X11 architektury a jsou to aplikace využívající služeb X-serveru prostřednictvím správce oken. Správce oken je program, který se stará o vzhled a funkčnost grafických prvků. Každý správce oken využívá nějakou widget knihovnu, což je statická knihovna obsahující třídy, definující různé grafické objekty. X-server představuje nejnižší vrstvu, závislou na konkrétním hardwaru. Jeho úkolem je: 1) přijímat vstupy, např. z klávesnice, myši či obrazovky citlivé na dotek a posílat je X-klientům, 2) přijímat od X-klientů požadavky na provedení akce související s grafikou, např. zobrazení na obrazovce

Děkuji za upozornění na nepřesnosti a chyby.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.7.2007 16:22 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Vypadá architektura KDE-X11-Qt takto?
Odpovědět | | Sbalit | Link | Blokovat | Admin
S dovolením jsem trochu zatraktivnil nadpis. Snad si ti teď přečte více lidí. Defakto to vypadá dobře (odmysli si SeLinux). Ovšem mám pocit, že je správce oken X klient. Zkus si prohlédnout podobné obrázky na google.
When your hammer is C++, everything begins to look like a thumb.
blami avatar 30.7.2007 17:16 blami | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Vypadá architektura KDE-X11-Qt takto?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já bych to nakreslil trošku jinak. A to takhle.

A popsal bych to asi takto: XServer je nejnižší vrstvou pro grafická rozhraní na UNIXových systémech. Na jednu stranu pomocí ovladačů a systémových volání jádra komunikuje s hardwarem a na stranu druhou poskytuje protokol pro připojování klientů a API v podobě Xlib pro jejich implementaci. X klienti jsou programy, které na obrazovce vidíme - připojují se k tzv. displejům XServeru. Tyto programy mají uživatelské rozhraní tvořené buď přímo pomocí Xlib (což je velmi krkolomné, nepraktické a nepřenosné na jiné systémy než je X11), nebo pomocí tzv. vyšší knihovny ovládacích prvků, jako je QT, GTK nebo Athena. Tyto knihovny poskytují přívětivé rozhraní pro psaní UI aplikací.

Co se týče správce oken: správce oken je, ačkoliv se to může zdát divné, taky pouze X klient. Má akorát speciální práva nad tzv. root oknem a okny všech aplikací - může s nimi hýbat, nechat je zmizet, zvětšovat je atp. Může taky filtrovat zprávy (stisky kláves, souřadnice myši) pro jednotlivá další okna (X klient může mít více oken). To je z hlediska X serveru velmi praktické - protože window manager neposkytuje žádné komunikační rozhraní mezi X serverem a X klientem (to dělá X protokol a Xlib), nemusí window manager běžet aby mohl běžet klient. Proto je třeba možné měnit window manager za běhu.

Ad. otázka: X11 server komunikuje přímo s hardwarem - asi proto, aby na různých UNIXech s podporou X11 nebylo potřeba re-implementovat ovladače od 0. Zároveň ale potřebuje jistý dopping od kernelu (např. DRI nebo jadernou verzi ovladače v X). Takže je to imho takové sporné - já mám za to, že sahá přímo na HW.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.