(ฉันกำลังมองหาความสัมพันธ์ของ 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 (อาจจะไม่น่าสนใจสำหรับเธรดนี้แม้ว่า ... )