Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows

รัน Linux GUI Apps จาก Bash บน Windows 10 ด้วย Xming

สวัสดีครับ ไม่รู้ว่าทำไมคุณพูด Windows ผมพูด Linux จนก่อนหน้านี้ การรัน Linux บน Windows ใช้ได้แค่ผ่าน Virtualization แต่ตอนนี้ Windows 10 มีการรองรับ Ubuntu แบบ Native โชคดีนะ

เราเคยเห็นมันทำงานแล้ว และประหลาดใจ แต่มีอย่างหนึ่งที่เรายังไม่สำเร็จ คือการรัน Graphical Applications อิมเมจ Ubuntu ไม่มาพร้อมส่วน Graphical คุณติดตั้ง X11 Server ได้ แต่เปิดไม่ได้ ต้องใช้ X Server ภายนอกสำหรับแอพกราฟิก มาลองดู

ตั้งค่า Xming

Ming คือตัวร้ายใน Flash Gordon Xming คือ X Server สำหรับ Windows จะให้เรา Export Display แล้วรันแอพกราฟิก คล้าย VNC แต่มาต่างกัน Same same but different หลังจากที่ตั้งค่า BASH บน Windows 10 เรียบร้อย ขั้นตอนต่อไปคือติดตั้งโปรแกรมนี้

ติดตั้งเสร็จ รันมัน ถ้าคุณเปิด Windows Firewall จะมีพรอมต์ ถูกต้อง เพราะ Xming ต้องรันเป็น Server รับ Connection เข้า ควรอนุญาตเฉพาะที่อยู่ Local (Private) เท่านั้น หากอ่านบทความ Linux Commands & Configurations และ Review Xephyr ของผมก่อนหน้านี้ ควรจะเข้าใจง่ายขึ้น

ภาพหนึ่งพูดได้กว่าพันพิกเซล

แล้วกัน Xming ควรทำงานอยู่ - ควรแสดงใน System Tray ตอนนี้ลองรันแอพกราฟิก เช่น Firefox หรือ VLC แต่คุณต้องบอกแอพว่า Display อยู่ที่ไหน ทำได้หลายวิธี วิธีง่ายสุด:

DISPLAY=:0 <software>

ภาพสวยๆ ให้กำลังใจเยอะแยะ! แกลเลอรี่เล็กนี้ยังรวมภาพหน้าจอวิธีเข้าถึงไดรฟ์ Windows และเปิดไฟล์เพลง โดยค่าเริ่มต้นคุณมีแค่ Home Directory แต่ถ้าไปขึ้นไปใน Filesystem Tree จะมี Mounts สำหรับไดรฟ์ Windows อยู่ที่ /mnt คล้าย WINE

สมบูรณ์แบบไหม?

ไม่อย่างนั้นเลย มีปัญหาหลายอย่าง ไม่มี 3D Acceleration Sound Card หรือ Camera ไม่ทำงาน เพราะ WSL (Windows Subsystem for Linux) เป็น User-mode Implementation เท่านั้น เข้าถึงฮาร์ดแวร์โดยตรงไม่ได้ในขั้นนี้ Performance ยังเป็นปัญหา

ยังอาจมีบั๊กด้านกราฟิก และ Missing Dependencies ตอนแรก VLC รันไม่ได้ เพราะ PulseAudio ตั้งค่าผิด Crash จริงๆ ต่อมารันได้หลังติดตั้ง Dependencies เพิ่ม แต่ไม่มีเสียง Firefox ร้องเรียนเรื่อง Namespace Sandboxing แต่รันได้ปกติ

DISPLAY=:0 vlc
VLC media player 2.1.6 Rincewind (revision 2.1.6-0-gea01d28)
[0x1217f08] pulse audio output error: PulseAudio server connection failure: Connection refused
Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.
Aborted (core dumped)

Sandbox: unexpected multithreading found; this prevents using namespace sandboxing.

สรุป

นี่คือหัวข้ออีกอันที่เชี่ยวชาญ สนุกดี ใครคิดได้ แต่วิธีนี้เปิดโอกาสมากขึ้น และยังเป็น Beta Full Stack อาจน่าสนใจกว่า และถ้า Drivers ถูกนำเข้ามา ผู้ใช้จะได้ประสิทธิภาพดีขึ้นและใช้ฮาร์ดแวร์เต็มที่ ตอนนี้คุณสามารถใช้ BASH และด้วย Xming ทดสอบแอพกราฟิกด้วยระดับเสถียรताพอสมควร ผลลัพธ์ไม่รับประกัน และประสบการณ์ค่อนข้าง Lag

ผมพบว่า WSL เป็นฟีเจอร์ที่ Refreshing ที่สุดของ Windows 10 แม้ยังไม่ได้สืบประโยชน์มาก แต่ถ้าคิดดีๆ OS ของ Microsoft นี้ทำให้คุณใกล้โลก Linux มากกว่ารุ่น Windows ไหนมาก่อน ค่อนข้าง Elegan ทราบแน่ใจว่าผมจะทดสอบและปรับแต่งต่อไป ความยืดหยุ่น ความปลอดภัย และใครรู้อะไรเพิ่มเติม กำลังดึงดูดผมอย่างยากลำบาก ติดตามต่อไปจะมีความสนุกมากขึ้น

Cheers.