Nel processo di apprendimento di determinate cose nella programmazione della GUI (ad esempio, riservando spazio sullo schermo per un'applicazione), devo imparare di più su Window Manager, di solito X11 su Linux (non sono sicuro che ci siano anche distro , che usano nient'altro che X11, anche se ho sentito parlare di Wayland , che non è ancora stato implementato in nessuno.)
Sono abbastanza nuovo nella programmazione e impaziente; quindi ci sto solo tuffando. Ora sto leggendo l'ICCCM, con la speranza di saperne di più. Questo documento si rivolge tuttavia a un pubblico che conosce (molto) più di me. Quindi ho trovato alcune informazioni e mi piacerebbe ricevere alcuni chiarimenti.
Sezione 2 delle citazioni ICCCM:
Si noti che tutti i dati trasferiti tra un proprietario e un richiedente devono generalmente passare tramite il server in un ambiente X versione 11. Un client non può presumere che un altro client possa aprire gli stessi file o persino comunicare direttamente. L'altro client potrebbe comunicare con il server mediante un meccanismo di rete completamente diverso (ad esempio, un client potrebbe essere DECnet e l'altro TCP / IP). Pertanto, il passaggio di riferimenti indiretti ai dati (come nomi di file, nomi host e numeri di porta e così via) è consentito solo se entrambi i client sono specificamente d'accordo.
A quanto ho capito, X Window Manager è basato su Top of X Server (grazie a Wikipedia). Nella citazione sopra: dice che il client può comunicare con il server usando DECnet o TCP / IP. Finora ho pensato che "server" fosse una figura retorica, ora ne dubito: X server è un server come in un "web server"? Come dovrei capire la sua funzione / definizione?
Quindi, ci sono spesso riferimenti a X11, Xorg, X Server e / o X Window Manager. Diventa confuso: X11 è un pacchetto che include Xorg e X Window Manager? In tal caso, c'è qualcos'altro in questo bundle X11?
X ha anche bisogno di mouse o tastiera o qualsiasi altro tipo di input: anche questa parte delle funzioni di X Server? X Window Manager si occupa solo della visualizzazione?
Infine, la citazione qui sopra menziona anche la comunicazione del cliente tra loro o meno: questo mi ha ricordato D-Bus, che ho usato un po 'per scopi di apprendimento. Con D-Bus puoi anche attivare eventi finestra. Questo mi confonde un po 'su come i programmi dovrebbero comunicare tra loro: * che differenza c'è tra i programmi che interagiscono usando X Server o usando D-Bus? *
È un peccato che questa informazione rimanga in qualche modo oscura, rende più difficile l'apprendimento, ma spero che tu possa far luce su questo :) Grazie.