<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2986307105622275526</id><updated>2011-11-28T04:45:40.219+04:00</updated><category term='переводы'/><category term='linux'/><category term='ext3'/><category term='сертификации'/><category term='centos'/><category term='лицензии'/><category term='opensuse'/><category term='пакетный менеджмент'/><category term='mandriva'/><category term='gentoo'/><category term='планировщик ввода-вывода'/><category term='обучение'/><category term='novell'/><category term='ядро'/><category term='патенты на ПО'/><category term='reiserfs'/><category term='lvm'/><category term='инициализация системы'/><category term='файловые системы'/><category term='bash'/><category term='дистрибутивы'/><category term='акции'/><category term='redhat/fedora'/><category term='copyright'/><category term='выбор'/><category term='свобода'/><category term='debian/ubuntu'/><category term='техническая документация'/><category term='информация к размышлению'/><category term='alt linux'/><category term='неприкрытый сарказм'/><category term='microsoft'/><category term='windows'/><category term='ext4'/><category term='udev'/><category term='btrfs'/><category term='raid'/><category term='программирование'/><category term='виртуализация'/><category term='безопасность'/><title type='text'>Вся правда о пингвинах!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-2011591749706064583</id><published>2011-08-29T16:33:00.002+04:00</published><updated>2011-08-30T09:18:24.411+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='дистрибутивы'/><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><title type='text'>Mandriva/ROSA 2011 - что можно сделать после установки</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;i&gt;Решил вкратце собрать тут ту инфу, что смог собрать, пользуясь свежей Mandriva (которая сегодня зарелизилась) уже месяц. Как всегда, приводимая здесь информация на свой страх и риск. Приведенные советы могут взорвать ваш компьютер, съесть вашего хомяка, начальник лишит вас премии, а лучший друг обидится на вас. Если все это вас не пугает - вперед!&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;1. Инсталлятор Mandriva, который до сих пор используется, представляет собой старый и почти заброшенный инсталлер доставшийся «по наследству». Новый инсталлятор есть, но оттестировать к релизу его не успели. К чему это я? Во время установки ставится много лишних пакетов (поддержка оборудования, дополнительные локали). Причем, в Mandriva этот список еще больше, чем в Росе. Удалить лишнее из системы можно скриптом, специально предназначенным для таких целей разработчиками:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@host13 ~]# remove-unused-packages&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;2. Удаляем лишнее модули из initrd. В Mandriva/Роса для генерации initd используется dracut. Список запускаемых модулей можно посмотрев, просто запустив его:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@host13 ~]# dracut /boot/initrd-$(uname -r)-test.img&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Затем открываем в любимом текстовом редакторе файл /etc/dracut.conf и прописываем туда такую строку:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;omit_dracutmodules+="network ifcfg btrfs crypt dmsquash-live mdraid fcoe nfs resume aufs-mount"&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Список приведен для моей машины, выбирайте «лишние» модули на свой страх и риск. Скажем, удалять из списка модуль mdraid не рекомендуется, если ваша система грузится с софтового raid'а. Если используется btrfs - модуль удалять так же не стоит. Перезапускаем dracut еще раз:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@host13 ~]# dracut -f /boot/initrd-$(uname -r)-test.img&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Добавляем новый initrd в grub (отдельным пунктом!). Последнее предупреждение: если вы не знаете как это сделать и не понимаете всего, что приведено в этом пункте, этот совет не для вас. Я предупредил!  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Если перезагрузка пройдет успешно, то можно убрать из названия образа initrd слово «test» и прописать его в загрузчик насовсем.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;3. Владельцы карт Nvidia и ATI должны установить (при желании) свой проприетарный драйвер. Сделать это лучше через Центр Управления Mandriva или (что быстрее) сразу запустить drakx11 (работает и без графики совсем). Попакетная установка драйверов через пакетный менеджер, увы, не сработает. Также нелишним для владельцев Nvidia будет прописать открытый драйвер nouveau в blacklist:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@host13 ~]# vim /etc/modprobe.d/blacklist-mdv  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;В этот файл надо добавить строчку:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;blacklist nouveau&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;4. Далее открываем модуль настройки загружаемых при старте системы сервисов. Из консоли это - drakxservices. Либо через «Настройка Компьютера» - «Система» - «Включение и отключение системных сервисов». Здесь нужно отключить те службы, которые вам не нужны. Если вы не знаете этого - лучше будет закрыть этот модуль сразу. Лично я отключил: &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;abrtd&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;atd&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;avahi-daemon&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;iptables&lt;/span&gt; и &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ip6tables&lt;/span&gt; (они нужны при ручной настройке firewall, если используете «родной» firewall от Mandriva - их можно смело выключить), &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lvm2-monitor&lt;/span&gt; и &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mdadm&lt;/span&gt; (если не используете LVM и RAID), &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;netfs&lt;/span&gt; (если не монтируете через /etc/fstab сетевые файловые системы), &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;network&lt;/span&gt; и &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;network-up&lt;/span&gt; (если будете использовать networkmanager), &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;nfs-server&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;nfs-common&lt;/span&gt; и &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rpcbind&lt;/span&gt; (я не использую NFS).&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;5. Те, кто испытывает мало объяснимое отрицательное отношение к systemd, может заменить его на sysvinit, который по-прежнему есть в репозиториях:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[root@host13 ~]#  urpmi sysvinit&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Разработчики системы и служба поддержки отрицательно относятся к данному шагу, поэтому делайте это на свой страх и риск! Работоспособность системы не гарантируется (но грузиться будет).&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;6. Если кому-то не подходит ядро версии 2.6.38, которое используется в системе, тот может поставить себе более новое «ванильное» ядро версии 3.0.3 от проекта &lt;a href="http://mib.pianetalinux.org/"&gt;MIB&lt;/a&gt;.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;[root@host13 ~]#  urpmi kernel-linus-latest&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;7. Доустановить в систему adobe flash player можно командой:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;[root@host13 ~]# urpmi flash-player-plugin-preview&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i060.radikal.ru/1108/48/fb32a9325d78.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://i060.radikal.ru/1108/48/fb32a9325d78.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Вроде ничего не забыл :) . Удачной работы с Mandriva!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-2011591749706064583?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/2011591749706064583/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/08/mandriva.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/2011591749706064583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/2011591749706064583'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/08/mandriva.html' title='Mandriva/ROSA 2011 - что можно сделать после установки'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-4985546345791905267</id><published>2011-07-08T20:51:00.001+04:00</published><updated>2011-07-09T10:21:00.963+04:00</updated><title type='text'>Авторы, отзовитесь!</title><content type='html'>Привет всем!&lt;br /&gt;&lt;br /&gt;Если у вас есть возможность поделиться своим опытом по поводу использования Linux дома или на работе, приглашаю сделать это на страницах этого дневника. Тематика статей может быть любой.&lt;br /&gt;&lt;br /&gt;Об условиях. Для того чтобы получить право публикации здесь - необходимо написать не менее трех статей. Желательно, чтобы они были грамотными, но это не проблема. Главное - интересное содержание. Три статьи - для того, чтобы я мог убедиться, что автор не иссякнет после написания одной-двух статей. &lt;b&gt;Все присланные статьи будут опубликованы от имени тех авторов&lt;/b&gt;, которые пришлют эти статьи и в том виде, в котором они сами пожелают указать себя (или ники или полное имя). Адрес электронной почты приведен в моем профиле.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-4985546345791905267?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/4985546345791905267/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/07/blog-post_08.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4985546345791905267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4985546345791905267'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/07/blog-post_08.html' title='Авторы, отзовитесь!'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-8061610099445632082</id><published>2011-07-05T09:00:00.007+04:00</published><updated>2011-07-10T09:37:54.870+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='пакетный менеджмент'/><category scheme='http://www.blogger.com/atom/ns#' term='дистрибутивы'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><category scheme='http://www.blogger.com/atom/ns#' term='alt linux'/><category scheme='http://www.blogger.com/atom/ns#' term='техническая документация'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='debian/ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='novell'/><category scheme='http://www.blogger.com/atom/ns#' term='redhat/fedora'/><title type='text'>Дистрибутивы Linux. Часть II</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;Хоть Virens частично и раскрыл эту тему в своем &lt;a href="http://mydebianblog.blogspot.com/2011/07/linux.html"&gt;последнем посте&lt;/a&gt;, пост, приведенный ниже уже был наполовину готов. И я подумал - а не буду я отменять выкладывание этого поста. Что лучше, что хуже пусть судят остальные ;). Вопросы, касающиеся пакетного менеджмента я, в свое время, тоже опишу.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; &lt;!--  @page { size: 21cm 29.7cm; margin: 2cm }  P { margin-bottom: 0.21cm }  A:link { color: #000080; text-decoration: underline }  A.western:link { so-language: zxx }  A.ctl:link { so-language: zxx } --&gt; &lt;/style&gt;   &lt;br /&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://tux-the-penguin.blogspot.com/2011/06/linux.html"&gt;В первой части&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&amp;nbsp;были рассмотрены основные определения, касающиеся понимания дистрибутива Linux. Теперь, собственно, я попытаюсь собрать это все воедино.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Как получается очередной дистрибутив Linux?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Первый этап - это появление человека, которого не устраивают существующие дистрибутивы. По этому поводу у него будут обоснованные аргументы. Вопрос этих аргументов достаточно тонкий и лежит обычно в области "нравится - не нравится", поэтому тут сильно углубляться не стоит. Обычно, чтобы дистрибутив не был очередной однодневкой, у этого человека должны быть определенные харизматические качества (он становится во главе нового сообщества и должен сплотить его) и организаторские способности (мир свободного ПО слабо поддается деспотическому управлению, поэтому тут применяются иные методы руководства). &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Чтобы понять, о чем я тут пишу, достаточно посмотреть на таких ярких личностей, как Патрик Фолькердинг (основатель, архитектор и пожизненный лидер Slackware), Ян Мердок (основатель Debian, хоть он в настоящее время и не имеет отношения к этому проекту, но заложенные им идеи живут по сей день) и Марк Шаттлворт (основатель Canonical и Ubuntu).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Второй этап - этот человек и сообщество вокруг него принимает решение о том, будет ли дистрибутив базироваться на существующем или будет самостоятельным. У любого подхода есть свои преимущества и недостатки. &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Дистрибутив, претендующий на независимость:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Берет  исходные коды для своих пакетов  непосредственно на сайтах разработчиков  открытого ПО.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Обладает  своей собственной системой пакетного  менеджмента (чтоб не зависеть от других).  Имеется в виду, конечно же, не совсем и  не всегда разработка с нуля. Дистрибутив  может использовать, допустим &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;rpm&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;,  со своими расширениями, но высокоуровневый  пакетный менеджер (такой как &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;yum&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;,  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;zipper&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;  или &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;apt&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;)  у независимого дистрибутива будет  свой. Можно, конечно, взять имеющийся  пакетный менеджер, но если вдруг его  бросят оригинальные разработчики, то  можно огрести кучу проблем. Пример,  который сходу приходит на ум, - это ALT  Linux со своим apt-rpm, который  заброшен  оригинальными разработчиками и  поддерживается теперь только альтовцами.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Обладает  собственным сообществом разработчиков.  Это тоже большая проблема, потому что  свободные разработчики они на то и  свободные, что заставить их сделать  что-то невозможно. Если им что-то не  понравится - они уйдут в другой проект.  И отдельная проблема - это убедить их  в том, что новый проект будет нужен  другим и к нему действительно стоит  прикладывать руки и время.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Обладает  критическим числом &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;b&gt;квалифицированных&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;  разработчиков. Я это выделил в отдельный  пункт, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial;"&gt;потому  что квалифицированные кадры - это  отдельная проблема, ведь их всегда не  хватает. Р&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;азработчики  могут просто упаковывать необходимый  софт в пакеты дистрибутива (как это  делают в &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;ArchLinux&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;),  а могут и сопровождать подконтрольные  пакеты, самостоятельно портируя для  них необходимые исправления. Первое  может делать кто угодно, а вот для  второго уже необходимо наличие  определенных знаний. Ряд системных  пакетов (компилятор, сборочная среда,  Х-сервер, ядро) все равно придется  сопровождать на уровне, отличном от  просто упаковки нужного софта, для чего  и нужны такие разработчики.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Для дистрибутива производного все обычно намного проще. Пакетный менеджмент и пакеты берутся из репозитория исходного дистрибутива (причем это легко автоматизируется с помощью скриптов). Это все поясняет, почему производных дистрибутивов значительно больше.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Например, Ubuntu берет бОльшую часть пакетов из репозитория Debian, не модифицируя их, что примерно показано &lt;a class="western" href="http://tux-the-penguin.blogspot.com/2010/09/ubuntu-debian.html"&gt;вот здесь&lt;/a&gt;. Все свои улучшения вносятся набором дополнительных пакетов, таких как ubuntu-artwork, ubuntu-branding. А Linux Mint, в свою очередь, делает то же самое (но в значительно меньшем объеме) с Ubuntu, потому что является даже не производным дистрибутивом, а надстройкой над Ubuntu.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Итак, дело за третьим этапом - разработк&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial;"&gt;а архитектуры дистрибутива (ничего общего с поддержкой архитектур процессоров тут нет). Архитектура - это изначальное проектирование проекта как такового, и это именно то, чт&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;о делает дистрибутив отличным от других. Это те идеи, цели и критерии, которые закладываются в его существование, и изменить потом что-либо достаточно трудно. Это все то, что формирует дистрибутив и отношение к нему тех, кто пользуется им. Вопрос выбора дистрибутива лежит обычно в сфере личных пристрастий, и именно поэтому на тему «Какой дистрибутив Linux лучший?» на форумах раздуваются жуткие холивары :). Тех кого не забанили на популярных форумах, за вопрос «Что лучше rpm или deb?» вполне могут попробовать испытать терпение модераторов спросив про дистрибутив :).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Ниже приведен примерный список всего того, что делает дистрибутив Linux особенным (и одновременно это набор показателей оценки его качества и серьезности задела):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;То, ради чего создается дистрибутив, - его миссия. У Debian - это создание максимально свободной универсальной операционной системы для всех. У Red Hat - примерно то же самое, только для корпоративных заказчиков. У Archlinux и Slackware - это создание дистрибутива на основе &lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://en.wikipedia.org/wiki/KISS_principle"&gt;принципа KISS&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; (максимально возможная простота), то есть отсутствие (либо минимальное наличие) каких-либо средств конфигурирования дистрибутива и ПО, в него входящего. Сюда же относится лицензионная политика для ПО дистрибутива. Есть ряд дистрибутивов, относимых к максимально свободным, – из них удален весь проприетарный софт, закрытые прошивки для устройств. Какой выбирать по данному критерию – каждый решает самостоятельно. Найти всю интересующую информацию по данному вопросу для конкретного дистрибутива нетрудно. Чтобы узнать ее, достаточно знать английский язык и  название официального сайта дистрибутива.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Анонсируемая сфера применения дистрибутива -  встроенные системы, десктопы, сервера, облачные вычисления, роутеры или «и то и другое, и можно без хлеба» (&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;). Сходу сделать самостоятельный проект, рассчитанный на универсальность, вряд ли у кого получится (а если кто обещает это сделать – или дурак, или маркетолог :) ), поэтому многие проекты идут на то, что поддерживают определенную часть репозитория, оставляя сообществу другую часть - например, как в Ubuntu, где есть репозитории main и restricted, поддерживаемые Canonical, и multiverse и universe, поддерживаемые сообществом. Примерно та же схема у Red Hat/Fedora. Fedora - фарм-дистрибутив, в который сообщество собирает пакеты, а Red Hat отбирает из их репозитория то, что подходит для Red Hat Enterprise Linux, чтобы потом поддерживать это все безобразие максимально возможный срок. Плюс во всему часть пакетов Fedora пересобирается сообществом для пользователей RHEL в рамках проекта EPEL.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Список поддерживаемых дистрибутивом архитектур. Обычно это вездесущие x86-совместимые - i386/i686 и x86_64. Сейчас в список широко поддерживаемых архитектур все чаще добавляется ARM. Самый большой список поддерживаемых архитектур – у &lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://www.debian.org/ports/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="ru-RU"&gt;Debian&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; и &lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://www.gentoo.org/proj/en/base/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Gentoo&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Объем пакетов во всех репозиториях дистрибутива. Большинство проектов позволяют  выполнять поиск пакетов через обычный веб-интерфейс без необходимости установки дистрибутива. Таковы&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://packages.gentoo.org/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Gentoo&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="https://admin.fedoraproject.org/pkgdb/acls/list/a*?_csrf_token=082043a7cc67b68dbfaab8c7c641a8ffa2dd592f"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Fedora&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://www.archlinux.org/packages/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;ArchLinux&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://software.opensuse.org/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;openSUSE&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://www.debian.org/distrib/packages"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Debian&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://packages.ubuntu.com/ru/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Ubuntu&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;и&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;даже&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://sisyphus.ru/ru/packages/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;ALT Linux&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;. Это позволяет оценить наличие в дистрибутиве нужного ПО и его версию.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Анонсируемый уровень пользователей дистрибутива. В данном случае под пользователями понимаются все, кто будет эксплуатировать этот дистрибутив, будь то десктопные пользователи или администраторы серверов. Есть дистрибутивы для очень опытных пользователей (например, новичок в мире Linux просто не сможет поставить Gentoo) и для не искушенных пользователей, как, например Ubuntu.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Конечная форма доставки пакетов пользователям - поставляется ли дистрибутив в бинарном виде или, как Gentoo, собирается на локальной машине. Тут могут быть и смешанные варианты. &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;ArchLinux&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;, например, имеет репозиторий бинарных пакетов и свою собственную систему для их сборки – &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;ABS&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;. Если пакета нет в базовых репозиториях, то можно легко найти файл спецификации для сборки пакета &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;PKGBUILD&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; в пользовательском репозитории &lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="https://aur.archlinux.org/"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;AUR&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; и собрать его самостоятельно. Та же схема и у &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Slackware. В этом дистрибутиве есть базовый репозиторий, подерживаемый на основе релизов. Все дополнительное ПО, по каким-то причинам не включенное Патриком в дистрибутив его пользователям предлагается собирать с помощью специальных скриптов SlackBuild.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Политика релизов дистрибутива - выпускаются ли релизы или дистрибутив безрелизный. Обычно анонсируется срок жизни релиза (срок поддержки, за время которого выпускаются обновления) и примерные или точные сроки выхода новых релизов. Например, у Debian релиз выходит по готовности (примерно раз в два-три года), Ubuntu выпускает релизы точно в срок: релизы с долгим временем поддержки – раз в два года, с коротким – раз в полгода.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Немаловажный фактор, отражающий качество сборки пакетов и квалификацию их майнтейнеров, – это стабильность репозитория для выпущенного релиза (и пакетов в нем). К сожалению, это познается только на собственном опыте. В некоторых дистрибутивах есть тенденции, что обновления нет-нет да и ломают что-нибудь. Не так серьезно, конечно, как в дистрибутивах со скользящими релизами, но все равно неприятно.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Для дистрибутивов, выходящих на основе релизов, огромную важность несет скорость выхода обновлений, связанных с безопасностью ПО. Это тоже показывает уровень квалификации разработчиков дистрибутива. Серьезные дистрибутивы выпускают такие обновления оперативно, несерьезные берут исправления у серьезных :).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Уровень модификации пакетов апстрим. Некоторые проекты, типа Archlinux, Gentoo, Slackware используют авторские пакеты без каких-либо серьезных модификаций. Другие проекты, типа Fedora и openSUSE обычно сильно патчат все свои пакеты. Иногда это сказывается на стабильности этих дистрибутивов, иногда нет... Ubuntu, например, также сильно модифицирует все пакеты, связанные с рабочим столом пользователя, потому что компания Canonical оплачивает труд профессиональных дизайнеров, которые и улучшают ее внешний вид. Это причина того, что в одних дистрибутивах интерфейс оконной среды сделан в стиле «разработано профессиональными программистами», а в других – любо-дорого посмотреть.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Системные компоненты, включенные в дистрибутив по умолчанию. Также важна возможность предоставления вариантов этих компонентов и легкость их смены. Кто-то предоставляет эту возможность, кто-то нет. Например, в Fedora, начиная с 15-й версии, система инициализации systemd приколочена к системе намертво, а в openSUSE по-умолчанию используется старый добрый sysvinit, а systemd предоставляется как вариант.  Еще один пример - во все дистрибутивы включается ядро Linux :). И во всех дистрибутивах перед разработчиками встают такие вопросы - нужно ли использовать какие-то дополнительные патчи для него, типа bfs, или нет? Нужно ли предоставлять пользователям несколько вариантов «вкуса» (flavours) ядра, как делают openSUSE, Ubuntu и Mandriva или стоит обойтись одним универсальным вариантом? Другие примеры – это возможность выбора различных вариантов сетевых служб, имеющих аналогичный функционал (например, sendmail/postfix), Java-сред по умолчанию, вариантов рабочего стола, офисного пакета (Openoffice.org или Libreoffice), оконной среды - &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;KDE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;GNOME&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;XFCE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Openbox&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;WindowMaker&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; и т.п.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Принципы построения сообщества вокруг дистрибутива. Обычно это вопросы иерархии тех, кто дистрибутив разрабатывает: кто будет принимать технические решения, кто будет обладать правом арбитра при решении споров и правом вето, как будут приниматься пожелания. Не менее важно - как построена обратная связь с пользователями дистрибутива - только через систему отслеживания ошибок или нечто подобное OpenFATE в openSUSE, brainstorm в Ubuntu и GLEP в Gentoo. Важны вопросы приема в проект новых участников, условия этого вступления. В нормальных и серьезных проектах такие вещи определяются политиками и руководящими документами. Легкость нахождения этих документов и их полнота - отличный показатель серьезности проекта.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Доступность документации для конкретного дистрибутива. Все серьезные проекты имеют не менее серьезные wiki-страницы. По уровню wiki и ее проработанности лидирует, на мой взгляд, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="https://wiki.archlinux.org/index.php/Main_Page"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="ru-RU"&gt;wiki.archlinux.org&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;, неплохие страницы документации у Gentoo и Ubuntu. Для администраторов Red Hat кладезь информации - сайт docs.redhat.com.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Еще один показатель качества дистрибутива - это наличие на сайте с документацией правил сборки пакетов для него с &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;b&gt;обязательными требованиями&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; по качеству их сборки. У дистрибутивов, относящих себя к серьезным проектам, всегда есть в свободном доступе скрипты для выполнения такой проверки (deblint для Debian/Ubuntu, rpmlint в Fedora/openSUSE, sisyphus_check в ALT Linux). Эти скрипты  используются в сборочной системе для контроля качества собранного пакета. Уровень серьезности таких проверок варьируется от дистрибутива к дистрибутиву, например, OBS проверяет исходный код на наличие утечек памяти, а в Debian в репозиторий не попадет пакет без man-страницы.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Тяжелый вопрос для каждого из проектов - вопрос инфраструктуры. У серьезного дистрибутива должен быть свой web-сайт, на котором размещаются основные документы, касающиеся дистрибутива, приема новых участников команды, сайт с документацией, формы для приема пожеланий по его развитию, и, конечно же, форум для общения и обмена мнениям. Помимо этого - сборочный сервер, сервер с репозиторием дистрибутива и репозиториями отдельных разработчиков. Инфраструктура никак не может быть виртуальной и требует для своей работы определенного количества денег. Крупным проектам технику обычно дарят, а список дарителей висит на веб-странице проекта в явном виде.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;По приведенным критериям каждый может оценить свой любимый дистрибутив на предмет отношения его разработчиков к пользователям. Конечно же, этот набор критериев не полный, но определенные выводы сделать позволит.&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Возможно ли на основе данной информации сделать какой-то выбор? Не знаю, если честно. Вопрос выбора дистрибутива – это как вопрос выбора автомобиля (если опустить финансовую сторону дела): человек может долго обсуждать технические аспекты вопроса, а потом выберет себе тот, где пепельница на удобном месте :).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Выбор дистрибутива можно делать примерно так:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Допустим, нам нужен дистрибутив с красивым десктопом из коробки, обладающий хорошей стабильностью и огромным количеством софта. Скорее всего, это будет &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Ubuntu&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;LTS&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;.Нужен дистрибутив под базу данных &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Oracle&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;. Тут выбор маленький, и с вероятностью 95% ими будут &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Red&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Hat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Enterprise&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Linux&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; или &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;SUSE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Нужен дистрибутив под &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;LAMP-&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;сервер – хороший выбор тут &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Debian&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; или &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Ubuntu&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Нужен дистрибутив под какой-нибудь маршрутизатор – скорее всего, это будет опять &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Debian&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; из-за огромного количества поддерживаемых архитектур.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Если вы опытный пользователь, любите экспериментировать с системой, ставить несколько версий одного ПО «на потестить», цените огромную гибкость системы, любите, чтоб все было по-вашему и готовы платить за это своим временем, – однозначный выбор &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Gentoo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm; orphans: 2; widows: 2;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Естественно, что это все приблизительно и приведено для примерных схем выбора, а не для очередного холивара :). Приведенная статья не может охватить все дистрибутивы &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;span lang="en-US"&gt;Linux&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt; и сразу рассказать про них все (в ней тогда будет «многабукав» и читать ее мало кто рискнет :) ). Но если у меня получилось дать некую базу для дальнейшего гугления интересующей информации по сайтам конкретных проектов, думаю, что я достиг поставленной цели.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-8061610099445632082?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/8061610099445632082/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/07/linux-ii.html#comment-form' title='Комментарии: 17'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/8061610099445632082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/8061610099445632082'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/07/linux-ii.html' title='Дистрибутивы Linux. Часть II'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-6323111797609977627</id><published>2011-07-04T10:00:00.001+04:00</published><updated>2011-07-04T10:00:09.377+04:00</updated><title type='text'>Прощай, Учебный Центр!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Пришло время сказать "прощай" тому месту, где я провел почти три года. За это время я значительно вырос и как преподаватель, и как Linux-специалист, но все хорошее имеет тенденцию рано или поздно заканчиваться... И тогда приходит время искать новые горизонты.&lt;br /&gt;&lt;br /&gt;А тому что ушло - самое время сказать два слова: Прощай и Спасибо за все!&lt;br /&gt;&lt;br /&gt;Что касается данного блога - бросать я его не намерен. Буду его вести, по-прежнему, в меру своих сил. И постараюсь не бросать его больше на такой большой срок, как последние полгода :).&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-6323111797609977627?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/6323111797609977627/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/07/blog-post.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/6323111797609977627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/6323111797609977627'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/07/blog-post.html' title='Прощай, Учебный Центр!'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-4323723314990610157</id><published>2011-06-30T09:00:00.005+04:00</published><updated>2011-07-09T13:45:19.986+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='пакетный менеджмент'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='debian/ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='novell'/><category scheme='http://www.blogger.com/atom/ns#' term='redhat/fedora'/><title type='text'>Из чего состоят дистрибутивы Linux. Часть I</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;style type="text/css"&gt; &lt;!--  @page { size: 21cm 29.7cm; margin: 2cm }  P { margin-bottom: 0.21cm } --&gt; &lt;/style&gt;   &lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;&lt;i&gt;Дистрибутивов Linux огромное количество. Откуда они берутся, как получаются и почему именно такие — этому и посвящена статья. Статья адресована прежде всего новичкам в мире Linux, поскольку большинство из тех, кто начинал им пользоваться раньше появления Ubuntu, обычно знают все, что приведено ниже.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Представьте себе огромное количество разного ПО от маленьких (но важных) проектов по отдельным библиотекам до огромных типа KDE, GNOME, Libre- и OpenOffice, ядра Linux. Все эти отдельные проекты развиваются каждый сам по себе, иногда с оглядкой на остальные, иногда нет. Конечно, каждый может собрать это все ПО вместе и объявить дистрибутивом Linux, но в случае серьезных дистрибутивов (я к ним отношу те, что занимают первые 10 мест в рейтинге &lt;a href="http://distrowatch.com/"&gt;Distrowatch&lt;/a&gt;) все обычно гораздо сложнее.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Немного о терминах. &lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;b&gt;Разработчиками дистрибутива&lt;/b&gt; (или майнтейнерами) обычно называют тех, кто берет какое-то ПО и упаковывает его в пакет для конкретного дистрибутива (пакетная система, для чего она нужна и что делает - отдельный большой вопрос). &lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Место, откуда это ПО берется - называется &lt;b&gt;апстрим&lt;/b&gt; (от английского upstream). Адекватного перевода на русский язык я пока не нашел, да и слово апстрим стало уже устоявшимся термином. Для серьезных дистрибутивов апстримом являются конкретные проекты свободного (и не очень) ПО. Для производных дистрибутивов - другие дистрибутивы Linux. Например, для CentOS - апстримом является Red Hat Enterpise Linux, для Ubuntu - Debian, для Debian - оригинальные разработчики ПО. Еще раз - апстрим это или разработчик конкретной программы, или родительский дистрибутив.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;b&gt;Пакетом&lt;/b&gt; называется отдельный атом дистрибутива (в смысле неделимости), который несет в себе конкретную программу (или набор программ), библиотеку (или набор библиотек), документацию, темы оформления или что-то еще. Короче говоря, все, что составляет дистрибутив Linux - это меньшее или большее количество пакетов. Пакет - это обычно:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;архив дерева файлов в том виде, в котором они должны лежать на диске после установки;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;набор метаданных, содержащих информацию о пакете (имя майнтейнера, описание пакета, зависимости);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;набор скриптов, облегчающих установку пакета для пользователя и/или производящих те или иные настройки.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;b&gt;Пакетная система&lt;/b&gt; - то, что помогает пользователям дистрибутива искать, ставить, обновлять пакеты и автоматически отслеживать зависимости между ними. Пакетные системы в мире Linux делятся на три больших и хорошо очерченных класса: &lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;пакетная система Debian и ее deb-пакеты.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;пакетная система rpm, придуманная в свое время Red Hat и теперь имеющая не всегда совместимые между собой пакеты разных rpm-дистрибутивов (Red Hat/Fedora, SUSE, Mandriva и т.п.). Имеется в виду, что, например, пакет для Mandriva может и встанет на SUSE (зависит от положения звезд на небе), но работать скорее всего откажется.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;все остальные пакетные системы. В качестве примера сюда можно отнести и пакеты ArchLinux, и Slackware, и отчасти Gentoo.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Важный составляющих элемент пакетной системы - &lt;b&gt;менеджер пакетов&lt;/b&gt;. Это программа, позволяющая управлять пакетами на конкретной машине. И обычно она имеет только текстовый интерфейс, но разработчики большинства дистрибутивов, как правило, поставляют графические утилиты, взаимодействующие с пакетным менеджером и таким образом значительно облегчающие жизнь тех, кто еще не познакомился с консолью Linux или не хочет с ней знакомится вовсе.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Вопрос какая пакетная система лучше, какая хуже - относится к сфере личных пристрастий и потому спорный. Желающие могут в этом убедиться, открыв на каком-нибудь Linux-форуме тему «Что лучше rpm или deb?». Если Вас сразу не забанят модераторы форума за провокацию, то флейм по этому поводу займет не один десяток страниц.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;&lt;b&gt;Зависимости&lt;/b&gt; - это следующая непонятная новичкам штука. Бывают &lt;i&gt;жесткие&lt;/i&gt; и &lt;i&gt;мягкие&lt;/i&gt;. Жесткая зависимость в общем виде - это все то, без чего содержимое пакета работать не будет. Обычно это какие-то библиотеки, обеспечивающие функционал конкретной программы. Мягкая зависимость - это то, что обеспечивает дополнительный функционал для программы. Такой тип зависимостей есть, по большому счету, только в deb-пакетах. &lt;/span&gt; &lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Следующее непонятное определение - &lt;b&gt;репозиторий пакетов&lt;/b&gt;. Это место, откуда пользователи берут ПО для своего дистрибутива. Обычно это некое сетевое (но может быть и локальным) хранилище пакета, в котором помимо собственно пакетов для дистрибутива находится набор метаданных, которые используются пакетным менеджером для управления ПО на машине пользователя. Именно благодаря этим метаданным пользователям достаточно легко найти нужные пакеты в репозитории, а пакетному менеджеру выяснить, какое ПО требует обновлений.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;По способу поддержки репозитория можно выделить три типа дистрибутивов:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Дистрибутивы со скользящим релизом (или безрелизные). На английском они обычно называются rolling release. Типичный (и достаточно популярный) тут - Archlinux. В таких дистрибутивах после обычно малого периода тестирования пакеты попадают к пользователям практически сразу после релиза конкретного пакета его разработчиком. Главное преимущество таких дистрибутивов - то, что в репозитории находится очень свежее ПО. Это имеет и обратную сторону (за все в жизни приходится платить) - в этом ПО зачастую имеются ошибки, которые с переменным успехом отлавливаются пользователями такого дистрибутива. По причине того, что большая часть проектов развивается без оглядки друг на друга, иногда встречается какая-либо несовместимость между какими-то пакетами, вызывающая неработоспособность определенной программы. Иногда (при серьезных изменениях) меняется формат конфигурационного файла программы или демона, что требует работы руками. Но те, кто используют такие дистрибутивы, обычно знают, на что идут, и достаточно квалифицированы для того, чтобы решить все возникающие проблемы. Тут из всех дистрибутивов, на мой взгляд, самый выдержанный подход у Gentoo, который представляет собой дистрибутив с rolling release-моделью, но тем не менее все пакеты попадают в его стабильную ветвь после значительного периода тестирования, что обеспечивает достаточно высокую надежность его работы.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Дистрибутивы с релизной моделью. Проблема получения стабильного дистрибутива давно уже решена и используется большинством разработчиков разных дистрибутивов Linux, таких как Debian, Ubuntu, Red Hat, SUSE и проч. У таких дистрибутивов есть обычно тестовая ветвь с rolling release-моделью, на которой обкатываются (и решаются) разные проблемы несовместимости и нестабильной работы конкретного ПО. Периодически эту ветвь замораживают, блокируя попадание туда новых пакетов. Затем в таком репозитории вычищают по максимуму все имеющиеся в нем проблемы и ошибки. Когда ошибок, по мнению разработчиков, уже достаточно малое количество, выпускается очередной релиз, на протяжении жизни которого в нем не будут уже меняться версии имеющегося ПО. Обновления такого дистрибутива включают в себя исправление оставшихся ошибок и устранение возникающих время от времени уязвимостей. Иногда ошибки устраняют и разработчики апстрима. Тогда задача майнтейнера пакета проанализировать исходный код разработчиков ПО (он же открыт) и выделить из него только те изменения, которые отвечают за исправление ошибок. Затем эти изменения накладываются на те программы и библиотеки, которые находятся в стабильном релизе. Бл&lt;span style="background-color: transparent;"&gt;агодаря этому получается, что версия ПО в стабильном дистрибутиве старая, но тем не менее в ней исправлено большинство уязвимостей, найденных к этому моменту. &lt;/span&gt;Другое дело, что длительная поддержка ПО по такой схеме - вещь трудная. Ведь чем больше проходит времени с момента релиза, тем более высокая квалификация требуется от разработчика, чтобы выделить только то, что исправляет ошибки и ни в коем случае не ломает совместимость с другими программами и библиотеками. Именно по этой причине длительную поддержку релиза могут позволить себе немногие. По сути лишь те, кто имеет большое количество квалифицированных программистов, то есть коммерческие компании Red Hat и Novell. Такие дистрибутивы прекрасно подходят для консервативной корпоративной среды, где редко происходят сильные изменения и поэтому нужна высокая стабильность работы.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"&gt;Дистрибутивы со смешанным циклом. В таких дистрибутивах стабилизируется (замораживается) только одна часть репозитория. Как правило, это все, что относится к сборочной среде, - компилятор, библиотека C, разные важные библиотеки, ядро Linux. А ПО, относящееся к десктопам (типа Firefox, OpenOffice, разные игры), обновляется регулярно (но обязательно после продолжительного тестирования).&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Для таких популярных дистрибутивов как openSUSE и Ubuntu есть выбор - либо использовать стабильную базу конкретного релиза их дистрибутива, или подключить дополнительные репозитории (репозитории OBS для SUSE и ppa для Ubuntu), получая таким образом более свежее ПО для своей системы.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Times New Roman', serif;"&gt;Вроде как все, что хотелось бы сказать по данному поводу. Если что осталось неясно, постараюсь ответить в комментариях на вопросы, &lt;u&gt;касающиеся данной статьи&lt;/u&gt;. В меру сил и наличия свободного времени постараюсь внести все необходимые изменения, если потребуется в приведенный текст статьи.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-4323723314990610157?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/4323723314990610157/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/06/linux.html#comment-form' title='Комментарии: 15'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4323723314990610157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4323723314990610157'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/06/linux.html' title='Из чего состоят дистрибутивы Linux. Часть I'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-4981350209398983899</id><published>2011-04-13T13:27:00.000+04:00</published><updated>2011-04-13T13:27:56.554+04:00</updated><title type='text'>По следам прошедшего Open Source Summit'а</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }&lt;/style&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Календарь существующих курсов позволил мне побывать на этом прекрасном мероприятии. Организация была на высоте, было много чего интересного. На всех секциях побывать не удалось, главным образом, потому что не получилось разорваться :).  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Сначала о выступлениях в торжественной части.&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;Первым выступал директор Департамента государственной политики в области информационных технологий и координации информатизации Минкомсвязи России с докладом на тему  - «Создание национальной программной платформы. Разработка приложений, основанных на использовании СПО» - &lt;b&gt;г-н Милашевский И.А&lt;/b&gt;. На доклад, естественно, он вышел с ноутбуком от Apple и презентациями, сделанными в самом популярном офисном приложении (к слову, из всех выступающих только у Марка Шаттлворта были слайды в PDF :) ). Доклад был посвящен основным вопросам, которые необходимо будет решить для создания национальной операционной системы. В частности:&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;создание на базе организуемых дата-центров эталонной сборочной среды, в которой можно будет гарантировать целостность и воспроизводимость сборки конкретных приложений;&lt;/li&gt;&lt;li&gt;организация публичного репозитория, где будут находиться собираемые приложения.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Было также много других вопросов, но они ничем не отличались от публичных заявлений других чиновников по поводу Национальной платформы, так что я сразу перейду к самому интересному - выступлению &lt;b&gt;Марка Шаттлворта&lt;/b&gt;.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Марк начал с обращения к присутствующим по-русски, сказав, что немного знает русский язык, но поскольку он его знает не в том объеме, чтобы читать на нем доклад - он продолжит по-английски. Само выступление касалось множества политических и организационных вопросов (я предвижу, что его за это будут «пинать» многие линуксоиды, которые вечно всем недовольны). Доклад начался с того, что на сегодняшний день Linux и все, что его окружает (движение Open Source), становится мейнстримом всей IT-сферы. Все технологические новинки появляются  в первую очередь здесь - это виртуализация, новомодные облачные вычисления. Linux неумолимо пробирается на телефоны, встраиваемые устройства, начинает предустанавливаться на новые ноутбуки.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;В то же время, если мы хотим ориентироваться на что-то большее, чем серверные решения, - в этом случае необходимо предложить решения «из коробки». Огромный недостаток Linux в том, что пока таких решений мало. И Canonical пытается решить именно эти вопросы. Что нужно большинству людей - чтобы после установки система просто работала, находила все необходимые драйвера для подключаемых устройств (естественно, что для этого необходимо, чтоб они были :) ). В частности, Марк упомянул, что, например, при внедрении Linux в российские школы многие столкнулись с тем, что не со всеми версиями дистрибутива работал драйвер «электронной доски». И именно проблема с недостатком драйверов пока является самой большой и самой «неудобной» для массового внедрения  Linux.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующее перспективное направление - снижение «фрагментации» Linux-сообщества путем создания глобальной экосистемы. Ни для кого не секрет, что сейчас сообщество сильно разделено. Многие работают над одним и тем же одновременно, распыляя усилия и плодя множество однотипных проектов. Ведь OpenSource, как движение, и создавался для того, чтобы можно было по максимуму использовать уже существующие решения, доводя их до ума, а не изобретать каждый раз велосипед заново. Не поддается сомнению и то, что помимо глобального сообщества, работающего над мейнстримом, необходимо учитывать локальные проблемы. Тут Марк опять упомянул российские проблемы с «электронной доской».  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующая проблема - это то, что существующая инфраструктура компаний-продавцов «железа» и программного обеспечения построена вокруг проприетарного ПО. Это одно из самых перспективных направлений. И акцент тут нужно делать не на бесплатности Linux, а на предложении пользователям тех возможностей, которых нет у «конкурирующих» систем: гибкость, простота использования, открытые стандарты и т.п.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;И, конечно же, самое главное - это не повторить ситуацию 80-х годов и путь Microsoft. Сейчас в мире многое меняется и нельзя замыкаться в рамках каких-то границ (будь-то государственные границы или социальные), интересов. Необходимо сохранить то, чем всегда отличалось движение программ с открытым исходным кодом. - глобальная совместная работа над многими проектами. Соответственно, нужно менять и бизнес-подходы, позволяющие получать прибыль на свободном ПО, не повторяя историю успеха всеми «любимой» корпорации. &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующим выступлением было «Информационно безопасные технологии на основе свободно распространяемых исходных кодов». Доклад читал первый заместитель начальника Центра ФСБ России &lt;b&gt;Баранов А.П&lt;/b&gt;. Его выступление было, скажем так, очень спорным. В основном оно касалось вопросов государственной сертификации операционных систем ФСТЭК и создания на их основе решений для обеспечения безопасности государственной информации. По затратам на сертификацию и последующую доработку ОС под государственные требования нет никаких различий между Windows, Linux и BSD. Более того, докладчик посчитал, что в Linux серьезные проблемы с драйверами устройств, даже P'n'P там работает не так хорошо, как в Windows. Он объяснил это так - все производители «железа» работают прежде всего с Microsoft, поэтому и драйвера для Windows появляются раньше. Еще одна проблема Linux - недостаток прикладного ПО. А все потому, что Microsoft лучше стимулирует и направляет разработчиков своего ПО, поэтому оно у них и лучше и качественнее. Поэтому по прикладному ПО Linux так и будет отставать, потому что курировать разработку некому. &lt;span style="background: none repeat scroll 0% 0% transparent;"&gt;В свете программы создания национальной платформы необходимо создать государственную структуру, которая будет курировать разработку такого прикладного ПО, необходимого госкомпаниям.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующая проблема для массового внедрения Linux - во многих государственных компаниях есть свое ПО, которое они не хотят переписывать под другую систему.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;По возможностям, связанным с обеспечением безопасности данных, г-н Баранов считает, что система, «созданная из кусочков», гораздо менее безопасна, чем целостная и монолитная система от одного производителя. Для госцелей и для Windows и для Linux была создана своя система мандатного доступа. Для Windows она существует в виде отдельного диска, доустанавливающего все после установки базовой системы. Сама компания Microsoft не возражает против такой модификации своей операционной системы (&lt;i&gt;еще бы она возражала - прим. автора.&lt;/i&gt;). Докладчик также отметил, что вследствие открытой модели разработки программисты под Linux и BSD-системы менее квалифицированы, чем их коллеги, пишущие программы под сами знаете что. Именно поэтому, затраты на создание мандатной системы доступа для Linux были гораздо больше, чем под Windows.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующий доклад читал директор ИПИ РАН &lt;b&gt;Соколов И.А. &lt;/b&gt;&lt;span style="font-weight: normal;"&gt;на тему&lt;/span&gt;&lt;b&gt; &lt;/b&gt;«ТП НПП в контексте общих задач разработки ПО в России». Свое выступление он начал со слов, что несогласен со многими положениями предыдущего докладчика, но формат встречи не позволяет дискутировать и если кто хочет поучаствовать в дискуссии - то следует это сделать в специальное время в отдельной секции. Основные тезисы его выступления:&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Многие организации хотят участвовать в разработке национальной ОС, поэтому необходимо с самого начала решить проблему координации усилий, для чего необходимо создать регулирующий госорган.&lt;/li&gt;&lt;li&gt;Программирование, как таковое, давно стало отдельной отраслью научного знания.&lt;/li&gt;&lt;li&gt;Производительность труда программистов выросла в несколько раз, благодаря новым языкам программирования, множеству существующих алгоритмов и повторному использованию кода.&lt;/li&gt;&lt;li&gt;Разработка ПО глобализуется, потому что компьютер и программы становятся неотъемлемой частью нашей жизни и потребность в ПО растет.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Последним докладом, на котором я присутствовал, было выступление г-на &lt;b&gt;Петренко А.К.&lt;/b&gt;, заведующего отделом технологий программирования ИСП РАН на тему «Свободное программное обеспечение, открытые технологии и открытые стандарты». Начал он с того, что из себя представляет свобода ПО в понимании Free Software Foundation и положений GPL. Я не буду это тут писать, потому что, думаю, многие с этим знакомы. Главным преимуществом свободного ПО докладчик считает возможность изучать код, учиться и учить других, зарабатывать на распространении и экономить на лицензиях, строить международные партнерства.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;При создании национальной ОС необходимо разработать адекватную систему оценки качества создаваемого ПО - по результату, а не по статусу компании-разработчика. В качестве основного критерия результативности предлагается принять количество патчей, принятых международным сообществом.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Основные риски свободного ПО (по мнению заказчиков) - его низкое качество и технологическое отставание, что не является истиной. На сегодняшний день многие крупные компании, включая Microsoft, курируют проект, связанные с ПО с открытым исходным кодом.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Планируемые результаты, которые планируется получить от использования национальной ОС:&lt;/div&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Экономия государственных затрат за счет повторного использования программного обеспечения;&lt;/li&gt;&lt;li&gt;Приоритетная поддержка проектов, занимающихся научными исследованиями в области разработки программного обеспечения. Для этого необходимо разработать новую систему оценки конкурентных заявок по IT-проектам. По мнению докладчика, тут самым главным должна быть открытость полученных результатов, что позволит оценивать результат честно.&lt;/li&gt;&lt;li&gt;Государственная поддержка центров компетенции по ключевым направлениям.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;После перерыва я переместился в секцию, где состоялась встреча Марка Шаттлворта с участниками сообщества Ubuntu. Ему задавали множество вопросов. Попробую тут привести некоторые из них по памяти:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Вопрос:&lt;/b&gt; Зачем нужна разработка Unity, если есть GNOME/KDE/что-то еще? Какова на сегодняшний день стабильность Unity?&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Ответ: &lt;/b&gt;Пользователям системы нужно простое и удобное решение «из коробки». Имеющиеся среды не удовлетворяют таким требованиям. Например, если есть прекрасное решение, которое чтобы довести до ума нужно долго настраивать - оно не будет никому нужно. На настоящий момент Unity находится в активной разработке, именно поэтому разработчики Ubuntu до сих пор не решили - стоит ли включать ее в грядущий релиз. При разработке активно используется помощь простых людей «с улицы», которых сажают за систему и просят выполнить какую-то простейшую операцию, например, подключить веб-камеру, сделать с ее помощью снимки и выложить их на Facebook. Если человеку это удалось, значит интерфейс прост и удобен.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;В качестве бета-тестеров Unity и Ubuntu участвуют и родители Марка. Он привел такой пример, что у его родителей на протяжении 6 лет стояла Ubuntu и когда он купил им новый ноутбук с Windows 7 - они сказали ему: «Убери эту неудобную гадость и поставь нам Ubuntu».&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;В: &lt;/b&gt;Что думает Марк Шаттлворт о конкуренции с Google Chrome OS? Какие будут его действия, если победит Google?&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;О:&lt;/b&gt; Конкуренция идет на пользу конечным пользователям и ее Марк не боится. Пусть пользователи выберут то, что считают нужным. Но лично для него хранить свои приватные данные где-то в облаке Google - странно. Он не может доверять кому-либо свои данные, в обмен на честные глаза. Но это лично его мнение и пусть каждый решает за себя сам.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;В: &lt;/b&gt;Планирует ли компания Canonical выпускать планшеты и наладонники с Ubuntu на борту?&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;О: &lt;/b&gt;Да, если будет такой спрос.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Молодые люди с форума Ubuntu снимали все на камеру и потом обещали выложить видео, так что думаю, желающие смогут найти позже в сети эти записи.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Затем я переместился в секцию, где директор по продажам компании Canonical Пол Хольт и инженер по политике продаж Борис Девоуг делали доклад о корпоративных решениях для закачиков. Небольшой нестыковкой было то, что слайды были переведены на русский язык, поэтому докладчики выступали «вслепую» :). Но свой текст они знали на пять баллов, поэтому не ошиблись ни разу.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;С саммита мне пришлось уйти раньше, о чем я сильно сожалею, но надеюсь, что подобное событие произойдет и на будущий год :).  &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-4981350209398983899?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/4981350209398983899/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/04/open-source-summit.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4981350209398983899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4981350209398983899'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2011/04/open-source-summit.html' title='По следам прошедшего Open Source Summit&apos;а'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-5805549588336038134</id><published>2010-12-29T20:21:00.000+03:00</published><updated>2010-12-29T20:21:03.625+03:00</updated><title type='text'>С наступающим!</title><content type='html'>Поздравляю всех читателей этого дневника с наступающим Новым Годом! Желаю в наступающем году безглючного железа, безпроблемных пользователей! Также хочется пожелать успехов и в остальных сторонах жизни - материальной, личной, карьерной.&lt;br /&gt;&lt;br /&gt;Надеюсь, что будущий год будет не хуже прошедшего по насыщенности событиями Linux-тематики. У нашего учебного центра тоже есть много интересных задумок, которые планируется реализовать. Но об этом я пока писать не могу :).&lt;br /&gt;&lt;br /&gt;Еще раз успехов! И помните, пингвин птица полярная :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zHyeYQyYSXw/TRtt5mnF_TI/AAAAAAAAAPY/ETrQGfzlZm4/s1600/pingvin_polar.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_zHyeYQyYSXw/TRtt5mnF_TI/AAAAAAAAAPY/ETrQGfzlZm4/s1600/pingvin_polar.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-5805549588336038134?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/5805549588336038134/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/12/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/5805549588336038134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/5805549588336038134'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/12/blog-post.html' title='С наступающим!'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zHyeYQyYSXw/TRtt5mnF_TI/AAAAAAAAAPY/ETrQGfzlZm4/s72-c/pingvin_polar.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-3041722970374281594</id><published>2010-12-09T13:53:00.003+03:00</published><updated>2011-01-07T19:15:59.286+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='техническая документация'/><category scheme='http://www.blogger.com/atom/ns#' term='lvm'/><category scheme='http://www.blogger.com/atom/ns#' term='обучение'/><title type='text'>Введение в использование LVM</title><content type='html'>&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;LVM&lt;/b&gt; - (Logical Volume Manager - менеджер логических дисков) средство гибкого управления дисковым пространством. Позволяет динамически менять размер логических разделов на лету, создавать снимки (снапшоты) и т.д.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Дисклеймер/отмазка&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span style="color: red;"&gt;LVM это &lt;b&gt;очень(!!!)&lt;/b&gt; мощный инструмент, который требует аккуратного с собой обращения. Любая самодеятельность с ним может обернуться потерей всей(!!!) информации на диске. Поэтому прежде, чем использовать LVM на рабочих машинах (и уж тем более на «боевых» серверах), следует потренироваться на кошках. Лучше всего это делать на виртуальных машинах. Начинать использовать LVM следует &lt;b&gt;только&lt;/b&gt; (и только!!!) тогда, как почувствуете уверенность и понимание принципов его работы.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Зачем нужен LVM&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Установка системы прямо на разделы диска зачастую приводит к следующей проблеме.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Нужно каким-то образом «правильно» разбить жесткий диск. Слово «правильно» стоит в кавычках, потому что «правильного» разбиения диска для всех возможных ситуаций &lt;span lang="ru-RU"&gt;и применений &lt;/span&gt;не существует. В сети есть много советов по данному поводу, но они не учитывают потребностей конкретного пользователя (в случае настольной системы) или конкретного администратора (в случае сервера). Обычно рекомендуют разделы /home, /var, /usr, какие-то еще выносить на отдельные разделы диска. Но если разбивающий ошибется в размерах этих разделов, возникает очень не хорошая ситуация - на одних разделах место подходит к концу, в то время как на остальных места еще много. Приехали! Дисковое пространство нужно переразмечать. Для этого есть много способов:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;1. Тотальный backup, затем переустановка системы с переразбиением диска.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;2. Переразметка с помощью parted с риском потерять данные.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;3. Изначальная установка системы на LVM, который позволяет изменять размеры своих разделов прямо на работающей системе.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Терминология&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;LVM предусматривает три логических уровня работы с дисковым пространством:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;1. Самый нижний - &lt;i&gt;физические тома&lt;/i&gt; (physical volumes). Это собственно физические диски. Это могут быть диски целиком (/dev/sda, /dev/sdb и т.д.) или отдельные разделы (/dev/sda1, /dev/sdb5 и т.п.).&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;2. &lt;i&gt;Группы томов&lt;/i&gt; - volume groups. В группы томов объединяются физические тома. Таким образом группы томов представляют собой пул дискового пространства, необходимый для следующего уровня. Группы томов могут иметь человеческие названия, говорящие администратору системы об их предназначении: system, sales, database  и т.д.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;3. &lt;i&gt;Логические тома&lt;/i&gt; (logical volumes) - это аналог разделов физического диска и то, ради чего вообще существуют диски - именно на них хранятся данные. Пользователи (и процессы) системы работают только с логическими томами. Таким образом LVM создает для них всех слой абстракции, скрывая, с какими именно физическими дисками они в данный момент работают. Администратор системы  может добавлять физические тома в LVM и удалять их из него (см. ниже), но процессы (и пользователи) об этом знать не будут.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Примечание по названиям утилит &lt;/b&gt;&lt;span lang="en-US"&gt;&lt;b&gt;LVM&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следует запомнить сразу - названия утилит для работы с разными уровнями &lt;span lang="en-US"&gt;LVM &lt;/span&gt;&lt;span lang="ru-RU"&gt;совпадают. Различие только в первых двух буквах этого названия. Это:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;pv* - &lt;span lang="ru-RU"&gt;для  работы с физическими томами;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;vg* &lt;span lang="ru-RU"&gt;-  для работы с группами томов;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;lv* &lt;span lang="ru-RU"&gt;-  для работы с логическими томами.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Не стоит также пытаться зазубрить названия этих утилит и их ключи. Действовать стоит так:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;1. Думаете, с каким уровнем &lt;span lang="en-US"&gt;LVM &lt;/span&gt;&lt;span lang="ru-RU"&gt;надо работать - физические тома, группы томов или логические тома.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;2. Выбираете в зависимости от этого первые буквы названия: &lt;/span&gt;&lt;span lang="en-US"&gt;pv, vg &lt;/span&gt;&lt;span lang="ru-RU"&gt;или &lt;/span&gt;&lt;span lang="en-US"&gt;lv, &lt;/span&gt;&lt;span lang="ru-RU"&gt;соответственно.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;3. Набираете их в консоли и нажимаете два раза &lt;/span&gt;&lt;span lang="en-US"&gt;TAB. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Срабатывает автодополнение, которое показывает команды, начинающиеся с указанных букв.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;4. Выбираете команду по ее названию, например, &lt;/span&gt;&lt;span lang="en-US"&gt;pvcreate &lt;/span&gt;&lt;span lang="ru-RU"&gt;для создания физических томов. Если вы ее запустите с ключом &lt;/span&gt;&lt;span lang="en-US"&gt;--help , &lt;/span&gt;&lt;span lang="ru-RU"&gt;она вам покажет все возможные ключи. За более подробной информацией стоит залезть в &lt;/span&gt;&lt;span lang="en-US"&gt;man &lt;/span&gt;&lt;span lang="ru-RU"&gt;конкретной команды.&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;По мере набора опыта работы с &lt;/span&gt;&lt;span lang="en-US"&gt;LVM &lt;/span&gt;&lt;span lang="ru-RU"&gt;нужда в такой последовательности отпадет. Необходимые команды и их опции запомнятся сами собой.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Создание&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Я буду рассматривать создание LVM на уже установленной системе. Знание терминологии и принципов работы с ним в дальнейшем позволит найти в инсталляторе нужные пункты для создания логических томов на этапе установки системы.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Первый этап - это создание правильных разделов. Это такие разделы, которые LVM признает за свои и сможет при загрузке их корректно инициализировать. «Родной» тип разделов для LVM - 8E Linux LVM. Все, что будет дальше, не будет работать, если при создании разделов не указать приведенный корректный тип. &lt;span lang="ru-RU"&gt;Итак, создаем несколько разделов типа &lt;/span&gt;&lt;span lang="en-US"&gt;8E &lt;/span&gt;&lt;span lang="ru-RU"&gt;с помощью любимого средства разбиения диска:&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# fdisk -l /dev/sdb&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Disk /dev/sdb: 2147 MB, 2147483648 bytes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;255 heads, 63 sectors/track, 261 cylinders&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Units = cylinders of 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Sector size (logical/physical): 512 bytes / 512 bytes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Disk identifier: 0x00000000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Device Boot      Start         End      Blocks   Id  System&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/sdb1               1          61      489951   8e  Linux LVM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/sdb2              62         261     1606500    5  Extended&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/sdb5              62         122      489951   8e  Linux LVM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/sdb6             123         261     1116486   8e  Linux LVM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Еще раз. Пример я привожу с виртуальной машины, чего и вам советую на этапе обучения.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Я создал три раздела для работы с &lt;span lang="en-US"&gt;LVM. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Сколько их создавать и какого размера решает сам администратор. Например, никто не мешает отдать целиком весь диск (/&lt;/span&gt;&lt;span lang="en-US"&gt;dev/sdb &lt;/span&gt;&lt;span lang="ru-RU"&gt;в данном случае) под власть &lt;/span&gt;&lt;span lang="en-US"&gt;LVM. &lt;/span&gt;&lt;span lang="ru-RU"&gt;В том, как это сейчас сделал я, смысла искать не стоит :). Мой пример преследует только цели демонстрации работы с &lt;/span&gt;&lt;span lang="en-US"&gt;LVM.&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;b&gt;ВНИМАНИЕ! Форматировать созданные разделы НЕ надо!&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующее, что мы должны сделать - это инициализировать созданные разделы как физические тома:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvcreate /dev/sdb1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Physical volume "/dev/sdb1" successfully created&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvcreate /dev/sdb5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Physical volume "/dev/sdb5" successfully created&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvcreate /dev/sdb6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Physical volume "/dev/sdb6" successfully created&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Если нет сообщений об ошибках, можно смело шагать вперед.  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующий шаг - это создание группы томов. Делается это командой &lt;span lang="en-US"&gt;vgcreate (&lt;/span&gt;&lt;span lang="ru-RU"&gt;еще раз подчеркиваю похожесть названия утилит для работы с &lt;/span&gt;&lt;span lang="en-US"&gt;LVM&lt;/span&gt;&lt;span lang="ru-RU"&gt;). Самое трудное тут - это придумать имя группы томов, которое будет отражать ее назначение:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# vgcreate fileserver /dev/sdb1 /dev/sdb5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Volume group "fileserver" successfully created&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;Аргументы &lt;/span&gt;&lt;span lang="en-US"&gt;vgcreate &lt;/span&gt;&lt;span lang="ru-RU"&gt;это название группы томов (&lt;/span&gt;&lt;span lang="en-US"&gt;fileserver) &lt;/span&gt;&lt;span lang="ru-RU"&gt;и те физические тома, которые мы включаем в эту группу. В данном случае я включил в нее только&lt;/span&gt;&lt;span lang="ru-RU"&gt; &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="ru-RU"&gt;/dev/sdb1 /dev/sdb5, что нам и покажет утилита &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span lang="en-US"&gt;pvscan:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvscan &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb1   VG fileserver      lvm2 [476.00 MiB / 476.00 MiB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb5   VG fileserver      lvm2 [476.00 MiB / 476.00 MiB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb6                      lvm2 [1.06 GiB]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Times New Roman,serif;"&gt;&lt;span style="font-size: small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Здесь мы видим созданные нами физические тома, их размер и к какой группе томов они относятся. Последний физический том (/&lt;span lang="en-US"&gt;dev/sdb6&lt;/span&gt;) у нас пока сам по себе. Для обнаружения наличия групп томов &lt;span lang="en-US"&gt;LVM &lt;/span&gt;(это нужно, например, если вы загрузились с &lt;span lang="en-US"&gt;Live CD, &lt;/span&gt;который не активирует &lt;span lang="en-US"&gt;LVM &lt;/span&gt;по умолчанию) есть аналогичная команда - &lt;span lang="en-US"&gt;vgscan:&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# vgscan &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Reading all physical volumes.  This may take a while...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Found volume group "fileserver" using metadata type lvm2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Активировать неработающий &lt;span lang="en-US"&gt;LVM &lt;/span&gt;можно командой &lt;span lang="en-US"&gt;vgchange -ay:&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# vgchange -ay&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;0 logical volume(s) in volume group "fileserver" now active&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Это все для того же примера с &lt;span lang="en-US"&gt;LiveCD. &lt;/span&gt;Сейчас это делать было не обязательно. Вывод приведенной команды показывает наличие отсутствия логических томов, значит сейчас самое время создать их :). Для создания логических томов испольузется команда &lt;span lang="en-US"&gt;lvcreate:&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# lvcreate -L 300M -n samba fileserver&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Logical volume "samba" created&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Вуаля! Вы только что создали свой первый логический том. Синтаксис команды прост до безобразия:&lt;/div&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;ключ  -&lt;span lang="en-US"&gt;L &lt;/span&gt;указывает размер  создаваемого тома. Поддерживаются  суффиксы &lt;span lang="en-US"&gt;K (&lt;/span&gt;килобайты&lt;span lang="en-US"&gt;),  M (&lt;/span&gt;мегабайты),&lt;span lang="en-US"&gt; G &lt;/span&gt;(гигабайты).&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;ключ  -&lt;/span&gt;n  &lt;span lang="ru-RU"&gt;указывает название  для тома (&lt;/span&gt;samba &lt;span lang="ru-RU"&gt;в данном  случае)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;последний  аргумент &lt;span lang="en-US"&gt;fileserver &lt;/span&gt;указывает  группу томов, в которой мы создаем  логический том (теоретически, групп  может быть несколько).&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Что важно - логические тома именуются системой следующим образом:  &lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;/&lt;span lang="en-US"&gt;dev/&lt;/span&gt;имя_группы_томов/имя_тома&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;В нашем примере это:&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# lvscan &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;ACTIVE            '/dev/fileserver/samba' [300.00 MiB] inherit&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Одно только это - хороший аргумент для использования &lt;span lang="en-US"&gt;LVM. &lt;/span&gt;Ведь не надо помнить что находится на /&lt;span lang="en-US"&gt;dev/sda3, /dev/sdb5  &lt;/span&gt;и т.&amp;nbsp;п. Имена логических томов имеют вполне человеческое название (если их правильно назвать).&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Еще несколько замечаний.&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;В группе томов можно создать столько томов, сколько будет нужно. Но не больше, чем есть дискового пространства в этой группе томов. Посмотреть, сколько его у нас есть (и самое главное сколько его еще осталось) можно командой &lt;span lang="en-US"&gt;vgdisplay:&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# vgdisplay fileserver&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;--- Volume group ---&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Name               fileserver&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;System ID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Format                lvm2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Metadata Areas        2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Metadata Sequence No  2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Access             read/write&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Status             resizable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;MAX LV                0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Cur LV                1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Open LV               0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Max PV                0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Cur PV                2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Act PV                2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Size               952.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PE Size               4.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Total PE              238&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Alloc PE / Size       75 / 300.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Free  PE / Size       163 / 652.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG UUID               SZLgLK-b9V8-RiZV-gH5i-N0pA-2ppf-axLqfO&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Сейчас для нас тут самое ценное - это VG Size  952.00 MB (общий размер дискового пространства группы томов), &lt;span style="font-weight: normal;"&gt;Alloc&amp;nbsp;PE&amp;nbsp;/&amp;nbsp;Size 75&amp;nbsp;/&amp;nbsp;300.00 MB (уже выделенное для создания логических томов дисковое пространство), Free&amp;nbsp;PE&amp;nbsp;/&amp;nbsp;Size&amp;nbsp;163 / 652.00 MB (свободное и еще не распределенное дисковое пространство - наш резерв).&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; font-weight: normal; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="en-US" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;span style="font-weight: normal;"&gt;PE &lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="font-weight: normal;"&gt;тут - это физические экстенты. Они представляют собой нечто вроде кусков дискового пространства, на которые &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;LVM &lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="font-weight: normal;"&gt;«нарезает» физические тома. Все размеры логических томов &lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;b&gt;всегда&lt;/b&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="font-weight: normal;"&gt; содержат целое число этих физических экстентов и &lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;b&gt;всегда&lt;/b&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="font-weight: normal;"&gt; кратны их размеру (как видно из приведенных цифр размер экстента - 4Мб).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Теперь созданный том можно отформатировать и примонтировать:&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# mkdir /mnt/data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# mkfs.ext4 /dev/fileserver/samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# mount /dev/fileserver/samba /mnt/data/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# df -h&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/mapper/fileserver-samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;291M   11M  266M   4% /mnt/data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;Как мы видим, наш логический том готов к использованию!&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Увеличение логических томов&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Самая мощная возможность &lt;span lang="en-US"&gt;LVM - &lt;/span&gt;&lt;span lang="ru-RU"&gt;это то, что размеры логических томов можно менять на лету. Правда, чтобы их уменьшить, «полет» придется прервать (об этом ниже), а вот увеличение размеров томов - это практически безопасная операция.&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;Предположим, что нам перестало хватать места на нашем логическом томе &lt;/span&gt;&lt;span style="font-family: Times New Roman,serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="ru-RU"&gt;/dev/fileserver/samba.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Последовательность действий такая:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;1. Сначала нужно убедиться в наличии необходимого нам дискового пространства в группе томов. Делается это командой &lt;/span&gt;&lt;span lang="en-US"&gt;vgdisplay. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Допустим, мы хотим добавить к нашему логическому тому еще 300 Мб. Как мы видим (см. вывод команды &lt;/span&gt;&lt;span lang="en-US"&gt;vgdisplay &lt;/span&gt;&lt;span lang="ru-RU"&gt;выше), у нас еще достаточно свободного места в группе.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="ru-RU"&gt;2. Увеличиваем логический том командой &lt;/span&gt;&lt;span lang="en-US"&gt;lvextend:&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# lvextend -L +200M /dev/fileserver/samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Extending logical volume samba to 500.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Logical volume samba successfully resized&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Новый размер тома (ключ -&lt;span lang="en-US"&gt;L) &lt;/span&gt;можно указывать и в относительных единицах (как в примере), и в абсолютных.&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;3. Если мы теперь посмотрим на вывод команды &lt;span lang="en-US"&gt;df -h &lt;/span&gt;мы увидим, что пока ничего не изменилось:&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# df -h&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/mapper/fileserver-samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;291M   11M  266M   4% /mnt/data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;несмотря на то, что &lt;span lang="en-US"&gt;lvscan &lt;/span&gt;показывает верный размер:&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# lvscan&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;ACTIVE            '/dev/fileserver/samba' [500.00 MB] inherit&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Это произошло потому, что мы увеличили размер логического тома, но пока «забыли» сказать об этом файловой системе, расположенной «этажом выше». Давайте же изменим размер файловой системы. Делается это командной &lt;span lang="en-US"&gt;resize2fs &lt;/span&gt;&lt;span lang="ru-RU"&gt;(для &lt;/span&gt;&lt;span lang="en-US"&gt;ext2/ext3/ext4&lt;/span&gt;&lt;span lang="ru-RU"&gt;) или &lt;/span&gt;&lt;span lang="en-US"&gt;resize_reiserfs &lt;/span&gt;&lt;span lang="ru-RU"&gt;для одноименной системы:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# resize2fs /dev/fileserver/samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;resize2fs 1.41.5 (23-Apr-2009)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Filesystem at /dev/fileserver/samba is mounted on /mnt/data; on-line resizing required&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;old desc_blocks = 2, new_desc_blocks = 2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Performing an on-line resize of /dev/fileserver/samba to 512000 (1k) blocks.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;The filesystem on /dev/fileserver/samba is now 512000 blocks long.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Теперь все правильно:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# df -h&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;...&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/mapper/fileserver-samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;485M   11M  450M   3% /mnt/data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Обратите внимание, что все показанное производилось на смонтированной файловой системе. То есть, все операции не требуют остановки серверов, приостановки работы пользователей и т.&amp;nbsp;п.  &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Уменьшение логических томов&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Уменьшение размера логического тома уже не такая тривиальная операция. Она требует специального подхода, четкой последовательности действий и размонтирования файловой системы (по крайней мере на момент написания).&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="color: red;"&gt;ВНИМАНИЕ! &lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="color: red;"&gt;Шаги 2 и 3 очень часто путают местами, что приводит к потере данных, хранящихся на логическом томе.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Делается это все так:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;1. Размонтируем файловую систему: &lt;span lang="en-US"&gt;umount /dev/fileserver/samba&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;span lang="en-US"&gt;2. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Уменьшаем размер файловой системы. Для этого сначала сделаем проверку самой файловой системы. Утилита &lt;/span&gt;&lt;span lang="en-US"&gt;resize2fs &lt;/span&gt;&lt;span lang="ru-RU"&gt;не даст изменить размер до выполнения проверки. Конечно, у нее есть ключ &lt;/span&gt;&lt;span lang="en-US"&gt;-f, &lt;/span&gt;&lt;span lang="ru-RU"&gt;который заставит ее это сделать, но лучше перестраховаться и все-таки выполнить проверку:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# fsck.ext4 -f /dev/fileserver/samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;e2fsck 1.41.5 (23-Apr-2009)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Pass 1: Checking inodes, blocks, and sizes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Pass 2: Checking directory structure&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Pass 3: Checking directory connectivity&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Pass 4: Checking reference counts&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Pass 5: Checking group summary information&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/fileserver/samba: 11/127512 files (0.0% non-contiguous), 26603/512000 blocks&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# resize2fs /dev/fileserver/samba 300M&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;resize2fs 1.41.5 (23-Apr-2009)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Resizing the filesystem on /dev/fileserver/samba to 307200 (1k) blocks.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;The filesystem on /dev/fileserver/samba is now 307200 blocks long&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;3. &lt;b&gt;Только&lt;/b&gt; после корректного выполнения двух предыдущих шагов уменьшаем размер логического тома:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# lvreduce -L 300M /dev/fileserver/samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;WARNING: Reducing active logical volume to 300.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;THIS MAY DESTROY YOUR DATA (filesystem etc.)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Do you really want to reduce samba? [y/n]: y&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Reducing logical volume samba to 300.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Logical volume samba successfully resized&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;В качестве размера тома (ключ -&lt;span lang="en-US"&gt;L&lt;/span&gt;&lt;span lang="ru-RU"&gt;), как и в случае с &lt;/span&gt;&lt;span lang="en-US"&gt;lvextend &lt;/span&gt;&lt;span lang="ru-RU"&gt;можно указывать и абсолютные и относительные единицы. Здесь мы также видим страшное предупреждение о потере данных. Несмотря на это (если вы не используете тестовые версии программ), ваши данные будут в целости и сохранности (скорее всего :) , 100% гарантии вам все равно никто не даст).&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;После этого монтируем файловую систему и смотрим что поменялось:&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# mount /dev/fileserver/samba /mnt/data/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# df -h&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/mapper/fileserver-samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;291M   11M  266M   4% /mnt/data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Итак, если вы все делаете в указанной последовательности, вашим данным скорее всего ничего не грозит. Но лучше перед уменьшением тома все-таки сделать его резервную копию. Я сам многократно уменьшал физические тома без каких-либо потерь данных, но наличие резервной копии - это наличие резервной копии :).&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Увеличение  и уменьшение группы томов&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Следующая возможность &lt;span lang="en-US"&gt;LVM &lt;/span&gt;&lt;span lang="ru-RU"&gt;- это возможность дополнять группу томов новыми физическими томами (например, если уже не хватает имеющихся) и выводить из группы не нужные больше физические тома (например, скорая поломка диска или замена оборудования). Лично я видел на форумах, что некоторые таким образом даже переносят работающую систему с одного диска на другой.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Давайте вернемся к нашему примеру. Допустим нам перестало хватать места в нашей группе томов и мы ее хотим дополнить новыми физическими томами. Делается это командой &lt;span lang="en-US"&gt;vgextend:&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# vgextend fileserver /dev/sdb6&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Volume group "fileserver" successfully extended&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# vgdisplay fileserver&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;--- Volume group ---&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Name               fileserver&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;System ID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Format                lvm2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Metadata Areas        3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Metadata Sequence No  5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Access             read/write&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Status             resizable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;MAX LV                0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Cur LV                1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Open LV               1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Max PV                0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Cur PV                3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Act PV                3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG Size               1.99 GB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PE Size               4.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Total PE              510&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Alloc PE / Size       75 / 300.00 MB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Free  PE / Size       435 / 1.70 GB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;VG UUID               SZLgLK-b9V8-RiZV-gH5i-N0pA-2ppf-axLqfO&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Как мы видим (выделено), пул дискового пространства, которым мы располагаем, увеличился. Теперь его тоже можно использовать для увеличения существующих логических томов данной группы и для создания новых.&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Следующая операция, которую тоже можно делать с &lt;span lang="en-US"&gt;LVM&lt;/span&gt; - это уменьшение группы томов. Прежде чем вывести физический том из группы - его необходимо освободить от данных. Первое, что тут следует сделать в данном случае - это убедиться, что дискового пространства, которое останется в группе, хватит для размещения этих данных. Разработчики &lt;span lang="en-US"&gt;LVM &lt;/span&gt;пока не владеют методами размещения данных в астральном пространстве, но работа над этим ведется :). Итак, посмотреть это можно командой &lt;span lang="en-US"&gt;pvscan:&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvscan&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb1   VG fileserver   lvm2 [476.00 MB / 176.00 MB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb5   VG fileserver   lvm2 [476.00 MB / 476.00 MB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb6   VG fileserver   lvm2 [1.06 GB / 1.06 GB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Здесь мы видим, что реально сейчас используется только первый физический том - /&lt;span lang="en-US"&gt;dev/sdb1. &lt;/span&gt;И еще мы тут видим один интересный аспект работы &lt;span lang="en-US"&gt;LVM: &lt;/span&gt;если какой-то логический том можно разместить на отдельном физическом целиком - &lt;span lang="en-US"&gt;LVM &lt;/span&gt;выберет именно этот путь.&lt;span lang="en-US"&gt; &lt;/span&gt; &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Кстати, под словом &lt;span lang="en-US"&gt;free &lt;/span&gt;команда &lt;span lang="en-US"&gt;pvscan &lt;/span&gt;подразумевает не свободное от данных пространство, а пространство не выделенное в логические тома.  &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Итак, для освобождения физических томов от данных и размещения их на других физических томах &lt;b&gt;той же&lt;/b&gt; группы есть команда &lt;span lang="en-US"&gt;pvmove:&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvmove /dev/sdb1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;/dev/sdb1: Moved: 100.0%&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;По умолчанию данная программа требует только одного аргумента - имени освобождаемого тома. Также ей можно указать (вторым аргументом) и имя тома, на который нужно поместить данные.  &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Вывод команды &lt;span lang="en-US"&gt;pvscan &lt;/span&gt;теперь выглядит вот так:&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvscan&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb1   VG fileserver   lvm2 [476.00 MB / 476.00 MB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb5   VG fileserver   lvm2 [476.00 MB / 476.00 MB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb6   VG fileserver   lvm2 [1.06 GB / 788.00 MB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Как мы видим, теперь наш логический том «уехал» на другой раздел диска. Причем этот том смонтирован и с ним в этот момент могут работать пользователи.&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Убрать освобожденный том из группы можно командой &lt;span lang="en-US"&gt;vgreduce:&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# vgreduce fileserver /dev/sdb1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Removed "/dev/sdb1" from volume group "fileserver"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# pvscan&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb5   VG fileserver      lvm2 [476.00 MB / 476.00 MB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb6   VG fileserver      lvm2 [1.06 GB / 788.00 MB free]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;PV /dev/sdb1                      lvm2 [478.47 MB]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Теперь мы видим, что наш физический том /&lt;span lang="en-US"&gt;dev/sdb1 «&lt;/span&gt;осиротел» и больше не принадлежит ни одной группе.&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Снапшоты/Снимки&lt;/b&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Следующая полезная возможность &lt;span lang="en-US"&gt;LVM - &lt;/span&gt;это снапшоты или снимки. Снимок - это как бы фотография дискового пространства оригинального тома. После выполнения снимка все изменения, происходящие на томе-оригинале, никак не видны на снимке. Все программы будут продолжать работать с оригинальным томом как ни в чем не бывало.  &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Сферы применения снапшотов могут быть самыми разнообразными. Например, резервное копирование базы данных. Если не использовать &lt;span lang="en-US"&gt;LVM &lt;/span&gt;- базу данных необходимо останавливать, копировать ее файлы куда-нибудь для последующего резервного копирования, а затем запускать ее заново. То есть делать это придется в нерабочее время. С &lt;span lang="en-US"&gt;LVM &lt;/span&gt;все проще - следует сделать снимок раздела с файлами базы данных и уже можно начинать делать резервную копию. Остановка базы данных не нужна.&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Самая интересная особенность &lt;span lang="en-US"&gt;LVM &lt;/span&gt;при работе со снимками - это то, что снимок может занимать меньше дискового пространства, чем оригинал. Для этого используется режим &lt;span lang="en-US"&gt;Copy-on-Write, &lt;/span&gt;при котором реальное использование дискового пространства начинается только при изменении данных на томе-оригинале. То есть при попытке модификации файла на томе-оригинале неизмененный файл сначала сохраняется на томе-снимке, а уж затем модифицируется.  &lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="color: red;"&gt;ВНИМАНИЕ! При заполнении тома-снимка до конца, происходит его уничтожение. То есть том продолжает существовать, но ни смонтировать его, ни просмотреть его содержимое (если он был смонтирован до этого) уже не получится. Эту особенность следует &lt;b&gt;обязательно&lt;/b&gt; учитывать при задании размера тома-снимка в момент его создания.&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Создание снимка делается хорошо известной командой &lt;span lang="en-US"&gt;lvcreate:&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# lvcreate -s -L 100M -n backup /dev/fileserver/samba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Logical volume "backup" created&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Ключ -&lt;span lang="en-US"&gt;s &lt;/span&gt;указывает, что создаем мы именно снапшот, &lt;span lang="en-US"&gt;-n &lt;/span&gt;указывает имя создаваемого тома, а &lt;span lang="en-US"&gt;/dev/fileserver/samba &lt;/span&gt;показывает с какого именно тома мы делаем снимок.&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Команда &lt;span lang="en-US"&gt;lvscan &lt;/span&gt;покажет нам, что мы создали снапшот:&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[root@localhost ~]# lvscan&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;ACTIVE   Original '/dev/fileserver/samba' [300.00 MB] inherit&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;ACTIVE   Snapshot '/dev/fileserver/backup' [100.00 MB] inherit&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;Теперь можете убедиться в том, что изменения, происходящие с оригиналом, никак не повлияют на снапшот.&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;b&gt;Полезные советы для работы с LVM&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;1. В руководстве по администрированию &lt;span lang="en-US"&gt;RHEL &lt;/span&gt;&lt;span lang="ru-RU"&gt;встретился один замечательный совет. При использовании &lt;/span&gt;&lt;span lang="en-US"&gt;LVM &lt;/span&gt;&lt;span lang="ru-RU"&gt;не следует стараться распределить все имеющееся дисковое пространство в логические тома. Гораздо лучше другой путь. При распределении дискового пространства следует сделать это по своему опыту, ориентируясь на минимально необходимые потребности пользователей системы или работающих сервисов. Оставшееся в группе пространство будет «горячим» резервом, который администратор сможет добавить при нехватке места. Как было видно выше - добавление дискового простраства (увеличение логических томов) операция легкая и быстрая, в отличие от уменьшения.&lt;/span&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Полезные источники (которые было бы неплохо посмотреть):&lt;/b&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;a href="http://www.blogger.com/goog_1916868980"&gt;Сайт &lt;/a&gt;&lt;span lang="en-US"&gt;&lt;a href="http://xgu.ru/wiki/LVM"&gt;Xgu.ru&lt;/a&gt;&lt;/span&gt;&lt;a href="http://xgu.ru/wiki/LVM"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span lang="en-US"&gt;&lt;a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/index.html"&gt;RHEL6 Logical_Volume_Manager_Administration&lt;/a&gt;&lt;/span&gt;&lt;a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/index.html"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-3041722970374281594?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/3041722970374281594/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/12/lvm.html#comment-form' title='Комментарии: 13'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/3041722970374281594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/3041722970374281594'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/12/lvm.html' title='Введение в использование LVM'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-4468664239086000491</id><published>2010-12-02T13:05:00.003+03:00</published><updated>2010-12-10T13:09:14.289+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='техническая документация'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='обучение'/><title type='text'>Краткое введение в программирование на Bash - часть II</title><content type='html'>&lt;div align="LEFT" style="font-family: inherit; font-style: normal; margin-bottom: 0cm;"&gt;&lt;i&gt;Выкладываю перевод второй часть статьи про введение в программирование на bash, начатое &lt;a href="http://tux-the-penguin.blogspot.com/2010/10/bash-1.html"&gt;здесь&lt;/a&gt;. &lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; font-style: normal; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; font-style: normal; margin-bottom: 0cm;"&gt;В своей второй статье Гарольд продолжает свое первоклассное введение в программирование на bash. На этот раз он объясняет, как выполнять арифметические операции в скриптах bash, как определить функции в своих программах. Завершается статья введением в такие продвинутые вещи как чтение пользовательского ввода, обработка скриптом аргументов, перехватывание сигналов и обработка кодов завершения программ.  &lt;/div&gt;&lt;div align="LEFT" style="font-style: normal; margin-bottom: 0cm;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=2986307105622275526&amp;amp;postID=4468664239086000491" name="more-2665"&gt;&lt;/a&gt; &lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="LEFT" style="font-family: inherit; font-style: normal; margin-bottom: 0cm;"&gt;Безусловно, результаты прочтения превзойдут все ожидания! После этой статьи вас уже нельзя будет назвать новичком. Ведь вы на пути к тому, чтоб называться мастером программирования на bash!  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Арифметика и bash&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt; &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;bash позволяет выполнять арифметические операции. Как вы уже видели в предыдущей статье, арифметика выполняется с помощью команды &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;expr&lt;/span&gt;&lt;/span&gt;. Однако, подобно команде &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;, этот вариант считается медленным. Причина кроется в том, что для использования &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt; и &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;expr&lt;/span&gt;&lt;/span&gt; оболочка должна предварительно запустить их. Лучше всего использовать встроенную в &lt;span lang="en-US"&gt;bash &lt;/span&gt;функцию, которая работает быстрее. Аналогично тому, что альтернативой &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;true&lt;/span&gt;&lt;/span&gt; является команда ":", альтернатива &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;expr &lt;/span&gt;&lt;/span&gt;- заключение арифметического выражения в конструкцию вида &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$((...))&lt;/span&gt;&lt;/span&gt;. Будьте внимательны, она отличается от &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$(...&lt;/span&gt;&lt;/span&gt;). Отличие тут в количестве скобок. Так давайте же испробуем это:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;x=8 # присваиваем x значение 8 &lt;br /&gt;y=4 # присваиваем y значение 4 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# результат сложения x и y сохраняем в z:  &lt;br /&gt;z=$(($x + $y)) &lt;br /&gt;echo «Сумма $x и $y равна $z» &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Как обычно, выбор используемого метода вычислений за вами. Если использование &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;expr&lt;/span&gt;&lt;/span&gt; для вас более комфортно и привычнее, чем &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$((…))&lt;/span&gt;&lt;/span&gt;, используйте его.  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;bash умеет выполнять сложение, вычитание, умножение, целочисленное деление и получение остатка от деления. Каждое арифметическое действие имеет соответствующий ему оператор:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;  &lt;table cellpadding="3" cellspacing="3"&gt;&lt;col width="128*"&gt;&lt;/col&gt;   &lt;col width="128*"&gt;&lt;/col&gt;   &lt;tbody&gt;&lt;tr bgcolor="#ebebeb"&gt;    &lt;td style="border-color: rgb(236, 236, 236) -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: double none double double; border-width: 2.6pt medium 2.6pt 2.6pt; padding: 0.08cm 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="CENTER"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Действие&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style="border: 2.6pt double rgb(236, 236, 236); padding: 0.08cm;" width="50%"&gt;&lt;div align="CENTER"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Оператор&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;    &lt;td style="border-color: -moz-use-text-color -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none none double double; border-width: medium medium 2.6pt 2.6pt; padding: 0cm 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Сложение&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style="border-color: -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none double double; border-width: medium 2.6pt 2.6pt; padding: 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="CENTER"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;+ &lt;/span&gt;     &lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;    &lt;td style="border-color: -moz-use-text-color -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none none double double; border-width: medium medium 2.6pt 2.6pt; padding: 0cm 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Вычитание     &lt;/span&gt;     &lt;/div&gt;&lt;/td&gt;    &lt;td style="border-color: -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none double double; border-width: medium 2.6pt 2.6pt; padding: 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="CENTER"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;-  &lt;/span&gt;     &lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;    &lt;td style="border-color: -moz-use-text-color -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none none double double; border-width: medium medium 2.6pt 2.6pt; padding: 0cm 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Умножение&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style="border-color: -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none double double; border-width: medium 2.6pt 2.6pt; padding: 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="CENTER"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;* &lt;/span&gt;     &lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;    &lt;td style="border-color: -moz-use-text-color -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none none double double; border-width: medium medium 2.6pt 2.6pt; padding: 0cm 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Целочисленное     деление&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style="border-color: -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none double double; border-width: medium 2.6pt 2.6pt; padding: 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="CENTER"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;/  &lt;/span&gt;     &lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt;    &lt;td style="border-color: -moz-use-text-color -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none none double double; border-width: medium medium 2.6pt 2.6pt; padding: 0cm 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Остаток     от деления&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style="border-color: -moz-use-text-color rgb(236, 236, 236) rgb(236, 236, 236); border-style: none double double; border-width: medium 2.6pt 2.6pt; padding: 0cm 0.08cm 0.08cm;" width="50%"&gt;&lt;div align="CENTER"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;% &lt;/span&gt;     &lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt; &lt;br /&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Большинство из вас должно быть знакомо с первыми четырьмя операциями. &lt;span style="font-size: x-small;"&gt;Если вы не знаете, что такое деление по модулю, то это просто число равное остатку от деления одного целого числа на другое.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; Ниже приведен пример выполнения арифметических операций в bash:&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;x=5 # устанавливаем x равным 5 &lt;br /&gt;y=3 # устанавливаем y равным 3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# сохраняем сумму x и y в переменную add&lt;br /&gt;add=$(($x + $y)) &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# сохраняем разность x и y в переменную sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;sub=$(($x – $y)) &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# умножаем x на y и сохраняем результат в переменную mul&lt;br /&gt;mul=$(($x * $y))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;# в переменную div сохраняем результат деления x на y&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;div=$(($x / $y))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# получаем остаток от деления x на y и сохраняем его в переменную mod &lt;br /&gt;mod=$(($x % $y))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# печатаем ответы&lt;br /&gt;echo «Сумма равна: $add» &lt;br /&gt;echo «Разность равна $sub» &lt;br /&gt;echo «Произведение равно $mul» &lt;br /&gt;echo «Результат деления $div» &lt;br /&gt;echo «Остаток от деления $mod»&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Код, приведенный выше, можно было бы написать с использованием &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;expr&lt;/span&gt;&lt;/span&gt;. Например, вместо &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;add=$(($x + $y))&lt;/span&gt;&lt;/span&gt; мы могли бы использовать &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;add=$(expr $x + $y)&lt;/span&gt;&lt;/span&gt; или &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;add=`expr $x + $y`&lt;/span&gt;&lt;/span&gt;.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Чтение ввод&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;&lt;b&gt;а&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;&lt;b&gt; пользователя&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;А теперь - самое интересное. Мы напишем свой скрипт так, что он будет взаимодействовать с пользователем, а пользователь с ним. Команда для получения данных от пользователя - &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;read&lt;/span&gt;&lt;/span&gt;. Это встроенная в bash команда, сохраняющая ввод пользователя в указанной переменной: &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;# спросить у пользователя его имя и поздороваться с ним  &lt;br /&gt;echo -n “Введите свое имя: ” &lt;br /&gt;read user_name  &lt;br /&gt;echo “Привет $user_name!”&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Переменная здесь - это user_name. Конечно, мы могли бы назвать ее как угодно. read прервет выполнение скрипта и будет ждать, пока пользователь введет что-нибудь и нажмет клавишу ENTER. Если клавиша ENTER была нажата без ввода чего-либо, read запустит следующую строку кода. Попробуйте это сделать. Ниже приведен тот же пример, только на этот раз мы  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;проверяем, вводит ли пользователь что-либо:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;# спрашиваем имя пользователя и выводим приветствие &lt;br /&gt;echo -n «Введите имя: » &lt;br /&gt;read user_name &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# проверка ввода пользователя &lt;br /&gt;if [ -z  «$user_name» ]; then &lt;br /&gt;echo «Вы не сказали мне свое имя!» &lt;br /&gt;exit&lt;br /&gt;fi &lt;br /&gt;echo «Привет $user_name!» &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;В приведенном примере, если пользователь нажал ENTER и не ввел при этом ничего, наша программа напишет об этом и завершит свою работу. В противном случае она напечатает приветствие. Получение пользовательского ввода полезно для интерактивных программ, которые требуют от пользователя ввести какие-то данные.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Функции&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt; &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Использование функций делает сопровождение своих скриптов проще. Проще говоря, это хороший способ разделить программу на более мелкие куски. Функция выполняет определенное действие и может возвращать то значение, какое вы пожелаете. Прежде чем продолжать, я приведу пример скрипта, написанного с использованием функции:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;# функция hello() печатает сообщение&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;hello()&lt;br /&gt;{ &lt;br /&gt;echo «Вы находитесь в функции hello()»  &lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;echo «Вызываем функцию hello()…»  &lt;br /&gt;hello&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Попробуйте запустить код из примера выше. Функция hello() в нем имеет только одно предназначение - просто напечатать сообщение. Но, конечно же, они могут решать и более сложные задачи. Выше мы вызвали функцию hello(), используя строку:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;hello&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Когда запускается эта строка, bash ищет скрипт для строки &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;hello()&lt;/span&gt;&lt;/span&gt;. Он находит его в начале файла и выполняет его содержимое. Функции всегда вызываются по своему имени, что мы и видели выше. При написании функции вы можете обьявить ее, просто указав &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;имя_функции()&lt;/span&gt;&lt;/span&gt;, как это сделано выше, или если вы хотите сделать ее объявление более явным, можете объявить ее так: &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;function&amp;nbsp;имя_функции()&lt;/span&gt;&lt;/span&gt;. Ниже представлен альтернативный способ написания функции &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;hello()&lt;/span&gt;&lt;/span&gt; :&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;function hello() &lt;br /&gt;{&lt;br /&gt;echo «Вы находитесь в функции hello()» &lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit;"&gt;Функции имеют в имени пустые открывающую и закрывающую скобки: "()", за ними следует пара фигурных скобок: «{...}», содержащих тело функции. Другими словами, весь код функции заключен в эти фигурные скобки. Функции &lt;b&gt;всегда&lt;/b&gt; должны быть предварительно объявлены до своего вызова. Давайте попробуем в приведенном выше примере вызвать функцию до ее объявления:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;echo «Вызов функции hello() …» &lt;br /&gt;hello &lt;br /&gt;# функция hello() просто выводит сообщение &lt;br /&gt;hello()&lt;br /&gt;{&lt;br /&gt;echo «Вы находитесь в функции привет ()» &lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Вот что мы получим, когда попытаемся запустить этот скрипт:  &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ ./hello.sh &lt;br /&gt;Вызов функции привет () ... &lt;br /&gt;./hello.sh: hello: command not found&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;Как видите, мы получили сообщение об ошибке. Поэтому стоит всегда размещать ваши функции в начале кода или, по крайней мере, непосредственно перед вызовом функции. Еще один пример использования функции:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;# admin.sh – инструмент для администратора&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;# функция new_user () создает новую учетную запись пользователя &lt;br /&gt;new_user()&lt;br /&gt;{ &lt;br /&gt;echo «Подготовка к созданию новых пользователей ...» &lt;br /&gt;sleep 2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt; # запускаем программу adduser&lt;br /&gt;adduser&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;echo «1. Добавить пользователя» &lt;br /&gt;echo «2. Выход»&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;echo «Укажите, что вы хотите сделать:" &lt;br /&gt;read choice&lt;br /&gt;case $choice in &lt;br /&gt;1) new_user # вызов функции new_user() &lt;br /&gt;;;&lt;br /&gt;*) exit &lt;br /&gt;;;&lt;br /&gt;esac&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Для того чтобы приведенный скрипт работал правильно, вам необходимо запустить его из-под пользователя root, т.&amp;nbsp;к. иначе программа &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;adduser&lt;/span&gt;&lt;/span&gt; не сможет создать новых пользователей. Надеюсь, этот пример (хоть он и краток) показывает положительный эффект от использования функций.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;&lt;b&gt;Перехват сигналов&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Вы можете использовать встроенную в bash программу &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap&lt;/span&gt;&lt;/span&gt; для перехвата сигналов в своих программах. Это хороший способ изящно завершать работу программы. Например, если пользователь, когда ваша программа работает, нажмет CTRL-C - программе будет отправлен сигнал &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;interrupt &lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;SIGINT&lt;/span&gt;&lt;/span&gt;, &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;signal (7)&lt;/span&gt;&lt;/span&gt;), который завершит ее. &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap&lt;/span&gt;&lt;/span&gt; позволит вам перехватить этот сигнал, что даст возможность либо продолжить выполнение программы, либо сообщить пользователю, что программа завершает работу. Синтаксис этой команды такой:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap action signal&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Здесь:&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;action - то, что вы хотите делать, когда сигнал получен;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;signal - сигнал, на который стоит реагировать. &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Список сигналов можно посмотреть с помощью команды &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap -l&lt;/span&gt;&lt;/span&gt; . При указании сигналов в своих скриптах можно опустить первые три буквы названия сигнала, т. е. SIG. Например, сигнал прерывания это - SIGINT. В вашем скрипте, в качестве его имени, можно указать просто INT. Вы также можете использовать номер сигнала, указанный рядом с его именем. Например, числовое значение сигнала SIGINT - 2. Попробуйте написать и запустить приведенный ниже пример:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;# использование команды trap&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# перехватываем нажатие CTRL-C и запускаем функцию sorry() &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap sorry INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# function sorry() prints a message &lt;br /&gt;sorry()&lt;br /&gt;{&lt;br /&gt;echo «Извини меня, Дэйв. Я не могу этого сделать» &lt;br /&gt;sleep 3&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# обратный отсчет от 10 до 1:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;echo «Подготовка к уничтожению системы» &lt;br /&gt;for i in 10 9 8 7 6 5 4 3 2 1; do &lt;br /&gt;echo «Осталось $i секунд до уничтожения...» &lt;br /&gt;sleep 1&lt;br /&gt;done &lt;br /&gt;echo «Запуск программы уничтожения!»&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Наберите и запустите приведенный пример. Когда программа будет работать и вести обратный отсчет, нажмите CTRL-C. Это действие отправит программе сигнал прерывания - SIGINT. Тем не менее сигнал будет перехвачен командой &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap&lt;/span&gt;&lt;/span&gt;, которая, в свою очередь,  выполнит функцию &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;sorry()&lt;/span&gt;&lt;/span&gt;. Вы можете заставить &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap&lt;/span&gt;&lt;/span&gt; игнорировать сигнал, указав символ кавычек вместо указания действия. Также вы можете отключить ловушку с помощью тире: "-". Например:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# запускать функцию sorry(), если получен сигнал SIGINT &lt;br /&gt;trap sorry INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;# отключение ловушки &lt;br /&gt;trap – INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;# ничего не делать при получении сигнала SIGINT &lt;br /&gt;trap ” INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Если вы отключаете ловушку, программа работает как обычно - при получении сигнала прерывается ее исполнение и она завершает работу. Когда вы говорите &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;trap&lt;/span&gt;&lt;/span&gt; ничего не делать при получении сигнала - она делает именно это. Ничего. Программа будет продолжать работать, игнорируя сигнал.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b style="font-family: inherit;"&gt;Логические И и ИЛИ&lt;/b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt; &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Вы уже видели, что такое управляющие структуры и как их использовать. Для решения тех же задач есть еще два способа. Это логическое И - "&amp;amp;&amp;amp;" и логическое "ИЛИ" - « || ». Логическое И используется следующим образом:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;выражение_1 &amp;amp;&amp;amp; выражение_2&lt;/span&gt;&lt;/span&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Сначала выполняется выражение, стоящее слева, если оно истинно, выполняется выражение, стоящее справа. Если выражение_1 возвращает ЛОЖЬ, то выражение_2 не будет выполнено. Если оба выражения возвращают ИСТИНУ, выполняется следующий набор команд. Если какое-либо из выражений не истинно, приведенное выражение считает ложным в целом. Другими словами, все работает так:&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit;"&gt;если выражение_1 истинно И выражение_2 истинно, тогда выполнять...&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;i&gt;&lt;b&gt;Примечание переводчика: &lt;/b&gt;При работе с булевыми переменными ИСТИНА и ЛОЖЬ (&lt;span lang="en-US"&gt;True &lt;/span&gt;&lt;span lang="ru-RU"&gt;и &lt;/span&gt;&lt;span lang="en-US"&gt;False), bash &lt;/span&gt;&lt;span lang="ru-RU"&gt;ведет себя отлично от других языков программирования. В других языках 0 соответствует &lt;/span&gt;&lt;span lang="en-US"&gt;False (&lt;/span&gt;&lt;span lang="ru-RU"&gt;Ложь), а &lt;/span&gt;&lt;span lang="en-US"&gt;1 - True (&lt;/span&gt;&lt;span lang="ru-RU"&gt;Истина). В &lt;/span&gt;&lt;span lang="en-US"&gt;bash &lt;/span&gt;&lt;span lang="ru-RU"&gt;все &lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;b&gt;наоборот&lt;/b&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;. Связано это с такой вещью, как коды завершения программ (см. ниже). &lt;/span&gt;&lt;/i&gt; &lt;/div&gt;&lt;div align="LEFT" lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;i&gt;Об этом следует всегда помнить при написании своих скриптов!&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Пример использования:&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;x=5&lt;br /&gt;y=10 &lt;br /&gt;if [ "$x" -eq 5 ] &amp;amp;&amp;amp; [ "$y" -eq 10 ]; then &lt;br /&gt;echo «Оба условия верны» &lt;br /&gt;else &lt;br /&gt;echo «Условия не верны» &lt;br /&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Здесь мы находим, что переменные х и у содержат именно те значения, которые мы проверям, поэтому проверяемые условия верны. Если вы измените значение с х = 5  на х = 12, а затем снова запустите программу, она выдаст фразу «Условия не верны».  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Логическое ИЛИ используется аналогичным образом. Разница лишь в том, что оно проверяет ошибочность выражения слева. Если это так - оно начинает выполнять следующий оператор:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;выражение_1 || выражение_2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Данное выражение в псевдокоде выглядит так:&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit;"&gt;если выражение_1 истинно ИЛИ выражение_2 истинно, выполняем ...  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Таким образом, любой последующий код будет выполняться, если хотя бы одно из выражений истинно:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;x=3&lt;br /&gt;y=2 &lt;br /&gt;if [ "$x" -eq 5 ] || [ "$y" -eq 2 ]; then &lt;br /&gt;echo «Одно из условий истинно» &lt;br /&gt;else&lt;br /&gt;echo «Ни одно из условий не является истинным» &lt;br /&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Здесь вы видите, что только одно из выражений истинно. Попробуйте изменить значение у и повторно запустите программу. Вы увидите &lt;span lang="ru-RU"&gt;сообщение&lt;/span&gt;, что ни одно из выражений не является истинным.  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Аналогичная реализация условия с помощью оператора &lt;span lang="en-US"&gt;if &lt;/span&gt;&lt;span lang="ru-RU"&gt;будет большего размера, чем вариант с использованием логического И и ИЛИ, поскольку потребует дополнительного вложенного &lt;/span&gt;&lt;span lang="en-US"&gt;if. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Ниже приведен код, реализующий тот же функционал, но с использованием оператора &lt;/span&gt;&lt;span lang="en-US"&gt;if:&lt;/span&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash &lt;br /&gt;x=5 &lt;br /&gt;y=10 &lt;br /&gt;if [ "$x" -eq 5 ]; then&lt;br /&gt;if [ "$y" -eq 10 ]; then &lt;br /&gt;echo «Оба условия верны&lt;span lang="en-US"&gt;»&lt;/span&gt; &lt;br /&gt;else &lt;br /&gt;echo «&lt;span lang="ru-RU"&gt;Оба условия неверны&lt;/span&gt;» &lt;br /&gt;fi&lt;br /&gt;fi &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Приведенный код менее нагляден для чтения и требует для своего написания больших усилий.  Но у вас остается возможность для избавления себя от всех этих трудностей путем использования операторов логических И и ИЛИ.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;Использование аргументов&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt; &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;Возможно, вы уже заметили, что большинство программ в Linux не интерактивны. Вы должны указать им какие-то  параметры, в противном случае вы получите сообщение со списком возможных аргументов. Возьмем, к примеру, команду &lt;span lang="en-US"&gt;more&lt;/span&gt;. Если вы не &lt;span lang="ru-RU"&gt;укажете&lt;/span&gt; имя файла, она выдаст краткую справку по использованию программы. Ну и конечно же возможно сделать так, чтобы ваши скрипты также могли принимать аргументы. Для этого вам нужно знать что такое переменная вида &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$#&lt;/span&gt;&lt;/span&gt;.  В ней содержится общее количество аргументов, переданных программе.  Например, если вы запустите программу следующим образом:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ что-то &lt;span lang="ru-RU"&gt;параметр&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;то значение переменной &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$#&lt;/span&gt;&lt;/span&gt; будет равно единице, потому что программе передан только один аргумент. Для двух аргументов ее значение будет равно двум и так далее. Также стоит знать о том, что каждый параметр командной строки (включая даже имя скрипта!!!) может также сохраняться в соответствующие переменные. Так, имя нашей программы &lt;span style="font-family: Liberation Mono,monospace;"&gt;что-то&lt;/span&gt; будет сохранено в переменной &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$0&lt;/span&gt;&lt;/span&gt;.  Аргумент программы &lt;span style="font-family: Liberation Mono,monospace;"&gt;параметр&lt;/span&gt; сохранится в переменной &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$1&lt;/span&gt;&lt;/span&gt;.  Вы можете использовать до 9 переменных, начиная с &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$0&lt;/span&gt;&lt;/span&gt; (обозначающего имя скрипта), а затем &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$1-$9&lt;/span&gt;&lt;/span&gt;, обозначающие аргументы програмы. Давайте посмотрим, как это работает:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash&lt;br /&gt;# скрипт, печатающий свои аргументы&lt;br /&gt;# проверяем, переданы ли скрипту аргументы:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;if [ "$#" -ne 1 ]; then &lt;br /&gt;echo «корректный запуск программы: &lt;span lang="en-US"&gt;$&lt;/span&gt;0 &amp;lt;параметр&amp;gt;» &lt;br /&gt;fi &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;echo «Переданный параметр - $1»&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Приведенный скрипт ожидает один и только один аргумент для своего запуска. Если вы не укажете ему аргументов - будет выводиться справочная информация. В противном случае, если при запуске указан какой-то аргумент - он передается в наш скрипт,  который выведет его на экран. Напоминаю, что $0 это имя скрипта. Именно поэтому эта переменная используется в справочном сообщении. Последняя строка выводит переданный программе параметр - $1.  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;b&gt;Работа с временными файлами&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Довольно часто вам будет необходимо создавать временные файлы. Обычно это файл, в котором хранятся какие-то используемые скриптом данные либо что-то еще. Как только работа скрипта будет завершена, этот файл нужно удалить. При создании такого файла вы должны задать его имя. Проблема тут кроется в том, что файл, создаваемый вами, не должен  случайно переписать уже существующий в той же директории, если их имена совпадут. Для того чтобы создать временный файл с  гарантированно уникальным именем, вам нужно использовать символ &lt;span lang="en-US"&gt;«$$»&lt;/span&gt; символ, либо &lt;span lang="ru-RU"&gt;как &lt;/span&gt;префикс, либо как суффикс к имени создаваемого файла. Предположим, вы хотите создать временный файл с именем &lt;span lang="en-US"&gt;h&lt;/span&gt;ello. Возможно, что у пользователя, который работает с нашим скриптом, уже есть файл с таким именем. Создавая файл с именем &lt;span lang="en-US"&gt;h&lt;/span&gt;ello.$$ &lt;span lang="ru-RU"&gt;и&lt;/span&gt;ли &lt;span lang="en-US"&gt;$$hello,&lt;/span&gt; вы создадите файл с уникальным именем. Например:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ touch hello &lt;br /&gt;$ ls&lt;br /&gt;hello&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;$ touch hello.$$ &lt;br /&gt;$ ls &lt;br /&gt;hello hello.689&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;Примерно так и будет выглядеть имя вашего временного файла. &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;i&gt;&lt;b&gt;Примечание переводчика: &lt;/b&gt;В переменной &lt;span lang="en-US"&gt;$$ &lt;/span&gt;&lt;span lang="ru-RU"&gt;обычно хранится следующий свободный &lt;/span&gt;&lt;span lang="en-US"&gt;PID&lt;/span&gt;&lt;span lang="ru-RU"&gt;. Именно поэтому использование такой переменной гарантирует уникальные имена для вновь создаваемых файлов.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;b&gt;Коды завершения программ&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit;"&gt;Большинство программ возвращают в операционную систему какое-то число, показывающее, насколько удачно программа завершила свою работу. Например, &lt;span lang="en-US"&gt;man-&lt;/span&gt;&lt;span lang="ru-RU"&gt;страница &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;grep&lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;говорит, что &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;grep&lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;вернет 0, если заданный шаблон найден, и 1, если совпадений не найдено. Почему нас так волнуют эти коды завершения? По разным причинам. Допустим, мы хотим проверить - есть ли пользователь с данным именем в системе? Один из способов сделать - использовать команду вида: &lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;grep имя_пользователя &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="ru-RU"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;etc/passwd&lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;. &lt;span lang="ru-RU"&gt;Допустим, имя пользователя - &lt;/span&gt;&lt;span lang="en-US"&gt;vasya:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ grep &lt;span lang="en-US"&gt;vasya&lt;/span&gt; /etc/passwd &lt;br /&gt;$&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span lang="ru-RU"&gt;Ничего не вывелось&lt;/span&gt;. Это означает, что &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;grep&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; не &lt;span lang="ru-RU"&gt;обнаружила заданного пользователя&lt;/span&gt;. Но для нас было бы значительно лучше получить сообщение об этом. Это как раз тот случай, когда нужно использовать код завершения программы. Он сохраняется в переменной с именем &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$?&lt;/span&gt;&lt;/span&gt; . Посмотрим на следующий фрагмент кода:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash&lt;br /&gt;# ищем пользователя vasya в /etc/passwd,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# весь вывод перенаправляем в /dev/null&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;grep vasya /etc/passwd &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;# смотрим код завершения и действуем по обстоятельствам:&lt;br /&gt;if [ "$? -eq 0 ]; then &lt;br /&gt;echo «Пользователь vasya найден»  &lt;br /&gt;exit&lt;br /&gt;else &lt;br /&gt;echo «Пользователь vasya не найден» &lt;br /&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Теперь, когда вы запустите скрипт, он будет перехватывать и анализировать код завершения &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;grep&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. Если он равен 0, &lt;span lang="ru-RU"&gt;значит пользователь найден и мы выводим &lt;/span&gt;соответствующее сообщение об ошибке. В противном случае скрипт напечатает, что пользователя найти не получилось. Это очень простой способ использования получаемого кода завершения программы. По мере практики вы сами будете понимать, для решения какой задачи вам нужно использовать эти коды завершения.  &lt;/div&gt;&lt;div align="LEFT"&gt;Если вас озадачивает конструкция вида &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, тут все довольно просто. В Linux этими числами обозначаются дескрипторы файлов. 0 - стандартный ввод (по умолчанию, клавиатура), 1 стандартный вывод (по умолчанию, монитор) и 2 - вывод стандартных ошибок (по умолчанию, монитор). Весь вывод команды идет в файл с дескриптором 1, любые ошибки отправляются в файл с дескриптором 2.  Если вы не хотите, чтобы сообщения об ошибках появлялись на экране, просто перенаправьте его в &lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span lang="en-US"&gt;/dev/null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;.&lt;/span&gt; &lt;span lang="ru-RU"&gt;Но это не прекратит вывод на экран обычной &lt;/span&gt;информации. Например, если у вас нет разрешения на чтение домашнего каталого другого пользователя, вы не сможете просмотреть список его содержимого:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ ls /root &lt;br /&gt;ls: /root: Permission denied&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;$ ls /root 2&amp;gt; /dev/null  &lt;br /&gt;$ &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Как видите, во второй раз информация об ошибке не была напечатана. Все то же самое относится к другим программам и дескриптору 1. Если вы не хотите видеть нормальный выход из программы, то есть хотите, чтобы она работала молча, вы можете перенаправить в /&lt;span lang="en-US"&gt;dev/null &lt;/span&gt;&lt;span lang="ru-RU"&gt;и его&lt;/span&gt;. Теперь, если вы не хотите видеть вообще никакого вывода программы - добавьте в нее следующее:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ ls /root &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Это означает, что программа будет отправлять свой вывод и ошибки, которые возникают в &lt;span lang="en-US"&gt;/dev/null, &lt;/span&gt;&lt;span lang="ru-RU"&gt;т.&amp;nbsp;е. будет работать молча, что нам и нужно.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;i&gt;&lt;span lang="ru-RU"&gt;&lt;b&gt;Примечание переводчика:&lt;/b&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt; на самом деле все работает так:&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;i&gt;&lt;span lang="ru-RU"&gt;Конструкция вида 2&amp;gt;&amp;amp;1 перенаправляет вывод ошибок (дескриптор 2) на стандартный вывод (дескриптор 1). Знак «загогулины» - &lt;/span&gt;&lt;span lang="en-US"&gt;&amp;amp; &lt;/span&gt;&lt;span lang="ru-RU"&gt;- тут нужен для того, чтобы пояснить &lt;/span&gt;&lt;span lang="en-US"&gt;bash, &lt;/span&gt;&lt;span lang="ru-RU"&gt;что вы имеете в виду не файл с именем 1, а именно файл с дескриптором 1, т.&amp;nbsp;е. стандартный вывод. Если вы укажете что-то вроде:&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;span style="font-family: Liberation Serif,serif;"&gt;&lt;i&gt;&lt;span lang="en-US"&gt;$ &lt;/span&gt;команда &lt;span lang="en-US"&gt;2&amp;gt;1&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" lang="ru-RU" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;i&gt;то стандартный вывод ошибок пойдет в файл с именем 1.  Конструкцией 2&amp;gt;&amp;amp;1 мы «сцепляем» вывод команды и вывод ошибок вместе. А первым перенаправлением (первым символом &lt;span lang="en-US"&gt;&amp;gt; &lt;/span&gt;в коментируемой команде) мы отправляем весь вывод команды в /&lt;span lang="en-US"&gt;dev/null. &lt;/span&gt;Чтобы дополнительно понять, как все работает, можете поэкспериментировать, убрав 2&amp;gt;&amp;amp;1 из команды и перезапустив ее.&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;А что если вы хотите, чтобы ваш скрипт тоже возвращал какой-нибудь код завершения при выходе? Команда &lt;span lang="en-US"&gt;exit &lt;/span&gt;&lt;span lang="ru-RU"&gt;может &lt;/span&gt;принимать один аргумент - тот самый код завершения. Обычно число 0 используется для обозначения успешного завершения работы. Число, отличное от нуля означает, что произошла какая-то ошибка. Какое число возвращать - решает сам програмист.  Посмотрим приведенный пример:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US"&gt;&lt;span style="font-family: Liberation Mono,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash&lt;br /&gt;if [ -f "/etc/passwd" ]; then&lt;br /&gt;echo «Файл passwd существует» &lt;br /&gt;exit 0&lt;br /&gt;else &lt;br /&gt;echo «Нет такого файла» &lt;br /&gt;exit 1 &lt;br /&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Задавая значение кода завершения, вы делаете возможным для других скриптов, использующих ваш скрипт, анализировать результаты его работы.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;b&gt;Переносимость ваших скриптов на &lt;/b&gt;&lt;b&gt;&lt;span lang="en-US"&gt;bash&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;При написании ваших собственных скриптов важно делать это так, чтобы они оставались переносимыми. Термин «переносимость» означает, что если ваш скрипт работает под Linux, то он должен работать в другой &lt;span lang="en-US"&gt;Unix-&lt;/span&gt;системе с малыми изменениями или вообще без них. &lt;span lang="ru-RU"&gt;Ч&lt;/span&gt;тобы добиться этого, вы должны быть осторожны при вызове внешних программ. Разработчик должен при этом ответить на вопрос: "Будет ли эта программа доступна на другом варианте Unix?" (&lt;i&gt;и что более важно - будет ли она там работать &lt;/i&gt;&lt;i&gt;&lt;b&gt;также&lt;/b&gt;&lt;/i&gt;&lt;i&gt;, как на &lt;/i&gt;&lt;span lang="en-US"&gt;&lt;i&gt;Linux &lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;- прим. перев.&lt;/i&gt;&lt;/span&gt;). Допустим, вы используете программу &lt;span lang="en-US"&gt;foo, &lt;/span&gt;&lt;span lang="ru-RU"&gt;которая на &lt;/span&gt;&lt;span lang="en-US"&gt;Linux &lt;/span&gt;&lt;span lang="ru-RU"&gt;работает аналогично &lt;/span&gt;&lt;span lang="en-US"&gt;echo, &lt;/span&gt;&lt;span lang="ru-RU"&gt;поэтому  вместо &lt;/span&gt;&lt;span lang="en-US"&gt;echo &lt;/span&gt;&lt;span lang="ru-RU"&gt;вы используете ее&lt;/span&gt;&lt;span lang="en-US"&gt;. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Но если ваш скрипт будет работать на других системах, где нет программы &lt;/span&gt;&lt;span lang="en-US"&gt;foo, &lt;/span&gt;&lt;span lang="ru-RU"&gt;он начнет выдавать сообщения об ошибках. &lt;/span&gt;Кроме того, имейте в виду, что раз&lt;span lang="ru-RU"&gt;ные&lt;/span&gt; версии &lt;span lang="en-US"&gt;b&lt;/span&gt;ash могут иметь разные методы для одних и тех же операций. Например, конструкция VAR = &lt;span lang="en-US"&gt;$(ps)&lt;/span&gt; делает то же самое, что &lt;span lang="ru-RU"&gt;и &lt;/span&gt;VAR = &lt;span lang="en-US"&gt;`ps`&lt;/span&gt;, но &lt;span lang="ru-RU"&gt;на самом деле &lt;/span&gt;старые версии оболочек, например Bourne &lt;span lang="en-US"&gt;shell (sh)&lt;/span&gt;, признают только последний синтаксис. Если вы собираетесь распространять свои скрипты, обязательно включайте текстовый файл README, который будет предупреждать пользователя о любых сюрпризах, в том числе и о том, что скрипт проверялся на такой-то версии &lt;span lang="en-US"&gt;b&lt;/span&gt;ash. Желательно также указать, какие программы и библиотеки (и каких версий) будут нужны скрипту.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;i&gt;&lt;b&gt;Примечание переводчика: &lt;/b&gt;&lt;/i&gt;&lt;i&gt;Для проверки наличия в скрипте команд и функций специфичных для bash в ALT Linux есть пакет &lt;a href="http://prometheus.altlinux.org/en/srpm/Sisyphus/checkbashisms"&gt;checkbashisms&lt;/a&gt;, который взят из пакета devscripts Debian.&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;&lt;b&gt;Заключение&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Пришла пора завершить это краткое введение в написание скриптов на bash. Однако ваше обучение этому умению еще не завершено. В тоже время, написанного вполне достаточно, чтобы вы могли модифицировать имеющиеся скрипты и писать собственные. Если вы действительно хотите стать мастером написания скриптов на bash, я рекомендую приобрести книгу «Learning the bash shell» (Изучение оболочки bash), 2-е издание издательства O'Reilly &amp;amp; Associates, Inc.&lt;/div&gt;&lt;div align="LEFT" style="font-family: inherit; margin-bottom: 0cm;"&gt;Скрипты на bash идеально подходят для повседневной работы по администрированию. Но если вы планируете что-то более серьезное, следует использовать гораздо более мощный язык, такой как C или Perl. Удачи!&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="RIGHT" style="margin-bottom: 0cm;"&gt;&lt;a href="http://learnbyexamples.org/linux/bash-programming-tutorial-2-more-about-bash-programming.html"&gt;Ссылка на оригинал&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Также опубликована &lt;a href="http://freeschool.altlinux.ru/?p=3610"&gt;здесь&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-4468664239086000491?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/4468664239086000491/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/12/bash-ii.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4468664239086000491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/4468664239086000491'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/12/bash-ii.html' title='Краткое введение в программирование на Bash - часть II'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-8779513216969209894</id><published>2010-10-11T20:35:00.007+04:00</published><updated>2010-12-10T13:00:51.061+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='техническая документация'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='обучение'/><title type='text'>Краткое введение в программирование на Bash - часть I</title><content type='html'>&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }&lt;/style&gt;  &lt;br /&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;i&gt;Данное введение в программирование на bash прельстило меня своей краткостью и содержательностью. В то же время я изменил некоторые примеры, потому что они делали слегка не то, что ожидается новичками. Начинающим текст будет полезен как отправная точка для начала написания скриптов. Опытным - как справочник. Удачного чтения!&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Выражаю также благодарность Владимиру Черному (начальнику отдела образовательных проектов ALT Linux) за внесенные в текст правки. &lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Тема программирования на bash из разряда тех, которые могут быть рассмотрены и в пару, и в сотни страниц. Гарольд Родригес (Harold Rodriguez) объясняет эту тему в приведенном ниже руководстве из двух частей. Его прекрасный и яркий стиль позволил ему охватить все существенные черты программирования на bash буквально на нескольких страницах. &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Если вы никогда не программировали на bash ранее - сейчас самое время начать. Даже если у вас мало знаний о том, что такое bash, вы вполне можете посмотреть на множество интересных скриптов, разбираемых Гарольдом.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=2986307105622275526&amp;amp;postID=8779513216969209894" name="more-2662"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Введение&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Подобно остальным оболочкам, доступным в Linux, Bourne Again shell (bash) является не только, собственно, командной оболочкой, но и языком для написания сценариев (скриптов) (&lt;i&gt;слова «сценарий» и «скрипт» обычно являются синонимами - прим. перев.&lt;/i&gt;). Скрипты позволяют в полной мере использовать возможности оболочки и автоматизировать множество задач, которые иначе потребуют для своего выполнения ввода множества команд. Многие программы, работающие внутри вашего компьютера с Linux - это скрипты. Если вы захотите узнать, как они работают, или изменить их, важно понимать их синтаксис и семантику. Кроме того, понимая язык bash, вы сможете писать свои собственные программы, чтобы выполнять разные задачи теми способами, которые выберете сами.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Так все-таки программирование (programming) или написание скриптов (scripting)?&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Новичков в программировании, как правило, озадачивает разница между, собственно, программированием и языками скриптов. Программы, написанные на каких-то языках программирования, обычно гораздо более мощные по возможностям и работают намного быстрее, чем программы, написанные на языках сценариев. Примеры языков программирования - C, C ++ и Java. Создание программы на каком-либо языке программирования обычно начинается с написания исходного кода (текстовый файл, содержащий инструкции о том, как будет работать окончательная программа), затем его необходимо скомпилировать (собрать) в исполняемый файл. Этот исполняемый файл не так легко переносить между различными операционными системами. Например, если вы напишете на программу на C для Linux, вы не сможете запустить ее в Windows. Чтобы сделать это, вам придется перекомпилировать исходный код под Windows. Написание скрипта также начинается с написания исходного кода, который не компилируется в исполняемый файл. Вместо этого интерпретатор оболочки последовательно читает инструкции в файле исходного кода и выполняет их. К сожалению, поскольку интерпретатор должен читать каждую инструкцию, скорость исполнения скрипта обычно медленнее (&lt;i&gt;намного медленнее - прим. перев.&lt;/i&gt;), чем у скомпилированной программы. Основным преимуществом скриптов является то, что вы можете легко переносить исходный файл в любую операционную систему и просто запускать их (е&lt;i&gt;стественно при наличии интерпретатора для это&lt;/i&gt;&lt;i&gt;й&lt;/i&gt;&lt;i&gt; операционной системы - прим. перев.&lt;/i&gt;). &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Bash - это язык сценариев. Он отлично подходит для написания небольших программ, но если вы планируете делать какие-то мощные приложения, выбор для этого какого-либо языка программирования предпочтительнее для вас. Другие примеры скриптовых языков Perl, Lisp, и Tcl.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Что нужно знать для написания своих &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: black;"&gt;скриптов&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: black;"&gt;?&lt;/span&gt;&lt;/b&gt;&lt;span style="color: maroon;"&gt; &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Для этого необходимо знание основных команд Linux. Например, вы должны знать, как копировать, перемещать и создавать новые файлы. Обязательно умение использовать какой-либо текстовый редактор. Существуют три основных текстовых редактора в Linux: vi, emacs и pico (&lt;i&gt;автор еще забыл nano, который лучше всего подходит начинающим, если не учитывать еще и mcedit. - Прим. перев.&lt;/i&gt;). Если вы не знакомы с vi или emacs, используйте pico или другой простой в использовании текстовый редактор.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;&lt;span style="color: #b84747;"&gt;Внимание!!!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="color: #b84747;"&gt;Не следует учиться программировать на bash из-под пользователя &lt;b&gt;root&lt;/b&gt;! В противном случае - может случиться все что угодно! Я не буду нести никакой ответственности, если вы случайно допустите ошибку и испортите вашу систему. Вы предупреждены! Используйте учетную запись обычного пользователя без каких-либо привилегий. Вы можете даже создать нового пользователя только для обучения написанию сценариев. Таким образом, худшее, что произойдет в данном случае — это исчезновение данных в каталоге этого пользователя. &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Ваша первая программа на Bash&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Нашей первой программой будет классическая «Hello World». Конечно, если уже вы программировали раньше, вы должно быть устали от таких примеров. Однако это - традиция и кто я такой, чтобы менять ее? Программа «Hello World» просто выводит слова «Hello World» на экран. Запустите текстовый редактор и наберите в нем следующее:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;#!/bin/bash &lt;br /&gt;echo "Hello World"&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Первая строка сообщает Linux использовать интерпретатор bash для запуска этого скрипта. В этом случае, bash находится в каталоге /bin. Если у вас bash находится где-то еще, сделайте соответствующие изменения в данной строке. Явное указание интерпретатора очень важно, удостоверьтесь еще раз, что указали его, поскольку данная строка говорит Linux какой именно интерпретатор нужно использовать для выполнения инструкций в скрипте. Следующее, что нужно сделать, это сохранить скрипт. Назовем его hello.sh. После этого вам нужно сделать скрипт исполняемым:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ chmod &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;u+x&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; hello.sh&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Если вы не понимаете, что делает эта команда, прочтите справочную страницу команды chmod:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; man chmod&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Как только это будет сделано, вы сможете запустить программу, просто набрав ее название:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ ./hello.sh&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;Hello World&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Получилось! Это ваша первая программа! И хотя она скучная и не делает ничего полезного, она показывает как именно все работает. Просто запомните эту простую последовательность действий: напишите код, сохраните файл, сделайте его исполняемым с помощью chmod и запустите. &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Команды, команды и команды&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Что именно делает ваша первая программа? Она печатает на экран слова «Hello World». Каким образом она это делает? Она использует команды. В нашей программе мы написали только одну команду - echo «Hello World». Что именно тут команда? echo. Эта программа принимает один аргумент и печатает его на экран. &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Аргументом является все, что следует после ввода названия программы. В нашем случае «Hello World» это и есть аргумент, переданный команде echo. При вводе команды ls /home/, аргументом команды ls является /home. Ну и что это все означает? А означает это то, что если у вас есть программа, которая принимает какой-то аргумент и выводит что-то на экран, вы можете использовать ее вместо echo. Предположим, что у нас есть программа под названием foo. Эта программа будет принимать один аргумент (строку из слов) и печатать их на экран. Тогда мы можем переписать нашу программу вот так:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;foo &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;Hello World&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Сохраните ее, сделайте исполняемой и перезапустите ее (&lt;i&gt;примечание для новичков - этот пример работать не будет. - Прим. перев.&lt;/i&gt;):   &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ ./hello&lt;br /&gt;Hello World&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Точно такой же результат. Использовался ли тут какой-то уникальный код? Нет. Написали ли мы какую-то программу? Нет, если только вы не являетесь автором программы echo. Все, что вы сделали - просто встроили программу echo в наш скрипт и снабдили ее аргументом. Примером альтернативы использования команды echo в реальном программировании является команда printf, которая имеет больше возможностей, если вы знакомы с программированием на C. Ну и на самом деле, точно такой же результат можно было бы получить и без написания скрипта: &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ echo "Hello World” &lt;br /&gt;Hello World &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Написание скриптов на bash предлагает широкий спектр возможностей и этому легко научиться. Как вы только что могли видеть, вы используете другие команды Linux, чтобы писать ваши собственные скрипты. Ваша программа-оболочка представляет собой несколько других программ, собранных вместе для выполнения какой-либо задачи. &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;b&gt;Другие полезные программы&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Сейчас мы напишем программу, которая переместит все файлы в каталог, удалит его вместе с содержимым, а затем создаст это каталог заново. Это может быть сделано с помощью следующих команд (&lt;span style="color: #b84747;"&gt;&lt;i&gt;В примере, приведенном в оригинале автор показывает, что не зря рекомендовал делать приведенные упражнения под специально созданным пользователем. Результатом выполнения данной последовательности команд будет чистый каталог, в котором вы работаете. Скорее всего это будет ваша домашняя директория. Поэтому, если вы НЕ хотите удаления всех файлов в ней - НЕ выполняйте команды &lt;/i&gt;&lt;/span&gt;&lt;span style="color: #b84747;"&gt;&lt;i&gt;из оригинала статьи&lt;/i&gt;&lt;/span&gt;&lt;span style="color: #b84747;"&gt;&lt;i&gt;. А лучше последуйте совету автора и создайте отдельного пользователя специально для тренировки написания скриптов. &lt;/i&gt;&lt;/span&gt;&lt;span style="color: #b84747;"&gt;&lt;i&gt;Этот пример я немного расширил &lt;/i&gt;&lt;/span&gt;&lt;span style="color: #b84747;"&gt;&lt;i&gt;и теперь он не такой опасный&lt;/i&gt;&lt;/span&gt;&lt;span style="color: #b84747;"&gt;&lt;i&gt;. &lt;/i&gt;&lt;/span&gt;&lt;span style="color: #b84747;"&gt;&lt;i&gt;Прим. перев.&lt;/i&gt;&lt;/span&gt;):&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;touch file1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ mkdir trash &lt;br /&gt;$ mv &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;file1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; trash  &lt;br /&gt;$ rm -rf trash  &lt;br /&gt;$ mkdir trash&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-weight: normal;"&gt; &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;Вместо того, чтобы вводить это все в интерактивном режиме, напишем скрипт, выполняющий эти команды:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;touch file1 &lt;br /&gt;mkdir trash &lt;br /&gt;mv &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;file1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; trash &lt;br /&gt;rm -rf trash &lt;br /&gt;mkdir trash &lt;br /&gt;echo “&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;Ф&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;айл удален!&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;”&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Сохраните его под именем clean.sh и теперь все, что нужно сделать -  это запустить его. Он переместит все файлы в каталог, удалит его, создаст его заново каталог и даже напечатает сообщение об удалении файлов. Запомните, если вы обнаружите, что регулярно делаете нечто требующее набора одной и той же последовательности команд - это вполне можно автоматизировать написанием скрипта.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Комментарии&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Комментарии помогают сделать ваш код более читабельным. Они не влияют на то, что выводит программа. Они написаны специально для того, чтобы вы их прочли. Все комментарии в Bash начинаются с хэш-символа #, за исключением первой строки (#!/bin/bash), имеющей специальное назначение. Первая строка - не комментарий. Возьмем для примера следующий код:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;# Эта программа считает от 1 до 10: &lt;br /&gt;for i in 1 2 3 4 5 6 7 8 9 10; do &lt;br /&gt;echo $i&lt;br /&gt;done  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Даже если вы пока не понимаете скрипты на Bash, вы сразу же поймете, что делает приведенный выше пример, благодаря комментарию. Комментирование кода - хорошая практика. Со временем вы поймете, что, если вам нужно будет поддерживать ваши скрипты, то при наличии комментированного кода - делать это станет легче.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Переменные&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Переменные это просто «контейнеры», которые содержат некоторые значения. Создавать их нужно по многим причинам. Вам нужно будет как-то сохранять вводимые пользователем данные, аргументы или числовые величины. Например:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;x=12 &lt;br /&gt;echo ”&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;Значение переменной&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; x &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;-&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; $x”&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Здесь мы присвоили переменной x значение 12. Строка echo “Значение переменной х - $x” напечатает текущее значение x. При определении переменной не допускается наличие каких-то пробелов между именем переменной и оператором присваивания: "=". Синтаксис следующий:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;имя_переменной=ее_значение.&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Обращение к переменным выполняется с помощью префикса "$" перед именем переменной. Именно таким образом мы получаем доступ к значению переменной х с помощью команды echo $x.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Есть два типа переменных - локальные и переменные окружения. Переменные окружения устанавливаются системой и имеют специальной назначение. Обычно их значение может быть выведено с помощью команды echo. Например, если ввести:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ echo $SHELL &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;/bin/bash &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Вы получили имя оболочки, запущенной в данный момент. Переменные среды задаются в файле /etc/profile и в ~/.bash_profile. Команда echo может применяться для проверки текущего значения переменной.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Примечание: &lt;/b&gt;задание переменных среды подробно описано в &lt;a href="http://learnbyexamples.org/linux/linux-tip-how-to-set-shell-environment-variables-bash-shell.html"&gt;&lt;span style="color: #3333ff;"&gt;этой статье - "Как &lt;/span&gt;&lt;/a&gt;&lt;a href="http://learnbyexamples.org/linux/linux-tip-how-to-set-shell-environment-variables-bash-shell.html"&gt;&lt;span style="color: #3333ff;"&gt;задавать п&lt;/span&gt;&lt;/a&gt;&lt;a href="http://learnbyexamples.org/linux/linux-tip-how-to-set-shell-environment-variables-bash-shell.html"&gt;&lt;span style="color: #3333ff;"&gt;еременные среды"&lt;/span&gt;&lt;/a&gt; . В статье также описаны некоторые особенности оболочки Bash.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Если вы все еще возникают проблемы с пониманием того зачем нужно использовать переменные, приведем пример:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;echo "Значение х - 12". &lt;br /&gt;echo "У меня есть 12 карандашей". &lt;br /&gt;echo "Он сказал мне, что значение х равно 12". &lt;br /&gt;echo "Мне 12 лет." &lt;br /&gt;echo "Как получилось, что значение х равно 12?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;"  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Хорошо, теперь предположим, что вы решите поменять значение х на 8 вместо 12. Что для этого нужно сделать? Вы должны изменить все строки кода, в которых говорится, что х равно 12. Но погодите... Есть другие строки кода, где упоминается это число, поэтому простую автозамену использовать не получится. Теперь приведем аналогичный пример, только с использованием переменных:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;x=12 # &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;задаем переменной х значение 12&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; &lt;br /&gt;echo "&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;З&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;начение х &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;= &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$х" &lt;br /&gt;echo "У меня есть 12 карандашей" &lt;br /&gt;echo "Он сказал мне, что значение х &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;равно &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$х" &lt;br /&gt;echo "Мне 12 лет" &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;echo "Как получилось, что значение х &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;равно &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;?"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Здесь мы видим, что $x выводит текущее значение переменной х равное 12. Поэтому теперь, если вы хотите задать новое значение х равное 8, то все что вам нужно сделать, это изменить одну строчку с х=12 на х=8, и в выводе все строки с упоминанием x также изменяться. Поэтому вам не нужно руками модифицировать остальные строки. Как вы увидите позже, переменные имеют и другие способы применения.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Управляющие &lt;/b&gt;&lt;b&gt;операторы&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Управляющие операторы делают вашу программу компактнее и позволяют ей принимать решения. И, что еще более важно, они позволяют нам выполнять проверку на наличие ошибок. До сих пор все, что мы сделали, это писали скрипты, которые просто исполняют набор инструкций в файле. Например:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;cp /etc/foo .  &lt;br /&gt;echo ”&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;Готово&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;” &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Это небольшой скрипт, назовем его bar.sh, копирует файл с именем /etc/foo в текущий каталог и выводит «Готово» на экране. Эта программа будет работать при одном условии -  файл /etc/foo должен существовать. В противном случае вот что произойдет:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$./bar.sh &lt;br /&gt;cp: /etc/foo: No such file or directory&lt;br /&gt;Готово&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Таким образом, как вы видите, есть проблема. Не у каждого, кто будет запускать вашу программу, будет файл /etc/foo. Наверное, было бы лучше, если б ваша программа сначала проверяла наличие данного файла, а затем при положительном ответе - выполняла бы копирование, в противном случае - просто бы завершала работу. В псевдо-коде это выглядит так:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;если /etc/foo существует, то &lt;br /&gt;скопировать /etc/&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;foo&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; в текущую директорию &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; напечатать "Готово" на экране &lt;br /&gt;в противном случае, &lt;br /&gt;напечатать на экране "Этот файл не существует" &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; выход&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Можно ли это сделать в Bash? Конечно! Набор управляющих операторов Bash включает в себя: if, while, until, for и case. Каждый из этих операторов является парным, то есть начинается  он одним тегом и заканчивается другим. Например, если условный оператор if начинается с if и заканчивается fi. Управляющие операторы - это не отдельные программы в системе, они встроены в bash.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;if … else … elif … fi&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Это один из наиболее распространенных операторов. Он позволяет программе принимать решения следующим образом - «если условие верно - делаем одно, если нет - делаем что-то другое». Чтобы эффективно его использовать, сначала нужно научиться пользоваться командой test. Эта программа выполняет проверку условия (например, существует ли файл, есть ли необходимые права доступа). Вот переписанный вариант bar.sh :&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;if test -f /etc/foo&lt;br /&gt;then &lt;br /&gt;# Файл существует, копируем его и печатаем сообщение на экране &lt;br /&gt;cp /etc/foo .&lt;br /&gt;echo "Готово". &lt;br /&gt;else  # Файл не существует, поэтому мы печатаем сообщение&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;  #&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt; и завершаем работу &lt;br /&gt;echo "Этот файл не существует." &lt;br /&gt;exit&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Обратите внимание на отступы строки после then и else. Они не являются обязательными, но зато делают чтение кода гораздо более простым в том смысле, что делают логику программы более наглядной. Теперь запустите программу. Если у вас есть файл /etc/foo - он будет скопирован, в противном случае будет напечатано сообщение об ошибке. Команда test проверяет существование файла. Ключ -f проверяет, является ли аргумент обычным файлом. Ниже приведен список опций test (&lt;i&gt;Не стоит пытаться запомнить их все, т.к. это все равно нереально. Его всегда можно посмотреть в руководстве команды test - man test. Прим. перев.&lt;/i&gt;):  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Ключи команды test:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-d проверяет наличие файла и то, что он является каталогом  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-e  проверяет существование файла&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-f  проверяет наличие файла и то, что это обычный файл &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-g проверяет наличие у файла SGID-бита  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-r  проверяет наличие файла и то, что он доступен на чтение&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-s  проверяет наличие файла и то, что его размер больше нуля&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-u  проверяет наличие у файла SUID-бита  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-w проверяет наличие файла и то, что он доступен на запись&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-x  проверяет наличие файла и наличие у него прав на запуск&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0cm;"&gt;Оператор else используется, когда вы хотите, чтобы ваша программа еще что-то делала, если первое условие не выполняется. Существует также оператор elif, который может использоваться вместо еще одного if. elif означает "else if". Он используется, когда первое условие не выполняется, и вы хотите проверить еще одно условие.  &lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Если вам не нравится приведенная форма записи if и test, есть сокращенный вариант.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Например, код:  &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;if test -f /etc/foo &lt;br /&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Можно записать вот так:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;if [ -f /etc/foo ]; then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Квадратные скобки - это еще один вариант записи test. Если у вас есть опыт в программировании на C, этот синтаксис для вас может быть более удобным. Обратите внимание на наличие пробелов до и после каждой из скобок (&lt;i&gt;Наличие пробелов объясняется просто: открывающая квадратная скобка - это команда оболочки. В этом можно легко убедиться набрав в консоли команду which [ . А раз это отдельная команда, то ее нужно отделить &lt;/i&gt;&lt;i&gt;пробелами &lt;/i&gt;&lt;i&gt;от остальных опций. &lt;/i&gt;&lt;i&gt;- &lt;/i&gt;&lt;i&gt;Прим. перев.&lt;/i&gt;). Точка с запятой: ";" говорит оболочке о завершении одного оператора и начале следующего. Все, что находится после этого символа будет работать так, как будто он находится на отдельной строке. Это делает код более удобным для чтения и, естественно, что такая запись необязательна. Если вы предпочитаете другой вариант записи - then можно сразу поместить в другой строке.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Если вы используете переменные - их нужно помещать в кавычки. Например:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;if [ "$name" -eq 5 ]; then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;оператор -eq будет объяснен далее в этой статье.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;while … do … done&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Оператор while используется для организации циклов. Он работает так «пока (while) условие истинно, делать что-то». Рассмотрим это на примере:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;while true; do  &lt;br /&gt;echo "Нажмите CTRL-C для выхода." &lt;br /&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;true - это тоже программа. Единственное, что она тут делает - это запускает тело цикла снова и снова. Использование true считается медленным, потому что ваш скрипт должен запускать ее раз за разом. Можно использовать альтернативный вариант:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;while :; do  &lt;br /&gt;echo "Нажмите CTRL-C для выхода." &lt;br /&gt;done &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Это позволяет добиться точно такого же эффекта, но быстрее, потому что «:» - это встроенная функция bash. Единственное отличие состоит в принесении в жертву читабельности кода. Используйте из приведенных вариантов тот, который вам нравится больше. Ниже приведен гораздо более полезный вариант использования переменных:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;x=0;  &lt;br /&gt;while [ "$x" -le 10 ]; do  &lt;br /&gt;echo "Текущее значение х: $ х" &lt;br /&gt;# Увеличиваем значение х: &lt;br /&gt;x=$(expr $x + 1) &lt;br /&gt;sleep 1 &lt;br /&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Здесь мы используем для проверки состояния переменной x запись с квадратными скобками. Опция -le означает «меньше или равно (less or equal)». Говоря обычным языком приведенный код говорит: «пока (while) х меньше или равен 10, выводить на экран текущее значение х, после чего добавлять к текущему значению х единицу». Оператор sleep 1 приостанавливает выполнение программы на одну секунду.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Ниже приведен список возможных операций сравнения целых чисел (&lt;i&gt;полный список приведен в man test. Прим. перев.&lt;/i&gt;):&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;x -eq y  x = y (equal)&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;x -ne y   x не равен y (not equal)&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;x -gt y  x больше, либо равен y (greater than)&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;x -lt y   x меньше, либо равен y (lesser than)  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Операторы сравнения строк:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;x = y   строка x идентична y&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;x != y    строка х не совпадает y&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-n x   выражение истинно, если строка х ненулевой длины&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;-z x   выражение истинно, если строка х имеет нулевую длину&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Скрипт, приведенный выше, нетрудно понять, за исключением, может быть, только этой строки:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;x=$(expr $x + 1)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Комментарий приведенный выше он говорит нам, что он увеличивает х на 1. Но что означает запись $ (...)? Это переменная? Нет. На самом деле это способ сказать оболочке, что вы хотите запустить команду expr $x + 1, и присвоить результат ее выполнения - х. Любая команда, заключенная в $ (...) будет выполняться:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;me=$(whoami) &lt;br /&gt;echo "Привет! Меня зовут $me" &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Попробуйте сделать приведенный пример, и вы поймете, что я имею в виду. Приведенный выше код можно было бы сократить без каких-либо потерь вот так:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash&lt;br /&gt;echo "Привет! Меня зовут $(whoami)" &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Вы сами можете выбрать, какая из записей вам ближе и понятнее. Существует и другой способ для выполнения команд или передачи результата их выполнения переменной. Как это сделать - будет объяснено позже. Пока используйте запись вида $(...).  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;until … do … done&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Оператор until применяет способом аналогичным приведенному выше while. Разница лишь в том, что условие работает наоборот. Цикл while выполняет до тех пор&lt;span style="font-weight: normal;"&gt; &lt;/span&gt;&lt;b&gt;пока условие&lt;/b&gt; &lt;b&gt;истинно&lt;/b&gt;. Цикл until - до тех пор &lt;b&gt;пока условие не станет истинным&lt;/b&gt;. Например:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash  &lt;br /&gt;x=0&lt;br /&gt;until [ "$x" -ge 10 ]; do &lt;br /&gt;echo "Текущее значение х равно $ х" &lt;br /&gt;x=$(expr $x + 1) &lt;br /&gt;sleep 1 &lt;br /&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Эта часть кода выглядит знакомой. Попробуйте ее набрать и посмотреть, что он делает. Приведенный цикл будет работать, пока x не станет больше или равен 10. Когда величина x достигнет значения 10, цикл остановится. Таким образом, последнее значение напечатанное значение х будет 9.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;for … in … do … done&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Цикл for используется, когда вам надо перебрать несколько значений переменной. Например, вы можете написать небольшую программу, которая печатает 10 точек:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;echo -n "Проверка системы на наличие ошибок" &lt;br /&gt;for dots in 1 2 3 4 5 6 7 8 9 10; do &lt;br /&gt;echo -n "." &lt;br /&gt;done &lt;br /&gt;echo "Ошибок не обнаружено"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Опция -n команды echo предотвращает автоматический перевод строки. Попробуйте один раз вариант с -n и вариант без этой опции, чтобы понять, что я имею в виду. Переменная dots последовательно принимает значения от 1 до 10 и одновременно скрипт печатает на экране точку.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Приведенный дальше пример показывает, что я имею в виду под выражением «переменная последовательно принимает несколько значений»:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;for x in paper pencil pen; do  &lt;br /&gt;echo "значение переменной х равно $х" &lt;br /&gt;sleep 1 &lt;br /&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;При запуске программы, вы видите, что х сначала имеет значение «pencil», а затем она принимает значение «pen». Когда у переменной заканчивается список возможных значений, цикл завершается.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Ниже приведен гораздо более полезный пример. Этот скрипт добавляет расширение .html для всех файлов в текущей директории (&lt;i&gt;Этот скрипт реально так поступает и вам возможно это не нужно. Поэтому все-таки создайте отдельного пользователя, если вы еще до сих пор этого не сделали, и экспериментируйте под ним. - Прим. перев.&lt;/i&gt;):  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;for file in *; do  &lt;br /&gt;echo "Добавляем расширение .html для файла $file ..." &lt;br /&gt;mv $file $file.html &lt;br /&gt;sleep 1 &lt;br /&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Символ * имеет специальное значение, которое в данном случае означает "все в текущем каталоге", т.е. - все файлы в каталоге. Переменная file последовательно принимает значения, соответствующие именам файлов в текущем каталоге. Затем используется программа mv для переименования файла в файл с расширением .html:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;case … in … esac&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Оператор case очень похож на if. Он отлично подходит для тех случаев, когда нужно проверить несколько условий, и вы не хотите для этого использовать несколько вложенных операторов if. Поясним на примере:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;x=5 # инициализируем х значением 5 &lt;br /&gt;# проверяем значение х: &lt;br /&gt;case $x in &lt;br /&gt;0) echo "значение х равно 0" &lt;br /&gt;;; &lt;br /&gt;5) echo "значение х равно 5" &lt;br /&gt;;;&lt;br /&gt;9) echo "значение х равно 9" &lt;br /&gt;;;&lt;br /&gt;*) echo "значение неизвестно" &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;     ;; &lt;br /&gt;esac &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Оператор case проверяет переменную х на равенство трем значениям. В приведенном примере, он сначала проверит, равен ли х нулю 0, затем равен ли он 5, затем равен ли он 9. И, если все проверки завершились неудачно, скрипт выведет сообщение, что значение x определить не получилось. Помните, что «*» означает «все», и в этом случае, «любое другое значение, помимо указанных явно». Если х имеет любое другое значение, отличное от 0, 5 или 9, то это значение попадает во категорию «*». При использовании сase каждое условие должно заканчиваться двумя точками с запятой.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Зачем нужно использовать case, когда вы можно использовать if? Ниже приведен пример эквивалентного скрипта, написанного с использованием if. Решение о том, что быстрее написать и легче прочесть, предлагается принять самостоятельно ;) :&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;x=5 # инициализируем х значением 5 &lt;br /&gt;if [ "$x" -eq 0 ]; then &lt;br /&gt;echo "Значение х равно 0" &lt;br /&gt;elif [ "$x" -eq 5 ]; then &lt;br /&gt;echo "значение х равно 5" &lt;br /&gt;elif [ "$x" -eq 9 ]; then &lt;br /&gt;echo "значение х равно 9" &lt;br /&gt;else&lt;br /&gt;echo "Значение х определить не удалось" &lt;br /&gt;fi &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;Использование кавычек&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Кавычки играют важную роль в написании скриптов оболочки. Существует три типа кавычек. Это двойные кавычки: ", одинарные '  (апостроф) и обратные ` (&lt;i&gt;находятся слева от клавиши 1. Прим. перев.&lt;/i&gt;). Имеет ли каждый из приведенных видов какое-то особое значение? Да.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;b&gt;Примечание&lt;/b&gt;&lt;b&gt;:&lt;/b&gt; Статья &lt;a href="http://learnbyexamples.org/linux/linux-tip-how-to-use-wildcards-quotes-back-quotes-and-apostrophes-in-shell-commands.html"&gt;&lt;span style="color: #3333ff;"&gt;Wildcards, Quotes, Back Quotes, Apostrophes in shell commands ( * ? [] ” ' ')&lt;/span&gt;&lt;/a&gt; прекрасно описывает использование специальных символов. Пожалуйста, ознакомьтесь с ней в случае, если вы не знакомы с использованием этих специальных символов в скриптах оболочки. Ниже приведено краткое объяснение использования некоторых из них.&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Двойные кавычки используются главным образом для объединения нескольких слов в строку и сохранения в ней пробелов. Например, "Эта строка содержит пробелы". Строка, заключенная в двойные кавычки рассматривается как единое целое. Например:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ mkdir hello world &lt;br /&gt;$ ls -F &lt;br /&gt;hello/  world/&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Здесь мы создали две директории. Команда mkdir принимает два слова hello и world, как два отдельных аргумента, и поэтому создает два каталога. Теперь посмотрим, а что произойдет, если написать код таким образом:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ mkdir “hello world” &lt;br /&gt;$ ls -F &lt;br /&gt;hello/ hello world/ world/&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Команда создала каталог с именем из двух слов. Кавычки объединили два слова в один аргумент.&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;(&lt;i&gt;Главным образом, дело в том, что bash воспринимает пробел как разделитель &lt;/i&gt;&lt;i&gt;всего, что только можно - опций, аргументов, &lt;/i&gt;&lt;i&gt;отдельных команд&lt;/i&gt;&lt;i&gt;. Внутри двойных кавычек пробел теряет свое специальное значение. &lt;/i&gt;&lt;i&gt;- &lt;/i&gt;&lt;i&gt;Прим. перев.&lt;/i&gt;).  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Одинарные кавычки в основном используются для работы с переменными. Если переменная находится в двойных кавычках, то к ней можно обратиться через $имя_переменной.Если переменная находится в одинарных кавычках - это не возможно. Чтобы пояснить это приведем пример:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash &lt;br /&gt;x=5 # задаем х равным 5 &lt;br /&gt;# используем двойные кавычки &lt;br /&gt;echo "Используем двойные кавычки, значение х равно $х" &lt;br /&gt;# используем одинарные кавычки &lt;br /&gt;echo 'Используем одинарные кавычки, значение х равно $х' &lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Почувствовали разницу? Вы можете использовать двойные кавычки, если вы не планируете использовать переменные для строки, которая в них находится. И да, если вам интересно, прямые кавычки также можно использовать для сохранения пробелов в строке тем же способом, что и двойные кавычки  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;$ mkdir 'hello world' &lt;br /&gt;$ ls -F  &lt;br /&gt;hello world/&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Обратные кавычки сильно отличаются от двойных и одинарных. Они не могут использоваться для сохранения пробелов. Если вы помните, выше мы использовали такую строку:&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;x=$(expr $x + 1)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Как вы уже знаете, результатом работы этой команды будет то, что выражение $х + 1 присваивается переменной x. Того же результата можно достичь и с использованием обратных кавычек:  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;x='expr $x + 1′&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Какой тип кавычек лучше использовать? Тот, что вам больше нравится. Изучая скрипты вы найдете, что обратные кавычки используются чаще, чем запись $(...) . Тем не менее, я считаю, $ (...) легче читать, особенно если у вас код наподобие этого:&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;b&gt;&lt;span style="font-family: Nimbus Mono L,monospace;"&gt;&lt;span style="font-weight: normal;"&gt;#!/bin/bash&lt;br /&gt;echo “I am 'whoami'”&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;i&gt;(На мой взгляд, лучше использовать именно запись типа $(...), потому что запись в обратных кавычках и одинарных можно легко перепутать при наборе кода и при его чтении. - Прим. перев.)&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Это только начало. Вы узнаете еще много чего интересного в заключительной части этой статьи (&lt;i&gt;надеюсь со временем, &lt;/i&gt;&lt;i&gt;как только текст появится, &lt;/i&gt;&lt;i&gt;осилить и его перевод. - Прим. перев.&lt;/i&gt;). А пока вы ее ждете - удачного вам написания скриптов...&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="RIGHT" style="margin-bottom: 0cm;"&gt;&lt;a href="http://learnbyexamples.org/linux/bash-programming-tutorial-1-a-quick-introduction.html"&gt;Оригинал статьи&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;Статья также опубликована &lt;a href="http://freeschool.altlinux.ru/?p=3319"&gt;здесь&lt;/a&gt;. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-8779513216969209894?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/8779513216969209894/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/10/bash-1.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/8779513216969209894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/8779513216969209894'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/10/bash-1.html' title='Краткое введение в программирование на Bash - часть I'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-5764687372314859140</id><published>2010-09-22T22:00:00.001+04:00</published><updated>2010-09-22T22:02:12.508+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='дистрибутивы'/><category scheme='http://www.blogger.com/atom/ns#' term='debian/ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='выбор'/><title type='text'>Поскреби Ubuntu, получишь Debian...</title><content type='html'>&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }&lt;/style&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;i&gt;Относительно недавно кто-то (не помню кто) из сообщества Debian высказывался, что Ubuntu использует 75%  пакетов из Debian без изменений. Вот я и решил поставить один эксперимент, результаты которого приведены ниже.  &lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Итак, берем Ubuntu Alternate CD, вставляем в диск и перезагружаемся. На всякий случай, я все свои эксперименты проводил в виртуалке в Virtualbox. В установщике выбираем режим экспертной установки и ставим только базовую систему. Можно еще в диалоге создания учетных записей разрешить учетную запись root. Меня в Ubuntu больше всего раздражает заблокированная учетка root и неправильно настроенная sudo. После перезагрузки входим в систему и ставим пакет gnome-desktop-environment. Те, кто использует Debian, наверняка знает, что этим метапакетом ставится GNOME.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;Затем пускаем службу GDM и получаем вот такую картинку:&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_zHyeYQyYSXw/TJpCntcbwTI/AAAAAAAAAO0/54YS0PwAHH0/s1600/ubuntu1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://s42.radikal.ru/i096/1009/c9/a40f2aef8801.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="528" src="http://s42.radikal.ru/i096/1009/c9/a40f2aef8801.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;После входа в систему наблюдаем вот такой рабочий стол (обратите внимание на расположение кнопок окна):&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://s006.radikal.ru/i213/1009/f8/7063e17ba6b1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="528" src="http://s006.radikal.ru/i213/1009/f8/7063e17ba6b1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;А чтобы все программы, требующие административных привелегий в GNOME, спрашивали пароль root, а не пользовательский, делаем следующее. Запускаем в терминале gksu-properties и устанавливаем целых две настройки вот так:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://s004.radikal.ru/i205/1009/33/6a82b734985e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="528" src="http://s004.radikal.ru/i205/1009/33/6a82b734985e.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Первый раскрывающийся список указывает какую программу запускать при требовании административных привелегий: su или sudo и, соответственно, от этого будет зависеть какой именно из паролей будет запрашиваться. Второй список включает или выключает принудительный захват фокуса окном, требующим привелегий.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Ну а тем, кто хочет восстановить статус-кво, нужно поставить пакет ubuntu-artwork. Получится в итоге вот такое:&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i054.radikal.ru/1009/dc/cacd0f1f8842.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="528" src="http://i054.radikal.ru/1009/dc/cacd0f1f8842.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Заметьте, что теперь кнопки переехали в левую часть заголовка...&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;Дальше с этой системой можно делать все, что угодно :) - доустановить нужные пакеты, оформление... Так что мы, практически, получаем почти Debian с более новыми пакетами.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-5764687372314859140?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/5764687372314859140/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/ubuntu-debian.html#comment-form' title='Комментарии: 12'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/5764687372314859140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/5764687372314859140'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/ubuntu-debian.html' title='Поскреби Ubuntu, получишь Debian...'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-2674086064153273061</id><published>2010-09-21T23:07:00.002+04:00</published><updated>2010-10-09T21:32:02.916+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='сертификации'/><category scheme='http://www.blogger.com/atom/ns#' term='информация к размышлению'/><category scheme='http://www.blogger.com/atom/ns#' term='novell'/><category scheme='http://www.blogger.com/atom/ns#' term='переводы'/><category scheme='http://www.blogger.com/atom/ns#' term='redhat/fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='выбор'/><title type='text'>Почему нам не нужен третий дистрибутив Linux</title><content type='html'>&lt;i&gt;Это мой перевод еще одной статьи из блога Novell о том, нужен ли рынку решений дистрибутив Linux от Oracle. Статья мне показалась интересной, хотя бы своим тоном по отношению к недавнему покупателю Sun. Ссылка на оригинал - в конце статьи.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }a:link { color: rgb(0, 0, 128); text-decoration: underline; }em { font-style: italic; }&lt;/style&gt;  &lt;br /&gt;&lt;div align="LEFT"&gt;&lt;i&gt;Майкл Аппельбаум, директор по Linux-решениям&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Хорошо известно, что &lt;a href="http://www.novell.com/linux/"&gt;Novell&lt;/a&gt; и &lt;a href="http://www.redhat.com/rhel/"&gt;Red Hat&lt;/a&gt; по-прежнему задают тон, когда речь идет о Linux для промышленных решений, но Oracle пытается прорекламировать &lt;a href="http://www.oracle.com/us/corporate/press/173453"&gt;новое решение на Linux&lt;/a&gt;, которым она надеется улучшить свое состояние на этом рынке. Изменят ли эти последние новости отношение этого рынка к Oracle? Эксперты с этим  &lt;a href="http://blogs.computerworld.com/16997/oracle_rips_red_hat_and_sort_of_launches_a_new_linux"&gt;не согласны&lt;/a&gt;.  &lt;/div&gt;&lt;div align="LEFT"&gt;Лучше всего задаться таким вопросом: а нужен ли корпоративному рынку еще один дистрибутив Linux?&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Когда дело доходит до корпоративных решений на Linux, Novell и Red Hat по-прежнему доминируют на рынке. В последних &lt;a href="http://www.idc.com/getdoc.jsp?containerId=219380"&gt;результатах, представленных IDC&lt;/a&gt;, Novell и Red Hat совместно получают 95% доходов от Linux, причем в прошлом году эта доля была 94%. Oracle же не достигла даже 1% о доходов рынка Linux. Несмотря на заявления Oracle о наличии тысяч клиентов по Linux-направлению, аналитикам еще предстоит увидеть ее хоть сколь-нибудь заметное влияние на рынок. Между тем, доля Novell здесь  продолжает расти, увеличившись за последний год на 5&lt;span style="color: black;"&gt; процентов с&lt;/span&gt; аналогичным снижением доли Red Hat. &lt;/div&gt;&lt;div align="LEFT"&gt;Так почему только эти два дистрибутива Linux из многих существующих сегодня удерживают более 90% коммерческого рынка? &lt;span style="color: black;"&gt;Причем, они завоевали множество сегментов рынка и имеют среди своих приверженцев много состоятельных компаний. &lt;/span&gt; &lt;/div&gt;&lt;div align="LEFT"&gt;Почему же есть только два успешных коммерческих поставщика Linux? Во-первых, для создания и поддержки Linux-дистрибутива корпоративного класса необходимо наличие  хорошей инфраструктуры. Не так легко получить право на поддержку сертифицированных приложений, причем тут есть определенный элемент проблемы «курица-яйцо». Только Novell и Red Hat имеют каталог приложений, которые исчисляются тысячами, причем Novell &lt;a href="http://www.slideshare.net/NOVL/suse-linux-vs-redhat-enterprise-linux"&gt;опережает Red Hat по этому показателю в два раза&lt;/a&gt; и предлагает &lt;a href="http://www.novell.com/partner/isv/isvcatalog"&gt;более 500 сертифицированных приложений Oracle&lt;/a&gt;. Предоставление поддержки корпоративного класса - сложное и дорогое занятие, хоть это и не препятствие для Oracle. И, чтобы сделать такие инструменты как &lt;a href="http://susestudio.com/"&gt;SUSE Studio&lt;/a&gt; для развертывания приложений для облачных вычислений, требуются инновационное мышление и ресурсы. Другими словами, для входа на этот рынок есть реальные барьеры, даже если это рынок, которые может кое-кому показаться коммодитизированным (&lt;i&gt;Это термин, который я решил не переводить. Самое нормальное объяснение ему я нашел &lt;a href="http://urbansheep.livejournal.com/1621671.html"&gt;здесь&lt;/a&gt;. Вот цитата оттуда: «Коммодитизация — то, что случается с продуктами, которые становятся достаточно дешёвыми в массовом производстве, и вместо одного уникального товара возникает море из торговых марок. Различий в потребительских качествах между разными брендами не остаётся, так что прежние звёзды теряют при этом свою уникальность. «Компьютер станет также распространён, как микроволновая печь» — это коммодитизация.». - Прим. перев.&lt;/i&gt;).  &lt;/div&gt;&lt;div align="LEFT"&gt;Давайте с вами рассмотрим - имеется ли на рынке потребность в третьем дистрибутиве Linux? Давайте посмотрим на эту ситуацию глазами клиента, купившего поддержку Linux от Oracle:&lt;/div&gt;&lt;div align="LEFT"&gt;Будет ли это поставщик решений с б&lt;b&gt;О&lt;/b&gt;льшим опытом, чем Novell и Red Hat? Нет.&amp;nbsp;&lt;/div&gt;&lt;div align="LEFT"&gt;Будет ли это поставщик, который будет привержен идее Linux-инноваций для всех физических, виртуальных и облачных платформ, которые могут понадобиться клиентам? Нет. В центре интересов Oracle находится только сам Oracle. Если вам потом понадобится купить решение VMware или для мэйнфреймов, что ж надо было думать раньше.  &lt;/div&gt;&lt;div align="LEFT"&gt;Будет ли это поставщик, заинтересованный в развитии Linux как стратегической платформы и уделяющий особое внимание ее разработке? Опять нет. (Просто попросите кого-нибудь из Oracle объяснить сегменты рынка и указать рекомендуемые области использования Solaris и Oracle Linux, а затем смотрите, как они будут выкручиваться).&lt;/div&gt;&lt;div align="LEFT"&gt;В конечном счете, все дело в том, что рынку просто не нужен третий дистрибутив Linux. Наличие двух сильных игроков - Novell и Red Hat - делает рынок достаточно конкурентным, и наши команды по R&amp;amp;D совместно с талантливыми людьми из сообщества ПО с открытым исходным кодом рождают исключительные инновации в таких областях как виртуализация, облачные вычисления, кластеры и HA-решения, управление предприятиями. Хотя, безусловно, в интересах Oracle быть на рынке решений Linux, ведь их доля на рынке отстает.  &lt;/div&gt;&lt;div align="LEFT"&gt;Конечно, нужно признать историческую роль Oracle в качестве сильного партнера экосистемы Linux, включая Novell, с такими инициативами, как &lt;a href="http://en.wikipedia.org/wiki/OCFS"&gt;OCFS&lt;/a&gt; и &lt;a href="http://www.oracle.com/us/corporate/press/077158"&gt;тесты баз данных Oracle&lt;/a&gt; на разных дистрибутивах Linux, включая SUSE Linux Enterprise Server. Это ключевые элементы, которые делают нынешний Linux таким ярким.  &lt;/div&gt;&lt;div align="LEFT"&gt;Вопрос: нужен ли клиентам третий дистрибутив Linux? Пока по крайней мере, другого ответа, кроме «нет» найти нельзя.&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;a href="http://www.novell.com/prblogs/?p=3070"&gt;Оригинал на английском&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-2674086064153273061?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/2674086064153273061/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/linux.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/2674086064153273061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/2674086064153273061'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/linux.html' title='Почему нам не нужен третий дистрибутив Linux'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-491025866194047316</id><published>2010-09-19T15:33:00.006+04:00</published><updated>2010-09-19T15:49:28.330+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='информация к размышлению'/><category scheme='http://www.blogger.com/atom/ns#' term='novell'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='переводы'/><category scheme='http://www.blogger.com/atom/ns#' term='redhat/fedora'/><title type='text'>Кто покупает Novell? Делайте ваши ставки!</title><content type='html'>&lt;i&gt;Мой перевод статьи-размышления от Joe Brockmeier о том, кому может достаться Linux-бизнес Novell&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; page-break-after: avoid; }h1.western { font-family: "Times New Roman",serif; font-size: 24pt; font-weight: bold; }h1.cjk { font-family: "DejaVu Sans"; font-size: 24pt; font-weight: bold; }h1.ctl { font-family: "DejaVu Sans"; font-size: 24pt; font-weight: bold; }a:link { color: rgb(0, 0, 128); text-decoration: underline; }em { font-style: italic; }&lt;/style&gt;  &lt;br /&gt;&lt;h1 align="LEFT" class="western" style="font-family: Verdana,sans-serif; margin-bottom: 0.2cm; margin-top: 0.2cm;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;Прошел слух, &lt;/span&gt;&lt;a href="http://www.nypost.com/p/news/business/novell_inc_reaches_two_part_sale_lZKRHKFYO5T9cKq9Dy7WQO"&gt;&lt;span style="font-weight: normal;"&gt;что Novell достигла предварительного соглашения о продаже&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;, что расколет ее бизнес на две части и продаст ее Linux-отделение "неназванному стратегическому покупателю". Предполагая, что сделка все-таки состоится, кто же &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;этот покупатель&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;, и что это &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;будет &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;означат&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;ь&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt; для SUSE и &lt;a href="http://www.opensuse.org/"&gt;проекта OpenSUSE&lt;/a&gt; ?&lt;/span&gt;&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/h1&gt;&lt;h1 align="LEFT" class="western" style="font-family: Verdana,sans-serif; margin-bottom: 0.2cm; margin-top: 0.2cm;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;Краткая отмазка: Novell мой бывший работодатель. Я ушел из компании в конце января, и, насколько я знаю, &lt;/span&gt;&lt;a href="http://www.networkworld.com/news/2010/030310-novell.html"&gt;&lt;span style="font-weight: normal;"&gt;предложение в 2 млрд. долларов&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt; от Elliott Associates тогда еще даже не обсуждалось. Во всяком случае у меня нет какой-либо внутренней информаци&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;и&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt; (позвони же мне, Ян...), так что написанное ниже - всего лишь мои размышления. У меня нет никакой заинтересованности в каком-то определенном покупателе. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;Я только &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;наде&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;юсь&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;, что мои бывшие коллеги будут работать в компании, которая будет относиться с уважением к ним &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt;и &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: normal;"&gt; проекту OpenSUSE. &lt;/span&gt;&lt;/span&gt; &lt;/h1&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Давайте рассмотрим потенциальных покупателей. Novell недавно заключила несколько стратегических соглашений с &lt;a href="http://www.networkworld.com/news/2010/060910-vmware-novell-partner-on-linux.html"&gt;VMware&lt;/a&gt;, и имеет давние партнерские отношения с &lt;a href="http://www.novell.com/partners/ibm/"&gt;IBM&lt;/a&gt; и &lt;a href="http://www.novell.com/partners/sap/"&gt;SAP&lt;/a&gt;. Oracle сейчас также находится в режиме постоянных приобретений, и, вполне возможно, захочет закусить бизнесом SUSE Linux после своей покупки Sun. Но зачем было разрушать нарождающееся сообщество открытого исходного кода (OpenSolaris), когда можно иметь два (OpenSUSE)?  &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Давайте начнем с Oracle. Oracle имеет свою собственную платформу &lt;a href="http://wiki.oracle.com/page/Oracle+VM"&gt;Oracle VM&lt;/a&gt;, имеющую в основе Xen и Red Hat Enterprise Linux(RHEL). Ну хорошо, RHEL с логотипами Oracle. Oracle Unbreakable Linux &lt;a href="http://blogs.oracle.com/sergio/2010/05/the_oracle_enterprise_linux_so.html"&gt;полностью бинарно совместим&lt;/a&gt; с RHEL безо всяких излишних затрат на развитие, которые Red Hat фактически вкладывает свой дистрибутив.  &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Правда, есть одна маленькая проблема, в грядущем релизе Red Hat просто выкинет Xen в окно, предпочитая ему KVM. Oracle должен будет либо последовать ее примеру и инвестировать в такой переход, или ей придется нарушить совместимость с RHEL после релиза RHEL 6. Если Oracle останется на Xen, ей придется подумать о переходе на другой дистрибутив. Novell по-прежнему до сих пор не вкладывает свои деньги ни в одну платформу, предпочитая стратегию «и нашим и вашим», то есть поддерживая все платформы виртуализации.  &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Возможно, я излишне оптимистичен, но я считаю маловероятным то, что Oracle собирается поглотить бизнес SUSE. Если это произойдет, я не верю в будущее проекта OpenSUSE. Даже если Oracle все же решит поддерживать его, стиль работы Oracle с сообществом отвратителен. Покупка Oracle сильно затормозит тот прогресс, на который взял курс этот проект, и, кажется, весьма вероятно, что компания увидит «утечку мозгов» подобно той, что произошла после покупки Sun.  &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;IBM - другой претендент. IBM поддерживает партнерские отношения со всеми крупными Linux-компаниями: SUSE, затем Novell, Red Hat и Canonical. Покупка одного из трех и создание своего собственного дистрибутива выглядит не слишком хорошо. Это может даже сделать Red Hat одним из конкурентов IBM, чего никто не хочет. Но IBM и Novell сильно завязаны друг на друге в бизнесе мэйнфреймов, поэтому IBM &lt;i&gt;может&lt;/i&gt; решить, что иметь в своем портфеле SUSE будет очень хорошо. Если IBM серьезно относится к форку OpenOffice.org - Symphony, то она также может захотеть заполучить кого-то из разработчиков Novell, участвующих в &lt;a href="http://go-oo.org/"&gt;Go-OO.org&lt;/a&gt;. Хотя это, вероятно, подтолкнет HP, Dell и других к Red Hat или другим дистрибутивам. IBM может быть хорошим управленцем для сообщества OpenSUSE; безусловно, гораздо более лучшим, чем Oracle.  &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Еще один из вариантов - SAP. У нее много стратегических соглашений с Novell/SUSE и много крупных клиентов на SUSE Linux. Но SAP использует также другие продукты Novell, что входит в противоречие со слухом, что компания покупает &lt;i&gt;только&lt;/i&gt; Linux-отделение, а все остальное достанется инвестиционным фирмам. Если SAP собиралась бы купить Novell, кажется, более вероятно, что она бы просто купила компанию целиком без лишней суеты.  &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Все это подводит меня к наиболее вероятному выбору: VMware. VMware в последнее время уже покупала другие решения с открытым исходным (&lt;a href="http://www.networkworld.com/news/2010/011210-vmware-buys-zimbra.html"&gt;Zimbra&lt;/a&gt;, &lt;a href="http://www.networkworld.com/news/2009/081009-vmware-springsource-java-merger-apache-tomcat.html"&gt;SpringSource&lt;/a&gt;), поэтому не будет преувеличением сказать, что эта компания, возможно, захочет добавить SUSE Linux в свой портфель. VMware также может захотеть иметь свой собственный дистрибутив Linux, чтобы помочь своим клиентам и партнерам построить больше готовых решений, которые будут работать на продуктах VMware для виртуализации. И для этого на рынке нет лучшего решения, чем SUSE Studio. Мне кажется, что SUSE Studio - это действительно хорошее дополнение к VMware Appliance Marketplace. Red Hat сейчас только на пути построения своего собственного решения для виртуализации, так что это также помогло бы конкурировать VMware с поставщиком Linux номер один.  &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Как это отразится на проекте OpenSUSE и SUSE Linux в целом? Думаю, что все будет по крайней мере также, если не лучше, по сравнению с тем периодом, когда у руля стояла Novell. &lt;/span&gt;&lt;span style="color: black; font-size: small;"&gt;Скорее даже лучше&lt;/span&gt;&lt;span style="color: black; font-size: small;"&gt;, потому что Novell &lt;/span&gt;&lt;span style="color: black; font-size: small;"&gt;временами впадает в &lt;/span&gt;&lt;span style="color: black; font-size: small;"&gt;кризис &lt;/span&gt;&lt;span style="color: black; font-size: small;"&gt;самоидентификации,&lt;/span&gt;&lt;span style="font-size: small;"&gt; когда она пытается разобраться, как все ее бизнес-единицы сочетаются друг с другом. SUSE же идеально впишется в стратегию компании VMware - по крайней мере, на взгляд со стороны.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;И в завершение совсем кратко - а что же Microsoft? Вот это точно вряд ли. Мне трудно представить себе, как она собирается действовать, оставаясь в рамках антимонопольного законодательства.   &lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Так кто же скрывается под неизвестным «стратегическим покупателем»?&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Я ставлю все, что у меня есть, на VMware, но я вполне могу оказаться неправ. Это могут быть IBM, SAP, или (только не это!) Oracle. Или это кто-то другой, о котором я не подумал. Есть варианты?&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="RIGHT" style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.networkworld.com/community/blog/whos-buying-novell-place-your-bets"&gt;Оригинал статьи&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }&lt;/style&gt;  &lt;br /&gt;&lt;div align="LEFT"&gt;&lt;span style="font-size: small;"&gt;От переводчика.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-size: small;"&gt;Что не удалось Novell?&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-size: small;"&gt;Первое: никакой маркетинг. Novell имеет прекрасный набор продуктов для полноценного построения инфраструктуры предприятия любого масштаба - eDirectory, ZenWorks, все сервисы OES. Причем, каждый из этих продуктов пока не имеет конкурентов по полноте охвата всех имеющихся платформ и по своему функционалу.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="font-size: small;"&gt;Второе: слабая работа с сообществом. Пример такой работы следовало бы брать с конкурента номер 1. Novell участвует во многих открытых проектах, но мало кому известны масштабы этого участия.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;У Novell реально классные продукты. У нас на курсах многие администраторы с теплом  в глазах вспоминали Netware, надежность которой осталась непревзойденной до сих пор. И очень жаль что эта операционная система оказалась вытесненной продуктом гораздо худшего качества.&lt;/span&gt;&amp;nbsp; &lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-491025866194047316?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/491025866194047316/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/novell.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/491025866194047316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/491025866194047316'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/novell.html' title='Кто покупает Novell? Делайте ваши ставки!'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-927407541729576070</id><published>2010-09-17T11:00:00.001+04:00</published><updated>2010-09-17T11:01:11.977+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='лицензии'/><category scheme='http://www.blogger.com/atom/ns#' term='свобода'/><category scheme='http://www.blogger.com/atom/ns#' term='информация к размышлению'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Другой путь к свободе</title><content type='html'>&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; page-break-after: avoid; }h3.western { font-family: "Times New Roman",serif; font-size: 14pt; font-weight: bold; }h3.cjk { font-family: "Lucida Sans Unicode"; font-size: 14pt; font-weight: bold; }h3.ctl { font-family: "Mangal"; font-size: 14pt; font-weight: bold; }a:link { color: rgb(0, 0, 128); text-decoration: underline; }&lt;/style&gt;&lt;br /&gt;&lt;div align="LEFT"&gt;&lt;i&gt;Предлагаю вниманию читателей блога интересные размышления о свободе и свободном ПО, автор которых Jos Poortvliet - нынешний лидер сообщества openSUSE.&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;i&gt;&lt;b&gt;Дисклеймер&lt;/b&gt;: политические взгляды переводчика могут не совпадать с мнением автора статьи&lt;/i&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;Jos Poortvliet  &lt;/div&gt;&lt;div align="LEFT"&gt;В конце прошлой недели Нью-Йорк Таймс поместила &lt;a href="http://www.nytimes.com/2010/09/12/world/europe/12raids.html?pagewanted=2&amp;amp;_r=1"&gt;историю&lt;/a&gt; о том, как правительство России использует вопросы лицензирования программного обеспечения для борьбы с протестами и митингами несогласных. В статье объясняется, что русская милиция изымает их компьютеры под предлогом использования пиратского программного обеспечения. В результате данные, полученные из этих компьютеров, помогают органам изучить планы активистов, что в дальнейшем приводит к их арестам.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="color: black;"&gt;И х&lt;/span&gt;&lt;span style="color: black;"&gt;отя Microsoft отреагировала на &lt;/span&gt;&lt;span style="color: black;"&gt;эту &lt;/span&gt;&lt;span style="color: black;"&gt;ситуацию &lt;/span&gt;&lt;span style="color: black;"&gt;выдач&lt;/span&gt;&lt;span style="color: black;"&gt;ей&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;разрешительных&lt;/span&gt;&lt;span style="color: black;"&gt; лицензи&lt;/span&gt;&lt;span style="color: black;"&gt;й&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;для таких организаций&lt;/span&gt;&lt;span style="color: black;"&gt;, чита&lt;/span&gt;&lt;span style="color: black;"&gt;я&lt;/span&gt;&lt;span style="color: black;"&gt; статью &lt;/span&gt;&lt;span style="color: black;"&gt;я подумал&lt;/span&gt;&lt;span style="color: black;"&gt;, что есть другой, &lt;/span&gt;&lt;span style="color: black;"&gt;гораздо &lt;/span&gt;&lt;span style="color: black;"&gt;лучший способ &lt;/span&gt;&lt;span style="color: black;"&gt;помешать органам использовать тему &lt;/span&gt;&lt;span style="color: black;"&gt;лицензирования &lt;/span&gt;&lt;span style="color: black;"&gt;ПО как повод для арестов&lt;/span&gt;&lt;span style="color: black;"&gt;. Хот&lt;/span&gt;&lt;span style="color: black;"&gt;ь&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;этот &lt;/span&gt;способ не остановит авторитарные правительства от борьбы с инакомыслящими,  использование свободного и открытого программного обеспечения может затруднить органам узаконить этот тип действий.  &lt;/div&gt;&lt;div align="LEFT"&gt;Во-первых, философия свободы пронизывает все существо тех мужчин и женщин в сообществе, разрабатывающем программное обеспечение с открытым исходным кодом, что приводит ко многим нововведениям, препятствующим ограничениям свобод. Например, это такие вещи, как &lt;a href="http://en.wikipedia.org/wiki/GNU_Privacy_Guard"&gt;шифрование с помощью GPG&lt;/a&gt; и &lt;a href="http://en.wikipedia.org/wiki/Tor_%28anonymity_network%29"&gt;технология TOR&lt;/a&gt;, которые делают возможным использование анонимных коммуникаций для миллионов пользователей в таких странах, как Китай и Иран. Не говоря уже о том, что в мире открытого ПО у нас есть сильный акцент на безопасность и защиту от таких угроз, как вирусы или "бекдоры", помещаемые в коммерческое ПО путем давления со стороны правительств.  &lt;/div&gt;&lt;div align="LEFT"&gt;&lt;span style="color: black;"&gt;Во-вторых, с&lt;/span&gt;&lt;span style="color: black;"&gt;ообщество открытого ПО делает акцент на устранении существующих ограничений для людей &lt;/span&gt;&lt;span style="color: black;"&gt;- &lt;/span&gt;&lt;span style="color: black;"&gt;будь&lt;/span&gt;&lt;span style="color: black;"&gt;-то &lt;/span&gt;&lt;span style="color: black;"&gt;физические ограничения, как у &lt;/span&gt;&lt;span style="color: black;"&gt;инвалид&lt;/span&gt;&lt;span style="color: black;"&gt;ов&lt;/span&gt;&lt;span style="color: black;"&gt;, или &lt;/span&gt;&lt;span style="color: black;"&gt;для &lt;/span&gt;&lt;span style="color: black;"&gt;те&lt;/span&gt;&lt;span style="color: black;"&gt;х&lt;/span&gt;&lt;span style="color: black;"&gt;, кто нуждается &lt;/span&gt;&lt;span style="color: black;"&gt;в том&lt;/span&gt;&lt;span style="color: black;"&gt;, чтобы защитить себя от любопытных глаз цензуры в своей стране. Мы&lt;/span&gt; создаем для таких людей инновационные и зачастую просто выдающиеся продукты, которые при незначительных или вообще нулевых затратах за использование дают им возможность получить преимущества в условиях развивающейся экономики. Чтобы свободно использовать, чтобы изучать и чтобы строить свой бизнес вокруг свободного ПО. Открытое программное обеспечение предлагает реальную альтернативу тем, кто нуждается в экономичных и социально-значимых вычислительных решениях.  &lt;/div&gt;&lt;div align="LEFT"&gt;И да, это РЕАЛЬНО лучший продукт, чем может предложить мир проприетарного ПО - несмотря на то, что он «другой» по своей сути. Свободное ПО не совершенно — например, как Нидерланды, где я живу, совсем не совершенны. В самом деле, чтобы нормально жить в моей стране, скажем, жителю Северной Кореи, нужен какой-то срок на адаптацию, примерно также, как и пользователю Windows нужно привыкнуть к использованию &lt;a href="http://opensuse.org/"&gt;openSUSE&lt;/a&gt;. Но в Нидерландах и с открытым ПО реально лучше, потому что они более свободны.  &lt;/div&gt;&lt;div align="LEFT"&gt;Да, мы создаем сильные и убедительные альтернативы проприетарному ПО. Но НЕ достаточно просто иметь лучший продукт - свобода это также его неотъемлемое качество. Работающий TOR-сервер - даже если вы живете в демократической стране и вам нечего скрывать - помогает жителям других стран, имеющих репрессивные правительства, потому что вы даете им возможность использовать ваше интернет-соединение - для сокрытия от любопытных глаз своего правительства. Свободное ПО воплощает ожидания и убеждения для деятельности, связанной со свободой и организацией сообществ, например, таких групп активистов, как &lt;a href="http://baikalwave.blogspot.com/"&gt;Baikal Wave&lt;/a&gt;. Любому лицу, группе или организации, которые желают действовать на основе того, во что верят, следует рассмотреть возможность использования свободного программного обеспечения как способ жить и работать без ущерба для своих убеждений.  &lt;/div&gt;&lt;div align="LEFT"&gt;Я не скажу, что свободное и открытое ПО делает мир совершенным - но это шаг в нужном направлении. В конце концов, «в мире, где общение речь зависит от ПО, свобода слова зависит от свободного ПО»! (D.B. Martin)  &lt;/div&gt;&lt;div align="RIGHT" lang="ru-RU" style="margin-bottom: 0cm;"&gt;&lt;a href="http://www.novell.com/prblogs/?p=3054"&gt;Оригинал статьи&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-927407541729576070?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/927407541729576070/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/blog-post.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/927407541729576070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/927407541729576070'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/blog-post.html' title='Другой путь к свободе'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-7969997511281391715</id><published>2010-09-15T21:32:00.004+04:00</published><updated>2010-09-16T09:28:34.371+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='информация к размышлению'/><category scheme='http://www.blogger.com/atom/ns#' term='debian/ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='переводы'/><title type='text'>Размышления Марка Шаттлворта об Ubuntu, Canonical и внедрении свободного программного обеспечения</title><content type='html'>&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }a:link { color: rgb(0, 0, 128); text-decoration: underline; }a.western:link {  }a.ctl:link {  }&lt;/style&gt;  &lt;br /&gt;&lt;i&gt;Те, кто регулярно читает opennet.ru, наверняка обратили внимание на горячее обсуждение письма Марка Шаттлворта о вкладе Canonical и Ubuntu в свободное ПО в целом. Почитав это письмо, я нашел в нем достаточно интересных мыслей, что сподвигло меня на перевод этого текста. Думаю, что мой перевод позволит словам Марка достичь гораздо большей аудитории.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Краткое резюме для тех, кто не хочет читать:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;1. Свободное ПО - это огромная область, работы на которой хватит всем. Поэтому и надо заниматься работой, а не считать кто и сколько сделал.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;2. Свободное ПО, как алмаз, который нуждается в правильной огранке, чтоб достичть своего пользователя. В истории IT есть много случаев, когда становились популярными не самые лучшие с точки зрения качества и надежности работы продукты. Поэтому, для популяризации свободного ПО нужно учитывать реальные потребности пользователей и подстраиваться под них.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Критика в адрес Canonical по поводу ее вклада в разработку ядра &lt;span lang="en-US"&gt;Linux&lt;/span&gt; и GNOME заставила меня задуматься: доволен ли я тем, чем занимаюсь каждый день моей жизни. Насколько для меня важно чувствовать, что результаты моей работы служат другим людям и делают мир лучше. Явлется ли мое&lt;span style="color: black;"&gt; участие в проекте &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span lang="en-US"&gt;Ubuntu &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span lang="ru-RU"&gt;тем делом, возможность &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background: none repeat scroll 0% 0% transparent;"&gt;заниматься которым можно посчитать за счастье.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span style="color: black;"&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background: none repeat scroll 0% 0% transparent;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;За последний месяц у меня было два случая, позволяющих положительно ответить на данный вопрос. Первый - письмо с благодарностью из Новой Зеландии, от человека, который отметил, что Ubuntu 10.04 внесла реальные изменения в жизнь его семьи. Для них этот проект, предоставляющий целостное, интегрированное окружение для работы и существующий благодаря труду тысяч людей, похож на маленькое чудо человеческой щедрости. Второй случай - контракт на поддержку десятков тысяч рабочих станций, работающих на Ubuntu 10.04. Общее между этими двумя случаями - два столпа, на которых зиждутся проекты Ubuntu и Canonical: предоставлять всему миру результаты труда огромного сообщества свободного программного обеспечения как подарок, бесплатно, свободно, без ограничений и делать это на постоянной основе.  &lt;br /&gt;&lt;br /&gt;Первая история из Новой Зеландии о тех, кто учит детей пользоваться компьютером с раннего возраста и наблюдает насколько больше они могут получить знаний от Ubuntu, чем от Windows, и насколько доступнее делать это с Ubuntu. Для них то, что Ubuntu приносит им весь мир свободного программного обеспечения как единое целое - это здорово, это - прорыв, и они очень благодарны за это.  &lt;br /&gt;&lt;br /&gt;Это история, повторение которой я надеюсь увидеть 100 миллионов раз. И она делает честь и приносит удовольствие не только мне, не только тем, кто отдает Ubuntu свою любовь и энергию, но и всем тем, кто участвует в разработке свободного ПО в целом. Ubuntu в отдельности не заслуживает всеобщего признания, это часть большой и сложной экосистемы, но без &lt;span lang="en-US"&gt;Ubuntu&lt;/span&gt; продвижение свободного программного обеспечения просто не достигло бы таких масштабов.  &lt;br /&gt;&lt;br /&gt;Мы все понимаем, что тело свободного ПО состоит из многих органов, многих клеток, каждая из которых имеет свои собственные приоритеты, интересы и назначение. Тело может существовать только благодаря их совместной работе. Мы лишь небольшая часть целого, это честь для нас - взять на себя ответственность в создании своего дистрибутива. Мы несем ответственность за выбор &lt;span lang="en-US"&gt;Ubuntu &lt;/span&gt;теми, кто только начинает свое путешествие в мир свободного ПО, и мы упорно работаем над тем, чтобы быть уверенными, что все ее компоненты хорошо складываются вместе.  &lt;br /&gt;&lt;br /&gt;Ubuntu и то, что она делает, не могло бы произойти без усилий прекрасного &lt;span lang="en-US"&gt;Linux&lt;/span&gt;-сообщества, которое, в свою очередь, не могло бы существовать без сообщества GNU, которое также не смогло бы подняться на сколь-нибудь значимое место без усилий таких компаний, как IBM и Red Hat. И может быть все пошло бы совсем не так, если бы не участники проектов Mozilla и Netscape, GNOME, KDE, Google и всех остальных, кто использовал свободное ПО для разных задач, что делало его только лучше. Есть десятки тысяч людей, которые никак не связаны с Ubuntu и которые сделали эту историю - реальностью. Многие из них работали более десятка лет - и прошло много времени прежде, чем пришел неожиданный успех, в то время как Ubuntu на сцене только лишь 6 лет. Именно поэтому Ubuntu не может признаваться единственной и неповторимой лишь только для красного словца и чтобы порадовать своих поклонников :).  &lt;br /&gt;&lt;br /&gt;Тем не менее проект Ubuntu делает кое-что уникальное, специфичное и важное для свободного ПО: создает у конечных пользователей устойчивый образ того, что со свободным ПО могут работать все, как с экономической точки зрения, так по легкости использования и готовности решать проблемы, возникающие то там, то здесь. И я считаю, что это подарок тем людям, которые собирают каждый из пакетов &lt;span lang="en-US"&gt;Ubuntu&lt;/span&gt;. Если мы сможем предложить свободное ПО аудитории в 10 раз большей чем сейчас, мы десятикратно усиливаем вашу щедрость, что делает каждый час нашей с вами жизни (который мы проводим исправляя ошибки или улучшая что-либо) в 10 раз ценнее. Я очень горжусь тем, что трачу время и силы на Ubuntu. Да, я мог бы делать множество других вещей, но я не могу себе представить что-то еще, что имело бы аналогичное влияние на мир.  &lt;br /&gt;&lt;br /&gt;Я готов признать, что не каждый может видеть картину моими глазами. Передача результатов своей работы аудитории в 10 раз большей без учета усилий, затрачиваемых на двустороннюю связь с конечными пользователями и работу над новыми возможностями, может выглядеть со стороны просто как рост скачиваний или увеличение потока отчетов об ошибках в 10 раз. Другими словами, если &lt;span lang="en-US"&gt;upstream&lt;/span&gt; не видит ничего кроме «кода», то он и не сможет увидеть ничего кроме кода. Я действительно не знаю, что с этим делать: Ubuntu - не средство для доставки конечным пользователями всего многообразия написанного кода, мне кажется это не то, в чем нуждается мир. А нуждается он в средстве, которое позволяло бы брать этот код и следило за тем, чтобы тот код, который уже есть, оставался в состоянии высокого качества и надежности. &lt;span lang="en-US"&gt;Все, &lt;/span&gt;&lt;span lang="ru-RU"&gt;что нужно для рабочих станций уже есть&lt;/span&gt;&lt;span lang="en-US"&gt; и даже код &lt;/span&gt;&lt;span lang="ru-RU"&gt;соответствует ожиданиям,&lt;/span&gt;&lt;span lang="en-US"&gt; не было &lt;/span&gt;&lt;span lang="ru-RU"&gt;только &lt;/span&gt;&lt;span lang="en-US"&gt;возможности вынести &lt;/span&gt;&lt;span lang="ru-RU"&gt;область &lt;/span&gt;&lt;span lang="en-US"&gt;его и&lt;/span&gt;&lt;span lang="ru-RU"&gt;спользования &lt;/span&gt;&lt;span lang="en-US"&gt;за пределы сервер&lt;/span&gt;&lt;span lang="ru-RU"&gt;ов, чтобы&lt;/span&gt;&lt;span lang="en-US"&gt; представить широкой публике &lt;/span&gt;&lt;span lang="en-US"&gt;уже &lt;/span&gt;&lt;span lang="ru-RU"&gt;готовое решение.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Второе письмо я не могу процитировать. Оно предполагает контракт на оказание услуг Canonical в оказании помощи по миграции более чем 20 000 настольных компьютеров с Windows на Ubuntu. В последнее время в этой области много предложений, их темп ускоряется по мере укрепления доверия к Ubuntu. Хоть Linux уже давно зарекомендовал себя прекрасным рабочим столом для вдохновленного и целеустремленного разработчика, существует разрыв между его потребностями и потребностям крупных организаций. Другой такой компании, которая была бы настолько же привержена идее свободного ПО для настольных систем в том же масштабе, как &lt;span lang="en-US"&gt;Canonical&lt;/span&gt;, нет и поэтому я очень горд тем, какую роль мы играем в этой экосистеме. Для меня было бы очень печально, если б все усилия, которые сообщество свободного ПО затрачивает на разработку приложений для рабочих станций, были потрачены впустую.  &lt;br /&gt;&lt;br /&gt;В настольных компьютерах, которые Canonical поддерживает в крупных организациях, нет чего-то секретного или закрытого. Подлинным чудом для меня является то, что и в истории из Новой Зеландии, и в истории с миграцией компьютеров фигурирует один и тот же код. Для меня это истинное назначение свободного ПО. Когда я сам участвовал в проектах с открытым кодом, я всегда был рад, когда результаты моей работы могли служить не только моим потребностям, но и оказаться полезными многим другим.  &lt;br /&gt;&lt;br /&gt;Ubuntu лишь малая часть огромной экосистемы, но я горжусь тем, как мы подошли к решению этих задач.  &lt;br /&gt;&lt;br /&gt;Canonical использует различные подходы для взаимодействия с другими компаниями, которые работают с Linux, и не занимается скрытой критикой конкурентов просто потому, что у нас есть свои принципы. Сила свободного ПО именно в наличии огромного количества разных компаний, совместно работающих над различными целями.  &lt;br /&gt;&lt;br /&gt;В последние несколько недель неоднократно заявлялось, что Canonical преследует какие-то свои собственные интересы и действует отнюдь не в интересах сообщества, занимающегося открытыми исходными кодами. Это все лживые заявления, потому что большинство из нас наоборот мотивировано делать все, что мы только сможем, чтобы способствовать делу свободного ПО как в интересах конечных пользователей, так и сообщества, которое его делает, и мы убеждены, что существование Ubuntu и Canonical это лучший способ для достижения этой цели. И этот пост показывает результаты размышлений над этими вопросами: это моя собственная позиция показывающая, что именно я делаю и почему я испытываю чувство гордости от тех усилий, которые затрачиваю каждый день.  &lt;br /&gt;&lt;br /&gt;Что мы вместе делаем для свободного ПО? И что же я сам могу сделать для него? &lt;br /&gt;Во-первых, мы занимаемся доставкой его конечным пользователям. Мы снижаем влияние потребительской инерции и тех факторов, которые мешают людям попробовать бесплатное ПО и решить для себя, нравится ли оно им в той мере, чтобы начать им пользоваться. Сотни из тех, кто сейчас участвует в свободном ПО (разработчиков, переводчиков, дизайнеров, пропагандистов) получили возможность стать частью нашего движения, поскольку для них не стало проблемой слегка намочить ноги в воде. И это совсем не легко. Просто посмотрите &lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://www.techdrivein.com/2010/08/massive-changes-coming-to-ubuntu-1010.html"&gt;на результаты  нашей многолетней работы&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt; над упрощением инсталлятора Linux, что стало возможно только благодаря труду многих групп людей и было бы просто невозможно без участия Canonical и Ubuntu.  &lt;br /&gt;&lt;br /&gt;Есть тысячи людей, которые довольствуются сборкой свободного ПО для себя, и это не преступление. Но желание облечь его в такую форму, чтобы другие могли его попробовать, изучить и затем удобно использовать, нужно тоже приветствовать. И именно этому в сообществе Ubuntu придается огромное значение: если вы почитаете planet.ubuntu.com, вы станете свидетелем радости &lt;b&gt;многих людей, использующих свободное ПО&lt;/b&gt;. Как сообщество мы глубоко удовлетворены тем, чтобы люди &lt;b&gt;использ&lt;/b&gt;&lt;b&gt;овали&lt;/b&gt;&lt;b&gt; его&lt;/b&gt; для решения каких-то задач в своей жизни. Это радует гораздо больше, чем истории о том, как мы «сделали это быстрее» или «добавили новую функцию». Мы, конечно, работаем и над тем и над другим, но сообщество больше ценит влияние на мир, а не на код. Люди&lt;span lang="en-US"&gt; &lt;/span&gt;очень&lt;span lang="en-US"&gt; &lt;/span&gt;ценят&lt;span lang="en-US"&gt; &lt;/span&gt;свое&lt;span lang="en-US"&gt; &lt;/span&gt;время&lt;span lang="en-US"&gt; &lt;/span&gt;и&lt;span lang="en-US"&gt; &lt;/span&gt;опыт&lt;span lang="en-US"&gt;. &lt;/span&gt;Я горжусь тем, что Ubuntu привлекает людей, вносящих свой щедрый вклад в общее дело. Поэтому мы благодарим и Kubuntu, и Xubuntu, и &lt;span lang="en-US"&gt;Puppy&lt;/span&gt;, и Linux Mint. Они не висят у нас на хвосте, они стоят на наших плечах, так же, как мы стоим на плечах гигантов. И это здорово. Наша работа будет более значимой и ценной, потому что их работа достигает тех пользователей, которых не достигли мы.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Что еще? &lt;/b&gt; &lt;br /&gt;Посмотрите на проект &lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="https://wiki.ubuntu.com/PaperCut"&gt;Papercut&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;, основанный на том положении, что все невероятные технологии и усилия, направленные на какой-то сложный проект (например, такой как ядро Linux) имеют нулевую ценность, если средний пользователь не может с ним работать. И, наоборот, проект ценен тогда, когда он &lt;b&gt;просто работает&lt;/b&gt;. Сотни пожеланий пользователей были учтены во многих различных приложениях, пользу от чего получает не только Ubuntu, но и любые другие дистрибутивы, их использующие. Если вы думаете, что это легко, попробуйте оценить усилия, затрачиваемые на сортировку и рассмотрение каждого из тысяч предложений, координацию исправлений и их дальнейшее распространение. Результаты неустанного труда большой команды видны невооруженным взглядом. &lt;br /&gt;&lt;br /&gt;Другой пример: сохранить миллионам пользователей 1 час в неделю - это экономия энергии, которую можно получить, используя свободное ПО. Хоть команда дизайнеров Canonical играет ведущую роль в создании проекта Papercuts, настоящие звезды представлены здесь - &lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://www.omgubuntu.co.uk/2010/06/maverick-papercut-hunting-season-opens.html"&gt;http://www.omgubuntu.co.uk/2010/06/maverick-papercut-hunting-season-opens.html&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt; . Каждый может внести предложение, как для версии &lt;span lang="en-US"&gt;Desktop&lt;/span&gt; &lt;a class="western" href="http://ubuntuserver.wordpress.com/2010/01/20/ubuntu-server-papercuts-project/"&gt;http://ubuntuserver.wordpress.com/2010/01/20/ubuntu-server-papercuts-project/&lt;/a&gt;, так и для &lt;span lang="en-US"&gt;Server&lt;/span&gt;.  &lt;br /&gt;&lt;br /&gt;Лично я положил много на руководство и управление проектом и создание структуры сообщества. Когда мы только начинали Ubuntu, я потратил много времени на анализ существующих сообществ, на то как в них разрешаются неизбежные трения и разногласия, возникающие, когда у вас есть много умных и талантливых людей, взаимодействующих между собой. Для решения этого вопроса мы составили кодекс поведения, который будет гарантировать, что наша страсть к технологии и/или работе не подавит основную цель - собрать разных людей вместе, чтобы совместно работать над общей платформой. Я очень рад, что эта идея распространилась и на другие проекты: у нас нет цели тайно вынашивать идеи, проекты и мысли, которые шли бы вразрез с нашим назначением.  &lt;br /&gt;&lt;br /&gt;Мы создали простейшую структуру: &lt;i&gt;технический совет (technical board)&lt;/i&gt; и &lt;i&gt;совет сообщества (community council)&lt;/i&gt;. Такой подход в настоящее время широко распространена и во многих других проектах. Поскольку проект Ubuntu вырос, управление претерпело изменения, в настоящее время есть несколько управляющих команд для таких групп, как Kubuntu, форумы и IRC, которые дают советы и руководят такими группами, как LoCo, модераторы, оперативный отдел, разработчики, которые, в свою очередь, стремяться к техническому совершенству и умению работать с людьми, как часть огромного мирового сообщества. Это удивительно и прекрасно. Когда люди начинают участвовать в Ubuntu, как правило, они мотивированы не только желанием быть частью замечательного сообщества, но и исправлением конкретной проблемы или внесением какой-либо идеи по улучшению. С течением времени некоторые из этих людей сознают, что они могут помочь людям быть более креативными, разрешать разногласия, организовывать работу группы так, чтобы результат был гораздо лучше, чем сможет сделать один человек. Наша структура управления проектом создает все возможности для таких людей: они составляют основу и структуру, которая делает это сообщество легко масштабируемым, производительным и довольным.  &lt;br /&gt;&lt;br /&gt;Такой проект, как Ubuntu, нуждается в постоянном уходе, чтобы защищать свои ценности. Когда вы малы и поднимаете плакат с надписью «мы делаем вот это» вы, как правило, привлекаете только тех людей, которых это интересует. Когда проект перерастает в нечто мощное и &lt;span lang="ru-RU"&gt;заметное&lt;/span&gt;, вы, как правило, начинаете привлекать ВСЕХ, потому что люди хотят быть там, где что-то происходит. И&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;значимость проекта &lt;/span&gt;может&lt;span lang="en-US"&gt; &lt;/span&gt;легко&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;пойти &lt;/span&gt;вниз&lt;span lang="en-US"&gt;. &lt;/span&gt;Так, я по-прежнему трачу много энергии на работу с советом сообщества Ubuntu и командой Canonical по взаимодействию с сообществом, и они оба являются талантливыми и трудолюбивыми,  потому что эта часть моей работы приносит мне огромное удовольствие. Совет сообщества Ubuntu относится к своим обязанностям хранителя ценностей проектов сообщества очень серьезно. &lt;span lang="ru-RU"&gt;Он &lt;/span&gt;в основном состоит из людей, которые не связаны с Canonical, но которые тем не менее считают, что проект Ubuntu важен для свободного программного обеспечения в целом. И бесподобный &lt;span lang="en-US"&gt;Jono Bacon&lt;/span&gt;, восхитительный &lt;span lang="en-US"&gt;Daniel Holbach&lt;/span&gt;, и невозмутимый &lt;span lang="en-US"&gt;Jorge Castro &lt;/span&gt;&lt;span lang="ru-RU"&gt;-&lt;/span&gt; профессионалы, которые понимают, как сделать работу сообщества продуктивной и успешной.  &lt;br /&gt;&lt;br /&gt;&lt;span lang="ru-RU"&gt;Нечто столь же большое &lt;/span&gt;как сообщество Ubuntu не может быть только моей или чьей-то еше заслугой, но я горжусь той ролью, которую сыграл и буду продолжать играть по возможности.  &lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;В последние годы я стараюсь обращать больше внимания на соревнование за &lt;/span&gt;&lt;span style="color: black;"&gt;наи&lt;/span&gt;&lt;span style="color: black;"&gt;лучш&lt;/span&gt;&lt;span style="color: black;"&gt;ее оформление&lt;/span&gt;&lt;span style="color: black;"&gt; в свободном ПО. Я с&lt;/span&gt;читаю, что свободное ПО обладает лучшим качеством, но думаю, нам нужно точно знать, что мы хотим создать для наших пользователей, будь то рабочая станция, нетбук или сервер. &lt;span lang="ru-RU"&gt;Поэтому &lt;/span&gt;я трачу так много моего времени на вдохновление различных сообществ - и Ubuntu, и &lt;span lang="en-US"&gt;upstream&lt;/span&gt; -&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;чтобы приглашать в них тех, &lt;/span&gt;кто видит ПО глазами обычного пользователя, а не опытного хакера. Это фундаментально изменит ценность открытого ПО, и я не могу надеяться, что такую задачу можно осилить в одиночку, но я тем не менее горжусь тем, что являюсь чемпионом этого подхода и рад, что все предложенное неуклонно принимается.  &lt;br /&gt;&lt;br /&gt;&lt;span lang="ru-RU"&gt;В свободном ПО уже были &lt;/span&gt;дизайнеры и до того, как мы это &lt;span lang="ru-RU"&gt;предложили.&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;Я&lt;/span&gt; надеюсь, они чувствуют, что внимание Canonical в области концепции лидирующей роли дизайна сделало их жизнь легче, и сообщество в целом больше ценит их усилия и восприимчиво к их идеям. &lt;span lang="en-US"&gt;И&lt;/span&gt; все-таки, если вы &lt;b&gt;действительно&lt;/b&gt; заботитесь о внешнем виде свободного ПО, команда по дизайну Canonical (&lt;span lang="en-US"&gt;Canonical design team&lt;/span&gt;) ждет вас.  &lt;br /&gt;&lt;br /&gt;Я делаю некоторую часть работы по оформлению сам и участвую в разработке дизайна &lt;span lang="en-US"&gt;Unity&lt;/span&gt; &lt;span lang="ru-RU"&gt;- интерфейс&lt;/span&gt;&lt;span lang="ru-RU"&gt;а&lt;/span&gt;&lt;span lang="ru-RU"&gt; для &lt;/span&gt;Ubuntu Netbook Edition 10.10. Это&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;следующее поколение старого интерфейса &lt;/span&gt;&lt;span lang="en-US"&gt;UNR. &lt;/span&gt;&lt;span lang="ru-RU"&gt;С&lt;/span&gt;амое&lt;span lang="en-US"&gt; &lt;/span&gt;главное в нем -&lt;span lang="en-US"&gt; &lt;/span&gt;это&lt;span lang="en-US"&gt; &lt;/span&gt;утверждение&lt;span lang="en-US"&gt;, &lt;/span&gt;что&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;рабочие станции &lt;/span&gt;&lt;span lang="en-US"&gt;Linux &lt;/span&gt;не&lt;span lang="en-US"&gt; &lt;/span&gt;должны&lt;span lang="en-US"&gt; &lt;/span&gt;быть&lt;span lang="en-US"&gt; &lt;/span&gt;застревать в&lt;span lang="en-US"&gt; 90-&lt;/span&gt;х&lt;span lang="en-US"&gt;, &lt;/span&gt;мы&lt;span lang="en-US"&gt; &lt;/span&gt;можем&lt;span lang="en-US"&gt; &lt;/span&gt;и&lt;span lang="en-US"&gt; &lt;/span&gt;будем&lt;span lang="en-US"&gt; &lt;/span&gt;пытаться&lt;span lang="en-US"&gt; &lt;/span&gt;построить&lt;span lang="en-US"&gt; &lt;/span&gt;новые&lt;span lang="en-US"&gt; &lt;/span&gt;и&lt;span lang="en-US"&gt; &lt;/span&gt;эффективные&lt;span lang="en-US"&gt; &lt;/span&gt;способы&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;взаимодействия &lt;/span&gt;с&lt;span lang="en-US"&gt; &lt;/span&gt;компьютерами&lt;span lang="en-US"&gt;. &lt;/span&gt;Я был в восторге от скорости, с которой некоторые объекты &lt;span lang="en-US"&gt;Unity &lt;/span&gt;были приняты сотн&lt;span lang="ru-RU"&gt;ями&lt;/span&gt; проектов, их цель сделать использование Linux гораздо более простым и прекрасным для всех, так как скорость этой адаптации является мерой того, насколько быстро пользователи смогут лучше адаптироваться к новым способам использования своих компьютеров. &lt;br /&gt;&lt;br /&gt;Дизайн сам по себе ставит нас в положение, удобное для обвинения в желании свалить работу по его внедрению на других, так что я горжусь нашей замечательной командой, которая занята реализацией некоторых из этих основных компонентов. &lt;span lang="ru-RU"&gt;В частности&lt;/span&gt;&lt;span lang="en-US"&gt;, dbusmenu &lt;/span&gt;оказалось&lt;span lang="en-US"&gt; &lt;/span&gt;полезным&lt;span lang="en-US"&gt; &lt;/span&gt;для&lt;span lang="en-US"&gt; о&lt;/span&gt;&lt;span lang="ru-RU"&gt;рганизации&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;с&lt;/span&gt;огласованности&lt;span lang="en-US"&gt; в&lt;/span&gt;&lt;span lang="ru-RU"&gt;нешнего вида&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;приложений &lt;/span&gt;&lt;span lang="en-US"&gt;GNOME &lt;/span&gt;и&lt;span lang="en-US"&gt; KDE, &lt;/span&gt;работающих&lt;span lang="en-US"&gt; &lt;/span&gt;под&lt;span lang="en-US"&gt; Unity, &lt;/span&gt;и&lt;span lang="en-US"&gt; &lt;/span&gt;я&lt;span lang="en-US"&gt; &lt;/span&gt;очень&lt;span lang="en-US"&gt; &lt;/span&gt;надеюсь&lt;span lang="en-US"&gt;, &lt;/span&gt;что&lt;span lang="en-US"&gt; &lt;/span&gt;оно&lt;span lang="en-US"&gt; &lt;/span&gt;будет&lt;span lang="en-US"&gt; &lt;/span&gt;принято&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;в &lt;/span&gt;другие&lt;span lang="en-US"&gt; &lt;/span&gt;проекты&lt;span lang="en-US"&gt;, &lt;/span&gt;которые&lt;span lang="en-US"&gt; &lt;/span&gt;нуждаются&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;в тех интерфейсах, которые &lt;/span&gt;оно&lt;span lang="en-US"&gt; &lt;/span&gt;предоставляет&lt;span lang="en-US"&gt;. &lt;/span&gt;Я полностью доверяю нашей инженерной команде, нацеленной на качество готового продукта, которая предоставит разработчикам простой и ясный &lt;span lang="en-US"&gt;API &lt;/span&gt;&lt;span lang="ru-RU"&gt;и руководство о том, как его использовать&lt;/span&gt;. Если вы использовали полный набор индикаторов в 10.10, то вы в курсе той работы, которая была сделана без лишнего шума и вобрала в себя результаты многих различных проектов и превратившей панель в нечто прекрасное и эффективное. Utouch также приближается к своему первому релизу и будет продолжать развиваться, так что и Ubuntu, и GNOME, и KDE получат простой способ реализации поддержки жестов Multi-Touch.  &lt;br /&gt;&lt;br /&gt;&lt;span lang="ru-RU"&gt;Помимо &lt;/span&gt;&lt;span lang="ru-RU"&gt;этого&lt;/span&gt;, я также занимаюсь финансовой поддержкой различных проектов. &lt;span lang="ru-RU"&gt;Целесообразность вклада &lt;/span&gt;денег в свободное ПО должна определяться ответом на следующий вопрос: может ли результат вложения денег в другой проект, помочь большему количеству людей? Есть много способов помогать людям: на $100 000 можно отправить многих в школу, одеть и накормить их. &lt;span lang="ru-RU"&gt;Поэтому &lt;/span&gt;я&lt;span lang="en-US"&gt; &lt;/span&gt;действительно&lt;span lang="en-US"&gt; &lt;/span&gt;должен&lt;span lang="en-US"&gt; &lt;/span&gt;быть&lt;span lang="en-US"&gt; &lt;/span&gt;уверен&lt;span lang="en-US"&gt;, &lt;/span&gt;что&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;этими &lt;/span&gt;деньгами я привношу реальное&lt;span lang="en-US"&gt; &lt;/span&gt;воздействие&lt;span lang="en-US"&gt; &lt;/span&gt;на&lt;span lang="en-US"&gt; &lt;/span&gt;жизнь&lt;span lang="en-US"&gt; &lt;/span&gt;людей&lt;span lang="en-US"&gt;. &lt;/span&gt;Благодарственные письма, которые я получаю каждую неделю, помогают мне сохранить уверенность в этом. Более того, мои собственные наблюдения того каталитического эффекта, который Ubuntu дает всей экосистеме ПО с открытым исходным кодом, с точки зрения привлечения новых разработчиков, создания новых платформ, создания нового бизнеса, признания новых участников, придают мне уверенность, что обеспечиваемое мной финансирование оказывает значимые последствия.  &lt;br /&gt;&lt;br /&gt;Когда мы только задумывали Ubuntu, экосистема Linux была в некотором смысле полностью сформирована. &lt;span lang="en-US"&gt;У &lt;/span&gt;&lt;span lang="ru-RU"&gt;нас уже было&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;ядро&lt;span lang="en-US"&gt;. &lt;/span&gt;&lt;span lang="ru-RU"&gt;У нас уже были &lt;/span&gt;&lt;span lang="en-US"&gt;GNOME &lt;/span&gt;и&lt;span lang="en-US"&gt; KDE. &lt;/span&gt;&lt;span lang="ru-RU"&gt;У нас были&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;X, &lt;span lang="en-US"&gt;l&lt;/span&gt;ibc и &lt;span lang="en-US"&gt;GCC&lt;/span&gt; и &lt;span lang="ru-RU"&gt;все остальные хорошо знакомые инструменты&lt;/span&gt;. &lt;span lang="en-US"&gt;Е&lt;/span&gt;&lt;span lang="ru-RU"&gt;стественно&lt;/span&gt;, что в них были ошибки, недостатки, были планы по их устранению. Но кое-чего не хватало: иногда это «кое-что» формулируется как «маркетинг», а иногда как «все для конечного пользователя». &lt;span lang="ru-RU"&gt;Я п&lt;/span&gt;омню&lt;span lang="en-US"&gt;, &lt;/span&gt;&lt;span lang="ru-RU"&gt;как&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;подумал&lt;span lang="en-US"&gt; «&lt;/span&gt;вот&lt;span lang="en-US"&gt; &lt;/span&gt;то, что&lt;span lang="en-US"&gt; &lt;/span&gt;я&lt;span lang="en-US"&gt; &lt;/span&gt;могу&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;сделать»&lt;/span&gt;&lt;span lang="en-US"&gt;. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Именно поэтому &lt;/span&gt;Ubuntu и Canonical не прикладывают усилия к тому, что и так хорошо работает, вместо этого мы сосредотачиваем свое внимание на новых идеях, новых инструментах и новых компонентах.&lt;span lang="en-US"&gt; &lt;/span&gt;Я считаю это живительным взаимодействием со всей экостистемой открытого ПО, и я слышу от многих людей, что они воспринимают его точно так же. Те, кто говорят «Canonical не участвует в разработке X», правы, но упускают из вида все, что мы делаем с нуля. Конечно, есть мало того, что мы делаем в одиночку, и мало чего из того, что мы делаем, не смог бы сделать кто-то другой, но я думаю, что энергия сообщества Ubuntu и энтузиазм ее пользователей отражает тот факт, что в проекте есть кое-что отличное от других. Это «кое-что» заставляет нас торжествовать, гордиться своим трудом, и мотивирует нас продолжать. &lt;br /&gt;&lt;br /&gt;&lt;span lang="ru-RU"&gt;Свободное ПО &lt;/span&gt;больше, чем любой из проектов. Оно больше, чем ядро Linux, чем GNU, чем GNOME и KDE, чем Ubuntu, Fedora и Debian. Каждый из этих проектов играет свою собственную роль, но это все в целом реально меняет мир. Поэтому, когда мы начинаем спорить друг с другом о том, какая часть свободного ПО перспективнее, мы рискуем упустить картину в целом. Это немного похоже на аутоиммунные заболевания, когда организм начинает атаковать сам себя. &lt;span lang="ru-RU"&gt;Т&lt;/span&gt;от, кто напряженно работает в течение всего дня, чтобы донести свободное ПО до более широкой аудитории, играет на той же стороне, что и я, если уж мы применяем такую терминологию. Я восхищаюсь и уважаю всех тех, кто вкладывает свою энергию в продвижение свободного программного обеспечения, даже если он делает это по-другому.  &lt;br /&gt;&lt;div style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="RIGHT" style="margin-bottom: 0cm;"&gt;&lt;span style="color: navy;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a class="western" href="http://www.markshuttleworth.com/archives/517"&gt;Ссылка на оригинал&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2986307105622275526-7969997511281391715?l=tux-the-penguin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tux-the-penguin.blogspot.com/feeds/7969997511281391715/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/ubuntu-canonical.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/7969997511281391715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986307105622275526/posts/default/7969997511281391715'/><link rel='alternate' type='text/html' href='http://tux-the-penguin.blogspot.com/2010/09/ubuntu-canonical.html' title='Размышления Марка Шаттлворта об Ubuntu, Canonical и внедрении свободного программного обеспечения'/><author><name>stranger</name><uri>http://www.blogger.com/profile/16134734102142649273</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_zHyeYQyYSXw/S77RV12NckI/AAAAAAAAALI/If7p3TCGSVQ/S220/penguin.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986307105622275526.post-8691230139910393689</id><published>2010-09-03T13:34:00.008+04:00</published><updated>2011-07-07T22:37:46.873+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='инициализация системы'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='файловые системы'/><category scheme='http://www.blogger.com/atom/ns#' term='информация к размышлению'/><category scheme='http://www.blogger.com/atom/ns#' term='debian/ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='novell'/><category scheme='http://www.blogger.com/atom/ns#' term='переводы'/><category scheme='http://www.blogger.com/atom/ns#' term='redhat/fedora'/><title type='text'>Система инициализации Systemd. Часть II</title><content type='html'>Это продолжение &lt;a href="http://tux-the-penguin.blogspot.com/2010/09/systemd.html"&gt;начатого тут&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4 align="LEFT" class="western" style="margin-bottom: 0cm; margin-top: 0cm;"&gt;Собира&lt;span lang="ru-RU"&gt;ем&lt;/span&gt; все вместе - systemd  &lt;/h4&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Выше я объяснил, что должен делать хороший процесс с PID 1 и как работают &lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;существующие&lt;/span&gt; системы инициализации. Перед тем как перейти к самому главному, давайте сделаем еще паузу. Сходите налейте себе еще кружечку кофе. Это того стоит.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Как вы, наверное, уже догадались, те требования и возможности для идеальной системы инициализации, что я предложил выше, существуют уже сейчас в системе инициализации,  названной нами systemd, которую я и хочу тут представить.&lt;/span&gt; &lt;a href="http://git.0pointer.de/?p=systemd.git"&gt;Здесь ее код.&lt;/a&gt; Ниже приведен краткий спис&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;ок ее особенн&lt;/span&gt;остей и их обоснование.&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Поскольку systemd запускает и контролирует всю систему, отсюда и ее название. Она реализует все возможности, указанные выше, и еще кое-что. Система построена на концепции модулей (&lt;i&gt;units&lt;/i&gt;)&lt;i&gt;.&lt;/i&gt; Модули имеют имя и тип. Поскольку их конфигурация обычно загружается из файловой системы - названия модулей на самом деле представляют собой имена файлов. Например: модуль &lt;tt class="western"&gt;&lt;i&gt;avahi.service&lt;/i&gt;&lt;/tt&gt; считывается из конфигурационного файла с тем же именем и естественно, что он реализует работу с демоном Avahi. Существует несколько видов модулей:&lt;tt class="western"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/tt&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="western" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;service/сервис&lt;/b&gt;:&lt;/span&gt;&lt;tt class="western"&gt;  &lt;/tt&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;наиболее  очевидный тип мод&lt;/span&gt;уля: это демоны,  которые могут быть запущены, остановлены,  перезапущены или перезагружены. Для  совместимости с SysV в systemd помимо  собственных файлов конфигурации для  различных сервисов имеется возможность  чтения классических скриптов инициализации  SysV, а также она умеет  разбирать заголовок  LSB, если он существует. /etc/init.d является,  следовательно, не более, чем просто еще  одним источником конфигурации.   &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;socket/сокет:&lt;/b&gt;  данный модуль реализует сокет,  расположенный в файловой системе или  в Интернете. В настоящее время  поддерживаются сокеты AF_INET, AF_INET6, AF_UNIX  типов stream, datagram и последовательных  пакетов (sequential packet).  Также поддерживаются  классические буферы FIFO. Каждый модуль  типа «сокет» имеет соответствующий  ему модуль «сервис», который запускается  при попытке установки соединения с  сокетом или буфером FIFO. Пример: &lt;tt class="western"&gt;&lt;i&gt;nscd.socket&lt;/i&gt;&lt;/tt&gt;  при установке соединения запускает  &lt;tt class="western"&gt;&lt;i&gt;nscd.service&lt;/i&gt;&lt;/tt&gt;.   &lt;tt class="western"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;&lt;b style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span class="western"&gt;device/устройство&lt;/span&gt;:&lt;/b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt; этот модуль реализует устройство в  дереве устройств Linux. Если устройство  описано через правила &lt;span lang="en-US"&gt;ud&lt;/span&gt;ev,  он&lt;span lang="ru-RU"&gt;о&lt;/span&gt; будет представлено  в systemd как модуль &lt;tt class="western"&gt;&lt;i&gt;устройство&lt;/i&gt;&lt;/tt&gt;.  Набор параметров устройства, установленный  &lt;span lang="en-US"&gt;u&lt;/span&gt;&lt;tt class="western"&gt;dev,  будет использоваться&lt;/tt&gt;  &lt;span lang="en-US"&gt;systemd  &lt;/span&gt;как исходный в определении  зависимостей для этого типа модулей.&lt;tt class="western"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="western" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;mount&lt;/b&gt;&lt;span lang="en-US"&gt;&lt;b&gt;/&lt;/b&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;b&gt;точка  монтирования&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="font-family: Arial,Helvetica,sans-serif;"&gt;:&lt;/b&gt;  модуль реализует точку монтирования  в файловой системе. systemd контролирует  все точки монтирования (их подключение  и отключение), а также может быть  использована для монтирования и  размонтирования отдельных файловых  систем. Файл &lt;span lang="en-US"&gt;/etc/fstab &lt;/span&gt;используется  &lt;span lang="ru-RU"&gt;как &lt;/span&gt;дополнительный  источник конфигурации для них, подобно  тому, как сценарии инициализации SysV  могут быть использованы в качестве  дополнительного источника конфигурации  для модулей &lt;span lang="en-US"&gt;&lt;i&gt;service&lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;.&lt;/span&gt;&lt;tt class="western"&gt;&lt;span style="font-style: normal;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span class="western"&gt;&lt;span style="font-style: normal;"&gt;automount&lt;/span&gt;&lt;/span&gt;&lt;span class="western"&gt;&lt;span lang="en-US"&gt;&lt;span style="font-style: normal;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="western"&gt;&lt;span lang="ru-RU"&gt;&lt;span style="font-style: normal;"&gt;точка  монтирования с автоматическим  подключением&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;:&lt;/span&gt;&lt;/b&gt;  модуль реализует точку монтирования  с автоматическим подключением файловой  системы. Каждый такой модуль имеет  соответствующий ему модуль типа &lt;span lang="en-US"&gt;&lt;i&gt;mount&lt;/i&gt;&lt;/span&gt;,  котор&lt;span lang="ru-RU"&gt;ый&lt;/span&gt; запускается  (т.е. подключается), как только монтируемая  файловая система становится доступной.&lt;span lang="en-US"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang="en-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;target/&lt;/span&gt;&lt;span lang="ru-RU" style="font-family: Arial, Helvetica, sans-serif;"&gt;указатель&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;:&lt;/span&gt;&lt;/b&gt;  данный тип модулей используется для  логической группировки других модулей:  на самом деле сам по себе он ничего не  делает, он просто указывает &lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;на  другие модули, которыми таким &lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;способом  &lt;/span&gt;&lt;/span&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;можно  управлять вместе. В качестве примера  можно привести модули &lt;/span&gt;&lt;tt class="western"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;multi-user.target&lt;/span&gt;&lt;/i&gt;&lt;/tt&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;,  &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;который  иг&lt;/span&gt;&lt;/span&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;рает  роль 5-го уровня запуска в классической  схеме SysV, и &lt;/span&gt;&lt;tt class="western"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;bluetooth.target&lt;/span&gt;&lt;/i&gt;&lt;/tt&gt;&lt;span style="font-style: normal;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  &lt;/span&gt;&lt;/i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;активируемый,  как только становится доступен  Bluetooth-адаптер, и запускающий сервисы,  имеющие отношение к Bluetooth (которые  обычно не запущены&lt;/span&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  - &lt;/span&gt;&lt;tt class="western"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;bluetoothd&lt;/span&gt;&lt;/tt&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  и &lt;/span&gt;&lt;tt class="western"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;obexd)  (&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;т.&amp;nbsp;е.  по сути это придет на смену традиционным  уровням запуска &lt;/span&gt;&lt;/i&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="en-US"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;SysV  - &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;прим.  перев.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;)&lt;/span&gt;&lt;/tt&gt;.&lt;tt class="western"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="western" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;snapshot&lt;/b&gt;&lt;span lang="en-US"&gt;&lt;b&gt;/&lt;/b&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;b&gt;снимок:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;  &lt;/b&gt;подобно предыдущему типу модулей  снимки также ничего не делают сами, и  их единственное преданзначение  заключается в ссылке на другие модули.  Снимки могут быть использованы для  сохранения состояния и возможности  отката назад состояния всех служб и  модулей системы инициализации. Он,  главным образом, предназначен для двух  случаев. Первый, чтобы позволить  пользователю временно перевести систему  в какое-то специфичное состояние,  например, однопользовательский режим  с остановкой всех работающих сервисов,  а затем легко вернуться в предыдущее  состояние с одновременным&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  запуском тех сервисов, которые были  перед этим запущены. В&lt;/span&gt;торой вариант  его использования - поддержка режима  &lt;span lang="en-US"&gt;suspend: &lt;/span&gt;&lt;span lang="ru-RU"&gt;достаточно  &lt;/span&gt;много сервисов&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  не мог&lt;/span&gt;ут корректно работать с этой  системой, и зачастую их лучше остановить  перед засыпанием, а потом просто  запустить.   &lt;/li&gt;&lt;/ul&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Приведенные модули могут иметь зависимости друг от друга (как положительные, так и отрицательные, т.&amp;nbsp;е. бывает, что одни без других не могут обойтись, а другие, наоборот, не могут терпеть друг друга): например, модуль &lt;i&gt;устройство&lt;/i&gt; может&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt; зависеть от как&lt;/span&gt;ого-то модуля &lt;i&gt;сервис&lt;/i&gt;, т.е. как только устройство становится доступным - запускается определенный сервис. Модули &lt;span lang="en-US"&gt;&lt;i&gt;mount&lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;имеют неявную &lt;/span&gt;зависимость от устройства, которое они пытаются смонтировать. Также они наследуют неявные зависимости от префиксов путей к точкам монтирования (например, модуль, подключающий &lt;tt class="western"&gt;/home/lennart,&lt;/tt&gt; неявно зависит от модуля, подключающего &lt;span lang="en-US"&gt;/home&lt;/span&gt;&lt;tt class="western"&gt;)&lt;/tt&gt;и так далее.  &lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="LEFT" style="margin-bottom: 0cm;"&gt;Краткий перечень &lt;span lang="ru-RU"&gt;остальных &lt;/span&gt;функциональных возможностей:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Для каждого  порожденного процесса&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  вы можете ко&lt;/span&gt;нтролировать: среду  исполнения, ограничения ресурсов,  рабочую и корневую директории, &lt;span lang="en-US"&gt;umask&lt;/span&gt;,  настройки OOM &lt;span lang="en-US"&gt;killer&lt;/span&gt;, &lt;span lang="ru-RU"&gt;параметр  &lt;/span&gt;&lt;span lang="en-US"&gt;nice&lt;/span&gt;, &lt;span lang="ru-RU"&gt;класс  и приоритет операций ввода-вывода,  политику и &lt;/span&gt;приоритеты использования  процессора, привязку к процессору,  таймер, идентификаторы пользователя,  основной и дополнительных групп, списки  директорий, доступных для чтения/записи,  список директорий, доступ к которым  запрещен, флаги монтирования, биты  безопасности, параметры, относящиеся  к планировщику процессора CPU, области  видимости &lt;tt class="western"&gt;/tmp&lt;/tt&gt;, привязку к  cgroup для различных подсистем. Также  можно присоединить stdin/stdout/stderr сервисов  к &lt;span lang="en-US"&gt;syslog, /dev/kmsg&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;,  &lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;произвольным  &lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;TTY.  &lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;Если вы присоединяете  &lt;/span&gt;&lt;span lang="en-US"&gt;TTY &lt;/span&gt;&lt;span lang="ru-RU"&gt;ко входу  &lt;/span&gt;&lt;span lang="en-US"&gt;systemd - &lt;/span&gt;&lt;span lang="ru-RU"&gt;удостоверьтесь  в том, что&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  процесс получает эксклюзивный доступ.&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Каждый запущенны&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;й  процесс получает с&lt;/span&gt;обственную &lt;span lang="en-US"&gt;cgroup  (&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;в  текущем состоянии разработки по  умолчанию они создаются в подсистеме  &lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;debug,&lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;  &lt;/span&gt;&lt;span lang="ru-RU"&gt;поскольку она все равно  не используется). С помощью &lt;/span&gt;&lt;span lang="en-US"&gt;systemd  &lt;/span&gt;&lt;span lang="ru-RU"&gt;также легко помещать  отдельные сервисы в различные &lt;/span&gt;&lt;span lang="en-US"&gt;cgroups,  &lt;/span&gt;&lt;span lang="ru-RU"&gt;причем, это можно сделать  из пользовательского пространства,  например, посредством утилит &lt;/span&gt;&lt;span lang="en-US"&gt;libcgroups.&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Файлы конфигурации  &lt;span lang="en-US"&gt;systemd &lt;/span&gt;&lt;span lang="ru-RU"&gt;имеют  синтаксис, аналогичный используемому  в файлах .&lt;/span&gt;&lt;span lang="en-US"&gt;desktop, &lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;который  &lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;прекрасно разбирается  (&lt;/span&gt;&lt;span lang="en-US"&gt;parse&lt;/span&gt;&lt;span lang="ru-RU"&gt;) многими  имеющимися утилитами и имеет все  необходимое для интернационализации.  Поэтому администраторам и разработчикам  не нужно учить нов&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;ый  синтаксис.&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Как упоминалось  выше, &lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;мы (З&lt;/span&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;десь  и далее под "мы" понимаются  разработчики &lt;/span&gt;&lt;/i&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;и  сама &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;systemd,  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;надо  смотреть по контексту. Обычно это  нормально, когда автор осознает свое  единство со своим творением :)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;.  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Список  основных разработчиков приведен в  конце этой статьи. Прим. перев.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="font-style: normal;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  &lt;/span&gt;обеспечиваем совместимость со  скриптами &lt;span lang="en-US"&gt;SysV,  &lt;/span&gt;&lt;span lang="ru-RU"&gt;дополнительно  к этому обрабатываются заголовки &lt;/span&gt;&lt;span lang="en-US"&gt;LSB  &lt;/span&gt;&lt;span lang="ru-RU"&gt;и утилиты &lt;/span&gt;&lt;span lang="en-US"&gt;chkconfig  RedHat. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Если их нет, просто  используется любая доступная информация  (такая, как приоритеты запуска сервисов)  из &lt;/span&gt;&lt;span lang="en-US"&gt;/etc/rc.d.  &lt;/span&gt;&lt;span lang="ru-RU"&gt;Поскольку  эти скрипты начинают просто читать  другой источник конфигурации, обновиться  с &lt;/span&gt;&lt;span lang="en-US"&gt;SysV&lt;/span&gt;&lt;span lang="ru-RU"&gt; на  &lt;/span&gt;&lt;span lang="en-US"&gt;systemd &lt;/span&gt;&lt;span lang="ru-RU"&gt;достаточно  легко&lt;/span&gt;. Дополнительно &lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;мы  можем чит&lt;/span&gt;ать классические &lt;span lang="ru-RU"&gt;PID-файлы  сервисов, чтобы определить &lt;/span&gt;&lt;span lang="en-US"&gt;PID  &lt;/span&gt;&lt;span lang="ru-RU"&gt;главного демона.&lt;/span&gt;  Также&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt; мы мо&lt;/span&gt;жем  использовать информацию о зависимостях  из &lt;span lang="ru-RU"&gt;LSB-заголовка&lt;/span&gt; скрипта  и транслировать ее в &lt;span lang="en-US"&gt;«&lt;/span&gt;родной»  формат описания зависимостей для  &lt;span lang="en-US"&gt;systemd. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Важное  замечание:&lt;/span&gt; &lt;span lang="en-US"&gt;Upstart &lt;/span&gt;&lt;span lang="ru-RU"&gt;не  может использовать эту информацию.&lt;/span&gt;  Во время запуска &lt;span lang="en-US"&gt;Upstart, в  отличие от systemd, &lt;/span&gt;&lt;span lang="ru-RU"&gt;не  распараллеливает запуск большей части  скриптов &lt;/span&gt;LSB и/или SysV&lt;span lang="en-US"&gt;.&lt;/span&gt;  &lt;span lang="ru-RU"&gt;Фактически, для &lt;/span&gt;Upstart все  скрипты SysV - это одно исполняемое задание  (&lt;i&gt;Тут опять автор немного лукавит. В  &lt;/i&gt;&lt;span lang="en-US"&gt;&lt;i&gt;Upstart &lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;просто  оставлен слой совместимости со скриптами  &lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;i&gt;SysV, &lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;который  действительно работает, как описано.  Но это именно что &lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;&lt;b&gt;слой  совместимости&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt; с  теми службами, управляющие скрипты  которых по каким-то причинам пока не  отконвертированы в &lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;i&gt;"&lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;родной&lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;i&gt;"&lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;  формат для &lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;i&gt;Upstart, &lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;а  не "злостная недоработка"  разработчиков &lt;/i&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;i&gt;Upstart.  &lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;Прим. перев.&lt;/i&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;)&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Аналогичным образом,  существующий файл &lt;span lang="en-US"&gt;/etc/fstab  &lt;/span&gt;читается&lt;span lang="en-US"&gt; &lt;/span&gt;&lt;span lang="ru-RU"&gt;и  используется как еще один источник  конфигурации. А &lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;с  использованием опц&lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;ии  &lt;/span&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;comment=&lt;/span&gt;&lt;/tt&gt;&lt;span lang="ru-RU"&gt;  fstab вы даже можете отметить отдельные  записи в этом файле, чтобы передать их  под контроль &lt;/span&gt;&lt;span lang="en-US"&gt;systemd  (&lt;/span&gt;&lt;span lang="ru-RU"&gt;для  обеспечения работы функционала  автоматического монтирования).&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Если для одного  сервиса существует несколько файлов  конфигурации (например, есть два файла  &lt;tt class="western"&gt;/etc/systemd/system/avahi.service  и /etc/init.d/avahi), тогда "родной" формат  файлов имеет преимущество. Устаревший  формат файлов игнорируется, позволяя  легко провести обновление.&lt;/tt&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Мы  также п&lt;/span&gt;оддерживаем механизм  использования шаблонов. Например,  вместо того, чтобы иметь шесть одинаковых  конфигурационных файлов для  шести &lt;span lang="en-US"&gt;getty,  &lt;/span&gt;&lt;span lang="ru-RU"&gt;у  нас есть только один файл &lt;/span&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;getty@.service&lt;/i&gt;&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;,  который используется сервисом   &lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;getty@tty2.service&lt;/i&gt;&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;  и аналогичными ему. Интерфейсная часть  также может наследоваться выражениями,  описывающими зависимости, т.&amp;nbsp;е. легко  понять, что сервис  &lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;dhcpcd@eth0.service&lt;/i&gt;&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;  запускается сервисом &lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;&lt;i&gt;avahi-autoipd@eth0.service&lt;/i&gt;&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;.&lt;/span&gt;&lt;/tt&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Д&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;ля  активации сервисов посредством сокетов,  мы поддерживаем полную совместимость  с традиционной моделью &lt;/span&gt;&lt;span lang="en-US"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;inetd,  &lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;а  также простой режим, имитирующий работу  &lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;launchd,  &lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;который  ре&lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;комендуется к  использованию для вновь создаваемых  сервисов. &lt;/span&gt;Режим совместимости с  &lt;span lang="en-US"&gt;inetd &lt;/span&gt;&lt;span lang="ru-RU"&gt;позволяет  передавать запускаемому демону только  один сокет, в то время как "родной"  режим работы позволяет передавать  произвольное количество дескрипторов  файлов. &lt;/span&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Мы  поддерживаем как режим с одним экземпляром  сервиса на одно соединение, так и с  одним экземпляром на все соединения.&lt;/span&gt;  Например: &lt;tt class="western"&gt;&lt;i&gt;sshd.socket&lt;/i&gt;&lt;/tt&gt;&lt;tt class="western"&gt;  может запускать сервис  &lt;/tt&gt;&lt;tt class="western"&gt;&lt;i&gt;sshd@192.168.0.1-4711-192.168.0.2-22.service&lt;/i&gt;&lt;/tt&gt;&lt;tt class="western"&gt;  с &lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="en-US"&gt;&lt;i&gt;cgroup  sshd@.service/192.168.0.1-4711-192.168.0.2-22&lt;/i&gt;&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="en-US"&gt;  (&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;т.&amp;nbsp;е.  &lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="en-US"&gt;IP-&lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;адрес  и номера портов используются в качестве  имен). Для сокетов AF_UNIX, используется  &lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="en-US"&gt;PID  &lt;/span&gt;&lt;/tt&gt;&lt;tt class="western"&gt;&lt;span lang="ru-RU"&gt;и  идентификатор пользователя  присоединяющегося клиента. Это  предоставляет администратору &lt;/span&gt;&lt;/tt&gt;прекрасный  инструмент для определения различных  экземпляров одного и того же демона и  контроля за ним. «Родной режим» передачи  сокета легко реализовать в приложениях:  переменная &lt;tt class="western"&gt;$LISTEN_FDS,&lt;/tt&gt;  если она установлена, содержит количество  передаваемых сокетов, и демон может  найти их в файле &lt;tt class="western"&gt;.service&lt;/tt&gt;,  начиная с файлового дескриптора 3  (хорошо написанный демон также может  использовать &lt;tt class="western"&gt;fstat()&lt;/tt&gt; и &lt;tt class="western"&gt;getsockname()&lt;/tt&gt;  для идентификации сокетов в случае,  если их больше одного). В дополнение  мы устанавливаем переменную &lt;tt class="western"&gt;$LISTEN_PID&lt;/tt&gt;,  содержащую PID главного демона, который  получает сокеты, потому что переменные  сре&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;ды о&lt;/span&gt;бычно  наследуются дочерними процессами, что  может несколько запутать процессы,  находящиеся далее в цепочке.  Поскольку  логика передачи сокетов очень прост&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;а&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;,  мы п&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;р&lt;/span&gt;едоставляем  примерную реализацию этого процесса  под лицензией &lt;span lang="en-US"&gt;BSD. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Также  &lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;мы  п&lt;/span&gt;&lt;/span&gt;&lt;span lang="ru-RU"&gt;ортировали множество  существующих демонов на эту схему&lt;/span&gt;.&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Мы  пр&lt;/span&gt;едоставляем совместимость с  интерфейсом &lt;span lang="en-US"&gt;/dev/initctl. &lt;/span&gt;&lt;span lang="ru-RU"&gt;Эта  совместимость фактически реализована  с помощью сервиса, активируемого  посредством &lt;/span&gt;&lt;span lang="en-US"&gt;FIFO, &lt;/span&gt;&lt;span lang="ru-RU"&gt;который  просто транслирует устаревшие&lt;/span&gt;&lt;span lang="ru-RU"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;  запросы в запросы &lt;/span&gt;&lt;/span&gt;&lt;span lang="en-US"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: transparent; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repe
