Câu trả lời:
Máy ảo và Cygwin trả lời hai câu hỏi khác nhau.
Máy ảo là khi bạn muốn chạy nhiều hệ điều hành cùng một lúc. Giống như có hai máy tính mà không phải trả hai bộ phần cứng.
Cygwin dự định cung cấp cho Windows một số công cụ Unix, để các chuyên viên máy tính Unix có thể sử dụng Windows hiệu quả hơn (mặc dù tôi cho rằng Cygwin không thực sự làm điều đó rất tốt) và cung cấp một số công cụ có tính năng lớn hơn Windows cung cấp trên chính nó. Tôi không nghĩ rằng đặc tính của Cygwin cung cấp một "môi trường giống như linux" là đặc biệt chính xác. (Cygwin thực sự có ý định cung cấp môi trường phát triển POSIX hoàn chỉnh hơn cho Windows và, khi đó, cung cấp một số tiện ích. Tuy nhiên, kết quả cuối cùng cho người dùng cuối là nó chỉ cung cấp các công cụ.)
Có thực sự là loại một lựa chọn thứ ba, Hợp tác xã Linux , mà tôi nghĩ rằng thực sự không cung cấp một môi trường Linux giống như trong Windows. Nó thực sự chạy kernel Linux như một tiến trình trong Windows. Có một số bản phân phối chạy theo nó; andLinux đến với tâm trí. Với các hệ thống này, bạn thực sự có một môi trường Linux có thể tương tác trực tiếp với môi trường Windows của bạn nhiều hơn một máy ảo.
Nó vẫn hữu ích để chạy các công cụ Unix như rsync, mà bạn muốn hoạt động trên các tệp trên hộp Windows thay vì bị kẹt trong một máy ảo. Sau đó, bạn cũng có thể sử dụng bộ lập lịch Windows để bắt đầu công việc với các công cụ.
Theo tôi thấy, Cygwin là một khái niệm khác. Không giống như máy ảo, nó cung cấp một DLL mô phỏng môi trường / lớp Linux, có thể chạy và xây dựng chương trình linux trên máy Windows. Ví dụ: nếu bạn muốn sử dụng một số thư viện chỉ được phân phối dưới dạng mã nguồn và được dành cho hệ thống Linux tích hợp, nếu bạn muốn sử dụng thư viện này trong Visual Studio thì sao? Bạn không thể sử dụng VS để xây dựng nó vì nó phụ thuộc vào Linux, vì vậy bạn cần Cygwin trong tình huống này.