ความแตกต่างระหว่าง Xorg และ Gnome / KDE / Xfce


21

ฉันต้องการเรียนรู้เพิ่มเติมเกี่ยวกับระบบ UNIX และฉันคิดว่าฉันมีคำถามตรงไปตรงมา ฉันคิดว่าฉันรู้ว่า X ใช้สำหรับอะไร: เป็นมาตรฐานสำหรับแอปพลิเคชันในการนำเสนอ UI ของพวกเขา (เหนือสิ่งอื่นใด)

แต่ทำไมถึงมีความจำเป็นสำหรับ Gnome / KDE และพวกมันเกี่ยวข้องกับ X อย่างไร ฉันคิดว่าพวกเขาใช้ X เป็นอินเทอร์เฟซบางอย่างระหว่างแอปพลิเคชันและ GUI ดังนั้น GUI สามารถปรับแต่งได้ในขณะที่อินเทอร์เฟซยังคงเหมือนเดิมในแอปพลิเคชัน

เป็นจริงหรือเป็น Gnome / KDE เป็นอิสระจาก X?

คำตอบ:


29

(ฉันกำลังมองหาความสัมพันธ์ของ GNOME และ X ฉันต้องการแบ่งปันความเข้าใจของฉันฉันจะนำเสนอในรูปแบบตรรกะเท่าที่ฉันจะทำได้)

1. GUI ประกอบด้วยอะไร?

ด้านล่างเป็นภาพประกอบขององค์ประกอบพื้นฐานของ GUI

ป้อนคำอธิบายรูปภาพที่นี่

องค์ประกอบที่สำคัญคือการแสดงบนเซิร์ฟเวอร์ มีเซิร์ฟเวอร์ดิสเพลย์หลายแห่ง เช่น:

  • X11 (ส่วนใหญ่ใช้สำหรับ * ระวัง)
  • Wayland (ส่วนใหญ่ใช้สำหรับ * ระวัง)
  • เมียร์ (ส่วนใหญ่สำหรับ * ระวัง)
  • SurfaceFlinger (นี่สำหรับ Google Android)
  • นักแต่งเพลง Quartz (นี่คือสิ่งที่ Apple MacOS ใช้)
  • Desktop Window Manager (นี่คือสิ่งที่ Microsoft Windows ใช้)

2. X คืออะไร

X, X11 และ X Window System เป็นคำพ้องความหมาย พวกเขาทั้งหมดยืนเป็นระบบ windowing Windowing System เป็นส่วนหนึ่งของส่วนติดต่อผู้ใช้แบบกราฟิก (GUI, ดังที่ฉันได้กล่าวไปแล้ว) ซึ่งใช้ WIMP (windows, ไอคอน, เมนู, ตัวชี้) กระบวนทัศน์สำหรับส่วนติดต่อผู้ใช้

นี่คือรายการของระบบหน้าต่างที่สำคัญสำหรับทั้งระบบ Linux และ Windows

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

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

และตามที่นี่ :

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

ดังนั้น X ประกอบด้วย:

  • เซิร์ฟเวอร์ดิสเพลย์
  • โปรโตคอลเซิร์ฟเวอร์ดิสเพลย์
  • libs บางอย่างสำหรับการพัฒนา
  • และสิ่งอื่น ๆ

ป้อนคำอธิบายรูปภาพที่นี่

ตามที่นี่ :

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

ในคำอื่น ๆ X เพียง แต่ช่วยให้โปรแกรมที่ความสามารถในการทำสิ่งพื้นฐานเช่นการวาดภาพ / ย้ายหน้าต่างและการป้อนข้อมูลการโต้ตอบ X ไม่บังคับใช้สไตล์ภาพ ดังนั้นสิ่งที่คุณพูดว่า " ... มันเป็นมาตรฐานสำหรับแอปพลิเคชันในการนำเสนอ UI ของพวกเขา ... " ไม่ถูกต้อง

3. GNOME / KDE คืออะไร

GNOME และ KDE มีทั้ง Linux Desktop Environment สภาพแวดล้อมเดสก์ทอปที่เป็นมัดของโปรแกรมที่ทำงานบนระบบปฏิบัติการที่ใช้ร่วมกัน GUI

แต่เช่นเดียวกับที่ฉันได้กล่าวถึงข้างต้น X11 ซึ่งเป็นเซิร์ฟเวอร์การแสดงผลจะให้ความสามารถในการวาดขั้นพื้นฐานผ่าน libs บางตัวเช่น Xlib หรือ XCB การใช้งานที่เชื่อมต่อโดยตรง X11 ผ่าน libs ดังกล่าวสามารถมีรูปแบบภาพที่แตกต่างกันอย่างสิ้นเชิง

ดังนั้นจะสร้าง GUI ทั่วไปได้อย่างไร มาที่นี่ที่วิดเจ็ต toolkits เช่นดี +และQt พวกเขาเป็นที่นิยมใน Wayland และ X11 ระบบ windowing

GNOME ใช้ GTK +

KDE ใช้ Qt

และนี่คือการเปรียบเทียบสภาพแวดล้อมเดสก์ท็อปของ X Window System

เพื่อสรุป ...

ฉันวาดภาพประกอบแนวความคิดคร่าวๆ 3 ส่วนเหนือระบบปฏิบัติการนั้นสามารถปรับแต่งได้ นั่นเป็นสาเหตุที่ทำให้เกิดความยืดหยุ่น (ความสับสน) มากมาย

ป้อนคำอธิบายรูปภาพที่นี่

เพิ่ม 1 - 1:26 PM 9/21/2018

และนี่คือการสนทนาบางส่วนเกี่ยวกับ QT และ GTK (อาจจะไม่น่าสนใจสำหรับเธรดนี้แม้ว่า ... )


"ความจริงที่ว่าคำว่า" เซิร์ฟเวอร์ "ถูกนำไปใช้กับซอฟต์แวร์ต่อหน้าผู้ใช้มักจะแปลกใจที่ผู้ใช้คุ้นเคยกับโปรแกรมของพวกเขาเป็นลูกค้าในการให้บริการบนคอมพิวเตอร์ระยะไกลที่นี่มากกว่าฐานข้อมูลระยะไกลเป็นทรัพยากรสำหรับแอพท้องถิ่น จอแสดงผลกราฟิกและอุปกรณ์ป้อนข้อมูลของผู้ใช้กลายเป็นทรัพยากรที่มีให้โดยเซิร์ฟเวอร์ X ภายในเครื่องสำหรับโปรแกรม X ไคลเอ็นต์ทั้งในและนอกโฮสต์ที่ต้องการแบ่งปันกราฟิกและอุปกรณ์ป้อนข้อมูลของผู้ใช้เพื่อสื่อสารกับผู้ใช้ " (ดูวิกิพีเดีย )
yaobin

1
ในกรณีที่ใครบางคนสับสนกับประโยค "X Server มักจะทำงานบนเครื่องที่คุณอยู่" โปรดดูความคิดเห็นของฉันด้านบน ขอบคุณ @smwikipedia ที่ให้คำตอบที่ยอดเยี่ยมมาก!
yaobin

5

Xorg (และก่อนหน้านี้ XFree และก่อนหน้านี้ X10 ) เป็นเซิร์ฟเวอร์สำหรับโปรโตคอลที่สมบูรณ์มากขึ้นที่เรียกว่าระบบวินโดว์ ; อนุญาตให้แอปพลิเคชันวาดบน "หน้าจอ" ซึ่งสามารถอยู่ในระยะไกลได้ด้วย X. Gnome / KDE / Xfce และระบบจัดการหน้าต่าง / เดสก์ท็อปอื่น ๆเป็นแอปพลิเคชั่นพิเศษที่ทำงานใน X ที่วาดสิ่งต่าง ๆ เช่นเส้นขอบและไอคอนและย่อเล็กสุด

และเนื่องจาก Gnome และ KDE ทั้งสองสามารถ (หรือไม่) ทำงานบน MS Windows (และ Wayland ไปยังองศาที่ต่างกัน) ใช่พวกเขาเป็นอิสระ (หรือสามารถ) อิสระของ X

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.