Mesin Virtual vs Cygwin

Jawaban:

20

Mesin virtual dan Cygwin menjawab dua pertanyaan berbeda.

Mesin virtual adalah untuk saat Anda ingin menjalankan beberapa sistem operasi secara bersamaan. Ini seperti memiliki dua komputer tanpa biaya untuk membeli dua set perangkat keras.

Cygwin dimaksudkan untuk memberikan Windows sejumlah alat Unix, sehingga Geeks Unix dapat lebih efektif menggunakan Windows (meskipun saya berpendapat bahwa Cygwin tidak melakukannya dengan sangat baik), dan untuk menyediakan beberapa alat yang memiliki fitur lebih besar daripada Windows menyediakan sendiri. Saya tidak berpikir karakterisasi Cygwin menyediakan "linux like environment" sangat akurat. (Cygwin sebenarnya dimaksudkan untuk menyediakan lingkungan pengembangan POSIX yang lebih lengkap untuk Windows, dan, dalam melakukannya, menyediakan sejumlah utilitas. Namun, hasil akhirnya bagi pengguna akhir, adalah bahwa ia hanya menyediakan alat.)

Sebenarnya ada semacam opsi ketiga, Linux Kooperatif , yang saya pikir benar - benar menyediakan lingkungan seperti Linux di dalam Windows. Ini sebenarnya menjalankan kernel Linux sebagai proses dalam Windows. Ada beberapa distribusi yang berjalan di bawahnya; andLinux muncul di pikiran. Dengan sistem ini, Anda sebenarnya memiliki lingkungan Linux yang dapat lebih langsung berinteraksi dengan lingkungan Windows Anda daripada mesin virtual.

wfaulk
sumber
2
Cygwin menjadi sekelompok utilitas sebenarnya hanyalah efek samping. Terutama dimaksudkan sebagai lingkungan seperti Linux untuk perangkat lunak, bukan untuk pengguna, sehingga Anda memiliki API yang sesuai yang dibungkus dalam persaingan. Dengan coLinux, kernel Linux berjalan sebagai driver perangkat di dalam kernel Windows, bukan sebagai proses.
Joey
3
Saya hanya menginstal cygwin untuk dapat memiliki shell yang layak untuk bekerja pada file windows saya. Saya akan hilang tanpa menemukan, grep, sed dan itu sejenisnya.
Nifle
1
@Johannes: halaman web coLinux mengatakan "coLinux selalu menggunakan hanya satu proses OS host untuk semua proses Linux, mengelola penjadwalan, sumber daya, dan kesalahan secara pribadi". AFAICR, ini dijalankan sebagai layanan, bukan driver.
wfaulk
4

Ini masih berguna untuk menjalankan alat Unix seperti rsync, yang ingin Anda operasikan pada file di kotak Windows daripada terjebak di mesin virtual. Anda juga dapat menggunakan penjadwal Windows untuk memulai pekerjaan dengan alat.

andynormancx
sumber
1
Saya lebih suka mengambil build asli daripada menginstal cygwin.
Joey
2
tidak semuanya tersedia dalam versi asli.
Quack quixote
2

Sejauh yang saya ketahui, Cygwin adalah konsep yang berbeda. Tidak seperti mesin virtual, ia menyediakan DLL yang mengemulasi lingkungan / lapisan Linux, yang dapat menjalankan dan membangun program linux pada mesin windows. Misalnya, jika Anda ingin menggunakan beberapa pustaka yang hanya didistribusikan sebagai kode sumber dan dimaksudkan untuk dibangun di sistem Linux, bagaimana jika Anda ingin menggunakan pustaka ini di Visual Studio? Anda tidak dapat menggunakan VS untuk membangunnya karena bergantung pada dependensi Linux, jadi Anda perlu Cygwin dalam situasi ini.

Peiti Li
sumber