В чем разница между Cygwin в Windows и реальной средой UNIX - PullRequest
4 голосов
/ 12 мая 2010

Я разработчик C / C ++. Я никогда не занимался программированием на C ++ в UNIX, я занимался только в Windows.

Я хочу попрактиковаться в C ++ в Unix. (Потому что все крупные компании спрашивают C ++ с Unix).

У меня есть ноутбук, на котором я не хочу устанавливать другие ОС (потому что я установил на него очень важное программное обеспечение и у меня нет настроек)

Итак, я искал и нашел CygWin, который является эмулятором Unix для Windows. Я думаю попрактиковаться в C ++ на этом.

Какая разница между Unix и Cygwin?

Ответы [ 4 ]

4 голосов
/ 12 мая 2010

Cygwin - это, в основном, эмулятор POSIX, где POSIX является наименьшим общим знаменателем UNIX и других систем. Это позволяет иметь хорошо написанные приложения POSIX, работающие в Windows.

Вы найдете все, что указано в POSIX (например, иерархию файловой системы, файловую систему / proc, сигналы, сокеты) в Cygwin, и это будет вести себя в спецификациях POSIX. Но так как многие вещи не определены в POSIX, он не будет на 100% похож на любую другую настоящую систему Unix.

Например, в большинстве систем UNIX вы можете удалить файл, когда он открыт (что сделает его временным файлом без имени, который будет удален, когда последний пользователь закроет его). Windows не позволяет этого (и POSIX также не требует этого); поэтому в Cygwin у вас будет семантика файлов Windows (вы не можете удалить файл, пока он открыт).

То же самое касается разрешенных символов в именах файлов, чувствительности к регистру имен файлов и (конечно) всех дополнительных API (помимо POSIX), которые предлагаются большинством реальных UNIX-систем, но которые не включены в Cygwin.

(По крайней мере, у вас может быть X-сервер в Cygwin, который снова поддерживает только основные операции X).

2 голосов
/ 12 мая 2010

Cygwin имеет лишь подмножество функциональных возможностей реальной ОС Unix, и есть некоторые вещи, которые вам нужно знать об ОС Unix, о которых Cygwin не скажет.Это зависит от того, что вам нужно делать на Unix-машине.Поскольку он имеет другую файловую систему и не имеет той же структуры каталогов, что и Windows.Например, в Unix нет «Program Files», и вам может понадобиться узнать, где находится множество файлов, которые вы не найдете в cygwin.Хотя я согласен, если вы не хотите устанавливать на свою машину другую ОС, вы можете установить ее на виртуальной машине или просто использовать ее время от времени, а затем просто использовать liveCD

.
1 голос
/ 12 мая 2010

Вы можете найти эту ссылку полезной: http://en.wikipedia.org/wiki/Cygwin

Они предоставляют много полезной информации, которая поможет вам лучше понять, что будет происходить.

Мой совет - виртуализировать собственную среду (например, с Ubuntu внутри Virtual Box). Google их, чтобы получить ссылки для скачивания

Вы можете поэкспериментировать с душой.

0 голосов
/ 12 мая 2010

Загрузите VirtualBox , затем установите версию Unix на ваш выбор.Лично я большой поклонник Ubuntu.:)

Хотя Cygwin довольно хорош в том, что он делает, это не то же самое, что работать непосредственно на Unix-машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...