กลับไปหน้าบทความ

อ่าน 13 นาที

เซิร์ฟเวอร์ X.Org

X.Org Server คือ ซอฟต์แวร์ โอเพนซอร์สและใช้งานได้ฟรี ซึ่งเป็น ระบบเซิร์ฟเวอร์แสดงผล X Window System (X11) ที่ ดูแลโดย X.Org Foundation

เซิร์ฟเวอร์ X.Org

( เรียนรู้วิธีและเวลาในการลบข้อความนี้ )

เซิร์ฟเวอร์ X.Org
นักพัฒนามูลนิธิ X.Org
ปล่อย6 เมษายน พ.ศ. 2547 [ 1 ] ( 6 เมษายน 2547 )
เวอร์ชันเสถียร
21.1.23 [ 2 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 2 มิถุนายน 2026 ( 2 มิถุนายน 2569 )
เขียนเป็นซี
ระบบปฏิบัติการข้ามแพลตฟอร์ม
ขนาด3.7 MiB [ 3 ]
มีจำหน่ายในภาษาอังกฤษ
พิมพ์เซิร์ฟเวอร์แสดงผล
ใบอนุญาตใบอนุญาต MIT
เว็บไซต์x .org
ที่เก็บข้อมูล
  • gitlab .freedesktop .org /xorg /xserver

X.Org Serverคือ ซอฟต์แวร์ โอเพนซอร์สและใช้งานได้ฟรีซึ่งเป็นระบบเซิร์ฟเวอร์แสดงผลX Window System (X11) ที่ ดูแลโดยX.Org Foundation

การใช้งานโปรโตคอล X Window Systemฝั่งไคลเอ็นต์มีอยู่ในรูปแบบของไลบรารี X11ซึ่งทำหน้าที่เป็น API ที่มีประโยชน์สำหรับการสื่อสารกับเซิร์ฟเวอร์ X [ 4 ]มีไลบรารี X หลักสองไลบรารีสำหรับ X11 ไลบรารีแรกคือXlib ซึ่งเป็น API X11 ภาษา C ดั้งเดิม[ 5 ] แต่ ต่อมาในปี 2001 ได้มีการสร้างไลบรารี X ภาษา C อีกตัวหนึ่ง คือ XCB [ 6 ]นอกจากนี้ยังมีไลบรารี X ขนาดเล็กอื่นๆ อีก ทั้งในรูปแบบอินเทอร์เฟซสำหรับXlibและXCBในภาษาอื่นๆ และในรูปแบบไลบรารี X แบบสแตนด์อโลนขนาดเล็ก

บริการที่มูลนิธิ X.Org ให้การสนับสนุน X Server ได้แก่ การจัดทำแพ็กเกจเวอร์ชันต่างๆ การรับรอง (โดยมีค่าธรรมเนียม) การประเมินการปรับปรุงโค้ด การพัฒนาเว็บไซต์ และการจัดการการกระจายเงินบริจาค เวอร์ชันต่างๆ นั้นเขียนโค้ด จัดทำเอกสาร และจัดทำแพ็กเกจโดยนักพัฒนา ทั่ว โลก

สถาปัตยกรรมซอฟต์แวร์

xdpyinfoคำสั่งสำหรับแสดงข้อมูลเซิร์ฟเวอร์ X.Org

X.Org Server ดำเนินการฝั่งเซิร์ฟเวอร์ของโปรโตคอลหลักของ X Window Systemเวอร์ชัน 11 (X11) และส่วนขยาย เช่น RandR [ 7 ]

เวอร์ชัน 1.16.0 ผสานรวมการสนับสนุนสำหรับการเริ่มต้นและการจัดการตามระบบ systemd ซึ่งช่วยปรับปรุงประสิทธิภาพและความน่าเชื่อถือในการบูต [ 8 ]

อุปกรณ์อิสระ X (DIX)

Device Independent X (DIX) เป็นส่วนหนึ่งของ X.Org Server ที่โต้ตอบกับไคลเอ็นต์และดำเนินการเรนเดอร์ซอฟต์แวร์ ลูปหลักและการส่งเหตุการณ์เป็นส่วนหนึ่งของ DIX [ 9 ]

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

Device Dependent X (DDX)

Device Dependent X (DDX) คือส่วนหนึ่งของ x-server ที่โต้ตอบกับฮาร์ดแวร์ ในซอร์สโค้ดของ X.Org Server แต่ละไดเร็กทอรีภายใต้ "hw" จะสอดคล้องกับ DDX หนึ่งตัว ฮาร์ดแวร์ประกอบด้วยการ์ดกราฟิก รวมถึงเมาส์และคีย์บอร์ด ไดรเวอร์แต่ละตัวนั้นเฉพาะเจาะจงกับฮาร์ดแวร์และถูกนำไปใช้เป็นโมดูลที่สามารถโหลดได้แยกต่างหาก

ไดรเวอร์กราฟิก 2 มิติ

ด้วยเหตุผลทางประวัติศาสตร์ เซิร์ฟเวอร์ X.Org ยังคงมีไดรเวอร์อุปกรณ์กราฟิกที่รองรับการเร่งความเร็วการเรนเดอร์ 2 มิติอยู่ ในอดีตการตั้งค่าโหมดทำโดยไดรเวอร์อุปกรณ์กราฟิกของเซิร์ฟเวอร์ X ที่เฉพาะเจาะจงกับฮาร์ดแวร์ตัวควบคุมวิดีโอบางตัว(เช่น GPU )ต่อมาได้มีการเพิ่มการสนับสนุนการเร่งความเร็ว 2 มิติเข้าไปในฟังก์ชันการตั้งค่าโหมดนี้ เมื่อมี GPU ต่างๆ รองรับฟังก์ชันดังกล่าว ฟังก์ชันการตั้งค่าโหมดถูกย้ายไปยังDRMและถูกเปิดเผยผ่านอินเทอร์เฟซการตั้งค่าโหมดของ DRM ซึ่งวิธีการใหม่นี้เรียกว่า "การตั้งค่าโหมดเคอร์เนล" (KMS) แต่การเร่งความเร็วการเรนเดอร์ 2 มิติยังคงอยู่

ในDebianไดรเวอร์กราฟิก 2 มิติสำหรับ X.Org Server จะถูกบรรจุแยกต่างหากและเรียกว่าxserver-xorg-video-* [ 10 ] หลังจากการติดตั้ง ไฟล์ไดรเวอร์กราฟิก 2 มิติจะอยู่ใน/usr/lib/xorg/modules/drivers/. แพ็คเกจ xserver-xorg-video-nouveau จะติดตั้งnouveau_drv.soด้วยขนาด 215 KiB ไดรเวอร์ Nvidia GeForce ที่เป็นกรรมสิทธิ์ จะติดตั้งไฟล์ขนาด 8 MiB ที่เรียกว่าnvidia_drv.soและRadeon Softwareจะติดตั้งfglrx_drv.soด้วยขนาดประมาณ 25 MiB

ไดรเวอร์อุปกรณ์กราฟิกแบบโอเพนซอร์สและใช้งานได้ฟรีนั้นกำลังได้รับการพัฒนาภายใน โครงการ Mesa 3Dแม้ว่าไดรเวอร์เหล่านี้จะสามารถคอมไพล์ใหม่ได้ตามต้องการ แต่การพัฒนาไดรเวอร์กราฟิก DDX 2D ที่เป็นกรรมสิทธิ์นั้นจะง่ายขึ้นมากเมื่อ X.Org Server รักษา API/ABI ที่เสถียรในหลายเวอร์ชัน

ในเวอร์ชัน 1.17 วิธีการตั้งค่าโหมดแบบทั่วไปถูกรวมเข้าไว้ในโค้ดหลักแล้วxf86-video-modesettingแพ็กเกจดังกล่าว (แพ็กเกจ Debian ที่ชื่อว่าxserver-xorg-video-modesetting) ถูกยกเลิก และ DDX สำหรับการตั้งค่าโหมดแบบทั่วไปที่อยู่ในนั้นถูกย้ายไปยังแพ็กเกจเซิร์ฟเวอร์เพื่อกลายเป็น DDX เริ่มต้นที่เปิดใช้งาน KMS ซึ่งรองรับ GPU ของ AMD, Intel และ NVidia ส่วนใหญ่

เมื่อวันที่ 7 เมษายน 2559 มิเชล แดนเซอร์ พนักงานของ AMD ได้เผยแพร่xf86-video-atiเวอร์ชัน 7.7.0 [ 11 ]และxf86-video-amdgpuเวอร์ชัน 1.1.0 [ 12 ] ซึ่งเวอร์ชัน หลังนี้รวมถึงการสนับสนุนสถาปัตยกรรมไมโคร Polaris ของพวกเขาด้วย

สถาปัตยกรรมเร่งความเร็ว

มี (อย่างน้อย) XAA (XFree86 Acceleration Architecture) , [ 13 ] EXA , UXAและSNA

XAA คือ API ที่ทำหน้าที่เชื่อมต่อระหว่าง Device-Independent-X (DIX) และ Device-Dependent-X (DDX) ซึ่งเป็นไดรเวอร์กราฟิก 2 มิติ เช่น ในเคอร์เนลของ Linux
XAAคือ API ที่ทำหน้าที่เชื่อมต่อระหว่าง Device-Independent-X (DIX) และ Device-Dependent-X (DDX) ซึ่งเป็นไดรเวอร์กราฟิก 2 มิติ เช่น ในเคอร์เนลของ Linux

ในระบบ X Windowนั้นXFree86 Acceleration Architecture ( XAA ) เป็นสถาปัตยกรรมไดรเวอร์ที่ทำให้การเร่งความเร็วฮาร์ดแวร์ 2 มิติของการ์ดวิดีโอ สามารถใช้งานได้กับเซิร์ฟเวอร์ X [ 14 ] [ 15 ]มันถูกเขียนขึ้นโดยHarm Hanemaayerในปี 1996 และเปิดตัวครั้งแรกในXFree86เวอร์ชัน 3.3 มันถูกเขียนใหม่ทั้งหมดใน XFree86 4.0 [ 16 ]มันถูกลบออกอีกครั้งจาก X.Org Server 1.13

ไดรเวอร์ส่วนใหญ่ใช้โมดูล XAA ในการเร่งความเร็ว XAA จะเปิดใช้งานโดยค่าเริ่มต้น แต่สามารถปิดการเร่งความเร็วของฟังก์ชันแต่ละอย่างได้ตามต้องการในไฟล์การกำหนดค่าเซิร์ฟเวอร์ ( XF86Configหรือxorg.conf)

ไดรเวอร์สำหรับชิปเซ็ต ARKเป็นแพลตฟอร์มการพัฒนาดั้งเดิมสำหรับ XAA

ใน X.Org Server เวอร์ชัน 6.9/7.0 ได้มีการปล่อย EXAออกมาเพื่อทดแทน XAA เนื่องจาก XAA แทบไม่มีข้อได้เปรียบด้านความเร็วสำหรับกราฟิกการ์ดในปัจจุบัน EXA จึงถูกมองว่าเป็นขั้นตอนกลางในการเปลี่ยน X server ทั้งหมดไปใช้ OpenGL

เสน่ห์

Glamor เป็นไดรเวอร์เร่งความเร็ว 2 มิติแบบทั่วไปที่ไม่ขึ้นกับฮาร์ดแวร์สำหรับเซิร์ฟเวอร์ X ซึ่งแปลงพรีมิทีฟการเรนเดอร์ X เป็นการ ดำเนินการ OpenGLโดยใช้ประโยชน์จากไดรเวอร์ OpenGL 3 มิติที่มีอยู่[ 17 ]ด้วยวิธีนี้ จึงมีฟังก์ชันการทำงานคล้ายกับ Quartz Extreme และ QuartzGL (การเร่งความเร็วประสิทธิภาพ 2 มิติ) สำหรับ Apple Quartz Compositor

เป้าหมายสูงสุดของ GLAMOR คือการทำให้ไดรเวอร์อุปกรณ์กราฟิก DDX 2D และสถาปัตยกรรมเร่งความเร็วทั้งหมดล้าสมัยและแทนที่ด้วยไดรเวอร์ใหม่ เพื่อหลีกเลี่ยงความจำเป็นในการเขียนไดรเวอร์ X 2D เฉพาะสำหรับชิปเซ็ตกราฟิกที่รองรับทุกตัว[ 18 ] [ 19 ] [ 20 ] Glamor ต้องการไดรเวอร์ 3D ที่รองรับshaders [ 21 ]

การปรับแต่งประสิทธิภาพของ Glamor ได้รับการยอมรับสำหรับGoogle Summer of Code 2014 [ 22 ] Glamor รองรับXephyrและDRI3 [ 23 ]และสามารถเพิ่มประสิทธิภาพการทำงานบางอย่างได้ถึง 700–800% [ 24 ]นับตั้งแต่มีการรวมเข้ากับเวอร์ชัน 1.16 ของ X.Org Server การพัฒนา Glamor ก็ดำเนินต่อไป และมีการเผยแพร่แพตช์สำหรับเวอร์ชัน 1.17 [ 25 ]

เวอร์ชวลไลเซชัน

มี DDX เฉพาะและพิเศษสำหรับอินสแตนซ์ของ X.Org Server ที่ทำงานบนระบบแขกภายในสภาพแวดล้อมเสมือน : xf86-video-qxl ซึ่งเป็นไดรเวอร์สำหรับ "อุปกรณ์วิดีโอ QXL" SPICEใช้ไดรเวอร์นี้ แต่ก็สามารถทำงานได้โดยไม่ต้องใช้ไดรเวอร์นี้เช่นกัน

ในคลังซอฟต์แวร์ของ Debian โปรแกรมนี้มีชื่อว่าxserver-xorg-video- qxl

สแต็กอินพุต

ในระบบ Debian ไดรเวอร์ที่เกี่ยวข้องกับการป้อนข้อมูลจะอยู่ใน `/etc/ /usr/lib/xorg/modules/input/device.js` ไดรเวอร์เหล่านี้จะมีชื่อเช่น ` evdev_drv.so/ etc/device.js`, ` mouse_drv.so/ etc/device.js` synaptics_drv.soหรือ `/etc/ wacom_drv.sodevice.js`

ในเวอร์ชัน 1.16 เซิร์ฟเวอร์ X.Org ได้รับการสนับสนุนสำหรับ ไลบรารี libinputในรูปแบบของ wrapper ที่เรียกว่าxf86-input-libinput[ 26 ] ในงาน XDC 2015 ที่โทรอนโต libratbag ได้รับการแนะนำเป็นไลบรารีทั่วไปเพื่อรองรับเมาส์ที่กำหนดค่าได้[ 27 ] [ 28 ]xserver-xorg-input-joystickเป็นโมดูลอินพุตสำหรับเซิร์ฟเวอร์ X.Org เพื่อจัดการจอยสติ๊กและเกมแพดแบบคลาสสิก ซึ่งไม่ได้มีไว้สำหรับเล่นเกมภายใต้ X แต่เพื่อควบคุมเคอร์เซอร์ด้วยจอยสติ๊กหรือเกมแพด[ 29 ] [ 30 ]

ส่วนประกอบอื่นๆ ของ DDX

เอ็กซ์เวย์แลนด์
XWayland คือชุดแพตช์บนโค้ดเบสของเซิร์ฟเวอร์ X.Org ที่ใช้เซิร์ฟเวอร์ X ที่ทำงานบน โปรโตคอล Waylandแพตช์เหล่านี้ได้รับการพัฒนาและดูแลโดยนักพัฒนา Wayland เพื่อให้เข้ากันได้กับแอปพลิเคชัน X11 ในระหว่างการเปลี่ยนไปใช้ Wayland [ 31 ]และถูกรวมเข้าในเวอร์ชัน 1.16 ของเซิร์ฟเวอร์ X.Org ในปี 2014 [ 8 ]เมื่อผู้ใช้เรียกใช้แอปพลิเคชัน X จากภายในWeston แอปพลิ เคชันจะเรียกใช้ XWayland เพื่อให้บริการคำขอ[ 32 ]
เอ็กซ์ควอตซ์
XQuartz คือชุดแพตช์จากApple Inc.เพื่อรวมการรองรับโปรโตคอล X11 เข้ากับQuartz Compositor ของพวกเขา ในลักษณะเดียวกับที่ XWayland รวม X11 เข้ากับWayland Compositor
เอ็กซ์สไปซ์
Xspice เป็นไดรเวอร์อุปกรณ์สำหรับ X.Org Server โดยรองรับอุปกรณ์เฟรมบัฟเฟอร์ QXL และมีสคริปต์ wrapper [ 33 ]ซึ่งทำให้สามารถเรียกใช้ X.Org Server ที่ส่งออกจอแสดงผลผ่าน โปรโตคอล SPICEได้ ซึ่งช่วยให้สามารถใช้ SPICE ในสภาพแวดล้อมเดสก์ท็อประยะไกลได้โดยไม่ต้องใช้การจำลองเสมือนKVM
เซเฟอร์
Xephyrเป็นการใช้งาน X-on-X ตั้งแต่เวอร์ชัน 1.16.0 Xephyr ทำหน้าที่เป็นสภาพแวดล้อมการพัฒนาหลักสำหรับระบบย่อยเร่งความเร็ว 2 มิติใหม่ (Glamor) ซึ่งช่วยให้สามารถพัฒนาและทดสอบได้อย่างรวดเร็วบนเครื่องเดียว[ 8 ]
แรนด์อาร์
RandR ( ปรับขนาดและหมุน ) เป็นโปรโตคอลการสื่อสารที่เขียนขึ้นเป็นส่วนขยายของ โปรโตคอล X11 [ 34 ] XRandR ให้ความสามารถในการปรับขนาด หมุน และสะท้อนหน้าต่างหลักของหน้าจอ RandR มีหน้าที่ในการตั้งค่าอัตราการรีเฟรชหน้าจอ[ 35 ]ช่วยให้สามารถควบคุมจอภาพหลายจอได้[ 36 ]

ไอพีซี

เซิร์ฟเวอร์ X.Org และไคลเอนต์ x แต่ละตัวทำงานเป็นกระบวนการที่แยกจากกัน บนระบบ Unix/Linux กระบวนการหนึ่งจะไม่รู้จักกระบวนการอื่นใดเลย การสื่อสารระหว่างกระบวนการนั้นขึ้นอยู่กับเคอร์เนลอย่างสมบูรณ์ โดยอาศัย กลไก การสื่อสารระหว่างกระบวนการ (IPC) ที่มีอยู่ ซ็อกเก็ตโดเมนของ Unixใช้ในการสื่อสารกับกระบวนการที่ทำงานอยู่บนเครื่องเดียวกัน การเรียกใช้ฟังก์ชันซ็อกเก็ตพิเศษเป็นส่วนหนึ่งของอินเทอร์เฟซการเรียกใช้ระบบ แม้ว่าซ็อกเก็ตโดเมนอินเทอร์เน็ตจะสามารถใช้งานได้ในเครื่องเดียวกัน แต่ซ็อกเก็ตโดเมนของ Unix มีประสิทธิภาพมากกว่า เนื่องจากไม่มี ค่าใช้จ่ายด้าน โปรโตคอล ( เช่น ผลรวมตรวจสอบ ลำดับไบต์ เป็นต้น)

X.Org Server ไม่ได้ใช้D- Bus

ซ็อกเก็ตเป็นวิธีการสื่อสารระหว่างกระบวนการ (IPC) ที่พบได้บ่อยที่สุดระหว่างกระบวนการของเซิร์ฟเวอร์ X และไคลเอนต์ X ต่างๆ โดยมีอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับการสื่อสารในโดเมน TCP/IP และเฉพาะในโดเมน UNIX เท่านั้น นอกจากนี้ยังมี API อื่นๆ อีกหลายตัวที่อธิบายไว้ในอินเทอร์เฟซการขนส่ง X เช่น TLI (Transport Layer Interface) ตัวเลือกอื่นๆ สำหรับ IPC ระหว่างไคลเอนต์และเซิร์ฟเวอร์ X นั้น จำเป็นต้องใช้ส่วนขยายระบบ X Window เช่นMIT Shared Memory Extension (MIT-SHM )

การกำหนดค่าแบบหลายที่นั่ง

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

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

วิธีการประกอบที่นั่งหลายที่นั่งมีดังนี้:

  • เซิร์ฟเวอร์ Xephyrหลายตัวบนโฮสต์ xorg-server
  • อินสแตนซ์หลายตัวของ xorg-server
    • การ์ดกราฟิกหนึ่งตัวต่อที่นั่ง
    • การ์ดจอตัวเดียวสำหรับทุกที่นั่ง

ตัวเลือกบรรทัดคำสั่งที่ใช้สำหรับ xorg-server มีดังนี้:

  • -isolateDevice bus-idจำกัดการรีเซ็ตอุปกรณ์ (เอาต์พุต) เฉพาะอุปกรณ์ที่มี bus-id เท่านั้น โดย bus-id จะมีรูปแบบ bustype:bus:device:function (เช่น 'PCI:1:0:0') ปัจจุบัน รองรับเฉพาะการแยกอุปกรณ์ PCI เท่านั้น กล่าวคือ ตัวเลือกนี้จะถูกละเว้นหาก bustype ไม่ใช่ 'PCI'
  • vtXXค่าเริ่มต้นสำหรับ Debian 9 Stretch เช่นคือ 7 กล่าวคือ โดยการกดปุ่มCtrl+ + ผู้ใช้สามารถสลับไปยัง VT ที่รัน xorg-server ได้AltF7

เฉพาะผู้ใช้บนจอภาพแรกเท่านั้นที่จะสามารถใช้งานคอนโซล vt ได้ และสามารถใช้ปุ่ม++ x เพื่อเลือกคอนโซลเหล่านั้นได้ ส่วนผู้ใช้รายอื่นจะมี หน้าจอเข้าสู่ ระบบ GDMและสามารถใช้งาน xorg-server ได้ตามปกติ แต่ไม่มีคอนโซล vt ให้ใช้ งานCtrlAltF

แม้ว่าผู้ใช้คนเดียวจะสามารถใช้จอภาพหลายจอที่เชื่อมต่อกับพอร์ตต่างๆ ของการ์ดกราฟิกตัวเดียวได้ (ดู RandR) แต่วิธีการที่ใช้ xorg-server หลายอินสแตนซ์ดูเหมือนจะต้องการการ์ดกราฟิก PCI หลายตัว

สามารถกำหนดค่าหลายที่นั่งโดยใช้การ์ดกราฟิกเพียงตัวเดียวได้ แต่เนื่องจากข้อจำกัดของโปรโตคอล X จึงจำเป็นต้องใช้โปรโตคอลควบคุมตัวจัดการการแสดงผล X (XDMCP) [ 37 ]

นอกจากนี้ยังมีXdmx (Distributed Multihead X) อีกด้วย

การรับเลี้ยงบุตรบุญธรรม

ยูนิกซ์และลินุกซ์
X.Org Server ทำงานบน ระบบปฏิบัติการ แบบ Unix ที่เป็น ซอฟต์แวร์เสรีหลายระบบ รวมถึงถูกนำไปใช้ในระบบปฏิบัติการ LinuxและBSDส่วนใหญ่ นอกจากนี้ยังเป็น X server สำหรับ ระบบปฏิบัติการ Solaris อีกด้วย X.Org ยังมีอยู่ในคลังซอฟต์แวร์ของMinix 3ด้วย
วินโดวส์
Cygwin/Xซึ่งเป็นการใช้งาน X server ของCygwin สำหรับ Microsoft Windowsใช้ X.Org Server เช่นเดียวกับ VcXsrv [ 38 ] ( Visual C++ X-server [ 39 ] ) และXmingไคลเอนต์ SSH เช่นPuTTYอนุญาตให้เรียกใช้แอปพลิเคชัน X ผ่านการส่งต่อ X11 โดยมีเงื่อนไขว่าต้องเปิดใช้งานทั้งบนเซิร์ฟเวอร์และไคลเอนต์
OS X / macOS
ระบบปฏิบัติการ OS Xเวอร์ชันก่อนMac OS X Leopard (10.5) มาพร้อมกับเซิร์ฟเวอร์ที่ใช้ XFree86 แต่เซิร์ฟเวอร์ X ของเวอร์ชัน 10.5 ใช้โค้ดเบส X.Org [ 40 ]ตั้งแต่OS X Mountain Lion (10.8) เป็นต้นไป X11 ไม่ได้รวมอยู่ใน OS X แต่ต้องติดตั้งจากโครงการ โอเพนซอร์ส XQuartz เป็นต้น [ 41 ]ตั้งแต่เวอร์ชัน 2.7.4 เป็นต้นไป X11.app/XQuartz ไม่รองรับจอแสดงผล Retina ความละเอียดสูง สำหรับแอป X11 ซึ่งทำงานในโหมดพิกเซลสองเท่าบนจอแสดงผลความละเอียดสูง
โอเพ่นวีเอ็มเอส
เวอร์ชันปัจจุบันของเซิร์ฟเวอร์ DECwindows X11 สำหรับOpenVMSใช้ X.org Server เป็นพื้นฐาน[ 42 ]

ประวัติศาสตร์

เซิร์ฟเวอร์แสดงผล เช่น X.Org Server ทำหน้าที่จัดการระบบหน้าต่างและให้บริการแก่ไคลเอ็นต์
เซิร์ฟเวอร์แสดงผล เช่น X.Org Server ทำหน้าที่จัดการระบบหน้าต่างและให้บริการแก่ไคลเอ็นต์

มูลนิธิ X.Orgสมัยใหม่ถือกำเนิดขึ้นในปี 2547 เมื่อหน่วยงานที่ดูแลมาตรฐาน X และเผยแพร่การใช้งานอ้างอิงอย่างเป็นทางการได้ร่วมมือกับอดีตนักพัฒนาXFree86 [ 43 ] X11R6.7.0 ซึ่งเป็นเวอร์ชันแรกของ X.Org Server ได้รับการแยกออกมาจาก XFree86 4.4 RC2 [ 1 ]เหตุผลหลักในการแยกออกมาคือความไม่ลงรอยกับใบอนุญาตใหม่สำหรับเวอร์ชันสุดท้ายของ XFree86 4.4 แต่ความไม่ลงรอยกันหลายประการในหมู่ผู้มีส่วนร่วมก็ปรากฏขึ้นก่อนที่จะมีการแยกตัว นักพัฒนา XFree86 หลายคนก่อนหน้านี้ได้เข้าร่วมโครงการ X.Org Server

ในปี พ.ศ. 2548 มีความพยายามอย่างมากในการแบ่งส่วนโค้ดต้นฉบับของเซิร์ฟเวอร์ X.Org ออกเป็นโมดูล[ 44 ]ส่งผลให้มีการเผยแพร่สองเวอร์ชันภายในสิ้นปี เวอร์ชัน X11R7.0.0 เพิ่มระบบสร้างโมดูลใหม่โดยใช้GNU Autotoolsในขณะที่ X11R6.9.0 ยังคงใช้ ระบบสร้าง imake แบบเดิม โดยทั้งสองเวอร์ชันใช้โค้ดเบสเดียวกัน นับตั้งแต่นั้นเป็นต้นมา สาขา X11R6.9 ก็ถูกตรึงไว้ และการพัฒนาที่กำลังดำเนินอยู่ทั้งหมดจะทำในสาขาโมดูล ระบบสร้างใหม่ยังนำการใช้ตัวเชื่อมโยงแบบไดนามิก มาตรฐาน dlloader มา ใช้ในการโหลดปลั๊กอินและไดรเวอร์ แทนที่วิธีการเดิมด้วยวิธีการ own ผลจากการแบ่งส่วนโมดูล ทำให้ไบนารีของ X11 ย้ายออกจาก/usr/X11R6โครงสร้างไดเร็กทอรีย่อยของตนเองไปอยู่ในโครงสร้างไดเร็กทอรีส่วนกลาง/usrในระบบ Unix หลายระบบ

ในเดือนมิถุนายน พ.ศ. 2549 มีความพยายามอีกครั้งในการย้ายซอร์สโค้ดของเซิร์ฟเวอร์ X.Org จากCVSไปยังgit [ 45 ] ความพยายามทั้งสองมีเป้าหมายระยะยาวในการดึงดูดนักพัฒนาใหม่เข้ามาในโครงการ ตามคำกล่าวของ Alan Coopersmith: [ 46 ]

ความพยายามบางส่วนของเราในที่นี้เป็นไปในด้านเทคโนโลยี – หนึ่งในแรงผลักดันสำคัญของการเปลี่ยนจาก Imake ไปเป็น automake และจาก CVS ไปเป็น git ก็คือการใช้เครื่องมือที่นักพัฒนาคุ้นเคยและใช้งานได้อย่างมีประสิทธิภาพอยู่แล้วจากโครงการอื่นๆ โครงการ Modularization ซึ่งแบ่ง X.Org จากโครงสร้างขนาดใหญ่หนึ่งเดียวออกเป็นโครงสร้างเล็กๆ กว่า 200 โครงสร้าง มีเป้าหมายเพื่อให้สามารถแก้ไขข้อผิดพลาดในไลบรารีหรือไดรเวอร์เดียวได้โดยไม่ต้องดาวน์โหลดและสร้างซอฟต์แวร์และฟอนต์ขนาดหลายเมกะไบต์ที่ไม่เปลี่ยนแปลง

ในเวอร์ชัน 7.1 เฟรมเวิร์ก KDrive (ซึ่งเป็นการใช้งาน X ขนาดเล็กที่เขียนโดยKeith Packardและไม่ได้อิงตามXFree86ที่นักพัฒนา X.Org ใช้เป็นสนามทดสอบสำหรับแนวคิดใหม่ๆ เช่นEXA ) ได้ถูกรวมเข้ากับโค้ดเบสหลักของเซิร์ฟเวอร์ X.Org แล้ว

ในปี 2008 DRI2 รุ่นใหม่ ซึ่งใช้ ไดรเวอร์ การตั้งค่าโหมดเคอร์เนล (KMS) เป็นพื้นฐาน ได้เข้ามาแทนที่ DRI การเปลี่ยนแปลงนี้ยังถือเป็นก้าวสำคัญในสถาปัตยกรรมเซิร์ฟเวอร์ X.Org ด้วย เนื่องจากไดรเวอร์ถูกย้ายออกจากพื้นที่เซิร์ฟเวอร์และพื้นที่ผู้ใช้ (UMS) ไปยังพื้นที่ เคอร์เนล

ในปี 2013 Keith Packard ได้เขียนและเขียนโค้ดเวอร์ชันเริ่มต้นของส่วนขยาย DRI3 และ Present เพื่อให้การเรนเดอร์ 2 มิติเร็วขึ้นและ ปราศจาก ปัญหาภาพฉีกขาด ในช่วงปลายปีAdam Jackson จากRed Hat ได้เขียนการใช้ งานGLX ใหม่ [ 47 ]

ในเดือนมิถุนายน พ.ศ. 2568 มีการเปิดตัว X.Org Server เวอร์ชันแยกชื่อ XLibre [ 48 ] [ 49 ]

การเผยแพร่

เวอร์ชั่น วันที่ การเปิดตัว X11 คุณสมบัติหลัก
ไม่รองรับ:1.0 21 ธันวาคม พ.ศ. 2548 [ 50 ]X11R7.0 (1.0.1) เซิร์ฟเวอร์ X แบบโมดูลาร์เริ่มต้นสถาปัตยกรรม EXA
ไม่รองรับ:1.122 พฤษภาคม 2549 [ 51 ]X11R7.1 (1.1.0) การผสานรวม KDrive, การสนับสนุนAIGLX [ 52 ]
ไม่รองรับ:1.222 มกราคม 2550 [ 53 ]X11R7.2 (1.2.0) การกำหนดค่าอัตโนมัติ การสนับสนุนที่ได้รับการปรับปรุงสำหรับตัวจัดการคอมโพสิตแบบ GL [ 54 ]
ไม่รองรับ:1.319 เมษายน 2550 [ 55 ]RandR 1.2 [ 56 ]
ไม่รองรับ:1.46 กันยายน 2550 [ 57 ]X11R7.3 (1.4.0) การสนับสนุนการเสียบปลั๊กแบบร้อน[ 57 ] [ 58 ]
ไม่รองรับ:1.53 กันยายน 2551 [ 59 ]X11R7.4 (1.5.1) MPX [ 60 ]
ไม่รองรับ:1.625 กุมภาพันธ์ 2552 [ 61 ]RandR 1.3, DRI2 , XInput 1.5 [ 62 ]
ไม่รองรับ:1.71 ตุลาคม 2552 [ 63 ]X11R7.5 (1.7.1) XInput 2.0, X แบบหลายตัวชี้[ 64 ] [ 65 ]
ไม่รองรับ:1.82 เมษายน 2553 [ 66 ]xorg.conf.d , การจัดการอินพุต udev [ 67 ]
ไม่รองรับ:1.920 สิงหาคม 2553 [ 68 ]X11R7.6 (1.9.3)
ไม่รองรับ:1.1025 กุมภาพันธ์ 2554 [ 69 ]X รั้วการซิงโครไนซ์[ 70 ]
ไม่รองรับ:1.1126 สิงหาคม 2554 [ 71 ]
ไม่รองรับ:1.124 มีนาคม 2555 [ 72 ]X11R7.7 (1.12.2) XInput 2.2 (รวมถึงการรองรับมัลติทัช) [ 73 ]
ไม่รองรับ:1.135 กันยายน 2555 [ 74 ]API ไดรเวอร์ DDX ใหม่, การถ่ายโอน DRI2 , RandR 1.4, บริบทOpenGL 3.x+, การลบ XAA [ 75 ]
ไม่รองรับ:1.145 มีนาคม 2556 [ 76 ]XInput 2.3 [ 77 ]
ไม่รองรับ:1.1527 ธันวาคม 2556 [ 78 ]DRI3 และส่วนขยายปัจจุบัน[ 79 ] [ 80 ]
ไม่รองรับ:1.1617 กรกฎาคม 2557 [ 81 ]XWayland DDX, การเร่งความเร็ว GLAMOR, การสนับสนุนอุปกรณ์ที่ไม่ใช่ PCI, การสนับสนุน systemd-logind (X แบบไร้รูท), [ 81 ] [ 82 ]ได้รับการสนับสนุนสำหรับ ไลบรารี libinputในรูปแบบของ wrapper ที่เรียกว่าxf86-input-libinput[ 83 ] [ 84 ]
ไม่รองรับ:1.174 กุมภาพันธ์ 2558 [ 85 ]การบูรณาการxf86-video-modesettingไดรเวอร์ DRM/KMS ทั่วไป เดิม [ 86 ] [ 87 ]เพิ่มการสนับสนุนDRI2ด้วย GLAMOR
ไม่รองรับ:1.189 พฤศจิกายน 2015 [ 88 ]แรนด์อาร์ 1.5
ไม่รองรับ:1.1915 พฤศจิกายน 2559 [ 89 ]อินพุตแบบเธรด, การซิงโครไนซ์ PRIME, การจำกัดและการบิดเบือนตัวชี้ XWayland, การสนับสนุนส่วนขยาย Windows DRI [ 90 ]
ไม่รองรับ:1.2010 พฤษภาคม 2561 [ 91 ]การปรับปรุงระบบการสร้าง Meson , GLXVND อนุญาตให้ใช้ไดรเวอร์ OpenGL ที่แตกต่างกันสำหรับหน้าจอ X ต่างๆ, การเช่า RandR ปรับปรุงการรองรับ Steam VR
เวอร์ชันล่าสุด:21.127 ตุลาคม 2021 [ 92 ]ระบบสร้างโปรแกรม Meson ตอนนี้เทียบเท่ากับ Autotools แล้ว รองรับ อัตราการรีเฟรชหน้าจอแบบแปรผันและการใช้งานท่าทางสัมผัสบนทัชแพดผ่าน XInput 2.4
ตำนาน:
ไม่ได้รับการสนับสนุน
ได้รับการสนับสนุน
เวอร์ชั่นล่าสุด
เวอร์ชันในอนาคต

ดูเพิ่มเติม

  • เว็บไซต์อย่างเป็นทางการ
  • VcXsrv – เซิร์ฟเวอร์ X ที่ได้รับการอัปเดตอย่างสมบูรณ์สำหรับ Windows
  • VcXsrv – คลังเก็บข้อมูลเก่าของ SourceForge สำหรับ Windows
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=X.Org_Server&oldid=1356465788 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เซิร์ฟเวอร์ X.Org

X.Org Server คือ ซอฟต์แวร์ โอเพนซอร์สและใช้งานได้ฟรี ซึ่งเป็น ระบบเซิร์ฟเวอร์แสดงผล X Window System (X11) ที่ ดูแลโดย X.Org Foundation

สถาปัตยกรรมซอฟต์แวร์

X.Org Server ดำเนินการฝั่งเซิร์ฟเวอร์ของ โปรโตคอลหลักของ X Window System เวอร์ชัน 11 (X11) และส่วนขยาย เช่น RandR [ 7 ]

อุปกรณ์อิสระ X (DIX)

Device Independent X (DIX) เป็นส่วนหนึ่งของ X.Org Server ที่โต้ตอบกับไคลเอ็นต์และดำเนินการเรนเดอร์ซอฟต์แวร์ ลูปหลักและการส่งเหตุการณ์เป็นส่วนหนึ่งของ DIX [ 9 ]

Device Dependent X (DDX)

Device Dependent X (DDX) คือส่วนหนึ่งของ x-server ที่โต้ตอบกับฮาร์ดแวร์ ในซอร์สโค้ดของ X.