LXF136:DrBrown2

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

Linux в Windows

На­дое­ла Windows на ра­бо­те? Ло­ма­ет по Vi? Тос­куе­те без grep? До­лой стра­да­ния – ус­та­но­ви­те Cygwin.

Это Windows? Это Linux? Нет... Это тер­ми­нал Cygwin!

К огда ну­ж­да за­став­ля­ет ме­ня ра­бо­тать в Windows, боль­ше все­го я ску­чаю по команд­ной стро­ке – по основ­ным коман­дам вро­де ls, cp и Vi, клас­си­че­ским ути­ли­там вро­де find и grep и, конеч­но, нор­маль­ной обо­лоч­ке. И при пер­вой же ока­зии став­лю Cygwin. Это ра­бо­чая сре­да в сти­ле Linux для Win­dows. Яд­ро Cygwin – DLL-биб­лио­те­ка Windows, ко­то­рая вы­сту­па­ет в ро­ли слоя со­вмести­мо­сти Linux (то есть эму­ли­ру­ет API систем­ных вы­зо­вов Linux). Ее до­пол­ня­ет ог­ром­ное ко­ли­че­ство ути­лит GNU и дру­гих, пор­ти­ро­ван­ных в эту сре­ду. Cygwin су­ще­ству­ет уже дав­но, но все еще ак­тив­но раз­ра­ба­ты­ва­ет­ся; по­след­няя вер­сия вы­шла в ап­ре­ле это­го го­да.

Cygwin – не раз­но­вид­ность Linux. Это не сре­да вир­туа­ли­за­ции – на ком­пь­ю­те­ре вполне оп­ре­де­лен­но ра­бо­та­ет Windows. И она не пре­достав­ля­ет дво­ич­ной со­вмести­мо­сти при­ло­жениям Linux. Ес­ли вы хо­ти­те за­пустить про­грам­му в Windows, нуж­но пе­ре­ком­пи­ли­ро­вать ее из ис­ходников.

Уста­нов­ка

Ути­ли­та ус­та­нов­ки Cygwin по­зво­ля­ет вы­брать па­ке­ты для ус­та­нов­ки, об­нов­ле­ния и уда­ле­ния из 30 раз­лич­ных ка­те­го­рий.

С сай­та Cygwin мож­но за­гру­зить уста­нов­щик (род­ное Windows-при­ло­жение). По­сле за­пуска уста­нов­щи­ка мож­но при­нять на­строй­ки по умол­чанию в ок­нах масте­ра. Един­ствен­ное исклю­чение – ок­но, где вы­би­ра­ет­ся зерка­ло для за­груз­ки. Дру­гое ок­но, ко­то­ро­му сто­ит уде­лить вре­мя – диа­лог вы­бо­ра па­ке­тов. В нем мож­но бла­го­го­вей­но за­гля­нуть в безд­ну доступ­ных ин­ст­ру­мен­тов и от­ме­тить нуж­ные вам. Да­же здесь пре­ду­смот­рен вы­бор по умол­чанию, и все­гда мож­но вер­нуть­ся и до­ба­вить па­ке­тов поз­же. Уста­нов­щик ав­то­ма­ти­че­ски за­ве­дет икон­ку на ра­бо­чем сто­ле и пункт ме­ню в ме­ню Programs; при вы­бо­ре то­го ли­бо дру­го­го за­пустит­ся тер­ми­нал Cygwin с обо­лоч­кой Bash.

В нем вы смо­же­те по­лу­чить на ди­во Linux-по­доб­ный опыт ра­бо­ты с лю­би­мы­ми ути­ли­та­ми. Мож­но пи­сать скрип­ты обо­лоч­ки и да­же со­че­тать ути­ли­ты Windows и Linux, на­при­мер:

ipconfig | grep ‘IP Address’

Здесь с по­мо­щью ути­ли­ты Cygwin фильт­ру­ет­ся вы­вод коман­ды Windows. Под­держ­ка для раз­ра­бот­чи­ков так­же впе­чат­ля­ет. По су­ти, Cygwin са­мо­доста­то­чен – то есть сре­ды Cygwin вполне хва­тит, что­бы ском­пи­ли­ро­вать са­му се­бя.

Фай­ло­вая систе­ма Cygwin

По умол­чанию Cygwin уста­нав­ли­ва­ет­ся в ка­та­лог C:\cygwin. Этот ка­та­лог ста­но­вит­ся корнем фай­ло­вой систе­мы Cygwin. Ка­та­лог C:\cygwin\bin мон­ти­ру­ет­ся в /usr/bin, а C:\cygwin\lib – в /usr/lib. Од­на­ко, мож­но смон­ти­ро­вать лю­бой ка­та­лог Windows в точ­ку мон­ти­ро­вания Cygwin та­ким об­ра­зом:

$ mkdir /mnt
$ mount ‘C:\Program Files’ /mnt

От­дель­но ка­ж­дый доступ­ный диск в систе­ме мон­ти­ру­ет­ся (с именем в ви­де бу­к­вы диска) в ка­та­лог /cygdrive. На­при­мер, ес­ли ваш при­вод CD в Windows име­ет бу­к­ву D:, в Cygwin его мож­но бу­дет най­ти в ка­та­ло­ге /cygdrive/d.

Пол­но­го сов­па­дения с Linux не ждите. Windows – не Linux: фай­ло­вые систе­мы кар­ди­наль­но от­ли­ча­ют­ся, как и мо­дель соз­дания про­цес­са. Ника­кая эму­ля­ция не смо­жет пол­но­стью скрыть все раз­ли­чия, и неко­то­рые ве­щи при­хо­дит­ся под­де­лы­вать – но­ме­ра inode, систем­ный вы­зов chroot и сим­во­ли­че­ские ссыл­ки. Вре­мя от вре­мени мне при­хо­ди­лось стал­ки­вать­ся с жут­кой ре­аль­но­стью Windows, на­при­мер:

$ su -
su: user root does not exist

Боль­шин­ство ути­лит Cygwin рас­про­стра­ня­ют­ся по ли­цен­зии GPL, часть на­хо­дит­ся в пуб­лич­ном досту­пе, еще часть – под ли­цен­зи­ей ти­па X11. Биб­лио­те­ка API Cygwin так­же ли­цен­зи­ру­ет­ся по GPL. Так как все пор­ти­ро­ван­ные в Cygwin ути­ли­ты ком­по­ну­ют­ся с этой биб­лио­те­кой, их то­же нуж­но рас­про­стра­нять под GPL.

Red Hat пре­достав­ля­ет про­из­во­ди­те­лям ПО воз­мож­ность вы­ку­па ли­цен­зии Cygwin, хо­тя на сай­тах и Cygwin, и Red Hat ин­фор­ма­ция об этом тем­на (а стои­мость не упо­ми­на­ет­ся). Но ес­ли вы просто конеч­ный поль­зо­ва­тель, же­лаю­щий поль­зо­вать­ся ути­ли­та­ми Cygwin, GPL да­ет вам доста­точ­но прав.

Что вы по­лу­чае­те?

Ну, это за­ви­сит от ва­ше­го вы­бо­ра для ус­та­нов­ки, но вы­бор весь­ма ве­лик. Обо­лоч­ки вклю­ча­ют Bash, Dash, Midnight Commander, pdksh, tcsh и zsh. Ре­дак­то­ры – Emacs, Joe, Nano, Vim и GVim. Сред­ст­ва раз­ра­бот­ки – GCC, G++, CVS, Bison, Make, и autoconf. Есть все клас­си­че­ские ути­ли­ты вро­де man, gawk, grep, tar, find, sed, sort и ути­лит яд­ра GNU. Да, и есть сер­вер X.org и стан­дарт­ные ути­ли­ты X вро­де xclock, xcalc и ста­ро­го доб­ро­го xeyes.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию