Windows Subsystem for Linux หรือ WSL เวอร์ชัน 2 ถือเป็นฟีเจอร์ใหญ่ของ Windows 10 รุ่นล่าสุด (จะมาในเวอร์ชัน 20H1) การเปลี่ยนแปลงสำคัญคือมันเป็นลินุกซ์ที่ใช้เคอร์เนลตัวเต็ม ทำให้ได้ฟีเจอร์ต่างๆ เทียบเท่ากับดิสโทรลินุกซ์จริงๆ ที่รันอยู่ใน Windows 10 อีกทีผ่าน VM
ล่าสุดไมโครซอฟท์เพิ่มฟีเจอร์ให้ WSL 2 ใน Build 18945 ให้ฝั่ง Windows สามารถเข้าถึง WSL 2 ภายในเครื่องเดียวกัน ด้วยการเรียก localhost แทนการระบุ IP แบบเดิม นั่นแปลว่าเราสามารถโฮสต์เซิร์ฟเวอร์ใน WSL 2 แล้วใช้เบราว์เซอร์พิมพ์ localhost เพื่อเข้าใช้งานได้ทันที โดยที่ไม่ต้องตั้งค่าอะไรเพิ่มเลย

ของใหม่อย่างอื่นของ WSL 2 ได้แก่
- เพิ่มไฟล์คอนฟิก .wslconfig ในโฟลเดอร์ C:\Users<yourUsername>\ เพื่อตั้งค่าของ WSL 2 แบบ global configuration (มีผลต่อทุกดิสโทรที่เราติดตั้ง)
- เปิดให้ติดตั้งเคอร์เนลของ WSL 2 ได้เอง (นอกเหนือจากเคอร์เนลลินุกซ์ที่มากับ WSL 2) โดยกำหนดพาธได้จากไฟล์ .wslconfig ได้เช่นกัน
ผู้ที่สนใจใช้งาน จำเป็นต้องใช้กับ Windows Insider กลุ่ม Fast Ring ซึ่งเป็นตัวทดสอบของ Windows 10 20H1 ที่จะออกในปีหน้า
ที่มา - Microsoft Devblogs
on
ดีเลย จะได้ไม่ต้องมาแก้ host
varavut Sat, 27/07/2019 - 17:13
ดีเลย จะได้ไม่ต้องมาแก้ host file ทุกครั้งที่ reboot
Hell YEAH!!!
Neroroms Sat, 27/07/2019 - 17:24
Hell YEAH!!!
ต่อไปคงเรียก ip docker ใน WSL2 ตรงๆได้เลยไหม
นอให้มา main branch ครับ
whitebigbird Sat, 27/07/2019 - 18:26
รอให้มา main branch ครับ
ซื้อ Windows Pro
lew Sat, 27/07/2019 - 19:51
In reply to นอให้มา main branch ครับ by whitebigbird
ซื้อ Windows Pro รอไว้แล้วใช่ไหมครับ (Home อดนะ)มายืนยันครับว่า WSL 2 ใช้กับ
sian Sat, 27/07/2019 - 20:46
In reply to ซื้อ Windows Pro by lew
มายืนยันครับว่า WSL 2 ใช้กับ windows 10 home ไม่ได้ ?
สงสัยผมจะจำผิดแฮะ เพราะ
lew Sat, 27/07/2019 - 22:33
In reply to มายืนยันครับว่า WSL 2 ใช้กับ by sian
สงสัยผมจะจำผิดแฮะ เพราะ Docker Desktop ต้องการ Windows Pro ขออภัยครับ
อ้าวซะงั้น ใน faq
AMp Sun, 28/07/2019 - 11:06
In reply to มายืนยันครับว่า WSL 2 ใช้กับ by sian
อ้าวซะงั้น ใน faq ยังบอกว่ารองรับอยู่เลย https://docs.microsoft.com/en-us/windows/wsl/wsl2-faq#does-wsl-2-use-hyper-v-will-it-be-available-on-windows-10-home
ค่อนข้างสับสนมากครับ
whitebigbird Sun, 28/07/2019 - 12:01
In reply to อ้าวซะงั้น ใน faq by AMp
ค่อนข้างสับสนมากครับ อ่านในเว็บของไมโครซอฟท์บอกว่า hyper-v ไม่มีใน home (ซึ่งไม่มีจริงๆ ลองแล้วไม่ได้ ต้องอัพเกรด)
แต่ในลิงค์นี้บอกว่า wsl2 ทำงานกับ hyper-v และใช้กับ home ได้
เวียนหัวเลย
ผมทดลองซ้ำบนเครื่องจริงแล้วพบ
sian Sun, 28/07/2019 - 13:40
In reply to ค่อนข้างสับสนมากครับ by whitebigbird
ตอบกลับผิดcomment
UPDATE:
sian Sun, 28/07/2019 - 13:49
In reply to มายืนยันครับว่า WSL 2 ใช้กับ by sian
UPDATE: ผมทดลองอีกรอบพบว่า WSL 2 ใช้ใน Windows 10 home ได้ครับ ที่รอบแรกไม่ผ่านน่าจะเป็นเพราะทดสอบใน VirtualBox หรือไม่ก็ไฟล์ image ที่ใช้ติดตั้งครั้งแรกเสียหาย
เฮ้ย ...เอ้า งงสิผม
whitebigbird Sun, 28/07/2019 - 17:17
In reply to UPDATE: by sian
เฮ้ย ...เอ้า งงสิผม ขอบคุณครับ เดี๋ยวลองเลยจะได้ไม่ต้องแบกแมคบุคของออฟฟิสเวลาทำงานอยู่บ้าน
ทาง Docker
PriteHome Mon, 29/07/2019 - 08:52
In reply to UPDATE: by sian
ทาง Docker ก็ยืนยันว่าสามารถใช้ทั้ง WSL2 กับ Docker Desktop for WSL2 ใน Windows10 Home ได้ (สงสัยเป็นเพราะไม่ได้รันบน Hyper-V แล้ว)
https://engineering.docker.com/2019/06/docker-hearts-wsl-2/
ขอบคุณครับ เเเเเเเเเเย้
whitebigbird Mon, 29/07/2019 - 10:05
In reply to ทาง Docker by PriteHome
ขอบคุณครับ เเเเเเเเเเย้ เดี๋ยวลองแล้วมาบอกครับ
สงสัยเป็นเพราะไม่ได้รันบน
sian Mon, 29/07/2019 - 10:29
In reply to ทาง Docker by PriteHome
WSL 2 ทำงานบน Virtual Machine Platform ที่มี Hyper-V เป็นระบบเบื้องหลังครับ
แหะๆ
whitebigbird Sat, 27/07/2019 - 21:39
In reply to ซื้อ Windows Pro by lew
แหะๆ ขอบคุณครับที่จำได้ว่าผมมี Windows Home
เครื่อง coding ผมเป็น Windows 10 Home แต่เครื่อง gaming PC ของผมเป็น Windows 10 Pro ครับ
กำลังคิดจะสลับเครื่องกันอยู่ เคยคิดสั้นจะเอาเครื่อง gaming มาทำงานด้วยครับ
ผมใช้เครื่อง gaming
hisoft Sat, 27/07/2019 - 21:59
In reply to แหะๆ by whitebigbird
ผมใช้เครื่อง gaming ส่วนตัวทำงานไปด้วยเลยครับ ห่ะๆๆ
กลัวทำให้ performance
whitebigbird Sat, 27/07/2019 - 22:32
In reply to ผมใช้เครื่อง gaming by hisoft
กลัวทำให้ performance เกมตกอ่ะครับ ไม่รู้คิดไปเองมั้ย
ผมเช็คแล้ว framerate
hisoft Sun, 28/07/2019 - 01:24
In reply to กลัวทำให้ performance by whitebigbird
ผมเช็คแล้ว framerate ผมไม่ตกก็เลยโอเคครับ ทำถึงขนาดว่างานทำใน desktop 2 (ถ้ามีงานอื่นก็จะใส่ desktop 3) พอเพื่อนมาผมก็กลับมา desktop 1 แล้วเปิดเกมเล่นเลย เย้ เฟรมเรตไม่ตก งานไม่ปิด แค่ถ้าอยู่ใน process ที่กินเครื่องก็อาจจะกดไปหน้าที่มันไม่กินทิ้งไว้เฉยๆ เลยครับ
ป.ล. ผมอัดแรมไว้ 32GB ?
อิอิ หุหุหุ เดี๋ยวจัด
whitebigbird Sun, 28/07/2019 - 06:51
In reply to ผมเช็คแล้ว framerate by hisoft
อิอิ หุหุหุ เดี๋ยวจัด ขอบคุณครับ
อันนี้โหด
hisoft Sat, 27/07/2019 - 19:32
อันนี้โหด
คือผมสงสัยว่า WSL
semiauto Sat, 27/07/2019 - 19:47
คือผมสงสัยว่า WSL เอาไปใช้ทำอะไรได้บ้างในเมื่อแอพเซอร์วิสที่รันบนลีนุกซ์ก็มีอยู่ในวินโดวส์ด้วย
เหมาะกับ dev ครับ
7elven Sat, 27/07/2019 - 21:10
In reply to คือผมสงสัยว่า WSL by semiauto
เหมาะกับ dev ครับ
หลักๆ ผมใช้แค่ Docker ครับ
varavut Sat, 27/07/2019 - 22:29
In reply to คือผมสงสัยว่า WSL by semiauto
หลักๆ ผมใช้แค่ Docker ครับ เพราะ Docker on Windows เดิมมันไปรัน VM อีกทีทำให้เปลือง resouce มากๆ ครับ ส่วนใน WSL จะ lightweight กว่ามาก
กำลังจะเข้ามาถามคำถามนี้เหมือ
TW Sat, 27/07/2019 - 23:45
In reply to คือผมสงสัยว่า WSL by semiauto
กำลังจะเข้ามาถามคำถามนี้เหมือนกัน
ว่าจะมายุ่งอะไรกับ Win10 นักหนา ทำไมไม่ไป add ที่ฝั่ง server ก็น่าจะพอแล้ว
แต่พอได้คำตอบว่าใช้กับงาน dev ก็.... โอเค๊~
server จริงๆ
lew Sun, 28/07/2019 - 00:38
In reply to กำลังจะเข้ามาถามคำถามนี้เหมือ by TW
server จริงๆ เขาน่าจะใช้ลินุกซ์กันเลย
ถ้าจะให้ลงรายละเอียดจริงๆคือร
Neroroms Sun, 28/07/2019 - 07:25
In reply to กำลังจะเข้ามาถามคำถามนี้เหมือ by TW
ถ้าจะให้ลงรายละเอียดจริงๆคือระบบ Path ของ Windows ไม่เหมาะกับงาน Dev เลยครับ งาน DevOp ก็ไม่เหมาะด้วยกรณีที่เรา Develop งานบน linux
อย่าง macOs ต่อให้ไม่ใช่ linux แต่ Path เหมือนกันระบบ Permission เหมือนกันเลยสามารถใช้แทน Linux ได้รวมถึงมี UI/UX ดีกว่าหลายๆส่วนเลยเป็นที่นิยมกันในการ Dev แถมช่วงแรกๆ Macbook Pro ถึกทรหดมากๆ ปัญหาน้อยกว่าฝั่ง Windows Laptop เยอะด้วย
ผมไม่ค่อยมีปัญหากับระบบ path
mr_tawan Sun, 28/07/2019 - 21:19
In reply to ถ้าจะให้ลงรายละเอียดจริงๆคือร by Neroroms
ผมไม่ค่อยมีปัญหากับระบบ path ของ Windows แฮะ คือมันก็แค่ separator คนละตัว โอเคพอ Windows มันมีเรื่อง drive เข้ามามันก็จะดูวุ่น ๆ หน่อย
แต่แบบจะเหมาว่า Dev ทุกคนไม่ชอบ Path ของ Windows ผมว่าก็คงจะมี Windows Developer บางคนบ่นว่า ทำไม Path บน Linux ใช้ / เป็น separator เหมือนกัน
ผมว่าความจริงก็คือ ในเมื่อโค๊ดมันรันบน Linux และ Linux ใช้ Path แบบ POSIX แล้ว ถ้าเราสามารถ assume ว่า โค๊ดจะใช้ POSIX path เสมอ ก็จะทำให้ลดความซับซ้อนของโค๊ดลงได้มาก (เพราะใช้ / แทนตัวแปรระบบได้เลย)
ในทางเดียวกัน ถ้าโค๊ดมันรันเฉพาะบน Windows เราก็ assume ไปเลยว่า ใช้ path แบบ DOS/Windows
ความยากจริง ๆ อยู่ที่การเขียนให้มันรันแบบ cross-platform มากกว่า ซึ่งการใช้ WSL2 ก็จะลดปัญหาตรงนี้ลงได้มาก เพราะว่า WSL2 ก็เป็นแค่ Linux VM ตัวนึงเท่านั้นเอง
แต่ทั้งนี้ไม่ใช่ว่า Path แบบไหนไม่เหมาะกับงาน Dev เพราะมันจะกลายเป็นว่า ไอ้คนที่เป็น Windows Developer ที่วัน ๆ เขียนแต่ Windows App ก็ควรจะใ้ช้ POSIX path ด้วย อันนี้ก็ไม่ถูกซะทีเดียวเหมือนกัน (ถ้าทำจริงก็คงวุ่นวายน่าดู เพราะมันแปลงไปมาตรง ๆ ไม่ได้)
และอันนึงที่ผมว่าไม่ควร Assume คือ Assume ว่า Developer ทุกคนทำงานกับ Linux ครับ เพราะว่ามีอีกหลายงานที่ไม่ได้ใช้ Linux เหมือนกัน
ให้ด่าทุกคนที่ไม่ใช้ standard
lew Sun, 28/07/2019 - 21:43
In reply to ผมไม่ค่อยมีปัญหากับระบบ path by mr_tawan
ให้ด่าทุกคนที่ไม่ใช้ standard API ในการ join/split path ครับ ใครบอกว่าโปรแกรมมีบั๊กเพราะ path separator ต้องด่าเลย
เห็นด้วยครับ (และจริง ๆ
mr_tawan Sun, 28/07/2019 - 21:53
In reply to ให้ด่าทุกคนที่ไม่ใช้ standard by lew
เห็นด้วยครับ (และจริง ๆ ผมก็ใช้นะถ้าไม่มีเหตุผลที่จะไม่ใช้)
แต่บางทีบางภาษามันก็ไม่มีให้ใช้ หรือไอ้ที่มีก็ไม่ค่อยเวิร์คก็มีอยู่ครับ
น่าจะใช่นะครับ
Neroroms Sun, 28/07/2019 - 21:58
In reply to ผมไม่ค่อยมีปัญหากับระบบ path by mr_tawan
น่าจะใช่นะครับ ผมก็ไม่ควรเหมาว่า Dev ทุกคนใช้ Linux ซักหน่อย แต่หลังๆอยู่กับ Linux มากไปมั้ง 5555
ถ้าจะให้พูดก็ต้องบอกว่าสามารถทำให้ Windows ทำงานได้ทั้งด้าน Linux เพิ่มขึ้นมาด้วยเพื่อจะได้ตอบรับได้ทุกด้านมากกว่า
เห็นด้วยนะเรื่อง path
Ford AntiTrust Sun, 28/07/2019 - 22:25
In reply to ผมไม่ค่อยมีปัญหากับระบบ path by mr_tawan
เห็นด้วยนะเรื่อง path
คือตัว lang, runtime หรือ lib ที่ทำงานได้ข้าม OS ไปมาระหว่าง Windows/Linux จะมีคำแนะนำในเรื่องนี้ว่าควรจะกำหนดและจัดการอย่างไรเป็นพื้นฐาน ถ้าไม่รู้ว่าจัดการยังไง แสดงว่าตอนเราศึกษาเราข้ามจุดนี้ไป ซึ่งจริงๆ ควรกลับไปดูและปรับตามคำแนะนำ
แล้วก็สงสัยอีกอย่างหนึ่งคือใน
semiauto Sun, 28/07/2019 - 07:47
In reply to คือผมสงสัยว่า WSL by semiauto
แล้วก็สงสัยอีกอย่างหนึ่งคือในเมื่อเครื่องมือ dev ในวินโดวส์ก็มีเยอะแยะแถมมีทั้ง VS ที่ Linux ไม่มี แล้วยังมีความจำเป็นในการใช้ WSL หรือ Linux อย่างไรบ้างครับ
สำหรับผมคือตอนทำงานกับ python
witoong623 Sun, 28/07/2019 - 08:20
In reply to แล้วก็สงสัยอีกอย่างหนึ่งคือใน by semiauto
สำหรับผมคือตอนทำงานกับ python, nodejs แต่จะเจอปัญหาบาง library ลงไม่ได้บน windows เพราะ build ไม่ผ่านหรือมีปัญหาตอนทำงาน ก็จะไปใช้ WSL รันเอาครับ
ตามความเห็นบนครับ library
varavut Sun, 28/07/2019 - 12:58
In reply to แล้วก็สงสัยอีกอย่างหนึ่งคือใน by semiauto
ตามความเห็นบนครับ library บางอันมันเป็น platform specific หรือบางอันบน Windows ก็ลงยากกว่า
แล้วตอนนี้ WSL2 เราสามารถใช้ Windows เปิด File ที่อยู่ใน Linux ได้ด้วยครับ แบบเปิดด้วย explorer.exe ได้เลย รวมไปถึง VS Code ก็เปิด Folder พวกนั้นได้ตรงๆ แถมยังเลือกให้ Terminal เป็น Bash ได้ด้วย
ที่ทำงานมานะครับ
icez Sun, 28/07/2019 - 14:03
In reply to คือผมสงสัยว่า WSL by semiauto
ที่ทำงานมานะครับ
คำถามคือทำไมไม่ใช้เซิฟเวอร์ที
semiauto Sun, 28/07/2019 - 16:11
In reply to ที่ทำงานมานะครับ by icez
คำถามคือทำไมไม่ใช้เซิฟเวอร์ที่เป็นวินโดวส์?
คำถามกลับคือ
McKay Sun, 28/07/2019 - 16:24
In reply to คำถามคือทำไมไม่ใช้เซิฟเวอร์ที by semiauto
คำถามกลับคือ ทำไมต้องใช้เซิฟเวอร์ที่เป็นวินโดวส์?
อันนี้เคยคุยกับ Sysadmin
mr_tawan Sun, 28/07/2019 - 21:00
In reply to คำถามกลับคือ by McKay
อันนี้เคยคุยกับ Sysadmin องค์กรณ์ใหญ่หน่อย เค้าว่า Windows Server บริหารจัดการง่ายกว่า เพราะว่ามันเป็น GUI ในขณะที่ Service บน Linux ส่วนใหญ่จะเป็น file based กับ CLI (จริง ๆ ก็มี Web based Configuration ด้วย แต่หลายที่ก็ไม่ได้ใช้ครับ)
ถ้าพูดแบบนี้ไปจะโดนบางคนแขวะว่า แหวะ ไม่โปรเลย ใช้ GUI แต่ว่าความจริงคือ GUI มันง่ายกว่าจริง ๆ มันจำได้ง่ายกว่าว่าอะไรอยู่ตรงไหน
แต่จะว่าไป คนที่พูดข้างบนสุดท้ายก็ต้องใช้ Linux ร่วมด้วย เพราะมี service หลายตัวรันบน Linux อย่างเดียว รันบน Windows ไม่ค่อยได้ครับ
ขอบคุณครับ
McKay Sun, 28/07/2019 - 21:10
In reply to อันนี้เคยคุยกับ Sysadmin by mr_tawan
ขอบคุณครับ คิดว่าสมัยนี้ใช้กันแต่ Server Core ไม่ลง DE ซะอีก
คิดว่าคงไม่ใช่ทุกที่ที่เลิกใช
mr_tawan Sun, 28/07/2019 - 21:21
In reply to ขอบคุณครับ by McKay
คิดว่าคงไม่ใช่ทุกที่ที่เลิกใช้ DE น่ะครับ
แต่ที่เขาเล่าให้ฟังก็หลายปีแล้วเหมือนกันนะ อาจจะเปลี่ยนแล้วก็ได้ครับ
ส่วหนึ่งอาจจะเพราะความคุ้นเคย
langisser Sun, 28/07/2019 - 16:36
In reply to คำถามคือทำไมไม่ใช้เซิฟเวอร์ที by semiauto
ส่วหนึ่งอาจจะเพราะความคุ้นเคยเพราะถ้าทีมทำงานกับ linux/unix มาตลอดรวมถึงระบบอื่นๆด้วย (เมื่อก่อนนู้น windows server ไม่ค่อยเป็นที่นิผม) ถ้าไม่แยก server ออกมาจริงจังแบบเป็น plateform ใหม่หรือมี requirement เฉพาะที่ต้องใช้ windows การใช้ linux/unix ต่อก็ไม่เสียนะครับ
เสียค่าไลเซนส์
whitebigbird Sun, 28/07/2019 - 17:18
In reply to คำถามคือทำไมไม่ใช้เซิฟเวอร์ที by semiauto
คร่าวๆ
ข้างบนตอบไปแล้ว
Architec Sun, 28/07/2019 - 17:33
In reply to คำถามคือทำไมไม่ใช้เซิฟเวอร์ที by semiauto
ข้างบนตอบไปแล้ว
ถ้าคุณถามคำถามนี้ใน linux community เมื่อ 12 ปีที่แล้ว คุณจะได้รับประสบการณ์ที่ดีครับ (ฮิๆ)
จากใจและมุมมองของคนข้างนอกนะค
Elysium Sun, 28/07/2019 - 18:38
In reply to ข้างบนตอบไปแล้ว by Architec
จากใจและมุมมองของคนข้างนอกนะครับ แม้กระทั่งในตอนนี้ หากคุณเอื้อนเอ่ยคีย์เวิร์ด "(Microsoft) Windows" ในชุมชนเหล่านั้น ประสบการณ์ที่ได้ ไม่น่าจะต่างกันเท่าไหร่ครับ
ผมเคยไปขลุกอยู่ในชุมชน Linux
mr_tawan Sun, 28/07/2019 - 21:26
In reply to ข้างบนตอบไปแล้ว by Architec
ผมเคยไปขลุกอยู่ในชุมชน Linux เมื่อหลายปีก่อน (สมัย TLE) ผมว่าหลาย ๆ คนเฉย ๆ กับ Windows กับ Office กันนะครับ จะมีอยู่จำนวนน้อยมากที่ Trash Talk ใส่ Microsoft
ที่จำได้ท่านนึงเป็นระดับ รศ. อยู่ในมหาวิทยาลัยแถว ๆ ภาคอีสาน จำชื่อไม่ได้ แต่คนนี้คือไปพูดโปรดักท์เสียเงินกับเขาไม่ได้เลยนะ แม้กระทั่ง Red Hat, Debian หรือ Distro ดัง ๆ บางตัวก็ด่าเหมือนกัน จะคุยกับเขาต้องเป็น Linux Distro บางตัวเท่านั้นถึงจะคุยได้เหมือนคนมีการศึกษาทั่วไป (คุ้น ๆ ว่าแกเป็นสาย Gentoo ครับ จะทำอะไรต้องคอมไพล์โค๊ดเอง)
แม้กระทั่ง Linus เองยังไม่ค่อย Trash Talk ใส่ Microsoft แบบไม่มีเหตุผลเลยนะ แกจะด่าเฉพาะอะไรที่แกไม่ชอบจริง ๆ แต่ก็มีเหตุผลมารองรับเสมอ
เอาค่า license
mr_tawan Sun, 28/07/2019 - 20:55
In reply to คำถามคือทำไมไม่ใช้เซิฟเวอร์ที by semiauto
เอาค่า license มาจ่ายโบนัสพนักงานครับ (ฮา)
ถึงเวลาจริงๆ ก็ไม่จ่ายนะ
whitebigbird Mon, 29/07/2019 - 10:09
In reply to เอาค่า license by mr_tawan
ถึงเวลาจริงๆ ก็ไม่จ่ายนะ ฮ่าๆๆ
TL;DR มันมีที่ของมัน
icez Mon, 29/07/2019 - 12:47
In reply to คำถามคือทำไมไม่ใช้เซิฟเวอร์ที by semiauto
TL;DR มันมีที่ของมัน (ซึ่งไม่ใช่ field ที่ผมทำ) ครับ