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

ในด้านคอมพิวเตอร์ระบบหน้าต่าง (หรือระบบหน้าต่าง ) คือชุดซอฟต์แวร์ที่จัดการส่วนต่าง ๆ ของหน้าจอแสดงผลแยก กัน [ 1 ]เป็นประเภทของอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ซึ่งใช้ แนวคิด WIMP ( หน้าต่างไอคอนเมนูตัวชี้ ) สำหรับ อินเท อร์เฟซผู้ใช้
แต่ละแอปพลิเคชัน ที่กำลังทำงานอยู่ จะได้รับการจัดสรรพื้นที่บนหน้าจอแสดงผลซึ่งโดยปกติจะมีขนาดปรับได้และเป็นรูปสี่เหลี่ยมผืนผ้า เพื่อแสดงส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) แก่ผู้ใช้ หน้าต่างเหล่านี้อาจซ้อนทับกันได้ ซึ่งแตกต่างจากอินเท อร์เฟซแบบเรียงต่อกัน (tiling interface)ที่ไม่อนุญาตให้ซ้อนทับกัน โดยปกติ จะมี ภาพตกแต่งหน้าต่างวาดอยู่รอบๆ แต่ละหน้าต่าง การเขียนโปรแกรมทั้งภาพตกแต่งหน้าต่างและวิดเจ็ต ที่มี อยู่ภายในหน้าต่าง ซึ่งเป็นองค์ประกอบกราฟิกสำหรับการโต้ตอบกับผู้ใช้โดยตรง เช่น ตัวเลื่อน ปุ่ม ฯลฯ นั้นง่ายขึ้นและสะดวกขึ้นด้วยการใช้ชุดเครื่องมือวิดเจ็ต
รายละเอียดทางเทคนิค
ส่วนประกอบหลักของระบบหน้าต่างใดๆ มักเรียกว่าเซิร์ฟเวอร์แสดงผล (display server ) แม้ว่าจะมีคำศัพท์อื่นๆ เช่นเซิร์ฟเวอร์หน้าต่าง (window server ) ที่ใช้กันอยู่บ้างก็ตาม แอปพลิเคชันใดๆ ที่ทำงานและแสดงส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ในหน้าต่าง ถือเป็นไคลเอนต์ของเซิร์ฟเวอร์แสดงผล เซิร์ฟเวอร์แสดงผลและไคลเอนต์สื่อสารกันผ่านอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) หรือโปรโตคอลการสื่อสารซึ่งโดยทั่วไปเรียกว่าโปรโตคอลเซิร์ฟเวอร์แสดงผล โดยเซิร์ฟเวอร์แสดงผลทำหน้าที่เป็นตัวกลางระหว่างไคลเอนต์และผู้ใช้ มันรับข้อมูลเข้าทั้งหมดจากเคอร์เนลซึ่งเคอร์เนลได้รับจากอุปกรณ์อินพุต ที่เชื่อมต่อทั้งหมด เช่นแป้นพิมพ์อุปกรณ์ชี้ตำแหน่งหรือหน้าจอสัมผัสและส่งต่อไปยังไคลเอนต์ที่ถูกต้อง เซิร์ฟเวอร์แสดงผลยังรับผิดชอบในการแสดงผลของไคลเอนต์ไปยังจอภาพคอมพิวเตอร์ด้วย โดยปกติแล้ว เซิร์ฟเวอร์แสดงผลจะไม่จัดการการแสดงผลเสียง แต่ระดับเสียงมักจะถูกจัดการผ่านแอปเพล็ต GUI และเซิร์ฟเวอร์แสดงผลจะเป็นผู้ตัดสินใจว่าแอปพลิเคชันใดจะอยู่ด้านบนสุด ระบบหน้าต่างช่วยให้ผู้ใช้คอมพิวเตอร์สามารถทำงานกับหลายโปรแกรมพร้อมกันได้ แต่ละโปรแกรมจะแสดง GUI ในหน้าต่างของตัวเอง ซึ่งโดยทั่วไปจะเป็นพื้นที่สี่เหลี่ยมผืนผ้าบนหน้าจอ
จากมุมมองของโปรแกรมเมอร์ ระบบจัดการหน้าต่างจะทำหน้าที่ประมวลผลกราฟิกขั้นพื้นฐาน เช่น การแสดง ผลตัวอักษรหรือการวาดเส้นบนหน้าจอ มันเป็นเหมือนนามธรรมของฮาร์ดแวร์กราฟิกที่สามารถใช้งานได้โดยองค์ประกอบระดับสูงของส่วนติดต่อผู้ใช้แบบกราฟิก เช่น ตัวจัดการหน้าต่าง
โปรโตคอลเซิร์ฟเวอร์แสดงผลสามารถทำงานผ่านเครือข่ายได้ หรือแม้กระทั่งโปร่งใสต่อเครือข่ายซึ่งช่วยอำนวยความสะดวกในการใช้งานไคลเอ็นต์แบบบาง (thin client )
เซิร์ฟเวอร์แสดงผล

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

ระบบX Window Systemเปิดตัวครั้งแรกในปี 1984 และเป็นระบบจัดการหน้าต่างหลักสำหรับ ระบบ ปฏิบัติการ Unixและ ระบบปฏิบัติการ ที่คล้าย Unix มาโดยตลอด โปรโตคอลหลักอยู่ในเวอร์ชัน 11 ตั้งแต่ปี 1987 จึงมักเรียกกันว่า "X11" การใช้งานอ้างอิงปัจจุบันของโปรโตคอล X11 คือX.Org Serverซึ่งให้บริการเซิร์ฟเวอร์แสดงผลและส่วนประกอบเสริมบางอย่าง ระบบ X Window System ไม่ได้กำหนดรูปลักษณ์และความรู้สึกแต่ผู้ใช้จะเรียกใช้ตัวจัดการหน้าต่าง (ไม่ว่าจะแบบสแตนด์อโลนหรือเป็นส่วนหนึ่งของสภาพแวดล้อมเดสก์ท็อป ที่กว้างขึ้น ) และแอปพลิเคชันที่ออกแบบโดยใช้ชุดเครื่องมือวิดเจ็ตคลัง X.Orgประกอบด้วยตัวจัดการหน้าต่างอ้างอิงtwmการใช้งานอ้างอิงของชุดเครื่องมือวิดเจ็ตX Athena Widgetsและแอปพลิเคชันพื้นฐานบางอย่าง เช่น เครื่องคิดเลขและนาฬิกา[ 2 ]
ตัวอย่างที่โดดเด่นอื่นๆ ของเซิร์ฟเวอร์แสดงผลที่ใช้โปรโตคอลเซิร์ฟเวอร์แสดงผล X11 ได้แก่XFree86 (ซึ่งเป็นที่มาของ X.Org Server ในปัจจุบัน), XQuartz (สำหรับmacOS ) และCygwin/X (สำหรับMicrosoft Windows )
เวย์แลนด์

เซิร์ฟเวอร์แสดงผลที่ใช้โปรโตคอล Wayland เรียกว่าWayland compositorซึ่งสื่อสารกับไคลเอ็นต์ผ่านโปรโตคอล Wayland Wayland ถูกสร้างขึ้นเพื่อเป็นผู้สืบทอดต่อจาก X11 และแตกต่างจากการออกแบบของ X11 อย่างมาก Wayland compositor รวมฟังก์ชันของเซิร์ฟเวอร์แสดงผล ตัวจัดการหน้าต่าง และตัวจัดการคอมโพสิตเข้าไว้ในส่วนประกอบเดียว ในขณะที่ใน X11 ฟังก์ชันเหล่านี้เป็นซอฟต์แวร์ที่แยกจากกัน[ 3 ]
ขอบเขตของโปรโตคอล Wayland นั้นเล็กกว่าโปรโตคอลหลักของ X11 มาก โดยกำหนดเพียงวิธีการที่ไคลเอ็นต์เขียนข้อมูลลงในบัฟเฟอร์ที่เรียกว่า "พื้นผิว" และไม่ได้ทำหน้าที่เป็นโปรโตคอลเครือข่าย ฟังก์ชันการทำงานอื่นๆ ทั้งหมดถูกมอบหมายให้กับโปรโตคอลส่วนขยาย (ที่พัฒนาขึ้นในที่ เก็บ wayland-protocols ) ตัวจัดการการเรนเดอร์โดยตรงและส่วนประกอบevdev ของ เคอร์เนล Linuxไลบรารีกราฟิก 3 มิติMesa ชุดเครื่องมือวิดเจ็ต (เช่นGTK , QtและEFL ) ระบบพอร์ทัลเดสก์ท็อป XDG และ แพ็คเกจ ซอฟต์แวร์อื่นๆ เช่นlibinputและPipeWire
Wayland ได้รับการนำไปใช้โดยสภาพแวดล้อมเดสก์ท็อปโอเพนซอร์สหลายแห่ง รวมถึงGNOME [ 4 ]และKDE Plasma [ 5 ]ซึ่งพอร์ตมาจาก X11 และสภาพแวดล้อมเช่นCOSMICซึ่งเขียนขึ้นใหม่ทั้งหมดเป็นสภาพแวดล้อม Wayland-native นอกจากนี้ยังมีคอมโพสิเตอร์แบบสแตนด์อโลนหลายตัว เช่นWeston , Sway , Hyprland , Wayfire , niri , labwc ให้ ใช้ งานได้ Wayland ยังได้รับการนำไปใช้โดยระบบฝังตัวและระบบมือถือหลายระบบ รวมถึงTizen [ 6 ] , Sailfish OS [ 7 ]และWebOS [ 8 ]
ตัวอย่างการใช้งาน Wayland นั้นมีให้ใช้งานภายใต้ใบอนุญาต MITซึ่งประกอบด้วยไลบรารี libwayland-client และ libwayland-server
มีความพยายามอย่างต่อเนื่องในการเพิ่มการสนับสนุน Wayland ให้กับChromeOS [ 9 ]
มิร์
เซิร์ฟเวอร์แสดงผล Mirมาพร้อมกับโปรโตคอลเซิร์ฟเวอร์แสดงผล Mir ของตัวเอง ซึ่งแตกต่างจากโปรโตคอลที่ใช้โดย X11 และ Wayland นอกจากนี้ Mir ยังรองรับโปรโตคอล X11 ด้วย Mir ได้รับการพัฒนาโดยCanonicalและมีจุดประสงค์เพื่อเป็นเซิร์ฟเวอร์แสดงผลหลักสำหรับUbuntuแต่ในปี 2017 ได้ถูกแทนที่ด้วยเซิร์ฟเวอร์แสดงผล Wayland สำหรับ Ubuntu เวอร์ชันเดสก์ท็อปแล้ว
มีการใช้งานไลบรารีเซิร์ฟเวอร์แสดงผล Mir, libmir-server และ libmir-client ซึ่งเผยแพร่ภายใต้ใบอนุญาต GPLv3
ระบบจัดการหน้าต่างด้วย API
เซอร์เฟซฟลิงเกอร์
Googleได้พัฒนาเซิร์ฟเวอร์แสดงผลชื่อ SurfaceFlinger [ 10 ]สำหรับAndroid :
ทุกอย่างใน Android จะถูกแสดงผลบน "พื้นผิว" โดย "พื้นผิว" เหล่านี้ถูกสร้างขึ้นโดยแอปพลิเคชันและถูกจัดเก็บไว้ในคิวที่จัดการโดย SurfaceFlinger [ 11 ] [ 12 ]
อีกหนึ่งโซลูชันเฉพาะสำหรับ Android คือ "Gralloc" Gralloc ทำหน้าที่จัดการหน่วยความจำของอุปกรณ์ กล่าวคือ ทำการจัดสรร การตัดสินใจ และจัดการการซิงโครไนซ์ผ่านตัวอธิบายไฟล์รั้วของ Android/Linux Gralloc แข่งขันกับโซลูชันอื่นๆ เช่นGeneric Buffer Management (GBM) ของ Mesa หรือ EGLStreams ของ Nvidia เลเยอร์นามธรรมฮาร์ดแวร์ (HAL)ของ Gralloc ใช้ในการจัดสรรบัฟเฟอร์ที่อยู่เบื้องหลัง "พื้นผิว"
สำหรับการแสดงผลภาพแบบคอมโพสิตใน Android นั้น Surface จะถูกส่งไปยัง SurfaceFlinger ซึ่งใช้ OpenGL ES ในการแสดงผลภาพแบบคอมโพสิต
Hardware Composer HAL (HWC) ถูกนำมาใช้ใน Android 3.0 และได้รับการพัฒนาอย่างต่อเนื่องตลอดหลายปีที่ผ่านมา จุดประสงค์หลักคือการหาแนวทางที่มีประสิทธิภาพที่สุดในการรวมบัฟเฟอร์โดยใช้ฮาร์ดแวร์ที่มีอยู่ เนื่องจากเป็น HAL การใช้งานจึงขึ้นอยู่กับอุปกรณ์แต่ละชนิด และโดยปกติแล้วจะดำเนินการโดยผู้ผลิตฮาร์ดแวร์จอแสดงผล (OEM)
ควอตซ์คอมโพสิตเตอร์
สำหรับระบบปฏิบัติการmacOS ของ Apple นั้น Quartz Compositorทำหน้าที่เป็นทั้งเซิร์ฟเวอร์แสดงผลและตัวจัดการหน้าต่างในระบบการจัดการหน้าต่าง
ตัวจัดการหน้าต่างเดสก์ท็อป
สำหรับระบบปฏิบัติการ Microsoft Windowsตั้งแต่Windows Vistaเป็นต้นไปDesktop Window Manager (DWM)ช่วยให้สามารถใช้การเร่งความเร็วฮาร์ดแวร์ในการแสดงผลส่วนติดต่อผู้ใช้แบบกราฟิกได้ เดิมทีสร้างขึ้นเพื่อเปิดใช้งานส่วนต่างๆ ของประสบการณ์ผู้ใช้ "Windows Aero" ใหม่ ซึ่งอนุญาตให้ใช้เอฟเฟกต์ต่างๆ เช่น ความโปร่งใส การสลับหน้าต่างแบบ 3 มิติ และอื่นๆ นอกจากนี้ยังรวมอยู่ใน Windows Server 2008 ด้วย แต่ต้องติดตั้งคุณสมบัติ "Desktop Experience" และไดรเวอร์กราฟิกที่เข้ากันได้ด้วย ตั้งแต่ Windows 8 เป็นต้นไป DWM ไม่สามารถปิดใช้งานได้ และจะแสดงผลด้วยซอฟต์แวร์หากไม่มีการ์ดกราฟิกที่เหมาะสมติดตั้งอยู่
รายชื่อระบบหน้าต่าง
สำหรับระบบปฏิบัติการที่คล้าย Unix
- 8½และริโอสำหรับแผน 9
- fbui (พร้อมเคอร์เนล Linux ที่ได้รับการดัดแปลง)
- HP Windows/9000 (บน HP-UXเวอร์ชันแรกๆ) [ 13 ]
- CMU Andrew Window Manager [ 14 ]
- แซฟไฟร์[ 15 ]สำหรับPERQ
- ไวท์แชปเพิล โอเรียล[ 16 ]
- ซิลิคอนกราฟิกส์MEX
- ผู้จัดการ (MGR)
- เมทิสส์
- มิร์
- นิวเอส / โอเพ่นวินโดวส์
- ดีพีเอสถัดไป
- ออร์บิทัล ( รีดอกซ์ )
- Qt ขยาย
- Quartz Compositor ( macOS )
- ซันวิว
- หน้าต่างแฝด (หน้าต่างข้อความ)
- ระบบหน้าต่าง W
- เวย์แลนด์
- ระบบหน้าต่าง X
- เอ็กซ์ฟาสต์
- ซินธ์
- หน้าต่าง Y [ 17 ]
สำหรับระบบปฏิบัติการตระกูล Windows NT
- ตัวจัดการหน้าต่างเดสก์ท็อป (DWM) ในระบบปฏิบัติการ Microsoft Windows ( Vistaและรุ่นที่ใหม่กว่า)
- รีแอคโอเอส เอ็กซ์พลอเรอร์
- เปลือกหอยคลาสสิก
- โปกกี้
- RetroUI
ระบบหน้าต่างเว็บ
- โดโจ
- เอ็กซ์ทีเจเอส
- อินเทอร์เฟซทั่วไปของ TIBCO
อื่น
- ดีเอ็ม
- อัญมณี
- ปรีชา
- ไมโครวินโดวส์
- มินิกุย
- OOHG
- วิสัยทัศน์
- VWS (ซอฟต์แวร์เวิร์กสเตชัน VAX)
- mpx/mux (สำหรับเทอร์มินัล Blitของ Bell Labs )
- สัญลักษณ์หน้าต่างแบบไดนามิก
ระบบปฏิบัติการบางระบบ เช่นMicrosoft Windows ( XP , 9xและรุ่นก่อนหน้า), Mac OS รุ่นคลาสสิก (เวอร์ชัน9และรุ่นก่อนหน้า) และPalm OSมีระบบจัดการหน้าต่างที่ผสานรวมเข้ากับระบบปฏิบัติการอยู่แล้ว
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ระบบหน้าต่าง
ใน ด้านคอมพิวเตอร์ ระบบ หน้าต่าง (หรือ ระบบหน้าต่าง ) คือชุดซอฟต์แวร์ที่จัดการส่วนต่าง ๆ ของ หน้าจอแสดงผล แยก กัน [ 1 ] เป็นประเภทของ อินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ซึ่งใช้...
รายละเอียดทางเทคนิค
ส่วนประกอบหลักของระบบหน้าต่างใดๆ มักเรียกว่า เซิร์ฟเวอร์แสดงผล (display server ) แม้ว่าจะมีคำศัพท์อื่นๆ เช่น เซิร์ฟเวอร์หน้าต่าง (window server ) ที่ใช้กันอยู่บ้างก็ตาม แอปพลิเคชันใดๆ ที่ทำงานและแสดงส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ในหน้าต่าง...
เซิร์ฟเวอร์แสดงผล
เซิร์ฟเวอร์ แสดงผล หรือ เซิร์ฟเวอร์หน้าต่าง คือโปรแกรมที่มีหน้าที่หลักในการประสานงานการรับและส่งข้อมูลของไคลเอนต์ไปยังและจากส่วนอื่นๆ ของระบบปฏิบัติการ ฮาร์ดแวร์ และระหว่างกันเอง เซิร์ฟเวอร์แสดงผลสื่อสารกับไคลเอนต์ผ่านโปรโตคอลเซิร์ฟเวอร์แสดงผล ซึ่งเป็น...
เอ็กซ์11
ระบบ X Window System เปิดตัวครั้งแรกในปี 1984 และเป็นระบบจัดการหน้าต่างหลักสำหรับ ระบบ ปฏิบัติการ Unix และ ระบบปฏิบัติการ ที่คล้าย Unix มาโดยตลอด โปรโตคอลหลักอยู่ในเวอร์ชัน 11 ตั้งแต่ปี 1987 จึงมักเรียกกันว่า "X11" การใช้งานอ้างอิงปัจจุบันของโปรโตคอล X11 คือ...