С появлением программного обеспечения для виртуальных машин, такого как VirtualBox, VMWare, Parallels и т.д., Является ли Cygwin полезным на платформе Windows для создания среды, подобной linux?
3 ответа
Виртуальные машины и Cygwin отвечают на два разных вопроса.
Виртуальные машины предназначены для тех случаев, когда вы хотите запустить несколько операционных систем одновременно. Это как иметь два компьютера без затрат на покупку двух комплектов оборудования.
Cygwin предназначен для предоставления Windows ряда инструментов Unix, чтобы гики Unix могли более эффективно использовать Windows (хотя я бы сказал, что Cygwin на самом деле не очень хорошо это делает), а также для предоставления некоторых инструментов, обладающих более широкими возможностями, чем Windows. обеспечивает самостоятельно. Я не думаю, что характеристика Cygwin, обеспечивающая «среду, похожую на Linux», является особенно точной. (Cygwin фактически предназначен для предоставления более полной среды разработки POSIX для Windows, и при этом предоставляет ряд утилит. Однако конечный результат для конечных пользователей заключается в том, что он просто предоставляет инструменты.)
Там на самом деле своего рода третий вариант, Cooperative Linux, который я думаю , что на самом деле действительно обеспечивает Linux-подобную среду в Windows. Он фактически запускает ядро Linux как процесс в Windows. Есть несколько дистрибутивов, которые работают под ним; andLinux приходит на ум. В этих системах у вас действительно есть среда Linux, которая может более напрямую взаимодействовать с вашей средой Windows, чем виртуальная машина.
Он по-прежнему полезен для запуска инструментов Unix, таких как rsync, с которыми вы хотите работать с файлами на коробке Windows, а не залипать на виртуальной машине. Затем вы также можете использовать планировщик Windows для запуска заданий с помощью инструментов.
Насколько я понимаю, Cygwin - это другая концепция. В отличие от виртуальной машины, она предоставляет DLL, которая эмулирует среду / слой Linux, которая может запускать и создавать программы linux на машине с Windows. Например, если вы хотите использовать какую-то библиотеку, которая распространяется только в качестве исходного кода и предназначена для встроенной системы Linux, что, если вы хотите использовать эту библиотеку в Visual Studio? Вы не можете использовать VS для его построения, поскольку он зависит от Linux-зависимостей, поэтому в этой ситуации вам нужен Cygwin.