ค้นหาเว็บไซต์

Phoenix โผล่ขึ้นมาเป็นเซิร์ฟเวอร์ X สมัยใหม่ที่เขียนขึ้นใหม่ทั้งหมดด้วย Zig


Phoenix เป็นเซิร์ฟเวอร์ X ใหม่ที่เขียนขึ้นจากศูนย์ด้วยภาษา Zig มีเป้าหมายเพื่อทำให้ X11 ทันสมัยขึ้นโดยไม่พึ่งพาโค้ดของ Xorg

แม้ว่า Wayland จะเข้ามาแทนที่ Xorg เป็นส่วนใหญ่ และการแจกแจง Linux และสภาพแวดล้อมเดสก์ท็อปหลักส่วนใหญ่ได้หยุดสนับสนุนโปรโตคอลการแสดงผลเก่าหรือกำลังอยู่ในกระบวนการทำเช่นนั้น ความพยายามในการยืดอายุของ Xorg หรือทดแทนด้วยทางเลือกที่คล้ายกันยังคงดำเนินต่อไป ตัวอย่างล่าสุดได้แก่โครงการต่างๆ เช่น XLibre Xserver และ Wayback และตอนนี้ มีชื่อใหม่เข้าร่วมกลุ่มนี้: Phoenix

นี่คือโครงการเซิร์ฟเวอร์ X ใหม่ที่มีแนวทางแตกต่างจาก X11 โดยสิ้นเชิง เขียนขึ้นทั้งหมดตั้งแต่เริ่มต้นด้วยภาษาโปรแกรม Zig ไม่ใช่การสร้างสาขาใหม่ของฐานรหัส Xorg และไม่ได้ใช้ซ้ำโค้ดเก่าของมัน ตามที่นักพัฒนากล่าว Phoenix มีเป้าหมายที่จะพิสูจน์ว่าโปรโตคอล X11 เองไม่ได้ล้าสมัยโดยธรรมชาติ และสามารถนำไปใช้ในวิธีที่ง่ายขึ้น ปลอดภัยขึ้น และทันสมัยมากขึ้นได้

Phoenix ถูกออกแบบมาสำหรับการใช้งานบนเดสก์ท็อปจริงและการใช้งานระดับมืออาชีพ ไม่ได้ครอบคลุมโปรโตคอลทั้งหมด มันสนับสนุนเฉพาะฟีเจอร์ของ X11 ที่แอปพลิเคชันสมัยใหม่ต้องการ รวมถึงซอฟต์แวร์เก่าอย่างโปรแกรมที่ใช้ GTK2 ด้วย การตัดส่วนที่ใช้น้อยหรือเก่าออกช่วยให้ Phoenix ทำงานได้ง่ายขึ้นในขณะที่ยังสนับสนุนแอปพลิเคชันจำนวนมาก

ตอนนี้ Phoenix ยังคงเป็นเวอร์ชันทดลองและยังไม่พร้อมสำหรับการใช้งานในชีวิตประจำวัน มันสามารถรันแอปง่าย ๆ ที่ใช้ความเร็วของฮาร์ดแวร์โดยใช้ GLX, EGL, หรือ Vulkan แต่จะทำได้เฉพาะในสภาพแวดล้อมแบบ nested ภายใต้ X server อีกตัวหนึ่ง สถานการณ์นี้จะคงอยู่จนกว่าผลิตภัณฑ์พร้อมสำหรับการใช้งานที่ต้องการมากขึ้น

ในด้านความปลอดภัย ซึ่งจริงๆ แล้วเป็นหนึ่งในประเด็นที่ Xorg มักได้รับคำวิจารณ์มากที่สุด Phoenix จะแยกแอปพลิเคชันโดยค่าเริ่มต้น และการเข้าถึงความสามารถที่ละเอียดอ่อน เช่น การบันทึกหน้าจอหรือปุ่มลัดทั่วระบบ จะต้องได้รับอนุญาตอย่างชัดเจน สิ่งสำคัญคือ สิ่งนี้ทำโดยไม่ทำลายไคลเอนต์ที่มีอยู่ เพราะการพยายามเข้าถึงโดยไม่ได้รับอนุญาตจะได้รับข้อมูลจำลองแทนที่จะเป็นข้อผิดพลาดของโปรโตคอล

ใต้ฝากระโปรง Phoenix มาพร้อมกับคอมโพสิตเตอร์ในตัวที่ช่วยให้การเรนเดอร์ไม่เกิดการฉีกขาดเป็นค่าเริ่มต้น รองรับการปิดการคอมโพสิตสำหรับแอปพลิเคชันเต็มหน้าจอ และออกแบบมาเพื่อลดความหน่วงของคอมโพสิตเตอร์และ vsync การรองรับมัลติ-มอนิเตอร์อย่างเหมาะสมเป็นสิ่งสำคัญ ช่วยให้ใช้อัตราการรีเฟรชต่างกัน จอแสดงผลอัตรารีเฟรชตัวแปร และรองรับ HDR ในอนาคตโดยไม่ต้องพึ่ง framebuffer แบบรวมเดียว

Phoenix กำลังพิจารณาขยายโปรโตคอลเมื่อจำเป็น ตัวอย่างเช่น ฟีเจอร์ใหม่อย่างการรายงาน DPI ต่อหน้าจอได้มีการวางแผนเพื่อให้แอปสามารถปรับขนาดได้อย่างเหมาะสมในสภาพแวดล้อมที่มี DPI ผสม หากจำเป็น Phoenix จะเพิ่มการขยายโปรโตคอลสำหรับสิ่งต่าง ๆ เช่น HDR ในขณะที่ยังคงทำงานร่วมกับซอฟต์แวร์ที่มีอยู่

สิ่งสำคัญคือการต้องชี้แจงให้ชัดเจนว่าโครงการนี้ไม่ได้มีเป้าหมายที่จะมาแทนที่ Xorg Phoenix ตั้งใจหลีกเลี่ยงการสนับสนุนฮาร์ดแวร์เก่า คุณสมบัติของโปรโตคอลที่ซับซ้อน และการตั้งค่าต่าง ๆ เช่น หน้าจอ X11 หลายจอหรือการเรนเดอร์ GLX แบบอ้อม และมุ่งเน้นไปที่ระบบสมัยใหม่ทั้งหมด

ความเข้ากันได้กับ Wayland เป็นส่วนหนึ่งของแผนระยะยาว นักพัฒนากล่าวว่า Phoenix อาจสนับสนุนลูกค้า Wayland โดยตรงในอนาคต หรือใช้เครื่องมือสะพานเพื่อรันแอปที่เป็น Wayland เท่านั้นในสภาพแวดล้อม X11 การรัน Phoenix แบบซ้อนอยู่ภายใต้ Wayland เป็นทางเลือกแทน Xwayland ก็อยู่ระหว่างการพิจารณาเช่นกัน

สุดท้าย อย่างที่ฉันได้กล่าวไปแล้ว โครงการนี้อยู่ในช่วงเริ่มต้น และยังต้องรอดูกันต่อไปว่าจะพัฒนาไปสู่เวอร์ชันที่เสถียรพร้อมสำหรับการผลิตและได้รับการยอมรับให้ใช้อย่างกว้างขวางหรือไม่ จนกว่าจะถึงตอนนั้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงการริเริ่มใหม่นี้ สามารถตรวจสอบได้ที่นี่