Microsoft Windows Subsystem for Linux (WSL) เป็นชุดคอมโพเนนต์ของ Microsoft ที่อนุญาตให้ Linux 64-bit Executable and Linkable Format (ELF64) binaries รันบน Windows kernel ในระบบปฏิบัติการ Windows 10
ผู้ที่ควรใช้ WSL
Windows Subsystem for Linux เหมาะสำหรับนักพัฒนา Linux ที่ทำงานในสภาพแวดล้อม Windows เช่น นักพัฒนาเว็บที่มักใช้ Linux และเครื่องมือ open source จาก GitHub แต่เข้าถึงระบบ Linux เต็มรูปแบบได้จำกัด WSL ให้นักพัฒนาใช้เครื่องมือ Linux ทั่วไป และภาษาพัฒนาขั้นสูง เช่น Ruby และ Python ผ่าน Windows
WSL 1 เทียบกับ WSL 2
Microsoft เสนอ 2 เวอร์ชัน: WSL 1 และ WSL 2 ใหม่กว่า ทั้งคู่อุปการรวมระหว่าง Windows และ Linux ทั้งคู่เบาและบูทเร็ว ทั้งคู่ทำงานกับ hypervisors ที่ไม่ใช่ Microsoft เช่น VMware และ Oracle VM VirtualBox
ความแตกต่างหลัก
- WSL 2 รันภายใน managed VM: VM ถูกจัดการโดยอัตโนมัติ ไม่ต้องกังวลการตั้งค่าหรือจัดการ VM ทั่วไป
- WSL 2 ใช้ Linux kernel เต็มรูปแบบ: Kernel นี้สร้างโดย Microsoft อัปเดตผ่าน Windows Update
Microsoft แนะนำ WSL 2 เพราะประสิทธิภาพดีกว่า และมี 100% system call compatibility รันแอปเช่น Docker ได้ แต่ต้องใช้ WSL 1 หากโปรเจกต์ต้องจัดเก็บบน Windows File System หรือต้องการ cross-compilation ระหว่าง Windows และ Linux tools
คำถามที่พบบ่อย (FAQs)
ทำไมควรใช้ WSL แทน Linux ใน VM?
WSL มีข้อได้เปรียบ 2 ข้อ: 1) ใช้น้ำหนักทรัพยากรน้อยกว่า VM เต็มรูปแบบ (CPU, RAM, storage) 2) ทำให้ Windows และ Linux รันพร้อมกัน นักพัฒนาใช้แอป Windows และ utilities Linux บนไฟล์เดียวกันได้
WSL มีข้อจำกัดหรือไม่?
มีข้อจำกัดหลายประการ: 1) ไม่รองรับแอป Linux ทั้งหมด ตั้งใจให้ใช้ bash และ command-line utilities หลัก 2) ไม่รองรับ Linux GUI เช่น Gnome หรือ KDE 3) รองรับเฉพาะ Ubuntu distribution (ขณะเขียน) 4) มีเฉพาะ Windows 10 ไม่มีใน Windows Server 5) ไม่ได้ตั้งใจเป็นโฮสต์แอปเซิร์ฟเวอร์ Linux (แม้รัน Redis เป็น database ได้บางส่วน)
WSL รองรับระบบไฟล์อะไรบ้าง?
WSL ใช้ 2 ระบบไฟล์: VolFs รองรับ Linux conventions (permissions, links, ชื่อไฟล์ที่ Windows ไม่รับ, โครงสร้างไดเรกทอรี Linux) แต่ไม่รองรับ interoperability กับแอป Windows DriveFs ให้ interoperability บังคับชื่อไฟล์ Windows ความปลอดภัย Windows รองรับ case-sensitive filenames โครงสร้างไดเรกทอรี DriveFs ให้ใช้ Windows หรือ Linux tools กับไฟล์พร้อมกันได้