Saladpuk.com
🏆 เนื้อหาหลัก
Search
K
🔄

WSL

🤔 อยากใช้ Windows กับ Linux พร้อมกันทำไง

🤠 รู้ป่ะ ?

โดยปรกติโปรแกรมต่างๆนั้นจะมีต้นกำเนิดมาจาก Linux OS ซะส่วนใหญ่ไม่ว่าจะเป็น MongoDB, Nginx, Redis, Anaconda บลาๆ แล้วพอเวลาผ่านไปมีคนใช้เยอะขึ้นจนดังเป็นพลุแตก แน่นอนว่าขาเดฟในฝั่ง Windows ก็เป็นกลุ่มตลาดใหญ่เช่นกัน ดังนั้นเขาก็จะทำการแปลงโปรแกรมเหล่านั้นให้ฝั่ง Windows OS ใช้งานได้ แต่ด้วยชาติกำเนิดของมันที่ถูกสร้างและ Optimize มาจาก Linux ทำให้บางเรื่องก็ยังไม่สามารถดึงประสิทธิภาพออกมาได้เต็ม 100% และความสามารถบางอย่างก็ยังใช้งานได้แค่ฝั่ง Linux เท่านั้น เพราะความสามารถบางตัวไม่มีบน Windows หรือยังแปลงมาไม่เสร็จ

🤯 WSL

จากที่เล่ามาทาง Microsoft ก็รู้จุดอ่อนนี้เหมือนกันเลยทำให้เกิดไอเดียว่า จะดีกว่าไหมถ้า Windows ทำงานร่วมกับ Linux ได้เป็นหนึ่งเดียวกันเลย? ดังนั้นเลยเกิดโปรเจคที่ชื่อว่า Windows Subsystem for Linux หรือ WSL เกิดขึ้น ซึ่งมันจะทำให้เราสามารถใช้งาน Linux บน Windows ได้แบบ Native โดยที่ไม่ต้องลง Virtual Machine หรือ Hyper-V ใดๆเลย 😘
ดังนั้นถ้าเราใช้ WSL มันจะทำให้เครื่องของเราใช้ Linux ได้แบบ Native แถมยังเลือกใช้ Linux ได้หลายตัวพร้อมๆกันด้วย ตามรูปด้านล่าง
แถมยังแชร์ไฟล์/ไดรฟ์ ได้แบบเป็นหนึ่งเดียวกัน ไม่ต้องคอยแปลง format หรือจัดการเรื่อง network อะไรด้วย
และความแจ่มแมวอีกอย่างคือ เราสามารถใช้ WSL ควบคู่กับ 🐳 Docker ได้ด้วยนะจ๊ะ

🛠️ Installation

ถ้าใครอ่านมาถึงตรงนี้ ดชแมวน้ำ ก็น่าจะขายของได้แล้วล่ะ ดังนั้นมาเตรียมติดตั้ง WSL กันดีกั่ว ตามขั้นตอนพวกนี้

🔥 Requirements

อย่างแรกเลยคือตัว Windows ของเราจะต้องเป็นเวอร์ชั่นที่รองรับก่อนตามตารางด้านล่าง
System
Version
x64
ขั้นต่ำ Version 1903 Build 18362
ARM64
ขั้นต่ำ Version 2004 Build 19041
ส่วนวิธีตรวจว่าเครื่องตัวเองรองรับหรือเปล่าให้กดปุ่ม Windows แล้วพิมพ์คำว่า winver แล้วกด enter ก็จะเจอเวอร์ชั่นของเครื่องเรา แล้วก็เอามาเช็คกับตารางตัวนี้เอาครับ ส่วนเครื่องใครยังไม่ใช่เวอร์ชั่นที่รองรับก็รบกวนกดที่ลิงค์นี้ Update Windows version เพื่อไปทำการอัพเกรดเป็นตัวล่าสุดก่อนละกัน

🔥 Enable WSL

ต่อมาก็จะเปิดให้เครื่องเราสามารถใช้ WSL ได้ โดยการเปิด PowerShell ขึ้นมาในโหมด admin ซึ่งสามารถทำได้โดยกดปุ่ม Windows แล้วพิมพ์ว่า powershell แล้วเราจะเห็นโปรแกรม PowerShell โชว์ขึ้นมา ให้ทำการคลิกขวาแล้วเลือกเป็น Run as administrator แล้วตอบ yes ได้เบย
พอหน้าจอดำๆเปิดขึ้นมาละก็ copy คำสั่งด้านล่างลงไป แล้วกด enter โลด
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
ถัดมาก็ทำการเปิด Virtual Machine feature โดยการใช้คำสั่งด้านล่าง
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
ถึงตรงนี้ หากเครื่องใครใช้ WSL เวอร์ชั่น 1 อยู่ อาจจะต้อง Restart เครื่องซักรอบนึงนะ ส่วนใครอยากจะย้ำให้มั่นใจก็ restart ด้วยกะได้

🔥 Install Linux kernel

ถัดมาเราก็จะติดตั้ง Linux kernel ให้กับเครื่องเรา โดยการดาวโหลดไฟล์ด้านล่างมาติดตั้งให้เรียบร้อย (เลือกติดตั้งแค่ตัวเดียวนะขึ้นอยู่กับว่าเครื่องเราเป็น x64 หรือ ARM)
ตอนติดตั้งมันกดแค่ 2-3 ทีก็ติดตั้งเสร็จละ ไวมากไม่ต้องตกใจนะ 😂
หมายเหตุ สำหรับใครที่ไม่รู้ว่าเครื่องตัวเองเป็น x64 หรือ ARM64 สามารถตรวจง่ายๆโดยใช้คำสั่งด้านล่างนี้ครับ
systeminfo | find "System Type"
หมายเหตุ สำหรับคนที่เคยติดตั้ง WSL เวอร์ชั่นเก่าแล้วอยากเปลี่ยนมาใช้เวอร์ชั่นล่าสุด (ณ ตอนที่เขียนบทความนี้คือเวอร์ชั่น 2) ก็สามารถทำได้ง่ายๆโดยใช้คำสั่งด้านล่างนี้ครัช
wsl --set-default-version 2

🔥 Install Linux distribution

จากตรงนี้เครื่องเราก็จะพร้อมทำงานทุกอย่างละ สุดท้ายเราก็ต้องเลือกว่าจะใช้ Linux ตัวไหนบ้าง โดยเพื่อนๆสามารถเลือกได้จากลิสค์ด้านล่างนี้เลยกั๊ฟ

🔥 Set up a new distribution

หลังจากที่ติดตั้ง Linux distribution เสร็จแล้ว โดยปรกติ Linux OS นั้นเราจะต้องเข้าไปตั้ง Username & Password ต่างๆก่อนถึงจะเข้าไปใช้งานได้ (จริงๆ Mac, Windows ก็มีเรื่องพวกนี้เหมือนกัน แต่ส่วนใหญ่เราจะทำผ่าน GUI อยู่แล้วเลยไม่รู้ตัว) ดังนั้นให้เปิด Linux ที่เราพึ่งติดตั้งขึ้นมา แล้วตั้ง username & password โลด (สำหรับคนไม่เคยใช้ Linux ตอนใส่รหัสผ่านมันจะไม่แสดงสิ่งที่เราพิมพ์นะ ให้ใส่ให้ครบแล้วกด enter ได้เลย)
ใครลงไรก็เปิดอันนั้นขึ้นมา ส่วนป๋มลง Ubuntu กับ Debian
หลังจากที่สร้าง user เสร็จแล้ว สุดท้ายก็ทำการอัพเกรด packages กันหน่อยด้วยคำสั่งด้านล่าง
sudo apt update && sudo apt upgrade
จากทั้งหมดที่ทำมาก็เป็นอันว่าเครื่องคอมของเรา มี Windows และ Linux ทำงานอยู่บนเครื่องเดียวกันเรียบร้อยแล้วขอรับ ฮูเร่!! 🎉

🔥 Install Windows Terminal

ตัวนี้ไม่จำเป็นต้องลงก็ได้ แต่ส่วนตัวแมวน้ำชอบ เพราะมันทำให้เราเปิดหลายๆ Terminal ขึ้นมาได้พร้อมๆกัน แถมยังจัดการตกแต่งสีอะไรต่างๆได้ด้วย ทำให้เราไม่ต้องสลับจอไปๆมาๆเลย ซึ่งเพื่อนๆสามารถไปดาวโหลดมาติดตั้งได้จากลิงค์นี้ครัช Microsoft Store
ซึ่งหลังจากติดตั้งเสร็จแล้ว เราก็ลองเปิดขึ้นมาเล่นดูก็จะพบว่า เราสามารถเลือกที่จะเปิด Terminal มาได้ทุกรูปแบบ Command Prompt, PowerShell, CloudShell, Linux ต่างๆที่เราติดตั้งไว้ได้หมดเลย ส่วนใครที่อยากจะตกแต่งลูกเล่นเพิ่มเติมต่างๆก็สามารถกด Setting ไปเล่นต่อได้ โดยสามารถศึกษาได้จากลิงค์นี้กั๊ฟ Windows Terminal
https://docs.microsoft.com/en-us/windows/terminal/panes

🐳 Docker

สำหรับขาเดฟที่ชื่นชอบพี่วาฬก็สามารถนำ WSL มาทำงานร่วมได้เช่นกัน โดยการคลิกขวาที่ไอคอนพี่วาฬแล้วเลือก Settings > General แล้วติ๊กเลือกว่าจะทำงานกับ WSL ได้เบย
ถัดมาเราก็จะมาตั้งค่าว่าจะให้ Linux ตัวไหนที่ใช้งาน Docker ได้บ้าง ตามรูปด้านล่าง
หลังจากที่กดตกลงเรียบร้อย + รีสตาร์ท Docker เรียบร้อย เจ้า Linux ของเราก็จะสามารถใช้งาน docker command ได้แบ้ว แถมยังไม่ต้องใช้ Hyper-V ในการสร้าง Linux VM อีกด้วย นั่นหมายความว่าเครื่องของเรากับ Linux ทำงานแบบแชร์ Resource พวก CPU, Memory, Storage กันได้อย่างแท้จริง ไม่ต้อง dedicate ของเหล่านั้นอีกแล้ว แปลเป็นภาษามนุษย์ง่ายๆว่า เครื่องไม่อืดนั่นเอง 😂
สำหรับเพื่อนๆที่ต้องการศึกษาการใช้ WSL ควบคู่กับ Docker ก็สามารถไปอ่านต่อได้จากเอกสารหลักของ Docker ได้เลยนะกั๊ฟ Docker Desktop WSL 2 backend ซึ่งแทบจะเรียกว่ามันเป็น Best Practices ของเขาในการใช้งานของ Windows เลยก็ว่าได้ 😘