Artikel ini membahas tentang bagaimana grafik disusun dalam Linux dan komponen apa saja yang membentuknya. Ini berisi banyak tangkapan layar dari berbagai implementasi lingkungan desktop.
Jika Anda tidak benar-benar membedakan antara KDE dan GNOME, atau jika Anda membedakannya tetapi ingin mengetahui alternatif lain yang ada, maka artikel ini cocok untuk Anda. Ini adalah gambaran umum, dan meskipun berisi banyak nama dan beberapa istilah, materi ini juga akan bermanfaat bagi pemula dan mereka yang baru mempelajari bidang ini. Linux.
Topik ini mungkin menarik bagi pengguna tingkat lanjut, baik mereka sedang menyiapkan akses jarak jauh atau mengimplementasikan thin client. Saya sering bertemu pengguna Linux berpengalaman yang mengatakan, "Server hanya memiliki baris perintah, dan saya tidak berencana mempelajari grafis secara detail, karena itu semua untuk pengguna dasar." Tetapi bahkan para ahli pun... Linux Dengan penuh kejutan dan kegembiraan, mereka menemukan opsi "-X" pada perintah ssh (dan untuk ini, penting untuk memahami cara kerja dan fungsi server X).

Saya telah mengajar berbagai mata kuliah selama hampir 15 tahun. Linux v ""Dan saya yakin bahwa banyak dari lebih dari lima ribu orang yang telah saya latih membaca dan mungkin menulis artikel di Habr. Kursus-kursus tersebut selalu sangat intensif (durasi kursus rata-rata adalah lima hari), mencakup topik-topik yang membutuhkan setidaknya sepuluh hari untuk dipahami sepenuhnya. Dan selama kursus, tergantung pada audiens (pemula atau administrator berpengalaman) dan "pertanyaan dari audiens," saya selalu memilih apa yang akan disampaikan secara lebih detail dan apa yang akan dibahas secara lebih dangkal, dengan lebih banyak waktu dialokasikan untuk utilitas baris perintah dan penerapannya secara praktis. Ada banyak topik seperti itu yang harus sedikit dikorbankan. Ini adalah "Sejarah" Linux", "Perbedaan dalam distribusi Linux"," "Tentang lisensi: GPL, BSD, ...", "Tentang grafis dan lingkungan desktop" (topik artikel ini), dll. Bukan berarti hal-hal tersebut tidak penting, tetapi biasanya ada banyak pertanyaan "di sini dan sekarang" yang jauh lebih mendesak dan hanya ada sekitar lima hari... Namun, untuk pemahaman umum tentang dasar-dasar OS Linux, memahami keragaman yang tersedia (sehingga bahkan menggunakan satu distribusi spesifik Linux, tetap memiliki pandangan yang lebih luas tentang seluruh dunia yang luas dan tak terbatas ini yang disebut "Linux”) Mempelajari topik-topik ini bermanfaat dan perlu.
Seiring berjalannya artikel, saya menyediakan tautan untuk setiap komponen bagi mereka yang ingin mendalami topik lebih dalam, misalnya artikel Wikipedia (sambil menunjuk ke versi yang lebih lengkap/berguna jika ada artikel berbahasa Inggris dan Rusia).
Untuk contoh dasar dan screenshot saya menggunakan distribusi openSUSE. Distribusi lain yang dikembangkan oleh komunitas dapat digunakan, selama terdapat sejumlah besar paket di repositori. Sulit, namun bukan tidak mungkin, untuk mendemonstrasikan variasi desain desktop pada distribusi komersial, karena seringkali hanya menggunakan satu atau dua lingkungan desktop yang paling terkenal. Dengan cara ini, pengembang mempersempit tugas untuk merilis OS yang stabil dan di-debug. Pada sistem yang sama saya menginstal semua DM/DE/WM (penjelasan istilah-istilah di bawah) yang saya temukan di repositori.
Tangkapan layar dengan “bingkai biru” diambil di openSUSE.
Saya mengambil tangkapan layar dengan "bingkai putih" di distribusi lain, seperti yang ditunjukkan di tangkapan layar.
Tangkapan layar dengan “bingkai abu-abu” diambil dari Internet, sebagai contoh desain desktop dari tahun-tahun sebelumnya.
Jadi, mari kita mulai.
Komponen utama penyusun grafis
Saya akan menyoroti tiga komponen utama dan mencantumkannya sesuai urutan peluncurannya saat startup sistem:
- DM (Manajer Tampilan);
- Server Tampilan;
- DE (Lingkungan Desktop).
Selain itu, sub-klausul penting dari Lingkungan Desktop:
- Manajer Aplikasi/Peluncur/Pengalih (tombol Mulai);
- WM (Manajer Jendela);
- berbagai perangkat lunak yang disertakan dengan lingkungan desktop.
Lebih detail pada setiap poin.
DM (Manajer Tampilan)
Aplikasi pertama yang diluncurkan saat Anda memulai “grafik” adalah DM (Display Manager), pengelola tampilan. Tugas utamanya:
- menanyakan pengguna mana yang diizinkan masuk ke sistem, meminta data otentikasi (kata sandi, sidik jari);
- pilih lingkungan desktop mana yang akan dijalankan.
Saat ini banyak digunakan di berbagai distro:
- (diganti ),
- ,
- ,
- .
- Yang juga perlu disebutkan adalah Fly-DM (digunakan di Astra).Linux).
Daftar DM yang ada selalu diperbarui




Perlu dicatat bahwa tangkapan layar berikut menggunakan pengelola tampilan LightDM yang sama, tetapi dalam distribusi yang berbeda (nama distribusi ditunjukkan dalam tanda kurung). Lihat betapa berbedanya tampilan DM ini berkat karya desainer dari berbagai distribusi.





Hal utama dalam keragaman ini adalah untuk memperjelas bahwa ada aplikasi yang bertanggung jawab untuk meluncurkan grafik dan memungkinkan pengguna untuk mengakses grafik ini, dan ada implementasi berbeda dari aplikasi ini yang berbeda dalam tampilan dan sedikit fungsionalitas (pemilihan lingkungan desain, pemilihan pengguna, versi untuk pengguna dengan penglihatan buruk, ketersediaan akses jarak jauh melalui protokol ).
Server Tampilan
Display Server adalah sejenis fondasi grafis, yang tugas utamanya adalah bekerja dengan kartu video, monitor, dan berbagai perangkat input (keyboard, mouse, touchpad). Artinya, sebuah aplikasi (misalnya, browser atau editor teks) yang dirender dalam “grafis” tidak perlu mengetahui cara bekerja secara langsung dengan perangkat, juga tidak perlu mengetahui tentang driver. X Window menangani semua ini.
Jika berbicara tentang Display Server, teknologi ini sudah ada sejak bertahun-tahun lalu. Linux, dan di Unix itu dimaksudkan sebagai sebuah aplikasi atau dalam bahasa umum X (X).
Sekarang banyak distro yang menggantikan X .
Anda juga dapat membaca:
- ,
- ,
- (diperlukan untuk meluncurkan aplikasi grafis dari jarak jauh, misalnya menggunakan PuTTY).
Pertama, mari kita luncurkan X dan beberapa aplikasi grafis di dalamnya.
Workshop “menjalankan X dan aplikasi didalamnya”
Saya akan melakukan segalanya mulai dari pengguna webinaruser yang baru dibuat (akan lebih mudah, tetapi tidak lebih aman, melakukan semuanya sebagai root).
- Karena X memerlukan akses ke perangkat, saya memberikan akses: Daftar perangkat ditentukan dengan melihat kesalahan saat memulai X di log (/home/webinaruser/.local/share/xorg/Xorg.77.log)
% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*
- Setelah itu saya meluncurkan X:
% X -retro :77 vt8 &
Pilihan: * -retro - diluncurkan dengan latar belakang klasik "abu-abu", dan bukan dengan warna hitam sebagai default; * :77 - Saya menetapkan (apa pun dalam rentang yang masuk akal dimungkinkan, hanya :0 yang kemungkinan besar sudah ditempati oleh grafik yang sudah berjalan) nomor layar, sebenarnya semacam pengidentifikasi unik yang memungkinkan untuk membedakan beberapa X yang berjalan; * vt8 - menunjukkan terminal, di sini /dev/tty8, di mana X akan ditampilkan).
- Luncurkan aplikasi grafis:
Untuk melakukan ini, pertama-tama kita menetapkan variabel yang dengannya aplikasi akan memahami X mana yang saya jalankan untuk mengirimkan apa yang perlu digambar:
% export DISPLAY=":77"
Anda dapat melihat daftar X yang sedang berjalan seperti ini:
ps -fwwC X
Setelah kita mengatur variabelnya, kita dapat meluncurkan aplikasi di Xs kita - misalnya, saya meluncurkan jam:
% xclock -update 1 &
% xhitung &
% mata-x -g 200x150-300+50 &

Gagasan utama dan kesimpulan dari fragmen ini:
- X memerlukan akses ke perangkat: terminal, kartu video, perangkat input,
- Xs sendiri tidak menampilkan elemen antarmuka apa pun - ini adalah kanvas abu-abu (jika dengan opsi "--retro") atau hitam dengan ukuran tertentu (misalnya, 1920x1080 atau 1024x768) untuk menjalankan aplikasi grafis di dalamnya.
- Pergerakan “silang” menunjukkan bahwa X melacak posisi mouse dan mengirimkan informasi ini ke aplikasi yang berjalan di dalamnya.
- X juga menangkap penekanan tombol pada keyboard dan mengirimkan informasi ini ke aplikasi.
- Variabel DISPLAY memberi tahu aplikasi grafis di layar mana (setiap X diluncurkan dengan nomor layar unik saat startup), dan oleh karena itu, di antara aplikasi yang berjalan di mesin saya, X perlu digambar. (Dimungkinkan juga untuk menentukan mesin jarak jauh dalam variabel ini dan mengirim output ke Xs yang berjalan di mesin lain di jaringan.) Karena Xs diluncurkan tanpa opsi -auth, tidak perlu berurusan dengan variabel XAUTHORITY atau xhost memerintah.
- Aplikasi grafis (atau sebagaimana klien X menyebutnya) dirender dalam X - tanpa kemampuan untuk memindahkan/menutup/mengubahnya "-g (Lebar)x(Tinggi)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)". Dengan tanda minus masing-masing dari tepi kanan dan bawah.
- Dua istilah yang patut disebutkan: X-server (begitulah sebutan X) dan X-clients (begitulah sebutan aplikasi grafis apa pun yang berjalan di X). Ada sedikit kebingungan dalam memahami terminologi ini; banyak yang memahaminya justru sebaliknya. Dalam kasus ketika saya terhubung dari "mesin klien" (dalam terminologi akses jarak jauh) ke "server" (dalam terminologi akses jarak jauh) untuk menampilkan aplikasi grafis dari server pada monitor saya, maka server X dimulai pada mesin tempat monitor ( yaitu, di "mesin klien", bukan di "server"), dan klien X memulai dan dijalankan di "server", meskipun klien tersebut ditampilkan di monitor "mesin klien".

komponen DE
Selanjutnya mari kita lihat komponen-komponen yang biasanya menyusun sebuah desktop.
Komponen DE: Tombol Mulai dan Bilah Tugas
Mari kita mulai dengan apa yang disebut tombol “Start”. Seringkali ini adalah applet terpisah yang digunakan di "Taskbar". Biasanya juga terdapat applet untuk berpindah antar aplikasi yang sedang berjalan.

Setelah melihat lingkungan desktop yang berbeda, saya akan merangkum aplikasi tersebut dengan nama umum “Manajer Aplikasi (Peluncur/Pengalih)”, yaitu alat untuk mengelola aplikasi (meluncurkan dan beralih di antara aplikasi yang sedang berjalan), dan juga menunjukkan utilitas yang merupakan contoh aplikasi jenis ini.
- Muncul dalam bentuk tombol "Start" pada "Taskbar" klasik (sepanjang salah satu tepi layar):
○ panel xfce4,
○ panel pasangan/panel gnome,
○ panel vala,
○ warna2. - Anda juga dapat memiliki "bilah tugas berbentuk MacOS" yang terpisah (tidak sepanjang tepi layar), meskipun banyak bilah tugas dapat muncul dalam kedua gaya tersebut. Di sini, perbedaan utamanya hanya bersifat visual - adanya "efek pembesaran piktogram saat mengarahkan kursor".
○ dermaga,
○ dermaga latte,
○ dermaga Kairo,
○ papan. - Dan/Atau layanan yang meluncurkan aplikasi saat Anda menekan tombol pintas (di banyak lingkungan desktop, komponen serupa diperlukan dan memungkinkan Anda mengonfigurasi tombol pintas Anda sendiri):
○ sxhkd.
- Ada juga berbagai menu seperti “peluncur” (dari bahasa Inggris Launch (peluncuran)):
○ dmenu-jalankan,
○ rofi -tampilkan mabuk,
○ Albert,
○ mendengus.

Komponen DE: WM (Window Manager)
WM (Window Manager) - aplikasi yang bertanggung jawab untuk mengelola windows, menambahkan kemampuan untuk:
- memindahkan jendela di sekitar desktop (termasuk jendela standar dengan menahan tombol Alt di bagian mana pun dari jendela, bukan hanya bilah judul);
- mengubah ukuran jendela, misalnya dengan menyeret “bingkai jendela”;
- menambahkan “judul” dan tombol untuk meminimalkan/memaksimalkan/menutup aplikasi ke antarmuka jendela;
- konsep aplikasi mana yang berada dalam “fokus”.

Saya akan mencantumkan yang paling terkenal (dalam tanda kurung saya menunjukkan DE mana yang digunakan secara default):
- (GNOME3)
- (Pasangan)
- (GNOME2)
- (Kayu manis)
- (KDE)
- (XFCE),
- .

Saya juga akan mencantumkan "WM lama dengan elemen DE". Itu. selain window manager, mereka memiliki elemen seperti tombol "Start" dan "Taskbar", yang lebih khas dari DE lengkap. Padahal, seberapa “tua” mereka jika IceWM dan WindowMaker sudah merilis versi terbarunya pada tahun 2020. Ternyata yang lebih tepat bukan “lama”, tapi “orang lama”:
- ,
- ,
- , , , ,
- ...





Selain "klasik" ("stack window manager"), ada baiknya disebutkan secara khusus , yang memungkinkan Anda menempatkan jendela "berubin" di seluruh layar, serta untuk beberapa aplikasi, desktop terpisah untuk setiap aplikasi yang diluncurkan di seluruh layar. Ini agak tidak biasa bagi orang yang belum pernah menggunakannya sebelumnya, tetapi karena saya sendiri telah menggunakan antarmuka seperti itu cukup lama, saya dapat mengatakan bahwa ini cukup nyaman dan Anda akan cepat terbiasa dengan antarmuka seperti itu, setelah itu Window manager “klasik” sepertinya tidak lagi nyaman.
- ,
- ,
- ,
- ,
- ,
- ubin,
- bspwm,
- herbaltluftwm,
- ...
- kembar
- .

Proyek ini juga layak disebutkan secara terpisah dan konsep "manajer jendela komposit," yang menggunakan akselerasi perangkat keras untuk menampilkan transparansi, bayangan, dan berbagai efek 3D. Sekitar 10 tahun yang lalu, terjadi ledakan efek 3D pada Linux-desktop. Saat ini, banyak pengelola jendela yang terintegrasi dalam DE (Desktop Environment) sebagian memanfaatkan kemampuan komposit. Baru-baru ini, - produk dengan fungsi serupa dengan Compiz for Wayland.

Daftar rinci berbagai window manager juga dapat ditemukan di .
Komponen DE: istirahat
Perlu juga diperhatikan komponen desktop berikut (di sini saya menggunakan istilah bahasa Inggris yang sudah ada untuk mendeskripsikan jenis aplikasi - ini bukan nama aplikasi itu sendiri):
- Applet:
- Perangkat Lunak (Widget toolkit) - seringkali “set minimum” perangkat lunak tertentu disertakan dengan lingkungan:
DE (Lingkungan Desktop)
Dari komponen-komponen di atas diperoleh apa yang disebut “Desktop Design Environment”. Seringkali semua komponennya dikembangkan menggunakan perpustakaan grafis yang sama dan menggunakan prinsip desain yang sama. Dengan demikian, minimal, gaya umum tampilan aplikasi tetap dipertahankan.
Di sini kita dapat menyorot lingkungan desktop yang ada saat ini berikut ini:
GNOME dan KDE dianggap yang paling umum, dan XFCE berada di urutan kedua.

Perbandingan berbagai parameter dalam bentuk tabel dapat ditemukan di bagian yang sesuai .
variasi DE

Bahkan ada contoh menarik seperti itu dari sejarah: pada tahun 2003-2007 untuk Linux Sun menciptakan "tema desktop 3D" bernama "Project Looking Glass". Saya sendiri pernah menggunakan desktop ini, atau lebih tepatnya "bermain-main dengannya," karena penggunaannya agak sulit. "Tema 3D" ini ditulis dalam Java pada saat kartu grafis yang mampu menampilkan 3D belum ada. Oleh karena itu, semua efek dihitung ulang oleh prosesor, dan komputer harus sangat bertenaga, jika tidak, semuanya akan berjalan lambat. Namun hasilnya sangat bagus. Panel aplikasi 3D dapat diputar dan dibuka. Anda dapat berputar di dalam silinder desktop dengan panorama wallpaper 360 derajat. Terdapat beberapa aplikasi yang indah: misalnya, mendengarkan musik dalam bentuk "pengubah CD," dan lain sebagainya. Anda dapat menontonnya di YouTube. tentang proyek ini, hanya kualitas videonya yang kemungkinan besar akan buruk, karena pada tahun-tahun itu tidak mungkin mengunggah video berkualitas tinggi.

Desktop yang ringan. Proyek ini sudah ada cukup lama, sejak tahun 1996. Dalam beberapa tahun terakhir, ini cukup populer, dibandingkan dengan KDE dan GNOME yang lebih berat, pada banyak distribusi yang memerlukan antarmuka desktop yang ringan dan “klasik”. Ia memiliki banyak pengaturan dan sejumlah besar programnya sendiri: terminal (terminal xfce4), pengelola file (thunar), penampil gambar (ristretto), editor teks (mousepad).

Ini digunakan dalam distribusi Elementary OS. Bisa dibilang ada desktop yang dikembangkan dan digunakan dalam satu distribusi saja, tetapi tidak banyak digunakan (atau bahkan tidak digunakan sama sekali) di distribusi lain. Setidaknya, mereka belum populer atau meyakinkan banyak orang tentang manfaat pendekatan mereka. Pantheon bertujuan untuk membangun antarmuka yang mirip dengan... macOS.

Opsi dengan panel dok:

Fokus kuat pada efek grafis dan widget (sejak lingkungan desktop lain tidak memiliki widget desktop seperti kalender/jam). Menggunakan perpustakaannya sendiri. Ada sejumlah besar aplikasi "indah" sendiri: terminal (Terminologi), pemutar video (Rage), penampil gambar (Ephoto).

Ini adalah cabang dari Enlightenment17, yang digunakan dalam distribusi Bodhi.Linux.

Awalnya, antarmuka desktop “klasik”, dibuat sebagai lawan dari KDE, yang ditulis di perpustakaan QT, pada saat itu didistribusikan di bawah lisensi yang tidak sesuai untuk distribusi komersial.

Sejak versi ketiga, GNOME mulai hadir dengan GNOME Shell yang memiliki “tampilan non-klasik”, yang tidak disukai semua pengguna (perubahan antarmuka apa pun yang tiba-tiba sulit diterima pengguna). Akibatnya, munculnya proyek fork yang melanjutkan pengembangan desktop bergaya “klasik” ini: MATE dan Cinnamon. Digunakan secara default di banyak distribusi komersial. Ia memiliki banyak pengaturan dan aplikasinya sendiri.

Ini muncul dari GNOME2 dan terus mengembangkan lingkungan desain ini. Ini memiliki sejumlah besar pengaturan dan fork aplikasi yang digunakan di GNOME2 (nama baru digunakan) agar tidak membingungkan fork tersebut dengan versi barunya untuk GNOME3).

Sebuah cabang dari GNOME Shell yang menyediakan antarmuka bergaya “klasik” kepada pengguna (seperti halnya di GNOME2).
Ia memiliki banyak pengaturan dan aplikasi yang sama seperti untuk GNOME Shell.

Fork gaya "klasik" GNOME yang dikembangkan sebagai bagian dari distribusi Solus, namun kini juga hadir sebagai desktop mandiri di berbagai distribusi lainnya.

(atau sering disebut, cukup KDE)
Lingkungan desktop yang dikembangkan oleh proyek KDE.
Ini memiliki sejumlah besar pengaturan yang tersedia untuk pengguna sederhana dari antarmuka grafis dan banyak aplikasi grafis yang dikembangkan dalam kerangka desktop ini.

Pada tahun 2008, KDE merilis implementasi baru KDE Plasma (mesin desktop banyak ditulis ulang). Selain itu, seperti halnya GNOME/MATE, tidak semua penggemar KDE menyukainya. Hasilnya, muncullah cabang proyek yang melanjutkan pengembangan versi sebelumnya, yang disebut TDE (Trinity Desktop Environment).

Salah satu lingkungan desktop baru, yang ditulis menggunakan Qt (bahasa yang sama yang digunakan oleh KDE). Lingkungan ini menawarkan berbagai pilihan kustomisasi dan antarmuka yang cukup indah (meskipun subjektif) dan canggih. Lingkungan ini sedang dikembangkan sebagai bagian dari distribusi Deepin. LinuxTersedia juga paket untuk distribusi lainnya.

Terbang
Contoh lingkungan desktop yang ditulis menggunakan Qt. Dikembangkan sebagai bagian dari distribusi tersebut. Astra Linux.

Lingkungan desktop yang ringan. Seperti beberapa contoh sebelumnya, ditulis menggunakan Qt. Sebenarnya ini merupakan kelanjutan dari proyek LXDE dan hasil merger dengan proyek Razor-qt.
Seperti yang Anda lihat, desktopnya ada di Linux Antarmuka dapat terlihat sangat berbeda, dan ada sesuatu yang sesuai dengan selera setiap orang: mulai dari yang sangat indah dengan efek 3D hingga yang minimalis, dari yang "klasik" hingga yang tidak biasa, dari yang aktif menggunakan sumber daya sistem hingga yang ringan, dari layar besar hingga tablet/smartphone.
Baiklah, saya harap saya telah berhasil memberikan gambaran tentang komponen-komponen utama yang membentuk grafis dan desktop di sistem operasi. Linux.
Materi artikel ini diuji pada Juli 2020 di sebuah webinar. Anda bisa menontonnya .
Itu saja. Saya harap ini bermanfaat. Jika Anda memiliki pertanyaan atau komentar, silakan menulis. Saya akan dengan senang hati menjawabnya. Baiklah, datang dan belajarlah di !
Sumber: www.habr.com
