Windows Bash และ Cygwin แตกต่างกันอย่างไร


65

Windows Bash และ Cygwin แตกต่างกันอย่างไร

การอัปเดตใหม่จาก Windows ด้วย "Linux" Bash เป็นของใหม่ แต่ Cygwin มีความแตกต่างอะไรบ้างที่อาจทำให้คุณเลือกอย่างใดอย่างหนึ่ง


1
ฉันคิดว่า windows bash นั้นทำงานได้ดีกว่าและรองรับ Microsoft ได้ดีกว่า
Panther

2
ฉันคิดว่าคำถามนี้อยู่ในหัวข้อเนื่องจาก Windows Bash เป็นผลิตภัณฑ์ที่รองรับ Canonical อาจอยู่นอกหัวข้อเนื่องจากอาจมีความคิดเห็นมากกว่าการสนับสนุน
Panther

คำตอบ:


65

Cygwin เป็นเครื่องมือที่ยอดเยี่ยมหากคุณต้องการใช้ชีวิตใน Windows อย่างสมบูรณ์และต้องการขับเคลื่อน / ทำให้งาน Windows เป็นอัตโนมัติด้วยสคริปต์ทุบตี อย่างไรก็ตาม Cygwin ไม่สามารถเรียกใช้ไบนารีลินุกซ์ที่ไม่ได้แก้ไข

นั่นคือสิ่งที่ WSL เข้ามา:

Windows Subsystem สำหรับ Linux (WSL) เป็นเลเยอร์ใหม่ของเคอร์เนล Windows ซึ่งมีจุดมุ่งหมายเพื่อให้ความเข้ากันได้ระดับสูงกับ Linux kernel ABI สิ่งนี้อนุญาตให้ไบนารี ELF64 แบบเนทีฟดั้งเดิมที่ไม่ได้แก้ไขให้ทำงานบน WSL ได้

นี่คือวิธีที่ WSL สามารถเรียกใช้งานผู้ใช้ทางบกของอูบุนตูของแท้และแพ็คเกจใด ๆ ที่คุณดาวน์โหลดจากแพกเกจ apt-get หรือ. deb จากที่อื่นโดยไม่มีการเปลี่ยนแปลงใด ๆ

จุดประสงค์ของ WSL คือเพื่อให้นักพัฒนาซอฟต์แวร์ที่ทำงานบน Windows สามารถใช้งานเครื่องมือจำนวนมากและทำงานในหลายโครงการซึ่งขึ้นอยู่กับลินุกซ์ไบนารีคุณสมบัติลักษณะการทำงานรูปแบบระบบแฟ้มแบบจำลองกระบวนการ ฯลฯ

ในขณะที่ WSL ยังอยู่ในช่วงเริ่มต้นของการใช้งานเรากำลังทำงานอย่างหนักเพื่อปรับปรุงความกว้างและความลึกของการติดตั้ง syscall ของเราเพื่อปรับปรุงความสามารถของ WSL ในการเรียกใช้ชุดเครื่องมือที่มีขนาดใหญ่ขึ้นอย่างต่อเนื่อง แพคเกจและโครงการ ฯลฯ


อัปเดต: 2017-09-07

เราได้จัดส่งอัปเดตผู้สร้าง Windows 10 ซึ่ง MASSIVELY ช่วยปรับปรุงความเข้ากันได้ของ WSL กับเครื่องมือมากมายที่คุณต้องการ / จำเป็นต้องเรียกใช้

การพัฒนายังคงดำเนินต่อไปอย่างไม่หยุดยั้งและเราได้จัดส่ง Win10 Insiders ที่สร้างขึ้นในช่วงไม่กี่เดือนที่ผ่านมาในการจัดส่ง Fall Creators Update (FCU) ในเดือนตุลาคม 2017

ใน FCU เรากำลังเพิ่มความสามารถในการติดตั้งและใช้งาน distro เคียงข้างกันมากกว่าหนึ่ง: Ubuntu, openSUSE และ SLES พร้อมให้บริการในขณะนี้โดย Fedora และคนอื่น ๆ ในตอนนี้ WSL ยังรองรับ USB-serial comms และการติดตั้งที่เก็บข้อมูล USB และเครือข่ายร่วมกันพร้อมกับการปรับปรุงเพิ่มเติมสำหรับ syscalls ของเราซึ่งปรับปรุงความเข้ากันได้กับเครื่องมือเพิ่มเติม


อัปเดต: 2019-08-22

เป็นเวลาสองสามปีที่ผ่านมานับตั้งแต่มีการประกาศและปล่อย WSL เป็นครั้งแรกจากนั้นเพิ่มการสนับสนุนสำหรับ distros หลายรายการผ่านทางร้านค้าและประกาศ WSL v1.0 HTH

ที่ Build 2019 เราได้ประกาศWindows Terminal ใหม่ ( วิดีโอเซสชันเทอร์มินัลที่นี่ ) และWSL 2 ( วิดีโอเซสชัน WSL 2 ที่นี่ ) ซึ่งแนะนำวิธีการใหม่ทั้งหมดในการใช้งาน Linux บน Windows

สำหรับรายละเอียดเพิ่มเติมและการอัพเดทในอนาคตโปรดเยี่ยมชมบล็อก Windows Command-Line ทุกสองสามสัปดาห์ที่เราโพสต์ข่าวที่เกี่ยวข้องมากมาย


9
ฉันเป็นผู้ใช้ cygwin มาหลายปีแล้ว WSL เป็นแนวคิดที่ยอดเยี่ยมที่ส่วนใหญ่ทำงานได้ดี ... อย่างไรก็ตามในขั้นตอนนี้ความเร็วในการเข้าถึงไฟล์นั้นช้ามาก ฉันจะบอกว่าช้าช้า การดำเนินการแม้แต่ขนาดกลางด้วยสิ่งที่ต้องการ GIT ใช้เวลาในการสั่งซื้อ 30+ วินาทีเทียบกับวินาทีย่อยบน Cygwin หวังว่าพวกเขาจะได้รับการแก้ไข
Damien Sawyer

9
Disk perf เป็นปัญหาที่ทราบกันดี: เรากำลังดำเนินการปรับปรุงอย่างสมบูรณ์แบบสำหรับ Win10 CU โดยมีการปรับปรุงที่สำคัญกว่านี้ในปี 2017
Rich Turner

3
น่าอัศจรรย์ อดใจรอไม่ไหว มันจะเป็นผลิตภัณฑ์ที่ยอดเยี่ยม :-)
ดาเมียนซอว์เยอร์

2
@DamienSawyer นานกว่า 6 เดือนแล้ว ความเร็วในการร้องเรียนของคุณลดลงหรือยังคงเหมือนเดิมหรือไม่?
WinEunuuchs2Unix

3
@RichTurner จากนั้นฉันจะเรียกใช้การอัปเดต: D
Martijn van Wezel

15

ระบบย่อย Windows สำหรับ Linux

ฉันใช้ WSL ใน Windows 10 ประมาณสองสามเดือน ในที่สุดฉันก็สามารถบูตเข้าสู่ Windows เพื่อเล่นเกมและยังสามารถเข้าถึง bash prompt และรัน CLI และโปรแกรม GUI มากมาย มีข้อ จำกัด เช่นไม่มีไดเรกทอรีเสมือนเคอร์เนล Linux ที่คุ้นเคย การวางแผนจำเป็นต้องใช้สคริปต์ Bash ร่วมกันระหว่าง Ubuntu และ WSL บนเครื่องบูตคู่

มีหลายสิ่งที่ฉันต้องการเห็นการปรับปรุง แต่ฉันสามารถอยู่กับมันเป็นปีหรือดังนั้น

แหล่งที่มาปิด

สิ่งหนึ่งที่ควรจดจำคือ Microsoft เป็นระบบปิดและคุณจะไม่ได้รับความวุ่นวายจากบุคคลที่สามที่เขียนอัปเดตอย่างที่คุณชอบบน Linux แต่ทุกสิ่งถือว่าคุณซื้อแล็ปท็อปเครื่องใหม่และมาพร้อมกับ Windows 10 ต่อไปดังนั้นคุณสามารถบอกได้ว่า "ฟรี" อย่างน้อย :)

Cygwin ถูกควบคุมโดย Red Hat Linux ซึ่งไม่เป็นที่รู้จักกันว่าให้สิ่งต่าง ๆ ฟรี "ฟรี" ของพวกเขากระจาย Linux Fedoraดูเหมือนว่า"พื้นทดสอบ"ไปบางส่วน

วงจรการบำรุงรักษา

Cygwin มีการอัปเดต 15 ปี ที่โดดเด่นคือผู้จัดการโครงการคนเดียวกันที่ดำเนินการมาตั้งแต่ปี 2546 มีผู้ดูแลเต็มเวลาจำนวนมากและผู้มีส่วนร่วมอาสาสมัครจำนวนมาก

WSL ให้การปรับปรุงที่สำคัญปีละสองครั้งในฤดูใบไม้ผลิและฤดูใบไม้ร่วง มีการอัปเดตรายสัปดาห์เล็กน้อยสำหรับผู้ที่อยู่ในรายการการสมัครรับข้อมูลของ Developers แม้ว่า Microsoft มีทรัพยากรที่จะโยนคนหลายพันคนเข้าสู่การพัฒนา WSL ดูเหมือนว่าคุณสามารถนับสมาชิกในทีมได้ด้วยนิ้วของคุณ

ปัญหาความเร็ว

คุณจะเห็นการร้องเรียนจำนวนมากเกี่ยวกับความเร็ว WSL ตัวอย่างเช่นการวาดภาพบนหน้าจอใช้เวลานานขึ้นหลายเท่าใน Windows 10 เทียบกับ Ubuntu 16.04 นั่นคือคุณสามารถเห็นการเลื่อนเคอร์เซอร์ใน Windows 10:

WSL bash startup.gif

ใช้เวลาประมาณ 5 วินาทีในการทาสีหน้าจอ WSL Bash โดยการเปรียบเทียบมันเป็นประมาณ 1 1/2 วินาทีสำหรับหน้าจอเดียวกันใน Ubuntu 16.04:

เทอร์มินัล Ubuntu splash.gif

Cygwin มีส่วนแบ่งของตัวเองของการร้องเรียนความเร็วทุบตี


โพสต์ต้นฉบับด้านล่างสำหรับการอ้างอิงในอดีต

คำตอบที่นี่คือหนึ่งปีดังนั้นฉันคิดว่าการปรับปรุงเล็กน้อยอยู่ในลำดับ ด้วย Windows 10 Home หากเป็น Windows 32 บิตหมายความว่าจะไม่เรียกใช้ระบบย่อย Ubuntu / Windows 64 บิตตามที่ Microsoft บอกกับเราที่นี่: ( ระบบย่อย Windows Linux ใน win10 HOME BASIC )

มันเป็นเหมือนความฝันที่เป็นจริงเมื่อใช้งาน Ubuntu บน Windows ด้วยการสนับสนุนเกมที่ยอดเยี่ยมสำหรับ Nvidia แต่ก่อนที่คุณจะหมดแล้วซื้อแล็ปท็อปใหม่ (หรือใช้) แล็ปท็อปตรวจสอบให้แน่ใจว่ามันมี Windows 10 64 บิต คุณต้องการรัน Ubuntu / Linux โดยใช้ Windows ในเว็บไซต์ของ Microsoft พวกเขาอ้างถึง Windows Anniversary edition เป็นสิ่งที่จำเป็นต้องมีเพื่อใช้งานระบบย่อย Windows สำหรับ Linux


อย่างไรก็ตามหากคุณไม่ต้องการใช้จ่าย $ 200 + สำหรับ Windows 10 และคุณมีแล็ปท็อปรุ่นเก่าที่ใช้ Windows 8.1 64- บิตเหมือนที่ฉันทำและคุณมีแล็ปท็อปรุ่นเก่าที่ใช้ Windows Vista 64 บิตเหมือนฉันแล้ว Cygwin คำตอบ.

Cygwin สนับสนุน Windows รุ่นที่มากขึ้นเป็นรายการเว็บไซต์ :

Cygwin นั้นสามารถทำงานได้บน Windows ทุกรุ่นที่วางจำหน่าย สถานะมกราคม 2559 ซึ่งรวมถึง Windows Vista, Windows Server 2008 และ Windows รุ่นที่ใหม่กว่าถึง Windows 10 และ Windows Server 2016 Cygwin รุ่น 32 บิตยังทำงานในสภาพแวดล้อม WOW64 32 บิตใน Windows รุ่น 64 บิต 64 รุ่นบิตแน่นอนบน Windows 64 บิตเท่านั้น

โปรดทราบว่า Cygwin สามารถทำได้มากเท่าที่ระบบปฏิบัติการที่รองรับรองรับเท่านั้น ด้วยเหตุนี้ Cygwin จะทำงานแตกต่างกันและแสดงข้อ จำกัด ต่าง ๆ บน Windows รุ่นต่างๆ


2
คำถามคือความแตกต่างระหว่าง cygwin และ bash สำหรับ windows Cygwin ไม่ได้กล่าวถึงในคำตอบของคุณ โปรดอธิบายว่าวิธีนี้ตอบคำถามได้อย่างไร
เซท

@Seth ฉันชี้ให้เห็นว่า WSL เป็นรุ่นเฉพาะในขณะที่ Cygwin ทำงานบน WIndows ทุกรุ่นที่รองรับ ขอบคุณที่ชี้ให้เห็นการกำกับดูแลของฉัน
WinEunuuchs2Unix

1
เราทราบชัดเจนแล้วว่า WSL ต้องการ Windows 64 บิตและมีให้ใน Windows 10 SKU ทุกรุ่นยกเว้น LTSB ปัจจุบัน - WSL จะถูกเพิ่มใน LTSB รุ่นถัดไป WSL จะรวมอยู่ใน Windows Server ที่เปิดตัวในฤดูใบไม้ร่วงปี 2017
Rich Turner

@RichTurner เว็บไซต์ของคุณสะกดได้อย่างชัดเจน สิ่งที่ไม่ชัดเจนสำหรับฉัน (และไม่ใช่ความผิดของคุณ) คือสาเหตุที่ผู้จำหน่ายขาย i7 quad core 7700 พร้อม Nvidia 1050 GPU และ RAM ระบบ 12 GB พร้อม Windows 10 ที่บ้าน ใครบางคนที่ถูกลบลิงค์เดิมแต่ที่นี่มันเป็น พวกเขาไม่สะกดว่ามันเป็น 32- บิต คุณกำลังพูดว่า WIndows 10 ทุกตัวเป็นแบบ 64 บิตหรือไม่?
WinEunuuchs2Unix

1
มันขายเป็นพีซีสำหรับเล่นเกม เนื่องจากนักเล่นเกมส่วนใหญ่ไม่ต้องการ featuers เพิ่มเติมใน Win10 Pro การเลือกใช้ Home เพื่อช่วยลูกค้าไม่ให้จ่ายเงินสำหรับสิ่งที่พวกเขาอาจไม่ต้องการ Windows 10 นั้นมาในรูปแบบ 32 บิตเช่นกันสำหรับผู้ที่ต้องการ แต่ฉันจะประหลาดใจถ้ามีคนขายเครื่องที่มี> 4GB RAM และติดตั้งระบบปฏิบัติการ 32 บิตตั้งแต่ระบบปฏิบัติการและแอพที่ทำงานไม่สามารถทำได้ เพื่อเข้าถึงอะไรก็ได้> 4GB
Rich Turner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.