ติดตั้งระบบย่อย Windows สำหรับ Linux

Install Windows Subsystem



Windows Subsystem for Linux เป็นยูทิลิตี้ที่พัฒนาโดย Microsoft เพื่อให้นักพัฒนาและผู้ที่ชื่นชอบ Linux สามารถเรียกใช้สภาพแวดล้อม Linux ที่พวกเขาชื่นชอบได้บน Windows 10 โดยไม่ต้องใช้เครื่องเสมือน วิธีการทำงานก็คล้ายกับวิธีการ ไวน์ ทำงานบนลินุกซ์ WSL ช่วยให้ไบนารีของ Linux สามารถทำงานบน Windows โดยใช้เลเยอร์ความเข้ากันได้ซึ่งแปลการเรียกระบบ Linux เป็นการเรียกระบบ Windows

สถาปัตยกรรม

เป็นไปได้ว่า WSL ทำงานได้ดีบน Windows มากกว่า WINE ทำบน Linux และเหตุผลเบื้องหลังเป็นเพราะ Linux มีลักษณะเฉพาะในแง่ของสถาปัตยกรรม ในขณะที่ระบบปฏิบัติการส่วนใหญ่ประกอบด้วยเคอร์เนลและชุดไลบรารีและคุณลักษณะทั้งหมดที่สร้างขึ้นจากเคอร์เนลนั้น แต่ Linux เป็นเพียงเคอร์เนล GNU/Linux distros ส่วนใหญ่ใช้เคอร์เนลนี้และสร้างสแต็กระบบปฏิบัติการไว้ด้านบน ขึ้นอยู่กับว่าคุณเลือกสร้างสแต็กนี้อย่างไร คุณจะได้รับการแจกแจงแบบต่างๆ เช่น Debian, RedHat เป็นต้น







ในการเรียกใช้สภาพแวดล้อม Linux บน Windows คุณจะต้องเปิดใช้งานคุณสมบัติ WSL (เราจะกล่าวถึงในไม่ช้า) จากนั้นไปที่ร้านค้าของ Microsoft เพื่อรับสำเนาของการแจกจ่ายที่คุณชื่นชอบ (Ubuntu, Debian, OpenSUSE เป็นต้น)



ขั้นตอนแรกเปิดใช้งานเลเยอร์การแปล syscall และขั้นตอนที่สองนำซอฟต์แวร์น้ำหนักเบามารวมกันเพื่อให้คุณมีระบบปฏิบัติการ Linux ที่สมบูรณ์เพื่อทำงานบนคุณสมบัติ WSL การทำตรงกันข้าม กล่าวคือ การเรียกใช้แอปพลิเคชัน Windows บน Linux นั้นยากกว่ามาก เนื่องจาก Windows เป็นมากกว่าเคอร์เนล NT



ด้วยเหตุนี้จึงไม่มีเครื่องเสมือนที่เกี่ยวข้องกับการนำ WSL ไปใช้ ทำให้เป็นตัวเลือกที่น่าสนใจ คุณจะไม่สูญเสียประสิทธิภาพใดๆ เนื่องจากไม่มี VM เกี่ยวข้อง เพียงแค่เลเยอร์การแปล syscall แบบเนทีฟน้ำหนักเบา





การติดตั้งและตั้งค่า

บนพีซี Windows 10 ของคุณ ให้ค้นหา เปิดหรือปิดคุณลักษณะของ Windows โดยคลิกปุ่ม Windows แล้วพิมพ์สิ่งเดียวกันลงในเมนูเริ่ม เมื่อเมนูคุณลักษณะของ Windows เปิดขึ้น ให้เลื่อนไปที่ด้านล่างซึ่งคุณจะพบคุณลักษณะระบบย่อยของ Windows สำหรับ Linux ทำเครื่องหมายที่ช่องนั้นแล้วคลิกตกลง



Windows จะดูแลการตั้งค่าตั้งแต่นี้เป็นต้นไป และเมื่อทุกอย่างเสร็จสิ้น คุณจะต้องรีบูตระบบเพื่อสิ้นสุดการเปลี่ยนแปลง หลังจากรีบูต คุณสามารถไปที่ Microsoft Store และค้นหาการแจกจ่ายที่คุณชื่นชอบในนั้น

คุณสามารถค้นหาร้านค้าสำหรับการกระจายที่คุณชื่นชอบ ด้านล่างนี้เป็นภาพหน้าจอของการแจกแจงที่ใช้บ่อยที่สุดบางส่วน คุณสามารถดู OpenSUSE ได้สองแบบ ได้แก่ แอป Debian และ Kali Linux

แน่นอนว่าการแจกจ่ายที่ได้รับความนิยมมากที่สุดยังคงเป็น Ubuntu ที่มีทั้ง 16.04 และ 18.04 LTS ในร้านค้า

ติดตั้งระบบย่อย Windows สำหรับ Linux

ตอนนี้คุณเพียงแค่ต้องเลือกการแจกจ่ายที่คุณต้องการและติดตั้งแอพที่เกี่ยวข้อง เราจะติดตั้ง Ubuntu 18.04 LTS สำหรับสภาพแวดล้อม WSL ของเรา มีขนาดประมาณ 215 MB ซึ่งเล็กกว่าการติดตั้ง Ubuntu ทั้งหมดมาก

เมื่อติดตั้งแอปแล้ว คุณสามารถเปิดใช้งานได้โดยตรงจากแอป Microsoft Store หรือโดยการค้นหาในเมนูเริ่ม เมื่อเปิดตัวเป็นครั้งแรก จะต้องใช้เวลาสักครู่ในการตั้งค่าสิ่งต่างๆ ให้กับคุณ

อาจใช้เวลาถึง 5 นาที แต่เมื่อเสร็จแล้ว คุณจะได้รับแจ้งให้ป้อนชื่อผู้ใช้และรหัสผ่าน UNIX ใหม่ของคุณ เท่านี้ก็เรียบร้อย!

เทอร์มินัลที่เปิดตัวจะมอบฟังก์ชันเกือบทั้งหมดของระบบ Ubuntu ให้คุณ ยกเว้น GUI เนื่องจากความสามารถของ UNIX/Linux ส่วนใหญ่มาจากขุมพลังของเทอร์มินัล จึงช่วยพาคุณไปได้ไกล

ตัวอย่างเช่น เราสามารถเริ่มใช้สภาพแวดล้อมนี้โดยอัปเดตแพ็คเกจทั้งหมดที่ติดตั้งในนั้น

$sudoapt update&& sudoอัพเกรดฉลาด-และ

สิ่งที่คุณทำได้และไม่สามารถทำได้ในสภาพแวดล้อม WSL

ทีนี้ คำถามที่เกิดขึ้นในใจของทุกคนคือ — อะไรคือสิ่งที่จับได้?

ลองพิจารณากรณีตรงข้ามกัน ด้วยเทคโนโลยีอย่าง WINE เราทราบดีว่าไม่ใช่ทุกสิ่งที่สามารถทำได้ใน Windows ที่ไม่สามารถทำได้บน Linux ไลบรารีระบบระดับต่ำ เช่น DirectX จะไม่พร้อมใช้งานบน Linux และแอปพลิเคชันจำนวนมากบน Windows พึ่งพาไลบรารีดังกล่าว

ระบบปฏิบัติการ เช่น Windows 10, FreeBSD หรือ Illumos เป็นระบบปฏิบัติการที่ครบครัน ไม่ใช่แค่เคอร์เนลเท่านั้น สำหรับ Windows เนื่องจากไลบรารีส่วนใหญ่เป็นกรรมสิทธิ์และทำให้เรื่องนี้ยากขึ้น ทำให้งานของโครงการอย่าง WINE ยากขึ้นมาก

เมื่อพยายามเลียนแบบ Linux บน Windows สิ่งที่ตรงกันข้ามก็เป็นจริง ชุดการโทร ABI ที่รัดกุมของ Linux (หรือ syscall) คือทั้งหมดที่คุณต้องใช้ในการแปลเป็น Windows เพื่อเรียกใช้ทุกอย่างที่อยู่ด้านบน หากเราพยายามถาม Ubuntu บน WSL ว่าเคอร์เนลใช้อะไรอยู่ มันจะให้หมายเลขเวอร์ชันเคอร์เนลของ Linux โดยที่ Microsoft ระบุไว้ข้างหมายเลขเวอร์ชันเพื่อระบุว่านี่ไม่ใช่สาขาหลักของโครงการเคอร์เนล Linux

$uname -ถึง

หากเราเจาะลึกลงไป เราจะพบว่าในขณะที่ฟังก์ชันระดับสูง เช่น เลย์เอาต์ระบบไฟล์ และการกำหนดค่าเครือข่ายแสดงขึ้น แต่กิจกรรมระดับล่าง เช่น เลย์เอาต์ที่เก็บข้อมูลแบบบล็อกจะไม่ทำงาน

ตัวอย่างเช่น คำสั่งต่อไปนี้จะทำงานตามที่คาดไว้:

$df -ชม

$ifconfig

ทั้งสองคำสั่งจะบอกข้อมูลเกี่ยวกับระบบเนทีฟของคุณซึ่งใช้งาน Windows อยู่จริง ไม่ใช่อะไรที่เหมือนกับการรัน VM ที่มีอินเทอร์เฟซเครือข่ายและระบบไฟล์ที่แตกต่างกันโดยสิ้นเชิง

อย่างไรก็ตามคำสั่งเช่น lsblk ใช้งานไม่ได้เพราะพื้นที่จัดเก็บบล็อกระดับล่างไม่ใช่สิ่งที่ลีนุกซ์คาดหวัง ในทำนองเดียวกัน การติดตั้ง OpenZFS นั้นไร้ประโยชน์เพราะ OpenZFS ติดตั้งโมดูลเคอร์เนลที่โหลดได้สองสามตัว และเราไม่มีเคอร์เนล Linux เพียงภาพลวงของมัน

เช่นเดียวกับถ้าคุณพยายามเรียกใช้นักเทียบท่า เมื่อติดตั้ง Docker อูบุนตูจะไม่บ่น อย่างไรก็ตาม บริการ Docker จะไม่เริ่มทำงาน เนื่องจากขึ้นอยู่กับ Systemd ซึ่งไม่มีอยู่ในระบบย่อยนี้

อย่างไรก็ตาม คุณสามารถเรียกใช้บริการและยูทิลิตี้ทุบตีได้มากมายเพื่อทำให้ชีวิตของคุณง่ายขึ้น หากคุณจัดการเซิร์ฟเวอร์ Linux เพื่อหาเลี้ยงชีพ คุณไม่จำเป็นต้องมี Linux บนเดสก์ท็อปเช่นกัน คุณสามารถรันไคลเอ็นต์ SSH, ไคลเอ็นต์ Docker, bash, โปรแกรมอรรถประโยชน์ เช่น grep และ awk ตลอดจนภาษาการเขียนโปรแกรมที่คุณชื่นชอบตั้งแต่ Python ถึง Rust ในสภาพแวดล้อมนี้โดยไม่สร้างมลพิษต่อระบบ Windows ของคุณ

คุณยังสามารถเรียกใช้ระบบอัตโนมัติของ CD/CI โดยใช้ Ansible, Puppet หรือเทคโนโลยีอื่นๆ ที่คุณต้องการ กล่าวคือ สิ่งที่ DevOp นักพัฒนาเว็บหรือแอปพลิเคชันหรือผู้ทดสอบต้องการจากระบบ Linux สามารถทำได้ด้วย WSL ยกเว้นผู้ที่ทำงานกับซอฟต์แวร์ระบบและ/หรือการพัฒนาเคอร์เนล

บทสรุป

มีความคิดหรือประสบการณ์เกี่ยวกับ Windows Subsystem บน Linux หรือไม่? หรือบางทีคุณยังมีคำถามที่ต้องการคำตอบ ติดต่อเราพร้อมคำถามของคุณและเราจะครอบคลุมหัวข้อนั้นให้คุณ