(Saya melihat hubungan GNOME dan X. Saya ingin membagikan beberapa pemahaman saya. Saya akan menyajikannya dengan cara yang logis sebanyak yang saya bisa.)
1. Terdiri dari apa GUI?
Di bawah ini adalah ilustrasi komponen dasar GUI.
Komponen kuncinya adalah server tampilan . Ada beberapa server tampilan yang tersedia. Seperti:
- X11 (kebanyakan untuk * nix)
- Wayland (kebanyakan untuk * nix)
- Mir (kebanyakan untuk * nix)
- SurfaceFlinger (Ini untuk Google Android.)
- Quartz Compositor (Ini yang digunakan Apple MacOS.)
- Desktop Window Manager (Inilah yang digunakan Microsoft Windows.)
2. Apa itu X?
X, X11 dan X Window System adalah sinonim. Mereka semua mendukung sistem windowing . Sistem Windowing adalah jenis antarmuka pengguna grafis (GUI, seperti yang saya sebutkan di atas) yang mengimplementasikan paradigma WIMP (windows, ikon, menu, pointer) untuk antarmuka pengguna.
Berikut adalah daftar sistem windowing utama untuk sistem Linux dan Windows.
Komponen utama dari setiap sistem windowing biasanya disebut display server (tidak mengherankan karena sistem windowing adalah semacam GUI dan display server adalah bagian kunci dari setiap GUI), meskipun nama lain seperti window server atau compositor juga digunakan.
Aplikasi apa pun yang menjalankan dan menyajikan GUI adalah klien dari server tampilan . Server tampilan dan kliennya berkomunikasi satu sama lain melalui protokol komunikasi, yang biasanya disebut protokol server tampilan , server tampilan menjadi mediator antara klien dan pengguna. Server tampilan menerima semua input dari kernel, yang diterima oleh kernel dari semua perangkat input yang terpasang, seperti keyboard, perangkat penunjuk, atau layar sentuh dan mentransmisikannya ke klien yang benar. Server tampilan juga bertanggung jawab untuk output klien ke monitor komputer. Sebuah protokol display Serverdapat jaringan yang mampu atau bahkan jaringan transparan. (sehingga Anda dapat melihat, ini pada dasarnya hanya tentang aliran data dan perutean, data visual masih data.)
Dan menurut disini :
X Server adalah program yang menyediakan layanan input tampilan dan pengguna ke program lain. Sebagai perbandingan, server file menyediakan program lain dengan akses ke perangkat penyimpanan file. Server file biasanya terletak di lokasi yang jauh dan Anda menggunakan layanan server file dari mesin tempat Anda berada. Sebaliknya, X Server biasanya berjalan pada mesin tempat Anda berada ; tampilan dan layanan input pengguna dapat diminta oleh program yang berjalan di mesin Anda, serta oleh program yang berjalan di mesin jarak jauh .
Jadi X terdiri dari:
- server tampilan
- protokol tampilan server
- beberapa lib untuk pengembangan
- dan hal lainnya
Menurut disini :
X memberikan kerangka dasar untuk lingkungan GUI: menggambar dan memindahkan jendela pada perangkat layar dan berinteraksi dengan mouse dan keyboard. X tidak mengamanatkan antarmuka pengguna - ini ditangani oleh program individual. Dengan demikian, gaya visual lingkungan berbasis X sangat bervariasi; program yang berbeda dapat menghadirkan antarmuka yang sangat berbeda.
Dengan kata lain, X hanya memberikan program kemampuan untuk melakukan hal-hal dasar seperti menggambar / memindahkan jendela dan berinteraksi dengan input . X tidak menerapkan gaya visual. Jadi apa yang Anda katakan " ... Ini memberikan standar untuk aplikasi untuk menyajikan UI ... "
3. Apa itu GNOME / KDE
GNOME dan KDE keduanya Linux Desktop Environment . Lingkungan desktop adalah kumpulan program yang berjalan di atas sistem operasi, yang berbagi GUI umum .
Tapi seperti yang saya sebutkan di atas, X11, sebagai server tampilan, hanya menyediakan kemampuan menggambar dasar melalui beberapa lib seperti Xlib atau XCB. Aplikasi yang secara langsung menghubungkan X11 melalui lib semacam itu dapat memiliki gaya visual yang sangat berbeda .
Lalu bagaimana cara membuat GUI yang umum? Di sinilah widget alat . Seperti GTK + dan Qt . Mereka populer di sistem windowing Wayland dan X11 .
GNOME menggunakan GTK +.
KDE menggunakan Qt.
Dan di sini adalah perbandingan Lingkungan Desktop Sistem X Window.
Untuk meringkas...
Saya menggambar ilustrasi konseptual yang kasar. 3 bagian di atas OS sangat dapat disesuaikan. Itu sebabnya banyak fleksibilitas (kebingungan) muncul.
TAMBAH 1 - 1:26 PM 9/21/2018
Dan berikut adalah beberapa diskusi tentang QT dan GTK (mungkin offtopic ke utas ini ...)