WSL เคอร์เนลลินุกซ์ที่รันอยู่ในวินโดวส์นับเป็นเครื่องมือที่ช่วยให้นักพัฒนาสามารถเขียนแอปลินุกซ์บนวินโดวส์ได้อย่างสะดวก ตอนนี้ออกเวอร์ชั่น 2.0.0 pre-release ให้นักพัฒนามาทดสอบกันก่อนจะออกตัวจริง โดยมีฟีเจอร์สำคัญคือการคืนแรมและดิสก์ตามการใช้งานจริง ทำให้ระบบรวมเป็นเนื้อเดียวกับวินโดวส์มากขึ้น
ฟีเจอร์ชุดนี้ยังอยู่ในสถานะทดลองทั้งหมด โดยที่จริงเป็น 6 ฟีเจอร์ที่ทำให้ WSL ทำงานเป็นเนื้อเดียวกับวินโดวส์มากขึ้น ได้แก่
- autoMemoryReclaim: คืนแรมตามการใช้งานจริง
- sparseVhd: คืนดิสก์ตามการใช้งานจริง จากเดิมที่ไฟล์ VHD ที่เป็นอิมเมจของ WSL นั้นจะโตขึ้นอย่างเดียวไม่หดลง
- mirrored network: โหมดเน็ตเวิร์คแบบใหม่ มองเห็นเน็ตเวิร์คเป็นเครื่องเดียวกัน ไม่ต้องทำ tunnel เพื่อเชื่อมต่อเข้าไปยังเซิร์ฟเวอร์ใน WSL และแอปใน WSL ก็สามารถเชื่อมกับแอปในวินโดวส์ผ่าน localhost ได้
- dnsTunneling: สั่งให้ WSL ไปใช้ DNS ตามการตั้งค่าของวินโดวส์
- firewall: ใช้คอนฟิก firewall จากวินโดวส์กับ WSL
- autoProxy: แอปใน WSL ใช้ proxy ตามการตั้งค่าในวินโดวส์
ฟีเจอร์ทั้งหมดหากทำงานได้เต็มที่ก็นับว่าแทบจะเป็นเนื้อเดียวกับวินโดวส์อย่างสมบูรณ์ อย่างไรก็ดี ฟีเจอร์ทั้งหมดยังอยู่ในสถานะทดลอง ผู้ใช้ต้องแก้คอนฟิกเปิดใช้งานเอง และมีปัญหาที่รู้อยู่แล้วจำนวนหนึ่ง เช่น autoMemoryReclaim มีปัญหาหากรัน docker daemon ใน WSL โดยตรง (ไม่มีปัญหาหากใช้ Docker Desktop), หรือ mirrored network ก็ยังมีปัญหาเมื่อใช้กับ VSCode Remote รวมถึงฟีเจอร์หลายตัวจำเป็นต้องใช้ Windows Insider ด้วย กว่าจะใช้งานได้เต็มที่ก็คงต้องรออีกระยะหนึ่ง แต่ก็นับว่าเป็นเส้นทางชัดเจนว่าจะใช้งานได้ในอนาคต
ที่มา - Windows Command Line Blog

on
sparseVhd:
hisoft Mon, 25/09/2023 - 01:04
ผมจะได้เลิกกังวลสั่ง
docker builder prune -afและลบ docker image รัวๆ หลังใช้เสร็จจนแทบเป็นวิตกจริตสักที 😩 เมื่อก่อนเลยไม่รู้มันโตไปเกือบ 50 GBผมชอบแบบเห็นเป็นคนละเครื่องมา
rattananen Mon, 25/09/2023 - 09:56
ผมชอบแบบเห็นเป็นคนละเครื่องมากกว่า ฝึก config network ไปในตัว
มันมีปัญหาเยอะตอนจะเปิด
lew Mon, 25/09/2023 - 13:18
In reply to ผมชอบแบบเห็นเป็นคนละเครื่องมา by rattananen
มันมีปัญหาเยอะตอนจะเปิด service จากใน WSL ให้คนนอกเข้ามาครับ ต้องทำ proxy กันวุ่นวาย แถม IP ของ WSL ก็ไม่ fixed
ปกติคุณ lew ทำอย่างไรครับ
rattananen Mon, 25/09/2023 - 20:29
In reply to มันมีปัญหาเยอะตอนจะเปิด by lew
ปกติคุณ lew ทำอย่างไรครับ
ของผม https://i.imgur.com/dqUlXCg.png
ข้อ 4,5,6 นี้ทำแค่ครั้งเดียว
ถ้าทำแบบเดียวกันผมว่ามันก็ไม่ได้ยุ่งเท่าไร ผมนั่ง capture รูปนานกว่า config อีก 5555
เผื่อใครสนใจ
มันเอาไว้ get IP ของ distro นั้น แต่มันได้ space ต่อหลังมาด้วย ต้อง trim ก่อนจะเอาไปใช้
และใครจะ access แค่ local network (วง LAN) ไม่ต้องทำข้อ 5-6
ครับ ท่าเดียวกันเลย
lew Mon, 25/09/2023 - 22:07
In reply to ปกติคุณ lew ทำอย่างไรครับ by rattananen
ครับ ท่าเดียวกันเลย แต่ผมให้มันรันหลัง boot ไม่ผ่านแฮะ
แต่ผมให้มันรันหลัง boot
rattananen Mon, 25/09/2023 - 23:00
In reply to ครับ ท่าเดียวกันเลย by lew
"แต่ผมให้มันรันหลัง boot"
นี้หมายถึง run อะไร หลัง boot อะไรครับ
แรกๆ ผมก็เจอปัญหานิดหน่อย
ขอบคุณทั้งสองท่านที่แชร์ข้อมู
btoy Tue, 26/09/2023 - 09:01
In reply to ปกติคุณ lew ทำอย่างไรครับ by rattananen
ขอบคุณทั้งสองท่านที่แชร์ข้อมูลนะครับ แล้วก็ขออนุญาติ save รูป ไว้อ้างอิงด้วย แหะๆ
ผมเองกำลัวเจอปัญหาเรื่อง network เวลาต้องการจะ access localhost ฝั่ง windows จาก wsl (ซึ่งไม่ใช่ท่าปกติ) พอดี backend เป็น .net core ซึ่งผมยัง debug ด้วย code ที่อยู่ใน wsl ไม่เป็น เลยต้องย้ายมารันบน Windows แง่ม
ทำเป็น optional ก็ดีครับ
navefa Mon, 25/09/2023 - 15:19
In reply to ผมชอบแบบเห็นเป็นคนละเครื่องมา by rattananen
ทำเป็น optional ก็ดีครับ ผมเองก็อยากให้มันเห็น network card ของตัว host ด้วย จะได้จัดการอะไรได้สะดวกขึ้นเยอะ
ผมเห็นด้วยครับ ถ้าแค่เป็น
TW Tue, 26/09/2023 - 01:33
In reply to ผมชอบแบบเห็นเป็นคนละเครื่องมา by rattananen
ผมเห็นด้วยครับ ถ้าแค่เป็น Option ให้เลือกได้ก็โอเค
mirrored network
hisoft Mon, 25/09/2023 - 10:41
ตัวนี้ทำให้ WSL ใช้ IPv6 ได้สักที เป็นทางแก้ปัญหาที่ออกมาดีกว่าที่คิด
ลอยคอ รอคอยเลยครับ
btoy Mon, 25/09/2023 - 13:14
ลอยคอ รอคอยเลยครับ