Perbedaan antara Xorg dan Gnome / KDE / Xfce

21

Saya ingin belajar lebih banyak tentang sistem UNIX dan saya pikir saya punya pertanyaan yang cukup mudah. Saya rasa saya tahu apa yang digunakan untuk X: Ini memberikan standar untuk aplikasi untuk menyajikan UI mereka (antara lain).

Tetapi mengapa kemudian ada kebutuhan untuk Gnome / KDE dan bagaimana mereka berhubungan dengan X? Saya pikir mereka menggunakan X sebagai semacam antarmuka antara aplikasi dan GUI, sehingga GUI dapat disesuaikan sementara antarmuka tetap sama di seluruh aplikasi.

Apakah itu benar atau apakah Gnome / KDE independen dari X?

Liess Jemai
sumber

Jawaban:

28

(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.

masukkan deskripsi gambar di sini

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

masukkan deskripsi gambar di sini

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.

masukkan deskripsi gambar di sini

TAMBAH 1 - 1:26 PM 9/21/2018

Dan berikut adalah beberapa diskusi tentang QT dan GTK (mungkin offtopic ke utas ini ...)

smwikipedia
sumber
"Fakta bahwa istilah" server "diterapkan pada perangkat lunak di depan pengguna sering mengejutkan bagi pengguna yang terbiasa dengan program mereka menjadi klien untuk layanan pada komputer jarak jauh. Di sini, alih-alih basis data jarak jauh menjadi sumber daya untuk aplikasi lokal , tampilan grafik pengguna dan perangkat input menjadi sumber daya yang disediakan oleh server X lokal untuk program klien X lokal maupun yang di-host secara jarak jauh yang perlu membagikan grafik pengguna dan perangkat input untuk berkomunikasi dengan pengguna. " (lihat wiki )
yaobin
1
Jika seseorang bingung dengan kalimat "X Server biasanya berjalan pada mesin yang Anda berada di", silakan lihat komentar saya di atas. Terima kasih @smwikipedia karena telah memberikan jawaban yang sangat luar biasa!
yaobin
5

Xorg (dan Xfree sebelumnya, dan X10 sebelumnya ) adalah server untuk protokol yang lebih lengkap disebut Sistem X Window ; memungkinkan aplikasi untuk menggambar di "layar". Yang bisa di-remote dengan X. Gnome / KDE / Xfce dan lingkungan window manager / desktop lainnya adalah aplikasi khusus yang berjalan di X yang menggambar hal-hal seperti perbatasan dan ikon dan meminimalkan dan memaksimalkan bahwa aplikasi itu sendiri tidak.

Dan, karena Gnome dan KDE keduanya dapat (atau tidak) berjalan di MS Windows (dan Wayland ke berbagai tingkat), ya mereka (atau bisa) tidak tergantung pada X.

Elliott Frisch
sumber