Maszyny wirtualne a Cygwin

Odpowiedzi:

20

Maszyny wirtualne i Cygwin odpowiadają na dwa różne pytania.

Maszyny wirtualne są przeznaczone do jednoczesnego uruchamiania wielu systemów operacyjnych. To jak posiadanie dwóch komputerów bez kosztów zakupu dwóch zestawów sprzętu.

Cygwin ma na celu udostępnienie Windowsowi wielu narzędzi uniksowych, aby maniacy uniksowi mogli efektywniej korzystać z systemu Windows (chociaż twierdzę, że Cygwin nie radzi sobie tak dobrze), a także zapewnić niektóre narzędzia, które mają więcej funkcji niż Windows zapewnia na własną rękę. Nie sądzę, aby charakterystyka Cygwin zapewniająca „środowisko podobne do linuksa” była szczególnie dokładna. (Cygwin ma na celu zapewnienie bardziej kompletnego środowiska programistycznego POSIX dla systemu Windows, a tym samym zapewnia szereg narzędzi. Końcowym rezultatem dla użytkowników końcowych jest to, że zapewnia jedynie narzędzia).

Jest rzeczywiście rodzaj trzeciej opcji Cooperative Linux , który myślę, że rzeczywiście ma zapewnić Linux-jak środowisko w systemie Windows. W rzeczywistości działa jądro Linuksa jako proces w systemie Windows. Istnieje kilka dystrybucji, które działają pod nim; i przychodzi mi na myśl Linux . Z tymi systemami faktycznie masz środowisko Linux, które może bardziej bezpośrednio współdziałać ze środowiskiem Windows niż maszyna wirtualna.

wfaulk
źródło
2
Cygwin jako zestaw narzędzi jest w rzeczywistości jedynie efektem ubocznym. Jest przeznaczony przede wszystkim jako środowisko podobne do systemu Linux dla oprogramowania, a nie dla użytkownika, więc masz odpowiednie interfejsy API opakowane w emulację. W przypadku coLinux jądro Linux działa jako sterownik urządzenia w jądrze systemu Windows, a nie jako proces.
Joey,
3
Instaluję cygwin tylko po to, aby mieć przyzwoitą powłokę do pracy z plikami Windows. Byłbym zagubiony bez znalezienia, grep, sed i to jest podobne.
Nifle
1
@Johannes: strona internetowa coLinux mówi: „coLinux zawsze wykorzystuje tylko jeden proces systemu operacyjnego hosta dla wszystkich swoich procesów Linux, prywatnie zarządzając ich harmonogramem, zasobami i błędami”. AFAICR działa jako usługa, a nie sterownik.
wfaulk
4

Nadal jest użyteczny do uruchamiania narzędzi uniksowych, takich jak rsync, które chcesz obsługiwać na plikach w systemie Windows, a nie utknąć na maszynie wirtualnej. Możesz także użyć harmonogramu systemu Windows do uruchamiania zadań za pomocą narzędzi.

andynormancx
źródło
1
Wolałbym jednak instalować natywne wersje niż instalować cygwin.
Joey,
2
jednak nie wszystko jest dostępne w natywnych kompilacjach.
quack quixote
2

Jeśli chodzi o mnie, Cygwin to inna koncepcja. W przeciwieństwie do maszyny wirtualnej udostępnia bibliotekę DLL, która emuluje środowisko / warstwę systemu Linux, która może uruchamiać i budować program Linux na komputerze z systemem Windows. Na przykład, jeśli chcesz użyć biblioteki, która jest dystrybuowana tylko jako kod źródłowy i jest przeznaczona dla wbudowanego systemu Linux, co jeśli chcesz korzystać z tej biblioteki w Visual Studio? Nie można użyć VS do zbudowania go, ponieważ opiera się on na zależnościach Linuksa, więc w tej sytuacji potrzebujesz Cygwina.

Peiti Li
źródło