Sự khác biệt giữa Windows Bash và Cygwin là gì?


65

Sự khác biệt giữa Windows Bash và Cygwin là gì?

Bản cập nhật mới từ Windows với "Linux" Bash là mới, nhưng Cygwin có những điểm khác biệt nào có thể khiến bạn chọn cái khác?


1
Tôi cho rằng bash windows được tích hợp tốt hơn và được Microsoft hỗ trợ tốt hơn.
Panther

2
Tôi nghĩ câu hỏi này thuộc chủ đề vì Windows Bash là một sản phẩm được Canonical hỗ trợ. Nó có thể lạc đề vì có lẽ ý kiến ​​hơn là hỗ trợ.
Panther

Câu trả lời:


65

Cygwin là một công cụ tuyệt vời nếu bạn muốn sống hoàn toàn trong Windows và muốn lái xe / tự động hóa các tác vụ Windows bằng các tập lệnh bash. Tuy nhiên, Cygwin không thể chạy các tệp nhị phân Linux chưa sửa đổi.

Đó là nơi WSL bước vào:

Hệ thống con Windows cho Linux (WSL), là một lớp mới của nhân Windows nhằm mục đích cung cấp mức độ tương thích cao với nhân Linux ABI. Điều này cho phép các nhị phân ELF64 nguyên gốc, chưa sửa đổi, chạy trên WSL.

Đây là cách WSL có thể chạy một bản phân phối người dùng Ubuntu chính hãng và bất kỳ gói nào bạn tải xuống từ các gói apt-get hoặc .deb từ nơi khác mà không có bất kỳ thay đổi nào.

Quan điểm của WSL là cho phép các nhà phát triển làm việc trên Windows có thể chạy nhiều công cụ và hoạt động trên nhiều dự án, phụ thuộc vào nhị phân Linux, tính năng, hành vi, bố cục hệ thống tệp, mô hình quy trình, v.v.

Mặc dù WSL vẫn còn sớm trong quá trình triển khai, chúng tôi đang nỗ lực cải thiện chiều rộng và chiều sâu của các triển khai tòa nhà để cải thiện dần khả năng của WSL để chạy một bộ công cụ lớn hơn bao giờ hết và hỗ trợ số lượng Ruby, Java, nút tăng nhanh , vv gói và dự án.


Cập nhật: 2017-09-07

Kể từ khi viết ở trên, chúng tôi đã gửi Bản cập nhật Windows 10 Creators Update mà MASSIVELY cải thiện khả năng tương thích của WSL với NHIỀU công cụ bạn muốn / cần chạy.

Sự phát triển cũng tiếp tục không suy giảm và chúng tôi đã vận chuyển các bản dựng Win10 Insiders trong vài tháng qua trên đường đến bản vận chuyển Fall Creators Update (FCU) vào tháng 10 năm 2017.

Trong FCU, chúng tôi đang thêm khả năng cài đặt và chạy nhiều hơn một bản phân phối song song: Ubuntu, openSUSE và SLES hiện đang có sẵn, với Fedora và những người khác đang trên đường. WSL hiện cũng hỗ trợ comms nối tiếp USB và gắn bộ lưu trữ USB và chia sẻ mạng, cùng với các cải tiến hơn nữa cho các tòa nhà của chúng tôi nhằm cải thiện khả năng tương thích với nhiều công cụ hơn.


Cập nhật: 2019-08-22

Đó là một vài năm rất bận rộn kể từ lần đầu tiên công bố và phát hành WSL, sau đó thêm hỗ trợ cho nhiều bản phát hành qua cửa hàng và thông báo WSL v1.0 HTH.

Tại Build 2019, chúng tôi đã công bố Windows Terminal mới ( video phiên Terminal tại đây ) và WSL 2 ( video phiên WSL 2 tại đây ) giới thiệu một cách tiếp cận hoàn toàn mới để chạy Linux trên Windows.

Để biết thêm chi tiết và cập nhật trong tương lai, hãy nhớ truy cập blog Dòng lệnh của Windows mỗi vài tuần, nơi chúng tôi đăng nhiều tin tức liên quan


9
Tôi đã là một người dùng Cygwin trong nhiều năm. WSL là một ý tưởng tuyệt vời mà hầu hết chạy tốt ... tuy nhiên ở giai đoạn này tốc độ truy cập tệp của nó chậm. Tôi sẽ nói rất chậm. Thực hiện ngay cả các thao tác có kích thước trung bình với một cái gì đó như GIT mất hơn 30 giây so với giây thứ hai trên Cygwin. Hy vọng họ sẽ sửa nó.
Damien Sawyer

9
Đĩa perf là ​​một vấn đề được biết đến: Chúng tôi đang nghiên cứu một số cải tiến hoàn hảo cho Win10 CU, với những cải tiến đáng kể hơn vào cuối năm 2017.
Rich Turner

3
Tuyệt vời. Không thể chờ đợi. Đây sẽ là một sản phẩm tuyệt vời :-)
Damien Sawyer

2
@DamienSawyer đã hơn 6 tháng. Các khiếu nại về tốc độ của bạn đã được giảm bớt hay chúng vẫn giống nhau?
WinEunuuchs2Unix

3
@RichTurner thì tôi sẽ chạy bản cập nhật: D
Martijn van Wezel

15

Hệ thống con Windows cho Linux

Tôi đã sử dụng WSL trong Windows 10 khoảng một vài tháng. Cuối cùng tôi có thể khởi động vào Windows để chơi game và vẫn truy cập vào dấu nhắc bash và chạy CLI và nhiều chương trình GUI. Có những hạn chế như không có thư mục ảo nhân Linux quen thuộc nào. Cần lập kế hoạch để chia sẻ cùng một tập lệnh Bash giữa Ubuntu và WSL trên máy khởi động kép.

Có rất nhiều điều tôi muốn thấy được cải thiện, nhưng tôi có thể sống với nó trong khoảng một năm.

Nguồn đóng

Một điều cần nhớ là Microsoft là một hệ thống khép kín và bạn không bị các bên thứ ba viết các bản cập nhật như bạn thích trên Linux. Nhưng tất cả mọi thứ đều coi bạn mua một chiếc máy tính xách tay mới và dù sao nó cũng đi kèm với Windows 10 để bạn có thể nói rằng nó "miễn phí" ít nhất :)

Cygwin được kiểm soát bởi Red Hat Linux, vốn không được biết đến chính xác vì đã cho đi mọi thứ miễn phí. Bản phân phối Linux "miễn phí" của họ Fedora có vẻ như là "nơi thử nghiệm" đối với một số người.

Chu kỳ bảo trì

Cygwin có 15 năm cập nhật. Đáng chú ý là cùng một người quản lý dự án đã được thực hiện kể từ năm 2003. Có rất nhiều người duy trì toàn thời gian và nhiều người đóng góp tình nguyện hơn.

WSL cung cấp các cập nhật lớn hai lần một năm vào mỗi mùa xuân và mùa thu. Các cập nhật nhỏ hàng tuần có sẵn cho những người trong danh sách đăng ký Nhà phát triển. Mặc dù Microsoft có tài nguyên để ném hàng ngàn người vào phát triển WSL nhưng có vẻ như bạn có thể đếm các thành viên trong nhóm bằng ngón tay của mình.

Vấn đề tốc độ

Bạn sẽ thấy nhiều phàn nàn về tốc độ WSL. Ví dụ: vẽ màn hình mất nhiều thời gian hơn trong Windows 10 so với Ubuntu 16.04, tức là bạn thực sự có thể thấy con trỏ di chuyển trong Windows 10:

WSL bash startup.gif

Mất khoảng 5 giây để màn hình giật gân WSL Bash vẽ. Khi so sánh, khoảng 1 1/2 giây cho cùng một màn hình giật gân trong Ubuntu 16.04:

Thiết bị đầu cuối Ubuntu giật gân.

Cygwin có những chia sẻ riêng về khiếu nại tốc độ với Bash .


Bài viết gốc dưới đây để tham khảo lịch sử.

Câu trả lời ở đây là một năm tuổi, vì vậy tôi nghĩ rằng một bản cập nhật nhỏ là theo thứ tự. Với Windows 10 Home, nếu là Windows 32 bit, điều đó có nghĩa là nó sẽ không chạy Hệ thống con Ubuntu / Windows 64 bit như Microsoft nói với chúng tôi ở đây: ( Windows Linux hệ thống con trong win10 HOME BASIC ).

Nó giống như một giấc mơ trở thành sự thật khi chạy Ubuntu trên Windows với sự hỗ trợ chơi game vượt trội dành cho Nvidia, nhưng trước khi bạn mua và mua một máy tính xách tay mới (hoặc đã sử dụng), hãy đảm bảo rằng nó có Windows 10 64 bit chứ không phải phiên bản 32 bit tại nhà bạn muốn chạy Ubuntu / Linux thứ nguyên bản trong Windows. Trên các trang web của Microsoft, họ thực sự đề cập đến phiên bản Windows Anniversary như một điều kiện tiên quyết để chạy Hệ thống con Windows cho Linux.


Tuy nhiên, nếu bạn không muốn bỏ ra $ 200 + cho Windows 10 và bạn có một máy tính xách tay cũ hơn chạy Windows 8.1 64 bit như tôi và bạn có một máy tính xách tay thậm chí cũ hơn chạy Windows Vista 64 bit như tôi, thì Cygwin là câu trả lời.

Cygwin hỗ trợ nhiều phiên bản Windows hơn như danh sách trang web của họ :

Cygwin có thể được dự kiến ​​sẽ chạy trên tất cả các phiên bản Windows được phát hành, hiện đại. Trạng thái tháng 1 năm 2016 này bao gồm Windows Vista, Windows Server 2008 và tất cả các phiên bản Windows mới hơn cho đến Windows 10 và Windows Server 2016. Phiên bản 32 bit của Cygwin cũng chạy trong môi trường WOW64 32 bit trên các phiên bản 64 bit của Windows, 64 phiên bản bit tất nhiên chỉ có trên Windows 64 bit.

Hãy nhớ rằng Cygwin chỉ có thể làm nhiều như hệ điều hành cơ bản hỗ trợ. Vì điều này, Cygwin sẽ hành xử khác nhau và thể hiện những hạn chế khác nhau, trên các phiên bản Windows khác nhau.


2
Câu hỏi là sự khác biệt giữa cygwin và bash cho windows là gì. Cygwin thậm chí không được đề cập trong câu trả lời của bạn. Hãy làm rõ cách này trả lời câu hỏi.
Seth

@ Tôi đã chỉ ra cách WSL là phiên bản cụ thể trong khi Cygwin chạy trên tất cả các phiên bản được hỗ trợ của WIndows. Cảm ơn đã chỉ ra sự giám sát của tôi.
WinEunuuchs2Unix

1
Chúng tôi đã rất rõ ràng rằng WSL yêu cầu Windows 64 bit và có sẵn trong mọi SKU Windows 10, ngoại trừ LTSB hiện tại - WSL sẽ được thêm vào bản phát hành LTSB tiếp theo. WSL cũng sẽ được đưa vào Windows Server được phát hành vào mùa thu 2017.
Rich Turner

@RichTurner Trang web của bạn đánh vần rõ ràng. Điều không rõ ràng với tôi (và không phải lỗi của bạn) là tại sao nhà cung cấp bán i7 quad core 7700 với GPU Nvidia 1050 và RAM 12 GB hệ thống với Windows 10 home. Ai đó đã xóa liên kết ban đầu nhưng đây là . Họ không đánh vần là 32-bit. Có phải bạn đang nói rằng mỗi thứ 10 là 64 bit?
WinEunuuchs2Unix

1
Nó được bán dưới dạng PC chơi game. Vì hầu hết các game thủ không cần thêm người chơi trong Win10 Pro, nên đã chọn Home để cứu khách hàng trả tiền cho những thứ họ có thể sẽ không cần. Windows 10 cũng có các biến thể 32 bit cho những người muốn nó, nhưng tôi sẽ HẤP DẪN nếu ai đó bán một máy có RAM 4GB và cài đặt HĐH 32 bit vì HĐH và các ứng dụng mà nó chạy sẽ không thể để truy cập mọi thứ> 4GB.
Rich Turner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.