X Window System ใช้สถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์ เซิร์ฟเวอร์ X ทำงานบนเครื่องที่มีจอแสดงผล (จอภาพ + อุปกรณ์อินพุต) ในขณะที่ไคลเอนต์ X สามารถทำงานบนเครื่องอื่น ๆ และเชื่อมต่อกับเซิร์ฟเวอร์ X โดยใช้โปรโตคอล X (ไม่ใช่โดยตรง แต่แทนที่จะใช้ห้องสมุดเช่น Xlib หรือ XCB ที่ไม่บล็อกเหตุการณ์ที่ทันสมัยกว่า) โปรโตคอล X ได้รับการออกแบบให้สามารถขยายได้และมีส่วนขยายจำนวนมาก (ดูxdpyinfo(1)
)
เซิร์ฟเวอร์ X ทำงานในระดับต่ำเท่านั้นเช่นการสร้างและทำลายหน้าต่างการดำเนินการวาดภาพ (ในปัจจุบันการวาดภาพส่วนใหญ่จะทำบนไคลเอนต์และส่งเป็นภาพไปยังเซิร์ฟเวอร์) ส่งกิจกรรมไปที่หน้าต่าง ... คุณสามารถเห็นว่าน้อย เซิร์ฟเวอร์ X ทำโดยเรียกใช้X :1 &
(ใช้หมายเลขใด ๆ ที่ไม่ได้ใช้โดยเซิร์ฟเวอร์ X อื่น) หรือXephyr :1 &
(Xephyr เรียกใช้เซิร์ฟเวอร์ X ที่ฝังอยู่ในเซิร์ฟเวอร์ X ปัจจุบันของคุณ) จากนั้นเรียกใช้xterm -display :1 &
และเปลี่ยนเป็นเซิร์ฟเวอร์ X ใหม่ (คุณอาจต้องตั้งค่า X ใช้xauth(1)
)
อย่างที่คุณเห็นเซิร์ฟเวอร์ X ทำน้อยมากมันไม่ได้วาดแถบชื่อเรื่องไม่ย่อขนาดหน้าต่าง / ทำไอคอนไม่จัดการตำแหน่งหน้าต่าง ... แน่นอนคุณสามารถควบคุมตำแหน่งหน้าต่างด้วยตนเองโดยใช้คำสั่ง เช่นxterm -geometry -0-0
แต่คุณมักจะมีไคลเอนต์ X พิเศษที่ทำสิ่งต่าง ๆ ข้างต้น ลูกค้ารายนี้เรียกว่าการจัดการหน้าต่าง สามารถมีตัวจัดการหน้าต่างได้ครั้งละหนึ่งตัวเท่านั้น หากคุณยังมีการเปิดเซิร์ฟเวอร์เอ็กซ์เปลือยของคำสั่งก่อนหน้านี้คุณสามารถพยายามที่จะเรียกผู้จัดการหน้าต่างบนมันเหมือนtwm
, metacity
, kwin
, compiz
, larswm
, pawm
...
ดังที่เรากล่าว X ดำเนินการในระดับต่ำเท่านั้นและไม่มีแนวความคิดระดับสูงเช่นปุ่มกดเมนูแถบเครื่องมือ ... เหล่านี้จัดทำโดยห้องสมุดที่เรียกว่าชุดเครื่องมือเช่น Xaw, GTK, Qt, FLTK, ...
สภาพแวดล้อมเดสก์ท็อปคือชุดของโปรแกรมที่ออกแบบมาเพื่อมอบประสบการณ์ผู้ใช้ที่เป็นหนึ่งเดียว ดังนั้นโดยทั่วไปสภาพแวดล้อมเดสก์ท็อปจะมีพาเนลตัวเรียกใช้งานแอปพลิเคชันถาดระบบแผงควบคุมโครงสร้างพื้นฐานการกำหนดค่า (ที่จะบันทึกการตั้งค่า) สภาพแวดล้อมเดสก์ท็อปที่รู้จักกันดีบางอย่างคือ KDE (สร้างขึ้นโดยใช้ชุดเครื่องมือ Qt), Gnome (โดยใช้ GTK), การตรัสรู้ (ใช้ไลบรารีชุดเครื่องมือของตัวเอง), ...
เอฟเฟกต์เดสก์ท็อปสมัยใหม่บางตัวทำได้ดีที่สุดโดยใช้ฮาร์ดแวร์ 3 มิติ ดังนั้นปรากฏองค์ประกอบใหม่ผู้จัดการคอมโพสิต ส่วนขยาย X ซึ่งเป็นส่วนขยาย XComposite จะส่งเนื้อหาของหน้าต่างไปยังตัวจัดการคอมโพสิต ผู้จัดการคอมโพสิตแปลงเนื้อหาเหล่านั้นให้เป็นพื้นผิวและใช้ฮาร์ดแวร์ 3 มิติผ่าน OpenGL เพื่อเขียนเนื้อหาเหล่านั้นในหลาย ๆ ด้าน (การผสมอัลฟ่าการฉาย 3 มิติ, ... )
เมื่อไม่นานมานี้เซิร์ฟเวอร์ X ได้พูดคุยโดยตรงกับอุปกรณ์ฮาร์ดแวร์ ส่วนสำคัญของการจัดการอุปกรณ์นี้ได้ถูกย้ายไปยังเคอร์เนลระบบปฏิบัติการ: DRI (อนุญาตให้เข้าถึงฮาร์ดแวร์ 3 มิติโดย X และไคลเอนต์การเรนเดอร์โดยตรง), evdev (อินเทอร์เฟซแบบรวมสำหรับการจัดการอุปกรณ์อินพุต), KMS (การย้ายโหมดกราฟิกไปยังเคอร์เนล) , GEM / TTM (การจัดการหน่วยความจำพื้นผิว)
ดังนั้นด้วยความซับซ้อนของการจัดการอุปกรณ์ซึ่งส่วนใหญ่อยู่นอก X ทำให้ง่ายต่อการทดลองกับระบบหน้าต่างแบบง่าย Waylandเป็นระบบหน้าต่างตามแนวคิดของตัวจัดการคอมโพสิตเช่นระบบหน้าต่างเป็นตัวจัดการคอมโพสิต Wayland ใช้ประโยชน์จากการจัดการอุปกรณ์ที่ย้ายออกจาก X และเรนเดอร์โดยใช้ OpenGL
สำหรับ Unity นั้นเป็นสภาพแวดล้อมเดสก์ท็อปที่ออกแบบมาให้มีส่วนต่อประสานผู้ใช้ที่เหมาะสมกับเน็ตบุ๊ก