ทำไม Wayland ถึงดีกว่า?


177

ตามที่ประกาศเมื่อเร็ว ๆ นี้โดย Mark Shuttleworth อูบุนตูจะย้ายไปใช้ Wayland ในฐานะผู้จัดการการแสดงผล

อะไรคือความแตกต่างที่ใหญ่ที่สุดระหว่าง X11 และ Wayland ทำไม Wayland ถึงทำให้ Ubuntu ดีขึ้น?


5
เมื่อเดือนธันวาคม 2556 ดูเหมือนว่า Ubuntu ที่ใช้ Unity จะใช้ Mir display server แทนผู้แต่งพื้นฐาน Wayland เริ่มตั้งแต่ Ubuntu 14.10: link linkตัวแปรอื่น ๆ ของ Ubuntu จะย้ายไปที่ Wayland: link
Diego

4
นี่คือวิดีโอยอดเยี่ยมที่อธิบาย X และทำไมผู้คนถึงต้องการแทนที่: youtube.com/watch?v=cQoQE_HDG8g
Jason

Ubuntu 18 (Bionic) จะใช้ xorg เป็นค่าเริ่มต้น แต่ wayland ยังคงเป็นตัวเลือกบนหน้าจอเข้าสู่ระบบ: blog.ubuntu.com/2018/01/26/…
Kris

ฉันจะบอกว่า X ดีกว่า ฉันจะไม่พูดถึงเรื่องเทคนิค แต่ฉันจะบอกว่าฉันวางเฟรมบน youtube ด้วย Wayland ถ้าฉันปรับขนาดหน้าต่างหรือไป / ออกเต็มหน้าจอ ด้วย X ไม่มีปัญหา แม้ว่าความเร็วจะเท่ากัน เคอร์เซอร์ของเมาส์บน Wayland ให้ความรู้สึกผ่อนคลายกว่า X. X ยังคงเป็น no1 ของฉัน
Luka

คำตอบ:


136

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

เปรียบเทียบกับ X stack ที่คุณมีบิตและบ็อบทั่วสถานที่ ความยุ่งเหยิงของ X บางตัวผ่านการออกแบบที่ยืดหยุ่นบางตัวมีความเจ็บปวดเพิ่มมากขึ้น ผู้แต่งเพลงทั้งหมด (Compiz / Metacity / Mutter / KWin / etc) ถูกเพิ่มเข้ามาภายหลัง พวกเขาอยู่ที่แกนกลางของพวกเขาแฮ็กที่จะทำสิ่งที่ X ควรทำเอง หากสิ่งต่าง ๆ ขยายตัวออกไปอย่างที่เคยเป็นมาเราจะไปถึงจุดที่โครงการไม่สามารถรักษาได้

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

อย่างไรก็ตามมีสองประเด็นที่ฉันยังไม่เห็นวิธีแก้ไข:

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

  • นอกจากนี้ยังรองรับไดรเวอร์ ไดรเวอร์แบบปิดแหล่งที่มายังไม่สนับสนุนเทคโนโลยี KMS / shared-GEM / shared-DRM ที่ Wayland เจริญรุ่งเรือง คนพิถีพิถันอาจไม่เป็นไรกับ Nouveau แต่บางคนที่จ่าย 100-400 ปอนด์สำหรับการ์ดกราฟิก 3D ประสิทธิภาพสูงจะไม่มีความสุขกับประสิทธิภาพ 3 มิติที่ไม่สม่ำเสมอที่พวกเขาต้องการเมื่อใช้ไดรเวอร์แบบเปิดในปัจจุบัน

    ปรับปรุง: Nvidia คือการทำงานเพื่อสนับสนุนทั้ง Wayland และเมีย


ปรับปรุง 2018 17.10 ใช้ Wayland เป็นเซิร์ฟเวอร์ดิสเพลย์เริ่มต้น (เว้นแต่ว่าคุณมีไดร์เวอร์ปิดหรือไดร์เวอร์ที่ไม่รองรับหรือจำเป็นต้องมี X) 18.04 และ 18.10 ทั้งคู่ใช้ X เป็นค่าเริ่มต้นทั่วไป (แม้ว่าคุณจะสามารถติดตั้ง Wayland ได้)

ฉันไม่ได้รับผิดชอบอะไรเลย แต่จากตำแหน่งนี้ดูเหมือนว่าเรายังคงเป็นตัวชี้วัด Nvidia ห่างจากการฉุดตัวจริง จนกระทั่งถึงจุดนั้นฉันไม่คิดว่าเราจะเห็นความคิดและการพัฒนาพลังมากพอที่จะนำ Wayland มาใช้ ตลาดเกม / การแสดงนั้นกำลังใช้ X อยู่ตลาด MCE นั้นใช้ X (และ framebuffers โดยตรง) ฉันไม่แน่ใจว่า Wayland จะมีโอกาสจริง


21
สิ่งที่โปร่งใสของเครือข่ายเป็นสิ่งที่ล้นเกินด้วยเหตุผลหลายประการ 1. การส่งต่อ Pure X นั้นเร็วพอเพียงผ่าน LAN raw X ทางอินเทอร์เน็ตไม่สามารถใช้ได้เนื่องจากความล่าช้า เพื่อให้ได้ประสิทธิภาพที่ดีคุณต้องใช้โปรโตคอลบุคคลที่สามเช่น NX หรือ VNC 2. ทั้ง NX และ VNC เป็นความเจ็บปวดอย่างมากในการตั้งค่าเนื่องจากสถาปัตยกรรมของ X มันควรจะง่ายขึ้นด้วย Wayland 3. ชุดเครื่องมือที่ทันสมัยเพียงไม่กี่ชุดใช้รูปวาดของ X พวกเขาวาดตัวเองเป็นบิตแมปและส่งไปที่ X ซึ่งเป็นเช่นเดียวกับ Wayland และจะมีลักษณะเครือข่ายเดียวกัน
Timmmm

4
ฉันเห็นด้วยกับจุดที่ 1 แต่ผ่าน LAN ที่ดีการส่งต่อ X ไม่สามารถแตะต้องได้สำหรับคุณภาพหรือประสิทธิภาพ ดีกว่าทางเลือกอย่างใดอย่างหนึ่งในประสบการณ์ของฉัน
Oli

1
สถานการณ์ของปี 2556 มีความชัดเจนมากขึ้นเกี่ยวกับความโปร่งใสของเครือข่าย: askubuntu.com/a/359870/203271
Diego

2
@poolie: ดูเหมือนว่าพวกเขาจะเปลี่ยนใจ ;-)
Peque

2
จากBionicBeaver / ReleaseNotes : "X เป็นเซิร์ฟเวอร์ดิสเพลย์เริ่มต้น Wayland มีให้ในรูปแบบตัวอย่างทางเทคนิคและคาดว่าจะเป็นเซิร์ฟเวอร์ดิสเพลย์เริ่มต้นใน 20.04 LTSหากต้องการทดลองใช้เพียงเลือก Ubuntu บน Wayland จากฟันเฟืองในการเข้าสู่ระบบ หน้าจอขณะนี้บันทึก X.org สามารถดูได้ที่ ~ / .local / share / xorg "[focus mine]
Dennis Williamson

56

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

X มี API การวาดสองรูป หนึ่งในนั้นคือส่วนหนึ่งของโพรโทคอล X11 ซึ่งเก่าแก่ไร้ประโยชน์และไม่มีใครใช้ อื่น ๆ คือส่วนขยาย XRender ซึ่งให้การดำเนินงานคอมโพสิตที่ทันสมัยในหมู่สิ่งอื่น ๆ เช่นการไล่ระดับสี นี่คือสิ่งที่ไคโรใช้ X มี API แบบตัวอักษร

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

วิธีเดียวที่แสดงผลคือการคัดลอกบัฟเฟอร์ของไคลเอ็นต์ไปยังหน้าจอ

ในแง่ของผลประโยชน์ Wayland เป็นจำนวนมากที่มีความซับซ้อนน้อยกว่า X ซึ่งควรจะทำให้มันง่ายต่อการรักษา - แม้ว่าบางส่วนของความเรียบง่ายนี้มาจากการผลักดันความซับซ้อน (เช่น: วิธีการจริงวาดลงบนที่บัฟเฟอร์โปร่งใสระบบเครือข่าย) ชั้นอื่น ๆ ของ กอง ด้วยการทำให้ลูกค้ารับผิดชอบทั้งหมดของการเรนเดอร์ลูกค้าสามารถฉลาดขึ้นเกี่ยวกับสิ่งต่าง ๆ เช่นการกำหนดบัฟเฟอร์คู่

มีประโยชน์อื่นนอกเหนือจากกราฟิก ยกตัวอย่างเช่นมันง่ายกว่าแอพพลิเคชั่น Sandbox


2
ฟังดูเหมือน DirectX ของ Microsoft เป็นแบบไหน?
Anwar

3
ฉันใช้ core X11 โปรโตคอลการวาด API เพราะเร็วกว่า XRender
étale-cohomology

3
ฉันยังได้รับ Microsoft wibes โดย Wayland และ systemd และไม่นั่นไม่ใช่สิ่งที่ดี พวกเขาละเมิดกฎการพัฒนาซอฟต์แวร์พื้นฐาน ใน systemd เพียงเพราะมันง่ายสำหรับนักพัฒนาของ systemd ในเวย์แลนด์เพราะพวกเขาต้องการเกมที่เร็วกว่า (?) และเรนเดอร์และโยนสิ่งดีๆมากมายออกไป
Anders

18

ความแตกต่างที่สำคัญในสายตาของฉันคือ Wayland อยู่ใกล้กับเคอร์เนลมากกว่า X-Server ด้วยการย้ายไดรเวอร์กราฟิกจาก X ไปยังเคอร์เนล (เรียกว่าการตั้งค่าโหมดเคอร์เนล KMS), Wayland วางแผนที่จะใช้ฟังก์ชันใหม่นี้เพื่อแทนที่ X. คุณคาดหวังที่จะเห็นสิ่งต่อไปนี้ ...

มีรอยเท้าน้อยกว่า X - เนื่องจากหน้าจอถูกจัดการโดยเคอร์เนล Wayland จะไม่ต้องใช้งานมากเท่าที่จะสามารถใช้งานได้ สิ่งนี้เป็นไปได้ทั้งสองวิธีเนื่องจากฉันสงสัยว่าการส่งต่อ X (ดูที่หน้าจอหนึ่งบนพีซีเครื่องอื่น) อาจหายไปด้วย X

คุณลักษณะ KMS: ความสามารถในการเปลี่ยนความละเอียดหน้าจอโดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ X (แม้ว่าฉันเชื่อว่านี่ได้รับการแก้ไขใน X a ในขณะที่กลับอย่างน้อยสำหรับ NVIDIA) คอนโซลดีบักบนเคอร์เนล panic สำหรับชิปเซ็ต intel (ย้ายไปนูโว) สิ่งนั้น

ใครสามารถแก้ไขฉันในสิ่งนี้ถ้าฉันผิด?


4
KMS & GEM ไม่ย้ายไดรเวอร์กราฟิกไปยังเคอร์เนลเพียงบางส่วนเท่านั้นที่ถูกย้ายไปยังเคอร์เนล (บิตที่พูดกับฮาร์ดแวร์โดยตรงและจำเป็นต้องอยู่ในเคอร์เนลเพื่อให้ไดรเวอร์ที่แตกต่างกันสามารถอยู่ร่วมกันได้เช่น กำลังเขียนไปยังพอร์ต I / O และการจัดการหน่วยความจำ) KMS & GEM ถูกใช้ไปแล้วโดย X ในวันนี้อย่างน้อยก็สำหรับไดรเวอร์โอเพ่นซอร์สที่ทันสมัย ​​(intel, radeon, nouveau) BTW: ฉันสงสัยอย่างจริงจังว่าการย้ายไดรเวอร์กราฟฟิกทั้งหมดไปยังเคอร์เนลจะได้รับการยอมรับจาก Linus ... ;)
JanC

4
โอ้และ KMS ไม่จำเป็นต้องเปลี่ยนความละเอียดหน้าจอ (เป็นไปได้ตั้งแต่ฉันใช้ X มานานกว่า 10 ปีที่แล้ว) แต่มันช่วยให้ไดรเวอร์ที่แตกต่างกัน (เช่นไดรเวอร์ framebuffer คอนโซล, ไดรเวอร์ X และตอนนี้เป็นไดรเวอร์ Wayland) ให้ความร่วมมือได้ง่ายขึ้น ในอดีตมันไม่ชัดเจนสำหรับแต่ละคนในสิ่งที่ "รัฐ" ฮาร์ดแวร์กราฟิกอยู่ที่จุดหนึ่งในเวลาและจำนวนมากของการคาดเดาหรือการแก้ปัญหากรรมสิทธิ์ขึ้นอยู่กับไดรเวอร์ถูกนำมาใช้
JanC

1
ไม่เป็นความจริงเลยที่การส่งต่อ X จะหายไปเนื่องจาก X ยังคงสามารถใช้เป็นลูกค้าใน Wayland ได้ wayland.freedesktop.orgมีตัวอย่างของสิ่งนั้น แต่ X เป็นวิธีที่น่ากลัวทีเดียวในการทำสิ่งนั้น ถึงเวลาที่จะถูกแทนที่ ในหลายกรณีดูเหมือนว่าสิ่งต่าง ๆ เช่น GTK กับ Broadway จะเป็นแนวทางที่ดีกว่า
Jo-Erlend Schinstad

3
ส่วนขยาย RandR ให้คุณเปลี่ยนความละเอียดหน้าจอโดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ X
ไม่ระบุชื่อ

14

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


นี่คือสิ่งที่ฉันพิจารณาถึงความได้เปรียบที่ยิ่งใหญ่ที่สุดของ X ใน Wayland ที่เสนอ
กริช Jace

7

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


3

สองสิ่งเล็ก ๆ น้อย ๆ ที่ทุกคนจะสังเกตเห็นได้อย่างรวดเร็วในการทำงานแบบวันต่อวัน:

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

1
Wayland นั้นแย่กว่านั้นถ้าโปรแกรมถูกล็อคด้วยเหตุผล การมี wm ที่แตกต่างกันเป็นสิ่งที่ดี ฉันใช้เครือข่าย X11 เป็นประจำ (ทุกวัน) บางโปรแกรมหยุดทำงานใน Wayland (ฉันใช้ Ubuntu 18.04)
Anders
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.