Linux

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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

Neroroms Sat, 27/07/2019 - 17:24

Hell YEAH!!!
ต่อไปคงเรียก ip docker ใน WSL2 ตรงๆได้เลยไหม

ค่อนข้างสับสนมากครับ อ่านในเว็บของไมโครซอฟท์บอกว่า hyper-v ไม่มีใน home (ซึ่งไม่มีจริงๆ ลองแล้วไม่ได้ ต้องอัพเกรด)

แต่ในลิงค์นี้บอกว่า wsl2 ทำงานกับ hyper-v และใช้กับ home ได้

เวียนหัวเลย

UPDATE: ผมทดลองอีกรอบพบว่า WSL 2 ใช้ใน Windows 10 home ได้ครับ ที่รอบแรกไม่ผ่านน่าจะเป็นเพราะทดสอบใน VirtualBox หรือไม่ก็ไฟล์ image ที่ใช้ติดตั้งครั้งแรกเสียหาย

win10home-retest

PriteHome Mon, 29/07/2019 - 08:52

In reply to by sian

ทาง Docker ก็ยืนยันว่าสามารถใช้ทั้ง WSL2 กับ Docker Desktop for WSL2 ใน Windows10 Home ได้ (สงสัยเป็นเพราะไม่ได้รันบน Hyper-V แล้ว)
https://engineering.docker.com/2019/06/docker-hearts-wsl-2/

whitebigbird Sat, 27/07/2019 - 21:39

In reply to by lew

แหะๆ ขอบคุณครับที่จำได้ว่าผมมี Windows Home

เครื่อง coding ผมเป็น Windows 10 Home แต่เครื่อง gaming PC ของผมเป็น Windows 10 Pro ครับ

กำลังคิดจะสลับเครื่องกันอยู่ เคยคิดสั้นจะเอาเครื่อง gaming มาทำงานด้วยครับ

ผมเช็คแล้ว framerate ผมไม่ตกก็เลยโอเคครับ ทำถึงขนาดว่างานทำใน desktop 2 (ถ้ามีงานอื่นก็จะใส่ desktop 3) พอเพื่อนมาผมก็กลับมา desktop 1 แล้วเปิดเกมเล่นเลย เย้ เฟรมเรตไม่ตก งานไม่ปิด แค่ถ้าอยู่ใน process ที่กินเครื่องก็อาจจะกดไปหน้าที่มันไม่กินทิ้งไว้เฉยๆ เลยครับ

ป.ล. ผมอัดแรมไว้ 32GB ?

คือผมสงสัยว่า WSL เอาไปใช้ทำอะไรได้บ้างในเมื่อแอพเซอร์วิสที่รันบนลีนุกซ์ก็มีอยู่ในวินโดวส์ด้วย

กำลังจะเข้ามาถามคำถามนี้เหมือนกัน
ว่าจะมายุ่งอะไรกับ Win10 นักหนา ทำไมไม่ไป add ที่ฝั่ง server ก็น่าจะพอแล้ว
แต่พอได้คำตอบว่าใช้กับงาน dev ก็.... โอเค๊~

ถ้าจะให้ลงรายละเอียดจริงๆคือระบบ Path ของ Windows ไม่เหมาะกับงาน Dev เลยครับ งาน DevOp ก็ไม่เหมาะด้วยกรณีที่เรา Develop งานบน linux
อย่าง macOs ต่อให้ไม่ใช่ linux แต่ Path เหมือนกันระบบ Permission เหมือนกันเลยสามารถใช้แทน Linux ได้รวมถึงมี UI/UX ดีกว่าหลายๆส่วนเลยเป็นที่นิยมกันในการ Dev แถมช่วงแรกๆ Macbook Pro ถึกทรหดมากๆ ปัญหาน้อยกว่าฝั่ง Windows Laptop เยอะด้วย

ผมไม่ค่อยมีปัญหากับระบบ 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 เหมือนกัน

เห็นด้วยครับ (และจริง ๆ ผมก็ใช้นะถ้าไม่มีเหตุผลที่จะไม่ใช้)

แต่บางทีบางภาษามันก็ไม่มีให้ใช้ หรือไอ้ที่มีก็ไม่ค่อยเวิร์คก็มีอยู่ครับ

น่าจะใช่นะครับ ผมก็ไม่ควรเหมาว่า Dev ทุกคนใช้ Linux ซักหน่อย แต่หลังๆอยู่กับ Linux มากไปมั้ง 5555
ถ้าจะให้พูดก็ต้องบอกว่าสามารถทำให้ Windows ทำงานได้ทั้งด้าน Linux เพิ่มขึ้นมาด้วยเพื่อจะได้ตอบรับได้ทุกด้านมากกว่า

เห็นด้วยนะเรื่อง path

คือตัว lang, runtime หรือ lib ที่ทำงานได้ข้าม OS ไปมาระหว่าง Windows/Linux จะมีคำแนะนำในเรื่องนี้ว่าควรจะกำหนดและจัดการอย่างไรเป็นพื้นฐาน ถ้าไม่รู้ว่าจัดการยังไง แสดงว่าตอนเราศึกษาเราข้ามจุดนี้ไป ซึ่งจริงๆ ควรกลับไปดูและปรับตามคำแนะนำ

แล้วก็สงสัยอีกอย่างหนึ่งคือในเมื่อเครื่องมือ dev ในวินโดวส์ก็มีเยอะแยะแถมมีทั้ง VS ที่ Linux ไม่มี แล้วยังมีความจำเป็นในการใช้ WSL หรือ Linux อย่างไรบ้างครับ

สำหรับผมคือตอนทำงานกับ python, nodejs แต่จะเจอปัญหาบาง library ลงไม่ได้บน windows เพราะ build ไม่ผ่านหรือมีปัญหาตอนทำงาน ก็จะไปใช้ WSL รันเอาครับ

ตามความเห็นบนครับ library บางอันมันเป็น platform specific หรือบางอันบน Windows ก็ลงยากกว่า

แล้วตอนนี้ WSL2 เราสามารถใช้ Windows เปิด File ที่อยู่ใน Linux ได้ด้วยครับ แบบเปิดด้วย explorer.exe ได้เลย รวมไปถึง VS Code ก็เปิด Folder พวกนั้นได้ตรงๆ แถมยังเลือกให้ Terminal เป็น Bash ได้ด้วย

ที่ทำงานมานะครับ

  • server ทุกตัวเป็น linux
  • client เป็น windows
  • มันเลยมีปัญหาเรื่อง environment เยอะ
  • ถามว่าทำไมไม่ลง client เป็น linux ก็เพราะต้องเทสกับ windows ที่คนส่วนใหญ่ใช้บ่อยกว่ามาก... แต่ต้องทำให้ระบบทำงานบน server ได้ด้วย
  • การมี WSL นี่คือพลิกโลกเลย ทำได้ดีพอสำหรับทั้งสองงาน โดยไม่เปลือง resource

อันนี้เคยคุยกับ Sysadmin องค์กรณ์ใหญ่หน่อย เค้าว่า Windows Server บริหารจัดการง่ายกว่า เพราะว่ามันเป็น GUI ในขณะที่ Service บน Linux ส่วนใหญ่จะเป็น file based กับ CLI (จริง ๆ ก็มี Web based Configuration ด้วย แต่หลายที่ก็ไม่ได้ใช้ครับ)

ถ้าพูดแบบนี้ไปจะโดนบางคนแขวะว่า แหวะ ไม่โปรเลย ใช้ GUI แต่ว่าความจริงคือ GUI มันง่ายกว่าจริง ๆ มันจำได้ง่ายกว่าว่าอะไรอยู่ตรงไหน

แต่จะว่าไป คนที่พูดข้างบนสุดท้ายก็ต้องใช้ Linux ร่วมด้วย เพราะมี service หลายตัวรันบน Linux อย่างเดียว รันบน Windows ไม่ค่อยได้ครับ

คิดว่าคงไม่ใช่ทุกที่ที่เลิกใช้ DE น่ะครับ

แต่ที่เขาเล่าให้ฟังก็หลายปีแล้วเหมือนกันนะ อาจจะเปลี่ยนแล้วก็ได้ครับ

ส่วหนึ่งอาจจะเพราะความคุ้นเคยเพราะถ้าทีมทำงานกับ linux/unix มาตลอดรวมถึงระบบอื่นๆด้วย (เมื่อก่อนนู้น windows server ไม่ค่อยเป็นที่นิผม) ถ้าไม่แยก server ออกมาจริงจังแบบเป็น plateform ใหม่หรือมี requirement เฉพาะที่ต้องใช้ windows การใช้ linux/unix ต่อก็ไม่เสียนะครับ

จากใจและมุมมองของคนข้างนอกนะครับ แม้กระทั่งในตอนนี้ หากคุณเอื้อนเอ่ยคีย์เวิร์ด "(Microsoft) Windows" ในชุมชนเหล่านั้น ประสบการณ์ที่ได้ ไม่น่าจะต่างกันเท่าไหร่ครับ

ผมเคยไปขลุกอยู่ในชุมชน Linux เมื่อหลายปีก่อน (สมัย TLE) ผมว่าหลาย ๆ คนเฉย ๆ กับ Windows กับ Office กันนะครับ จะมีอยู่จำนวนน้อยมากที่ Trash Talk ใส่ Microsoft

ที่จำได้ท่านนึงเป็นระดับ รศ. อยู่ในมหาวิทยาลัยแถว ๆ ภาคอีสาน จำชื่อไม่ได้ แต่คนนี้คือไปพูดโปรดักท์เสียเงินกับเขาไม่ได้เลยนะ แม้กระทั่ง Red Hat, Debian หรือ Distro ดัง ๆ บางตัวก็ด่าเหมือนกัน จะคุยกับเขาต้องเป็น Linux Distro บางตัวเท่านั้นถึงจะคุยได้เหมือนคนมีการศึกษาทั่วไป (คุ้น ๆ ว่าแกเป็นสาย Gentoo ครับ จะทำอะไรต้องคอมไพล์โค๊ดเอง)

แม้กระทั่ง Linus เองยังไม่ค่อย Trash Talk ใส่ Microsoft แบบไม่มีเหตุผลเลยนะ แกจะด่าเฉพาะอะไรที่แกไม่ชอบจริง ๆ แต่ก็มีเหตุผลมารองรับเสมอ

TL;DR มันมีที่ของมัน (ซึ่งไม่ใช่ field ที่ผมทำ) ครับ

  • พอเป็น gui มันทำให้ automation ยากมากๆ ครับ ระบบใหญ่ๆ ที่ server เป็นร้อยเป็นพันตัว ไม่มีใครมานั่งคลิกทีละคลิกแน่นอน
  • software (ฝั่ง server) ที่ผมทำงานด้วย เป็น open source เกือบจะ 100% มี commercial นิดหน่อย ซึ่ง software พวกนี้พัฒนา และ optimize มาบน linux ครับ
  • ผมไม่อยากเสียแรมไป 3-4 GB กับพื้นที่ disk อีก 30GB ให้ os ครับ
  • การ optimize hardware เพื่อรีดประสิทธิภาพให้ได้มากที่สุด linux ดีกว่าเยอะครับ
  • windows license แพงครับ