Phoenix Muncul sebagai Pelayan X Moden yang Ditulis dari Awal menggunakan Zig


Phoenix adalah pelayan X baru yang ditulis dari awal menggunakan Zig, dengan tujuan memodenkan X11 tanpa bergantung pada kod Xorg.

Walaupun Wayland secara besar-besaran telah menggantikan Xorg, dan kebanyakan pengedaran Linux utama serta persekitaran desktop sama ada telah menghentikan sokongan untuk protokol paparan yang semakin tua ini atau sedang dalam proses melakukannya, usaha untuk memanjangkan hayat Xorg atau menggantikannya dengan alternatif serupa terus berlanjut. Contoh terkini termasuk projek seperti XLibre Xserver dan Wayback. Dan kini, satu nama baru menyertai kumpulan ini: Phoenix.

Ia adalah projek pelayan X baharu yang mengambil pendekatan yang asasnya berbeza terhadap X11. Ditulis sepenuhnya dari awal dalam bahasa pengaturcaraan Zig, ia bukan sekadar lagi satu cawangan kod Xorg dan tidak menggunakan semula kod warisannya. Sebaliknya, menurut pembangun, Phoenix bertujuan untuk menunjukkan bahawa protokol X11 itu sendiri tidak semestinya usang dan boleh dilaksanakan dengan cara yang lebih mudah, selamat, dan moden.

Phoenix direka untuk penggunaan desktop sebenar dan profesional, bukan untuk liputan protokol penuh. Ia hanya menyokong ciri X11 yang diperlukan oleh aplikasi moden, termasuk perisian lama seperti program berasaskan GTK2. Dengan mengabaikan bahagian yang jarang digunakan atau sudah lapuk, Phoenix mengekalkan kesederhanaan sambil masih menyokong banyak aplikasi.

Pada masa ini, Phoenix masih bersifat eksperimen dan belum sedia untuk digunakan setiap hari. Ia boleh menjalankan aplikasi mudah dengan pemecut perkakasan menggunakan GLX, EGL, atau Vulkan, tetapi hanya dalam susunan bersarang di bawah pelayan X yang lain. Keadaan ini akan berterusan sehingga projek ini sedia untuk penggunaan yang lebih mencabar.

Dari segi keselamatan, yang sebenarnya merupakan salah satu aspek yang paling banyak dikritik mengenai Xorg, Phoenix mengasingkan aplikasi secara lalai, dan akses kepada keupayaan sensitif seperti rakaman skrin atau kekunci pintas global dikawal melalui mekanisme kebenaran yang jelas. Penting untuk diperhatikan, ini dilakukan tanpa menjejaskan klien sedia ada, kerana percubaan akses tanpa kebenaran akan memulangkan data palsu dan bukannya ralat protokol.

Di bawah permukaan, Phoenix termasuk compositor terbina dalam yang membolehkan paparan tanpa sobek secara lalai, menyokong mematikan komposisi untuk aplikasi skrin penuh, dan direka untuk mengurangkan latensi compositor dan vsync. Sokongan multi-monitor yang betul adalah keutamaan, membolehkan kadar segar semula yang berbeza, paparan kadar segar semula berubah-ubah, dan sokongan HDR masa depan tanpa bergantung pada satu framebuffer global.

Phoenix juga sedang mempertimbangkan untuk meluaskan protokol apabila diperlukan. Sebagai contoh, ciri baharu seperti laporan DPI setiap monitor dirancang untuk memastikan aplikasi berskala dengan betul merentas tetapan DPI campuran. Jika diperlukan, Phoenix akan menambah sambungan protokol untuk perkara seperti HDR, sambil masih berfungsi dengan perisian sedia ada.

Adalah penting untuk menjelaskan bahawa projek ini tidak bertujuan untuk menggantikan Xorg. Phoenix sengaja mengelak daripada menyokong perkakasan lama, ciri protokol yang jarang digunakan, dan konfigurasi seperti pelbagai skrin X11 atau rendering GLX tidak langsung, dan menumpukan sepenuhnya pada sistem moden.

Keserasian Wayland adalah sebahagian daripada pelan jangka panjang. Para pembangun mengatakan Phoenix mungkin suatu hari nanti menyokong klien Wayland secara langsung atau menggunakan alat jambatan untuk menjalankan aplikasi yang hanya Wayland dalam persekitaran X11. Menjalankan Phoenix di bawah Wayland, sebagai alternatif kepada Xwayland, juga sedang dipertimbangkan.

Akhirnya, seperti yang saya sebutkan, projek ini berada pada peringkat awal, dan masih belum pasti sama ada ia akan berkembang menjadi versi stabil yang bersedia untuk pengeluaran dan diterima untuk kegunaan lebih meluas. Sehingga itu, untuk maklumat lanjut mengenai inisiatif baru ini, sila semak di sini.