Tags:
Node Thumbnail

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

Get latest news from Blognone

Comments

By: hisoft
ContributorWindows PhoneWindows
on 25 September 2023 - 01:04 #1294947
hisoft's picture

sparseVhd: คืนดิสก์ตามการใช้งานจริง จากเดิมที่ไฟล์ VHD ที่เป็นอิมเมจของ WSL นั้นจะโตขึ้นอย่างเดียวไม่หดลง

ผมจะได้เลิกกังวลสั่ง docker builder prune -af และลบ docker image รัวๆ หลังใช้เสร็จจนแทบเป็นวิตกจริตสักที 😩 เมื่อก่อนเลยไม่รู้มันโตไปเกือบ 50 GB

By: rattananen
AndroidWindows
on 25 September 2023 - 09:56 #1294961

ผมชอบแบบเห็นเป็นคนละเครื่องมากกว่า ฝึก config network ไปในตัว

By: lew
FounderJusci's WriterMEconomicsAndroid
on 25 September 2023 - 13:18 #1294969 Reply to:1294961
lew's picture

มันมีปัญหาเยอะตอนจะเปิด service จากใน WSL ให้คนนอกเข้ามาครับ ต้องทำ proxy กันวุ่นวาย แถม IP ของ WSL ก็ไม่ fixed


lewcpe.com, @wasonliw

By: rattananen
AndroidWindows
on 25 September 2023 - 20:29 #1295007 Reply to:1294969

ปกติคุณ lew ทำอย่างไรครับ
ของผม https://i.imgur.com/dqUlXCg.png

ข้อ 4,5,6 นี้ทำแค่ครั้งเดียว
ถ้าทำแบบเดียวกันผมว่ามันก็ไม่ได้ยุ่งเท่าไร ผมนั่ง capture รูปนานกว่า config อีก 5555

เผื่อใครสนใจ

wsl [-d distroname] hostname -I

มันเอาไว้ get IP ของ distro นั้น แต่มันได้ space ต่อหลังมาด้วย ต้อง trim ก่อนจะเอาไปใช้
และใครจะ access แค่ local network (วง LAN) ไม่ต้องทำข้อ 5-6

By: lew
FounderJusci's WriterMEconomicsAndroid
on 25 September 2023 - 22:07 #1295022 Reply to:1295007
lew's picture

ครับ ท่าเดียวกันเลย แต่ผมให้มันรันหลัง boot ไม่ผ่านแฮะ


lewcpe.com, @wasonliw

By: rattananen
AndroidWindows
on 25 September 2023 - 23:00 #1295027 Reply to:1295022

"แต่ผมให้มันรันหลัง boot"
นี้หมายถึง run อะไร หลัง boot อะไรครับ

แรกๆ ผมก็เจอปัญหานิดหน่อย
- ต้องลบ port ที่ forward ไว้ออกก่อน boot WSL (netsh interface portproxy reset)
- ผมดันไป listen port ที่ app อื่นใช้งานอยู่ (netsh interface portproxy add v4tov4 listenport=80 ...)
- และถ้าเป็น WSL distro เก่าหน่อย อาจจะมี firewall active อยู่ (ufw)

By: btoy
ContributorAndroidWindows
on 26 September 2023 - 09:01 #1295046 Reply to:1295007
btoy's picture

ขอบคุณทั้งสองท่านที่แชร์ข้อมูลนะครับ แล้วก็ขออนุญาติ save รูป ไว้อ้างอิงด้วย แหะๆ

ผมเองกำลัวเจอปัญหาเรื่อง network เวลาต้องการจะ access localhost ฝั่ง windows จาก wsl (ซึ่งไม่ใช่ท่าปกติ) พอดี backend เป็น .net core ซึ่งผมยัง debug ด้วย code ที่อยู่ใน wsl ไม่เป็น เลยต้องย้ายมารันบน Windows แง่ม


..: เรื่อยไป

By: navefa on 25 September 2023 - 15:19 #1294981 Reply to:1294961
navefa's picture

ทำเป็น optional ก็ดีครับ ผมเองก็อยากให้มันเห็น network card ของตัว host ด้วย จะได้จัดการอะไรได้สะดวกขึ้นเยอะ

By: TW
AndroidWindows
on 26 September 2023 - 01:33 #1295031 Reply to:1294961

ผมเห็นด้วยครับ ถ้าแค่เป็น Option ให้เลือกได้ก็โอเค

By: hisoft
ContributorWindows PhoneWindows
on 25 September 2023 - 10:41 #1294965
hisoft's picture

mirrored network

ตัวนี้ทำให้ WSL ใช้ IPv6 ได้สักที เป็นทางแก้ปัญหาที่ออกมาดีกว่าที่คิด

By: btoy
ContributorAndroidWindows
on 25 September 2023 - 13:14 #1294968
btoy's picture

ลอยคอ​ รอคอยเลยครับ​


..: เรื่อยไป