ในกระบวนการของการเรียนรู้ที่จะทำบางสิ่งในการเขียนโปรแกรม GUI (เช่นการจองพื้นที่บนหน้าจอสำหรับแอปพลิเคชัน) ฉันต้องเรียนรู้เพิ่มเติมเกี่ยวกับ Window Manager โดยปกติคือ X11 บน Linux (ฉันไม่แน่ใจว่ามีของ distro ซึ่งใช้อย่างอื่นนอกเหนือจาก X11 ถึงแม้ว่าฉันเคยได้ยินเกี่ยวกับWaylandซึ่งยังไม่ได้นำมาใช้เลย)
ฉันค่อนข้างใหม่กับการเขียนโปรแกรมและใจร้อน ดังนั้นฉันแค่ดำน้ำเข้าไป ตอนนี้ฉันกำลังอ่าน ICCCM ด้วยความหวังว่าจะได้เรียนรู้เพิ่มเติม อย่างไรก็ตามเอกสารนี้มีจุดมุ่งหมายเพื่อสาธารณะที่รู้ (ทาง) มากกว่าฉัน ดังนั้นฉันจึงพบข้อมูลบางอย่างและฉันชอบที่จะรับการชี้แจงบางอย่าง
ส่วนที่ 2ของคำพูดของ ICCCM:
โปรดทราบว่าข้อมูลทั้งหมดที่ถ่ายโอนระหว่างเจ้าของและผู้ร้องขอจะต้องผ่านเซิร์ฟเวอร์ในสภาพแวดล้อม X Version 11 ลูกค้าไม่สามารถคิดได้ว่าลูกค้ารายอื่นสามารถเปิดไฟล์เดียวกันหรือแม้กระทั่งสื่อสารโดยตรง ไคลเอ็นต์อื่นอาจกำลังพูดคุยกับเซิร์ฟเวอร์โดยใช้กลไกเครือข่ายที่แตกต่างกันโดยสิ้นเชิง (ตัวอย่างเช่นไคลเอ็นต์หนึ่งอาจเป็น DECnet และ TCP / IP อื่น) ดังนั้นการส่งผ่านการอ้างอิงทางอ้อมไปยังข้อมูล (เช่นชื่อไฟล์ชื่อโฮสต์และหมายเลขพอร์ตและอื่น ๆ ) จะได้รับอนุญาตเฉพาะในกรณีที่ลูกค้าทั้งสองตกลงกันเป็นพิเศษ
เท่าที่ฉันเข้าใจ X Window Manager สร้างขึ้นบนสุดของ X Server (ขอบคุณ Wikipedia) ในใบเสนอราคาข้างต้น: มันบอกว่าลูกค้าสามารถสื่อสารกับเซิร์ฟเวอร์โดยใช้ DECnet หรือ TCP / IP จนถึงตอนนี้ฉันคิดว่า "เซิร์ฟเวอร์" เป็นคำพูดตอนนี้ฉันสงสัยว่า: X server เป็นเซิร์ฟเวอร์เหมือนใน "เว็บเซิร์ฟเวอร์" หรือไม่? ฉันจะเข้าใจฟังก์ชัน / คำจำกัดความของมันได้อย่างไร
จากนั้นมักจะมีการอ้างอิงถึง X11, Xorg, X Server และ / หรือ X Window Manager มันทำให้สับสน: X11 เป็นชุดรวมถึง Xorg และ X Window Manager หรือไม่? ถ้าเป็นเช่นนั้นมีอะไรอีกในชุด X11 นี้ไหม
X ต้องการเมาส์หรือคีย์บอร์ดหรืออินพุตชนิดอื่น ๆ : ส่วนนี้ของฟังก์ชั่นของ X Server ด้วยหรือไม่ X Window Manager ดูแลจอแสดงผลอย่างเคร่งครัดเท่านั้นหรือไม่
ในที่สุดข้อความที่กล่าวถึงข้างต้นนี้ยังกล่าวถึงลูกค้าที่สื่อสารกันหรือไม่กัน: สิ่งนี้ทำให้ฉันนึกถึง D-Bus ซึ่งฉันใช้ไปเล็กน้อยเพื่อจุดประสงค์ในการเรียนรู้ ด้วย D-Bus คุณยังสามารถทริกเกอร์เหตุการณ์หน้าต่าง นั่นทำให้ฉันสับสนเล็กน้อยว่าโปรแกรมควรสื่อสารกับคนอื่นอย่างไร: * มีความแตกต่างอะไรบ้างระหว่างโปรแกรมที่ใช้ X Server หรือ D-Bus? * * * *
มันเป็นความอัปยศที่ข้อมูลนี้ยังคงคลุมเครืออยู่บ้างทำให้ยากต่อการเรียนรู้ แต่หวังว่าคุณจะสามารถนำความรู้เกี่ยวกับเรื่องนี้ :) ขอบคุณ