อ่าน 2 นาที
Xvfb
Xvfb หรือ X virtual framebuffer เป็น เซิร์ฟเวอร์แสดงผล ที่ใช้ โปรโตคอลเซิร์ฟเวอร์แสดงผล X11 แตกต่างจากเซิร์ฟเวอร์แสดงผลอื่นๆ Xvfb ดำเนินการกราฟิกทั้งหมดใน หน่วยความจำเสมือน...
Xvfb
| Xvfb | |
|---|---|
| พิมพ์ | เซิร์ฟเวอร์แสดงผล |
| เว็บไซต์ | x |
XvfbหรือX virtual framebufferเป็นเซิร์ฟเวอร์แสดงผลที่ใช้โปรโตคอลเซิร์ฟเวอร์แสดงผลX11 แตกต่างจากเซิร์ฟเวอร์แสดงผลอื่นๆ Xvfb ดำเนินการกราฟิกทั้งหมดในหน่วยความจำเสมือนโดยไม่แสดงผลออกทางหน้าจอใดๆ จากมุมมองของ แอป ไคลเอ็นต์ X มันทำงานเหมือนกับเซิร์ฟเวอร์แสดงผล X อื่นๆ ทุก ประการ โดยให้บริการคำขอและส่งเหตุการณ์และข้อผิดพลาดตามความเหมาะสม อย่างไรก็ตาม เฟรมต่างๆ ไม่จำเป็นต้องแสดงบนหน้าจอ เซิร์ฟเวอร์ เสมือน นี้ ไม่ต้องการให้คอมพิวเตอร์ที่กำลังทำงานอยู่มีอะแดปเตอร์กราฟิกหน้าจอหรืออุปกรณ์อินพุต ใดๆ มี เพียง เลเยอร์ เครือข่าย เท่านั้น ที่จำเป็น Xvfb รองรับส่วนขยายโปรโตคอล X หลาย อย่างเช่น การจัดองค์ประกอบภาพและการสนับสนุน OpenGL GLXผ่านMesa [ 1 ]
สถานการณ์การใช้งาน
Xvfb ใช้สำหรับการทดสอบเป็นหลัก เนื่องจากใช้โค้ดร่วมกับเซิร์ฟเวอร์ X จริง จึงสามารถใช้ทดสอบส่วนของโค้ดที่ไม่เกี่ยวข้องกับฮาร์ดแวร์เฉพาะได้ สามารถใช้ทดสอบไคลเอ็นต์ในสภาวะต่างๆ ที่ปกติแล้วจะต้องใช้ฮาร์ดแวร์ที่แตกต่างกันหลายอย่าง ตัวอย่างเช่น สามารถใช้ทดสอบว่าไคลเอ็นต์ทำงานได้อย่างถูกต้องหรือไม่ที่ระดับความลึกหรือขนาดหน้าจอที่ฮาร์ดแวร์ไม่ค่อยรองรับ นอกจากนี้ยังสามารถใช้สำหรับการรันไคลเอ็นต์ในพื้นหลังได้ โปรแกรม xwdหรือโปรแกรมที่คล้ายกันสำหรับการจับภาพหน้าจอสามารถใช้เพื่อดูผลลัพธ์ได้จริง ยิ่งไปกว่านั้น ยังสามารถอำนวยความสะดวกในการรันโปรแกรมที่ต้องการให้เซิร์ฟเวอร์ X ทำงานอยู่แม้ว่าจะไม่ได้แสดงผลอะไรเลยก็ตาม (เช่น การทดสอบเบราว์เซอร์อัตโนมัติ เช่นSelenium [ 2 ]หรือJenkins [ 3 ] รายงาน HTML ของ Cloverใน Jira เป็นต้น )
ตัวอย่างการใช้งาน
ตัวอย่างภาพหน้าจอ
ตัวอย่างเช่น ลำดับคำสั่งต่อไปนี้จะเรียกใช้งาน X server แบบเฟรมบัฟเฟอร์เสมือนเป็นจอแสดงผล:1เรียกใช้โปรแกรม (xclock) บน X server นั้น และบันทึกภาพหน้าจอเสมือนลงในไฟล์image.xwdโดยใช้คำสั่ง xwd:
Xvfb :1 & xclock -display :1 & xwd -display :1 -silent -root -out image.xwd ผลลัพธ์สามารถแสดงได้โดยการเรียกใช้โปรแกรม xwud ( xwud -in image.xwd)
โปรแกรมxvfb-runมักใช้เพื่อทำให้กระบวนการค้นหาจอแสดงผลที่ว่างและจัดการการตรวจสอบสิทธิ์เป็นไปโดยอัตโนมัติ:
คำสั่ง xvfb-runการควบคุมระยะไกลผ่าน SSH
Xvfb ยังใช้สำหรับการควบคุมระยะไกลด้วยVNCผ่านSSHอาจเร็วกว่าX11ผ่าน SSH [ 4 ]โดยเฉพาะอย่างยิ่งการลดความหน่วงแฝงบนอินเทอร์เน็ต[ 5 ]ในกรณีนี้ Xvfb มักจะถูกรวมเข้ากับตัวจัดการหน้าต่างที่มีน้ำหนักเบา (เช่นFluxboxหรือOpenbox ) และเซิร์ฟเวอร์ VNC เช่นX11vncลำดับคำสั่งที่เป็นไปได้ในการเริ่มต้นสิ่งนี้บนเซิร์ฟเวอร์คือ:
export DISPLAY = :1 Xvfb " $DISPLAY " -screen 0 1024x768x24 & fluxbox & x11vnc -display " $DISPLAY " -bg -nopw -listen localhost -xkb ขั้นตอนต่อไปคือการเริ่มต้นใช้งานโปรแกรมไคลเอ็นต์ SSH เช่นPuTTYโดยเปิดใช้งานการส่งข้อมูลผ่านอุโมงค์ไปยัง localhost พอร์ต 5900 จากนั้นโปรแกรม vncviewer สามารถเชื่อมต่อกับ localhost เพื่อควบคุมเซิร์ฟเวอร์จากระยะไกลได้
ssh -N -T -L 5900 :localhost:5900 user@remotehost & vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900 หน้าคู่มือการใช้งานของ x11vnc ยังมีคำแนะนำเพิ่มเติมอีกด้วย
XVNC (อย่าสับสนกับ x11VNC) มีความคล้ายคลึงกับ XVFB มาก
ดูเพิ่มเติม
ลิงก์ภายนอก
- หน้าคู่มือ Xvfb
- Xvfb + Firefox – การสร้างภาพหน้าจออัตโนมัติของเว็บเพจ โดยใช้ Xvfb และMozilla Firefox
- Xpraเป็นทางเลือกแทน Xvfb โดยใช้เซิร์ฟเวอร์ X11 ธรรมดาที่มีไดรเวอร์จำลอง