Cygwin adalah perpustakaan yang berupaya membuat program UNIX dapat dikompilasi dan dijalankan pada sistem Windows dengan sedikit atau tanpa modifikasi, dan seperangkat alat dan aplikasi UNIX terpaket yang dikompilasi dengan perpustakaan ini. Ini hampir merupakan pembungkus lengkap di sekitar Windows. Ini termasuk server X dan banyak sekali program yang dapat Anda temukan di distribusi Linux. Ini bagus untuk orang yang ingin mempelajari atau menggunakan baris perintah UNIX di Windows.
MSYS sebagian besar merupakan port alat UNIX yang diperlukan untuk membangun paket gaya GNU (dengan configure
dll) pada sistem Windows dengan kompiler MinGW. Ini menggunakan varian pustaka Cygwin yang dimodifikasi untuk mengorbankan beberapa kompatibilitas demi efisiensi, dan lebih ramah Windows.
GnuWin32 hanyalah sebuah port dari beberapa alat GNU ke Windows. Seperti MSYS, ini menggunakan msvcrt.dll
, serta pustaka tambahan untuk menyediakan beberapa fungsi kompatibilitas UNIX. Tujuan utamanya tampaknya untuk memungkinkan program Windows dan file batch menggunakan beberapa program dan pustaka GNU secara langsung.
Sebagian besar, mereka semua menyediakan program UNIX di Windows, tetapi ada banyak perbedaan kecil, termasuk:
- Niat. Cygwin adalah untuk orang yang ingin menggunakan UNIX di OS Windows mereka. MSYS adalah untuk orang yang ingin membangun program Windows menggunakan alat build GNU/UNIX. GnuWin32 adalah port dari program dan pustaka GNU individual ke Windows.
- File teks, khususnya akhiran baris. Cygwin memungkinkan Anda menggunakan CR/LF atau LF. MSYS mengharapkan akhiran baris LF. Program GnuWin32 mengharapkan akhir baris CR/LF.
- Program yang disediakan. Secara khusus, Cygwin memiliki lebih banyak paket, dan GnuWin32 tidak menyediakan shell apa pun.
Adapun git, tersedia dengan Cygwin - versi ini dapat digunakan di direktori Windows (dapat diakses di bawah /cygdrive
). Juga, seperti yang disebutkan, ada msysgit.
Michael Slade benar. Saya ingin berbicara tentang lingkungan penggunaan umum.
Untuk alasan praktis saya menggunakan gnuwin sebagai backend ringan untuk hal-hal yang hanya terkait jarak jauh dengan lingkungan POSIX sementara cygwin lebih merupakan POSIX penuh dan bahkan lingkungan yang sangat gnunixish.
Juga gnuwin cenderung membengkak ketika menginstal banyak alat karena executable sering menggunakan pustaka yang terhubung secara statis. Cygwin di sisi lain memberikan satu ton perpustakaan dinamis dan executable yang agak kecil. Jadi jika Anda hanya membutuhkan beberapa executable maka gnuwin membutuhkan lebih sedikit sumber daya. Jika Anda membutuhkan lingkungan yang kompleks maka cygwin akan lebih efisien.
gnuwin juga sering agak ketinggalan jaman, menawarkan beberapa perangkat lunak, tidak ada paket/update-manager. Ini adalah lingkungan shell dasar. Tanpa ssh, tanpa gcc, vim, tanpa perl, tanpa sql - Anda bisa mendapatkannya dari sumber lain tetapi cara kerja sama ini sulit diprediksi. Cygwin memperbaiki semua masalah di atas.
Dengan kata lain, gnuwin sangat bagus untuk penginstal sesekali, untuk hanya menempatkan du, temukan, dan urutkan di $PATH Anda. Untuk melakukan beberapa pekerjaan POSIX nyata, gunakan cygwin.
Saya pernah memiliki workstation Linux kedua, kemudian VM Linux berjalan di sebelah sistem windows saya. Cygwin membuat mereka usang. Ini cukup bagus untuk banyak hal sekaligus menghemat banyak sumber daya dibandingkan dengan komputer khusus atau VM.