Wayland บน Linux คืออะไร และแตกต่างจาก X อย่างไร

เผยแพร่แล้ว: 2023-07-17
ตัวจัดการไฟล์เปิดบนแล็ปท็อป System76 Gazelle
Hannah Stryker / How-To Geek
Wayland เป็นระบบหน้าต่างทดแทนสำหรับลีนุกซ์รุ่นดิสทริบิวชั่น มันมาแทนที่มาตรฐาน X11 ที่มีอายุมากขึ้น เนื่องจากต้องมีการแก้ไขแอปพลิเคชันเพื่อให้ใช้งานร่วมกันได้ การยอมรับจึงเป็นไปอย่างเชื่องช้า ในขณะที่เขียน ความปลอดภัยที่เพิ่มขึ้นเป็นข้อได้เปรียบหลักเหนือ X11

X11 หรือ X Window System ช่วยให้สภาพแวดล้อมเดสก์ท็อปแบบกราฟิกของคุณแสดงและควบคุมหน้าต่างได้ Wayland เป็นสิ่งทดแทนสำหรับ X11 ได้รับการออกแบบให้รวดเร็วและปลอดภัยยิ่งขึ้น นี่คือสิ่งที่คุณต้องรู้เกี่ยวกับพวกเขา

สารบัญ

เวย์แลนด์คืออะไร?
X มีหลายชื่อ
X11 ทำงานอย่างไร
Wayland ทำงานอย่างไร
การยอมรับอย่างช้าๆของ Wayland โดยแอปพลิเคชัน
คุณใช้ Wayland หรือ X11 หรือไม่
คุณควรใช้ Wayland หรือ X11?

เวย์แลนด์คืออะไร?

Wayland เป็นสิ่งทดแทนที่ทันสมัยสำหรับ X11 ซึ่งเป็นระบบหน้าต่างเริ่มต้นบน Linux มานานหลายทศวรรษ Wayland เป็นโปรโตคอลการสื่อสารและกำหนดข้อความระหว่างเซิร์ฟเวอร์แสดงผล X Window และแอปพลิเคชันไคลเอ็นต์ โครงการ Wayland จัดเตรียมไคลเอ็นต์และไลบรารีเซิร์ฟเวอร์ที่ช่วยให้แอปพลิเคชันสามารถใช้โปรโตคอลได้

โครงการ Wayland เริ่มต้นโดยนักพัฒนา Red Hat ในปี 2551

X มีหลายชื่อ

X Window System เป็นระบบ windowing ซึ่งเปิดตัวครั้งแรกสำหรับระบบปฏิบัติการ Unix โดย Massachusetts Institute of Technology ในปี 1984 แอพพลิเคชั่นสามารถสร้างจากฟังก์ชั่นที่นำเสนอโดยระบบ windowing เพื่อสร้างส่วนติดต่อผู้ใช้

ภายในปี 1987 X Window System มาถึงเวอร์ชัน 11 และกลายเป็นที่รู้จักในชื่อ X11 ขณะนี้ได้รับการจัดการโดย X.Org Foundation ยังคงเป็นเวอร์ชัน 11 แม้ว่าจะมีการเปิดตัวที่มีขนาดเล็กกว่าจำนวนมากตั้งแต่ปี 1987 ในขณะที่เขียน เวอร์ชันที่เสถียรในปัจจุบันคือ X11R7.7

"X" ในชื่อไม่ได้หมายถึงสิบในเลขโรมัน และไม่ได้สื่อถึง "Xtra", "Xtended" หรืออะไรทำนองนั้น ระบบหน้าต่างก่อนหน้านี้เรียกว่า "W" สำหรับ "หน้าต่าง" และพวกเขาก็ย้ายไปที่ตัวอักษรถัดไปในตัวอักษรเมื่อเริ่มโครงการใหม่

คุณจะได้ยิน X Window System เรียกว่า “X”, “X11”, “Xorg”, “X Windows” และ “X Window System”

X11 ทำงานอย่างไร

X Window System จัดการเหตุการณ์ระดับต่ำและดั้งเดิม เช่น การโต้ตอบกับเมาส์ และการวาดและการย้ายหน้าต่าง แอปพลิเคชันจัดการภาพจริงและการออกแบบส่วนต่อประสาน ลักษณะที่ปรากฏของหน้าต่าง ปุ่มที่มี และตำแหน่งที่ตั้งของปุ่มเหล่านี้ เป็นตัวเลือกที่โปรแกรมเมอร์สร้าง X Window System ดึงการออกแบบที่เป็นผลลัพธ์ไปยังหน้าจอ

X11 ให้คำจำกัดความสำหรับการสื่อสารที่ต้องผ่านระหว่างส่วนประกอบต่างๆ ของระบบ X Window ที่ใช้งานได้ จำเป็นต้องมีการสื่อสารนี้เนื่องจากรหัสที่แอปพลิเคชันที่เปิดใช้งาน X ใช้เพื่อวาดหน้าต่างและองค์ประกอบอินเทอร์เฟซไม่ได้อยู่ในแอปพลิเคชัน งานนั้นใช้ร่วมกันระหว่างเซิร์ฟเวอร์ X และ Window Manager

แอปพลิเคชันเป็นไคลเอนต์ของเซิร์ฟเวอร์ X Window Manager เป็นไคลเอนต์ประเภทพิเศษ เซิร์ฟเวอร์ X มีหน้าที่รับผิดชอบในการจัดการทรัพยากร ดำเนินการคำขอวาดภาพ และจัดการเหตุการณ์ต่างๆ เช่น การกดปุ่มและการคลิกเมาส์ไปยังแอปพลิเคชันที่เหมาะสม

นอกจากนี้ยังทำหน้าที่เป็นคนกลางในการสื่อสารระหว่าง Window Manager และแอปพลิเคชัน โดยเป็นนายหน้าส่งข้อความไปมาระหว่างกัน Window Manager จะรักษารายการของหน้าต่างที่แอปพลิเคชันเปิดไว้ ตำแหน่งที่อยู่บนหน้าจอ ขนาดหน้าต่าง หากมีการเหลื่อมกัน และอื่นๆ

ตัวจัดการหน้าต่างแบบรวมจะรักษาบัฟเฟอร์นอกหน้าจอสำหรับแต่ละหน้าต่าง โดยจะรวมบัฟเฟอร์เหล่านี้เป็นภาพเดียวที่แสดงถึงหน้าต่างบนสุด ซึ่งแสดงถึงเดสก์ท็อปทั้งหมด ซึ่งเขียนลงบนหน้าจอ

สภาพแวดล้อมเดสก์ท็อปแบบกราฟิกสมัยใหม่ทั้งหมด รวมถึง GNOME และ KDE ใช้ตัวจัดการหน้าต่างแบบรวม

Wayland ทำงานอย่างไร

Wayland มีจุดประสงค์เพื่อแก้ปัญหาของ X11 สถาปัตยกรรม X11 ต้องการข้อความจำนวนมาก เซิร์ฟเวอร์ X ตั้งอยู่ระหว่างไคลเอ็นต์และ Window Manager มันยังอยู่ระหว่างทุกสิ่งและ—ผ่านเคอร์เนล—ฮาร์ดแวร์กราฟิก ปริมาณการส่งข้อความอาจนำไปสู่ความหน่วงและประสบการณ์การมองเห็นที่ล้าหลังและตื่นตระหนก

มีฐานรหัสขนาดใหญ่ด้วย มีแอปพลิเคชันเซิร์ฟเวอร์ แอปพลิเคชัน Window Manager และไลบรารี X11 ที่ไคลเอนต์ใช้ ยิ่งรหัสฐานของคุณมีขนาดใหญ่ (และเก่ากว่า) มากเท่าไหร่ การรักษาก็ยิ่งยากขึ้นเท่านั้น และคุณก็จะยิ่งมีปัญหากับรหัสเดิมมากขึ้นเท่านั้น

ด้วยการเปลี่ยนแปลงสถาปัตยกรรม Wayland ได้ปรับปรุงโค้ดเบสให้ทันสมัยและคล่องตัว ให้ประโยชน์ด้านประสิทธิภาพและความปลอดภัยที่ดีขึ้น

พวกเขาได้รวมเซิร์ฟเวอร์และตัวจัดการหน้าต่างไว้ในแอปพลิเคชันเดียว พวกเขาลบรหัสใด ๆ ที่ทำหน้าที่ซึ่งขณะนี้ดำเนินการโดยเคอร์เนล แทนที่จะพยายามทำซ้ำ พวกเขาใช้ประโยชน์จากฟังก์ชันการทำงานของเคอร์เนล

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

แอปพลิเคชันจะอัปเดตอินเทอร์เฟซผู้ใช้ตามนั้น ข้อแตกต่างที่สำคัญคือการเรนเดอร์นั้นดำเนินการภายในแอปพลิเคชันเอง โดยใช้ไลบรารี Wayland ที่เชื่อมโยง

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

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

การยอมรับอย่างช้าๆของ Wayland โดยแอปพลิเคชัน

Wayland เป็นระบบหน้าต่างเริ่มต้นใน Debian 10 และใหม่กว่า, Fedora 34 หรือใหม่กว่า, Ubuntu 18.04 หรือใหม่กว่า และการกระจายอื่นๆ เช่น Arch Linux อย่างไรก็ตาม เรื่องนี้ Wayland รันแอปพลิเคชัน X11 บ่อยกว่านั้น

มีชั้นความเข้ากันได้ที่เรียกว่า XWayland ที่อนุญาตให้แอปพลิเคชัน X11 ทำงานภายใต้ Wayland สิ่งนี้จำเป็นเนื่องจากแอปพลิเคชัน X11 ส่วนใหญ่ไม่ได้รับการแก้ไขและย้ายไปยัง Wayland

ในสภาพแวดล้อมเดสก์ท็อปที่มีตัวประกอบ Wayland เช่น GNOME แอปพลิเคชันที่เป็นทางการ เช่น โปรแกรมแก้ไขข้อความและแผนที่ GNOME ไฟล์ และปฏิทินล้วนเป็นแอปพลิเคชันดั้งเดิมของ Wayland แต่แอปพลิเคชัน X11 ส่วนใหญ่ยังคงไม่ถูกแตะต้อง แอปพลิเคชันดั้งเดิมของ X11

Nvidia เปิดตัวไดรเวอร์ Linux GPU แบบโอเพ่นซอร์สพร้อม Catch
ที่เกี่ยวข้อง Nvidia เปิดตัวไดรเวอร์ Linux GPU แบบโอเพ่นซอร์สพร้อมตัวจับ

มิดเดิลแวร์ XWayland มักจะทำงานได้ดี แต่อาจมีปัญหากับแอปพลิเคชัน X11 บางตัวที่ทำหน้าที่เกี่ยวกับหน้าจอในระดับต่ำ เช่น การบันทึกหน้าจอ การใช้ Wayland กับ NVIDIA อาจสร้างความเจ็บปวดได้พอๆ กับ X11 แม้ว่าฉันจะไม่มีปัญหาเกี่ยวกับไดรเวอร์รายวันเมื่อใช้กับ NVIDIA GeForce GT 1030 GPU

ผู้เขียนแอปพลิเคชัน X11 บางคนมักจะหวังว่าแอปพลิเคชันของตนจะทำงานได้ดีกับ XWayland และพวกเขาสามารถหลีกเลี่ยงที่จะต้องทำใหม่ในแอปพลิเคชัน Wayland ไม่ต้องแปลกใจหากการครอบครองและการย้ายไปยัง Wayland นั้นใช้เวลานานและช้า เนื่องจากแอปพลิเคชันใหม่ ๆ นำมาใช้ แต่แอปพลิเคชัน X11 ที่มีอยู่ส่วนใหญ่ยังคงอยู่เช่นเดิม ทำให้ความหวังของพวกเขาอยู่ที่ XWayland

ที่เกี่ยวข้อง: มีอะไรใหม่ใน Ubuntu 21.04 'Hirsute Hippo'

คุณใช้ Wayland หรือ X11 หรือไม่

หากคุณใช้ลีนุกซ์รุ่นใหญ่รุ่นใดรุ่นหนึ่ง เป็นไปได้ว่าคุณกำลังใช้ Wayland อยู่แล้ว คุณสามารถตรวจสอบได้โดยออกคำสั่งต่อไปนี้

 สะท้อน $XDG_SESSION_TYPE

ในระบบที่ใช้ Wayland เอาต์พุตจะเป็น:

และบนระบบที่รัน X Window System คุณจะเห็น:

ไม่ค่อยมีการตั้งค่าตัวแปรสภาพแวดล้อม XDG_SESSION_TYPE ในกรณีนี้ คุณสามารถใช้คำสั่งนี้แทน:

 loginctl แสดงเซสชัน $(loginctl แสดงผู้ใช้ $(whoami) -p แสดง --value) -p ประเภท --value

คำสั่ง loginctl ที่ซ้อนอยู่ภายในใช้คำสั่ง show-user เพื่อแสดงคุณสมบัติของผู้ใช้ที่มีชื่อ คำสั่ง whoami ให้ชื่อผู้ใช้ปัจจุบันแก่เรา ตัวเลือก -p (คุณสมบัติ) จำกัดเอาต์พุตจาก loginctl เป็นข้อมูลเกี่ยวกับการตั้งค่า "แสดง" และเราใช้ตัวเลือก --value เพื่อส่งคืนค่าเท่านั้น เราไม่ต้องการให้มีสตริง “Display=” ในการตอบกลับจาก loginctl ทั้งหมดนี้ให้ ID เซสชันแก่เรา

เราส่ง ID เซสชันไปยังภายนอก loginctl และใช้คำสั่ง show-session เพื่อแสดงแอตทริบิวต์ของเซสชัน เราใช้ตัวเลือก -p (คุณสมบัติ) เพื่อจำกัดเอาต์พุตให้เป็นข้อมูลเกี่ยวกับประเภทเซสชัน และใช้ตัวเลือก --value เพื่อแสดงค่าโดยไม่มีป้ายกำกับ "Type="

บนคอมพิวเตอร์ที่ใช้ Wayland คุณจะเห็น:

ใช้คำสั่ง loginctl บน Fedora Linux เพื่อตรวจสอบว่า Wayland หรือ X11 ใช้งานอยู่หรือไม่

หากคุณใช้ X Window System คุณจะเห็น:

การใช้คำสั่ง loginctl บน Manjaro inux เพื่อตรวจสอบว่ามีการใช้ Wayland หรือ X11 อยู่หรือไม่

คุณควรใช้ Wayland หรือ X11?

เว้นแต่คุณจะมีปัญหา คุณสามารถใช้สิ่งที่คุณใช้อยู่แล้ว แต่ถ้าคุณสังเกตเห็นความไม่เสถียรหรือการอัปเดตหน้าจอกระตุก คุณสามารถลองเปลี่ยนไปใช้อันใดก็ได้ที่คุณไม่ได้ใช้

ใน GNOME หากคุณต้องการสลับและลองใช้ระบบอื่น ให้คลิกชื่อผู้ใช้ของคุณที่หน้าจอเข้าสู่ระบบ จากนั้นคลิกไอคอนรูปเฟืองที่มุมขวาล่างของหน้าจอ

เมนูดร็อปดาวน์ใน GNOME ที่ให้คุณเลือกประสบการณ์เดสก์ท็อปแบบ Wayland หรือ X11

เมนูจะเสนอ GNOME รุ่นต่างๆ ให้คุณ ตัวเลือกที่กล่าวถึง "Xorg" ใช้ระบบ X Window และตัวเลือกที่ไม่ใช้ Wayland

ที่เกี่ยวข้อง: วิธีแสดงรายการตัวแปรสภาพแวดล้อมบน Linux