Вы находитесь на странице: 1из 129

LXF98

Wizpy » KDE 4 » Брандмауэры » JavaScript 2 LXFDVD


64 Studio
Настоящий
медиа-дистрибутив!
ПЛЮС: Linux Mint » Ark Linux

LXF Ноябрь 2007


и инструментарий
безопасности

Познакомьтесь с Wizpy!
MP3 с пингвином внутри

№ 11 (98)
Главное в мире Linux
Ноябрь 2007 № 11 (98)

48 трюков
KDE 4
JavaScript 2
Сетевая диагностика
трюков
MP3-плейер Wizpy
с Linux
LinuxWorld и LinuxLand
Брандмауэры

ОтKрывая KDE4
Самый ожидаемый рабочий
Penumbra: Overture

стол – вгляд изнутри с. 38

Каталог агентства «РОСПЕЧАТЬ


РОСПЕЧАТЬ»» – подписной индекс 20882
Каталог «ПРЕССА РОССИИ»
РОССИИ» – подписной индекс 87974

Я использую Linux целый день и


64 Studio

каждый день, и все у меня отлично


Мэтт Домш Linux-стратег Dell с. 52
Приветствие

Главное в мире Linux

Гр-р-р-р-р!!!
Месяцок выдался тяжелый: то здесь, то там что-нибудь
отказывало, и чтобы выпустить пар, мы решили спросить у
команды LXF: «Что раздражает вас в Linux больше всего?»

Пол Хадсон Грэм Моррисон Майк Сондерс


То, как это произно- Рекурсивные акрони- Тупые имена про-
сится. Хакеры эконо- мы. Расскажите про грамм. Кому нужен
мили бы тысячи чело- них своей маме и kmp3guife? Назовите
веко-часов, если бы заставьте ее после его TuneBang, чтобы
мы все просто говори- этого воспринимать все поняли: штука
ли «лай-накс». Linux всерьез. стоящая.

Linux – в массы
Сегодня принято много говорить о росте популярности Linux
Эфрейн Эрнандес- Мэтт Нейлон Энди Ченнел среди простых пользователей. Уважаемые аналитические
Мендоса Оно мне надо – при Созерцание его рас- агентства приводят в поддержку этого тезиса столбцы цифр
Большинство хакеров установке программы цветания часто укра-
не слышало о гигиене – разбираться с RPM, шает мир, но я пред- и красивые графики. Я не претендую на столь высокий научный
в man’ы надо включить Apt, Autopackage, почел бы жить без
требование ежедневно Yum, Urpmi, dpkg, кулачных боев и рас-
уровень, но, тем не менее, хочу поделиться своими наблюдениями.
принимать душ. Portage, epm, klik …? прей. Так уж получилось, что последние четыре года я неизменно
присутствую на стенде LinuxCenter.Ru или Linux Format на выставке
SofTool: когда-то это был крошечный уголок в зоне 1С: Дистрибуция,
а ныне – отдельная экспозиция с собственным конференц-залом, но
не в этом суть. В далеком 2003 году основным вопросом посетителей,
увидевших слово «Linux», был: «Ой, а что это такое?». Бесплатные
Энди Хадсон Д-р Крис Браун Нейл Ботвик
Выбор – это прекрас- Open Source и Linux Поощрение ручной компакт-диски с Knoppix (тогда еще 3.2 RE) расходились, как горячие
но, но, имея столько недостает мощного настройки – это
разновидностей, Linux маркетингового толч- слишком серьезное
пирожки – каждый хотел взять себе Linux «на посмотреть».
зачастую конкурирует ка, чтобы занять искушение для нас, Что же мы наблюдаем спустя четыре года? Интонация сменилась с
не с Microsoft, а с достойное место в закоренелых копате-
самим собой. повседневной жизни. лей и настройщиков. удивленно-вопросительной на утвердительную («О, Linux! Как же,
знаем, встречали»), и хотя иногда она принимает формы «Да знаю
я этот Linux – пойдем отсюда, пока чего не вышло», гораздо чаще
приходится слышать: «Здравствуйте! Я ваш давний читатель» или «А
вот как мне настроить спутниковый Интернет в моей Mandriva?». Linux
перестал быть игрушкой и занял место рабочего инструмента – еще не
Рэйчел Проберт Дэвид Картрайт самого популярного, но уже не малоизвестного. LXF
Если написать “Linux” в Задержка между
девизе на вашей Xbox появлением устрой-
Live, она заблокирует- ства и Linux-драйвера Валентин Синицын Главный редактор info@linuxformat.ru
ся. Забавно, но с к нему. Она сокраща-
“Jesus” и “Bill Gates” – ется, но я все равно
тот же эффект... не люблю ждать!

Миссия журнала Как с нами связаться


• Пропаганда свободного ПО в России Письма для публикации: letters@linuxformat.ru
• Продвижение решений с открытым кодом в бизнес- Подписка и предыдущие номера: subscribe@linuxformat.ru
сообществе Техническая поддержка: answers@linuxformat.ru
Проблемы с дисками: disks@linuxformat.ru
• Поддержка российского Open Source сообщества
Общие вопросы: info@linuxformat.ru
• Организация трибуны для разработчиков свободного ПО Web-сайт: www.linuxformat.ru
• Обратная связь между разработчиками и потребителями ПО Адрес редакции: Россия, Санкт-Петербург, ул. Гончарная, 23, офис 54.
Телефон редакции: (812) 717-00-37. Дополнительная информация на стр.128

Ноябрь 2007 Linux Format 1


Содержание
Весь номер – прямо как на ладони: приятного чтения!

Учебники LXF DVD98 Майк вам покажет ........................ 108

Рабочий стол
Gnome можно улучшить ................................. 56 64 Studio 2.0
Украсьте свой рабочий стол удачным фоном и На прочной Debian-основе и с уймой про-
четкими шрифтами. грамм для работы с видео и звуком – это
первоклассный дистрибутив для произ-
водства медиа.

Linux Mint 3.1


Восходящая звезда мира Linux, Mint добав-
ляет к популярности Ubuntu набор соб-
ственных специй.

Ark Linux 2007.1


Живи на солнечной стороне! Новички, ликуйте: наконец-то дистрибутив
Bash настолько дружественный, что даже учит
Применяем командную строку ...................... 60 вас пользоваться мышью! Если вы никогда
Монтируйте съемные носители, архивируйте и не видели Linux раньше, начните здесь.
сжимайте файлы, не покидая консоль.
Инструментарий безопасности
Mono
Отобранная вручную коллекция лучших
Назад, в Unix ................................................... 62
Mono сидит на огромном монстре, известном
утилит для укрепления вашей системы.
как Posix – но это позволяет легко портировать Плюс: подборка статей о безопасности из
унаследованный код. прошлых выпусков LXF!
Rawstudio: преобразуйте проприетарный RAW в другой формат.
KDE
Галерея на рабочем столе ............................. 64
Долой уродливый фон! Оживите обои KDE с
помощью легкого скриптинга.
Что за штука...
Сети
Диагностика неполадок ................................. 68
Работать в сети непросто, а выискивать
неисправности и того сложнее. Мы покажем,
JavaScript Лучшие новинки открытого
ПО на планете..................................102
как найти источник досадных глюков.
Hardcore Linux
VirtualBox ......................................................... 72
Этот эмулятор ПК идеален для тестирования
2?
новых дистрибутивов. Узнайте, как запустить
В мире, где
его, здесь. есть Ajax,
Ананас десятилет-
CRUD-приложение ........................................... 76
Правильный способ сказать «Hello, World!» в нему
мире учетных систем. JavaScript
Java EE пора обнов-
Struts ................................................................ 80
Делайте автоматически то, что раньше делали ляться. с. 42
вручную – благодаря таким каркасам в мире KFlikr: продемонстрируй пикантное фото всему миру!
Java можно обойтись без CMS.
wxWidgets
Живая история ................................................ 84 KDE 4 на
Почему старейший инструментарий GUI
LXF ИНТЕРВЬЮ Рождество
уступил пальму первенства молодежи и как
использовать его в своих проектах. с. 38
perlxs
Это скорее
Perl плюс C++ .................................................. 88
«Я использую революция, чем
Подключить C++ библиотеку к Perl- Linux целый эволюция: даже
приложению не так уж сложно – если знать, день и каждый
как. Мы изучим процесс в деталях. пользователям
DVD Video
день, и все у Gnome уже не
Чистим запись ................................................. 93 меня отлично.» терпится.
Разберемся, как избавиться от фоновых
шумов, не затрагивая DVD-меню. Мэтт Домш из Dell c. 52

2 Linux Format Ноябрь 2007


Содержание

LXF DVD
Подпишись внутри!
на Linux Format Хотите узнать, что на нем?
См. с. 108
и сэкономь!
Спецрепортаж Обзоры

трюков
Isis PC ...................................... 12
Компактный, тихий, мощный, стильный ПК за
каких-то 400 баксов – может ли быть лучше?
Может: на нем работает Linux! Попробуйте это
чудо с Ubuntu внутри.

с Linux
Решайте проблемы, узнавайте хитрости и управляйте своей ОС ... с. 44

А также... Достаточно красив, чтобы стоять в


гостиной рядом с плазменной панелью.
LinuxWorld 2007/LinuxLand ........... 07
Репортажи из Москвы и Сан-Франциско. TurboLinux Wizpy ..................... 13
У этого MP3-плейера свой туз в рукаве: он
умеет загружать Linux на ваш компьютер.
Дорога в KDE4 ................................ 38
Самый ожидаемый релиз [не важно какого] года – VariCad 2007 2.01.................... 14
Новые инструменты моделирования –
оправдает ли он ожидания? долгожданное пополнение в этом мощном
пакете двух- и трехмерного проектирования.

Apache, но не httpd ......................... 44 LinuxMCE 0704 ........................ 15


Самые влиятельные проекты Apache Software Foundation. Станет ли эта оболочка на базе Kubuntu
ответом

Penumbra: Overture .................. 16


Мрачная адвентура с элементами головоломки
и захватывающим сюжетом.
на AppleTV?
Постоянные рубрики
Сравнение: Интерфейсы
Samba Джереми Эллисон делится своими
брандмауэров
Новости ..............................04 Интервью LXF ....................52
соображениями.
Mandriva сертифицируется, OOo Мэтт Домш и Джуди Чейвис – о приходе KMyFirewall ............................... 19
раздваивается. Linux на рабочий стол.
Через месяц ....................128 FireHOL ...................................... 20
DistroWatch ........................24 Ответы ...............................96 Что мы готовим в LXF99 Guarddog ................................... 20
О привлекательности Arch Linux, немного Наши эксперты решают ваши проблемы:
об OpenSUSE 10.3 и о лучших отпрысках синхронизация с PDA, беспроводные
Firestarter .................................. 21
Slackware. сети, резервное копирование, включение Firewall Builder .......................... 21
по расписанию и прочее. Shorewall ................................... 22
Что за штука .....................42
JavaScript заставляет двигаться добрую Школа LXF .......................116
половину Сети – но пришло время Linux в Томске, мастер-классы в Перми
перемен. и школьные порталы.

История успеха..................50 Игрострой LXF .................124


ООО «Петрокрипт» расскажет LXF Офисная стрелялка за дождливый вечер.
о своем опыте внедрения открытых
технологий. Мнение .............................127
GPL v3 уже здесь, но почему не утихают
Идейный крестоносец или
споры? Любимый всеми разработчик упертый фанатик? Решать вам!

Ноябрь 2007 Linux Format 3


Новости

Новости
ГЛАВНЫЕ НОВОСТИ: Mandriva сертифицируется и внедряется Открытые лицензии от
Microsoft Прогресс на мобильном рынке Патентные разбирательства OpenOffice.org
на новый лад Череда свежих дистрибутивов

Время не ждет
В
сем хороши глобальные национальные про- ливая бюрократическая машина не привыкла быстро вательный дистрибутив только в 2009 году. Нетрудно
екты, но есть у них один серьезный недоста- работать. В результате в большинстве учебных заведе- догадаться, что до того времени можно не спеша
ток: все они реализуются ужасно медленно. ний по-прежнему используется нелегальное ПО, и это применить статью 146 УК РФ за незаконное использо-
Конечно, объективных причин тому – масса, но лег- при том, что прокурорская проверка может нагрянуть вание ПО практически ко всему преподавательскому
че от этого не становится, особенно в случаях, когда в любой день. Парадокс, но многие школы самостоя- составу российских учебных заведений, ожидающих
каждый день промедления грозит вполне реальными тельно закупают всевозможные академические набо- претворения в жизнь правительственных планов.
проблемами, которые, как подсказывает жизненный ры ПО, услужливо предлагаемые представителями На самом деле все не так грустно: определен-
опыт, настигают нас в самый неподходящий момент. компании Microsoft. Последняя же оказалась в наибо- ная свобода действий, предоставленная российским
Что, например, происходит сейчас с легализацией лее выгодном положении: сначала продать лицензии в образовательным учреждениям, позволяет уже сей-
школьного ПО. Правительство пообещало закупить на школы по индивидуальным заказам, затем получить из час отказаться от «гнета проприетарщины» и перейти
все учебные компьютеры лицензионное программное российского бюджета деньги за эти же лицензии пов- на использование Linux в своей работе. Более того –
обеспечение. Решение принято, ответственные назна- торно, но уже в рамках государственной программы по наиболее активные учебные заведения так и посту-
чены, но и по сей день школы не получили хоть что- централизованной закупке для российских образова- пают, самостоятельно переходя на свободное ПО.
нибудь из обещанного легального софта: неповорот- тельных учреждений лицензионного ПО – лучше прос- И подтверждений тому – масса. Например, недавно
то не придумаешь. прошедшие мастер-классы, организованные компа-
Впрочем, все тот же ниями LinuxCenter и Mandriva.ru для школ Пермского
проницательный чита- края, показали большую заинтересованность учителей
тель скажет, что для в переходе на использование Linux, а часть учебных
школ готовится и сво- заведений уже самостоятельно осуществляют заме-
бодное ПО на базе GNU/ ну дорогостоящего проприетарного ПО на свободные
Linux, которое и должно аналоги. Еще более значительные результаты демонс-
решить проблему зави- трирует Ханты-Мансийский автономный округ, где 27
симости от одного-един- школ Сургута и три ведущих ВУЗа региона к концу 2007
ственного поставщика. года полностью перейдут на использование операци-
Все верно, но не стоит онной системы Mandriva Linux. Столь массированное
забывать, что перевод внедрение свободного ПО стало возможным благодаря
школ на свободное ПО – тендеру, еще летом организованному Администрацией
это тоже государствен- Губернатора Ханты-Мансийского автономного
ная программа со всеми округа, в котором победу одержало Объединение
вытекающими. В луч- «Росинформресурс» Минпромэнерго России, пред-
шем случае, российские ложившее наиболее выгодные условия по поставкам
школы увидят специа- и техническому обслуживанию операционных систем
лизированный образо- Mandriva и прочего свободного ПО.

4 Linux Format Ноябрь 2007


Новости

Проверка на доверие
Л
юбой грамотный потребитель зна- начале процесса сертификации операционной тать целый набор, состоящий из собственно
ет, что наличие сертификата гаран- системы Mandriva, озвученное на проходив- дистрибутива Mandriva Linux, пакета докумен-
тирует качество покупаемого това- шей в Сочи конференции «Информационная тации, подтверждающей наличие сертификата
ра. Не является исключением и программное безопасность: региональные аспекты», стало для данного программного продукта, Media
обеспечение: если обычные операционные радостной вестью как для пользователей дан- Kit и USB-ключ для получения сертифициро-
системы мы используем «как есть» без каких- ного дистрибутива, так и для всего российско- ванных обновлений. Также следует отметить,
либо гарантий, то при работе с конфиденци- го Linux-сообщества. что данное событие стало еще одной важ-
альными и секретными данными это недо- Примечательно, что проверку пройдет ной победой молодой компании Mandriva.Ru,
пустимо – для таких случаев программное целый набор из нескольких версий Mandriva являющейся филиалом всемирно известного
обеспечение должно пройти тщательную про- Linux: Mandriva PowerPack+, Corporate Desktop, разработчика Linux-дистрибутивов, ведь нали-
верку в соответствующих контролирующих Mandriva Corporate Server, Mandriva Flash. чие сертификата ФСТЭК России позволит опе-
органах. Если результат тестирования положи- Также стоит обратить внимание на тот факт, рационной системе Mandriva Linux на равных
тельный, то данное ПО получает зеленый свет что сертификация Mandriva Linux не будет конкурировать с другими участниками рынка
для установки и использования в различных привязана к конкретной аппаратной платфор- в сфере государственных поставок и тенде-
государственных организациях и ведомствах, ме, что позволит еще больше расширить сфе- ров на обеспечение российских министерств и
нередко оперирующих данными, не подле- ру применения данного ПО. После завершения ведомств качественным и современным про-
жащими широкой огласке. Именно поэтому процесса сертификации заинтересованные граммным обеспечением.
сообщение представителей ФСТЭК России о организации и предприятия будут приобре-

Правила,
рождающиеся Новости короткой строкой
Компания SCO Group, несколько лет пытавшейся через суд

из исключений выбить из разработчиков и пользователей Linux патент-


ные отчисления, официально объявила о начале процедуры
банкротства.

Т
о, что модульность Linux-систем позво- вых устройств планируют использовать сво- Объявлен первый официальный релиз дистрибутива для
ляет применять их в самых нестандарт- бодные версии дистрибутивов GNU/Linux в работы с мультимедиа JAD 1.0, основанного на OpenSUSE.
ных устройствах, уже давно не является своих новых проектах, 16% намерены брать
новостью. Между тем, даже бурная фантазия для этих же целей платно распространяемый Руководство компании Novell решило полностью оплачи-
пользователей не может предугадать, в каком Linux, еще 12% отдали свое предпочтение вать работу Грега Кроа-Хартмана [Greg Kroah-Hartman],
аппаратном «жилище» в следующий раз мож- коммерческим ОС и лишь 1% опрошенных занимающегося разработкой Linux-драйверов, при этом освободив
но будет встретить «поселившийся» Linux. инженеров ответили, что будут использовать его от других обязанностей.
На этот раз сюрприз преподнесла компания собственные разработки. Правда, на данный
Компания Adobe выпустила первую альфа-версию пакета
ASUS, встроившая свободное ПО... прямо в момент цифры немного другие: 39% исполь-
Flex Builder для Linux, предназначенного для разработки
материнскую плату. В результате пользова- зуют коммерческие ОС, 29% базируются на
флэш-приложений.
тель, купивший компьютер с данной моделью свободных версиях Linux, 11% предпочитают
«материнки» под кодовым обозначением P5E3 платные дистрибутивы Linux, 7% используют Вышла новая версия дистрибутива OpenSUSE 10.3.
Deluxe, может даже не устанавливать на «пер- собственные разработки и 11% устройств не
соналку» операционную систему: при старте используют операционную систему как тако-
компьютера он может выбрать загрузку встро- вую. Таким образом, исследование агентс- По новым данным от компании Red Hat, дистрибутив Red
енной программной подсистемы Express Gate тва VDC предвещает значительные подвижки Hat Global Desktop выйдет в ноябре текущего года.
и получить в свое распоряжение незамысло- разработчиков в сторону именно свободных
Компания Mandriva выпустила очередную версию своего
ватый графический интерфейс с небольшим вариаций GNU/Linux в будущем, что, в общем,
дистрибутива под номером 2008.
набором популярных приложений, включаю- не удивительно: как говорится, если резуль-
щих браузер Firefox, интернет-телефон Skype тат одинаковый, то зачем платить больше? К Объявлен релиз семейства операционных систем Ubuntu,
и еще несколько полезных утилит. Таким слову, тенденции перемещения в сторону сво- Kubuntu, Xubuntu и Edubuntu.
образом, с первых минут пользования вновь бодного ПО наглядно демонстрируется на при-
Компанией LinuxCenter выпущен новый сборник свободного
приобретенной машиной владелец способен мере такого модного устройства, как Internet
и бесплатного ПО для среды Windows.
выполнять наиболее популярные задачи, свя- Tablet от компании Nokia: если первые версии
занные с работой в сети. N770 данного устройства содержали довольно Компания «КОРУС Консалтинг» создала новое подразделе-
На самом деле подобных неожиданностей много закрытых программных компонентов, ние, которое займется продвижением на рынок, внедрени-
в ближайшем будущем только прибавится: то новая модель N810, вышедшая в свет со ем и обслуживанием программных решений с открытым програм-
по данным опроса аналитического агентс- значительным опережением графика, практи- мным кодом.
тва Venture Development Corporation (VDC), чески полностью переведена на использова-
71% разработчиков нестандартных цифро- ние библиотек GTK+ 2.10.x.

Ноябрь 2007 Linux Format 5


Новости

Microsoft – тоже
Open Source Офисные
метаморфозы
В
се уже давно привыкли к тому, что в качестве альтернатив-

Е
ще пару лет назад данную новость посматривать в сторону Open Source в силу ной замены дорогостоящему пакету офисных приложений MS
многие посчитали бы первоапрельской явных плюсов, имеющихся у подобных прин- Office выступает свободный вариант – OpenOffice.org. На сегод-
шуткой. Но современный рынок ПО ципов разработки программного обеспечения. няшний день свободный офис дорос до версии 2.3.0, а совсем недавно
диктует новые правила и вот уже Linux-сооб- Одним из наиболее заметных «альтернатив- отметил свое семилетие: 13 октября 2000 года считается отправной
щество вновь обсуждает почти сенсацион- ных» проектов редмондского гиганта можно точкой жизни пакета офисного ПО, переданного сообществу компани-
ное сообщение: некоммерческая организа- назвать открытие кода .NET Framework, начав- ей Sun Microsystems. Между тем, в истории OpenOffice.org не все так
ция Open Source Initiative (OSI) одобрила две шееся в октябре текущего года. Если же попы- уж гладко: как и во многих других открытых проектах, востребованные,
лицензии, разработанные в Microsoft, и при- таться оценить тактику Microsoft и причины но, по мнению Sun, «несозревшие» патчи оказываются за бортом про-
своила им статус открытых. Не сказать, что- интереса данной компании к Open Source, то и гресса. Именно этот факт вынудил компанию Novell пойти на реши-
бы обсуждение представленных вариантов, здесь ничего особо сложного нет: открытое ПО тельный шаг: теперь она будет выпускать собственную версию пакета
начатое в августе текущего года, проходило завоевывает все большую долю рынка и, как офисных приложений на базе OpenOffice.org, дополненную новыми
гладко: в ходе дебатов Microsoft даже согла- любой грамотный рыночный игрок, Microsoft компонентами. На самом деле сборка офисного пакета, входящего по
силась поменять названия лицензий, но в не хочет без боя уступать позиции и планирует умолчанию в дистрибутивы SUSE Linux и OpenSUSE, всегда отлича-
результате большинством голосов OSI реши- активно конкурировать с другими компаниями лась от оригинальной (естественно – в лучшую сторону), но теперь в
ла, что Microsoft Public License (Ms-PL) (быв- и в данной сфере. Что ж, подобное решение Novell решили официально объявить о рождении нового проекта под
шая Microsoft Permissive License) и Microsoft можно только приветствовать, правда, пока названием Go-oo. Хоть и под другим предлогом, но о появлении еще
Reciprocal License (Ms-RL) (бывшая Microsoft неизвестна позиция по последним событиям одной версии свободного пакета офисных приложений под названием
Community License) отвечают всем десяти кри- со стороны Free Software Foundation и станут Symphony, объявила и компания IBM. На этот раз, воспользовавшись
териям лицензий Open Source и могут офици- ли данные лицензии Microsoft совместимыми исходным кодом OpenOffice.org, программисты «Голубого гиганта»
ально считаться таковыми. Впрочем, внима- со свободными лицензиями, ведь, как извест- подготовили его слегка урезанный вариант в виде набора, состоящего
тельный читатель скажет, что такой поворот но, «открытый» – это совсем не то же самое, из Lotus Symphony Documents (текстовый процессор), Lotus Symphony
событий был вполне предопределен: на самом что и «свободный». Spreadsheets (электронные таблицы) и Lotus Symphony Presentations
деле Microsoft уже давно стала с интересом (презентации).

Старая песня на новый лад


Н
е успели юристы Novell и Red Hat по той же проблеме. Пока от Novell и Red Hat собственность Microsoft и должна за это пла-
расслабиться после окончания раз- не поступало каких-либо разъяснений по дан- тить, новый судебный иск выглядит несколько
бирательств с претензиями практи- ному поводу, но сторонние наблюдатели уже инсценированно, но в конце концов может
чески обанкротившейся компании SCO Group, предрекают повторение многолетней судеб- вылиться в очередную масштабную патентную
как на горизонте появилось новое судеб- ной эпопеи, аналогичной той, что будоражила кампанию.
ное разбирательство – на этот раз в роли свободное сообщество в связи с претензиями
истца выступила малоизвестная компания IP компании SCO Group. Интересным фактом
Innovation LLC. Суть претензий сводится к является то, что IP Innovation является дочер-
тому, что Novell и Red Hat обвиняются в ней структурой компании Acacia Technologies,
неправомерном использовании системы мно- которая, в свою очередь, получает деньги
жественных рабочих столов, по умолчанию за использование патентованных технологий
входящей во все дистрибутивы GNU/Linux. с таких компаний, как Dell, Hewlett-Packard,
Истец, являющийся нынешним владельцем Intel, Samsung, Exxon, J.C. Penney, Walt Disney,
патента под номером 5072412, зарегистриро- Revlon, Orbitz, General Electric, 3M и других,
ванным в далеком 1987 году компанией Xerox а в руководстве Acacia Technologies работа-
Corporation и описывающим механизм одно- ют несколько бывших сотрудников Microsoft,
временной работы нескольких рабочих про- причем один из них, Брэд Брюнель [Brad
странств, хочет, естественно, денег и заодно Brunell], на прежнем месте занимался именно
запрета использования запатентованных тех- лицензионными вопросами. На фоне недав- При подготовке данного выпуска новостей были использо-
нологий в дальнейшем. Стоит отметить, что них заявлений исполнительного директора ваны материалы сайтов: www.mandriva.ru, www.opensource.org,
чуть раньше в июне текущего года компания Microsoft Стива Баллмера [Steve Ballmer] о www.phoronix.com, www.groklaw.net, www.linuxcenter.ru, а также
Apple откупилась от IP Innovation LLC ровно том, что Red Hat использует интеллектуальную наших собственных корреспондентов.

6 Linux Format Ноябрь 2007


Новости

Ноябрь 2007 Linux Format 7


Новости
Экстра
ЭкстраНовости
Новости

Майк Сондерс и Ник Вейч прилетели


в Сан-Франциско на одно из крупнейших
событий этого года в мире Linux…

В
ечный туман, трамваи, громыхающие ность документирования каждого шага. Хотя урок мобильных устройств. Возможно, удивляться тут
по покатым улицам, и зловещая тюрьма был предназначен для программистов на языках нечему, ибо соотношение цена/производитель-
Алькатрас – лишь немногое из того, чем высокого уровня, Лючифреди погрузил аудито- ность выглядит достаточно грустно по сравнению
славится Сан-Франциско; а вдобавок это город, где рию в глубины машинного кода, объяснив, как все с другими разработками. Тем не менее, это пока-
в конгресс-центре Moscone проходит конференция программы на процессорах седьмого поколения зывает популярность Linux для встраиваемых уст-
LinuxWorld. Команда LXF отправилась туда, чтобы (например, Pentium IV) спотыкаются на «узких ройств... Кстати, Motorola вновь сделала огромный
разузнать там последние новости, взять интервью местах» при получении данных из оперативной стенд, посвященный телефонам RAZR2, которые
у ключевых фигур мира Linux и встретиться с пос- памяти. работают под Linux. Новинок, возможно, было
тоянными читателями журнала. Кто был там и сто- Во вторник огромный выставочный зал открыл- поменьше, чем в прошлые годы, но все равно было
ял возле стенда LXF, было здорово повидать вас! ся для разработчиков Linux, IT-менеджеров и прос- на что посмотреть!
Мероприятие стартовало в понедельник 6 то пользователей. Присутствовали также и гиганты
августа фейерверком семинаров. Джошуа Бриндл компьютерной индустрии, в частности Dell и Intel; Где .orgии?
[Joshua Brindle], любезный аналитик по безопас- разработчики из Intel представили новую линейку Большая часть экспонатов была посвящена фир-
ности из Tresys Technology и фанат Gentoo, рас- компьютеров с Ubuntu для Европы (см. интервью мам-разработчикам Linux для предприятий, но сек-
сказал о работе по улучшению системы безопас- на стр. 52). ция “.org” представляла свободные проекты, такие
ности SELinux в его компании, заострив внимание Стенд Yahoo был самым популярным – бла- как Gnome, Gentoo и OpenSUSE. Даже ребята из
на огромном (и постоянно растущем) количестве годаря автомату для поп-корна и удобным дива- FreeBSD были там, демонстрируя самый последний
уровней сложности в современных дистрибутивах нам, на которых участники могли расположиться релиз ориентированного на настольный компью-
и на том, как они влияют на развитие SELinux. Он со своими ноутбуками. Стенд Novell выставил ряд тер PC-BSD. А стенд Debian отличился фишкой в
выделил 20 различных типов IPC (межпроцессных ноутбуков со SLED для проверки электронной поч- техно-стиле: экран с web-камеры, отраженный на
коммуникаций) в ядре Linux и в своем исследо- ты и web-серфинга. противоположной стене, показывал всех прохо-
вании установил, что современные дистрибутивы Palm демонстрировал свое новое устройство дящих мимо. В чем же был фокус? Изображение
«при загрузке совершают 100 000 обращений к Foleo под Linux. Этот микроноутбук уместил впе- формировалось из символов ASCII – так что вы
файлам» – несомненно, приятное открытие для чатляющий набор с 416-МГц ARM-процессором, видели себя составленным из букв и цифр на
разработчика политик SELinux... 384 MБ памяти (флэш и обычного ОЗУ) и бата- огромном дисплее.
реей на 5 часов работы в объеме не больше По ходу события мы встретились с рядом
Черная магия книги. Наше беглое знакомство с этой машиной главных игроков в мире Linux, поэтому следите за
Днем Федерико Лючифреди [Federico Lucifredi] выявило, что клавиатура Foleo размещена порази- полными интервью в будущих выпусках (в этом
из Novell провел урок «черной магии» по про- тельно удобно и более чем достаточна для напи- выпуске мы начали с Мэтта Домша и Джуди Чавес
филям производительности и оптимизации. То сания электронных писем и быстрого создания из Dell). Кроме того, см. раздел Журнал на нашем
и дело цитируя знаменитую максиму, что «пре- документов. DVD для общего видео с этого события, которое
ждевременная оптимизация – корень всех зол», Увы, после выставки мы узнали из новостей, заснял Майк «Спилберг» Сондерс. Вы как будто
он описал, какая это трудная и неблагодарная что Palm не планирует больше продавать эти сами находитесь там и задаете вопросы разработ-
работа – оптимизация кода, и подчеркнул важ- ноутбуки и пересматривает свою стратегию для чикам OpenSUSE! LXF

8 Linux Format Ноябрь 2007


ЭкстраНовости

LXF Репортаж

LinuxLand-2007
В начале октября редакция Linux Format Россия посетила Москву, чтобы своими глазами увидеть,
как Open Source проникает в массы. Валентин Синицын пробует подытожить впечатления от
четырех дней, проведенных за стойкой...

П
ока английская команда LXF бороз- ров Aquarius с установленным Mandriva Linux
дила просторы воздушного океана 2007.1, проходили презентации и мастер-
над Атлантикой, мы совершили более классы по технологиям Linux и Open Source.
близкую, но не менее увлекательную поездку Слушатели могли воочию познакомиться с
в Москву, где в павильоне 69 Всероссийского открытыми технологиями и получить навыки
выставочного центра (ВВЦ) проходила выстав- работы в таких программах, как OpenOffice.
ка SofTool’2007 и ее сателлит – LinuxLand/ org. Однако, наибольшим успехом, несомнен-
SITOP-2007. В течение четырех дней – со 2 но, пользовались мастер-классы компании
по 5 октября – все желающие могли вживую Etersoft, посвященные запуску Windows-при-
познакомится с новинками мира Open Source, ложений в среде Linux. Несмотря на предва-
принять участие в мастер-классах и просто рительную регистрацию, мест в конференц-
пообщаться с единомышленниками. зале не хватало, чтобы вместить всех жела-
Среди экспонентов LinuxLand в этом году ющих, и многие посетители наблюдали за
были как старые, так и новые лица: ALT презентацией с... лестницы, под которой, по
Linux, Etersoft, Mandriva.Ru, НПО «Сеть»/MOPS счастливой случайности, и находился зал.
Linux (кстати, на выставке была официально По причине аншлага, выступления директо-
представлена новая версия этого дистрибути- ра Etersoft Виталия Липатова имели свойство
ва – 6.0), LinuxCenter.Ru, SunRadio.Ru, проект затягиваться; впрочем, на это никто не оби- категории: тех, кто пришел приобрести све-
«ТЫРНЕТ», учебный центр R-Style, UMI.CMS жался. Неизменным успехом у посетителей жий журнал или дистрибутив, тех, кто пришел
и, конечно, журнал Linux Format. Несколько пользовался и стенд Etersoft, расположенный задать вопрос или послушать мастер-класс и,
огорчало лишь отсутствие гигантов индуст- на «территории» Mandriva.ru – плазменный наконец, тех, кто пришел встретиться «в реа-
рии: IBM и Novell/SUSE, а также ASP Linux, экран с окном 1С:Предприятия и панелью ле». Исходя из этого, в общем-то не малень-
который, правда, был представлен стендом в Kicker привлекал внимание издалека. Правда, кая по своим размерам экспозиция постоян-
зоне 1С:Дистрибуции. проходя как-то раз мимо, мы обнаружили но напоминала гибрид ярмарочной площади,
Заявленной формой проведения LinuxLand еще и Konsole с открытой root-сессией, но call-центра и клуба по интересам (кстати,
была «выставка-конференция», поэтому вни- врожденное чувство такта не позволило нам пользуясь случаем: большое спасибо всем,
мание уделялось не только демонстрации, но совершить никаких противоправных действий кто заглянул повидаться с нами на стенд Linux
и обмену опытом. В течение всего времени в отношении демо-установки. Format, особенно тем, кто пришел не с пусты-
работы выставки в конференц-зале, обору- Вообще, посетителей LinuxLand в этом ми руками!). Мы повстречались со многими
дованном сетью из двух десятков компьюте- году можно было разбить на три основных интересными людьми и надеемся, что наше

Кстати
Пингвинов на SofTool’07 можно было встретить компании. Количество пользователей, одновре-
и за пределами «заповедника» LinuxLand. Так, менно работающих в системе, в ходе публично-
компания Ansoft, разработчик автоматизиро- го тестирования на выставке SofTool составило
ванных систем управления под торговой мар- более 1000 человек.
кой AVARDA, развернула на своем стенде комп- Подводя итоги мероприятия, исполнительный
лекс AVARDA.Emulator, имитирующий работу директор группы компаний Ansoft Георгий
системы AVARDA.RetailNetwork в розничной Меньков отметил: «Компания Ansoft вот уже
сети национального масштаба (головное отде- более пяти лет успешно осуществляет крупные
ление, 10 региональных офисов, 10 распреде- внедрения системы AVARDA, построенной на
лительных центров и более чем 550 магазинов базе СУБД Firebird и работающей под
различного формата) и представляющий собой управлением ОС Linux. Результаты, полученные
локальную сеть из 50 рабочих станций и 10 в ходе не имеющей аналогов публичной
серверов, полностью управляемых Scientific демонстрации работы крупнейшей компании,
Linux 4.4/5.0; в качестве СУБД использовалась показали способность информационных систем
открытая Firebird 2.0. На каждой рабочей стан- с открытым исходным кодом на равных
ции одновременно работало от 10 до 30 копий конкурировать с коммерческими продуктами,
приложений, задача которых состоит в выпол- как по качеству, так и по масштабам работы».
нении функций реальных сотрудников торговой

Ноябрь 2007 Linux Format 9


Новости

секция и круглый стол по стандартам ODF и


OpenXML и их перспективам в российском
государственном секторе.
Ну, а ключевым событием LinuxLand-2007,
конечно, стало присуждение дистрибутиву
Mandriva Linux первого места в ежегодном
конкурсе IT-решений «Продукт года-2007» в
номинации «Linux». Данный конкурс прово-
дится совместно Отделением информацион-
ных технологий и вычислительных систем
РАН, Федеральным агентством по информаци-
онным технологиям, издательским домом «СК
Пресс» и компанией «ИТ-экспо». Победители
определялись экспертным советом конкур-
са, который возглавляет член-корреспондент
РАН, директор Института программных систем
РАН Сергей Абрамов. Оценка программных
продуктов производилось по ряду критериев,
среди которых: востребованность на рынке,
наличие российских и зарубежных аналогов
и достоинства/недостатки по отношению к
ним, освещение в СМИ и количество публи-
каций о продукте за последний год, соответ-
ствие российским и международным стандар-
там. Торжественная церемония награждения
знакомство выльется в новые материалы на основной экспозицией. В числе организаторов Mandriva прошла 4 октября в Деловом центре
страницах журнала – как говорится, следите SITOP-2007 были такие уважаемые органи- павильона 69 ВВЦ.
за новостями! зации, как Российская Академия Наук (РАН), Выставка 2007 года показала, что Linux
В связи с LinuxLand нельзя не упомянуть Федеральное агентство по информацион- уже перестал быть экзотикой и занял свое
о еще одном мероприятии – конференции ным технологиям, Федеральное агентство по (пусть пока и не первое) место не только в
«Стандартизация информационных техно- техническому регулированию и метрологии, официальном конкурсе, но и на компьюте-
логий и интероперабельность. SITOP 2007», Российская секция IEEE и другие. В рам- рах обычных пользователей. Посмотрим, что
проходившей 2 и 3 октября параллельно с ках этой конференции состоялась отдельная будет в 2008 году... LXF

10 Linux Format Ноябрь 2007


3D modelling tool Reviews

Обзоры
Новинки программного и аппаратного обеспечения в описании наших экспертов

Алексей Федорчук
Его слабости – mass
storage, разметка диска
и файловые системы. Сегодня мы рассматриваем...
12 Isis PC Wizpy с. 13
Возьмите одну часть мощного CPU, одну часть
Mandriva на Руси: Linux, две меры RAM и кучу дискового
второе нашествие пространства, перемешайте и подайте в
Бонапарта? сногсшибательном черном корпусе. Наши
комплименты шеф-повару!
истрибутив Mandriva издрев-

Д ле пользовался на Руси боль-


шой популярностью – еще с тех
времен, когда именовался Mandrake и в
13 Wizpy
Грэм Моррисон рискнул своими
драгоценными ушами ради обзора бытового
MP3-плейера, и поставил ему 7 из 10. Но,
ипостаси Russian Edition распространялся Грэм, он ведь умеет запускать TurboLinux!
IPLabs Linux Team (впоследствие Alt Linux).
После создания же Mandriva.ru – не просто 14 VariCAD 2007 2.0 Для Японии он, может, и огромный, но по-нашему
представительства компании, а официаль- Ник снова взялся за старое – то есть за крохотный. Так почему ж у нас его нет?
ного, наряду с французским и бразиль- трехмерный пакет, и даже ввернул сюда
ским, центра разработки – популяриза- старую пошлость «2D иль не 2D». Эх, кабы не
ция и внедрение ее пошли семимильными цена в $700... Penumbra с. 16
шагами. Серия мастер-классов, прошед-
ших от Москвы до самых до окраин, офи- 15 LinuxMCE
циальные курсы с сертификацией, цент- Всадили кучу денег в HD-экран, так зачем
ральное положение на недавно прошед- мириться с унылым дистрибутивом? Этот
шем СофТуле, сертификация по требова- малый красив прямо из коробки.
ниям безопасности ФСТЭК, продвижение
в качестве образовательного ПО для школ 16 Penumbra
и ВУЗов Ханты-Мансийского автономного Впечатлить Грэма дорогого стоит (мотайте на
округа... Иными словами, Mandriva име- ус, создатели Wizpy), но на сей раз это
ет все шансы стать дистрибутивом номер удалось. Ну хорошо, соблазнился-то он
один в России. дешевизной, но признайте, что и видок
Не присутствуем ли мы при рожде- неплох!
нии нового монополиста – теперь уже Слово «Гренландия» было мощным
от мира Open Source? Не исключаю, что маркетинговым ходом Viking: небось, хотели
Mandriva займет господствующее положе- выгодно продать таймшер.
ние в сфере российского образования. А
возможно, даже и госчиновничества. Вот
только монополией это не будет по опре- НАШ ВЕРДИКТ: пояснение
делению – ибо не оскудели пока просторы
FOSS «более иными» дистрибутивами. Unix Все попавшие в обзор продукты «Top Stuff». Номинантами стано-
остается Unix’ом и в Югре, и в Ботсване. И оцениваются по одиннадцати- вятся лучшие из лучших – прос- Вердикт
школьник, получивший первичные навыки бальной шкале (10 – то высокой оцен-
работы в Mandriva, без труда адаптируется высшая оценка, 0 – низ- ки здесь недоста- Google Earth
шая). Как правило, мы точно. Разработчик: Google
к любому другому дистрибутиву Linux или оцениваем функциональ- Рассматривая Сайт: http://earth.google.com
BSD-системе. Цена: Бесплатно по закрытой лицензии
ность, производитель- свободное ПО, мы
ность, простоту исполь- обычно указываем Функциональность 10/10
Так что не стоит бояться нашествия
Производительность 9/10
Бонапарта с его двунадесятью народами. зования и цену, а для предпочтитель- Простота использования 9/10
бесплатных программ ный дистрибутив.
А разве что порадоваться тому, что именно Документация 9/10
учитывается документа- Иногда это озна-
Mandrake был одним из пионеров интерна- ция. Кроме того, мы всег- чает компиляцию Если весь мир – сцена, то Google
ционализации Linux’а... да выставляем общую оценку, из исходных текстов, но, если Earth – театр. Простая в использовании,
захватывающая и ободряюще практичная
alv@posix.ru демонстрирующую наше отно- разработчики рекомендуют программа.
шение к продукту. Autopackage, мы следуем этому
Выдающиеся решения могут
получить престижную награду
совету. Рейтинг 9/10

Ноябрь 2007 Linux Format 11


Обзоры Linux PC

Isis – ПК с Ubuntu
Второй месяц подряд мы оцениваем компьютеры с предустановленным Linux. Сегодня речь
пойдет о машине высшего класса, с производительностью под стать внешности.

Н
есмотря на громкие заявления круп-
Вкратце… ных компаний типа Dell, компьютер
с предустановленным Linux по-пре-
Компактный жнему в диковинку. Хотя удобство такой
малошумный Linux вещи трудно переоценить. Многим из нас в
PC с предустанов- свое время довелось изрядно потрудиться,
ленным Ubuntu. чтобы подобрать рабочую аппаратную кон-
Альтернативы –
eSys PC, рассмот- фигурацию. Куда проще предоставить эту
ренный в прошлом работу специалистам, чтобы, купив новый
номере, или даже ПК, просто включить его в розетку и нажать
PC от самой Dell. кнопку питания. Именно такую услугу ока-
зывает британская компания EfficientPC –
системы на основе Ubuntu, собранные на
заказ с учетом индивидуальных требований
и готовые к работе. Один из настольных ПК
Наша Isis прислали на пробу и нам.
система
Даешь MythTV!
Процессор: AMD Isis смонтирован в корпусе Asus Pundit –
Athlon64 X2 Dual
небольшом (9,1 см х 37,5 см) матово-черном
Core 5000+
параллелепипеде, ласкающем взгляд. Наши
Память: 2 ГБ
фотографии просто не в силах отдать ему
Жесткий диск:
должное, но по сравнению с типовым дизай- Isis отличается фантастической элегантностью и невероятной расширяемостью, благодаря
500 ГБ
ном Dell это небо и земля. Isis не выглядит массе видов входных и выходных портов, скрытых под передней панелью.
DVD/RW: 16x
замарашкой рядом с элегантным LCD-теле-
PCI: Netgear
Wireless визором последней модели, а голубые све- слегка тормозной, но это заметно лишь в тории Universe и Multiverse. Следует, впрочем,
тодиоды на передней панели лишь усили- новейших видеоиграх. Добавьте TV-карту – помнить, что средний пользователь слабо
Цена: ‡398,90
(ок. $800) вают эффект. Правда, машина увесистая, и получите совершенный домашний медиа- знаком с Linux. Новичкам пригодился бы пер-
EfficientPC почти 6 кг. Внутри корпуса – процессор AMD центр. К нашему восторгу, EfficientPC делает сональный экран приветствия, позволяющий
просила нас Athlon 64 X2 5000+ и материнская плата с и это, предоставляя инсталляцию и настрой- создать учетную запись без углубления в
отметить, что интегрированной видеокартой Nvidia 6150, ку MythTV без дополнительной оплаты. меню администрирования Ubuntu. Не помеша-
данная 128 МБ разделяемой памяти, гигабитный ли бы и подсказки по решению элементарных
комплектация
может
Ethernet и аудио 5.1. А еще EfficientPC уста- Рассвет Ubuntu задач, вроде изменения разрешения экрана с
подешеветь уже новила в один из PCI-слотов беспровод- После включения машины загружается 32- помощью nvidia-settings. Но EfficientPC явно
к моменту ную G-карту Netgear, а на переднюю панель битная версия Ubuntu 7.04 (на этапе инсталля- решила умерить излишества. За этим малень-
выхода журнала. вынесена удобная комбинация кардридера, ции можно выбрать 64-битную), и нескольки- ким исключением, компьютер очень высоко-
портов FireWire/USB и оптического аудиора- ми секундами позже мы увидели стандартную го качества, а внимание к деталям настройки
зъема – разносторонняя и мощная оснастка картинку Feisty. Сразу же бросился в глаза Linux весьма отрадно. LXF
для столь небольшой коробочки. По нынеш- работающий Compiz. Получить «резиновые»
ним временам видеокарту можно счесть окна и эффекты затухания виртуальных рабо-
чих столов без всяких усилий – это здорово, к
тому же свидетельствует об установке пропри-
етарных драйверов Nvidia. На сайте EfficientPC
Вердикт
предусмотрительно упомянута возможность Isis Series Desktop
альтернативы с nv для адептов открытого Производитель: EfficientPC
ПО, и даже приведен список модулей ядра, Сайт: http://efficientpc.co.uk/
использованных различными системными Цена: от 211 (ок. $400)
компонентами при инсталляции. Функциональность 10/10
Установлены драйверы беспроводной Производительность 9/10
сети Atheros за счет ограниченных моду- Простота использования 9/10
лей ядра. Инсталлирован Java от Sun, а вот Цена 9/10
Adobe Flash понадобилось установить само- Зачем тратить время на поиски
стоятельно с помощью автоматического инс- совместимого оборудования? В высшей
таллятора Firefox – лишний довод в пользу степени рекомендуем.

Чтоб подключать ваш новенький Linux PC к телевизору,


32-битного дистрибутива.
Завершая обзор особенностей конфигура- Рейтинг 9/10
предусмотрены гнезда DVI, VGA и SVIDEO. ции, скажем, что в Synaptic включены репози-

12 Linux Format Ноябрь 2007


MP3-плейер Обзоры

TurboLinux Wizpy
Не спешите проверять обложку: вы читаете «правильный» журнал.
Грэм Моррисон действительно имеет в виду MP3-плейер.

О
н мал (84 х 42 х 12,2 мм) и легок;
Вкратце… нам прислали экземпляр глянцево-
черного цвета (ведь черный – это
MP3-плейер тоже цвет?). Есть вариант в белом. Девять
с возможностью кнопок украшают лицевую панель аппарата.
просмотра текстов На них есть даже значки, но практически недо-
и фильмов, при
ступные пониманию – мгновенно узнаваемая
подключении к PC
загружается черта японских изделий. Включите Wizpy, на
в TurboLinux. несколько секунд придержав нижнюю правую
Можно смастерить кнопку с иносказательным изображением – и
собственный в дело вступит OLED-дисплей. Он весьма ярок,
с помощью USB-
но режет глаза миганием.
брелка или LiveCD.
Махните плейером слева направо, и перед
глазами замелькает изображение на экране,
растягиваясь и искажаясь. В походах по фай-
ловой системе это не важно, но при просмотре
фильмов комфорта не добавляет. Но, в любом
случае, для фильмов плейер не предназна-
чен: 1,7-дюймовый экран маловат, разреше-
ние низкое, а количество цветов ограничено
256 000.

Поддерживаемые форматы: Ogg Vorbis, MP3, WMA, AAC, DivX.


«Подсоедините Wizpy к ПК,
загрузитесь – и готов именно такую форму обращения с файлами. ность устройства среди японских студентов.
В целом, интерфейс довольно громоздкий. Носить с собой собственный Linux-дистри-
рабочий стол TurboLinux!» А вот качество звучания великолепно, и бутив, домашнюю директорию, приложения
вы скоро забудете, с каким трудом слепи- и медиафайлы в одном устройстве, которое
ли новый плей-лист. Правда, после замены заодно действует и как медиаплейер, весьма
Ограниченное хранилище ужасных наушников, входящих в комплект удобно. Основная проблема – цена. Продукт
Устройство обладает 4 ГБ памяти, хотя для устройства. Есть множество параметров кор- нам нравится, но ведь трудно не согласиться,
хранения медиафайлов доступны толь- ректировки и ручная настройка, что позво- что приобрести обычный MP3-плейер и недо-
ко 2,7 ГБ (причину разберем в следующем ляет выжать из устройства максимальное рогой USB-брелок на 4 ГБ, при той же функ-
параграфе), и при подключении к USB-пор- качество, а без перезарядки (через USB- циональности, существенно дешевле. Поэтому
ту компьютера оно способно работать как кабель) можно слушать музыку 2 часа. спрос на Wizpy обещает быть весьма ограни-
обычный накопитель. Пользовательский ченным. LXF
интерфейс нельзя назвать интуитивно- TurboLinux
Тонкий
понятным. Экран основного меню предо- До сих пор мы умалчивали о том, почему
и стильный —
ставляет выбор между основными функци- именно этот плейер удостоился обозрения в
так и хочется
ями: прослушиванием музыки, просмотром нашем журнале (кроме, пожалуй, поддержки
изобрести какой-
нибудь чехол фильмов и фотографий, прослушиванием исчезающе редкого формата Ogg Vorbis). Мы Вердикт
для защиты своего FM-радио или записью звука. Девять кнопок не упомянули об одном из важнейших качеств
Wizpy действуют как клавиши управления курсо- устройства: выключите компьютер, подсоеди- Wizpy
от повреждений. ром. Медиа-содержимое представляется в ните плейер, загрузитесь – и перед вами Разработчик: TurboLinux
Сайт: www.turbolinux.com
виде файлов, папок рабочий стол TurboLinux! Wizpy сработает как Цена: $290
и списков воспро- настоящий Live CD, только с полноценным
Функциональность 8/10
изведения, вмес- домашним разделом и доступом к музыкаль-
Производительность 6/10
то использования ной коллекции через Amarok. Простота использования 6/10
встроенной тэго- Возможно, понадобится поковыряться в Цена 4/10
вой информации BIOS, но Wizpy предусмотрительно эмули-
медиа-файлов. В рует USB CDROM, а уж с таким-то устрой- Почти великий продукт: больше памяти
или меньше цены, и мы вручим ему
мире iTunes это ством «дружат» почти все ПК. На худой конец,
награду Top Stuff!
несколько старо- устройство можно использовать как USB-
модно, но многие
Linux-пользователи,
носитель. В составе дистрибутива прекрас-
ный набор ПО, включая OpenOffice, Firefox, Рейтинг 6/10
видимо, предпочтут Thunderbird и Skype; неудивительна популяр-

Ноябрь 2007 Linux Format 13


Обзоры CAD для Linux

VariCAD 2007 2.01


САПР для Linux? Ник Вейч может только предполагать, зачем вам потребовалась эта программа,
хотя некоторые из писем читателей действительно впечатляют...

П
рофессиональных CAD-систем для
Вкратце… Linux немного. Любительских наброс-
ков CAD в среде открытого ПО хвата-
2D/3D ет, но большинство из них весьма примитивны
CAD-программа и созданы для решения сугубо специальных
для инженеров- задач (например, разводки печатных плат)
конструкторов. или, наоборот, слишком обобщены, без забот
См. также QCAD
для 2D- о глубине функциональности.
проектирования. Создатели VariCAD умудрились сочетать в
программе несложный интерфейс с мощным
инструментарием для создания практически
любого мыслимого проекта, хотя «заточе-
на» программа под конструирование меха-
низмов. VariCAD был первым Linux-прило-
жением, успешно применившим 3D-режим
проектирования, освоив который, начинаешь
недоумевать, зачем вообще нужно двумерное
черчение. Создав простой объект в 3D-режи-
ме, можно вертеть его во всех направлениях
с помощью Control-Shift и мыши. Добавить
новый объект совсем несложно: к вашим услу-
гам уйма «привязывающих к пространству» Богатый инструментарий VariCAD легко справляется с большинством конструкторских задач.
параметров – инструментов, способных найти
хоть середину отрезка, хоть центр круга.
Если нужны сложные расчёты, вас и тут 2D иль не 2D? отверстия и, естественно, воспользовавшись
ожидает мощная поддержка. Понадобился Завершив свою модель, нетрудно экспорти- командой Undo (Отменить), чтобы вернуться
стандартный подшипник, пружина, ролик ровать объёмное изображение в двумерную к исходному, вы обнаружите, что исчезло всё.
или балка с определенными спецификация- чертежную часть программы. Хотя многие Попытка сделать Redo (Повторить) ни к чему
ми – пожалуйста, программа не только под- предпочтут работу в 3D-режиме, на 2D отнюдь не приведёт – движок Undo/Redo реагирует
берёт нужный вариант, но и вычертит его. не поскупились; возможен и обратный про- только на изменения, которые реально про-
Приложение буквально ломится от подоб- цесс – обращение двумерных чертежей в 3D- изошли с моделью; в некоторых случаях такое
ных решений, сберегающих время и усилия. объекты. Конечно, 2D-режим не столь увле- может без малого взбесить.
Многие компоненты даже незачем и чертить: в кателен, но для многих видов проектирования Стоит ли обновляться? Если вам позарез
VariCAD имеется внушительный набор винтов, без него не обойтись. Если же вы хотите прос- нужно строить водопровод – возможно. Если
болтов, шайб и профилей по типоразмерам то набросать проект печатной платы, то эта же вы вовлечены в другой крупный проект с
ANSI и DIN, и выполнение работы становится работа как раз по плечу одной из свободных устоявшейся практикой – коней на перепра-
тривиальной задачей, а не тягучей рутиной, программ-альтернатив. ве лучше не менять; а вот новичка VariCAD не
характерной для прежних CAD-инструментов. Основная причина скачка в нумерации вер- разочарует точно. LXF
сий – введение функций обработки прово-
дов и труб, призванных упростить прокладку
коммуникаций на чертежах (в трёхмерном
Свойства навскидку режиме, естественно). Обе функции сходны,
с той разницей, что труба пустая, а провод
(само собой) нет. По сути, задача сводится к
Вердикт
построению простых цилиндров, только они VariCAD 2007 2.01
непрерывно следуют один за другим – провод Разработчик: VariCAD
или труба автоматически изгибается соглас- Сайт: www.varicad.com
но размерам: надо указать лишь исходную и Цена: $680
конечную точку, а о коленах программа забо- Функциональность 10/10
тится сама. Хотя применение этих функций Производительность 9/10
кое в чем ограничено, они фантастически сбе- Удобство использования 8/10
регают время. В программе исправлены неко- Цена 7/10
Провода и трубы Тяжёлое вооружение
В новом режиме моделирования Сберегите часы цифровой торые ошибки – в основном, в 3D-интерфейсе, Достойного соперника на Linux-
размещать на чертежах провода рутины – пусть программа который теперь более точно подстраивается к платформе что-то не видно.
и трубы гораздо проще и делает сложные вычисления различным видеокартам. К сожалению, часть
быстрее, чем раньше. сама. недостатков пока не изжита. Например, сде- Рейтинг 9/10
лав ошибку в размещении нескольких копий

14 Linux Format Ноябрь 2007


Мультимедиа-центр Обзоры

LinuxMCE 0704
Cтрадаете по чему-то вроде AppleTV или Windows Media Center Edition для Linux? Не страдайте –
открытое ПО нисколько не хуже…

L
inux просто необходим единый медиа-
Вкратце… центр: любой средний дистрибутив бук-
вально замусорен медиа-приложени-
Активная ями. Пол Уэббер [Paul Webber] с группой
оболочка, верных помощников, надеется решить эту
доставляющая весь проблему с помощью LinuxMCE (Linux Media
цвет мультимедиа- Centre Edition). LinuxMCE – вязанка Linux-
ПО Linux прямо
в руки обычного мультимедиа-столпов уровня MythTV, Asterisk,
пользователя. VideoLAN и Xine, объединенных чем-то вроде
Убедитесь только, ядра (The Core). В феврале The Core отпоч-
что ваше ковалось от выпущенного по GPL исходно-
оборудование
го кода Pluto, коммерческого приложения
поддерживается.
для домашней автоматизации. Основательно
переработанный и отделенный от исходного
Linux-дистрибутива, LinuxMCE теперь выстро-
ен вокруг Kubuntu: версия 1.1 доступна либо
на 2-х CD, либо в DVD-варианте. Разница меж-
ду ними – в процессе установки. CD-версия
инсталлируется поверх свежеустановленного
Kubuntu 7.04, с сопутствующей настройкой
массы параметров, а DVD-вариант применяет
для инсталляции метод Quick Install, заодно
включает Kubuntu и храбро заявляет о 20-
минутной инсталляции нажатием трех кнопок. Эффекты OpenGL начиняют интерфейс пользователя чем-то очень похожим на изыски
Apple.
Quick Install
Мы загрузили Quick Install DVD с помощью контролировать простейшим пультом дистан- управления курсором. А вот на настройку
BitTorrent – не терпелось проверить, соответ- ционного управления. Десятью минутами поз- MythTV или Asterisk магии уже не хватило.
ствует ли действительности время инсталля- же стартует менеджер настройки LinuxMCE. Стабильно работать они будут лишь при мини-
ции. Разработчики не обманули, но необходи- Это одна из основных программ инсталляции: мальных запросах – вот почему мы установи-
мо соблюдать осторожность. Почти единствен- ее работа – загрузить серию обновлений и ли LinuxMCE на старую MythTV-машину. Но
ный вопрос, на который вы отвечаете во время запустить пользовательский интерфейс. мы считаем, что LinuxMCE обладает фантас-
инсталляции – это о диске, на который будет тическим потенциалом для развития, и если
установлен LinuxMCE. Выбранный диск будет Готово к действию долгожданная интеграция KDE 4 все-таки слу-
переразбит и переформатирован автомати- Затем пойдет долгий процесс настройки: чится – следующая версия может стать сверх-
чески: у вас не останется ни малейшего шан- LinuxMCE будет дотошно разузнавать о том, популярной. LXF
са. При двойной загрузке дважды подумайте что и где у вас инсталлировано. По сути, это
перед нажатием клавиши – секундой позже графически оформленная скриптовая обра-
Клиенты: настройте
все данные будут стерты. Спустя 10 минут ботка различных пакетов – например, мож-
сколько вам угодно
появляется AV-мастер. Девятишаговая проце- но настроить световую и звуковую системы
клиентов,
подключенных дура проста: необходимо ответить на элемен- сигнализации о неполадках. Однако располо-
к центральному
серверу, с помощью
тарные вопросы о графическом оборудовании
и о том, слышите ли вы определенный звук.
жение кнопок не очень удобно для навига-
ции, и не предусмотрена помощь в настрой-
Вердикт
web-интерфейса. Лишь один ответ трудно предугадать зара- ке аппаратуры. Периферия должна «просто LinuxMCE 0704
нее: это о способности оборудования поддер- работать» с LinuxMCE, поэтому предпочтение Разработчик: Пол Уэббер
живать OpenGL GUI, отдается USB-устройствам. Проделав необхо- Сайт: www.linuxmce.com
что для большинства димые шаги, вы наконец-то попадаете в поль- Цена: Бесплатно под GPL
современных уст- зовательский интерфейс. Навигация между Features 10/10
ройств определить кнопками основных функций, расположенны- Performance 8/10
непросто. Работа ми внизу экрана, осуществляется просто кур- Ease of use 7/10
пользователя огра- сором, и уж здесь-то все действует безупреч- Documentation 5/10
ничивается управ- но. OpenGL четко связывает функции между Не путать с волшебной палочкой!
лением курсором да собой. Выберите кнопку Movie (Фильмы), и Амбициозный Linux-проект
клавишей активации появится список всех совместимых файлов, с грандиозным потенциалом.
(Enter). Это означает, найденных в системе. Воспроизведение осу-
что пользовательский ществляется вашим любимым медиа-плей- Рейтинг 7/10
интерфейс можно ером, и тоже – простейшими средствами

Ноябрь 2007 Linux Format 15


Обзоры Игра

Penumbra: Overture
Побродив в холодных лабиринтах, Грэм Моррисон обнаружил, что намек на неполное освещение в
названии игры [penumbra – полумрак, – прим. пер.] более чем оправдан.

П
режде всего, приносим свои
Вкратце… извинения за плохую контраст-
ность экранных снимков в статье.
Проблема в том, что в Penumbra: Overture
Приключенческая темно, а темнота плохо «ложится» на печать.
игра «от первого Как и страх, сообщник темноты: в Penumbra
лица» с элемента-
эффектно работают оба. Данный релиз дол-
ми решения задач
и увлекательным жен стать первым в трилогии, и именно
сюжетом. сюжет, а не «навороченная» графика или
Комбинация ста- спецэффекты, призваны вести игрока от
рых приключений одного эпизода к другому. История, как и
LucasArts, интерак-
графика, темная – наш герой Филип [Philip]
тивной фантастики
и Silent Hill. отправляется на поиски правды о смерти
своего отца, а заодно и секретов, оставлен-
ных им в потайном сейфе. Проникновенный
закадровый голос сопровождает повороты
сюжета и объясняет текущее положение дел
на фоне отличных иллюстраций. Но имейте
в виду, что все линии сюжета обрывают-
ся, едва Филип оказывается в Гренландии,
находит убежище в одной из заброшенных
шахт и обнаруживает, что он не единствен-
ный обитатель подземелья. Прекрасные иллюстрации помогают проникнуться атмосферой тревоги и напряжения,
сопутствующей игре, да и сами во многом создают эту атмосферу.
Развеем мрак
Penumbra: Overture – это 300 МБ загрузки, 1-ГГц процессор. В начале игры графика или жечь факел для дополнительного осве-
а еще для игры понадобится сравнительно хороша, с превосходной глубиной и бога- щения. В любом случае, освещено будет
нестарая видеокарта и по меньшей мере тыми текстурами. Но едва вы попадаете в лишь небольшое пространство прямо перед
шахту, способности графического движка вами. Освоившись, вы начинаете бродить и
становятся излишними. Из различных уров- бегать по шахте с тем же чувством трепета,
«Вес объекта влияет ней полумрака трудно соорудить достойное которое, наверно, испытывал Говард Картер
на силу разрушения, изображение, хотя есть несколько спосо- [Howard Carter], впервые осветив гробницу
бов слегка подсветить картинку. Учитесь Тутанхамона. Именно эта игра света и тени
вызванного его броском.» беречь заряд батареек в своем фонарике создает напряжение. Просто жуть берет,

Шаг за шагом: Силы Ньютона в действии

Разбор булыжников Поднять и переместить С дороги!


Чтобы сдвинуть ящик, надо сперва вынуть Берем каждый булыжник с помощью левой Теперь, когда ящик пуст, можно пнуть его в
булыжники, которыми он заполнен. кнопки мыши, не спеша вынимаем его из ящика и сторону курсором и открыть крышку потайного
убираем в сторону. люка.

16 Linux Format Ноябрь 2007


Игра Обзоры

когда вы блуждаете по мрачным проходам,


сзади скребется хищный зверь, над головой
завис гигантский паук, а под ногами – мумия
вашего незадачливого предшественника.
Игра во многом напоминает старые тексто-
вые приключения.
Сюжетная линия и окружение во мно-
гом напоминают таковые в играх вроде
Colossal Cave Adventure Уилла Кроутера [Will
Crowther] или известной трилогии Zork от
Infocom. Здесь есть запутанные лабирин-
ты, множество замков и ключей для них, и
залетный негодяй Грю [Grue]. Старые шах-
тные механизмы нужно вернуть к жизни, а
для изготовления взрывчатой смеси подоб-
рать необходимые ингредиенты. Есть даже
панель управления для подбора шифра,
взятая из головоломки Flood Control Dam
#3 в игре Zork I. В целом же, нечастые голо-
воломки разгадать легко, просто разыскав
нужный предмет и поместив его в подходя-
щее место.

Физ-з-зика
Но что же отличает эту игру от многих дру-
гих? Движение! К изумлению, в игровой
движок встроена полноценная ньютонов- Игра стартует при свете дня, но это единственная возможность оценить способности графического движка – чем
ская физическая модель. Поднять и пере- дальше, тем мрачнее и тревожнее становится все вокруг.
местить любой объект в поле игры можно
курсором. Щелкните левой на бутылке вис-
ки, лежащей на столе, чтобы поднять ее и захват, пока курсор попадет в правильную
взять в виртуальную руку. Приподнимите позицию. Сначала двигать ящики стола за
бутылку и отпустите левую кнопку мыши ручки очень весело, но если нужно по-быс-
– бутылка упадет на стол. Махните мышью трому обшарить целую комнату шкафов в
– и бутылка, пропорционально приложен- поисках последнего куска солонины, это
ной силе, полетит и разобьется о каменную скоро надоест. Вес объекта влияет также и
стену пещеры. Эффект хорошо отлажен, и на его маневренность, и на разрушитель-
определенно усиливает степень погруже- ность воздействия, которое он может ока-
ния в виртуальную реальность игры. То же зать на другие предметы – быстро научи-
свойство используется для решения голо- тесь, когда припрет.
воломок, поднятия крышек люков и пово-
рота дверных рукояток. Могут иметь место Ужасы
проблемы, так как графика не настолько Принимая во внимание цену, а также то, что
хороша, чтобы позволить уверенно контро- Linux-версия наступает на пятки Windows-
лировать ваши действия. Например, откры- игре (опережая неизбежный OS X-вари-
вая люк, придется сделать не один пробный ант), эта игра – замечательное дополне-
ние к игротеке линуксоида. Да, она далека Время выбирать между фонариком и факелом.
от совершенства, и временами приходится
забывать о логике, следуя поворотам сюже-
та и несколько монотонному способу реше-
ния проблем «взять то/положить сюда». Но
таинственная история и едва освещенные Вердикт
интерьеры будут как раз впору для многих
из нас, обитателей северного полушария. Penumbra: Overture
А еще игра жуткая. Передергивает от ужа- Разработчик: Frictional Games
Сайт: www.penumbra-overture.com
са, когда батарейки фонаря окончательно
Цена: $20
садятся, вы остаетесь в полной темноте, а
Функциональность 6/10
два желтых глаза уставились прямо на вас
Производительность 7/10
из глубины пещеры. Это не шедевр, но если Простота использования 7/10
нам удастся накликать повышенный спрос Цена 9/10
на первый эпизод, то, будем надеяться, это
Стоит большего, чем DVD-фильм
позволит разработчикам с полной уверен- за ту же цену; пример для издателей,
ностью приступать к работе над следующей сомневающихся в успехе Linux-версий.
частью. LXF
Сюжет временами хромает, но действие достаточно увлекательно и Рейтинг 8/10
глубоко, чтобы держать интригу и не снижать напряжение.

Ноябрь 2007 Linux Format 17


Сравнение Каждый месяц мы сравниваем тонны
ПО – а вы можете отдыхать!
На DVD

Оболочки брандмауэров
Излишне разъяснять важность обороны от интернет-вторжений. Крис Хауэллс подобрал
несколько программ, призванных нас защитить.

Про наш тест…


Тест проводился в системе Kubuntu 7.04
Feisty Fawn, установленной на Lenovo
ThinkPad X60s с 1,5 ГБ RAM и 1,66-ГГц
процессором Intel Core Duo. Программы
сравнивались по следующим критери-
ям:

Простота Задача такого рода прило-


жения – облегчить настройку брандма-
уэра. Поэтому программа должна быть
интуитивно-понятной и, желательно,
подвластной человеку, плохо представ-
ляющему, что такое брандмауэр.

Документация Столь критичному


участку безопасности сети необходима
хорошая документация: пользователь
должен знать, на чем зиждется его
защищенность. Мы сравнивали доку-
Paul Blachford

ментацию программ по детальности,


качеству написания и количеству и каче-
ству предоставленных образцов бранд-
мауэров.

Б
рандмауэр – современный цифровой себя многие мелкие, но трудоемкие опера-
Наш аналог крепостного рва и подъемного ции. Такие оболочки бывают двух типов.
Функционал Сети имеют обыкновение
выбор моста: захватчики не пройдут, дру- Полностью графические решения позволяют
разрастаться, а инструмент должен пос-
певать за их ростом, обладая запасом
FireHOL с. 20 зей – милости просим. Это первая линия настроить брандмауэр выбором различных необходимых функций. Любая оболоч-
Firestarter с. 21 Интернет-обороны, и очень важно его уста- параметров в графическом интерфейсе. ка должна «уметь» не только состав-
Firewall Builder новить, независимо от масштабов вашей кре- Второй вид оболочек предоставляет вам лять элементарные правила iptables, но
с. 21 пости – крупная ли это сеть или одиночная самостоятельно описать брандмауэр с помо- и настраивать трансляцию адресов,
KMyFirewall
с. 19 рабочая станция. щью особого языка программирования, син- поддерживать маршрутизацию, под-
Guarddog с. 20 Следует признать, что постройка брандма- таксис которого несколько отличен от тра- считывать трафик и многое другое.
Shorewall с. 22 уэра на Linux – далеко не тривиальная зада- диционных команд iptables. После этого про-
ча. Обычно защиту настраивают при помощи грамма настройки брандмауэра конвертирует
инструмента командной строки iptables, при- написанные правила в конфигурацию iptables, IP-адресом (подробности см. http://www.ietf.
чем требуются немалые познания и понима- которую можно загружать и контролировать, org/rfc/rfc1918.txt). Вам может также понадо-
ние различных концепций, связанных с дан- как обычно. биться помощь в пробросе портов, шейпинге
ным вопросом, что достигается лишь чтением Подобные программы умеют составлять не и учете трафика.
изрядного количества документации. только простые правила iptables. Технология В общем, имеете ли вы дело со скром-
Хорошо, что существуют различные трансляции адресов (Network Address ным настольным ПК, или с обширной сетью –
оболочки, значительно упрощающие сбор- Translation, NAT) позволяет скрыть многочис- найдутся программы, призванные обеспечить
ку брандмауэров для Linux-машин, взяв на ленные частные IP-адреса за одним общим вашу безопасность.

18 Linux Format Ноябрь 2007


Оболочки брандмауэров Сравнение

KMyFirewall
Бесхитростное название прозрачно намекает на принадлежность KDE…

Б
удучи солидным приложением,
KMyFirewall предлагает пользовате-
лю два вида интерфейсов. Generic
Interface предоставляет сравнительно простой,
но не особо мощный интерфейс для iptables.
Зато Iptables Interface позволяет добраться
почти до любого параметра настройки бранд-
мауэра. Но пользоваться этим интерфейсом
ненамного проще, чем писать правила iptables,
так как необходимо все-таки иметь представ-
ление о сути вопроса.
Запустив KMyFirewall не как суперпользо-
ватель, вы тем не менее будете вынуждены
назвать его пароль, чтобы сделанные измене-
ния, требующие особых привилегий, вступили
в силу. Предоставляется много готовых образ-
цов, среди которых варианты для рабочей
станции, NAT-маршрутизатора и web-сервера.
Можно начать и с совершенно новой, чистой
конфигурации.
Нас с ходу расстроило стартовое заяв-
ление KMyFirewall о том, что наборы пра-
вил, составленные в предыдущих версиях,
работать не будут, «даже не пытайтесь». Это
обижает пользователей прежних версий и Можно настроить ведение журнала, хотя довольно скудного: записываются только отклоненные пакеты.
заставляет заподозрить, что будущие смены
версий тоже проигнорируют обратную сов-
местимость, и трудоемкий процесс придется идентичен самой iptables. Например, можно брандмауэра реализуется как отдельный
начинать с нуля. получить непосредственный доступ к любой модуль. Поэтому программу нетрудно преоб-
В Generic-режиме интерфейс пользова- из трех цепочек пакетных фильтров iptables: разовать, добавив новые модули. В докумен-
теля состоит из нескольких страниц с пара- INPUT, OUTPUT и FORWARD. Можно составить тации создание модулей описано подробно –
метрами настройки. Первая, Access Control собственные правила, установить политику по по сути, для этого достаточно составить XML-
(Управление доступом), позволяет указать умолчанию (например, предписать отклонять файл описания и немного потрудиться в C++
протоколы, по которым разрешены входящие все пакеты, кроме точно соответствующих для привязки к графическому интерфейсу.
и исходящие подключения. Вторая, Special установленным критериям отбора) и многое Документация добротна, хотя и без изысков.
Hosts (Особые хосты), дает возможность ука- другое. KMyFirewall не очень-то изменилась со
зать хосты, отношения с которыми оговари- К сожалению, мы нашли здесь ошибку: времен версии 1.0 2005 года. Обещана под-
ваются особо – например, серверы, контакт с установленные правила не появляются в спис- держка создания брандмауэров для других
которыми запрещен. ке, пока не выбран хотя бы один из пунктов в систем, включая pf в OpenBSD. Интересно
Управление пакетами Internet Control группе флажков Table. Ошибка простая и лег- было бы посмотреть.
Message Protocol (ICMP) возможно лишь до ко устраняемая, но пользователей такое пове-
некоторой степени, поэтому мы удивились, дение не радует.
увидев подпись под одним из параметров:
«Ограничив число ping-запросов, можно избе- Сохраняем настройки
жать DoS (Denial of Service)-атак». Да, до неко- Настройку брандмауэра можно сохранить,
торой степени защититься можно, но «избе- а затем загрузить в формате KMyFirewall
жать» – явное преувеличение. Generic Ruleset (.kmfgrs), а можно и экспорти- Вердикт
Трансляция настраивается на следующей ровать как обычный скрипт оболочки, где все
странице. Жалко, что KMyFirewall в режиме правила описаны с помощью команд iptables. KMyFirewall 1.0.1
Generic, похоже, не поддерживает проброс Предписать KMyFirewall перенести брандма- Сайт: http://kmyfirewall.sourceforge.net
портов. уэр на другую систему тоже несложно: про- Цена: Бесплатно под GPL
Нажав кнопку, можно предварительно про- грамма создает tar-архив (содержащий прави-
Отважная попытка, с двумя режимами
смотреть полученный брандмауэр. Это полез- ла в виде скрипта) и инсталляционный скрипт на выбор при брандмауэре любой
но для изучения механизма работы iptables. для копирования правил в указанное место сложности.
В Iptables Interface возможен доступ почти к целевой системы.
любому параметру настройки брандмауэра.
Интерфейс пользователя по сложности почти
В основе KMyFirewall лежит модульная
архитектура, и почти каждое правило для
Рейтинг 8/10
Ноябрь 2007 Linux Format 19
Сравнение Оболочки брандмауэров

FireHOL
Очевидно, «брандмауэр для людей»!

П
риложение реализовано как bash- Брандмауэром управляет служба, разме-
скрипт, который сам себя устанав- щаемая в большинстве дистрибутивов в ката-
ливает на целевую Linux-систему. логе /etc/init.d. Скрипт принимает ряд пара-
Брандмауэр формируется введением различ- метров, таких как start, для загрузки правил.
ных правил в файл конфигурации. Этот файл Параметр try загружает правила брандмауэра
также является bash-скриптом, что упрощает на 30 секунд, если не последует commit для
написание собственных правил. подтверждения; это удобно, если в процессе
Как и в Shorewall, прежде всего придется постройки брандмауэра для удаленной сис-
почитать документацию: программа не очень- темы сделана ошибка, способная привести к
то понятна интуитивно. Сайт FireHOL полон разрыву связи и невозможности устранения
Запуск FireHOL сравнительно прост: установить скрипт как сервис и
документов и примеров. Особенно полезно проблемы.
дать команду /etc/init.d/firehol.sh start.
Tutorial (Руководство), в котором дотошно Документация FireHOL написана прекрас-
описан каждый шаг процесса. но. Сайт программы несколько перегружен
Правила брандмауэра состоят из специфи- сообщениями типа “Added FireHOL_DROP_
каций сетевого интерфейса (например, eth0), ORPHAN_TCP_ACK_FIN for busy servers” с Вердикт
сопровождаемых ключевыми словами server минимальными комментариями.
FireHOL 1.256
или client. Подстановка server относит правило
к входящим подключениям, а client – к исходя- Сайт: http://firehol.sourceforge.net/
щим. Затем необходимо указать название про- Цена: Бесплатно под GPL
токола для брандмауэра. Заканчивается про- Легкими движениями руки построить
цесс указанием действия (например, accept). брандмауэр в FireHOL – одно
Законченное правило может выглядеть так:
«Выполненная в виде удовольствие.
server http accept (допустить входящие HTTP- bash-скрипта, программа
запросы). Кроме брандмауэра, FireHOL позво-
инсталлирует себя сама.» Рейтинг 7/10
ляет контролировать NAT и маршрутизацию.

Guarddog
Четвероногий друг подает лапу помощи…

И
нтерфейс еще одной программы мер, ограничению на подключения: можно
KDE – окно с четырьмя вкладками. задать число одновременных подключений
Правильно она работает только под за определенный период времени и настро-
суперпользователем. Guarddog совместим с ить многие другие параметры для управления
функциональностью брандмауэров, заложен- количеством регистрируемой информации.
ную в ядра 2.2, 2.4 и 2.6. Брандмауэр нетрудно экспортировать
В первой вкладке устанавливаются через вкладку Advanced: будет составлен bash-
зоны. Зона – это, по сути, IP-адрес или IP- скрипт с набором текущих правил. Это озна-
сеть, поэтому может состоять из одной или чает, что брандмауэр можно передать даже на Документация прекрасно написанная, подробная, снабженная
нескольких машин. Концепция зоны – клю- машину без Guarddog. В принципе, Guarddog множеством примеров, как лучше поступать в разных практических
чевая для программы; по умолчанию имеет- предназначен для работы на машине с дейс- ситуациях.
ся зона Интернет и Локальная зона. Можно твующим брандмауэром, поэтому правила
добавлять другие зоны, указывая их названия, можно корректировать прямо на месте. Вердикт
IP-адреса и сетевые маски. На последней вкладке, Port Reference (О
Во вкладке Protocol указывается трафик, портах), собраны сведения о портах с различ- Guarddog 2.6.0
допустимый в разных зонах, выбором флаж- ными номерами. Сайт: www.simonzone.com/software/
ков рядом с названиями протоколов в списке. guarddog/
Многие распространенные протоколы (напри- Цена: Бесплатно под GPL
мер, HTTP и FTP) «зашиты» в программу, и Сравнительно простая и
не надо запоминать детали связанных с ними нетребовательная к ресурсам программа.
служб. Определить новые протоколы можно «Совместим с Хороша для домашних пользователей, но
для крупной сети слабовата.
через вкладку Advanced (Дополнительно).
брандмауэрами ядер
Вкладка Logging (Регистрация) открывает
доступ ко всяким полезным функциям, напри-
2.2, 2.4 и 2.6.» Рейтинг 6/10
20 Linux Format Ноябрь 2007
Оболочки брандмауэров Сравнение

Есть еще значок

Firestarter в системном лотке,


работающий
и в Gnome, и в KDE:
он отображает
Вообще-то мы предпочли бы огнетушитель текущее состояние
[firestarter – поджигатель, – прим. пер.]! приложения
и брандмауэра.

П
рограмма замечательно «легковес- Интернету, обычно включив NAT и запустив
ная», написана с использованием DHCP-сервер для автоматической настройки
Gnome-библиотек, а работать с ней других хостов, входящих в состав локальной
дозволено только суперпользователю. В глав- сети.
ном окне – три вкладки, панель инструмен- Пользоваться Firestarter несложно – панель
тов и строка меню. Первая вкладка, Status инструментов содержит контекстно-зависи-
(Состояние), выдает некоторые общие сведе- мые значки для управления основными фун-
ния о состоянии сетевого подключения (сколь- кциями программы. Например, во вкладке
ко переслано данных, включен ли брандмауэр Status есть кнопка Lock Firewall (Запереть
и т.п.). брандмауэр), останавливающая весь трафик
Во второй вкладке, Events (События), соб- целиком, а другой кнопкой (Start/Stop) мож-
раны сведения о подключениях, блокирован- но, соответственно, остановить или запустить
ных брандмауэром, а именно номер порта, защиту.
протокол и источник вторжения. Документация составлена неплохо, с
Вердикт
Наконец, во вкладке Policy (Политика) рисунками и примерами. Небольшая загвоз-
Firestarter 1.0.3
устанавливаются правила управления бранд- дка: при выборе пункта Help (Справка) про-
Сайт: www.fs-security.com
мауэром. По умолчанию входящие подключе- грамма пытается открыть сайт Firestarter в Цена: Бесплатно под GPL
ния блокируются. Входящий и исходящий тра- Mozilla – это никак не спасет, если сеть еще не
Очень простой и эффективный
фик можно контролировать, указывая номера подключена! Было бы гораздо полезнее пре-
брандмауэр для домашних, но не для
портов и IP-адреса. Перенаправление портов доставлять справочные материалы локально. производственных, целей.
настраивается здесь же.
Другой способ настройки Firestarter – «Настройка Firestarter – Рейтинг 6/10
режим мастера: процесс пошаговых ответов
на вопросы (например, о методе подключе- простой пошаговый
ния вашей локальной сети). Удобно, что здесь
же можно настроить разделяемый доступ к
процесс в режиме мастера.»

Firewall Builder
Кроссплатформенный полиглот.

Г
рафическая, кроссплатформенная, и HTTP, хотя эстеты могут определять соб-
пригодная для Windows, Mac OS X и ственные службы. Есть и пространное 116-
Linux, Firewall Builder – просто уни- страничное руководство в формате PDF, но,
версальная программа. Она способна состав- к сожалению, устаревшее, и примеры в нем
лять правила для многих типов брандмауэров, не соответствуют функциональности совре-
включая pf для OpenBSD, PIX-устройств Cisco менной версии программы. На сайте полно
и, конечно, Linux-iptables. «образцовых» брандмауэров, но нет доход-
Для управления брандмауэрами Firewall чивого разъяснения о том, как же они рабо- Нам понравилась возможность использования SNMP для получения
Builder использует концепцию объектов. тают. Позор. информации о системе, на которой планируется установка
Например, каждый хост рассматривается На наш взгляд, задумана программа брандмауэра.
как объект, которому можно присвоить сете- неплохо – тем обиднее видеть убогую реа-
вой интерфейс и IP-адрес (тоже объекты). лизацию. Приступить к использованию про- Вердикт
Объекты выделяются в «дереве» левой час- граммы было нелегко, поскольку она плохо
ти окна, а обрабатываются в правой час- понятна интуитивно, а документации недоста- Firewall Builder 2.1.1.3
ти. Добавляются объекты щелчком на под- ет четких инструкций о построении брандмау- Сайт: www.fwbuilder.org
Цена: Бесплатно под GPL
ходящем участке дерева и выбором New эра «с нуля».
(Создать) – конкретное название зависит от Мы искренне пытались полюбить
контекста. Расположение объекта можно Firewall Builder, но не смогли, из-за
путаного дизайна и устаревшей
изменить копированием/вставкой. «Программа универсальна: документации.
Firewall Builder снабжен значительным
умеет создавать правила для
количеством объектов, описывающих боль-
шинство известных протоколов вроде SMTP брандмауэров разных ОС.» Рейтинг 3/10
Ноябрь 2007 Linux Format 21
Сравнение Оболочки брандмауэров

Shorewall
Судя по аннотации программы, это «iptables, но куда проще».

К
онсольная программа Shorewall при- фейсом, и на сервере со множеством сетевых тить ввод через присвоение символического
меняется для создания скриптов карт и с многочисленными и разнообразны- имени устоявшемуся набору правил (напри-
iptables. Правила брандмауэра запи- ми подключениями. Shorewall настраивается мер, комбинации портов и привязанных к ним
сываются на особом языке настройки, что редактированием различных конфигурацион- протоколов).
несколько упрощает процесс их создания. ных файлов, хранящихся в директории /etc/ Shorewall поддерживает учет трафика.
Готовые правила Shorewall компилирует в shorewall. Важнйшие из них – /etc/shorewall/ Можно следить за числом пакетов, соответ-
скрипт, а затем загружает его с помощью сво- zones, где настраиваются зоны, /etc/shorewall/ ствующих правилам отбора, или за количе-
ей же облегченной версии. Поэтому, устанав- policy, где устанавливаются умолчания, и /etc/ ством данных в байтах. Это бывает полез-
ливая брандмауэры для нескольких систем, shorewall/rules, содержащий исключения из но: например, можно проследить количество
можно скомпилировать правила на одной из политики по умолчанию (например, разреше- информации, используемой каждым пользо-
них, а затем распространить на другие, при ния на доступ к нужным хостам). вателем сети в любой момент времени; или,
наличии на них инсталлированного Shorewall- Файлы-примеры входят в состав стан- предоставляя услуги хостинга, на основании
light [в системе, где уже установлен «полно- дартной инсталляции: можно просто скопиро- этих данных выставлять клиентам счета на
весный» Shorewall, облегченная версия не вать их в /etc/shorewall, а затем отредактиро- оплату.
нужна, – прим. ред.]. вать с учетом конфигурации конкретной сети. Мощная поддержка шейпинга трафика –
Если вы читаете этот номер журнала Настроив брандмауэр в /etc/shorewall, вы гото- полезное дополнение. Шейпинг позволяет
несколько месяцев спустя после публикации, вы к его компиляции в скрипт. Осуществляется установить приоритеты для различных видов
то версия на сопроводительном DVD, вероятно, это командой shorewall compile. По оконча- данных, что важно для более медленных
уже успела устареть: загрузите свежий RPM нии процесса остается лишь загрузить скрипт интернет-подключений (кабельный Интернет
или tar-архив с сайта программы. Shorewall брандмауэра. или ADSL). Можно установить приоритет
включается в состав многих дистрибутивов таких данных, как SSH (безопасное подклю-
Linux, но и те версии не из последних. Брандмауэр правил, ОК? чение) и VoIP (интернет-телефония) перед
Не прочитав руководства, за Shorewall Правила брандмауэра в /etc/shorewall/rules загрузками по FTP – для файла в 600 МБ
браться нечего: консольную программу и достаточно сложны, но неизменно включа- увеличение времени загрузки на несколько
графических участников теста не сравнить ют действие, источник, назначение, протокол, секунд несущественно, зато очень неприятно,
в наглядности и интуитивности. Правда, порт назначения, порт источника и первона- когда беседа «затыкается» из-за задержки с
Shorewall снабжена объемистой докумен- чальное назначение. Вот как может выглядеть ответами в течение телефонного разговора
тацией, включая FAQ и Quick Start guide простое, но полноценное правило: через Интернет.
(Руководство к быстрому старту). Примеров ACCEPT dmz net tcp smtp Программа может вести журнал для паке-
тоже много, причем широкий их диапазон Это все-таки проще, чем то же правило тов, у которых в правилах в качестве действия
охватывает и фильтрование пакетов для P2P- iptables в «непричесанном» виде: установлен параметр LOG. По умолчанию,
клиентов Kazaa, и инструкции по настройке iptables -A INPUT -p tcp --source 192.168.1.1 пакеты регистрируются с помощью системно-
Shorewall для виртуализованных Xen-систем. --dport 25 -i eth0 -j ACCEPT го журнала, syslog.
Высокое качество документации впечатляет. Написание правил брандмауэра несколь- Трансляция адресов и перенаправле-
Shorewall – чрезвычайно гибкая програм- ко упрощается применением таких функций ние портов для Shorewall тоже не пробле-
ма, ею можно пользоваться и на одиночном Shorewall, как действия (Actions) и макросы ма. NAT настраивается редактированием /etc/
компьютере с единственным сетевым интер- (Macro). Это немного разные способы сокра- shorewall/masq, а проброс портов – добав-
лением соответствующего правила в /etc/
Shorewall можно shorewall/rules. Shorewall может работать с
настроить так, что несколькими интернет-провайдерами для
HTTP-прокси вроде
повышения отказоустойчивости [и не толь-
Squid будет
ко, – прим. ред.].
прозрачен для
пользователей.

Вердикт
Shorewall 4.0.2
Сайт: www.shorewall.net
Цена: Бесплатно под GPL

По признанию самих разработчиков, не


самый простой в обращении брандмауэр,
но для того, кто его освоил, Shorewall
чрезвычайно эффективен. Теряет очки
из-за своей сложности.

Рейтинг 8/10
22 Linux Format Ноябрь 2007
Оболочки брандмауэров Сравнение

Оболочки брандмауэров

Вердикт
Shorewall 8/10
Н
е самая простая в обращении про- понадобиться функциональность, недоступ-
грамма, но работать с ней все-таки ная Generic-интерфейсу, но без сложности
куда проще, чем с iptables, чей син- Iptables Interface. Надеемся, что со временем
таксис запоминается с трудом. Мы нашли, разработчики KMyFirewall смогут изобрести
что Shorewall обладает выдающимся набором единый интерфейс, который вберет в себя
функций и способен контролировать почти лучшие качества обоих прежних.
любой параметр брандмауэра из подвластных
самой iptables. К тому же документация пре- Одному компьютеру
восходна и прекрасно написана. Программа И Shorewall, и KMyFirewall – превосходный
теряет очки только из-за своей сложности. выбор для защиты компьютерной сети. Но их
Одним из методов устранения этого недостат- мощь избыточна для единственной машины с
ка может стать режим мастера, когда весь одним сетевым интерфейсом (ноутбука или
процесс установки правил представляет собой рабочей станции).
ответы на вопросы о желаемом брандмауэре. Индивидуальным пользователям настоя-
Таким образом можно проделать львиную тельно рекомендуем обратиться к Firestarter.
долю работы по настройке, после чего оста- Пользователи, знакомые с Windows-прило-
нется лишь подправить полученную конфигу- жением ZoneAlarm, почувствуют себя почти
рацию с учетом всех тонкостей. как дома. Стандартная конфигурация содер-
На втором месте у нас KMyFirewall. Здесь жит все необходимые функции, типа бло-
есть упрощенный режим. Особенно нам понра- кирования входящих подключений, и при
вилась легкость, с которой KMyFirewall пере- желании функциональность можно расши-
ключается между отображением сгенериро- рить, написав собственные правила и даже
Документация Shorewall оказалась самой лучшей среди справочных
ванных правил и дружелюбным интерфейсом. настроив NAT для совместного использования систем всех участников теста.
Основной недостаток KMyFirewall – слабая Интернет-соединения.
документация. В чем-то два интерфейса про- Разочаровал Firewall Builder; а какой инте-
граммы не слишком удобны: например, может рес поначалу вызвала поддержка брандмау-
эров различных типов! На деле, программа
оказалась настолько сложной и интуитивно-
непонятной, что даже экспертам оказалось не
Ваше мнение под силу привести ее в действие, не помогла и
откровенно устаревшая документация. LXF
Ваша хата с краю, и до брандмауэра вам дела
нет? Пользуетесь ли вы брандмауэром вашего
дистрибутива, или таким, который не попали в
Сравнение? Сообщите о своем опыте на
letters@linuxformat.ru. А если есть проблемы
с настройкой вашего брандмауэра, черкните
пару строк на answers@linuxformat.ru. Выберите из двух интерфейсов KMyFirewall
подходящий для вашего уровня.

Таблица функций
Перенаправление Шейпинг Поддерживаемые
Приложение Версия Сайт Лицензия NAT Регистрация GUI
портов трафика брандмауэры
www.simonzone.com/
Guarddog 2.6.0 GPL iptables
software/guarddog/
http://kmyfirewall.
KMyFirewall 1.0.1 GPL iptables
sourceforge.net/
Shorewall 4.0.2 www.shorewall.net GPL iptables

FireHOL 1.256 firehol.sourceforge.net GPL iptables

Firestarter 1.0.3 www.fs-security.com GPL iptables


GPL/
Firewall Builder 2.1.1.3 www.fwbuilder.org iptables/pf/ipfw/прочие
проприетарная

Ноябрь 2007 Linux Format 23


Distrowatch Ежемесячная сводка новостей
дистрибутивов Linux

Arch-ангел
ЛАДИСЛАВ БОДНАР
основатель, редактор,
начальник и сотрудник
DistroWatch.com.

Arch Linux: ясный, быстрый дистрибутив для


Knoppix для слепых
пользователей-экспертов.

Н П
емногие Linux-продукты надела- ри своем запуске в 2002, Arch Linux был
ли столько шума, как Knoppix Live скромным дистрибутивом, разработанным
CD при своем первом появлении преимущественно для продвинутых пользо-
в конце 2002 года. Он был не только одной вателей. Он был собран с нуля, имел ясный прямоли-
из первых ОС, способных запускаться пря- нейный дизайн и был скомпилирован для современ-
мо с CD, но также поставлялся с неверо- ных на тот момент процессоров. Наиболее очевидной
ятным автоматическим конфигурировани- особенностью, выделявшей Arch из толпы, был его
ем устройств и буквально творил чуде- продвинутый менеджер пакетов Pacman, который
са, вроде открытия защищенных паролем обеспечивал постоянные обновления установленных
документов Microsoft Word на компьютере программ. Некоторые говорили, что Arch – нечто
босса. В былые дни Knoppix выпускался среднее между Slackware и Gentoo: ясный и прямо-
довольно часто, чуть ли не два-три раза линейный, но мощный и настраиваемый. Многие
в месяц. пользователи сочли его прекрасным дистрибутивом
Увы, эти дни прошли. С тех пор, как Linux.
его идея привлекла внимание разработ- Вышеприведенное описание остается верным и Arch Linux трудно установить и настроить без
чиков дистрибутивов, варианты Knoppix сегодня. Хотя все больше и больше разработчиков понимания Linux хотя бы на среднем уровне, зато
не создавал только ленивый: иногда узко присоединяются к проекту, философия дистрибути- потом легко поддерживать в актуальном состоянии.
специализированные, но чаще обычную ва не изменилась; единственным проявлением стар-
настольную ОС общего назначения, осно- шинства в мире дистрибутивов Linux является расту-
ванную на одном из столпов мира дист- щий репозиторий легко устанавливаемых пакетов. Загрузив свежеустановленный Arch Linux, боль-
рибутивов. Кончилось тем, что эстафету Философия нигде не проявляется так, как в уста- шинство пользователей, скорее всего, начнут с про-
подхватили лидеры, и кроме основных новщике системы. В наше время, когда даже Debian верки возможностей менеджера пакетов Pacman.
установочных носителей начали предо- предоставляет метод «выбери-и-кликни» при переносе Pacman – это, естественно, утилита командной стро-
ставлять загрузочные Live-издания своих системы на жесткий диск, Arch Linux все еще исполь- ки, а значит, пользователи, запускающие его впервые,
продуктов. В результате важность Knoppix зует текстовый инсталлятор на основе curses, схожий должны будут прочесть man-страницы или отыскать
как LiveCD общего назначения за послед- с Slackware-вским. Более того, установщик рекомен- в сети учебник, чтобы воспользоваться некоторыми
ние несколько лет сошла на нет, и число дует развернуть только базовую систему, а остальные быстрыми подсказками. Если вы ищете при помощи
новых релизов снизилось до одного-двух приложения добавить потом. Ряд вопросов, связанных Google, используйте www.google.com/linux для отде-
в год. с оборудованием, гарантирует, что ненужные модули ления рационального зерна от плевел! Но Pacman не
Но не все новости плохи. Клаус Кноппер ядра не будут загружены, а дополнительная настройка труден в использовании – например, синхронизация
[Klaus Knopper], создатель Knoppix, недав- выполняется путем прямого редактирования хорошо локальной базы данных пакетов с официальными
но запустил проект Adriane, специализиро- комментированных файлов в /etc. репозитариями выполняется так: pacman -Sy, а уста-
ванный дистрибутив Linux, разработанный новка пакета (или набора пакетов) так: pacman -S имя_
для слепых и слабовидящих. Цель проек- «Нет!» стандартным опциям пакета. Имеются опции поиска и опроса пакетов, как
та – позволить людям с ограниченными Пользователи, потратившие время на изучение этих и во многих других продвинутых менеджерах, и всю
возможностями наслаждаться работой за файлов конфигурации, не только узнают многое обо систему можно обновить одной командой.
компьютером с доступом ко всем богат- всех важных настройках системы; они также сумеют Возможно, поэтому есть так много пользовате-
ствам World Wide Web через голосовой настроить систему точно по своей мерке. Здесь-то и лей, влюбленных в Arch. Комбинация непрерывно
интерфейс вместо экрана компьютера. становится очевидной мощь Arch Linux: другие дис- обновляющегося репозитория программ и мощный
Adriane пока еще в колыбели, но пер- трибутивы делают стандартный выбор для широко- менеджер пакетов гарантируют, что пользователи
вое воплощение этой идеи планируется к го диапазона пользователей, часто выражающийся Arch используют самую передовую систему Linux на
выходу в конце этого года. в чудовищно раздутом ядре и системе с балластом планете. Хотя это действительно дистрибутив не для
ladislav.bodnar@futurenet.co.uk ненужных расширений, а Arch Linux – не для каждого новичков, пользователи, обладающие достаточным
первого, но для конкретного пользователя, с огром- опытом и получающие удовольствие от надстройки
ным числом доступных опций; и крайне маловероят- операционной системы, сочтут Arch Linux практичес-
но, что любые две установленные системы Arch Linux ки безупречным компаньоном.
будут одинаковы. www.archlinux.org

24 Linux Format Ноябрь 2007


Distrowatch

Beta и лучше Разделяй и властвуй


OpenSUSE 10.3: лучшее управление пакетами, Parted Magic 1.8: свободный, интуитивный
меньшее время загрузки, KDE 4. дистрибутив для разбиения диска с Gparted.

И П
з основных дистрибутивов, осле появления специали-
OpenSUSE находится ближе зированных дистрибутивов
всех к очередному стабиль- Linux не многие инструменты
ному релизу. На момент написания были столь востребованы, как сред-
уже выпущено семь альфа-релизов ства разбиения дисков. Parted Magic,
и началось бета-тестирование; боль- мощный дистрибутив, разработанный
шая часть тяжелой работы над новы- лишь для этой задачи – прекрасный
ми функциями завершена [на момент пример растущего принятия пользова-
подготовки к печати русскоязычной телями программ с открытым кодом,
версии журнала, OpenSUSE 10.3 уже даже теми, кто пока не верит, что Linux
выпущен, – прим.ред.]. Теперь очередь OpenSUSE 10.3 представляет новое способен стать их основной операци- Parted Magic загружается в
исправления ошибок и стабилизации оформление и интуитивно понятную онной системой. При размере в 30 МБ собственный рабочий стол Xfce с
функцию установки программ. легким доступом к графическим
кода перед окончательным релизом и значительно больших возможностях,
дисковым утилитам.
версии 10.3 4 октября 2007 года. чем у многих дорогих коммерческих
Интересно, что проект в процес- утилит разбивки, он решительно опро-
се альфа-тестирования прошел через соединения могли просто инсталли- вергает заявления, что Linux не оказы- литой изготовления экранных снимков
смену главных фигур. Андреас Егер ровать базовую систему и добавлять вает положительного воздействия на и несколькими файлами справки, FAQ
[Andreas Jaeger], давний релиз-менед- приложения на пост-установочном эта- нашу компьютеризированную жизнь. и других материалов по Parted Magic
жер, в конце июля передал бразды пе. Комбинированный установочный и и TestDisk.
правления Стефану Кулову [Stephan LiveCD также разрабатывается, но не Исчерпывающий Кроме стандартного LiveCD, Parted
Kulow]. Кулов – разработчик KDE, при- будет завершен ко времени октябрь- инструментарий Magic также доступен в виде USB-
влекавшийся к созданию дистрибу- ского релиза. В отличие от GParted LiveCD, схожей образа, для компьютеров, позволя-
тивов Linux еще в дни его работы в Другая особенность, которую одоб- утилиты, которую мы представили в ющих загрузиться с USB-устройств.
Caldera OpenDesktop в 1999 г. Он так- рят многие начинающие пользова- LXF82, Parted Magic укомплектован не Продвинутым пользователям Linux
же отвечает за оптимизацию процесса тели – основанная на Web инфра- только последней версией Gparted, но документация предоставляет исчерпы-
загрузки OpenSUSE, который был не структура установки в один щелчок также содержит набор других полезных вающие инструкции о том, как доба-
самым быстрым в этой области, но на http://software.opensuse.org. Она дисковых утилит, включая файловый вить на Live-носитель дополнитель-
намного улучшен в версии 10.3. вносит много улучшений в менеджер менеджер (Thunar), утилиту тестиро- ные программы или использовать свои
Пользователей OpenSUSE также пакетов OpenSUSE, включая возмож- вания диска (TestDisk) и графическую настройки; доступны также такие мощ-
ожидает отдельный установочный CD ность легкого добавления сторонних программу создания ISO-образов (ISO ные дисковые утилиты командной стро-
с рабочими столами Gnome или KDE, репозиториев. Master). Они доступны на настраивае- ки, как dd, ddrescue или PartImage.
чтобы обладатели быстрого интернет- www.opensuse.org мой панели, наряду с терминалом, ути- http://partedmagic.com/

Ответвления Slackware 12.0 Хит-парад дистрибутивов


С выходом Slackware Linux 12.0, многие проекты, основанные на Slackware, также обновили свои 10 самых посещаемых страниц на DistroWatch.com с 1
подправленные версии наистарейшего дистрибутива Linux в мире. Ниже представлены самые инте- августа по 1 сентября 2007 г. (среднее число визитов в день)
ресные; некоторые из дистрибутивов на базе Slackware, а именно VectorLinux, Zenwalk Linux и Slamd64
Linux, еще не обновились к моменту написания, но ожидается, что они вскоре это сделают.
Дистрибутив Число визитов

Дистрибутив Описание 1 PCLinuxOS 2,476


2 Ubuntu 2,066
Легковесная модификация Slackware с IceWM, графическим менеджером
Absolute Linux
пакетов и прекрасной документацией. www.pcbypaul.com/absolute 3 OpenSUSE 1,422

64-битный порт Slackware. Также доступен как LiveDVD с дополнительными 4 Sabyon 1,368
Bluewhite64 Linux
пакетами программ. www.bluewhite64.com
5 Fedora 1,065
Модификация Slackware с улучшенной безопасностью, защитой от срыва GCC-
NetSecL
стека и подобными функциями. http://netsecl.unixsol.org
6 Mint 1,055
7 Debian 914
Порт Slackware для основанных на PowerPC компьютеров Apple.
Slackintosh
http://workaround.ch 8 MEPIS 770
Другой 64-битный порт Slackware; к моменту написания еще не обновился. 9 Freespire 670
Slamd64 Linux
http://slamd64.com
10 DamnSmall Linux 668
Основанный на Slackware LiveCD с KDE; версия 6.0 все еще в серьезной
SLAX
разработке. www.slax.org
DistroWatch.com оценивает популярность дистрибутивов,
Дистрибутив, ориентированный на рабочий стол, с различными изданиями: основываясь на числе визитов на страницу каждого
VectorLinux
Standard, SOHO и Live. www.vectorlinux.com дистрибутива. Хотя оно не совпадает с реальным числом
Дистрибутив, ориентированный на рабочий стол, со множеством дружелюбных установок, но дает представление, какие дистрибутивы более
Zenwalk Linux
функций. www.zenwalk.org популярны за определенный промежуток времени. LXF

Ноябрь 2007 Linux Format 25


48 трюков с Linux

трюков
с Linux
Все мы любим свободное ПО, но иногда оно работает не
совсем так, как хотелось бы. Команда LXF объединила
усилия для определения главных проблем, с которыми люди
сталкиваются повседневно, и выработала для вас решение
этих проблем...

26 Linux Format Ноябрь 2007


48 трюков с Linux

Досаднейшие проколы
с Linux: команда LXF
В
ы, небось, думаете, что уж раз мы из Linux-журнала, то часть советов и хитростей в этой статье обязана бедам, приклю-
являемся экспертами во всем, о чем пишем, никогда не чившимся с нами по ходу повседневного использования Linux, и
испытываем проблем с нашей любимой ОС и насквозь теперь мы делимся опытом с читателями. Ниже приведены самые
видим ответ, если что-то сбоит. Хоть нам и жаль рассе- досадные огорчения, испытанные нами при работе с Linux.
ивать столь лестные иллюзии, но они далеки от истины: большая

ЭНДИ ЧЕННЕЛ НЕЙЛ БОТВИК


Однажды я случайно сделал резервные копии пяти Во времена, когда 64-kbps ISDN-соединение счита-
симлинков на 4.7-гиговый DVD перед выполнением лось быстрым, я потратил целую неделю, скачивая
потенциально опасной операции с жестким дис- ISO-образы Mandrake 6.с-чем-то через интернет-
ком. Того, что запись на DVD продлилась всего соединение с двухчасовым лимитом; и не успел я
несколько секунд, я не заметил, так как ушел на обед. К счастью, я прожечь диски, как вышел Mandrake 7.0. Может, дешевле было купить
потерял лишь около половины труда всей моей жизни. К несчастью, CD у благодетелей из Microsoft’а?
это была более ценная половина, наработанная после 18 лет.
МЭТТ НЕЙЛОН
ДЭВИД КАРТРАЙТ Недавно я изучал вопрос применения Scribus в про-
Умерла линия ADSL от BT – ни сигнала, ничего. BT фессиональной верстке. Часто, несмотря на уста-
говорит: «Извините, мы не можем оказать вам под- новку глобальных свойств шрифтов, они применя-
держку, так как вы используете Linux». Позвонил ются не ко всем блокам в документе. Если создать
еще раз и соврал, что у меня Windows 2000. BT рамку для текстового или графического блока, она
говорит: «Ну-ка, посмотрим… Э, да у вас на линии поломка. Мы вам не привязывается к сетке, или же выпирает за границы блока вдоль
кого-нибудь пришлем». Р-р-р. направляющих; иногда при повторном открытии документа интерлинь-
яж текста меняется совершенно случайным образом…
ПОЛ ХАДСОН
Когда Эндрю Грегори [Andrew Gregory] еще был в
нашей команде, он случайно выдернул шнур пита-
ния из моего ПК с SUSE 9.3. «Ерунда, – подумал
я, – у меня журналируемая файловая система, я
все мигом восстановлю». Не тут-то было: Reiser отказался распозна-
вать мои данные, вынудив сделать полную переустановку. О боги ext3,
зачем я покинул вас?

МАЙК СОНДЕРС
Однажды я переустановил дистрибутив, заранее
зарезервировав файл конфигурации X, чтобы
потом восстановить свои графические настройки.
Но у него таковых не оказалось: несмотря на то,
что это был тот же дистрибутив и та же версия X, X-сервер впал в исте-
рику и заявил «Не обнаружен экран». Хорошо, а где ж тогда светилось
это сообщение? Р-р-р. Вскоре после этого случая я перешел на
Slackware.

Ноябрь 2007 Linux Format 27


48 трюков с Linux

KDE
Добавление кнопки Закрыть ко вкладкам
Konqueror
У Firefox есть возможность добавить кнопку Close на каждую вклад-
ку; в Konqueror тоже, однако она вытесняет иконку web-сайта. Чтобы
получить лучшее от обоих миров – иконку сайта, которая превращается
в кнопку Close при наведении на нее мыши – загрузите ~/.kde/share/
config/konquerorrc в ваш любимый текстовый редактор, и добавьте к
секции, начинающейся с [FMSettings], следующие строки:
AddTabButton=false
CloseTabButton=false
HoverCloseButton=true

Вычисления одним пальцем


Многие знают, что Alt+F2 открывает диалог Run command, где можно
вводить команды, которые вы хотите выполнить, но известно ли вам,
что это пригодно и для быстрых вычислений? Попробуйте – нажмите
Alt+F2, затем введите 4+9*5/2, щелкните Run; вы должны увидеть ответ
26.50000000. Примитивненько, но допускает операции с +, -, *, / и скоб- В Konqueror масса поисковых сокращений – полный список помещен
ками – вполне достаточно для базовых расчетов. в диалоге настройки Web Shortcuts.

Удобные info-страницы Передача полномочий


Man-страницы легко читать (хотя не всегда легко понять), но некото- Центр управления KDE – это узловая станция настроек KDE для ваше-
рые программы помещают свою лучшую документацию в info-стра- го компьютера: если вы хотите что-то поменять, наверняка оно там
ницы. Просмотрщик info-страниц использует для навигации некие найдется. Но если вам кажется, что это уж перебор – либо для вас,
загадочные сочетания клавиш, не поддающиеся интуиции менее про- либо для того робкого новичка в Linux, кому вы настраиваете компью-
двинутых пользователей. Гораздо лучше применить привычный про- тер – попробуйте создать собственную оболочку Control Center, которая
смотрщик гипертекста: web-браузер. Введите info:progname в Konqueror загружает только нужные вам модули. Например, если вы хотите запус-
(или в запросе команды по Alt+F2), чтобы прочитать info-страницу как тить Control Center, чтобы посмотреть только настройки фона, цветов,
полноправную web-страницу с гиперссылками. шрифтов и хранителей экрана, запустите следующую команду:
Мы сами не знаем,
kcmshell background colors fonts screensaver style
за что любим info-
просмотрщик Супербыстрый поиск и учтите, что colour здесь пишется на американский манер!
Konqueror: то ли за Окно Alt+F2 имеет еще одно крутое свойство: в нем работают все
приятное быстрые поиски, которые вы осуществляли через адресную строку Наблюдайте, а не ждите
форматирование, то Konqueror! Например, для быстрого поиска пуделей, нажмите Alt+F2, Некоторые утилиты командной строки, типа tail, выводят информацию,
ли за гиперссылки; введите gg:пудели, затем Enter – автоматически запустится Konqueror и когда происходит что-либо интересное, в отличие от простого вывода
но все равно выведет на Google с вашими результатами. текстового потока. Если вам хочется нечто отследить, но лень сидеть,
настоятельно вам уставившись в экран, Konsole предлагает вам идеальный выход: щелк-
его рекомендуем!
ните правой кнопкой по вкладке, где вы находитесь, и выберите опцию
Monitor For Activity. Работайте себе, как работали, а когда в вашем тер-
минале появится что-то интересное, Konsole замигает.

Настройте сигнал активности для вкладки Konsole, и получите


предупреждение, как только что-либо произойдет.

28 Linux Format Ноябрь 2007


48 трюков с Linux

Командная строка
Предыстория команд
Очевидно, компьютеры обязаны упрощать жизнь, но они нам в новин-
ку – все еще попадаются люди, с упорством маньяка повторяющие
одну и ту же унылую последовательность команд вместо того, что-
бы мыслить более изящно, реально наслаждаясь всей мощью Bash.
Например, для повторяющегося запуска трех последних команд, прос-
то прокрутите до первой команды этой последовательности, придер-
жите клавишу Control и нажмите O столько раз, сколько надо. Каждый
раз при нажатии O будет выполняться одна команда из последователь-
ности, а дойдя до последней команды, Bash возвратится назад к первой
выбранной вами, и все повторится.

Проверка псевдонимов команд


Некоторые дистрибутивы поставляются с широким набором псев-
Автоисправление опечаток в именах файлов и каталогов позволит донимов (alias); особенно славится этим SUSE. Пожелав узнать, что
набирать меньше символов, а значит, уменьшить ломоту в кистях рук! делает Bash за вашей спиной, вы можете запросить ваши сокращения,
используя команду type: например, type -all ls попросит Bash перечис-
лить то, что в он точности понимает под ls – тут-то и выяснится, что
Автоисправление опечаток ls – это псевдоним чего-нибудь наподобие ls --color=auto, и, конечно
Набор в командной строке – дело нелегкое. Мало того, что надо долго же, (заодно) реальная программа в /bin/ls.
изучать работу всех команд, надо еще и точно указывать имена файлов
и каталогов, иначе придется вводить команду снова и снова. Но выход Отменим нудные сообщения
есть: Bash имеет встроенную команду shopt, позволяющую задавать Сообщения об ошибке утилит командной строки иногда бывают полез-
различные опции командной строки. Например, запуск shopt -s cdspell ными, но чаще представляют собой просто помеху, особенно когда
включает автоматическое исправление опечаток имен каталогов, так загромождают «нужный» вывод команды. Вы можете легко подавить
что ввод cd /hom/hudzila даст вам ближайшее соответствие – /home/ сообщения об ошибках путем перенаправления стандартного потока
hudzilla. Также можно использовать shopt -s nocaseglob, чтобы при вво- ошибок в псевдоустройство /dev/null, используя запись 2> /dev/null.
де части имени файла и нажатии Tab для завершения Bash производил Вот пример использования этого в команде find:
поиск вне зависимости от регистра. $ find / -user chris 2> /dev/null

Расчленение текста Виртуальный доступ к DVD


Awk – это мощный зверюга по части извлечения информации из тек- Все знают, что Майк Сондерс каждый номер любовно подбирает содер-
стовых строк, но зачастую уж чересчур мощный. Команда cut сделает жимое LXFDVD – разве не так утверждает стр. 108? Но иногда даже
то же более просто: эпической силы Майка недостаточно, чтобы впихнуть на диск все дис-
cut -c1-10 трибутивы в загружаемом формате, и мы вынуждены снабжать вас
возвращает в стандартный вывод первые десять символов каждой ISO-образами ради доставки всего самого последнего и лучшего. Они
строки, а хороши, если у вас есть записывающий CD-привод и острая потреб-
cut -f 3 -d ‘ ‘ ность установить дистрибутив; однако иногда просто хочется спереть Приятные обои
возвращает третье поле, при этом ключ -d задает пробел в качестве привлекательные обои (эй, кому воздушные шарики от Fedora 7?), а с воздушными
разделителя, то есть возвращается третье слово. В Cut есть и другие в этом случае лучший вариант для вас – примонтировать ISO-образ в шариками
опции, но все они просты в использовании. качестве файловой системы и скопировать то, что нужно, вот так: от Fedora 7:
нам нравится.
Обезопасить работу под root
Работать под суперпользователем root либо очень здорово, либо
чрезвычайно опасно, в зависимости от вашего отношения к упоению
высшей исполнительной властью. Если вы страшитесь могущества
безнаказанно удалять файлы, тогда вам не обойтись без chattr: он
позволяет зафиксировать файл, чтоб даже root не мог удалить его.
Например, выполнение chattr +i myfile.txt под root’ом сделает этот файл
виртуально неуничтожимым, каким бы вы пользователем ни были.
Если вам нужно убрать стальной щит, используйте -i вместо +i.

Заглушите звуки
Устали от того, что динамик вашего компьютера пищит, как взбе-
сившийся передатчик Морзе, при каждом неверном наборе? Научите
его тишине: выполните команду setterm -blength 0, и сигнал тревоги
заткнется, независимо от вида терминала, где вы работаете. Если вы
хотите сохранить это для любого запуска терминала, просто добавьте
эту команду в файл .bash_profile.

Ноябрь 2007 Linux Format 29


48 трюков с Linux

mkdir /mnt/myiso Раскраска приглашения


mount -o loop -t iso9660 some.iso /mnt/myiso Вы живете в командной строке, но часто забываете, какой терминал
означает ваш локальный компьютер, а какой – SSH к вашему серве-
Выключить цвета вывода ls ру? Существует несколько способов исправить это – прежде всего,
Во многих современных дистрибутивах Linux команда ls отображает не зевайте и сначала смотрите, где набираете. А для SSH-сеансов вы
разные типы файлов разными цветами: каталоги – ядовито-синим, можете пожелать использовать другой виртуальный рабочий стол. Но,
символические ссылки – химически-бирюзовым, и так далее. Дело наверно, самым легким и тривиальным способом является раскраска
в том, что это свойство включено в псевдониме, определенном для приглашения командной строки. По умолчанию в системах Unix при-
ls. Чтобы выключить его для конкретной оболочки, введите команду глашения обычно серые или белые на черном фоне; иногда наоборот.
unalias ls. Для постоянного выключения просто добавьте эту команду в Не будет ли нагляднее показать, что вы угодили не туда, совершенно
файл .bashrc вашего домашнего каталога, и все оболочки Bash увидят другим видом приглашения, например, мерцающим полужирным крас-
ее при запуске и перестанут слепить вас кричащими цветами. ным, да еще и с предупреждениями? Почти во всех оболочках пригла-
шение включено в системную переменную PS1, так что для его измене-
Мгновенная проверка орфографии ния нам просто следует подправить ее. Попробуйте следующее:
Хотите вообще отказаться от GUI и работать в командной строке, как export PS1=”\e[48;34m \u@\H:\W\e[m>\$ “
все настоящие Unix-хакеры? Чудесно! Но ведь вы лишитесь проверки Список непечатаемых символов, используемых для построения при-
орфографии OOo? Не волнуйтесь: большинство систем Linux имеет глашений, можно получить здесь: www.gnu.org/software/Bash/manual/
встроенную команду look, это проверка орфографии в командной стро- Bashref.html#SEC83. Чтобы он стал постоянным, впишите его в файл
ке. Для начала, введите look, а следом – часть слова: .bashrc вашей пользовательской директории.
Получите
look separ
подсказки по
орфографии из
покажет соответствия типа “separate”, “separately”, и прочая, тогда как Реанимация старых команд
командной строки – ввод Часто бывает нужно найти когда-то набранную огромную команду,
поможет команда look seper которую вы не думали использовать повторно, но теперь приходится,
look! не покажет ничего, ведь писать “seperate” неправильно. так что же делать? Если вы используете Bash, можете использовать
функцию истории (с помощью стрелки вверх). А вдруг у вас остались
только смутные воспоминания о команде? Тут может помочь команда
history:
history | grep -i “<строка_поиска>”
Числа покажут номер команды в файле истории, и ее можно выпол-
нить, набрав !, за которым следует номер, в приглашении Bash’а.

Поиск в более древних командах


Если вам кажется, что при поиске нужной вам команды ваш файл исто-
рии Bash никогда не заглядывает в далекое прошлое, просто поменяйте
его размер, задав следующие значения в вашем файле .bashrc
HISTSIZE=10000
HISTFILESIZE=10000
Вы также можете применить unset HISTSIZE и unset HISTFILESIZE,
чтобы хранились все введенные команды, но это следует делать с
осторожностью.

Сократить набор и расход памяти


Чем длиннее команда, тем проще ошибиться в ее наборе, а длинные
списки аргументов запоминать труднее. Если вы регулярно использу-
ете команду с теми же аргументами, создайте ее сокращение-псевдо-
ним, путем добавления
alias myalias=’longcommand --with --lots --of --
options’
Поделитесь проблемами... в файл .bashrc (или системный /etc/profile), и
команду можно будет вызвать как myalias или
Если вы придумали какие-нибудь соб- данным конкретным проектом. Скорее даже mya[TAB]. Можно даже будет приписать
ственные новаторские способы реше- всего, другие пользователи уже стал- дополнительные опции или аргументы – они
ния проблем, встретившихся вам в кивались с терзающей вас проблемой передадутся исходной команде, например,
Linux, пожалуйста, при первой же воз- и выработали исправление или обход- вот так:
можности поделитесь ими с другими ные пути; если это не так, то вы сдела-
myalias myfile
пользователями этого приложения; ете доброе дело разработчикам, доло-
именно с этой целью многие проекты жив об ошибке или проблеме, не выяв-
Open Source держат форумы для своих ленной их тестами. Но перед отправкой
Выборочное удаление
пользователей. Не стесняйтесь также немного поизучайте сайт проекта! Если Если у вас есть каталог, содержащий десять
отправлять их на www.linuxforum.ru, вы застряли капитально, почему бы не подкаталогов, и нужно удалить три из них,
или на нам через электронную почту черкнуть нам пару строк на answers@ медленный способ это сделать выглядит при-
letters@linuxformat.ru. linuxformat.ru? Мы не обещаем, что мерно так:
С каким бы приложением Linux вы ответим на все запросы, но стараемся rm -rf /home/hudzilla/work
ни испытывали трудности, вашим пер- печатать ежемесячную представитель- rm -rf /home/hudzilla/projects
вым пунктом вызова должны быть ную подборку полученных электрон- rm -rf /home/hudzilla/sandbox
официальные страницы, связанные с ных писем в разделе Ответы.
Но это чертовски медленно и чревато ошиб-
ками – куда изящнее разрешить Bash’у произ-

30 Linux Format Ноябрь 2007


48 трюков с Linux

водить подстановку нескольких имен файлов путем помещения опций Сделайте поиск
внутрь фигурных скобок. Например, то, что выше достигалось тремя ваших файлов
строками, можно проделать так: быстрым
rm -rf /home/hudzilla/{work,projects,sandbox} и информативным
благодаря xargs!
Стильный locate
Всем нравится команда locate: при регулярной индексации нет более
быстрого способа найти файлы по определенному имени. Правда,
locate только выдает список имен файлов, что не совсем хорошо, если
вам нужно больше информации об этих файлах – например, сколько
места они занимают. Так почему бы не попробовать перенаправить
вывод от locate через ls? Например, это небольшое аккуратное выра-
жение в одну строку найдет файлы, соответствующие somefile, затем
направит их список на ls -lsh, и вы увидите как результаты соответ-
ствия, так и их объем в вашей системе:
locate somefile | xargs ls -lsh

Системное администрирование
Автоматическая установка ядра всяким проблемам – не в последнюю очередь, отсутствие какого бы
При компиляции собственного ядра нет необходимости в ручном копи- то ни было дефрагментатора диска под Linux! Но обычным источни-
ровании ядра и других файлов. Запуск make install после компиляции ком путаницы служит то, что Linux использует для переименования
ядра скопирует его в /boot, а также разместит там резервную копию mv вместо ren. Для нас, ветеранов Linux, это вполне естественно, ведь
конфигурации ядра. Что важнее, создадутся символические ссылки: очевидно, что перемещение файла – то же самое, что и переименова-
vmlinuz для вашего нового ядра и vmlinuz.old для старого. Если ваш ние. Вообще-то Linux имеет и собственную команду переименования,
загрузчик имеет точки входа в эти два ядра, вы всегда сможете и которая называется просто rename, но она сильно отличается от mv –
загрузить новое ядро, и откатиться к старому, даже не прикасаясь к работа rename состоит в массовом переименовании большого числа
файлам настройки Grub или Lilo. make install также при необходимости файлов на что-нибудь другое. Например, когда стандартом был PHP 3,
запустит Lilo. файлы PHP имели расширение .php3. Когда вышел PHP 4, все перешли
на простое старое расширение .php, так что приходилось переименовы-
Опускать нежелательные обновления вать все .php3 файлы на .php. Вот здесь и пригодится rename, напри-
Apt – система обновлений пакетов Debian – позволяет «закреплять» мер: rename .php3 .php *.php3.
пакеты, чтобы они не изменялись во время обновления других прило-
жений. Например, если вам нужна определенная версия GCC, установи- Руки прочь от моих файлов!
те ее обычным образом, затем загрузите Synaptic, выберите только что Unix-подобные системы, в том числе и Linux, имеют одну особенность,
установленное приложение и убедитесь, что в меню Package выставле- одновременно и досадную, и удачную: если удаляется файл, из которо-
но Lock Selection. Теперь никогда уже другие пакеты не смогут указы- го в это время кто-нибудь считывает, то этот файл не исчезает до тех
вать вам, какую версию установить! пор, пока чтение не закончится. Вы даже можете перезаписать файл, не
влияя на работу того, кто читает из него данные. Это хорошо в тех слу-
Быстрое переименование чаях, когда вам нужно изменить сайт, не прерывая работы Apache; но
Помните ваши первые дни с Linux или Unix, и все те проблемы, когда крайне раздражает, если вы хотите удалить файл, а в него вцепилось
все работало не так, как вы ожидали? Множество людей, перешедших много людей. Вот исправление, которого вы так ждете: команда fuser
с Windows на Linux, полагают, что могут использовать свои навыки в выдает список всех процессов, где открыты операции с вашим файлом,
DOS и просто применять их в командной строке, но это приводит ко и вы даже можете передать ключ -k, чтобы всех их убить. Затем спо-
койно удаляйте файл.

fuser – лучший друг


сисадмина: он
покажет, кто что
считывает, а затем
заставит их
прекратить это.

Закрепив пакеты, вы будете игнорировать выбор вашего менеджера


пакетов и получите полный контроль над версиями.

Ноябрь 2007 Linux Format 31


48 трюков с Linux

Редактирование файла hosts позволяет игнорировать URL


отдельных сайтов, но аккуратнее с субдоменными изменениями:
www.myspace.com и myspace.com – не одно и тоже!

Простая фильтрация cайтов


Если вы хотите, чтобы ваши пользователи не посещали определенных
Абсолютное удаление сайтов, есть быстрый способ заблокировать их: откройте ваш файл
Используя rm для удаления файлов, вы просто нарываетесь на то, что- /etc/hosts и впишите строки по следующему принципу:
бы другие люди лазили на ваш диск – сунуть нос в старые данные. А 127.0.0.1 myspace.com
это не есть хорошо, если требуется, чтобы ваши файлы сгинули навек. 127.0.0.1 facebook.com
К счастью для всех нас, существует команда shred, которая перед уда- Для пущего эффекта запустите web-сервер на локальной машине и
лением несколько раз записывает в ваш файл разные данные, делая разместите элегантное предупреждение об опасностях сетевого обще-
восстановление абсолютно невозможным. Например, если вы хотите ния для детей!
быть уверенным, что файл passwords исчез с лица земли, используйте
команду: Проверка системы
shred -z -u passwords Итак, вы соорудили блистательный новый сервер, прекрасно работают
Она 25 раз перезапишет файл случайными данными, затем последует Apache, MySQL и PHP, но знаете ли вы, что случится, если ваш сервер
последняя перезапись нулями (-z), чтобы никто не догадался, что вы угодит под большую нагрузку? Это стоит разузнать заранее, чтобы
что-то там перезаписывали, затем удаление (-u). По умолчанию удале- предусмотреть механизмы восстановления и обеспечить перестройку
ние не задействовано, так как параметром shred могут быть целые раз- механизма качества сервиса на первоочередное обслуживание наибо-
делы (например, /dev/hda1), которые вам вряд ли хочется удалить. лее важных запросов. Вы можете искусственно увеличить нагрузку на
сервер, используя утилиту dbench: например, dbench 20 дал нагрузку на
Просмотр журналов построенный нами Ultimate Linux Box в LXF92 выше 20, предоставив
Можно просматривать файлы системных журналов, чтобы узнать, что нам отличную возможность убедиться, что SSH вполне отзывчив, и мы
сообщается при запуске программы или подключении нового оборудо- не теряем управление сервером, даже когда он испытывает давление!
вания. Большинство программ посылают отчеты в системный журнал,

Команда tail
который можно посмотреть в отдельном терминале root при помощи Убиение пользователей
tail -f /var/log/messages Нет ничего хуже, чем когда осуществляемая вами Crack Attack неожи-
позволяет следить
Опция -f или --follow показывает сообщения по мере того, как они запи- данно застревает «на самом интересном месте» из-за какого-то жад-
за окончанием
журнальных файлов, сываются в журнал, и это можно использовать для любого файла жур- ного пользователя, что влез в систему и жрет ценное время CPU ради
чтобы видеть нала. Если полезная информация тонет в шуме, используйте grep для генерации какого-то там отчета или запроса к базе данных. Но дал нам
обновления по мере показа лишь тех сообщений, что относятся к вашему процессу: Господь команду skill, посылающую сигнал процессу, терминалу или
их появления. tail -f /var/log/messages | grep ssh пользователю и позволяющую root’у контролировать все, что пользо-
ватели делают. Нам всего симпатичнее skill -KILL -u degville, что озна-
чает «убить все программы Degville и выкинуть его из системы». Теперь
скорее к Crack Attack, и посвятите ей все ваше внимание...

Храните копии всех ваших серверов в виде виртуальных машин:


тестирование нового ПО будет простым и не потребует дополнительных
компьютеров.

32 Linux Format Ноябрь 2007


48 трюков с Linux

Firefox
Копировать вкладки
Все знают, что Ctrl+T создает новую вкладку, но известно ли вам, что
Ctrl+Z автоматически устанавливает для новой вкладки тот же URL, что
был у старой? Это здорово при дублировании окон!

Укоротить извещения о загрузке


«Я САМ ЗНАЮ, ЧТО ВСЕ ЗАГРУЗКИ ЗАВЕРШИЛИСЬ – ПШЕЛ ВОН!» –
это мысленное восклицание постоянно витает в офисе LXF. Firefox,
видите ли, любит извещать о том, что все загрузки завершились,
высвечивая в углу небольшое окно и радостно заслоняя все, что у вас
там находится. Конечно, небольшое окно загрузки полезно, но кому
нужно, чтобы оно маячило на экране четыре секунды? Зайдите по URL
about:config в Firefox и поменяйте установку alerts.totalOpenTime на что-
нибудь более приятное и быстрое, например, 500 (миллисекунд, то
есть полсекунды).

Профили Firefox
Некогда запуск любого приложения Mozilla дважды в одно время по умолчанию; но если вы, подобно нам, все равно норовите щелкнуть Специальный URL
вызывал дурацкое окно менеджера профилей, от которого было мало по изображению, чтобы оно увеличилось, заходите в about:config и about:config в Firefox
проку. Но в Firefox, имеющем тысячу и один параметр конфигурации поменяйте browser.enable_automatic_image_resizing на false. содержит все
и способном сильно улучшить личный комфорт в вашем браузере, мыслимые
конфигурационные
менеджер профилей реально полезен. Можно создать себе два про- Уволить кнопку Go опции!
филя: один – полный примочек, закладок, панелей инструментов и Отчаялись увеличить размер области окна Firefox? Тогда прикиньте:
расширений, для просмотра в полной роскоши, и другой – необре- часто ли вы пользуетесь маленькой зелененькой стрелкой ‘Go’ рядом
менительный для оперативной памяти, кэширующий по минимуму и с адресной строкой? Мы полагаем, что, скорее всего, никогда; вот и
загружающий чахлый и скупой Firefox; это замечательно удобно для ликвидируйте этого мелкого вредителя, установив true в browser.urlbar.
блиц-проверки почты и чтения новостей. Чтобы попасть в окно управ- hideGoButton.
ления профилями, просто запустите Firefox с ключом -profilemanager,
например mozilla-firefox -profilemanager. А если мне не повезет?
Когда вы вводите какой-нибудь текст в адресную строку и нажимаете
Enter, Firefox автоматически ищет и загружает через Google самый под-
ходящий сайт по принципу «Мне повезет!». Если вас это раздражает,
смените значение keyword.URL в about:config на то, что устроит вас
больше – чаще всего это http://www.google.com/search?q=, так как он
проводит Google-поиск текста и выдает обычную страницу с результа-
тами, а не хватается за первый попавшийся вариант.

Менеджер профилей Firefox позволяет создавать персональные


настройки, а затем переключаться между ними.

Убрать всплывающие окна


Вы удивитесь, но Firefox разрешает одновременно появляться 20
всплывающим окнам, загораживая весь ваш экран вздорной рекламой.
Это число непомерно велико; поменяйте его на что-нибудь поменьше,
отредактировав параметр dom.popup_maximum – мы рекомендуем зна-
чение от 3 до 7.

Не уменьшать изображения
Есть еще одно свойство, вызывающее у кого любовь, у кого злобу: ког-
да Firefox открывает изображение с размером, не умещающимся в окне По умолчанию Firefox производит Google-поиск «Мне повезет!», но его можно поменять на
браузера, картинка автоматически масштабируется. Такова установка стандартный, отредактировав значение keyword.URL.

Ноябрь 2007 Linux Format 33


48 трюков с Linux

Рабочий стол
Выключение сенсорной панели одну из двух этих строк:
Не сталкивались ли вы с досадной ситуацией, когда случайное при- OnlyShowIn=KDE
косновение к сенсорной панели вашего ноутбука во время набора тек- для только-KDE-приложений; или
ста воспринималось как щелчок, и курсор отпрыгивал куда не надо? OnlyShowIn=GNOME
Уверены, что да – но это легко поправить! Отредактируйте ваш xorg. для только-Gnome-приложений.
conf под root, затем добавьте в раздел InputDevice вашей сенсорной
панели строку Быть в курсе, не будучи в сети
Option “SHMConfig” “on” Мы любим web-календарь от Evolution, ведь он изящен, быстр и
Теперь перейдите в System > Preferences > Sessions, щелкните на прост. Представьте же себе нашу боль, когда мы изредка перехо-
кнопку New под Startup Programs и добавьте следующую команду дим в оффлайн и наши календари вдруг пропадают. Но боль можно
Заставьте ярлыки syndaemon -i 1 -d. Перезагрузитесь, и теперь ваши настройки таковы, исцелить – в календаре щелкните правой кнопкой мыши, выберите
появляться только в что сенсорная панель работает обычным образом – кроме тех случаев, Properties, затем убедитесь, что флажок Copy Calendar Contents Locally
дозволенном им когда вы ненароком заденете ее при наборе! выставлен. Легко!
рабочем столе,
отредактировав
соответствующий
ПО Gnome – в Gnome, ПО KDE – в KDE
файл .desktop и Работать в Ubuntu здорово до тех пор, пока вы не попытаетесь устано-
добавив строку вить Kubuntu (или наоборот): ваша налаженная система меню затре-
ShowOnlyIn. щит по швам от десятков программ обоих рабочих столов, борющихся
между собой за приоритет. Не
отчаивайтесь: вы можете заста-
вить отдельные ярлыки возни-
кать только в Gnome или только
в KDE, а не в обоих. Для этого
зайдите под root и перейдите в
/usr/share/applications (для при-
ложений Gnome) или /usr/share/
applications/kde (для KDE). Затем
откройте файл ярлыка в тексто- Скопируйте данные календаря, чтобы он
вом редакторе и добавьте в конец работал, куда бы вы ни перешли.

Gnome
Добавить функции в Nautilus
Nautilus обладает удивительной мощью благодаря расширениям, но они nautilus-scripts. На сайте http://tinyurl.com/ype2eq [Ну мы-то с вами
не устанавливаются по умолчанию, а без них он пустоват. Тем не менее, знаем, что tinyurl.com – это лишь сервис, заменяющий чрезмерно
его нетрудно изменить, особенно если вы пользуетесь Ubuntu – просто длинные ссылки на короткие (tinyURL), и внутри скрывается нечто
стяните apt-get’ом расширения nautilus-gksu и Nautilus-open-terminal, вроде http://www.gnome-look.org/content/show.php/Nautilus+Scripts?cont
перезапустите Nautilus – и наслаждайтесь новыми функциями! ent=55445 , – прим.ред.] имеется огромный выбор скриптов – попро-
буйте и узнайте, какой подходит вам больше всего!
Изменить файловый менеджер
Nautilus нравится не всем. Если вы продвинутый пользователь или
не любитель тяжеловесов, или вам скоро надоедает легкая жизнь, то
полюбить Nautilus весьма сложно. К счастью, можно заставить Gnome
использовать другой файловый менеджер для ярлыков Places, распо-
ложенных в меню, поскольку каждый из них имеет собственный файл,
расположенный в /usr/share/applications. Например, если вы хоти-
те запустить другой файловый менеджер при щелчке Places > Home
Folder, откройте файл /usr/share/applications/nautilus-home.desktop и
измените строку Exec на браузер по своему выбору.

Обогатить Nautilus скриптами


Правый щелчок по вашему рабочему столу дает традиционно
Gnome’ский выбор опций: вы можете немного подвигать значки,
изменить фон, и т.п. Но Nautilus умеет куда больше – фактически,
вы можете в корне изменить ваше Gnome-меню по правому щелчку, Можете добавить скрипты в Nautilus, чтобы автоматизировать
если установите скрипты оболочки Nautilus в ваш каталог ~/.gnome2/ действия, или просто скачайте крутые примеры, созданные другими!

34 Linux Format Ноябрь 2007


48 трюков с Linux

Отзывчивость меню Gnome


Майк вечно ноет, что меню Gnome при наведении на них появляются
чудовищно медленно – и позор ему, потому что это можно банально
поправить за пять секунд: просто добавьте такой текст в файл .gtkrc-
2.0 вашего домашнего каталога:
gtk-menu-popup-delay = 0

Блаженство gTweakUI
Gnome, как и большая часть приложений Apple, любит прятать
свои настройки, и требуются известные усилия, чтобы до них
добраться. Кричите «Ура»: gTweakUI открывает вам целый мир
опций, с которыми можно поиграть. Нам особо понравилась Use
home folder as desktop, означающая получение мгновенного досту-
па к файлам, минуя меню Places. Да там вообще раздолье для
деятельности – экспериментируйте!

gTweakUI состоит из нескольких частей, но в каждой есть опции


настройки рабочего стола по вашему вкусу.

Производительность
Избегать обращения к диску не сталкивались, поясним, что RAM-диск – это виртуальная файловая
Немногое в Linux раздражает нас больше, чем его привычка исполь- система; она целиком находится в памяти ПК, а значит, молниеносно
зовать файл подкачки, независимо от размера оперативной памяти записывает и читает все, что угодно. Сколько места выделять на RAM-
на вашей машине. Конечно, иногда это помогает – когда ваша систе- диск, определяется тем, велик ли у вас размер оперативной памяти и
ма сильно загружена и реально испытывает недостаток ресурсов – но насколько вы планируете использовать его – если у вас 1 ГБ ОЗУ, вы
вообще-то, если у вас 2 ГБ ОЗУ или больше, на этом можно сэконо- можете выделить 64 MБ под ramdisk; если у вас 2 ГБ, то, возможно,
мить немало времени. Чтобы Linux обращался к файлу подкачки поре- пожертвуете 256 MБ, а если вы счастливый обладатель 4 ГБ, то легко Для большей
производительности
же, отредактируйте файл /etc/sysctl.conf, отыскав (или создав) строку можете отдать под ваш ОЗУ-диск до 1 ГБ. Опишем, как установить диск
держите файлы
vm.swappiness. Если у вас преогромное ОЗУ и вы хотите минимизи- размером 64 MБ – при желании просто поменяйте значение 65536 на
в оперативной
ровать количество подкачек, производимых Linux, сделайте строку то, которое вас устроит: памяти, но помните:
такой: mkfs -t ext3 -q /dev/ram1 65536 если ваш компьютер
vm.swappiness=10 mkdir -p /ramdisk вдруг выключится,
mount /dev/ram1 /ramdisk -o defaults,rw им хана!
«Нет!» замусориванию
диска
Мы повторяем снова и снова, но люди, похо-
же, никогда не принимают наши слова всерь-
ез: хотите, чтобы ваши диски вырабатывали
свой полный потенциал – предусмотрите и
включите опцию noatime в /etc/fstab.
Дело в том, что при каждом чтении с
вашего диска (например, из файла) заод-
но производится и запись, чтобы сохранить
информацию, относящуюся к последнему
считыванию файла. Это процесс невероят-
но медленный, и можно достичь увеличения
скорости – обычно процентов на 10 – одним
очень простым трюком.
Переключитесь в root, откройте /etc/
fstab в любимом текстовом редакторе.
Отыщите корневую файловую систему и
убедитесь, что в своих установках она име-
ет defaults,noatime,data=writeback, затем
сохранитесь, перезагрузитесь и позвольте,
наконец, вашему бедному разогнанному PC
работать на полную катушку!

Супербыстрые временные
файлы
Помните старые времена с RAM-дисками? Но
и у Linux они тоже есть! Если вы сроду с ними

Ноябрь 2007 Linux Format 35


48 трюков с Linux

OpenOffice.org
Стили с клавиатуры Logo=1
Одно дело тратить время, подгоняя стили OpenOffice.org под ваши на:
потребности, а совсем другое – трудиться, применяя эти стили там, где Logo=0
они нужны! И, признаться, это мучительно: отрывать руки от клавиа- Теперь OOo станет загружаться побыстрее и будет занимать в это вре-
туры, наводить мышь на стиль, щелкать, затем продолжать набор; и мя меньше экранного пространства – вы победили!
странно было бы, если бы OOo не позволял иметь комбинацию клавиш
для стилей. Так вот, он и в самом деле позволяет применять комби- Помогите вдовам и сиротам
нацию клавиш, но для этого требуется немного творчества. Во-пер- Есть две вещи, от которых встают дыбом волосы журнальных корректо-
вых, задайте ваши стили такими, как вы хотите. Затем идите в Tools > ров: сироты со вдовами и орфографические ошибки. OK, таких вещей
Macros > Record Macro и щелкните по стилю, который собрались при- три: сироты со вдовами, ошибки, тексты, приходящие от авторов с
менить. Теперь щелкните мышью по плавающей кнопке Stop Recording опозданием, и безвкусные стили. А также... Ладно, их много чего бесит,
и сохраните ваш макрос как ApplyingStyleXYZ (помните, пробелы в име- но в контексте данного совета важнее всего сироты и вдовы! Сиротой
нах не допускаются!). Вы сейчас заставили OOo записать небольшую в издательском деле называется последнее слово абзаца, которое в
программу, применяющую конкретный стиль. одиночку вылезает на новую строку, а вдовой – часть предложения,
А теперь – фокус: щелкните Tools > Customize, выберите вкладку завершающего абзац, которая переходит на начало новой страницы.
Keyboard, прокрутите вниз список сочетаний клавиш, пока не встретите Оба они выглядят коряво, но вместо творческого применения перево-
тот, который вам понравился: например, Ctrl+Shift+A. В нижней час- дов строки вам следует дать Writer’у поработать за вас – перейдите в
ти окна, выберите OpenOffice.org Macros > User > Standard > Module1 Format > Paragraph > Text Flow,и убедитесь, что как Orphan Control, так
в списке Category; вы увидите, что имя вашего макроса появилось в и Widow Control включены.
списке функций. Выберите его, затем щелкните Modify – это припишет
выделенную макрофункцию выбранному сочетанию. Теперь по нажа-
тию Ctrl+Shift+A немедленно будет применяться ваш стиль.

Долой брендинг!
Утомились наблюдать заставку каждый раз при запуске програм-
Пусть OOo
мы OpenOffice.org? Что же, если вы сумеете найти файл конфигура-
позаботится
о вдовах и сиротах, ции OOo на вашем компьютере, можете отключить ее. Пользователи
а вы в это время Windows пусть ищут файл в каталоге установки OpenOffice.org, подка-
мечите жемчуг талог ‘program’ – ищите файл soffice.ini. Пользователям Linux следует
вашей мудрости искать файл sofficerc. Откройте его в текстовом редакторе, и поменяй-
перед свиньями... те строку:

36 Linux Format Ноябрь 2007


48 трюков с Linux

MySQL
Процессы MySQL
Управление большим сервером – непростая задача, но здесь на
помощь приходят несколько простых утилит. Например, если некий
пользователь начинает глотать много процессорного времени на
MySQL, вы можете его пресечь, не влияя на остальную часть базы дан-
ных – ну, если вы системный администратор. Чтобы увидеть список
текущих подключений и того, что они делают, запустите запрос show
processlist;. При этом будут перечислены все действия на вашем серве-
ре в настоящий момент, а также ID процессов, так что вы сможете убить
отдельные из них. Например, если PID 50 делает что-то вам несимпа-
тичное, примените команду kill 50, и он будет мгновенно остановлен.

Журнал медленных запросов


Полная оптимизация ваших таблиц MySQL требует изучения, усердия
и искусства, в особенности если у вас есть сложные запросы, объеди-
няющие несколько таблиц. Но MySQL немного посодействует в реше-
нии этой задачи, так как он автоматически создает для вас журнал
медленных запросов, где хранятся все SQL-выражения для запросов,
неэффективно использующих индексы (то есть медленных, потому
что вы поленились их оптимизировать) или запросов, которые требуют
большого времени выполнения (то есть они просто медленные сами
по себе). Если вас это заинтересовало, отредактируйте ваш файл кон-
фигурации MySQL ( как правило, это /etc/my.ini или /etc/mysql/my.ini) и
добавьте в секцию [mysqld] следующую строку: так плохо, как может показаться, и легко поправимо. Во-первых, оста- Забыли пароль
log-slow-queries новите MySQL, выполнив /etc/init.d/mysql stop, затем запустите MySQL root вашего MySQL?
сервер вручную и передайте ему ключ --skip-grant-tables – это вынудит Все в порядке –
велите MySQL
Восстановление root для MySQL MySQL игнорировать систему прав доступа, так что вы легко сможете
пропустить права
Итак, вы ухитрились запомнить пароль пользователя и пароль root’а, зайти как root с пустым паролем. Эта уловка выручила команду LXF по
доступа, а потом
но вдруг забыли или заменили root’овский пароль для MySQL? Это не крайней мере один раз! LXF измените пароль
вручную.

трюков с Linux
Ноябрь 2007 Linux Format 37
KDE 4

Дорога
в KDE 4
Годы трудов привели команду разработчиков KDE 4 к выпуску нового крупного релиза.
Грэм Моррисон рассмотрит функции, благодаря которым он стал таковым, равно как и те, что
отпали по дороге.

ак известно, KDE 4 планировался к выпуску довольно KDE 4, несомненно, представляет собой плод чрезвычайных уси-
долго. Фактически, несколько лет: статья «Будущее лий: на уровне кода изменилось все. И это очень важно, ведь если
Linux» из LXF59 еще в ноябре 2004 г. отмечала, что «4- цикл KDE 4 продлится столько же, сколько KDE 3, то на основе этих
я версия KDE обещает стать революционной благодаря библиотек и API люди будут создавать приложения еще добрых
массовым улучшениям движка KDE, Qt». Мы даже использовали лет десять – целый век для компьютеров. Но пользователи с ходу в
KDE 4 как тему LXF87/88 в январе 2007 г., хотя в обоих журналах восторг не придут. KDE 4 в этом начальном релизе – скорее каркас,
были вынуждены признать, что «неизбежность» релиза под воп- чем интегрированное окружение рабочего стола. Революция в про-
росом. Даже с учетом задержек, KDE 4 не вышел так скоро, как мы граммировании приведет и к пользовательской революции: когда на
все надеялись. Но в конце 2007 уже нельзя сомневаться, что релиз новую платформу портируют большинство основных приложений
неминуем. Установлена даже дата официального релиза — 20 дека- KDE, перемена будет разительной. Иными словами, обычному поль-
бря 2007 г. — и мы не видим причин для ее нарушения [KDE 4 будет зователю придется подождать, пока разработчики приспособятся к
представлен только 10 января 2008 года, – прим. перев.]. новой технологии. Это смахивает на ожидание второго эшелона игр,
За последние несколько месяцев вышли две бета-версии, и объ- реализующего потенциал новой консоли; надеемся, что ситуация с
ем программ, загруженных в репозитории исходных кодов, просто KDE 4 будет немного лучше, чем с запуском PlayStation 3...
феноменален. На ежегодной конференции KDE, на сей раз проходив-
шей в Глазго, были представлены текущие отчеты, экранные снимки Столпы мудрости
и новые функции. Похоже, что мы стоим на пороге очередной рево- Лучший способ получить представление о том, как работает процесс
люции рабочего стола KDE. Но те, кто ожидал получить от неминуе- создания KDE – а иногда как не работает – это сравнить программы
мого релиза нечто вроде «пиршества функций», будут разочарованы: двух последних ежегодных конференций KDE. Призрак KDE 4 мая-
это «нечто» вам в принципе уже знакомо, если вы смотрели любую из чит за обеими конференциями, но включаемые технологии и API, с
бета-версий. Даже один из основных разработчиков KDE признает, которым будут иметь дело разработчики, меняются. В Дублине на
что первый выпуск «четверки» предложит обычному пользователю конференции 2006 г. фигурировали Plasma, Phonon, Solid, Decibel,
не так уж много новшеств. «Версия 4.1 явно будет релизом рабочего Akonadi. Почти год спустя, в Глазго, конференция Akademy занима-
стола, за который ухватится больше пользователей, по сравнению с лась почти тем же, но с несколькими серьезными купюрами. Plasma
4.0», признался недавно в своем блоге Аарон Сиего [Aaron Siego]. исчезла полностью, как и Solid. И даже технологии, пережившие

38 Linux Format Ноябрь 2007


KDE 4

Аннотация KDE 4
Вот что бывает, если прикреплять наглядный префикс ‘K’ ко всему.
Akonadi звуковой аппаратуры, заменив интерфейс на общий API WebKit
Предназначенный для упрощения обмена контактной высокого уровня. Он не предусматривает механизма Приносит на рабочий стол KDE HTML-рендеринг и
информацией между различными PIM-приложениями, воспроизведения, но передает данные о настройке соот- WWW-совместимость, которыми наслаждаются пользо-
Akonadi использует центральную базу данных, доступ- ветствующим фоновым процессам. ватели Apple в Safari. WebKit – возвращение KHTML-
ную через не зависящий от платформы протокол. движка рендеринга, после того как инженеры Apple
Главные цели для KDE – Kontact и KOffice, но мы наде- Plasma забрали его ответвление для использования в браузере
емся, что Akonadi распространится и на другие популяр- SuperKaramba без настольной эквилибристики. При Safari. Теперь в KDE снова будет первоклассный HTML-
ные приложения PIM. помощи Plasma виджеты можно встраивать прямо в движок.
рабочий стол и использовать для надставки упрощенно-
Decibel го рабочего стола любыми нужными вам функциями. По
Подобен Akonadi, но вместо PIM-данных, Decibel наце- внешности и функциональности это смесь Dashboard от
лен сделать то же самое с протоколами связи коммуни- Apple и Kicker от KDE.
кационного ПО. Это будет означать, что единственную
учетную запись станет возможно использовать для Sonnet
настройки утилит типа Skype и Kopete без ручного вме- Крутой движок, позволяющий распознавать языки и
шательства. проверять грамматику. Sonnet заменит устаревшую
систему Aspell из KDE 3 .*, которая последние пять лет
Solid хромает. К счастью, Sonnet уже работает значительно
Слой аппаратных абстракций [HAL] KDE 4 спроектирован, лучше, чем его прототип в последнем тестовом релизе
чтобы сделать настройку устройств типа адаптеров бес- KDE 4.
проводной сети легкой на всех компьютерах и приложе-
ниях. Это еще один случай «установи однажды, исполь- Strigi
зуй везде», но если он сделает настройку беспроводной Очередной-Инструмент-Поиска-на-Рабочем-Столе.
сети в Linux немного легче, мы будем счастливы. Однако его быстрота и гибкость сулят ему успех на
рабочем столе Linux. Для ускорения он использует нова-
Phonon торскую технику потоков данных для быстрого сохраняя В пререлизной сборке KDE – всего один виджет
Наконец-то заменит одряхлевший Arts. Применение вещей и допускает рекурсивный поиск – например, Plasma, но скоро их будет больше, чем
Phonon надеется решить старые проблемы с настройкой вложений в виде tar-файлов в письмах. в SuperKaramba.

девять месяцев между конференциями, в Глазго появились со слег- лучшие планы не работают и в коммерческом мире, как с Microsoft
ка смещенными акцентами. Презентация Decibel, например, шла под Vista или Apple OS X последней версии, и тем более не работают в
грифом «Что это такое и как его использовать» – непохоже на срез мире открытого ПО, где большинству разработчиков приходится
развития после месяцев напряженной работы. манкировать полным рабочим днем и семейными обязанностями
Базовые технологии 2006 года были вытеснены в 2007 другой во имя изменения мира. Возможно, как раз по этой причине многие
идеей – KDE Pillars [pillar – столб, англ.]. Этот сборник основных вещи выпали из генерального плана выпуска KDE 4. Некоторые из
разработок, сгруппированных в русле конференции 2007 г., содер- основных технологий, описанных в январском номере, пострадали
жащий презентации, которые любой с хотя бы половинным интере- от нехватки разработчиков, либо внимание переключилось на новые
сом к KDE 4 просто обязан изучить. Для внешнего мира Pillars – луч- технологии, занявшие их место.
ший показатель того, что именно группа разработки KDE 4 считает Важнейшее изменение – полная переработка поискового меха-
наиболее важным в следующей версии. К удивлению, в Pillars вошли низма. Не так давно мы говорили об ажиотаже вокруг проекта Tenor.
только две основные технологии из упомянутых на конференции Его расхваливали как поисковую систему, способную «утереть нос
2006 г. – Decibel и Akonadi. Остальные будут для большинства людей
в новинку, так как на Strigi, Flake, Sonnet и WebKit до этой конферен-
ции лишь изредка намекалось.
«На уровне кода изменилось все.
Самое интересное имя – Flake, хотя оно в большей степени свя- Новые API и библиотеки будут
зано с KOffice 2.0, чем с KDE 4.0. Это описание абстрактного уров-
ня для документации и форматирования, вводящего такие вещи, использоваться еще лет десять.»
как, например, цветовые пространства sRGB и CMYK, векторные
описания точек, функция загрузки и сохранения в ODF и встроен- всем». И даже термин «поиск» был недостаточно хорош для проекта
ные объекты в виде «фигур» в интегрированном офисном пакете Tenor, фактически являвшегося механизмом контекстуальных свя-
KDE. Sonnet, с другой стороны, это довольно тщательно сделанный зей. Но всего этого оказалось мало, чтобы дать должный импульс
модуль проверки орфографии или «сервис словаря» – качественно его развитию, и работа по Tenor тихо зачахла. Это обычная проблема
иного масштаба, чем ряд других технологий в KDE 4, с которыми любого рода разработки: реклама суперфункции, не подкрепленная
Sonnet роднят разве что высокие амбиции. Не довольствуясь ролью своевременным и осязаемым выпуском, всегда будет создавать
очередной библиотеки проверки орфографии, Sonnet намерен стать проблемы для всего проекта. К счастью для KDE 4, кончина Tenor
расширяемым, для удовлетворения потребностей в многоязыковой оказалась лучшим для него подарком, так как два новых проекта
поддержке, переводе и даже грамматической проверке: разработчи- моментально заняли опустевшее место, и на сей раз они работают.
ки KDE всегда славились предложением новых идей.
Поражает, как много изменилось за последние двенадцать меся- Strigi
цев. Этот период мог бы быть использован для шлифовки существу- Пользователи и разработчики KDE уже давно признали потенциал
ющих библиотек и роста над прежним уровнем разработки. Но даже мощного, обособленного, эффективного и проникающего поиско-

Ноябрь 2007 Linux Format 39


KDE 4

вого механизма. На языке современного рабочего окружения эти Но Strigi обещает быть другим, и, пожалуй, является лучшим кан-
термины сливаются в так называемый семантической рабочий стол: дидатом на эту работу, чем его идейный предок Kat. Основной разра-
возможность для различных документов и приложений сосущест- ботчик Strigi Йос ван ден Эвер [Jos van den Oever] грыз гранит ранних
вовать и говорить друг с другом конкретным и прозрачным спосо- поисковых систем, что вдохновило его написать свою собственную.
бом. Семантические столы сыграют ключевую роль в успехе KDE 4, Хотя на вид Strigi мало отличается от предшественника, но, похоже,
и значительную часть этой функциональности представляет встро- ему хватает силенок, чтобы стать еще одной новой поисковой систе-
енный поиск. Известно, что инструменты поиска в Linux – отнюдь не мой. Главный его козырь – производительность: обычно она оттал-
диковина. Нам есть из чего выбирать, включая прекрасный Beagle в кивала пользователей от принятия решения на переход к использо-
Gnome и мощную технологию поиска от ребят Google, которую мы ванию технологий поиска, а Strigi может похвастаться серьезным
рассматривали в LXF97. превосходством над аналогами. Превосходство достигнуто за счет
Двенадцать месяцев назад в KDE был Kat, но все изменилось с использования потоков данных вместо загрузки всего содержимого
внедрением еще одной новой технологии поиска, называемой Strigi файла, что не только снижает требования к используемой памяти до
(произносится «стриги», а происходит от латинского «strigi»: это минимума (вечные путы других инструментов поиска), но и делает
скребок, которым в римских банях удаляли грязь с кожи, предва- построение поискового индекса гораздо более управляемым.
рительно натершись маслом). Естественная реакция на это «Ой, нет,
пожалуйста, не надо нам нового поиска»: ведь мозговой центр KDE Nepomuk
известен привычкой формулировать великие идеи, оставляя за бор- Механизм контекстуальных связей из Tenor не был забыт. Есть
том такую «мелочь», как их осуществление. инструмент, идущий рука об руку с Strigi, который добавляет мета-
контент, необходимый поисковому движку для распознавания типа
данных. Он называется Nepomuk – возможно, лучшая в мире аббре-
виатура. Nepomuk – это ‘Networked Environment for Personalized,
Ontology-based Management of Unified Knowledge’ [Сетевое окруже-
ние для персонализированного, онтологически-ориентированного
управления унифицированными знаниями]; не бойтесь, нам тоже не
Konsole выжила по зубам это понять.
благодаря Nepomuk не является собственно KDE-проектом: это откры-
назревшей тый проект, финансируемый Европейским сообществом. С учетом
«прополке» меню бюджета в 11,5 миллиона евро, это серьезная заявка на стандар-
«Настройка». тизацию в данной области, которая только выиграет от всеобщего
Она даже получила пользования одинаковыми инструментами. KDE 4 станет первым
несколько новых крупным проектом, использовавшим Nepomuk: Strigi позаимствует
функций, его запасы и стандарты для своего индекса. Идея заключается в
с возможностью
нахождении связей между различными видами медиа-содержимого
разбиения на две
и построения контекстной структуры на базе этих связей. Допустим,
сессии
и с прозрачностью вы в чате обсуждаете с кем-нибудь ранее полученное вами письмо.
фона. Nepomuk сохранит ссылку c чата на электронную почту, а также

Dolphin
Сколько панелей настройки вам нужно
на самом деле?
Мишень постоянной критики рабочего стола главное окно на произвольное количество
KDE – угнетающее число его опций. частей. Разработчики Dolphin решили, что
Популярный пример – Konsole, эмулятор тер- большинство людей будет делить его надвое,
минала KDE: в его меню «Настройки» 15 пунк- и остановились на этом варианте. Вероятно,
тов, а подпунктов, ответвляющихся от основ- это правильный выбор, как и серьезное упро-
ного дерева, и того больше. Но подлинное щение меню конфигурации – в последней
воплощение рвения KDE к настраиваемости – версии было только четыре опции. Даже когда
приложение Konqueror: файловый менеджер/ вы открываете единственное окно настройки,
браузер/корзина и т.д. Проблема Konqueror не появляются только две панели, и варьируемых
в его несравненной мощи (многие из нас за параметров там не так уж много.
это его и любят), а в том, что среднему поль- Dolphin – полярная противоположность
зователю не нужны 95% предлагаемых опций. Konqueror, и в его настройках вряд ли кто-
И многие считали, что Konqueror не поддается нибудь заблудится. Он больше походит на
дрессировке. В итоге появился новый файло- Nautilus от Gnome, чем на родное приложение
вый менеджер, названный Dolphin, который KDE, хотя некоторые нововведения будут
взял на себя обязанности приложения по спорными. Наряду с более традиционными
умолчанию для KDE 4. значками и списками файлов, есть также Навигация по колонкам файлов в Dolphin является точной копией
Dolphin – попытка перенять лучшее из функция просмотра файлов с использованием той же функции в Finder от Apple: нажатие на папку открывает
Konqueror без превращения интерфейса поль- колонок, «содранная» с приложения Apple новую колонку справа. Вид пока немного неуклюжий, но со
зователя в нечто громоздкое или злоупотреб- Finder. Из того, что это Apple, еще не следует, временем он улучшится.
ления количеством параметров настройки. что это хорошо; данная функция кажется
Отвергнута, например, возможность делить неуместной на рабочем столе KDE.

40 Linux Format Ноябрь 2007


KDE 4

плана развития и добавочных рабочих рук, но это не специфика KDE


– такова природа всех решений с открытым исходным кодом.
Новые идеи «засвечиваются», и программисты предпочитают
сначала убедиться в их работоспособности, а потом уж трубить об
их возможностях. Именно такое происходит с Plasma, и в общем
графике KDE 4 очень мало информации о развитии проекта. Это
удивляет, если вспомнить, что Plasma – лицо KDE-технологий по
части «украшательств», но и характеризует личность стоящего за
ней разработчика. В конечном счете, разработчики KDE 4 уверены,
что финальные версии их рабочего стола заткнут критикам рты.
Отсутствие промежуточных обновлений означает лишь напряжен-
ную деятельность разработчиков, а не отсутствие прогресса.
Альфа- и бета-версии KDE 4 продемонстрировали построение
любые дополнительные ссылки, типа вложений и других участников кодовой базы Plasma, но не виджеты и приложения, ожидаемые
беседы. У Nepomuk есть и аспект общения: вы делите определенные пользователями, а ведь именно они, более чем что-либо другое,
области базы контекстных данных с вашими сетевыми контактами. будет влиять на прием, оказанный KDE 4. В новой версии найдется
Например, упомянутый ваш собеседник получит доступ к тому само-
му электронному письму, и этот аспект предположительно опреде-
лил наличие слова «онтология» в титуле Nepomuk.
«Apple открыла исходный код
WebKit
WebKit, а значит, проблемы
На прошлогодней конференции Akademy также намекалось на с KHTML решатся быстрее.»
интеграцию некоторых изменений KHTML от Apple в основную ветку
развития KHTML. Этого не произошло. По факту, развитие KHTML за мало такого, с чем пользователи смогут «поиграть». Но так же было
последние 12 месяцев почти не продвинулось, и движок рендеринга и с первоначальным релизом SuperKaramba. Важен потенциал техно-
web-страниц недостоин надвигающего релиза рабочего стола чет- логии, и это касается всех работ, ведущихся в KDE 4. Да, старт будет
вертого поколения. Ларс Кнолл [Lars Knoll], один из первоначальных трудным, и неизбежны жалобы пользователей, что по сравнению
разработчиков KHTML, допускает, что это произошло из-за отноше- с KDE 3.5 ничего не изменилось, но здесь заложен мощный потен-
ния Apple к команде разработчиков KHTML после его ветвления ради циал, реализуемый только через новые уровни абстракции, новые
использования в рамках web-браузера Safari. библиотеки и API – то, над чем напряженно трудится команда разра-
Но Ларс также говорит, что его мнение постепенно изменилось ботчиков KDE. Пусть даже по первости KDE 4 будет вылитым KDE 3.5,
после того, как Apple в конце концов открыла WebKit для использо- только чуть быстрее и чуть красивее: это уже неплохо. LXF
вания под свободной лицензией. WebKit содержит все модификации
KHTML от Apple и многие другие дополнения для браузера. Сейчас
разработчики стремятся добиться совместимости WebKit с KDE, хотя
предстоит еще много работы, прежде чем это станет реальностью.
Интеграция WebKit будет означать, что web-элементы в KDE будут
предлагать такой же уровень совместимости, как собственный бра-
узер Apple, Safari. Если возможности web-браузера мирового класса
войдут в движок HTML KDE, это может преобразить конкуренцию в
мире браузеров. При проблемах с корректным отображением сай-
тов, с такими же проблемами столкнется и Safari от Apple, и испра-
вить их можно будет быстрее.

Plasma
Наиболее предвкушаемая технология в KDE 4 – Plasma, всеобъем-
лющая функциональность для интеграции виджетов рабочего сто-
ла, т.е. «правильная» SuperKaramba. Но реализовать эту технологию
чрезвычайно трудно. Бета-версия KDE 4 не сумела выявить большую
часть ее потенциала; возможно, именно этот аспект KDE 4 больше
всего пострадал в плане скорости разработки. Несмотря на то, что
она уже завладела сердцами и умами пользователей KDE, развитие
Plasma страдает из-за того, что главный автор, Аарон Сиего, один из
самых занятых людей, какие нам встречались. Он не только участву-
ет почти во всех связанных с KDE конференциях на планете, но так-
же активно продвигает открытые решения. Взгляните, например, на
его презентацию в 2006 г. на TPOSCON (Транстихоокеанской конфе-
ренции по открытому ПО), озаглавленную «Как OSS облагораживает
общество», на Google Video.
Этот суматошный график нанес ущерб развитию Plasma, и зало-
женный в нее потенциал пока не раскрывается. В текущих бета-вер-
сиях KDE Plasma отважно заняла место по умолчанию на рабочем
столе, но обычный пользователь поимеет с этого только симпа-
тичные аналоговые часы – слабое оружие для революции. Мы все Dolphin использует Nepomuk для добавления контекстуальных данных в файлы, и вы
уверены, что Plasma еще покажет класс; посмотрите рассылки раз- можете их использовать для добавления рейтингов, тэгов или своих заметок. Strigi умеет
работчиков KDE, и вы увидите, что здесь не хватает только четкого осуществлять по ним поиск.

Ноябрь 2007 Linux Format 41


Что за штука? JavaScript 2

Что за штука…
JavaScript 2?
Половина web-сайтов успешно использует JavaScript – так стоит ли чинить то, что не ломалось?
Пол Хадсон объяснит, что к чему…

ОК, наконец-то я дождался темы, о которой еще JavaScript был создан для решения простых задач, и JavaScript 2, они удивляются: «Ничего себе, сколько
до начала ваших объяснений мне известно все! уже с трудом удерживает выстроенные вокруг него всего!», тогда как половина всех нововведений дав-
Правда? Стоит пожалеть деньги, выложенные за этот супер-сайты. но работает в JavaScript 1.7, просто они об этом не
номер журнала! Но, признаться, я несколько удивлен: знают. Другая проблема – столкновение множества
о JavaScript 2 знают пока лишь немногие. А разве недостаточно легкой модернизации самых разных точек зрения. Брендан Эйх [Brendan
– скажем, JavaScript 1.1, а не 2.0… Eich], технический директор Mozilla, который и создал
JavaScript 2? Я как-то не до конца вник. Облом! На самом-то деле, добрались уже до JavaScript 1.7! JavaScript десять лет назад, еще работая на Netscape,
И правда, о JavaScript 2 я пока ничего не слы- Чтобы соответствовать растущим запросам, новые назвал четыре самых распространенных совета, полу-
шал – прошу вас, продолжайте… функции добавляются непрерывно. ченных им от самых разных людей: «оставьте язык
Уже лучше! Я вижу, вы многое знаете о текущей вер- в покое», «пересмотрите его мощно, необратимо»,
сии JavaScript, да и немудрено: JavaScript нынче пов- Почему тогда столько внимания 2.0? Рано «чуть-чуть подправьте его (90 вариантов “чуть-
сюду. Забрались ли вы в Интернет через настольный или поздно, выход из серии 1.х на 2.0 стал чуть”)» и «не превращайте это в Java!».
компьютер или смартфон, работаете ли с XML-файла- бы просто логическим продолжением.
ми или SVG с поддержкой скриптов – вам не обойтись В общем, да. А еще такие значительные изменения Сделать два разных JavaScript – совсем непло-
без JavaScript. нумерации версий обычно знаменуют обратную несов- хая идея!
Не секрет, что свыше половины всех web-сайтов в местимость – скрипты прежних версий просто не смо- Допускаю, но аргументы в пользу унификации еще
той или иной степени используют JavaScript, а неко- гут работать на новой. Обычно имеется в виду вот что: убедительнее: JavaScript – одно из немногих понятий,
торые (Google Maps, например) целиком построены «если уж пришлось пойти на слом обратной совмес- однозначно воспринимаемых разными браузерами.
на нем! тимости – самое время внести и другие давно назрев- Да, совместимость несовершенна – например, подру-
шие изменения». А изменения назрели действительно жить Opera с Gmail удалось не сразу. В остальном же
радикальные: формальное определение классов вмес- способность JavaScript примирять самые разные брау-
зеры и платформы поразительна.

«JavaScript был создан для простых А если взять да и обновить все разом до
JavaScript 2?
задач, и уже с трудом удерживает Надежда есть – по крайней мере, с годами.

построенные на нем супер-сайты». Понадобилось немало лет, чтобы JavaScript достиг


нынешнего уровня, и хотя Mozilla, Konqueror, Opera
и Safari не заставят себя долго ждать, на адапта-
Да, да: акроним Ajax нынче повсюду в моде. то ныне существующего быстрого определения прото- цию Internet Explorer может уйти несколько лет. Тем
Вот именно, буква “J” в Ajax означает JavaScript, типов, пространства имен, примитивные типы (вместо временем многие сайты будут просто отказываться
поэтому можно смело назвать JavaScript непревзой- представления всего сущего в качестве объектов), работать под ним, а пользователи будут испытывать
денным языком программирования Web 2.0. Даже для модификаторы доступа (private, public и т.п.) и многое неудобства.
сайтов без Ajax, JavaScript сегодня вне конкуренции. другое. Масштабность изменений вынудила одного из
критиков сказать следующее: «Предполагается, что А разве нельзя подготовить одну версию стра-
Погодите… зачем тогда что-то менять? Я ува- JavaScript – высокоуровневый, абстрактный, гибкий ницы для JavaScript 2, а другую – для версии
жаю стандарты… язык. Именно этим он был хорош, таким же образом 1.7?
Не забывайте, что JavaScript был создан десятилетие его следовало бы использовать и дальше. Если пойти Можно, но ведь разработчику сайта понадобится напи-
назад, когда Сеть была совсем не той, что сейчас. Тогда по пути, предложенному JavaScript 2, то, если честно, сать, отладить и поддерживать вдвое больше кода –
JavaScript занимался установкой и чтением cookies, понадобится создать новый JavaScript для выполнения едва ли это будет способствовать увеличению продук-
выводом простеньких часов на экран, проверкой пра- тех задач, которые этот язык столь успешно решал». тивности, обещанному JavaScript 2! Но ходят разгово-
вильности заполнения форм и другими примитивны- ры о создании конвертора с JavaScript 2 на JavaScript
ми задачами. Теперь его основная цель – обеспечить В угоду программистам, нужно многое изме- 1.7, то есть программирование будет выполняться на
взаимодействие пользователя с web-страницей: не нить… А чтобы сохранить преемственность, JavaScript 2, а эквивалент для версии JavaScript 1.7
желая наблюдать уныло-статические картинки, совре- необходимо многое оставить… Возможна ли золотая сгенерирует компьютер.
менные пользователи жаждут интерактивности: почти середина?
мгновенного обновления, общения с другими пользо- Часть проблемы состоит в том, что многие не впол- Звучит разумно. А если точнее, о каких новых
вателями, и – вероятно, самое важное – они больше не не представляют себе функциональность нынешнего функциях идет речь?
хотят нажимать кнопку “Reload” (Обновить). Короче: JavaScript – поэтому, просматривая спецификацию Схематично я уже описал основные отличия новой

42 Linux
LinuxFormat
FormatNovember
Ноябрь 2007
JavaScript 2 Что за штука?

версии, и похоже на то, что все эти нововведения вой- самом деле оно 0,99999999 или 0.10000001. А значит, Получилось некоторая мешанина, но в итоге JavaScript
дут в финальный стандарт. С другой стороны, одна даже простая арифметика может вылиться в пробле- 2 обещает вобрать в себя лучшие черты других попу-
из целей – максимально упростить переход на JS2. му. Возьмем маленькую команду: alert((0.1+0.7)*10). лярных языков программирования.
Может быть, стоит более подробно остановиться на Это означает: «сложить 0,1 с 0,7, умножить результат
новшествах… на 10, затем показать это в окне сообщения». Вы ожи- Звучит так необычно… Не опасно ли внедрять
даете, что в окне выведется 8, а увидите 7.99999999. так много нового сразу?
Имеет смысл. Начните с пространств имен — Верно. Именно поэтому JavaScript 1.7 (поставляемый
хоть что-то знакомое… Но… но это же плохо! с Firefox 2.0) уже обладает многими из заявленных
Да, да, пространства имен и их близкие друзья-пакеты Во-во, полная фигня. свойств – например, let уже там, итераторы тоже.
есть в C++, Java, C# и Perl, и вполне могут однажды JavaScript 1.9, выпуск которого планируется совмес-
возникнуть в PHP. «Пространство имен» в термино- Э-э… как-то вы уж очень по-простому. тить с выходом Firefox 3.0, будет обладать еще боль-
логии программистов означает набор использованных Извините – инженерным разговорам свойствен- шим количеством нововведений. После этого переход
ключевых слов. Например, Scriptaculous API предо- на непринужденность. В общем, проблема неточности на JavaScript 2.0 уже не будет потрясением.
ставляет десятки эффектов и DOM-инструментарий будет решена введением десятичного типа.
для сборки. Если воспользоваться ими, да еще пароч- Надо полагать. Ой! Кажется… утюг! Я забыл
кой других API, то скоро проявятся конфликты между И будет строгая типизация данных? выключить утюг – скорее, дайте мне URL, мне
различными именами классов и функций, определен- Нет, не совсем. Но программисты получат воз- надо бежать!
ных разными API – гляди в оба, чтобы не ошибиться. можность строго определять некоторые типы данных, Давать-то пока нечего, JavaScript 2.0 настолько новое
Пространство имен позволяет сказать: «В этом скрип- а также сообщать, какой тип данных ожидается на понятие, что нет еще ни книг, ни учебников, ни howto и,
те под словом Effect я подразумеваю Scriptaculous возврате из функции. Все это похоже на “type hints” уж конечно, никаких примеров для загрузки. Сожалею!
Effect». в PHP. Эх, уже убежал… LXF
Улавливаете? Конечно, пространство имен касает-
ся лишь крупных сайтов с множеством разнообразных Стойте – для меня это уже слишком.
компонентов. Есть понятия попроще: JavaScript 2 будет Не могли бы вы объяснить в
способен различать объекты, массивы, функции, логи- общих чертах?
ческие переменные, целые числа, числа с плавающей ОК. JavaScript 2 взял итераторы
точкой, десятичные числа, строки, даты, регулярные и слайсинг от Python, пере-
выражения и ошибки. Версия 1.7 втиснула целые чис- грузку операторов от
ла, числа с плавающей точкой и десятичные числа в C++, ключевое сло-
упрощенный тип данных “number”, но в JavaScript 2 во let из Basic.
все будет иначе.

Хм… А разве десятичное число – это не число с


плавающей точкой?
Числа с плавающей точкой обладают известной
неточностью – например, вы думаете,
что имеете дело с числом 0,1, а на

Ноябрь 2007 Linux Format 43


Многоликий Apache

Apache, На DVD

но не httpd
Затрудняетесь назвать пять различий между Apache и web-сервером Apache?
Ничего страшного – Николай Байбородин объяснит, что к чему.

О
рганизация Apache Software Foundation поддерживает Некоторые проекты второго уровня становятся столь успешными,
и развивает большое количество проектов. При этом что переводятся в разряд приоритетных, то есть им присваивается ста-
отдельные проекты не равнозначны друг другу – есть тус TLP. Один из самых значимых факторов, позволяющих оценить тот
те, которым уделяется наибольшее внимание, есть и или иной проект, это его переход от статуса дочернего проекта к отде-
менее значимые. Для того, чтобы упорядочить многообразие про- льному самостоятельному проекту первого уровня. В качестве примера
ектов в соответствии с приоритетами сообщества, в Apache Software одного из таких проектов можно привести проект по созданию утилиты
Foundation используется многоуровневая структура организации про- автоматической сборки Ant (LXF92). Изначально Ant входил в проект
ектов. Это означает, что из всех направлений разработки програм- Geronimo, но со временем был переведен в группу проектов первого
много обеспечения выделяются основные, приоритетные, которые уровня. И это не единичный пример.
становятся проектами первого, или верхнего уровня (Top Level Стоит сказать, что не все проекты оказываются успешными.
Project, TLP). Каждый из проектов первого уровня может включать Некоторые, не сумевшие развиться от первоначальных замыслов в
в себя несколько проектов второго уровня. Проекты второго уровня полноценные работающие приложения, не собравшие вокруг себя
могут не иметь прямой и очевидной зависимости от родительско- сообщества заинтересованных разработчиков, или просто оказавшиеся
го проекта, то есть это не обязательно библиотека или компонент, бесперспективными, переводятся в статус закрытых.
используемый в родительском проекте. Главное, чтобы цели, постав- Список всех действующих и наиболее интересных из закрытых
ленные перед проектом второго уровня, при их достижении являлись проектов можно найти на главной странице web-сайта Apache Software
своеобразным шагом к достижению целей, поставленных перед про- Foundation (www.apache.org), где каждый проект представлен ссылкой,
ектом первого уровня. ведущей на его домашнюю страницу.

Jakarta
Web http://jakarta.apache.org/

Не случайно мы начинаем обзор проектов ASF с Apache Jakarta. Прежде нацелен на серверные технологии и Java Enterprise Edition.
всего, это один из старейших проектов, а также, наверное, один из Несмотря на большую значимость проекта Apache Jakarta, в послед-
самых амбиционных замыслов ASF. И в тоже время, возьму на себя нее время раздаются голоса о его последних днях в связи с раскрытием
смелость утверждать, что это самый неоднозначный проект. Ниже я компанией Sun исходных текстов Java. Однако следует помнить, что
постараюсь объяснить, в чем заключается его неоднозначность, а пока Sun открыла не весь код Java, что обусловлено определенными патент-
стоит также отметить, что Jakarta – проект верхнего уровня, и многие ными ограничениями. И, несмотря на заявления, что в ближайшем
другие проекты (в том числе Tomcat, Ant, и Struts), обладающие стату- будущем не останется закрытых модулей, все-таки еще нельзя считать
сом TLP, в прошлом были частью проекта Apache Jakarta. Некоторые официальную реализацию открытой на сто процентов, так что актуаль-
известные и заслужившие общественное признание проекты (напри- ность проекта Jakarta пока рано ставить под сомнение.
мер, Struts и Struts2) до сих пор являются проектами второго уровня, Но, с другой стороны, можно видеть, сколь решительные шаги Sun
входящими в состав Jakarta. предпринимает в плане перевода своих продуктов на открытые лицен-
Проект возник как ответ на нежелание компании Sun Microsystems зии. Это позволяет утверждать, что рано или поздно настанет момент,
открыть исходные коды платформы Java. Тогда и возникла идея созда- когда официальную реализацию Java можно будет назвать открытой без
ния свободной открытой реализации Java. Идея была встречена обще- каких-либо оговорок – тогда-то и встанет в полной мере вопрос об акту-
ственностью разработчиков с большим воодушевлением, и проект начал альности проекта Jakarta. Некоторые видят перспективу дальнейшего
быстро развиваться. Как известно, существуют три основные Java-плат- развития данного проекта в более эффективной реализации технологий
формы: Standard Edition (SE), Enterprise Edition и Mobile Edition. Jakarta Java EE, чем в официальной версии. Однако пока до этого еще далеко.

44 Linux Format Ноябрь 2007


Многоликий Apache

Harmony
Web http://harmony.apache.org/
Если Jakarta – это Java EE, то целью проекта Apache Harmony явля- На субъективный взгляд автора, такое дублирование кода ираз-
ется реализация Java Standard Edition (SE). Поскольку большин- работчиков привело к тому, что эффективность обоих реализаций
ство проектов ASF так или иначе связано с технологиями Java, платформы Java SE заметно уступает официальной реализации,
Harmony является базовым проектом, так как призван обеспечить что, учитывая стремление Sun сделать Java достоянием обще-
основную функциональность альтернативной реализации Java- ственности, ставит под вопрос актуальность обоих проектов.
машины. Учитывая важность проекта, в нем принимают участие Harmony – самый скандальный проект, долгое время служив-
многие крупные компании, в том числе Intel и IBM. Тем не менее, ший яблоком раздора между ASF и Sun Microsystems. Последний
среди тех, на кого проект возлагал большие надежды, есть и конфликт произошел в апреле 2007 года – по поводу лицензионных
проигнорировавшие данное начинание. Пожалуй, самый силь- ограничений со стороны Sun на инструментарий Java Compatibility
ный удар по проекту был нанесен со стороны сообщества GNU, Kit (JCT), необходимый для проверки различных реализаций Java
которое отказалось объединить свои усилия с разработчиками SE на соответствие принятому стандарту.
Harmony, осуществляя самостоятельную разработку собственной Harmony еще рано называть полноценной версией Java SE,
версии открытой реализации Java-платформы под названием GNU поскольку в настоящее время реализованы не все классы (заяв-
Classpath. Основу разногласия составило взаимное несоответствие ленные 99% не позволяют использовать Harmony в качестве пол-
лицензий GNU и Apache. ноценной платформы).

Geronimo
Web http://geronimo.apache.org/
Если Tomcat – это сервлет-контейнер, то Apache Geronimo – полноцен-
ный сервер приложений. На момент написания статьи был доступен
релиз 2.0-M6, который успешно прошел сертификацию на совмести-
мость с официальной спецификацией Sun Java EE 5.0. Существуют две
модификации данного сервера приложений, отличающиеся друг от
друга используемым сервлет-контейнером: в одной из модификаций
это Tomcat, а в другой – Jetty. Кроме того, существует еще и облегчен-
ная версия сервера – Little G, которая поддерживает не все возможнос-
ти Java EE 5.0.
Свидетельством успеха проекта Apache Geronimo является тот факт,
что именно его компания IBM выбрала в качестве платформы для
своего сервера приложений IBM WebSphere Community Edition. Надо
сказать, что IBM не только использует плоды трудов сообщества, но и
активно делится с ним своими разработками. Так, недавно IBM переда- Консоль
ла сообществу разработчиков Apache Geronimo технологию миграции администрирования
с коммерческой версии JBoss Application Server на сервер приложений Geronimo с web-
Geronimo. интерфейсом.

Знаете ли вы...
...что широко популярное средство для фильтрации спама SpamAssassin тоже
является проектом верхнего уровня ASF?
Эффективность SpamAssassin достигается благодаря комплексному
подходу к борьбе со спамом, который обеспечивается тремя ключевыми
компонентами – оценочным демоном, транспортным агентом и базой
шаблонов писем. В качестве же основной (но не единственной) техноло-
гии распознавания спама здесь используется Байесовская фильтрация.

Ноябрь 2007 Linux Format 45


Многоликий Apache

Tomcat
Web http://tomcat.apache.org/

Один из тех проектов, которые всегда на слуху. Основное назначение из web-протоколов. В результате получается, что сервер приложений
Tomcat – это создание инфраструктуры, обеспечивающей выполнение должен быть «по совместительству» и web-сервером.
Java-сервлетов (LXF89) и страниц Java Server Pages или JSP (LXF90). Часто можно слышать, что Tomcat называют сервером приложе-
Как известно, сервлеты и JSP являются серверными Java-компонента- ний. Это не совсем верно, поскольку в рамках проекта разрабатывается
ми. Раз так, значит, должен быть сервер, способный работать с ними. только та его часть, которая обеспечивает обработку JSP и выполнение
Его называют сервером приложений. Поскольку основное предназна- сервлетов, а система, реализующая подобную функциональность без
чение серверных приложений заключается в обслуживании запросов HTTP-интерфейса, называется «сервлет-контейнером». Таким обра-
клиентов, а для взаимодействия с клиентскими системами использу- зом, Tomcat – это сервлет-контейнер. И только связку Tomcat с Apache
ются web-интерфейсы, то эти запросы должны поступать по одному httpd можно назвать сервером приложений.

Derby
Web http://db.apache.org/derby/

Проект Apache DB нацелен на развитие открытых технологий баз дан- ло двух мегабайт, включая JDBC-драйвер), что, в совокупности с кросс-
ных. Он достаточно обширен, поэтому для наиболее эффективного платформенностью, делает ее очень популярной среди разработчиков.
координирования его деятельности, Apache DB разделен на несколько В частности, поддерживаемый компанией Sun Microsystems сервер
дочерних проектов. Самым значимым из них является проект Derby. приложений с открытым исходным кодом GlassFish в качестве сервера
Это полноценная реляционная база данных с открытым исходным баз данных использует Derby.
кодом. Ее отличительной особенностью является то, что она целиком [В основе Derby лежит открытый исходный код СУБД Cloudscape,
написана на языке Java. Кроме того, Derby достаточно компактна (око- разработанной корпорацией IBM, – прим. ред.].

Struts
Web http://struts.apache.org/

И опять Java-технологии. Как видите, разработчики из сообщества В настоящее время ASF развивает две независимые ветки Struts –
Apache Software Foundation проявляют к ним очень большой интерес. 1.x и 2.x (WebWork 2). На момент написания статьи доступна версия
Какую же функциональность обеспечивает Struts? Это каркас, поз- 2.0.9, поддерживающая такие популярные в последнее время техноло-
воляющий создавать web-приложения, основанные на таком распро- гии, как SOAP, REST и AJAX.
страненном шаблоне проектирования, как Модель – Вид – Контроллер Кстати говоря, в прошлом Struts входил в состав проекта Jakarta,
(MVC). Кстати, будучи изначально ориентированным на Java-прило- однако в настоящее время это самостоятельный успешно развиваю-
жения, Struts, тем не менее, позволяет реализовать шаблон MVC и на щийся проект.
других языках программирования.
К сожалению, взаимная интеграция Struts и Java Server Faces – JSF
(наиболее популярной в последнее время технологии создания интер-
фейсов для web-приложений) пока оставляет желать лучшего. Но в то
же время динамика изменений обоих проектов в данном вопросе поз-
воляет смотреть в будущее с оптимизмом.
Название проекта, которое можно перевести как «опоры», «под-
порки», означает, что данный программный продукт обеспечивает
поддержку созданию профессиональных web-приложений. Еще мож-
но сказать, что это клей, связывающий отдельные Java-технологии в
законченный программный продукт.

46 Linux Format Ноябрь 2007


Многоликий Apache

ODE
Web http://ode.apache.org/
Apache ODE (Orchestration Director Engine – один из тех случаев, когда ODE. Данный проект относительно молод – статус TLP был ему присво-
смысл фразы понятен на интуитивном уровне, а ее перевод на русский ен 18 июля 2007 года.
язык представляет собой нетривиальную задачу) – это каркас, пред- В настоящее время наибольшее распространение получили две
назначенный для выполнения бизнес-процессов, описанных с помо- нотации BPEL: WS-BPEL 2.0 и BPEL4WS 1.1. ODE поддерживает их обе
щью WS-BPEL (Web Services – Business Process Execution Language), в полном объеме. Одной из особенностей ODE является поддержка
основанного на XML языка описания бизнес-процессов. Описанная с нескольких версий описаний бизнес-процессов с возможностью «горя-
помощью WS-BPEL логика бизнес-процесса может быть реализована чего» переключения между ними. Это делает ODE мощным инструмен-
в виде web-сервиса. Эта реализация предполагает наличие некоторого том моделирования и автоматизации бизнес-процессов в динамичной
инструмента, ее осуществляющего. В качестве такового и выступает и постоянно изменяющейся внешней среде современной экономики.

Ant
Web http://ant.apache.org/
В рамках проекта Apache Ant разрабатывается утилита автоматической Будучи написанным на языке Java, Ant является платформо-неза-
сборки программ из исходных текстов. Ant написан на языке Java. Для висимой утилитой. Для управления сборкой приложения используется
того, чтобы лучше понять назначение данной утилиты, можно обра- сценарий, выполненный в виде XML-файла. Для облегчения работы
титься к GNU make, так как Ant выполняет аналогичные функции, то программистов в Ant имеются шаблоны или интерфейсы для напи-
есть осуществляет сборку рабочей версии программного обеспечения сания заданий на языке Java. В настоящее время Ant содержит более
из отдельных компонентов (исходный код основных модулей, исполь- 150 task-интерфейсов.
зуемые библиотеки и так далее).

iBATIS
Web http://ibatis.apache.org/
Еще один проект, посвященный базам данных. iBATIS представляет
собой каркас, обеспечивающий их эффективное использование в про-
ектах Java и .NET. Он связывает объекты с хранимыми процедурами
или SQL-запросами с помощью XML дескрипторов. Три базовых поня-
тия, вокруг которых построен iBATIS – это объекты, SQL и XML.
iBATIS состоит из таких основных компонентов, как SQL Data
Mapper (обеспечивает простой и гибкий способ передачи данных меж-
ду приложениями Java и .NET) и Data Access Objects (абстрактный слой,
скрывающий детали реализации доступа к данным с помощью соб-
ственного простого API).
Текущая версия Apache iBATIS на момент написания статьи – 2.3.0.
По номеру версии программного продукта иногда можно судить о воз-
расте проекта. И действительно, iBATIS является зрелым не только в
смысле нумерации – в июле этого года ему исполнилось пять лет. Интерфейсы доступа к данным, предоставляемые iBatis.

Apache Software Foundation Apache License


Apache Software Foundation (ASF) – это некоммерческая организация, Лицензия Apache является одной из наиболее либеральных. Она разреша-
основная задача которой заключаются в поддержке различных проектов ет распространять программные продукты не только в виде открытых
по созданию программного обеспечения. Годом рождения ASF считается исходных текстов, но и в двоичном. Еще одна особенность – требование
1999. Штаб-квартира находится в штате Делавэр, США. Фонд обеспечивает передачи вместе с правами на программный продукт и всех прав на
юридическую поддержку для открытых проектов, а также осуществляет использование всех соответствующих патентов.
защиту товарного знака Apache.

Ноябрь 2007 Linux Format 47


Многоликий Apache

MyFaces
Web http://myfaces.apache.org/
MyFaces относится к тем проектам, возникновение которых было обусловлено С технической стороны это один из наиболее сложных проектов. В связи с этим
политикой компании Sun в отношении Java-технологий. В то время как будущее он состоит из нескольких подпроектов, основными из которых являются MyFaces
некоторых проектов после открытия исходных кодов большей части платформ API и MyFaces Implementation.
Java SE, EE и ME находится под вопросом, некоторые проекты смогли обеспечить Кроме основного ядра проект MyFaces предусматривает создание расширений,
уровень функциональности, не только не уступающий, но и превосходящий офици- делающих функциональность MyFaces более богатой. Среди последних наиболь-
альные реализации Sun Microsystems. Одним из таких удачных решений является шее распространение получили Tomahawk, Tobago и Trinidad. На момент написания
MyFaces – альтернативная реализация спецификации Java Server Faces (JSF). статьи доступна версия MyFaces Core 1.2.0.

Axis
Web http://ws.apache.org/axis/

Одной из наиболее очевидных тенденций в развитии технологий уровня пред-


приятия является построение информационных систем на основе сервисно-
ориентированной архитектуры. Реализация данной архитектуры предполагает
использование в качестве протокола взаимодействия сервисов SOAP (Simple
Objects Access Protocol – простой протокол доступа к объектам). Apache Axis – это
SOAP-каркас, соответствующий официальной спецификации данного протокола.
В качестве интерфейса для доступа к объектам в Axis используется технология
JAX-RPC.
Продолжая рассматривать последние тенденции, нельзя не обратить внимание
на смещение акцента в web-разработках от SOAP к REST. Разработчики проекта
Apache Axis держат руку на пульсе, и последние версии Axis поддерживают как
SOAP, так и REST.
Кроме того, что Axis реализует функции SOAP-движка, это еще и набор инстру-
ментов для разработки web-сервисов. Среди них наиболее значимыми являются
SAX – синтаксический анализатор, генератор Java-классов на основе WSDL-описа-
ния, монитор TCP/IP пакетов.
Архитектура Axis.

OpenEJB Maven
Web http://openejb.org/ Web http://maven.apache.org/

В рамках проекта OpenEJB сообщество разработчиков создает открытую реализа- Maven является одним из наиболее значимых проектов Apache Software Foundation,
цию контейнера Enterprise Java Beans (EJB) и сервера EJB. Разрабатываемый лег- получившим широкое распространение и признание крупнейших разработчиков
ковесный EJB-сервер обеспечивает как локальный, так и удаленный доступ к EJB- программного обеспечения. Его основное назначение – управление программным
объектам. Используя OpenEJB, можно разворачивать EJB компоненты в соответс- кодом, то есть то, без чего немыслим ни один крупный проект. В частности, Maven
твующем контейнере и оперативно управлять их поведением с помощью различных используется в GlassFish, насчитывающем более миллиона строк.
инструментов, включая традиционную командную строку. Излишне говорить, что все проекты, входящие в состав ASF, использу-
OpenEJB – один из самых молодых проектов ASF, вышедший из инкубатора в ют для управления своим кодом Maven и доступны через соответствующие
феврале 2007 года. Однако, несмотря на столь юный возраст проекта, на момент Maven-репозитории.
написания статьи уже была доступна версия OpenEJB 3.0, соответствующая специ- Вот неполный перечень основных возможностей Maven: автоматическое доку-
фикации JavaBeans 3.0. ментирование внесенных в проект изменений, поддержка взаимного пересечения
проектов, поддержка списков рассылки, поддержка списка зависимостей, докумен-
тирование Unit-тестов.

48 Linux Format Ноябрь 2007


Многоликий Apache

Итого
Ну, на сегодня, пожалуй, хватит. Конечно, мы рассмотрели не все проекты, находя- лее интересные проекты, находящиеся под патронажем Apache Software Foundation.
щиеся под патронажем Apache Software Foundation, а кое в чем были весьма повер- Однако если вас заинтересовал какой-либо из проектов, вы всегда можете полу-
хностны – всему виной конечная толщина журнала. Итак, мы рассмотрели наибо- чить по нему самую исчерпывающую информацию на домашней странице. LXF

А также...
ActiveMQ – менеджер сообщений, отвечающий стандарту JMS
(Java Messages Service).

Xalan – XSLT-процессор для преобразования XML в другие


форматы.

Xerces – наиболее эффективный анализатор XML с открытым исходным кодом.

Tapestry – каркас для создания динамических страниц на основе


HTML-шаблонов и XML.

Gump – инструмент отслеживания изменений в программных проектах Динамика популярности некоторых проектов по версии Google
и автоматизации регулярных сборок. Trends (голубой – Tomcat, красный – Ant, желтый – Jakarta,
OfBiz – система управления предприятием (ERP) с открытым исходным кодом. Включает зеленый – Geronimo, синий – Axis).
такие модули, как ERP, CRM, E-Commerce, SCM, MRP, CMMS/EAM.

Ноябрь 2007 Linux Format 49


История успеха

Free Software для


спецоператора
Специализированный оператор связи ООО «Петрокрипт» использует для работы свободное ПО
уже не первый год, и начальник его ИТ-отдела Павел Валентинович Филатов точно знает, что
значит перевести на Linux компанию, обслуживающую 5000 хозяйствующих субъектов.

Е
сли уж где и считают деньги, то в бизнесе. Так уж получа- Евгений М. Балдин, LXF: Чем занимается ваша компания?
ется, что в конкурентной экономике выживает самый при- Павел В. Филатов: Мы являемся Специализированным Оператором
способленный. И если бизнес начинает выбирать свободное Связи по предоставлению услуг сдачи отчетности хозяйствующи-
программное обеспечение для своих целей – значит, что-то ми субъектами в контролирующие органы (ФНС, ПФ, Росстат). Наша
в этом есть. деятельность строго ограничена рамками законодательства и лицензи-
Павел Валентинович Филатов – начальник отдела IT в ООО руется ФСБ и Министерством связи.
«Петрокрипт». Заинтересовался GNU/Linux в самом конце девянос- Компания работает в Республике Карелия, Мурманской и Псковской
тых годов. Узнал об «ОС для настоящих мужчин» (UNIX) когда начал областях и предоставляет сервис примерно 5 000 предприятий. Также
активно пользоваться Интернетом. Из чисто академического интереса мы распространяем и обслуживаем сертифицированные средства
(Павел имеет физико-техническое образование) решил установить и криптозащиты и системы электронного документооборота.
попробовать. С тех пор не только пробует, но и приспосабливает для
Начальник отдела. решения насущных задач. LXF: Сколько людей в ней работает? Какой процент из них непо-
средственно сталкивается в своей деятельности с открытыми
продуктами?
ПВФ: В нашей компании около 20 человек. С продуктами с откры-
тым исходным кодом в той или иной мере работают все сотрудники
компании.

LXF: Почему вы начали переход на GNU/Linux, ведь налоговая система


давно и традиционно завязана на технологии Microsoft?
ПВФ: Наша компания предоставляет сервис на технологии «Контур-
Экстерн» (ЗАО «ПФ СКБ Контур», (http://www.kontur-extern.ru/), кото-
рая завязана именно на платформу Microsoft Windows. Но в своей
собственной работе мы активно используем продукты с открытым
исходным кодом.
Изначально переход на Open Source не планировался – все происхо-
дило постепенно. Исторически так сложилось, что сетевая инфраструк-
тура была основана на FOSS: GNU/Linux, Samba, Postfix, Squid, Apache,
MySQL, Bind – все это давно всем знакомо.
По моему мнению, само по себе ПО никого не интересует, интерес-
ны сервисы, которые можно предоставить пользователям на нем.

LXF: Как проходил сам переход?


ПВФ: Когда компания стала активно развиваться, появилось множество
командировок, и первое, что потребовалось – это web-интерфейс к почте
и средство групповой работы или groupware. Так была внедрена система
с открытым исходным кодом Horde (http://www.horde.org).
Далее, в 2005 или 2006 году, в браузере Internet Explorer были в
очередной раз обнаружены целые «пачки» критических уязвимостей,
которые некоторое время не исправлялись производителем. Было
принято решение заблокировать на прокси-сервере выход в Интернет
с IE (кроме некоторых доверенных сайтов), и всем пользователям был
установлен Mozilla Firefox. С тех пор так и осталось – всех устраивает.
Следующим толчком к переходу на FOSS был дальнейший рост ком-
пании. Стало больше менеджеров и инженеров поддержки, и появи-
лась проблема совместной работы и управления взаимоотношениями
с клиентами, то есть потребовался CRM. Это место занял также про-
дукт с открытым исходным кодом SugarCRM (http://www.sugarcrm.com),

50 Linux Format Ноябрь 2007


История успеха

на который в данный момент легла львиная доля организации работы


компании: от первого звонка клиенту до дальнейший технической под-
держки, отслеживание ошибок (bugtraq), планирование собственной
деятельности. SugarCRM – это CRM с web-интерфейсом [цикл статей о
SugarCRM публиковался в номерах LXF90–92, – прим. ред.].
Для совместного ведения документации было установлено также
средство с web-интерфейсом и открытым исходным кодом DokuWiki
(http://wiki.splitbrain.org).
Ну а средством сетевого общения стал Jabber в лице открытого
ejabberd (http://ejabberd.jabber.ru/) со шлюзом в ICQ. В 2006 году Microsoft
начала в регионе широкую кампанию по лицензированию своих продук-
тов. Было принято решение часть рабочих мест лицензировать, а часть
перевести на GNU/Linux, так как пользователям из-за внедренных ранее
сервисов стало фактически все равно, под какой ОС запускать браузер.
Нам показалось разумным перевести большинство пользователей на
работу с терминальными серверами и бездисковыми рабочими станция-
ми. Причем, тех пользователей, которым не требуется специфичного для
Windows ПО – на терминальный сервер GNU/Linux. Клиент для бездис-
ковой загрузки был подготовлен с помощью специального дистрибутива
Linux – Thinstation (http://thinstation.sourceforge.net). Таким образом, мы
получили систему, в которой можем быстро и дешево развернуть Linux
на большое количество клиентских персональных компьютеров.
Саму миграцию на бездисковые клиенты совершили просто и быс- А из сложностей можно выделить следующие: Менеджеры
тро: однажды вечером сняли со всех ПК жесткие диски и настроили Подключение принтеров – изначально принтеры были подключены за работой.
загрузку по PXE. напрямую к ПК пользователей, пришлось перейти на работу с принт-
серверами. Это само по себе более правильное решение, чем работа
LXF: Сколько времени заняло обучение пользователей? напрямую с ПК независимо от миграции на GNU/Linux.
ПВФ: Как ни странно, на первичное обучение пользователей ушло не Выбор оконного менеджера – у каждого пользователя GNU/Linux
больше часа. Все, что нужно было показать, это вход в систему, рас- свои предпочтения, и нужно было выбрать легкий и простой менеджер,
положение ярлыков и основные отличия OpenOffice.org от MS Office. И к которому легко могли бы привыкнуть пользователи Windows. Выбор
все это при том, что пользователи, в основном менеджеры, не имеют пал на среду Gnome, как на «красивую и легкую» (хотя я сам мно-
специального IT-образования го лет пользуюсь Window Maker).
Естественно, при использовании GNU/Linux у пользователей появ-
лялись вопросы, которые решались по ходу работы. Например, не раз LXF: Какие работы по переходу еще не закончены? Обратная связь
пришлось объяснять, что контрагентам не нужно высылать договора ПВФ: В данный момент осуществляется переход остав-
У вас есть своя история успеха
или коммерческие предложения в формате OpenDocument. шихся Windows-пользователей на терминальный сер-
и вы готовы поделиться ею
вер Windows, так как существует ряд продуктов (напри- с читателями LXF?
LXF: Неужели все прошло абсолютно гладко? мер, бухгалтерское, банковское ПО, ПО для сдачи отчет- Напишите нам об этом
ПВФ: Недовольные, конечно, были, так как с миграцией на бездис- ности), которые работают только в этой среде. В идеале по адресу
ковые ПК и Linux, некоторые пользователи потеряли некоторую часть в компании должно работать всего два терминальных info@linuxformat.ru!
«свободы», но эти проблемы были решены руководством в админис- сервера и необходимый минимум отдельных ПК.
тративном порядке.
LXF: Как к возможности использовать FOSS-программы
LXF: Ну и, если уж упомянули, что из себя представляет список основ- отнеслась дирекция?
ных отличий OpenOffice.org от MS Office? ПВФ: Нормально относится, ведь переход был ей и санкци-
ПВФ: Основной минус OpenOffice – это пожирание ОЗУ в неограничен- онирован [улыбается]. Сама же дирекция хоть и использует
ном количестве: чем больше памяти на сервере, тем лучше. Конечно, ОС MS Windows, но активно пользуется FOSS-сервисами:
при современной стоимости ОЗУ это не так болезненно, но все же почта – Horde, CRM – SugarCRM, обмен быстрыми сообще-
неприятно терять 100 МБ на пользователя при открытии довольно про- ниями – jabber и «живая документация» – wiki.
стого документа.
А пользователям пришлось объяснить отличия в меню и диалого- LXF: Можете ли Вы оценить, насколько проще стало рабо-
вых окнах. Сами пользователи сейчас заявляют, что для них практичес- тать относительно периода до и после перехода?
ки нет никакой разницы. ПВФ: Естественно, IT-отделу стало проще. Централизован-
ная система из терминальных серверов управляется
LXF: Какой дистрибутив использовался в качестве основного? намного легче, чем зоопарк ПК. Пользователям, я думаю
ПВФ: Исторически мы в компании работаем с SUSE. И для терминаль- тоже стало проще, так как в том графическом окружении,
ного сервера был выбран OpenSUSE 10.1. Разработку, внедрение и которое у них настроено, все фокусируется на предметной
поддержку осуществляем собственными силами. Для IT-отдела это не области, а не на особенностях работы ОС.
составляет большого труда, так как все инженеры знают GNU/Linux – у
нас это большое преимущество при приеме к нам на работу. LXF: Что бы вы пожелали сообществу FOSS от себя
лично?
LXF: В чем были основные сложности перехода? ПВФ: Не быть фанатиками: «где Linux хорошо, там Windows
ПВФ: Сам переход оказался на удивление несложным: видимо, это смерть», и наоборот. Используйте в каждом продукте его
связано с тем, что мы долго и планомерно внедряли web-сервисы у сильные стороны.
себя в компании, и в конечном итоге оказалось, что выбор ОС не столь FOSS-решения выгодно продавать. ПО не стоит ниче-
важен. А если это так, зачем платить больше? го – поддержка «наше все». LXF

Ноябрь 2007 Linux Format 51


LXF Интервью Dell

Выработка
идеи: Dell
Новые компьютеры Dell потребительского
класса с установленным Linux –серьезный шаг
вперед в области настольных систем для сооб-
щества Open Source. Как возникла эта идея и с
какими сложностями сталкивается компания?

Мы долго ждали, когда же известный производитель


настольных ПК начнет устанавливать Linux. Попытки дела-
лись – с переменным успехом – множеством фирм помень-
Интервью
ше, но со стороны крупных компаний до сих пор подобных
действий не наблюдалось – до тех пор, пока Dell не объ-
явила о выпуске линейки настольных ПК и ноутбуков с
установленным Ubuntu Linux. Изначально эти компьютеры
предназначались только для США, но теперь Dell заявила, что ряд этих систем с
Ubuntu будет доступен и в Великобритании.
На LinuxWorld 2007 в Сан-Франциско Майк Сондерс [Mike Saunders] встретился
с Мэттом Домшем [Matt Domsch], стратегом по Linux-технологиям в Dell, и с Джуди
Чейвис [Judy Chavis], директором по программным решениям. Мэтт – крутой спец
по Linux, который работает с ним «целый день и каждый день» и ведет web-стра- ти – понятие, означающее место для интеллектуальных упражнений, имеющих
ницу с интересными новостями Linux, имеющими отношение к Dell, на www.domsch. мало общего с реальностью, – прим. пер.] – очень многие принимали участие в
com/linux. До перехода в Dell Джуди Чейвис была всемирным директором по Linux этой работе: инженеры, маркетологи, разработчики, все вместе.
в HP. Так что у них солидный опыт деятельности на арене Linux, однако смогут ли
они сделать так, чтобы Linux заработал для масс? LXF: Выходит, выбор Ubuntu был подсказан Идейным штурмом?
ДжЧ: Да, голосованием. Идея заключается в том, чтобы вкладывать деньги в то,
Linux Format: Что подтолкнуло к решению начать установку Linux на некоторых что сможет вас прокормить. Это была идея номер один, мы будем устанавливать
компьютерах Dell? его, и нам бы хотелось, чтобы вы начали приобретать машины именно с этим
Джуди Чейвис: Это не первый случай, когда Dell устанавливает Linux на настоль- конкретным дистрибутивом!
ные платофрмы. Мы это уже делали в 2000 г.; я бы сказала, что рынок тогда был
к этому не готов, и мы прекратили [выпуск]. А начали снова благодаря отзывам, LXF: С какими техническими сложностями вы столкнулись?
полученным от сообщества через наш web-сайт IdeaStorm [идейный штурм, – прим. Мэтт Домш: Первое, что нам пришлось сделать – это выяснить, какие плат-
пер.]. Проголосовало более 100 000 человек, и буквально идея номер один, порож- формы мы хотим предлагать нашим потребителям. Мы хотели предлагать по
денная этим идейным штурмом, была такой: нам нужен предустановленный Linux. крайней мере один ноутбук и один настольный ПК – фактически, мы могли изна-
Мы подумали – ну ладно, копнём поглубже. И по мере новых обращений к сооб- чально предлагать две, а сейчас мы добавили еще парочку. Насчет драйверов
ществу в поисках ответов, нам сказали: «Нужно, чтобы вы установили нам Linux на устройств – любой из последних дистрибутивов может работать практически с
настольные ПК». Мы копнули еще глубже – а какой именно из дистрибутивов Linux? любым оборудованием. Так что это не проблема, но вот по части беспроводных
Их возникло множество – Ubuntu, SLED, Fedora – и именно сообщество помогло сетевых карт, видео, встроенных в ноутбуки модемов… У нас очень твердая
нам принять решение. Идейный штурм Dell был детищем Майкла Делла [Michael позиция по драйверам с открытым кодом, и наши [наработки] теперь вошли в
Dell], его суть – в том, чтобы обращаться к нашим клиентам и прислушиваться к русло kernel.org, и естественным образом появились в дистрибутивах. Мы нача-
их мнениям, и они служат для нас лоцией в этих водах. Раньше мы скакали по уха- ли это делать еще в 1999, когда поставили Linux на сервер, и с той же скоро-
бам – не прислушивались к нашим клиентам, а просто выпускали себе продукт. А стью продвигаемся в направлении настольных ПК и ноутбуков с Ubuntu. Когда
нужно оглянуться и прислушаться, и задуматься над тем, что они говорят. Следует мы только начинали работать с ним [Ubuntu], Feisty был почти готов, поэтому
ли нам распространить опыт повсеместно, на все наши ПК? Нет, лучше выбрать наш шанс на внесение изменений был весьма невелик: разве что буквально пара
парочку платформ – и это решение нам тоже помогло принять сообщество. Так что штрихов в последнюю минуту. Но отличной новостью стало то, что почти все
не я одна сидела в башне из слоновой кости [Ivory Tower – Башня из слоновой кос- заработало, и не пришлось ничего особо менять.

52 Linux Format Ноябрь 2007


Dell LXF Интервью

ПРО НОУТБУКИ С УСТАНОВЛЕННЫМ LINUX:


«Отличной новостью стало
то, что почти все
заработало, и не пришлось
ничего особо менять.»

Photography: Jena Cumbo


Ноябрь 2007 Linux Format 53
LXF Интервью Dell

LXF: А не пришлось ли отказываться от какого-то оборудования?


МД: Нет – мы специально выбирали платформы с Intel аудио или Intel видео, или
графикой Nvidia, так как знали, что для них имеется хорошая поддержка. Мы весь-
ма тщательно выбирали беспроводной адаптер для ноутбуков, чтобы загодя обес-
печить ему хорошую поддержку. Ну да, мы предпочли одно оборудование другому,
но мы ведь и так уже предлагали все это, так что совершенно нового оборудования
нам выбирать не пришлось.

LXF: Зайдя на сайт Dell, можно «подтянуть» Linux-компьютер перед покупкой –


например, выбрать принтер. И для любого оборудования имеется поддержка?
МД: Нет, только не для принтеров; будут работать лишь немногие профессиональ-
ные принтеры, снабженные движком PostScript. На данный момент у нас нет драй-
веров под Linux для большинства струйных принтеров. Мы обсуждаем, как с этим
справиться, но на данный момент нам нечего предложить.

LXF: Ну, а как продвигаются дела с поддержкой? Увеличивается ли количество


запросов на поддержку? Я использую Linux целый день и каждый день, и у меня все идет отлично. Но если
ДжЧ: Большого напряжения с поддержкой не было, и одним из вопросов, которые есть приложения, которые просто не могут идти под Linux, или если вы – настоящий
мы задавали сообществу, был: в какой форме нужна поддержка? И они сказали: геймер, и желаете играть в самые новейшие игры… У каждого свой ответ на этот
через форумы, через блоги, поэтому мы и добавляем это все в структуру поддерж- вопрос. Но по большей части клиенты, с которыми мы общались, которые выбрали
ки. Вам не придется звонить в Dell и не придется платить ни копейки – для поддерж- новые системы Ubuntu... Я как-то столкнулся с одним в метро. Он увидел мою фут-
ки существуют форумы сообщества. болку и сказал: «Эй, а я себе тоже такой купил. Мне очень нравится – он работает,
МД: На сайте linux.dell.com – это инженерный сайт Linux – мы добавили wiki и раз- и делает все, что мне нужно».
местили множество технической информации по платформам. У нас есть данные ДжЧ: Нынешняя ситуация по настольным ПК должна созреть. На серверных плат-
lspci [по оборудованию] – очень подробные спецификации по каждой платфор- формах, она уже созрела. Судя по отзывам, которые я слышала в Dell, а также
ме. У нас есть детальная информация по всем необходимым драйверам, и о том, от некоторых наших основных клиентов, сейчас не существует таких критически
как добавлять видеодрайверы из репо- важных приложений, которые нельзя
зитория Ubuntu. Мы хотим предельно ПРО ИДЕЙНЫЙ ШТУРМ И СООБЩЕСТВО: было бы запустить под Linux. Базы
ясно показать, что Dell не занимался данных Oracle, SAP – все это в полной
добавлением секретных компонентов в «Мы скакали по ухабам – мере представлено там. Linux сейчас
свое предложение, чтобы заставить его подросток, он взрослеет; в том, что
работать. Это скорее «три шага, что- не прислушивались к касается сервера, он уже весьма зре-
бы заставить работающее практически
полностью работать отлично».
нашим клиентам, а просто лый. Несколько лет назад я была на
LinuxWorld, там были Энн Ливермор
выпускали себе продукт.» [Ann Livermore] [HP] и наш технический
LXF: Вы не предусматриваете появле- директор Кевин Кеттлер [Kevin Kettler].
ние дистрибутива Dell Linux? Теперь у нас солидные корпоративные клиенты, а вот когда я там была лет 10–12
МД: Абсолютно нет. Это ужасно огромная работа. назад, чтобы вас завлечь, приглашали дамочек в ярко-розовых мини-бикини.
ДжЧ: Мы не занимаемся программами; наш бизнес – партнерство, и мы предо- А теперь Linux играет совершенно в другую игру – он теперь используется на
ставляем самим дистрибьюторам решать, что включать в распространяемый нами стороне сервера. Что до настольных ПК… Моему сыну 17 лет. И в его колледже
продукт. Никакого дистрибутива Dell Linux в ближайшем будущем на горизонте не по-прежнему пользуются PowerPoint. Но он уже пишет код на Linux, а школам и
появится. университетам только дайте время.

LXF: Если вы ограничитесь одним дистрибутивом, не повредит ли это продажам? LXF: Кто, по-вашему, является типичным покупателем ваших Linux-систем?
ДжЧ: Уже несколько лет на наших настольных ПК бизнес-уровня сертифициро- ДжЧ: Люди, приобретающие второй ПК. Они должны чувствовать себя комфортно.
ваны SLED и Novell Linux Desktop. А Ubuntu просто... просто уж очень много было Моему младшему сыну 13, и он даже не прикасался к Linux. Ему приходится созда-
крика: «Нам нужна заводская установка этого дистрибутива». Dell вовсе не против вать документы MS Word, электронные таблицы для школы и все такое. Его старший
всех остальных. А вот у вас какой дистрибутив? брат, который знает Windows, как свои пять пальцев, без проблем устанавливает
Ubuntu и пользуется им. Так что я считаю, что это – энтузиаст, пользователь с двумя
LXF: Да, верно, Ubuntu! Ну, модифицированная версия... Но некоторые весьма рьяно ПК, который отлично в них разбирается. Среднестатистические мама и папа, которые
ратуют за свой дистрибутив... обращаются в Best Buy [онлайн-магазин электроники, – прим. пер.] или Fry’s [сеть
МД: И снова все возвращается к нашей стратегии по поводу драйверов устройств. магазинов электроники со штаб-квартирой в Кремниевой Долине, – прим. пер.], или
Если драйверы переданы kernel.org, нам все равно, какой дистрибутив ставить. еще куда-то, им незачем бросаться на Linux, чтобы принимать электронную почту или
Хотите – используйте Fedora, или SLED, или Ubuntu, или Gentoo, это неважно, пото- создавать простые документы. Они уже слышали о нем – это уже не чуждо – но все
му что они все будут в [основном] ядре, и каждому дистрибутиву достанется своя же требуется время, чтобы начать чувствовать себя комфортно при работе с ним.
часть в свое время. И если что-то не работает сегодня, подождите пару недель, пока
не появится следующий пробный релиз вашего дистрибутива, познакомьтесь с ним LXF: Циники могли бы предположить, что некоторые покупают машину, выкашива-
и посмотрите – может быть, заработает. Так что мы выбрали для заводской уста- ют Linux и ставят вместо него Windows...
новки один дистрибутив, но он будет играть по всей доске. ДжЧ: И такое тоже бывает. У нас есть платформа ‘n Series’, там вообще нет опера-
ционной системы, ее могут купить те, кому никакая ОС не нужна.
LXF: Если смотреть вперед, это большое достижение для Linux в области настоль-
ных систем. Но не кажется ли вам, что имеются некие помехи – например, отсут- LXF: И когда же мы увидим в ваших рекламных проспектах «Dell рекомендует
ствие единого, унифицированного рабочего стола? Что является необходимым? Ubuntu Linux»? Строчку «рекомендует Windows XP» мы видели...
МД: Это же все – инструменты: компьютер – это инструмент, и операционная ДжЧ: Обычные деловые взаимоотношения. Я уверена, что как только мы сделаем
система – тоже инструмент. Если у кого-то есть проблемы, которые он не может что-то с Ubuntu, такая строчка тоже появится. Не вижу причин, почему бы этому не
решить с помощью Linux... ну, я даже не знаю, что это за проблемы, честно говоря! произойти. LXF

54 Linux Format November 2007


3D modelling tool Reviews

Учебники
Наши эксперты помогут вам с любым приложением Linux

В этом выпуске...
ЕВГЕНИЙ БАЛДИН
56 Подстройка Gnome 90 Справочник контрагентов
Начинал с Агатов. Когда- Многие из нас любят Gnome за простоту, Андрей Паскаль покажет, как создать
то даже знал, что такое но только Энди Ченнел знает, как много средствами Ананаса CRUD-приложение –
Робик. можно получить благодаря малым а заодно объяснит, что это такое.
подстройкам.

Пришло время для 90 Подпорка для Java


60 Архивирование из терминала Чем меньше нажатий на клавиши – тем
свободных объектов При нехватке места на жестком диске дольше не ломается клавиатура.
или необходимости передать большой Александр Бабаев представляет каркас
творчества? файл через web, Рэйчел Проберт научит Struts, экономящий достаточно кликов
вас искусству архивирования. для хорошего матча в Тетрис.
Не единым кодом жив человек.
62 Mono и Unix 90 wxWidgets
Автоцитата из колонки годичной дав-
.NET имеет встроенные функции для Этот инструментарий часто теряется в
ности, посвященной сайту Free!Music.
всех задач, но вы можете тени Qt и GTK+, хотя умеет ничуть не
воспользоваться и старыми Unix- меньше. Андрей Боровский готов

П
ортал Jamendo (http://www.jamendo.
эквивалентами. Пол Хадсон покажет, раскрыть его потенциал.
com/ru/), специализирующийся как.
на распространении музыки без 90 Perl плюс C++
авторских отчислений, недавно отрапортовал 62 KDE & DCOP Объединив Perl и C++, вы откроете для
о преодолении рубежа в 5000 доступных для Конечно, бородатые хакеры и изящное своих скриптов новые горизонты – а
искусство (если не считать таковым Вадим Лихота объяснит все детали этого
скачивания альбомов. Музыка, предоставля-
aalib) – вещи несовместные, но Дэвид процесса.
емая для прослушивания всем желающим, Фили намерен изменить это раз
доступна под различными лицензиями Creative и навсегда. 90 Чистим домашний DVD
Commons (http://www.creativecommons.org/). Нет, это вовсе не про уход за бытовой
Тех, кто ожидает найти там исходники 68 Чиним сеть техникой! Алексей Маслий улучшит
У вас проблемы с сетью, Google, любительскую DVD-запись «на месте»,
любой понравившейся мелодии, ожидает
соответственно, недоступен, и вы не затрагивая меню и компоновку диска.
разочарование. И дело даже не в неоднознач- чувствуете себя покинутыми? Д-р Крис
ности лицензий CC, за которую FSF их спра- Браун излечит вас от всех болезней
ведливо критикует, а в принципиальных раз- сразу!
личиях в общепринятой модели создания
программ и других объектов творчества.
72 Виртуализация
Джек Найт приглашает вас
Картины, книги, музыка – это, как правило, в увлекательное путешествие
продукты либо сугубо индивидуальные, либо в таинственный мир компьютеров,
созданные очень ограниченным кругом соав- которые не существуют – ведь они
торов и в дальнейшем фактически не меняю- полностью виртуальны.

щиеся. Модель создания произведений, когда


существует какая-то основа, которая со вре-
менем улучшается сообществом, пока не
Совет месяца: Воскрешение Лазаря
работает, но нет никаких причин, чтобы так
Мало что сравнится с ужасом, который вы испытываете, сделать. Эти диски лопаются от утилит, помогающих вос-
продолжалось вечно.
увидев сообщение вроде кресить безвременно почивший винчестер, многие из
Если мелодия распространяется, например, No usable partitions/No OS found которых превосходят по функциональности коммерческие
под лицензией CC-BY-SA (атрибутивная с при включении вашего ПК. Через пару секунд вы пони- аналоги. Первое, что необходимо сделать – смонтировать
разрешением распространять и модифициро- маете: ваш жесткий диск отказал или вот-вот откажет, и потерянный диск из LiveCD.
вать при условии сохранения данной лицен- операционная система больше не загружается. Причин
зии на произведение – действительно свобод- случившегося может быть множество, и разнятся они по
ная лицензия от Creative Commons), то её степени опасности, которой подвергаются ваши бесцен-
PCLinuxOS спешит на помощь!
Мы рекомендуем PCLinuxOS (LXF95): по нашему мне-
можно использовать для «озвучки» своего ные данные. Поломка жесткого диска с большой вероят-
нию, он лучший в деле монтирования заблудших разде-
свободного мультфильма или игры. Этот спо- ностью означает, что вы потеряете все, но, может статься,
лов, способный работать и с Windows NTFS. PCLinuxOS
причина кроется в загрузчике или неудачной установке
соб создания объектов творчества не заменит автоматически определяет разделы и помещает для них
вашего последнего дистрибутива. Тогда данные могут
традиционных индивидуалистов, но, возмож- пиктограммы на рабочий стол. С их помощью вы можете
быть в целости и сохранности, но как их добыть? Те, кто
но, станет одним из технически совершенных перенести свои данные в безопасное место. Если и это не
регулярно делают резервные копии, могут самодовольно
методов для создания «Произведений с боль- работает, откройте root-терминал и наберите команду
улыбнуться и просто восстановить все «как было». Но,
шой буквы», быть автором которого – честь testdisk. Testdisk – одна из незаслуженно забытых утилит
думается, большинство так никогда и не собирается заре-
для любого из создателей. Linux, действительно способная обернуть поражение в
зервировать информацию, на сбор которой ушла добрая
победу. Она идеально справляется с восстановлением
половина жизни. Поэтому, если вам ни разу не приходи-
E.M.Baldin@inp.nsk.su лось использовать LiveCD, то сейчас самое время это
MBR и сама перестраивает таблицу разделов.

Октябрь 2007 Linux Format 55


Первые
Учебник Первыешаги
шаги Советы для тех, кто
только начинает знакомиться с Linux

Первые шаги: Как


Надоел коричневый в Ubuntu или пузырчато-голубой в Fedora? Энди Ченнел готов
причесать ваш рабочий стол и перестроить вашу зрительную память...
Дух экрана
Наиболее очевидный элемент, который мы можем изменить на рабо-
чем столе – это сам рабочий стол. Начнем с удаления фонового изобра-
жения. Хоть это и старомодно, пара доводов в пользу отказа от изобра-
жений имеется. Во-первых, при необходимости сконцентрироваться на
определенной задаче любые отвлекающие факторы могут раздражать,
и психологически позитивный голубой оттенок фона будет лучшим
выбором. Что важнее, на старой или маломощной машине, тем более
не обремененной избытком памяти, ликвидация фонового изображе-
ния способна увеличить производительность. Для реализации этого
плана, щелкните правой кнопкой мыши где-нибудь в пустом месте
рабочего стола и выберите Изменить фон рабочего стола. Появится
диалоговое окно со списком доступных фоновых изображений – в
Ubuntu их штук пять, вызывающе-коричневого цвета – но верхняя
опция, а ее-то мы и выберем, это Без обоев. После такого выбора рабо-
чий стол «побуреет», и тут мы можем сменить цвет, через раздел Цвета
рабочего стола. Стандартный выбор – Сплошной цвет, но можно также
применить горизонтальный или вертикальный градиент, их настройку
определяют два цветных прямоугольника. Плавный переход к затемне-
нию внизу вполне пригоден, но стоит также помнить, что темный фон
требует меньше энергии и потому полезен, с учетом ограниченности
жизни батарей ноутбуков.
Раз уж мы занялись цветами, для глаз будет также приятно изме-

Н
есложный подсчет показывает, что многие из нас дольше нить цвета панелей Gnome – это экранные элементы, обычно располо-
глядят на монитор своего компьютера, чем на супругов или женные вверху и внизу дисплея; они содержат часы, меню приложений,
отпрысков, поэтому стоит позаботиться, чтобы это зрелище ярлыки и т.д. Далее мы займемся их опциями, но для простого изме-
радовало глаз. Это и есть разумное объяснение тому, что люди по нения цвета панели просто щелкните на ней правой кнопкой мыши и
незнанию зовут «украшательством». Мы рассмотрим несколько спо- выберите Свойства. На вкладке Фон, выберите Заливка цветом, а затем
собов свести рабочий стол Gnome и приложения, сделав их приятнее используйте кнопки для выбора желаемого цвета панели. Вы можете
Наш на вид и легче в использовании. Настроим также хранитель экрана: даже сделать ее прозрачной, что полезно, если у вас действительно
эксперт пусть в перерывах напоминает вам, как выглядят члены вашей семьи. крутая фоновая картинка, или использовать фоновое изображение для
Энди Ченнел Работать мы будем с последней стабильной версией Ubuntu, но через
Энди делает свои
первые шаги в Linux стандартные инструменты Gnome, так что любой основанный на
уже шесть лет, Gnome дистрибутив даст тот же эффект. Начнем с крупных измене-
а технологиями ний, а потом углубимся в более тонкие настройки.
интересуется еще
со времен Dragon 32 Две другие основные настольные ОС, похоже, не горят желанием
позволить пользователям менять много параметров – Windows для
капитальных изменений обычно требует дорогих дополнений от тре-
тьих лиц, а OS X желает, чтобы ее любили такой, как она есть – зато
и Gnome, и KDE разрешают перестройку практически всех аспектов
рабочего стола. От обоев и иконок до оконных рамок, все можно
изменить для создания более индивидуального окружения. Пока,
однако, мы не собираемся рассматривать чудеса трехмерных рабочих
столов. Хоть они и апофеоз технологии, но выходят за рамки нашего
урока и, несмотря на последние улучшения инструментов настройки,
все еще не совсем подходят для новичка. Они также требуют серь-
езной вычислительной мощности, тогда как рассматриваемые здесь
опции персонализации можно применить на любом ПК, который Темные цвета экономят заряд батареи, а градиент разнообразит
потянет сам Gnome. картину без лишних затрат ресурсов процессора. Впрочем,
вертикальные градиенты выглядят бесполезными и уродскими.

Месяц назад Как упорядочить жизнь при помощи списка задач, Sunbird и Provider.
56 Linux Format Ноябрь 2007
Первые шаги Учебник

улучшить Gnome?
ний. Имеется несколько способов отображения фонового рисунка, и
следует поиграть с ним до получения удовлетворительного результата.
Если наше изображение имеет подходящее для монитора соотношение
сторон, но несколько большее разрешение, можно выбрать По центру,
тогда исчезнут черные границы сверху и снизу выбранного изображе-
ния. Выбрав На весь экран, мы сможем увидеть изображение целиком,
а опция Черепицей может быть использована для добавления в качест-
ве обоев небольших текстур.

Посмотрим на семью
Вышеописанным методом можно, конечно, выложить на рабочий стол
и фотографии из вашей личной коллекции, но лучший способ осве-
жить ваши воспоминания – хранитель экрана. Выгорание дисплея оста-
лось в далеком прошлом, и хранители экрана теперь скорее массируют
глазные яблоки, чем сберегают люминофор. А коли вам понадобился
массаж, то почему бы не применить в качестве масла собственную
Картинка из Firefox сохранится на вашем жестком диске по щелчку библиотеку изображений? К счастью, среди многих (ой, многих) хра-
правой кнопки мыши. нителей экрана для Gnome имеется один, под названием Директория
с изображениями, специально для этой цели. Поэтому выполните
самой панели. Каждая панель – независимый элемент, и для каждой Система > Параметры > Хранитель экрана и прокрутите список до
можно назначить свои цвета и параметры. Главное, не безумствуйте. требуемого пункта. Вполне возможно, что при выборе Директории с
Не столь просто изменить в Gnome цвет шрифтов на рабочем столе. изображениями ничего не произойдет; на то возможны две причины.
Всего удобнее использовать опции как по умолчанию: белый с черной Во-первых, в папке пока нет изображений; тогда их надо в нее доба-
тенью, темный фон или светлый фон с темной областью для иконок; вить. Во-вторых, вы могли импортировать фотографии с камеры или
тогда хоть будет видно, что вы делаете. из библиотеки согласно стандартным настройкам F-Spot, и ваш ката-
Если вы все-таки склоняетесь к графическим обоям – пусть это и лог с фотографиями называется Photos. Лобовой способ исправить
мило, но обычно они все равно упрятаны за окнами приложений, так это – войти в каталог /home/username, щелкнуть правой кнопкой мыши
что не перетрудитесь над их эффектностью. Если вы устали от набора на Photos, выбрать в меню Переименовать и дать новое имя Pictures.
изображений вашего дистрибутива, то других в сети миллионы, и мож- Правда, теперь F-Spot перестанет распознавать собственную библио-
но даже добавлять изображения самому, для придания большей инди- теку, и придется ее перестроить: все удалить, выбрать каталог Pictures
видуальности. Попробуем вытянуть с какого-нибудь сайта абстрактный для импорта (Правка > Параметры) и затем вновь все импортировать –
рисунок и добавить его в набор доступных изображений. Обои для да еще и повторить сделанное вами редактирование, поскольку это
рабочего стола широко предлагаются в Интернете (например, www. является частью базы данных F-Spot, а не Gnome.
desktopwallpapers.co.uk), и некоторые из них имеют рисунки, разрабо- Проще будет выбрать F-Spot Photos в списке хранителей экра-
танные для Gnome, KDE или просто Linux, специально для линуксоидов. на. Это не только снимет описанную выше проблему, но также даст
На данном уроке мы попробуем насладиться сайтом http://art.gnome. больше контроля над демонстрацией, поскольку вы сможете настро-
org, содержащим художественные работы и темы рабочего стола ить приложение на показ изображений только с определенными тэга-
Gnome. Соотношение сторон и разрешение вашего монитора не игра- ми. Например, если вы поклонник жвачных, можете открыть F-Spot,
ют большой роли при выборе изображения, но результат будет более
предсказуем, если их учесть. Кто не знает свои параметры, откройте
Система > Параметры и выберите параметр Разрешение экрана: диа-
логовое окно сообщит вам необходимые значения. Как обычно, первое
число означает горизонтальный размер, второе – вертикальный. У нас
элегантный широкий экран, и его разрешение 1280 х 800, а на обычном
мониторе будет где-то порядка 1024 x 768.
Итак, вернувшись на art.gnome.org, просмотрим имеющиеся изоб-
ражения в поисках чего-нибудь крутого. Найдя хорошее изображение,
щелкните на ссылке, чтобы увидеть полную версию, а затем, в Firefox,
щелкните правой кнопкой мыши и выберите Сохранить изображение
как... для загрузки изображения на рабочий стол или в папку с доку-
ментами. Firefox имеет опцию Установить как фоновый рисунок рабо-
чего стола, но обычно лучше (с точки зрения управления файлами)
загрузить желаемое изображение куда-то конкретно. После загрузки
файла вновь щелкните правой кнопкой мыши в пустом месте рабочего
стола, затем Свойства, в появившемся окне выберите пункт Добавить
обои и перейдите к местоположению ранее сохраненной картинки. При F-Spot предоставляет более гибкую настройку хранителя экрана: вы
желании, просто перетащите картинку в список доступных изображе- можете применить некую цензуру к отображаемому.

Ноябрь 2007 Linux Format 57


Учебник Первые шаги

перейти на Правка > Параметры и затем в разделе Хранитель экрана в


выпадающем списке тэгов выбрать Коровы (или что-то другое). Теперь
моменты вашей праздности автоматически заполнятся портретами
парнокопытных, и как только вы присвоите новому изображению этот
тэг, оно немедля войдет в репертуар хранителя экрана F-Spot.
Конечно, хранители экрана являются врагами экологически мысля-
щих пользователей, поэтому вы можете захотеть настроить параметры
сбережения энергии (Система > Параметры > Управление питанием),
установив некие разумные пределы, и в перерывах сидеть перед пус-
тым экраном. Но раз уж вы проводите за экраном столько времени,
почему бы не украсить его посредством слайд-шоу ваших любимых
изображений?

В вашем вкусе
За отображение шрифтов Linux в прошлом подвергался критике (иног-
да заслуженной), но оно меняется к лучшему, и мелкие реформы в
стандартных установках Gnome способны привести к резкому изме- Соблазнительно побезумствовать со шрифтами, но при определении
типа повседневного оформления удобство использования важнее.
нению удобочитаемости, особенно если вы работаете на ноутбуке или
с настольным ЖК-экраном. Для перехода к утилите настройки шриф-
тов, выберите Система > Параметры > Шрифт. Появляющийся диалог Лучшие окна
кажется сложным, но проще воспринимать его как две отдельные час- C годами система управления темами Gnome стала развитым и удоб-
ти. Верхняя определяет шрифты, отображаемые в различных областях ным инструментом. Найти ее можно в Система > Параметры > Тема.
рабочего стола, и выбор одной из длинных кнопок рядом, например, В главном разделе этого окна находится эскиз выбранной темы. Вы
со Шрифтом рабочего стола вызовет стандартное окно выбора шриф- можете загрузить множество тем с art.gnome.org – так же, как и обои –
та, где назначается тип шрифта и его размер для отображения текста и добавить их в вашу систему кнопкой Установить тему. Темы, загру-
на рабочем столе. Возможно, вас увлечет некий эзотерический шрифт, женные с art.gnome.org, обычно являются .tar.gz-файлами и интегри-
вроде рукописного или футуристского, и до поры до времени это пре- руются в систему без распаковки. Нередко они разделяются на темы
красно – пока вы через пару дней не решите отказаться от него ради Приложений и Окон. Первые влияют на способ отображения кнопок,
чего-то более разумного. Вычурные шрифты кажутся кратчайшим прогресс-индикаторы и другие отображаемые ОС виджеты, а вторые
путем к приданию индивидуальности рабочему столу, но заодно ухуд- изменяют границы, заголовки и кнопки самих окон. Некоторые темы
шают читаемость; так что не спешите на них набрасываться. охватывают оба аспекта, но вам, вероятно, захочется смешать и согла-
Вторая часть этого диалога отвечает за реальное отображение совать стили (дизайнеры Gnome, похоже, склоняются к ровной неброс-
шрифтов, и здесь выбор полностью субъективен; просто выберите кой эстетике, и стилевой разнобой не должен вас особо беспокоить).
опции, которые лучше выглядят на вашем экране и при которых вам Учтите, что темы Gnome могут использовать «движок тем», отлича-
комфортнее читать. Кнопка Подробнее... в этом разделе предостав- ющийся от установленного у вас (сверьтесь с описанием заинтересо-
ляет несколько дополнительных опций для тонкой подстройки вашего вавшей вас темы); в таком случае добавьте соответствующий движок
выбора, но ее вполне можно проигнорировать. при помощи Synaptic (Система > Администрирование > Менеджер паке-
Следует помнить, что некоторые приложения не используют стан- тов Synaptic, где найти указанный движок). Движок Murrine, например,
дартные шрифты рабочего стола, определенные здесь, и потребуют был навеян искусством венецианских стеклодувов, он делает рабочий
дополнительной работы для улучшения вида или гармонии с вашим стол чистым и ясным, тогда как движок Metacity более настраиваем и
выбором для рабочего стола. Например, можно изменить шриф- популярен, и для него доступно гораздо больше тем. Если вы сменили
ты, используемые для отображения web-страниц в Firefox, выбрав движок тем, не забудьте выйти и зайти вновь, чтобы увидеть результат
Правка > Настройки и просмотрев раздел Шрифты и цвета на вкладке изменений, хотя смена тем происходит автоматически.
Содержимое. Но на web-страницах или на рабочем столе, как следу- Кроме выбора темы, имеется еще множество других вещей, кото-
ет из результатов большинства исследований по читаемости экрана, рые вы можете сделать по-своему уникальными. Для начала выбери-
шрифты без засечек на концах (sans serif) лучше всех прочих, так что те в окне темы пункт Настроить; откроется новый диалог с четырьмя
для облегчения жизни остановитесь на одном из таких. вкладками. Слева направо:
Элементы управления изменяют виджеты рабочего стола.
Разработчики тем называют их темами приложений, так что поищите
их на art.gnome.org. Загруженные темы можно перенести в этот список,
и они автоматически поступят на рабочий стол, если вы не укажете
иное.
Цвета На этой вкладке до четырех настроек цвета, в зависимости от
используемого движка тем. Странно, что опция Выделенные элементы
здесь изменяет цвета панели-заголовка активного и неактивного окна.
Значки позволят изменить настольные значки глобально, и, как и
темы и границы окон (см. ниже), наборами иконок можно разжиться
в различных местах, включая art.gnome.org. Столь же легко сменить
лишь отдельные значки: щелкнув правой кнопкой мыши на любом из
них в диалоговом окне, выберите Свойства в контекстном меню и клик-
ните по кнопке значка в диалоговом окне. Затем вы можете перейти к
новому значку или изображению (лучший формат для этого – .png),
а потом нажать кнопку OK. Можно также увеличить или уменьшить
размер значка на рабочем столе, выбрав в меню правой кнопки пункт
Вы проводите массу времени за экраном; почему бы не украсить Растянуть значок, а затем воспользоваться маркерами, появившимися
его слайд-шоу ваших любимых фото? по углам значка, для изменения его размера.

58 Linux Format Ноябрь 2007


Первые шаги Учебник

Рамка окна изменяет вид и поведение границ каждого окна. Gnome


поставляется с небольшим набором рамок, включая весьма приятный
Clearlooks, но если они вас не устраивают, то в сети имеется много дру-
Где найти лучшее
гих, включая рамки, имитирующие внешний вид других операционных Кроме стандартной панели задач и панелей, виться в окне доступных приложений. Выберите
систем, включая Vista и OS X. Как и другие опции, вы можете добавить можно также добавить функциональности и первую строку из списка – это, в свою очередь,
новые границы, нажав кнопку Добавить или перенеся их в список. И, миловидности рабочему столу Gnome при помо- приведет к выбору файла с данными, на которые
наконец, если вы предпочитаете пиктограммы и хотите удалить текст щи магии GDesklets. Десклеты немного похожи полагается GDesklets – нажмите Применить и
с ваших значков (или наоборот), то вы можете перейти в Система > на виджеты, доступные в OS X благодаря подождите, пока все не загрузится и не устано-
Параметры > Меню и панели инструментов и настроить отображение Dashboard и в Windows благодаря приложению, вится. Затем приложение должно появиться в
значков/текста по вашему вкусу. Однако это повлияет только на панели ранее известному как Konfabulator (теперь Yahoo! меню Приложения > Стандартные.
инструментов в приложениях Gnome. Widgets). Некоторые читатели затрудняются с Вы можете добавить десклет, дважды щелк-
установкой GDesklets в Ubuntu при сборке его из нув на нем в менеджере приложений GDesklets, и
Игры на панели исходных текстов, но есть более простой способ настроить или удалить его правым щелчком.
Добившись полной красоты, пора добавлять на рабочий стол элементы, получения этой полезной программы. Помните, что эти апплеты-малютки потребляют
облегчающие его использование, и начнем мы с панелей, расположен- Перейдите в Система > Администрирование > больше ресурсов процессора, чем мелочи, добав-
ных вверху и внизу стандартного окна Gnome. Как указывалось ранее, Менеджер пакетов Synaptic и в строке Искать, ленные на панель, и подобный вид настройки
рабочий стол Gnome имеет две настроенные панели, вверху и внизу наберите: gdesklets. Это приложение входит в лучше оставить хозяевам Linux-машин с прилич-
рабочего стола. Однако панели можно добавить правым щелчком на стандартный репозиторий Ubuntu, и должно поя- ной мощностью.
существующей панели и выбором пункта Создать панель. Это приведет
к автоматическому появлению панели в ближайшем свободном уголке
экрана – в нашем случае, справа – готовой к заполнению элементами. (или легко преобразовать при помощи Gimp) в формате, пригодном
Имейте в виду, что излишек панелей на небольшом экране приводит к для рабочего стола Gnome.
путанице и беспорядку в работе; зато если у вас большой экран, новая www.iconfinder.net. Если вам неохота рыться среди тысяч иконок,
панель может стать прекрасным дополнением. Для удаления панели, Icon Finder может уменьшить работу, позволив специфицировать
вновь щелкните правой кнопкой мыши и выберите Удалить эту панель, поиск. Большинство предоставляемых им ссылок распространяются
но помните, что вы потеряете все добавленное на нее. под весьма либеральными лицензиями.
Контекстное меню правой кнопки также поможет добавить кноп- www.digitalblasphemy.com. Цифровое святотатство [Digital
ки на панель. Откройте его и выберите Добавить на панель... чтобы Blasphemy] – это сайт, посвященный разработке и выпуску 3D-обоев,
увидеть набор виджетов для панелей Gnome. Диапазон их – от без- от фотореалистичных или научно-фантастических лунных ландшафтов
умно полезных часов, регулятора громкости и т.д., до пустяковых. до превосходных абстрактных картин.
Последних следует избегать, если вы работаете на маломощной http://tango.freedesktop.org. Обитель проекта иконок следующего
машине: каждое добавление отнимает время и циклы процессора. Для поколения Linux. Tango намерен обеспечить гармонию, согласовав все
добавления опции на панель, просто выберите ее из списка, и она свободные рабочие столы. Весьма заслуживает внимания, особенно
волшебным образом возникнет. Аналогично, удаляются апплеты при если вы жаждете разработать собственный набор иконок для общего
помощи правого щелчка и пункта Убрать с панели. Можно также доба- пользования. LXF
вить ярлык для любого установленного приложения, используя кнопку
Запуск приложения. Просто щелкните по ней и перейдите по иерархии
(которая выглядит так же, как стандартное меню Приложения), чтобы
выбрать соответствующую программу. На панели появится ярлык с
иконкой этого приложения. И вновь вы можете удалить ярлык, а также
изменить его расположение, при помощи правого щелчка. Icon Finder – прекрасное место старта для
Мы затронули лишь верхушку айсберга возможностей персонали- поиска иконки к отдельному приложению или
зации Gnome, но это неплохая отправная точка для экспериментов. К системе, особенно если вы стараетесь
счастью, элементы, с которыми мы резвились, всего лишь «поверхнос- сохранить стиль темы.
тные», и потому маловероятно, что они вызо-
вут серьезные проблемы с компьютером. При
всем при том, если вы нацелились на лимонно-
желтый рабочий стол с зеленым рукописным
шрифтом, не исключено, что эксперименты
стоит отложить...
В сети вы сможете найти изображения,
иконки и рамки для окон. Вот полезные сай-
ты:
art.gnome.org. Первый в списке для Gnome,
включающий новые движки тем, темы, икон-
ки и обои. Он хорошо организован и всесто-
ронен, хотя поисковые опции следовало бы
расширить.
www.kde-look.org. Да, этот сайт посвящен
другому рабочему столу Linux, но все равно
это хороший источник изображений и ико-
нок. А вы не знали, что войны рабочих столов
закончились?!
http://iconfactory.com/home. Хотя сайт спе-
циализируется на иконках для OS X и Windows,
большинство файлов можно использовать

Ноябрь 2007 Linux Format 59


Bash
Учебник для
Bash для начинающих
начинающих Как извлечь
максимум из командной строки

Bash: Используем
Часть 3 Хотите почаще использовать командную строку, но не знаете, с чего начать?
Рэйчел Проберт расскажет, как сделать резервную копию с терминала.
омашний ли вы пользователь компьютера или администратор

Д промышленной сети, объединяющей тысячи пользователей,


резервное копирование – ваш последний рубеж обороны перед
потерей данных. Терять данные жалко, а компьютеры несовершенны!
Да, даже Linux. Наверное, самая частая причина потери данных – это
ошибки пользователей, которые случайно удаляют не те файлы или
уничтожают важный документ, просто задев не ту клавишу на кла-
виатуре. От этого не застрахованы даже супер-хакеры. Как же обес-
печить постоянное резервирование наших драгоценных данных? Да
легко. Создадим резервную копию результатов вашей работы, упаку-
ем в архив и скинем на другой компьютер… И все это из командной
строки!
Резервные копии в корне отличаются от архивов: архив – это пер-
вичная копия данных, а резервное копирование – это процесс, вклю-
чающий создание дополнительных копий данных. Данные появляют-
ся и изменяются, и резервные копии данных тоже нужно обновлять.
Поэтому мы в Linux Format всегда, до полного занудства, твердим
нашим читателям, чтобы резервное копирование данных вошло у них
в привычку. Уж лучше обезопасить данные, чем страдать от их потери,
будь то значимые файлы или файлы с настройками системы.

Часть 1: Архивируем плоды своих трудов


В результате архивирования несколько файлов объединяются в один. Если мы заархивируем результаты нашей работы с помощью tar, не
Хранить несколько файлов в одном очень удобно: его легко упаковать, мешает еще и знать, как извлечь их из архива. По умолчанию файл .tar
скопировать в другой каталог или переслать на другой компьютер распаковывается в текущий каталог. Мы можем указать другой каталог
Наш или устройство. Мы заархивируем наши файлы и запишем резервную с помощью ключа -C /директория, например, таким образом:
эксперт копию на диск с помощью команды tar. Это стандартная команда Linux tar xvf work.tar -C ~/archivedWork
Рэйчел Проберт для архивации данных. Первоначально архивация осуществлялась на Ну что, все заархивировали? Теперь приступим к сжатию этого
последние семь лет ленточные устройства [tape archive], отсюда и название… но мы с ее архива.
консультирует
начинающих помощью создадим резервную копию нескольких файлов для записи
бизнесменов и на дискету.
разрабатывает для
них web-приложения.
Начнем с того, что разместим все файлы, подлежащие резервному tar-бомбы
копированию, в одном каталоге. Можно поступить и по-другому: ука-
зать полный путь и имя для каждого файла, который вы хотите доба- Обычно «тар-бомбой» называют архив .tar, файлы которого распако-
вить в архив. Мне кажется, что проще скопировать всё в один каталог, вываются в текущий каталог вместо своего собственного [то есть
потому что если указать каталог в списке архивируемых файлов, то он архив без каталога верхнего уровня, – прим. пер.]. Это может вызы-
будет обработан рекурсивно (с учетом вложенных каталогов). Итак, для вать проблемы, особенно если файлы из архива перезапишут одно-
создания архива, введите: именные файлы в теку-
tar cvf work.tar /путь/к/каталогу щем каталоге. Ничуть не
Сначала мы указали имя программы – tar, за ним идут ключи c веселее и удалять все эти
(--create), v (--verbose – отображать полный список файлов), f (--file – новые файлы, затерянные
создать файл; этот ключ всегда должен быть последним). Потом ука- в текущем каталоге среди
зали имя создаваемого архива (work.tar) и каталог для архивирования других файлов. Часто
(включая путь до него). Как я уже говорила, можно указать имя для такое происходит в
каждого файла: домашнем каталоге поль-
tar -cvf indFiles.tar notes.txt test.txt work.txt зователя, а там файлов
Точно так же можно осмотреть содержимое ранее созданного архи- всегда много. Это очень
ва. В этом случае пригодятся следующие ключи: ключ t отобразит спи- плохой подход со стороны
сок всех файлов архива, а более подробная информация по каждому создателя архива, поэтому
Мой супруг пользуется .NET,
файлу выводится с помощью ключа v (как ls -l). это слово и носит негатив-
поэтому ему нужен раздел Windows!
tar tf work.tar ный оттенок.

60 Linux Format Ноябрь 2007


Bash для начинающих Учебник

командную строку
Скорая
Часть 2: Сжимаем архив помощь

При использовании
Полезно сжать несколько файлов в один: тогда они занимают меньше Опция -v в этой команде отвечает за подробный [verbose] вывод, утилит для сжатия
места на диске, и их можно быстрее загрузить из Интернета. Итак, в с указанием названия каждого файла и процента сжатия. Если мы данных имейте
чем же разница между архивом и сжатым файлом? выполним здесь же команду ls, то увидим, что файл work.tar превра- в виду, что
двоичные файлы
Архив – это набор файлов и каталогов, которые хранятся в одном тился в work.tar.gz и в самом деле значительно уменьшился по сравне-
практически
файле. Файл архива не сжат – он занимает на диске столько же мес- нию с несжатым архивом, созданным нами ранее. При необходимости не сжимаются,
та, сколько занимают все файлы и каталоги в этом архиве [а на самом распаковать архив tar можно использовать команду зато текстовые
деле даже чуть больше, – прим.ред.]. Сжатый файл – это набор файлов gunzip work.tar.gz уменьшаются
в объеме более чем
и каталогов, которые хранятся в одном файле, причем этот файл зани- Содержимое tar-архива предстанет перед вами в былой красе.
на 75 процентов.
мает на диске меньше места, чем файлы и каталоги внутри его. Если Существует несколько утилит для сжатия данных; выбор одной из
на диске мало места, можно сжать файлы, которые вы используете не них зависит от ваших предпочтений. Утилита bzip2 более новая, и часто
очень часто, или файлы, с которыми вы уже не работаете, но которые сжатые с ее помощью файлы меньше аналогов, сжатых gzip. Файлы,
хотите сохранить. Архив мы уже создали, а сейчас для экономии места сжатые bzip2, имеют расширение .bz2 и распаковываются точно так же,
на диске сожмем его. как и сжатые gzip, но вместо gunzip используется утилита bunzip2. Есть
Стандартная утилита для сжатия файлов в Linux называется gzip. еще утилиты zip, compress и lzop.
Сжатый с ее помощью файл получает расширение .gz. Давайте сожмем Примечание: пользователи Windows как правило не осознают разницы
полученный ранее файл work.tar с помощью следующей команды: между архивированием и сжатием, т.к. в этой ОС программа-архиватор
gzip -v work.tar обычно сразу и создает единый файл, и сжимает его.

Часть 3: Монтируем съемный диск


Прежде чем обращаться к данным на только что подключенном носи- хорошо знаете. Однако для редактирования этого файла нужны при-
теле (CD, DVD или дискета), вы должны смонтировать файловую сис- вилегии администратора системы. Таким образом, вам придется либо
тему этого диска. зайти в систему как root, либо использовать команду su для получения
Непосвященным монтирование может показаться сложной опера- привилегий администратора. Мы не будем редактировать его, а только
цией, но оно означает всего лишь присоединение другой файловой посмотрим содержимое файла. Введите команду:
системы к дереву каталогов. Аналогично, когда работа с устройством gedit /etc/fstab
закончена, и вы готовы его удалить, файловую систему нужно размон- Просмотрите файл и найдите там строку, соответствующую приво-
тировать. Монтированием файловых систем (например, других раз- ду для гибких дисков. Она должна выглядеть примерно так:
делов жесткого диска) часто занимаются системные администраторы /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
(или специалисты по «железу», при установке нового жесткого диска), Нас интересуют первый и второй столбцы. Первый содержит назва-
а обычные пользователи могут монтировать файловые системы для ние устройства или раздела, второй – точку монтирования. Таким обра-
съемных устройств. зом, команда
Файловые системы для CD, DVD и дискет в Gnome и KDE монтиру- mount /dev/fd0
ются автоматически. Так, когда вы работаете в графической оболочке примонтирует дискету в каталог /media/floppy0, так как это точка мон-
и вставляете диск в привод, файловая система для него автоматичес- тирования по умолчанию, заданная в /etc/fstab. Смонтировав дискету,
ки монтируется, и на рабочем столе появляется иконка. Далее, когда мы можем делать с ней все, что хотим: просматривать ее содержимое
работа с диском закончена, вы можете извлечь его с помощью пунк- или перемещать файлы на дискету и с нее.
та «Извлечь» контекстного меню иконки на рабочем столе или введя ls /media/floppy0
команду eject в командной строке. Осталось только скопировать или переместить наш архивирован-
ный и сжатый файл на дискету. Если не считать множества ключей,
Общего рецепта нет команды mv и cp одинаковы. Единственная разница – cp создает
Способ монтирования диска из командной строки зависит от системы копию набора данных, а mv удаляет исходные файлы. Первый аргу-
и ее настроек. Как будет выглядеть ваша команда, проще всего выяс- мент команды cp определяет файл-источник, второй – файл или ката-
нить, посмотрев файл /etc/fstab. Попросту говоря, fstab – это файл кон- лог назначения:
фигурации, содержащий информацию обо всех дисках и устройствах cp work.tar.gz /media/floppy0
хранения данных вашего компьютера. Это обычный текстовый файл, и
его можно редактировать в любом текстовом редакторе, который вы Миссия завершена! LXF

Через месяц Новые советы для начинающих в Linux.


Ноябрь 2007 Linux Format 61
Mono-Мания
Учебник Mono-Мания Программирование на
современной платформе для новичков

Mono: Назад в Unix


Хотя C# и новый, и передовой, Mono стоит на плечах уродливого монстра Posix.
Пол Хадсон пробует заставить Unix-натуру Linux сработаться с .NET...
знать не хотят о Posix, они обязательно опираются на его набор функ-
ций! Что касается разработчиков, то любой из пишущих код на С дол-
жен работать с одним из многих интерфейсов ядра и вызовами стан-
дартной библиотеки С, входящими в Posix, и эти функции – например,
malloc, system, printf, fopen и другие – доступны везде, куда ни сунься.
Это ставит нас перед вопросом: «Какой прок в использовании
Posix?» Общеизвестно, что все системные вызовы Posix скопированы
в стандарте среды .NET, с использованием управляемых эквивалентов:
вы можете читать и записывать файлы, работать со строками, откры-
вать сокеты, читать данные файловой системы и так далее, не беспо-
коясь о распределении памяти, потому что .NET освободит все, когда
сработает сборщик мусора. Но использование версий Posix дает неко-
торые преимущества:
1 Унаследованный код очень легко портировать. Вы можете взять
код на C и запросто перенести его на C#, затем, при добавлении новых
функций, добавить расширенную функциональность, присущую C#.
2 В том же русле: для C-программистов вполне очевидно, что делает
код C# Posix, а это облегчает изучение и сопровождение.
3 Вы можете использовать преимущества специфичной для Posix
функциональности. Например, чтение данных из файла /etc/passwd в
обычном .NET коде необходимо делать вручную, а с использованием
инструментов Posix это раз плюнуть.
Итак, использование Posix не лишено преимуществ, но вдобавок

И
меет ли место садомазохизм в мире компьютеров? Если да, имеется одно большое неудобство: львиная доля Posix работает с ука-
то вот он: я покажу вам, как заставить C# идти бок о бок с зателями.
Posix и выиграть. Да, Posix – этот дурно задуманный процесс «Указатели?» Так и слышу, как вы охнули. «Привет! Говорят 1980-е!
стандартизации, сбивающий с толку программистов, игнорируемый Они требуют обратно свой безумный, анахроничный, осложненный
конечными пользователями, и все же подпирающий Linux и другие переполнениями буфера доступ к памяти!» Именно так. Указатели –
Unix-подобные ОС. Posix – это набор системных вызовов, интерфей- это программные имена, описывающие конкретный участок памяти.
Наш сов и сигналов, определяющий, как мы, разработчики, взаимодейс- Например, переменная – указатель на строку содержит точный адрес
эксперт твуем с операционной системой. Действующий стандарт Posix весьма в памяти, где располагается строка текста. Понятно, что это прекрасно
Пол Хадсон обширен, но по сути мы должны заботиться только вот о чем: если вы для быстродействия, так как между программой и оборудованием нет
полагает, что Mono – пишете Posix-совместимый код, он должен работать в любой Posix- посредников, но ужасно с точки зрения безопасности, потому что про-
лучшая вещь со
времен мультфильма совместимой ОС. грамма имеет полную власть над вашим компьютером: даже крошеч-
Pinky and the Brain, Как ни странно, список совместимости включает Windows Vista, ная щелочка в безопасности может вылиться в захват системы. Теперь,
и сейчас точнее, большинство основанных на NT версий Windows, коль скоро когда вы знаете все о плюсах и минусах Posix, давайте нырнем в него
поддерживает два
проекта на основе они имеют установленными службы Services for Unix. Но с нашей точки и посмотрим, что тут можно сделать...
Mono на SourceForge. зрения важно то, что Linux, FreeBSD, OpenBSD и Syllable практически,
а AIX, HP-UX, Minix, OS X и Solaris – полностью поддерживают Posix. Базируемся на Stdlib
Короче, использование функциональности Posix может заставить вас Имеется три компонента для поддержки Unix в Mono: Mono.Posix,
рвать на себе волосы, но, по крайней мере, вы в хорошей компании! Mono.Unix и Mono.Unix.Native. Два последних отличаются лишь тем,
что Mono.Unix – это небольшая обертка для Mono.Unix.Native, но вы
Posix и вы можете использовать ту, где вам комфортнее.
Имеется два типа людей, в основном использующих Posix: конечные Начнем с простого: создадим новое решение под названием Monix,
пользователи и разработчики. Значит, практически все! Рассмотрим затем изменим его код Main.cs так:
каждый тип отдельно, начав с пользователя. Да, я помню свои слова, using Mono.Posix;
что конечный пользователь игнорирует Posix, но это не совсем верно – using Mono.Unix;
фактически, вы используете преимущества инструментов и интерфей- using Mono.Unix.Native;
сов Posix при каждом обращении к командной строке. Видите ли, Posix using System;
заправляет едва ли не всем, что даруют Unix-подобные операционные using System.Text;
системы – как работает ваша командная строка, есть ли инструменты namespace monix {
типа awk и компиляторов, как происходит взаимодействие программ class Monix {
через каналы. Пусть даже конечные пользователи ничего не знают и public static void Main(string[] args) {

62 Linux Format Ноябрь 2007


Mono-Мания Учебник

Stdlib.system(“ls”); Скорая
} помощь
}
} Не пытайтесь
Этот простой код – основа для всех дальнейших: будем изме- проигнорировать
нять только строку Stdlib.system() да добавлять кое-какие кусочки. сигнал SIGKILL – все
Проверьте наличие Mono.Posix и добавьте ссылку на него в проект. В равно не удастся:
в противном
нашем первом методе мы воспользуемся классом Stdlib для вызова случае некоторые
system(). Класс Stdlib содержит, в основном, статические методы, то программы никогда
есть вам не нужно создавать объект Stdlib для вызова этих методов. не завершались бы!
Метод system() (следите за регистром s – он нижний: сейчас мы в
стране С!) исполняет любую команду на локальной машине, словно
он был введен в командной строке. Для нашего примера это означает
запуск ls, поэтому программа выведет список каталогов, как если бы
Ввод функции с последующей ( или ввод имени переменной
вы сами запустили «ls».
с последующей . приводит к выводу информации автозавершения:
После ввода Stdlib.system(, MonoDevelop должна вывести инфор- это ваш лучший друг при работе с функциями Unix.
мацию о параметрах метода system(), и вы увидите, что он принимает
строки C#. В этом месте разработчики Mono адаптировали библиотеку ставляя вам такие методы, как CanAccess(), но, что более важно, поз-
вызовов C для лучшей совместимости с программированием .NET – воляет создавать символьные ссылки на файл путем вызова функции
обычно, в терминах С, system() получает const char*, так что использо- CreateSymbolicLink(), примерно так:
вание строк более изящно! UnixFileInfo file = new UnixFileInfo(“file.txt”);
Этот переход существует лишь в некоторых методах. Например, file.CreateSymbolicLink(“filesym.txt”
printf() также дружественен к .NET, поэтому вы можете писать код создаст ссылку filesym.txt на file.txt, как если бы вы выполнили ln -s file.
вроде этого: txt filesym.txt в командной строке.
Stdlib.printf(“Hello, %s!\n”, “world”);
Stdlib.printf(string.Format(“Hello, {0}!\n”, “world”)); Звенит сигнал тревоги
С другой стороны, методы fopen(), fwrite() и fclose() для работы с Последний метод, который я хочу показать – signal(), он просто пока-
файлами требуют указателей. В C# указатели известны как IntPtr, пото- зывает, насколько хорошо интегрированы Mono и библиотека C: вы
му что это представление указателя в целочисленном типе данных. Эти можете попросить Linux вызвать метод C# при поступлении любого
IntPtr’ы могут восприниматься как данные с неизвестной структурой: сигнала. «Сигнал» в стране C – это то, что происходит, когда ОС пыта-
их нельзя прочесть без использования специфичных для этих данных ется по каким-то причинам прервать программу. Например, нажатие
методов. Например, файлы открываются так: Ctrl+C посылает программе SIGINT, что обычно приводит к выходу. А
IntPtr foo = Stdlib.fopen(“file.txt”, “w”); если вы не хотите, чтобы программа завершалась? Что ж, тогда пот-
Но вы не можете читать или записывать с этого файлового рудитесь сообщить C#, как поступать при получении SIGINT, и это Скорая
дескриптора без других методов Stdlib. foo IntPtr – всего лишь дескрип- делается при помощи метода signal(). Он принимает два параметра: помощь
тор данных, и сам по себе бесполезен. На самом деле, это даже небе- сигнал, который вы хотите перехватить, и имя функции, вызываемой
зопасно: любая память, присвоенная указателю, недоступна сборщику при получении сигнала. Используя system()
мусора Mono, и необходимо освобождать ее вручную, не то образуется Говоря о SIGINT – вот код, который необходимо ввести в программе, и аргументы,
утечка [memory leak]. Вы можете выполнить запись в этот файл, затем чтобы она не отвечала на Ctrl+C: переданные вашей
закрыть его так: Stdlib.signal(Mono.Unix.Native.Signum.SIGINT, HandleSigInt); функции, вы
можете за минуты
Stdlib.fwrite(Encoding.ASCII.GetBytes(“Hello, world!”), foo); HandleSigInt – новый метод, который необходимо создать за преде-
сколотить быструю
Stdlib.fclose(foo); лами Main(). Вот пример: оболочку. Начните
public static void HandleSigInt(int sig) { с пересылки всего
Развернем обертки Console.WriteLine(“А я против!\n”); переданного
в system() и
Как указывалось ранее, Mono предоставляет набор упрощенных обер- }
продвигайтесь
ток для базовых структур данных и системных вызовов Unix. Например, Теперь при нажатии Ctrl+C пользователь получит сообщение-отказ; далее, обрабатывая
любую информацию о пользователе можно прочесть, создав объект но это не остановит сигнал SIGKILL (посылаемый, когда кто-то выпол- аргументы и по
UnixUserInfo таким образом: няет kill -9 <ваш pid>). желанию добавляя
UnixUserInfo user = new UnixUserInfo(“paul”); Конечно, вы не сможете протестировать обработку вашей програм- собственную
функциональность.
Console.WriteLine(user.HomeDirectory); мой сигналов прерывания, пока не заставите ее работать бесконечно:
Класс UnixUserInfo читает информацию из /etc/passwd, и вы може- System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
те увидеть имя пользователя, информацию о группах, их командных На этом наш блиц-тур по интеграции Mono и Unix закончен.
оболочках и так далее. Подобные структуры существуют и для фай- Пожалуйста, не забывайте о потенциальных проблемах: утечки памя-
ловых систем – следующая строка кода выудит информацию о вашем ти – особенно в длительно работающих программах – могут вызвать
корневом каталоге: серьезные осложнения, а привычка работы с Mono способствует
UnixDriveInfo drive = new UnixDriveInfo(“/”); небрежному обращению с памятью. Применение родных функций Unix
Затем вы можете узнать объем свободного пространства на дис- делает миграцию с C на C# быстрой и простой, но в долгосрочной пер-
ке, прочитав drive.AvailableFreeSpace. Это число возвращается в бай- спективе лучше начать вытеснять функции C-эквивалентами, родными
тах, поэтому вы можете пожелать удобства ради преобразовать его в для .NET... LXF
гигабайты:
Console.WriteLine(drive.AvailableFreeSpace / 1024 / 1024 / 1024.0);
Последнее 1024 записано как 1024.0, потому что это заставит Mono
преобразовать конечный результат в число с плавающей точкой, а не в
целое – в противном случае результат не будет точным!
Иногда эти обертки имеют собственные методы, как в случае с
UnixFileInfo – она читает информацию о конкретных файлах, предо-

Ноябрь 2007 Linux Format 63


Рабочий
Учебник стол
Искусство KDE Долой
– рабочим (столам)! тоску!
Даешь обои новые, модерновые!

KDE: Галерея на
Маэстро Дэвид Фили покажет, как легко превратить ваш рабочий стол в картинную
галерею с помощью DCOP, Perl и шаманства с командной строкой.
$ mkdir ~/BackgroundArt
и скопируем туда какие-нибудь картинки (какие попались под руку).
Выберите из них пригодные для обоев рабочего стола. Это будет наш
запасник. Построив основную инфраструктуру, вы сможете более при-
дирчиво отобрать экспозицию вашей галереи.
В KDE можно воспользоваться вызовами DCOP для извлечения
текущего фонового изображения (см. учебник в LXF79 для введения
в DCOP). Но сперва определим, на каком рабочем столе мы находимся.
Вот вызов DCOP для этого:
$ dcop kwin KWinInterface currentDesktop
2
Вывод гласит, что в данный момент я на Рабочем столе 2. Вот и
чудненько: наличие нескольких рабочих столов прибавит нам разнооб-
разия в отображении обоев! Давайте теперь узнаем, какие обои уста-
новлены на активном рабочем столе:
$ dcop kdesktop KBackgroundIface currentWallpaper 2
/home/dave/BackgroundArt/Caravaggio-Emmaus.jpg
Имеем путь и имя файла фонового изображения. Если мы хотим
двигаться взад-вперед по списку изображений, надо где-то хранить
этот список, чтобы мы могли:
а) выяснить, где именно мы сейчас находимся в этом списке, и
б) перейти к следующему или предыдущему изображению, когда
захочется пользователю.
Создадим список изображений:

О
дно из величайших достижений Linux – даруемая им свобода: $ ls ~/BackgroundArt/* > ~/BackgroundArt/.index.txt
в частности, это свобода что-то переопределить, подправить Текстовому файлу дано имя, начинающееся с точки, чтобы он не
и настроить «как хочется», а не довольствоваться тем, «что отображал сам себя в выводе команды ls в процессе обновления при
дают». К примеру, я сейчас интересуюсь искусством, и хотел бы помес- добавке новых изображений. Для примера, вот мой собственный спи-
тить коллекцию картин старых мастеров на обои моего рабочего стола. сок:
Беда в том, что мне все быстро надоедает, поэтому нужен также прос- $ more ~/BackgroundArt/.index.txt
Наш той способ чередовать эти изображения; да и память у меня пресквер- /home/dave/BackgroundArt/Botticelli-Venus.jpg
эксперт ная, а надо как-то отличать моего Караваджо от моего Констебля. /home/dave/BackgroundArt/Caravaggio-David_goliath.jpg
Дэвид Фили Желаю иметь возможность вводить и просматривать примечания /home/dave/BackgroundArt/Caravaggio-Decapitation_of_john_the_
пользователь Linux ко всем картинам, чтобы над ними всплывали сообщения с подсказка- baptist.jpg
с 1998 года. Аудитор
по образованию, ми про имя художника, год написания и музей, где она находится, и, /home/dave/BackgroundArt/Caravaggio-Emmaus.jpg
в настоящее время он может быть, парой кратких заметок, благодаря которым я смогу при- /home/dave/BackgroundArt/Caravaggio-Judith_Beheading_Holofernes.
работает технологом
твориться, будто знаю, на что это я тут глазею, если меня вдруг станут jpg
в банковской отрасли.
Женат, живет расспрашивать. /home/dave/BackgroundArt/caravaggio-st_thomas.jpg
в Лондоне. В Linux и KDE такое вполне достижимо, если связать вместе раз- /home/dave/BackgroundArt/Tizian-Urbino_Venus.jpg
личные инструменты командной строки и скрипты: классическая кон- Чтобы выяснить позицию текущего файла в этом списке, можно
цепция Unix/Linux по объединению нескольких инструментов общего использовать команду grep. Применение флажка -n добавит номер
назначения в полезное приложение. Целью данной статьи является строки в вывод, показывающий позицию текущего изображения в
подготовка скрипта, управляющего нашей псевдоКартинной Галереей файле.
на фоне рабочего стола. Определим также несколько горячих клавиш, grep -n /home/dave/BackgroundArt/Caravaggio-Emmaus.jpg ~/
нажатия на которые обеспечат следующие действия: BackgroundArt/.index.txt
1 Смену обоев, перемещением вперед/назад по списку изображе- 4:/home/dave/BackgroundArt/Caravaggio-Emmaus.jpg
ний. Стало быть, текущее изображение находится в четвертой строке
2 Вывод всплывающей информации по конкретной картинке. нашего индексного файла. Давайте направим вывод в команду cut,
3 Добавление / редактирование / сохранение этой информации. чтобы возвращать только номер строки: остальное нам неинтерес-
4 Переключение между категориями изображений. но. Символ перенаправления – |, обычно он находится в верхнем
В большинстве случаев мы постараемся делать это прямо из регистре (т.е. получается при нажатом Shift) над клавишей Enter:
командной строки, а в завершение сведем все вместе в один скрипт. $ grep -n /home/dave/BackgroundArt/Caravaggio-Emmaus.jpg ~/
Итак, откройте командную строку терминала, и вперед, к созданию BackgroundArt/.index.txt | cut -d’:’ -f1
шедевра! Сперва создадим каталог для хранения изображений: 4

64 Linux Format Ноябрь 2007


Искусство – рабочим (столам)! Учебник

рабочем столе Всплывающие


«пузыри» kdialog –
хороший способ
отображения
информации,
связанной с
изображением
рабочего стола.

Теперь надо найти следующее (или предыдущее) изображение в изображения при выводе на экран получаются максимально возмож-
списке. Что ж, в зависимости от того, куда собираемся двигаться, впе- ными с сохранением исходных пропорций. Ваши требования могут
ред или назад, мы можем просто увеличить или уменьшить текущий быть иными, так что экспериментируйте с этими вариантами, чтобы
номер, а затем вытащить требуемую строку из файла с помощью хит- получить результат, оптимальный для ваших изображений.
роумной комбинации команд head и tail:
$ head -5 ~/BackgroundArt/.index.txt | tail -1 Вспомнить то время...
/home/dave/BackgroundArt/Caravaggio-Judith_Beheading_Holofernes.jpg Итак, мы обзавелись механизмом, позволяющим перемещаться
Когда мы примемся за скрипт, вы заметите, что не мешает предот- по списку изображений; но не забывайте, что нужен еще способ
вратить чрезмерное продвижение вперед или назад, чтобы не заско- вспомнить что-то, связанное с каждой картиной, которую мы видим.
чить за конец или до начала файла. В подобных случаях следует пере- Давайте добавим эту функцию. Во-первых, потребуется подката-
ходить на начало или конец файла – тогда нам нужно знать, сколько лог для хранения заметок к каждому изображению. Допустим, у
изображений в списке. Мы можем получить это число при помощи нас есть файл MonaLisa.jpg; давайте хранить заметки по его пово-
команды wc; перенаправив ее в cut, выделим необходимую информа- ду в файле MonaLisa.jpg.txt, и держать все файлы в одном месте,
цию (число строк). разместив их в подкаталоге info каталога BackgroundArt. Префикс
$ wc -l ~/BackgroundArt/.index.txt | cut -d ’ ‘ -f 1 «точка» опять-таки позволит .info не попадать в список изображе-
9 ний по команде ls.
Определив, какое изображение показывать следующим, установим $ mkdir ~/BackgroundArt/.info
его в качестве новых обоев с помощью вызова dcop: $ echo “Artist: Caravaggio, blah blah” > /home/dave/BackgroundArt/.info/
$ dcop kdesktop KBackgroundIface setWallpaper 2 /home/dave/ Caravaggio-Emmaus.jpg.txt
BackgroundArt/Caravaggio-Judith_Beheading_Holofernes.jpg 4 Для показа всплывающих сообщений над фоновыми картинками
Последний параметр – номер режима, описывающего, как посту- используем утилиту kdialog, имеющую пару приятных и полезных воз-
пить с изображением: уложить черепицей, растянуть и т.д. Здесь есть можностей – в частности, всплывающий «пузырь», который можно
насколько вариантов. По-моему, четвертый – поместить по центру с употребить для показа нашей заметки.
масштабированием – больше всего подходит для картин: размеры $ kdialog --passivepopup “Немного интересной информации” 60

Ноябрь 2007 Linux Format 65


Учебник Искусство – рабочим (столам)!

Вы задаете параметры отображаемого текста, а также продол- ственно к выполнению действий, в зависимости от установленного
жительность его показа в секундах. Всплывающее сообщение будет флажка. Действия Info() и Edit() аналогичны – в обоих случаях скрипт
исчезать само, когда истечет время показа или когда пользователь получает имя файла, содержащего информацию о текущем изобра-
нажмет на него, поэтому задайте побольше времени, чтобы успеть его жении:
прочитать, скажем, секунд 60. Информацию в info-файлах, которую мы my $infofile = getInfoFile($currentImage);
хотим отобразить, раздобудет наш скрипт. Экранный снимок на преды- Подпрограмма getInfoFile использует регулярное выражение для
дущей странице показывает всплывающее окно в действии. манипулирования именем/расположением файла, чтобы найти место-
Но позвольте, откуда возьмутся заметки для всех наших картин – положение для соответствующего файла с информацией. Например,
ведь придется создавать множество текстовых файлов, сохранять их для файла изображения
в требуемом месте, да еще бдительно следить, чтобы не перепутать /home/dave/BackgroundArt/Caravaggio-Emmaus.jpg
их имена? Вовсе нет – еще немного скриптинга, и мы сможем ввести процедура вернет следующий путь к ассоциированному информаци-
примечания к картине через другое всплывающее окно, снова призвав онному файлу:
на помощь kdialog: /home/dave/BackgroundArt/.info/Caravaggio-Emmaus.jpg.txt
$ kdialog --textinputbox “Это заголовок” “Немного интересных фактов Процедура getInfoFile делает это с помощью регулярного выраже-
для ввода” ния
Мы можем отобразить диалоговое окно ввода. Если для данного $infofile =~ s#^(.*)/(.*)#$1/.info/$2.txt#;
изображения уже существуют какие-нибудь записи, их-то мы и пока- Определив имя infofile, процедуры readFile и writeFile позаботятся о
жем в окне, а скрипт позаботится о поиске этих записей и передаче чтении/записи содержимого по мере надобности. Регулярные выраже-
их в kdialog. ния являются мощными инструментами для выполнения поиска вхож-
Возвращаемое kdialog значение будет содержать (свежеотредак- дений строк в тексте и их замены. (Не берите в голову заботу о доско-
тированный) текст. Если не было изменений в поле редактирования, нальном понимании синтаксиса, если это для вас в новинку – введение
значит, возвращаемые данные будут те же, что и исходный текст. Наш в регулярные выражения требует отдельной статьи! Если у вас есть
скрипт следит за записью этих данных обратно в файл примечаний журнал LXF70, то там такая статья опубликована).
к изображению.
Горячие клавиши
А теперь все вместе Теперь скрипт у нас есть, но он не совсем удобен: приходится вводить
Мы вчерне описали работу отдельных команд. Давайте сведем коман- команду (с параметрами) для каждого изменения обоев или просмотра
ды в скрипт wallpaper. Все выполняемые действия мы будем делать с всплывающих сообщений. Лучше вместо этого использовать возмож-
помощью одного скрипта, передавая в него флажки, контролирующие ности KDE по привязке действий по вводу к горячим клавишам. Лично
выбор действия. Мне кажется уместным сперва определить перечень мне нравится использовать многоклавишные комбинации, чтобы груп-
этих действий и соответствующих флажков. пировать похожие действия. Поэтому Alt+B для меня будет означать
Скрипт будет вызываться следующим образом: группу операций над обоями, а Alt+B в сочетании с еще одной клави-
wallpaper < флажки опций > шей уже выполнят конкретное действие: например, Alt+B,N выведет
Вызов его без параметров по умолчанию обеспечивает переход следующее изображение, а Alt+B,P вернет нас к предыдущему.
на следующее изображение в галерее. <флажок опции> может быть В порядке иллюстрации создадим одну такую комбинацию. В
таким: Input Actions [Ввод] KDE (обычно расположенном в меню Regional
1 -p перейти к предыдущему изображению. and Accessibilty [Региональные настройки и специальные возмож-
2 -i показать всплывающее окно с информацией о текущем изоб- ности] в KDE Control Center [Центр управления KDE]), создайте новую
ражении. группу ‘Wallpaper Actions’. Нажмите на группу и создайте новое дей-
3 -e отобразить окно Редактировать для текущего изображения. ствие. Назовите его WallpaperNext, установите тип действия Action >
4 -h показать справку. Command(url) [Комбинация клавиш -> команда/URL]. Установите ком-
Скрипт целиком можно взять на DVD. Большая его часть соот- бинацию клавиш (многоклавишный режим) Alt+B,N, и параметры
ветствует нашему описанию. В основном мы использовали вызовы команды /home/dave/bin/wallpaper (или путь, где вы сохранили свой
внешних программ, захват вывода и стыковку частей, с небольши- скрипт). Нажмите ОК, и пробуйте. Нажатие Alt+B,N должно привести
ми вкраплениями логики там и сям. Чтобы избежать дублирования к замене текущих обоев следующим изображением вашей галереи.
отдельных кусков кода и придать скрипту подобие структуры, исполь- Если это действие работает нормально, двигаемся дальше и добавляем
зуются подпрограммы. остальные комбинации клавиш.
Применим полезный модуль Perl Getopt::Std для обработки пара-
метров, передаваемых в скрипт. В строке Примочки
getopts(‘pieh’, \my %opts); Итак, основная часть готова. Как еще улучшить наш скрипт? Ну, можно
мы перечисляем разрешенные флажки и сохраняем их значения в автоматизировать создание индексного файла, чтобы добавлять/уда-
переменной %opts для дальнейшего использования. лять изображения в каталоге и не думать о его ручном обновлении.
Установив некоторые первоначальные значения для текущего рабо- Добавим задание cron, чтобы это происходило раз в день:
чего стола, текущую фоновую картину и т.д., приступим к непосред- crontab -e

Горячие клавиши: смена изображений


Горячие клавиши Действие Команда
ALT-B, N Перейти к следующему изображению wallpaper
ALT-B, P Перейти к предыдущему изображению walpaper -p
ALT-B, I Отобразить информацию о текущем изображении wallpaper -i
ALT-B, E Изменить информацию о текущем изображении wallpaper -e

66 Linux Format Ноябрь 2007


Искусство – рабочим (столам)! Учебник

Это диалог
05 12 * * * ls /home/dave/BackgroundArt/* > /home/dave/ Другим дополнением может быть предложение пользовате- редактирования;
BackgroundArt/.index.txt лю диалога, в котором он мог бы выбрать изображение из спис- для изменения вида
Что еще? Мне нравится идея использования в качестве обоев праз- ка. Иначе в большой галерее надо будет много раз прокручивать вашего рабочего
дничных фотографий. Или плакатов фильмов, или снимков с телеско- изображения назад и вперед в поисках того или иного образа. стола можно
па Хаббла. Но надо ли все это помещать в единый список? Наоборот, (Подсказка: посмотрите опцию –combobox утилиты kdialog). Также использовать
лучше создать отдельные категории и переключаться между ними. можно случайным образом выбирать картину из галереи. Это мож- горячие клавиши
Этого можно добиться, приложив еще немного труда. Мы создадим но автоматизировать через cron и изменять фон ежедневно. LXF либо командную
строку.
отдельный каталог для каждой категории изображения. Сложность
только в определении, к какой категории принадлежит текущее изоб-
ражение. Для простоты, будем тупо просматривать наш индексный
файл, и если соответствия не найдется, то разместим изображение в
категории по умолчанию, допустим, Art. На DVD вы найдете расширен-
ную версию скрипта, с поддержкой категорий. Я добавил еще горячих
клавиш для переключения между категориями.

Горячие клавиши: навигация


Горячие клавиши Действие Команда
ALT-B, A Переход к категории Art wallpaper -c Art
ALT-B, H Переход к категории Holiday walpaper -c Holiday
ALT-B, M Переход к категории Movie wallpaper -c Movie

Ноябрь 2007 Linux Format 67


Сеть
Учебник Чтосетевые
Решаем делать, если ваш
проблемы ПК
не видит в сети другие

Диагностика:
Если сеть у вас захворала, зовите Доктора! Правда, домашних визитов к читателям
д-р Крис Браун не делает, но готов поделиться диагнозом…
Рис. 1. Обзор
последовательности
6. Прозванивается ли
7. Можете ли вы найти
1 Находит ли Linux сетевую карту?
удаленный сервер? Первый вопрос на этом этапе – видит ли Linux сетевые интерфейсы?
тестов. свой DNS-сервер?
Вы сможете ответить на него, просмотрев системные сообщения ядра,
которые выдавались во время загрузки. Для этого используется коман-
да dmesg:
2. Задан ли IP-адрес? # dmesg | grep eth
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
1. Находит ли Linux 4. Не блокирован ли e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
сетевую карту? трафик брандмауэром?
e1000: eth0: e1000_watchdog: NIC Link is Up 10 Mbps Half Duplex
В качестве альтернативы попробуйте вывести список устройств на
шине с помощью команды lspci:
# lspci | grep Ethernet
01:01.0 Ethernet controller: Intel Corporation 82547EI
02:01.0 Ethernet controller: Intel Corporation 82540EM
Сообщения об ошибках на этой стадии говорят о неисправном или
несовместимом оборудовании.

5. Установлено ли ADSL-
2 Задан ли IP-адрес?
соединение? Если сетевая карта на месте, то следующий вопрос – задан ли IP-
3. Можете ли вы адрес? Простейшая команда для этого случая – ifconfig:
пропинговать свой # ifconfig eth0
маршрутизатор? eth0 Link encap:Ethernet HWaddr 00:0C:F1:96:A3:F7
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0

З
а годы жизни я помог многим друзьям и знакомым освоиться inet6 addr: fe80::20c:f1ff:fe96:a3f7/64 Scope:Link
с компьютером, и в подходящих случаях обучал их Linux. При UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
этом, естественно, возникает нечто вроде родительской ответ- RX packets:306 errors:0 dropped:0 overruns:0 frame:0
ственности за развитие и взросление своих питомцев. Последний слу- TX packets:261 errors:0 dropped:0 overruns:0 carrier:0
чай был типичным. Друг позвонил мне со словами: «У меня не работает collisions:8 txqueuelen:10
сеть». Такое сообщение об ошибке не уступает классической фразе с RX bytes:43074 (42.0 KiB) TX bytes:34480 (33.6 KiB)
Наш борта Аполлона-13 «Хьюстон, у нас проблема», хотя и менее опасно Base address:0xac00 Memory:ff7e0000-ff800000
эксперт для жизни. К счастью, в Linux много сетевых утилит, которые помога- Здесь важна вторая строка, в которой можно увидеть IP-адрес:
ют выяснить, что именно не работает. (Чтобы не томить вас ожидани- 192.168.0.3. Если такой строки нет, то IP-адрес не задан. А если все же
Д-р Крис Браун
внештатный ем развязки, сразу скажу, что моего друга просто отключил провайдер, задан, подумайте, действителен ли он в вашей сети.
консультант по Linux потому что он забыл продлить контракт.) На практике я несколько раз сталкивался с ситуацией, когда сеть
со степенью доктора
наук по физике Итак, следуйте за мной: рассмотрим некоторые средства диагнос- переставала работать после того, как в нее ввели компьютер, случайно
элементарных частиц тики сетевых неисправностей в Linux и посмотрим, как с их помощью оказавшийся DHCP-сервером, настроенным на диапазон адресов, не
и обладатель получить ответ на вопрос «Что не так в моей сети?» соответствующих этой сети. При перезагрузке компьютер с шансами
сертификатов Novell
CLP и Red Hat RHCE. При любом поиске неисправностей прежде всего нужно понять и 50/50 получал или действительный IP-адрес от «настоящего» DHCP-
Он только что представить, в чем выражается правильная работа. Есть ли у компью- сервера, или ложный адрес от самозванца.
написал книгу по
тера статический IP-адрес, и если да, то какой? Пользуетесь ли вы Если в сетевом интерфейсе не задан IP-адрес, то проверьте, настро-
SUSE Linux для
O’Reilly. DHCP, и если да, то каков адрес DHCP-сервера и выделяемый диапазон ен ли автоматический запуск этого интерфейса при загрузке систе-
IP-адресов? Подключен ли широкополосный модем непосредственно к мы. Если да, то использует ли он DHCP или статический IP-адрес?
вашему компьютеру или у вас широкополосный маршрутизатор через Конкретные имена файлов, которые нужно просмотреть, зависят от
Ethernet или беспроводную сеть? дистрибутива. В Fedora и Red Hat это /etc/sysconfig/network-scripts/
На данном уроке мы будем использовать методику «снизу вверх»: ifcfg-eth*, в SUSE –/etc/sysconfig/network/ifcfg-eth*, а в Ubuntu – /etc/
начнем с самых низких уровней и постепенно переедем на более высо- network/interfaces. (Стандарты – отличная штука: ну не прелестны ли
кие. Примерная последовательность тестов, которые мы выполним, эти ничем не объяснимые расхождения?) Конечно, в каждом из дис-
показана на рис. 1 в начале этой статьи слева. Это хороший система- трибутивов есть графические утилиты, с помощью которых можно
тический подход для случая, если сеть не работала никогда. С другой посмотреть и отредактировать настройки, например, на рис. 2 показано
стороны, если вчера сеть работала отлично, чаще будет быстрее начать средство настройки сети в Fedora system-config-network.
сверху и двигаться вниз.

Месяц назад Эффективный вывод результатов: фильтры и каналы.


68 Linux Format Ноябрь 2007
Решаем сетевые проблемы Учебник

проблемы с сетью
Обычно инициализация интерфейса упрятана глубоко в загрузочные а неудачи – таким:
Скорая
скрипты, и взаимодействие с сервером DHCP разглядеть трудно; но его # ping -c 1 192.168.0.2 помощь
можно увидеть, непосредственно запустив скрипт ifup или dhclient. Эта PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
программа поддерживает диалог с DHCP-сервером и позволяет задать From 192.168.0.3 icmp_seq=1 Destination Host Unreachable
Изменили ли вы
параметры сети:
имя пользователя и
# dhclient --- 192.168.0.2 ping statistics --- пароль для доступа
Internet Systems Consortium DHCP Client V3.0.5-RedHatо 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms к настройкам
Copyright 2004-2006 Internet Systems Consortium. Сообщение «Узел недоступен» (Destination Host Unreachable) обыч- своего
широкополосного
All rights reserved. но значит, что целевой компьютер (здесь – 192.168.0.2) не подключен к
маршрутизатора,
For info, please visit http://www.isc.org/sw/dhcp/ сети или не работает и поэтому не может ответить на ARP-запрос MAC- когда настраивали
адреса с моего компьютера. Это также может означать, что ваш ком- его? Или они до
Listening on LPF/eth1/00:0e:0c:01:d3:a0 пьютер не находит маршрут доступа к локальной сети; чаще всего это сих пор “admin” и
Sending on LPF/eth1/00:0e:0c:01:d3:a0 бывает, когда ваш IP-адрес не входит в данную сеть. Возможны и более “admin”? Если так,
то знайте, что
Listening on LPF/eth0/00:0c:f1:96:a3:f7 сложные проблемы с маршрутизацией – впрочем, в домашней сети, где
многие атаки
Sending on LPF/eth0/00:0c:f1:96:a3:f7 маршрут (по умолчанию) только один, это маловероятно. Если в вашей основаны на знании
Sending on Socket/fallback сети нет других компьютеров, можно попробовать пропинговать марш- реквизитов,
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7 рутизатор (Вы ведь знаете адрес своего маршрутизатора?). используемых по
умолчанию. Не
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4 Если не получилось, то проблема носит местный характер. Если
пожалейте пары
DHCPOFFER from 192.168.0.1 сеть проводная, проверьте кабели. Зеленые светодиоды на сетевых минут и задайте
DHCPREQUEST on eth0 to 255.255.255.255 port 67 карточках должны гореть [некоторые сетевые карты имеют другой спо- более сильный
DHCPACK from 192.168.0.1 соб индикации подключения. В случае необходимости изучите инструк- пароль…
bound to 192.168.0.3 -- renewal in 125868 seconds. цию, – прим.ред.]. ПРЯМО СЕЙЧАС!
В данной системе два интерфейса, eth0 и eth1. Мы видим, что
IP-адрес интерфейса eth0 получен от DHCP-сервера 192.168.0.1. 4 Не блокирован ли трафик
Интерфейс eth1 пытался сделать то же самое (он передал команду брандмауэром?
DHCPDISCOVER), но не получил ответа. И неудивительно: этот интер- На некотором этапе нашего диагностирования полезно проверить, не
фейс не был ни к чему подключен. чересчур ли «закручивает гайки» ваш брандмауэр. Самый быстрый
и грубый способ это узнать – и его предпочитают многие системные
3 Пингуется ли маршрутизатор? администраторы, если надо торопиться – удалить все правила бранд-
Если IP-адрес задан корректно, пропингуйте (ping) другой компьютер в мауэра командой
сети. В случае удачи результат будет примерно таким: # iptables -F
# ping -c1 192.168.0.6 и посмотреть, изменится ли что-нибудь к лучшему. Если проблема
PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data. исчезнет, то по крайней мере ясно, что ее причиной был брандмауэр.
64 bytes from 192.168.0.6: icmp_seq=1 ttl=64 time=0.468 ms Далее вам нужно перезагрузить компьютер (чтобы брандмауэр вновь
заработал) и думать дальше. Не соблазняйтесь идеей оставить бранд-
--- 192.168.0.6 ping statistics --- мауэр в отключке: это Плохая Идея!
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.468/0.468/0.468/0.000 ms 5 Установлено ли ADSL-соединение ?
Если с самим маршрутизатором все в порядке, пора расширить охват.
На маршрутизаторе должно быть еще несколько зеленых светодио-
дов (а если найти инструкцию к нему, то можно даже понять, что они
означают), и по ним можно определить, подключен ли ADSL-модем
маршрутизатора к провайдеру. У некоторых маршрутизаторов также
есть возможность задать настройки и определить статус соединения с
помощью web-приложения. На рис. 3 показан пример такого приложе-
ния. Нас интересуют статус соединения (Connection Status) и IP-адрес,
который провайдер назначил внешнему соединению. (Что это за адрес,
не столь важно; главное, чтоб он был!) Разорвите соединение и заново
установите его вручную, и попробуйте понять, на каком этапе возни-
кает ошибка. Если соединения не добиться, нужно проверить провод,
соединяющий маршрутизатор с телефонной линией (полезно подклю-
чить телефонную трубку, чтобы убедиться в наличии зуммера). Если
провод в порядке, остается позвонить в службу поддержки провайде-
ра. Приготовьте себе чашку кофе и вооружитесь интересной книжкой –
ждать своей очереди на линии можно очень долго!
Рис. 2. Средство настройки сети Fedora system-config-network.

Ноябрь 2007 Linux Format 69


Учебник Решаем сетевые проблемы

6 Пингуется ли удаленный сервер? ;; QUESTION SECTION:


Если соединение с провайдером хорошее, тестированию пора поднять- ;www.linuxformat.com. IN A
ся на уровень выше. Попробуйте пропинговать внешний компьютер с ;; ANSWER SECTION:
Скорая известным IP-адресом. Например, web-сервер Linux Format UK имеет www.linuxformat.com. 300 IN CNAME redirect1.future.net.uk.
помощь адрес 89.167.142.11. (Конечно, он вполне может измениться, когда вы redirect1.future.net.uk. 300 IN A 89.167.142.11
будете это читать, но пока для примера сгодится.)
# ping -c1 89.167.142.11 ;; AUTHORITY SECTION:
При выполнении
диагностических PING 89.167.142.11 (89.167.142.11) 56(84) bytes of data. future.net.uk. 245 IN NS ns0.future.net.uk.
тестов многое 64 bytes from 89.167.142.11: icmp_seq=1 ttl=56 time=24.3 ms future.net.uk. 245 IN NS ns1.future.net.uk.
можно понять по
времени отклика. --- 89.167.142.11 ping statistics --- ;; ADDITIONAL SECTION:
Если его
приходится ждать
1 packets transmitted, 1 received, 0% packet loss, time 0ms ns0.future.net.uk. 33231 IN A 89.167.142.1
15 секунд и более, rtt min/avg/max/mdev = 24.367/24.367/24.367/0.000 ms ns1.future.net.uk. 33231 IN A 89.167.143.1
то скорее всего вы Если это работает, ваше сетевое соединение в порядке. В качестве
пытаетесь последнего теста попробуйте добраться до удаленного компьютера по ;; Query time: 41 msec
соединиться
его имени: ;; SERVER: 192.168.0.1#53(192.168.0.1)
с компьютером,
которого там # ping -c1 www.linuxformat.com ;; WHEN: Fri Jul 6 15:21:44 2007
просто нет. Если PING www.linuxformat.com (89.167.142.11) 56(84) bytes of data. ;; MSG SIZE rcvd: 158
сообщение 64 bytes from kryten.future.net.uk (89.167.142.11): icmp_seq=1 Если DNS не работает, вариантов может быть несколько.
об ошибке ttl=56 time=24.2 ms В первом случае сервер DNS не может найти компьютер, к которо-
появляется
в течение пяти
му вы обращаетесь. Вот пример обращения к серверу, которого просто
секунд, то есть --- www.linuxformat.com ping statistics --- не существует:
вероятность, что 1 packets transmitted, 1 received, 0% packet loss, time 0ms # dig prophylactic.gov
вы подключились rtt min/avg/max/mdev = 24.249/24.249/24.249/0.000 ms
к серверу, который
С помощью этого теста ошибки DNS сразу же выявляются, напри- ; <<>> DiG 9.4.0 <<>> prophylactic.gov
по тем или иным
причинам отклонил мер: ;; global options: printcmd
ваш запрос. $ ping www.prophylactic.gov ;; Got answer:
ping: unknown host www.prophylactic.gov ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13168
Если удаленный компьютер пингуется только по IP-адресу, но не ;; flags: qr rd ra; QUERY:1, ANSWER:0, AUTHORITY:1,
по имени, пора изучать настройки вашего сервера DNS (LXF97). Для ADDITIONAL:0
этого лучше всего подходит утилита dig. Вот пример ее запуска (успеш-
ного). Не пугайтесь обилием подробностей; нужно лишь обратить вни- ;; QUESTION SECTION:
мание на запись A в разделе ANSWER: ;prophylactic.gov. IN A
# dig www.linuxformat.com
;; AUTHORITY SECTION:
; <<>> DiG 9.4.0 <<>> www.linuxformat.com gov. 2560 IN SOA a.gov.zoneedit.com. govcontact.
Рис. 3. Экран web- ;; global options: printcmd zoneedit.com. 1183644065 3600 900 1814400 86400
приложения ;; Got answer: Обратите внимание на статус запроса NXDOMAIN и отсутствие раз-
администратора,
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23236 дела ANSWER, который мы видели в результатах предыдущего запроса.
с помощью которого
;; flags: qr rd ra; QUERY:1, ANSWER:2, AUTHORITY:2, Если вы ввели корректное имя компьютера, то такая ошибка – след-
можно определить
статус соединения. ADDITIONAL:2 ствие чьих-то чужих проблем.

7 Можете ли вы найти свой DNS-сервер?


Вторая причина отказа DNS – ваш компьютер не может найти DNS-сер-
вер. Тогда источник проблемы, вероятно, ближе к дому.
# dig www.linuxformat.co.uk

; <<>> DiG 9.4.0 <<>> www.linuxformat.co.uk


;; global options: printcmd
;; connection timed out; no servers could be reached
Если это произошло, загляните в файл /etc/resolv.conf. В нем Linux
хранит сведения о местонахождении DNS-серверов. Если вы пользуе-
тесь DHCP, IP-адреса DNS-серверов предоставляются сервером DHCP.
Если IP-адрес статический, вы, наверно, использовали графическую
утилиту настройки для определения параметров серверов DNS (напри-
мер, system-config-network в Fedora). В любом случае результаты запи-
сываются в этот файл. Есть ли в нем корректный адрес сервера имен?
Можете ли вы пинговать его?
Если ничто не помогает, попробуйте просмотреть сетевой трафик
с помощью wireshark, утилиты отслеживания пакетов, ранее извест-
ной как ethereal. Как средство диагностики wireshark, на мой взгляд,
«последняя надежда». Дело не в недоработке этой программы: про-
грамма-то отличная, но чтобы искать неполадки в сети путем изучения
трафика на уровне пакетов, нужно очень хорошо знать TCP/IP и при-
кладные протоколы верхних уровней. Вам также может потребоваться
дополнительный компьютер в сети для наблюдения за трафиком.

70 Linux Format Ноябрь 2007


Решаем сетевые проблемы Учебник

лиз перехваченных пакетов, достаточно просто понять, что компьютер


Скорая
пытается разрешить имя в IPv6. помощь
Поиск неисправностей редко укладывается в обычные схемы
диагностики. Ошибки имеют привычку просачиваться в щели между Помните, что
сложившейся литературой, и я уверен, что некоторые читатели (пара- системы
тройка читателей у нас еще осталась, не правда ли?) столкнутся с ситу- периодически
ациями, в которых мои советы не помогут. Если у вас есть собственная выходят из строя
или временно
история сетевых войн, которой вы хотели бы поделиться с нашими отключаются для
читателями, то отправьте нам ее на обычный адрес! LXF технического
обслуживания.
Если вы считаете,
что проблема
Рис. 4. На этом экранном снимке показан простой пример пакетов
находится за
для команды # ping 192.168.0.42, перехваченных wireshark. рамками вашей
системы, может
быть, стоит
Выполните команду переждать час-
другой и
# ping 192.168.0.42 попробовать еще
на компьютере с IP-адресом 192.168.0.3. Посмотрите на верхнюю из раз.
трех панелей wireshark; в ней каждому перехваченному пакету соответ-
ствует одна строка. Средняя и нижняя панели позволяют разобрать-
ся в содержимом отдельных пакетов, но сейчас они нам не нужны.
Сообщение простое и ясное: компьютер с адресом 192.168.0.3 пытает-
ся использовать ARP для получения MAC-адреса компьютера, до кото-
рого хочет достучаться. Он пытался сделать это три раза с интервалом
в одну секунду, но не получил ответа.
Итак, мы можем сделать вывод, что с компьютером, адрес кото-
рого 192.168.0.3, все в порядке – он может получать пакеты от ком-
пьютеров сети с корректными IP-адресами, но компьютера с адресом
192.168.0.42 там просто нет.

Смотрим дальше
Вот другой пример. На клиентском компьютере установлен SUSE Linux
10.1. Проблема была в том, что каждый раз, когда браузер Konqueror
пытался соединиться с внешним сайтом (т.е. производил поиск
DNS-сервера), перед установкой соединения возникала 15-секундная
задержка. На рис. 5 в нижней части этой колонки показан результат
перехвата пакетов трафика Konqueror. Пакет 1 реализует стандартный
запрос DNS для адреса www.linuxformat.co.uk, а пакет 3 – ответ на этот
запрос, который приходит через 0.04 с от сервера DNS, встроенного в
мой маршрутизатор (192.168.0.1) с требуемым IP-адресом. Чудесно.
Проблема в том, что Konqueror также решил запросить IPv6-адрес для
этого сайта (запрос записи AAAA в пакете 2). Слава богу, маршрутиза- Рис. 5. Пример перехваченных пакетов для Konqueror.
тор игнорирует этот запрос, и через пять секунд Konqueror перенаправ-
ляет этот запрос к маршрутизатору (пакет 7) и ко внешнему серверу
DNS (пакет 6). Маршрутизатор все еще не отвечает, зато отвечает вне-
шний DNS-сервер (пакет 8): сообщает, что не может найти записи AAAA
для сайта linux.format.co.uk. Ну, теперь помаленьку проясняется...
Linux Format 93
DNS-ресолвер приписывает доменное имя по умолчанию .example.
У вас проблемы с сетью, нужно
com к адресу, который он пытается преобразовать (в результате полу-
администрировать ее более эффективно
чаем бессмыслицу www.linuxformat.co.uk.example.com) и начинает поиск
или вы просто хотите настроить сеть в
записей AAAA для этого адреса. Он тратит еще пять секунд, надеясь
Linux?
получить ответ от маршрутизатора, после чего еще раз пытается обра-
титься к внешнему серверу DNS (пакет 10). В конце концов занавес над Похоже, вам нужна помощь! К счастью, все
этой печальной историей опускается, и через пятнадцать секунд после это, и даже более того, освещено в
начала Konqueror создает соединение TCP/IP (пакеты с 17-го и далее), июньском номере, где также есть отличный
используя старый добрый адрес IPv4, с которого и начал. набор утилит администратора, которые
Оказалось, что это известная проблема, как свидетельствуют и резуль- помогут вам начать. Скорее заказывайте
таты поиска Google по фразе “Konqueror IPv6”. Решение простое: себе экземпляр – пока они не кончились!
отключите стек протоколов IPv6 в ядре, отредактировав файл /etc/
modprobe.conf, и перезагрузите систему. Это хороший пример исполь-
зования отслеживания пакетов для отладки, потому что другим спосо-
бом решить эту проблему трудно. Не нужно проводить детальный ана-

Ваше мнение Сообщите, какую тему вы хотели бы изучить.


Ноябрь 2007 Linux Format 71
Hardcore
Учебник HardcoreLinux
Linux Проверьте себя
как продвинутого пользователя

VirtualBox:
Запускайте приложения Microsoft под Linux в Ubuntu Feisty при помощи VirtualBox
от Innotek и Windows XP – Джек Найт здесь на коне…

Т
ребовалось ли вам когда-нибудь на вашей машине одно или описание найти легко. Зато приведу простой метод установки самого
несколько Windows-приложений для решения некоторой зада- VirtualBox.
чи? А может, у вас есть клиент, использующий Windows, и Лично я использую на этом уроке Ubuntu 7.04 (Feisty), но эти
вам надо работать с документами MS Project или запускать непо- инструкции должны отлично работать для dapper или edgy, при мел-
средственно Outlook для совместного использования их календарей ких изменениях (например, замене всех вхождений слова «feisty» по
MS Exchange? Один из выходов – двойная загрузка, другой – запуск смыслу). Они должны работать и в Kubuntu; правда, я еще не проде-
Наш Windows XP в качестве гостевой ОС на виртуальной машине (ВМ); но лывал мои операции в KDE, чтобы разобраться с отличиями. Машину,
эксперт есть действительно классное решение – угадайте, какое? Бесплатное, где запущен VirtualBox, я буду называть HOST [хост], а запущенные в
по крайней мере для большинства из нас! VirtualBox от Innotek – уди- нем системы – GUEST [гость]. Предполагается, что вы можете запус-
Джек Найт
Новый автор журнала, вительный продукт, и хотя я на самом деле не проверял его произ- кать командную оболочку и использовать редактор для изменения
он же технический водительность, навскидку кажется, что он значительно превосходит текстовых файлов. Прежде чем продолжить, познакомьтесь со врезкой
директор Open Source
Migrations Ltd www. и VMWare Workstation, и Server. Он располагает набором приятных Избавляемся от неприятностей.
osml.co.uk функций и возможностью организовать сетевой мост через беспро-
водной адаптер ноутбука (нечто прежде немыслимое в VMWare) – чем Настраиваем TAP-устройство
не продукт-конфетка? Нам нужно установить пакеты, а именно User Mode Linux Utilities и
Innotek применяет дуальную схему лицензирования – существуют Proxy Arp Routing Daemon. Для начала убедитесь, что подключен
открытая и закрытая двоичная версии VirtualBox (последняя бесплатна репозиторий universe: в строке-меню Gnome выберите Система >
для ознакомления или персонального использования). Более того, у Администрирование > Источники приложений, затем установите галоч-
Innonek весьма разумная политика лицензирования для малого биз- ку Свободное ПО, поддерживаемое сообществом (universe). Теперь
неса – по запросу о покупке коммерческих лицензий на две машины откройте терминал и введите:
я был любезно извещен, что это относится к категории «бесплатно»! sudo apt-get install uml-utilities parprouted
Уже в восторге? Ну, это только начало – а вот и убойный довод: при sudo chgrp vboxusers /dev/net/tun
помощи этой штуки можно запускать отдельные приложения Windows Теперь надо встроить TAP в сетевой адаптер хост-системы. Это
на рабочем столе Linux, и они появятся как обычные окна Gnome, KDE особенно полезно для ноутбуков с беспроводными интерфейсами,
(или другие) на вашем X-столе. Прибавьте сюда Beryl/Compiz, и получи- поскольку WLAN-адаптер обычно получает IP-адрес через DHCP, но гос-
те весьма впечатляющий инструмент. Качайте с www.virtualbox.org. тевая машина не может делать этого – как правило, несколько IP-адре-
Но как заставить все это работать? Что ж, понадобится кое-какая сов нельзя получить для того, что в сущности является клонированным
подгонка и на стороне Linux, и на стороне Windows – но результат сто- интерфейсом. К тому же если беспроводной интерфейс использует
ящий, по крайней мере, по моему скромному мнению. В этой статье защиту WPA, то появление интерфейса-клона, вероятно, заставит WAP
я проведу вас через настройку моста через беспроводной адапетрна (Wireless Access Point – точка беспроводного доступа) заподозрить, что
ноутбуке, а продолжу настройкой двух типичных приложений, зави- компьютер под атакой. Итак, сделаем вот что: выявим неиспользован-
сящих от Windows – MS Project и Outlook, чтобы под Ubuntu Feisty они ные подсети, выберем пару уникальных IP-адресов и присвоим один
выглядели как родные. TAP-устройству, а другой гостевой машине. Неважно, что они фиксиро-
ваны: адрес хост-машины будет динамическим, и они будут проходить
План действий через маскардинг. В итоге гостевая машина будет «просто работать»,
Вот что мы проделаем на следующих страницах: где бы вы ни получили WLAN-соединение для хоста.
Кое-что подправим для устранения неприятностей с USB и DVD. Проще всего создать скрипт для инициализации TAP-устройства и
Окно Wordpad, Создадим TAP-устройство на сетевом интерфейсе базовой машины поддержки конфигурации сети. Вот мой вариант:
интегрированное
(идеально для WLAN-интерфейса ноутбука). #!/bin/bash
в Ubuntu Feisty.
Установим персональную/пробную версию VirtualBox от Innotek. # Имя: tapctrl
Создадим ВМ для Windows XP и настроим ее на использование сете- # Использование: tapctrl start|stop
вого TAP-устройства. # Обеспечивает: tap для virtualbox во внешней сети, включая
Установим Windows XP (самые общие беспроводные
моменты). # Аннотация:
Настроим Windows XP со всеми тонкостя- # устанавливает tap-устройство для совместного использования
ми, для безупречной работы. интерфейса wifi с vbox
Настроим VirtualBox на работу без ручного # Описание: создает виртуальный tap-интерфейс, присваивает IP-
вмешательства и автоматический старт. адрес, настраивает iptables
Введем пункты меню для наших приложе- # для маскарадинга через устройство по умолчанию
ний-примеров. # и настраивает прокси arp с демоном parprouted для корректной
В детали установки гостевой ОС я вдаваться маршрутизации
не буду: если кто не знает, как это сделать, # Автор: Jack Knight

72 Linux Format Ноябрь 2007


Hardcore Linux Учебник

Windows в Ubuntu
# - Open Source Migrations Ltd, UK (http://www.osml.co.uk)
# Настраиваем переменные здесь:
DESC=”Virtualbox IP tap”
Избавляемся от неприятностей
PATH=/sbin:/bin:/usr/sbin:/usr/bin
TUNDEVICE=tap1 # Произвольно, но должно соответствовать Вот пара советов, которые вам, вероятно, приго- рите Администрирование, Пользователи и группы
устройству, указанному в сетевых настройках VirtualBox. дятся для разрешения некоторых типичных про- и нажмите кнопку Управление группами. Просто
LANDEVICE=eth1 # Исправьте, чтобы соответствовало вашему блем VirtualBox: отметьте пользователей, которым вы разрешите
сетевому устройству – может быть eth0, eth1 ath0, wlan1 и т. д. использовать VirtualBox, и нажмите OK.
IPADDR=172.16.254.254 # Произвольно, но убедитесь, что вы взяли Сменные USB-устройства не доступны
нечто из неиспользуемой подсети По умолчанию, права подсистемы udev не разре- Невозможно прожечь DVD
case “$1” in start|restart|force-reload) шают вам использовать сменные носители вроде Достаточно установить параметр, разрешающий
echo -n “Starting $DESC: “ брелков и т.п. из VirtualBox. Чтобы исправить это, запись/транзитную передачу DVD:
tunctl -t $TUNDEVICE -u $USER нужно изменить настройки USB, сделав их доступ- VBoxManage modifyvm “Guest_name” -
ip link set $TUNDEVICE up ными в гостевой системе. dvdpassthrough on
ip addr add $IPADDR dev $TUNDEVICE Надо всего лишь слегка переделать права, запус-
arp -Ds $IPADDR $TUNDEVICE pub тив в терминале следующую команду:
iptables -t nat -A POSTROUTING -o $LANDEVICE -j gksudo gedit /etc/udev/rules.d/40-permissions.
MASQUERADE rules
iptables -t nat -P POSTROUTING ACCEPT # Разрешаем Поищите строку с usb_device и измените ее так:
работу других интерфейсов # Отредактировано для подключения USB
echo 1 > /proc/sys/net/ipv4/ip_forward устройств в VirtualBox
echo 1 > /proc/sys/net/ipv4/conf/$TUNDEVICE/proxy_ arp # Исходная строка закомментирована
# SUBSYSTEM==”usb_device”, MODE=”0664”
parprouted $LANDEVICE $TUNDEVICE
SUBSYSTEM==”usb_device”, GROUP=”vboxusers”,
stop)
MODE=”0664”
echo -n “Stopping $DESC: “
Теперь убедимся, что все пользователи VirtualBox
Администрирование членов группы.
iptables --table nat -F входят в группу vboxusers. В меню Система выбе-
killall parprouted
ip link set $TUNDEVICE down ;;
*) Настройка виртуальной машины
N=/etc/init.d/$NAME На хост-ситеме Ubuntu нам понадобится механизм совместного исполь-
echo “Usage: $N start|stop” >&2 зования файлов мирами Linux и Windows. К счастью, VirtualBox имеет
exit 1 для этого встроенный механизм , так что Samba на хост-машине или
;; NFS на обеих сторонах можно не устанавливать. Учтите: совместного
esac использования вашего жесткого диска НЕ получится, пока вы не уста-
exit 0 новите Vbox GuestAdditions в гостевой системе! При создании общих
Этот код есть на DVD; если кому-то нужно, у меня также есть более папок гостевая система должна быть выключена.
проработанный скрипт, работающий со многими пользователями, вир- Общие папки работают только в версии 1.3.8; в версию 1.4.0 вкра-
туальными машинами и устройствами и не опубликованный здесь ради лась ошибка! Если у вас та самая версия, и вы не хотите возиться с
простоты. Не стесняйтесь обращаться за ним ко мне по электронной Samba ради совместного доступа, скачайте iso с www.virtualbox.de/
почте через мой web-сайт. download/1.3.8/VBoxGuestAdditions_1.3.8.iso.
Выключите ВМ, смените виртуальный cdrom на этот iso и переза-
Установка VirtualBox пустите гостевую систему. Установите VirtualBoxGuest Additions, и все Общие папки: вы
видите их со стороны
К сожалению, поскольку на момент написания VirtualBox еще не попал должно заработать. Пока что я не слыхал о неприятностях, связанных
хост-машины.
в основные репозитории Ubuntu, перед установкой пакета придется с «не той» версией гостевых дополнений. Это
добавить новый сторонний репозиторий от VirtualBox: должно вас временно выручить, до следую-
sudo sh -c ‘echo “# VirtualBox репозиторий для Ubuntu Feisty Fawn щей версии, где Innotek, скорее всего, испра-
вит эту ошибку.
deb http://www.virtualbox.org/debian feisty non-free” \ Для настройки на стороне хоста, с вы-
> /etc/apt/sources.list.d/feisty-virtualbox.list’ ключенной гостевой ОС, просто выберите
вашу ВМ в окне VirtualBox Manager и нажми-
wget http://www.virtualbox.org/debian/innotek.asc -O- | sudo apt-key add те Свойства, а затем Общие папки у нижнего
- края, как показано на экранном снимке спра-
ва, заполните два поля подходящими значе-
sudo apt-get update ниями и нажмите OK. Теперь запустите госте-
sudo apt-get -y install virtualbox вую ОС и, открыв окно DOS, введите:
net use E: \\vboxsvr\Shared_Folder

Ноябрь 2007 Linux Format 73


Учебник Hardcore Linux

и добавьте /Persistent:Yes к этой команде, если хотите сохранить это


при перезапуске. Внимание: не ошибитесь в написании vboxsvr – это
важно!
Альтернативный метод – открыть окно Проводника Windows и выбрать
Сервис > Подключить сетевой диск; вы увидите диалоговое окно,
похожее на то, что справа. Тем же манером вставьте подходящие зна-
чения и нажмите Готово. Если все в порядке, то появится новое окно
Проводника с содержимым каталога хост-машины.
Далее включим RDP-протокол, чтобы разрешить удаленные сессии.
Просто щелкните на флажке Enable VRDP Server, как показано в этой
колонке ниже.

Настройка Windows XP
Следующие настройки в принципе могут работать и для других версий
Windows, не XP, но я не берусь этого утверждать, поскольку не успел
протестировать. Нам нужны такие настройки, чтобы наша установлен-
ная Windows выводила на экран только панель задач, но не рабочий Подключение дисков – сделайте это как в Windows. Убедитесь, что
стол. Для этого поковыряемся в реестре; но учтите, что в Windows все значения соответствуют именно вашей системе.
XP SP2 доступ к рассматриваемым настройкам ограничен, и обычный Работа в Windows с правами администратора столь же небезопасна,
пользователь не вправе изменять эту часть – поэтому сперва мы вре- как работа в Linux или Unix от имени суперпользователя, и если у вас
менно присвоим права администратора пользователю, который будет нет для нее серьезных причин, выйдите из системы и войдите как
использовать сессию Windows. администратор, превратите пользователя в обычного, и тогда мы смо-
Войдите как «Администратор» (или любой другой пользователь с жем завершить наши другие задачи.
достаточными правами), затем перейдите в нужное место посредством
Пуск > Настройки > Панель управления > Пользователи и щелкните на Настройка Windows на автоматический вход.
записи, которую хотите использовать для запуска Windows-программ. Нажмите кнопку Пуск, выберите Выполнить, введите в окне
Щелкните на Изменить тип учетной записи и установите переключатель control userpasswords2
в Администратор компьютера, затем обратитесь к кнопке Изменить тип и нажмите OK.
учетной записи. Теперь выйдите из-под администратора и войдите как Снимите галочку около Требовать ввод имени и пароля пользовате-
ваш пользователь, запустите regedit32 и найдите следующий ключ: ля и нажмите Применить.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Появится окно с запросом: под каким пользователем и паролем вы
Policies\Explorer хотите осуществить автоматический вход. Просто введите ранее опре-
Нам необходимо создать новое значение DWORD с именем деленные имя и пароль пользователя.
NoDesktop и присвоить ему значение 1, чтобы Windows отображала
только приложение, которое мы хотим запустить, а не весь рабочий Установка Гостевых Дополнений VirtualBox.
стол. Для этого выберите Правка в главном меню, далее Создать и Выберите в главном меню окна вашей ВМ пункт Devices [Устройства],
Параметр DWORD и введите имя NoDesktop, затем нажмите Enter. Ключ затем щелкните на Install Guest Additions.
теперь должен быть выделен, поэтому нажмите вновь Enter, чтобы Отвечайте на вопросы установщика для завершения установки.
отредактировать его и установить его значение в 1. По завершении все Настройка фиксированного IP-адреса, используемого Windows.
должно выглядеть как на экранном снимке в конце этой колонки. Перейдите к Пуск > Настройка > Панель управления > Сетевые под-
Другой вариант – загрузка файла www.osml.eu/files/nodesktop.reg с ключения.
сервера Open Source Migrations Limited (используйте его на собствен- Выполните правый щелчок на Подключение к локальной сети и
ный страх и риск). Сохраните его на своем рабочем столе, затем просто выберите Свойства.
дважды щелкните на нем, подтвердите действие, и реестр соответству- Введите IP-адрес, соответствующую маску подсети, адрес шлюза
ющим образом изменится. по умолчанию и по крайней мере один DNS-сервер. Вы можете найти
Теперь вы, вероятно, захотите отнять права администратора у учет- ваш(и) DNS сервер(а), набрав в терминале хост-машины:
ной записи, повторив предыдущую процедуру в обратном порядке. cat /etc/resolv.conf
После слов nameserver указаны IP-адреса DNS-серверов. Шлюз по
умолчанию должен соответствовать определенному для вашего TAP-
интерфейса в /etc/tap.conf. Учтите: IP-адрес должен отличаться от IP
Virtual Box, прописанного в файле /etc/tap.conf. Я предлагаю устанав-

Включите VRDP,
установив флажок. Реестр Windows настроен на отключение рабочего стола Windows.

74 Linux Format Ноябрь 2007


Hardcore Linux Учебник

ливать IP-адреса, отсчи- Настройка пароля


тывая от конца диапазона автоматического
назад в tap.conf – т. е. от входа Windows.
254 и меньше для каж-
дого TAP-устройства – и
от начала диапазона для
ваших гостевых машин,
например, 172.16.254.1 и
больше. Настройте ваш
маршрутизатор на выда-
чу Windows другого IP.
У большинства из вас,
вероятно, только одно
TAP-устройство, так что Вам нужно будет соответственно изменить переменные. Практически
Настройка Windows на автоматический это не должно быть про- все, но будет виден полный рабочий стол, поскольку Windows необходи-
вход – выбирайте с умом! блемой. мо перезагрузить, чтобы все новые возможности заработали. Это немно-
го путано, но сделать так придется, потому что XP не будет воспринимать
Включение RDP-соединений в Windows и установка пароля. удаленные подключения, пока вы хоть раз не войдете. Короче, нажмите
Нажмите Пуск > Настройка > Панель управления > Система и перей- комбинацию клавиш Ctrl+Esc и выберите Завершить сеанс.
дите на вкладку Удаленные сеансы. Выполните предыдущую команду снова, и у вас, после небольшой
Поставьте галочку напротив пункта Разрешить удаленные подключе- задержки на вход пользователя, должно появиться отдельное окно
ния к этому компьютеру и нажмите OK. Проводника.
В Панели управления щелкните на Пользователи. Выберите пользо- Вы должны видеть просто запущенное окно Проводника, а при
вателя, под которым хотите входить, и нажмите Создать пароль. нажатии одной из вышеупомянутых стрелок на нижней панели Gnome
Введите ваш пароль в появившейся строке и нажмите кнопку появится кнопка Пуск и т.д.
Создать пароль. Учтите: этот пароль надо установить обязательно, ина- Теперь мы можем войти в верхнее меню Ubuntu, Система >
че нормальной работы не будет. Параметры > Главное меню и определить важные приложения, без
Далее, загрузите файл: www.cendio.se/files/thinlinc/seamlessrdp/ которых вам не жить. Например, для установки Outlook (подразуме-
seamlessrdp.zip и распакуйте его в C:\seamlessrdp. вается, из Office 2003) вам следует поместить в строку следующую
Теперь подготовим Windows XP Pro для разрешения удаленного команду:
доступа с глубиной цвета 256 бит. /usr/bin/rdesktop -rsound -A -s “c:\seamlessrdp\seamlessrdpshell.exe C:\
Нажмите Пуск, Выполнить, введите в поле regedit и нажмите OK. Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE” <IP-адрес
В редакторе реестра перейдите к ключу: HKEY_LOCAL_MACHINE\ Windows XP>:3389 -u “<Имя пользователя Windows >” -p <Ваш пароль
SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp Windows >
В панели справа выделите ключ ColorDepth и щелкните на нем правой Наконец, выключить ВМ можно так:
кнопкой мыши. Выберите Изменить и измените поле Значение на 4. VBoxManage controlvm “Windows-XP-Pro” savestate
Или, для удобства, просто загрузите файл: www.osml.eu/files/ или так:
rdpcolourdepth.reg с сервера Open Source Migrations Limited (используй- VBoxManage controlvm “Windows-XP-Pro” acpipowerbutton
те на свой страх и риск). Сохраните его на рабочем столе, затем дважды для сохранения текущего состояния машины; или имитировать отклю-
щелкните на нем, подтвердите действие – и реестр будет изменен. чение питания. Пора звать к своему монитору друзей – пусть подивятся
На этом завершается настройка на стороне Windows. на ваши подвиги! LXF

Настройка: VirtualBox От редакции


Теперь можно настроить VirtualBox на автозапуск при загрузке. Во- Вышедший в начале сентября VirtualBox 1.5.0 позволяет достичь описанного в статье эффекта
первых, мы собираемся запустить вашу машину из командной строки, меньшими усилиями. Он поддерживает функцию Seamless Windows integration, позволяющую
поэтому в терминале введите: «вытаскивать» окна гостевой ОС Windows и панель задач на рабочий стол Linux. Вы найдете
VBoxManage startvm “WinXPPro” -type vrdp версию 1.5.2 на нашем DVD.
Замените здесь WinXPPro на имя вашей ВМ. Чтобы Windows вся-
кий раз запускалась без проблем, выполните Система > Параметры
> Сеансы и выберите вкладку Запускаемые при старте программы.
Щелкните на кнопке Создать, затем скопируйте и вставьте указанную
выше команду в текстовое поле и нажмите OK.
Перед запуском новой ВМ необходимо убедиться, что наша нижняя
панель сворачивается, иначе в Windows будут не видны кнопка Пуск и
системный лоток, и нам это необходимо по крайней мере один раз (а
может, и больше): если мы далее в Windows наткнемся на проблемы
или для установки новых приложений. Просто щелкните правой кноп-
кой мыши в пустом месте нижней панели и выберите Свойства, устано-
вите флажок Показывать/скрывать кнопки и нажмите OK. Теперь слева
и справа на вашей панели есть кнопки с изображением стрелки, позво-
ляющие при нажатии ее спрятать.
Теперь впервые запустим нашу ВМ Windows. В терминале набе-
рите:
rdesktop -rsound -A -s “c:\seamlessrdp\seamlessrdpshell.exe C:\
Windows\explorer.exe” <IP-адрес Windows XP>:3389 -u “<Имя Статический IP-адрес в Windows XP присваивается через Пуск >
пользователя Windows>” -p <Ваш пароль Windows> Настройка > Панель управления > Сетевые подключения.

Ноябрь 2007 Linux Format 75


Программирование
Учебник Ананас со вкусом Ананаса Изучаем
учетную платформу со свободной лицензией

Создаем
ЧАСТЬ 2 Вариации «Hello, World!» набили оскомину – и Андрей Паскаль будет
стараться избежать надоевшего приветствия до последнего, а попутно создаст
бизнес-приложение, не написав ни строчки кода!

И
з чего состоит приложение Ананаса? Как начать работу над Для создания новой бизнес-схемы требуется указать (или создать
собственной бизнес-схемой? новую) группу в окне диалога выбора бизнес-схем и активировать
В стародавние времена хорошим педагогическим при- пункт Новая бизнес-схема меню Действия.
емом считалось дать в начале учебника пример программы, печатаю-
щей на экране приветствие «Hello, World!».
Времена меняются, требования растут, и вот уже новая педагоги-
ческая мода диктует необходимость демонстрировать в качестве при-
Наш мера первого приложения не просто команду вывода на экран, а целую
эксперт готовую программу по редактированию таблицы базы данных. Такая
программа должна уметь Создавать, Показывать, Изменять и Удалять
Андрей Паскаль данные в таблице БД, поэтому ее принято называть CRUD-приложени-
использует Linux ем, по первым буквам английских слов Create, Retrive, Update, Delete.
более семи лет и Так как Ананас – бизнес-платформа, то и наше первое CRUD-прило-
играет роль
жение будет редактировать данные о бизнес-партнерах, также называ-
координатора проекта
Ананас. Он также емых иногда контрагентами. Итак, сегодня мы разработаем CRUD-при-
знает ответ на ложение «Справочник контрагентов». Интересно заметить, что среда
популярный у всех разработки платформы Ананас позволяет создать CRUD-приложение
новичков вопрос:
без какого-либо написания кода, так что я даже не стал бы называть
«Какой дистрибутив
Linux мне выбрать?». такую деятельность программированием. Скорее это проектирование.
Для каждого контрагента в справочнике будет храниться следую-
щий упрощенный для нашего случая состав реквизитов: Открывшийся диалог позволяет задать параметры новой бизнес-
Наименование; схемы. Наиболее важными из них являются параметры доступа к базе
Почтовый адрес; данных на SQL-сервере и положение файла бизнес-схемы в файловой
Телефон; системе вашего компьютера. Если вы укажете несуществующую базу
E-Mail; данных или несуществующий файл бизнес-схемы, они будут созданы
Банк. Ананасом автоматически.
Разработка бизнес-схем ведется в среде разработки Дизайнер На Рис. 2 показан пример заполнения параметров настройки биз-
платформы Ананас (Рис. 1). После успешного запуска командой нес-схемы для случая использования MySQL в качестве сервера баз
[app@app ~]$ ananas-designer данных.
Дизайнер предложит выбрать бизнес-схему для работы из списка, Имя файла ресурса содержит ссылку на файл, в котором хранятся
точно так же, как предлагает выбрать бизнес-схему при запуске сам значения всех остальных полей этого диалога. Имеется возможность
Ананас. Однако, в отличие от Ананаса, Дизайнер предоставляет доступ выбора ранее созданного файла ресурса: для этого достаточно вызвать
к настройке и созданию/модификации структур данных, алгоритмов, а диалог выбора файла щелчком по кнопке, расположенной справа от
также печатных и экранных форм бизнес-схемы. поля с именем файла ресурса. При открытии файла ресурса значения
всех полей диалога будут заменены значениями из этого файла.
Заголовок базы данных предназначен для пользователя и отобра-
жается в списке доступных для выбора баз данных в диалоге Список
бизнес-схем, появляющемся при старте Дизайнера.
Имя базы данных содержит имя базы данных, используемое систе-
мой при доступе к серверу базы данных.
Тип сервера базы данных позволяет выбрать один из поддержива-
емых Ананасом серверов баз данных (MySQL, PostgreSQL или SQLite).
Разумеется, следует убедиться, что соответствующий выбираемому
вами типу сервер установлен и запущен, так как здесь вы указываете
лишь драйвер, который не будет работать, если не установлен соответ-
Рис. 1. ствующий сервер.
Среда разработки Адрес сервера базы данных – это адрес компьютера, на котором
платформы Ананас. установлен сервер выбранного выше типа. Разумеется, сервер баз

Месяц назад Мы разобрались, что такое Ананас, и с чем его едят.

76 Linux Format Ноябрь 2007


Ананас Учебник

CRUD-приложение
(Рис. 3) нас в первую очередь будет интересовать раздел Справочники.
Определение справочника начинается с присвоения ему имени, кото-
рое в дальнейшем будет использовано в программировании биз-
нес-логики в процедурах на языке Ананас-Скрипт. В главном окне
Дизайнера щелкните правой клавишей мыши по разделу Справочники
и в появившемся меню выберите пункт Новый.

Элемент
справочника

Элемент справоч-
ника – одна из двух
составляющих
любого справочника
Рис. 2. Пример заполнения параметров настройки новой бизнес- Ананаса. Второй
схемы. составляющей
является Группа.
Группы служат
данных может работать как на том же самом компьютере, где вы уста-
для группировки
новили Ананас, так и на любом другом. Если сервер баз данных запу- элементов и органи-
щен локально, здесь следует указать значение localhost. В остальных зации вложенного
случаях следует узнать адрес сервера у системного администратора. В появившемся экранном диалоге закладка Общий позволяет хранения элементов
Адрес может быть задан как DNS-именем (например, myhost.com), так задать имя справочника и заполнить поле Описание. На данном эта- справочников в виде
древовидной струк-
и числовым значением (например, 127.0.0.1). пе в этом диалоге больше ничего изменять не требуется. Следует туры. Каждая группа
Порт сервера базы данных по умолчанию не содержит никакого закрыть его и перейти к определению реквизитов Справочника контра- может хранить в
значения. Его следует задавать лишь в тех случаях, когда используется гентов. Разумеется, среда разработки Ананас позволяет организовать себе другие группы
нестандартный порт, что случается достаточно редко. По этому вопро- древовидную структуру справочника. Однако, желающих изучить эту или элементы
справочника .
су следует консультироваться с системным администратором, выпол- тему я адресую к «Справочному руководству по Дизайнеру» Ананаса,
Элемент справоч-
нявшим установку сервера баз данных. Если вы выполняли установку а для нашего простого CRUD-приложения древовидная структура в ника предназначен
сервера баз данных самостоятельно и не меняли порт сервера баз дан- Справочнике контрагентов нам не нужна. исключительно для
ных, то поле Порт сервера базы данных следует оставить пустым. Как только вы закроете диалог, где было задано имя справочника, хранения реквизи-
Задав таким образом значения полей, следует нажать кнопку OK, а в дереве бизнес-схемы появится папка с именем Справочник конт- тов. Справочник,
не содержащий
затем выбрать только что определенную бизнес-схему и снова нажать рагентов, внутри которой видны папки Элемент, Группа, Формы. Для группы, а состоящий
OK. После получения подтверждения о локальном сохранении настро- определения первого реквизита справочника следует щелкнуть правой лишь из одних
ек (в каталоге ~/.ananas) откроется главное окно Дизайнера. кнопкой мыши по папке Элемент и выбрать пункт Новый появившего- элементов, принято
Наше CRUD-приложение предназначено для управления ся меню. В открывшимся диалоге необходимо задать такие свойства называть плоским.
Справочником контрагентов, поэтому в дереве бизнес-объектов реквизита, как Имя, Тип, Ширина (Рис. 4). Прочие свойства задавать
не обязательно, их назначение описано в «Справочном руководстве
по Дизайнеру». Закрыв диалог, следует повторить действия снова для
определения второго, третьего и т.д. реквизитов справочника.

Рис. 4. Задание имени «Наименование» и типа «Символ» реквизиту


Рис. 3. Дерево бизнес-объектов бизнес-схемы Ананаса. справочника.

Ноябрь 2007 Linux Format 77


Учебник Ананас

Диалог с пользователем Диалог – это просто


Задав реквизиты Справочника контрагентов, мы спроектировали
структуру данных и подготовили место для их хранения. Теперь необ- Среда разработки Ананас оснащена великолепным WYSIWYG-редакто-
ходимо нарисовать экранный диалог для изменения сведений. Для ром диалогов, позволяющим в наглядной форме разместить визуаль-
этого следует щелкнуть правой клавишей мыши по подпапке Формы ные элементы, такие как надписи, кнопки и поля ввода в окне диалога.
папки Справочник контрагентов и выбрать пункт Новый появившегося Более того! Диалоги Ананаса являются динамически масштабируе-
меню. В открывшемся диалоге важно определить ровно одно свойство мыми, что, во-первых, совершенно необходимо для сохранения опрят-
(Режим формы), присвоив ему значение «Диалог элемента». ного вида диалогов в гетерогенной среде, когда шрифты операцион-
ной системы Windows могут существенно отличаться в пропорциях от
шрифтов среды X Window операционной системы Linux; во-вторых,
создает дополнительные удобства в ситуации, когда пользователь
желает растянуть окно диалога, чтобы использовать все разрешение
своего экрана, улучшив тем самым отображение информации.

Принять, использовав для этого элемент ActionButton палитры. Кнопка


Именно это свойство отвечает за то, что Отмена должна просто закрывать окно. Кнопка Принять должна допол-
форма будет использоваться в качестве нительно сохранять содержимое полей ввода в базе данных.
редактора реквизитов элемента Справочника Поведение кнопки задается в диалоге, вызываемым двойным
контрагентов всякий раз, когда пользова- щелчком по ней. Для кнопки Отмена следует поставить галочки опци-
тель будет добавлять нового контрагента ям Простое действие и Закрыть диалога. Для кнопки Принять следует
или редактировать реквизиты уже имею- поставить третью галочку – Обновить. Для смены текста надписи на
щегося. Для собственного удобства целесо- кнопке в контекстном меню, вызываемом правой клавишей мыши сле-
образно заполнить поле Имя каким-нибудь дует выбрать пункт Edit Text....
осмысленным текстом, например, Редактор
реквизитов. Сделаем красиво
Теперь все готово для перехода к худо- В принципе, мы уже закончили – наше приложение будет работать. Но,
Рис. 5. Виджет для текстовых надписей.
жественной, если можно так выразиться, час- как всякий уважающий себя кулинар и садовник позаботится о вне-
ти создания нашего приложения – «рисова- шнем оформлении своего творения, прежде чем показать его публике,
нию» экранного диалога. Запустите Редактор так и программист должен позаботиться о привлекательности создава-
диалогов, нажав соответствующую кнопку на емого им приложения. Для придания опрятности нашему диалогу вос-
вкладке Дизайн – отобразится пустое окно. пользуемся возможностями динамического, автоматически масштаби-
Слева от него будет расположена палит- руемого размещения элементов. В этом деле нам помогут «пружинки»
ра доступных диалоговых элементов (вид- и типы размещения «Сетка» , «Горизонтальные полоски»
жетов) – окно Toolbox. Справа – редактор и «Вертикальные полоски» .
свойств элементов – окно Property Editor. Начнем с полей ввода и надписей к ним. Разместив вертикально две
Для нашего «натюрморта» будет достаточно пружинки, как показано на Рис. 8, и выделив их все, последовательно
использовать ровно три элемента палитры: щелкая мышкой и удерживая клавишу Shift на клавиатуре, применим
Text Label для подписей к полям ввода тип размещения «Сетка» . Получим первый блок сгруппирован-
(Рис. 5). ных элементов диалога. Проделайте то же самое с кнопками Отмена и
DBField для полей ввода (Рис. 6) Принять, только «пружинки» выберите горизонтальные, а тип разме-
ActionButton для кнопок Отмена и Принять щения – «Вертикальные полоски» . Последним шагом необходи-
(Рис. 6) мо снять выделение, ткнув мышкой в пустую область окна диалога, а
Для перетаскивания элементов требуется затем применить тип размещения «Горизонтальные полоски» .
два клика: первый по элементу палитры, вто- Не стоит печалиться, если требуемый результат не удастся полу-
рой – по окну диалога. Перетащите пять раз чить с первого раза. Во-первых, всегда есть возможность отменить
TextLabel и DBField, разместив их по своему последнее действие при помощи клавиатурной комбинации Ctrl+Z,
вкусу или как показано на Рис. 7, отредак- во-вторых, правила динамического масштабирования определяются,
тируйте тексты надписей (двойной щелчок помимо прочего, свойством sizePolicy, индивидуально определяемым
будет здесь незаменим) и задайте привяз- для каждого элемента диалога в редакторе свойств Property Editor.
ку для полей ввода, выбрав для каждого из
них соответствующий реквизит Справочника
контрагентов из списка. Список вызывается
двойным щелчком по полю ввода, лежащему
в окне диалога. Именно связывание данных
(Data bindings), ставшее популярным благо-
даря таким средам разработки, как Borland
Delphi и Visual Basic, и с успехом применяе-
мое в среде разработки платформы Ананас,
позволяет нам обойтись при создании CRUD-
приложения без написания кода.
После проведения несложной процеду-
Рис. 6. Панель виджетов для размещения ры связывания для всех пяти полей ввода,
в окне диалога. добавьте в окно диалога кнопки Отмена и Рис. 7. Связывание данных в действии.

78 Linux Format Ноябрь 2007


Ананас Учебник

Рис. 8. Окно диалога с включенным режимом динамического


масштабирования.

Такая работа требует некоторой привычки и терпения первое время.


Овладев методикой задания динамического масштабирования и распо-
ложения элементов, вы будете тратить на нее минимум времени.
Теперь нашу работу необходимо сохранить и, для проверки – запус-
тить Ананас. Дизайнер закрывать не требуется. При успешном сохране-
нии в соответствующем окне должны появиться сообщения об успеш- Рис. 9. Результат – CRUD приложение «Справочник контрагентов».
ном обновлении структур базы данных, предназначенных для хранения
бизнес-объектов. Если появились ошибки, то скорее всего Ананасу не
хватило прав для записи в один из каталогов или не работает доступ
к базе данных. Помощь по затруднительным ситуациям доступна на
форуме проекта.

Последний штрих
А теперь – сюрприз: немного кода все-таки потребуется. Дело в том,
что среда исполнения приложений Ананаса не знает, какой экранный
диалог нашей бизнес-схемы следует запускать сразу после старта,
ведь в нашем приложении могло бы быть несколько экранных форм.
Нужен какой-нибудь способ известить Ананас о том, что при старте
он должен открыть наш Справочник контрагентов. Для этого предус-
мотрена предопределенная функция на Ананас-Скрипте с названием
on_systemstart(). Если среда исполнения находит такую функцию в
глобальном модуле бизнес-схемы при старте, она будет автоматически
запущена на выполнение.
Доступ к глобальному модулю осуществляется через двойной щел-
чок по корню дерева бизнес-объектов в Дизайнере и выбор вкладки
Глобальный модуль появившегося диалога.
Вот код, который нужно туда записать.
function on_systemstart()
{
sys.Message(0,”Привет, Мир! :)”);
cat = new CatalogEditor(“Справочник контрагентов”);
cat.edit();
}
Да, да! Он все-таки напечатает «Привет, Мир!» :) в окне сообщений
(Рис. 9). LXF

Через месяц Меню, проектирование документов – и прочая настройка пользовательского интерфейса.

Ноябрь 2007 Linux Format 79


Java
Учебник Enterprise
Серверные Edition Учимся
приложения писать
на Java
клиент-серверные приложения на Java

Struts, великий
ЧАСТЬ 10 Компьютеры были придуманы, чтобы избавить человечество от рутины –
так зачем делать вручную то, что можно сгенерировать автоматически?
Александр Бабаев покажет, как Struts позволяет избежать монотонного
кодирования приложений J2EE.

В
ручную делать простые вещи хорошо: быстро, просто, понят- В качестве примера, создадим уже знакомую телефонную кни-
но. Но что делать, если нужно так же быстро и просто создать гу. Сперва каталог; в нем, как всегда, организуем подкаталоги для
нечто большое? Сайт-портал, например? Не тот портал, кото- исходных текстов, скомпилированного кода, библиотек и JSP-файлов.
рый Яндекс, а корпоративный – где интегрирована система хранения Получится что-то такое:
документов, информационная система, наша адресная книга?
В PHP в этом случае приходит на помощь CMS. Сладкие сло-
ва, которые обещают «в два клика» сделать вам все что угодно.
Маркетинг, конечно, страшная сила, но почему так много CMS на PHP,
и нет на Java1?
Возможно, просто потому что не нужно. Место CMS в Java занима-
ют разнообразные инструментарии разработчика, которые помогают
обходить сложные и рутинные работы. В результате можно небольши-
ми силами сделать систему, по сложности намного превосходящую то,
что можно сделать «вручную».

Что включается в Struts?


Struts не изобретает велосипедов. В его основе лежит шаблон
«MODEl-View-Controller», который мы рассматривали в LXF92, но
с его помощью проще создать грамотное приложение, так как четко
определены задачи по его созданию; проще разобраться, что необхо-
димо написать для получения результата.
Итак, Struts (будем рассматривать более простую, первую версию)
содержит:
API для создания обработчика запросов (менеджер, распределяю-
щий запросы по действиям) и для создания самих действий (Actions).
API для создания обработчиков форм.
API для работы с проверкой корректности заполнения (валидации)
форм.
Tiles. Расширение для создания модульных страниц (что-то «вро-
де SSI»).
JSP-taglib, библиотека JPS-тэгов для упрощения написания
JSP-страниц.
XML-конфигурационные файлы, для простой и быстрой настройки
всего вышеперечисленного и связи его друг с другом.
Все это в предыдущих статьях мы делали вручную. Теперь настало
время проделать то же самое более «технологично».

Как этим пользоваться?


Во-первых, библиотеку нужно скачать. Это можно сделать со
странички http://struts.apache.org/download.cgi#struts138. После Затем в каталог библиотек нужно положить JAR-файлы Struts.
чего следует распаковать полученный файл и вытащить оттуда все Готово? Тогда можно приступать к кодированию.
JAR-архивы. Когда запрос приходит в сервлет, он первым делом попадает в
Struts, который перенаправляет его в менеджер запросов (ActionServet)
1
Тут написана не совсем правда, и даже совсем не правда. CMS на Java есть, и очень и далее в нужное действие (Action). Это происходит примерно так:
качественные. Но они далеко не всегда нужны. В том числе и потому, что есть Struts.

Месяц назад Мы немного отклонились от Web и узнали, как отправлять электронную почту.

80 Linux Format Ноябрь 2007


Серверные приложения на Java Учебник

и ужасный На DVD
Код примеров ста
Struts 1.3.8
тьи

Internet Server
ActionServlet

… Actions
… …

ActionServlet
Client

Как видно, схема здорово напоминает примененную нами при созда- <form-property name=”age” type=”java.lang.Integer”
нии адресной книги. Зачем тогда Struts? А затем, чтобы не писать много- initial=”20”/>
много однотипного кода, который повторяется из проекта в проект. <form-property name=”comment” type=”java.lang.String” initial=”No
Comment”/>
Конфигурационные файлы </form-bean>
Вначале научимся запускать Struts. Для этого нужно перенаправить все
запросы сервлету-обработчику и написать файл конфигурации. Вот <action-mappings>
простой дескриптор для простого Struts-приложения: <action path=”/add” name=”addForm” validate=”true” type=”ru.
<?xml version=”1.0” encoding=”UTF-8”?> linuxformat.actions.Add”>
<web-app> <forward name=”form” path=”/pages/Add.jsp”/>
<servlet> <forward name=”done” path=”/list.do”/>
<servlet-name>action</servlet-name> </action>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param> <action path=”/list” type=”ru.linuxformat.actions.ShowAll”>
<param-name>config</param-name> <forward name=”ok” path=”/pages/List.jsp”/>
<param-value>/WEB-INF/struts-config.xml</param-value> </action>
</init-param> </action-mappings>
</servlet>
<servlet-mapping> <message-resources parameter=”MessageResources”/>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern> <plug-in className=”org.apache.struts.validator.ValidatorPlugIn”>
</servlet-mapping> <set-property property=”pathnames” value=”/org/apache/struts/
</web-app> validator/validator-rules.xml,/WEB-INF/validation.xml”/>
Видно, что все запросы *.do передаются сервлету action, обрабаты- </plug-in>
ваемому классом ActionServlet. Это стандартный класс Struts, который </struts-config>
перенаправляет запросы в действия. Ему передается конфигурацион- В данном файле описана форма добавления контакта (form-bean),
ный файл struts-config.xml. Вот он: с использованием стандартного класса формы с поддержкой автома-
<?xml version=”1.0” encoding=”UTF-8” ?> тической проверки полей (DynaValidatorForm).
После этого описано, какие запросы в какие классы
<struts-config> перенаправляются.
<form-beans> <action path=”/list” type=”ru.linuxformat.actions.ShowAll”>
<form-bean name=”addForm” type=”org.apache.struts.validator. <forward name=”ok” path=”/pages/List.jsp”/>
DynaValidatorForm”> </action>
<form-property name=”name” type=”java.lang.String” В этом примере запрос /list.do пойдет в класс ShowAll. Forward
initial=”Name”/> используется внутри действия, чтобы упростить перенаправление
<form-property name=”phone” type=”java.lang.String” вывода. Дальше будет понятно, как.
initial=”1234567”/> После описания действий все становится совсем просто.

Ноябрь 2007 Linux Format 81


Учебник Серверные приложения на Java

Описывается файл, откуда будут браться локализованные строки, и по коллекциям (списки, ассоциативные массивы и так далее). В данном
подключается модуль, который обеспечивает простую и мощную вали- случае мы итерируем по атрибуту запроса contacts, который мы поло-
дацию (проверку) форм. жили туда в действии.

Действия Формы, проверка корректности форм


Перейдем к классам. Все они должны быть унаследованы от класса org. Другая интересная часть – формы. Второе действие, добавление кон-
apache.struts.action.Action. При этом в простейшем случае нужно пере- такта, выглядит следующим образом (приведен только код метода
определить только один метод, execute(…). Например, вот действие, execute):
которое показывает список контактов: if (aHttpServletRequest.getParameter(“name”) == null) {
public class ShowAll extends Action { return aActionMapping.findForward(“form”);
public ActionForward execute(ActionMapping aActionMapping, } else {
ActionForm aActionForm, DynaActionForm form = (DynaActionForm) aActionForm;
HttpServletRequest aHttpServletRequest, Contacter.getInstance().addContact(form.getString(“name”), form.
HttpServletResponse aHttpServletResponse) getString(“phone”), form.getString(“comment”), (Integer) form.
throws Exception { get(“age”));
aHttpServletRequest.setAttribute(“contacts”, return aActionMapping.findForward(“done”);
Contacter.getInstance().getContactsSortedByName()); }
return aActionMapping.findForward(“ok”); Логика очень похожа на ту, что была в предыдущих статьях. Если
} форма не заполнена, переходим по форварду form, который показыва-
} ет форму для ввода. Если она заполнена (и валидирована), то контакт
В этом действии в атрибут запроса кладется список всех контак- добавляется в список, и мы переходим на форвард done. Вот и сама
тов, после чего вызывается форвард “ok” – именно он был описан форма (точнее, ее основная часть):
чуть выше. <html:form action=”/add” method=”post” onsubmit=”return
<action path=”/list” type=”ru.linuxformat.actions.ShowAll”> validateAddForm(this);”>
<forward name=”ok” path=”/pages/List.jsp”/> <table>
</action> <tr>
Из описания видно, что форвард перенаправляет обработку запро- <td><bean:message key=”AddressBook.add.name”/>:</td>
са в List.jsp. Посмотрим, что в нем написано: <td><html:text property=”name”/></td>
<%@ page pageEncoding=”UTF-8” language=”java” contentType=”text/ </tr>
html; utf-8” %> …
<tr>
<%@ taglib uri=”http://struts.apache.org/tags-html” prefix=”html” %> <td colspan=”2”><html:submit titleKey=”AddressBook.add.
<%@ taglib uri=”http://struts.apache.org/tags-bean” prefix=”bean” %> submit”/></td>
<%@ taglib uri=”http://struts.apache.org/tags-logic” prefix=”logic” %> </tr>
</table>
<html:html> </html:form>
<head>
… <html:javascript formName=”addForm”/>
</head> Тут интересны два момента. Во-первых, используются тэги Struts
<body> (html:…), упрощающие создание компонентов формы. Во-вторых,
… используется скрипт валидации (onsubmit=”…” и <html:Javascript …>).
<table border=”1”> Он обеспечивает валидацию прямо в браузере, не отсылая запрос на
<tr> сервер.
<td><bean:message key=”AddressBook.list.name”/></td> Сами правила валидации задаются в файле validation.xml. Вот как
<td><bean:message key=”AddressBook.list.phone”/></td> это выглядит:
<td><bean:message key=”AddressBook.list.comment”/></td> <form-validation>
<td><bean:message key=”AddressBook.list.age”/></td> <formset>
</tr> <form name=”addForm”>
<logic:iterate id=”contact” type=”ru.linuxformat.Contact” <field property=”age” depends=”required,integer,intRange”>
name=”contacts” scope=”request”> <arg key=”AddressBook.add.age”/>
<tr> <arg position=”1” name=”intRange” key=”10”
<td><%=contact.getName()%></td> resource=”false”/>
<td><%=contact.getPhone()%></td> <arg position=”2” name=”intRange” key=”20”
<td><%=contact.getComment()%></td> resource=”false”/>
<td><%=contact.getAge()%></td> <var><var-name>min</var-name><var-value>10</var-value></
</tr> var>
</logic:iterate> <var><var-name>max</var-name><var-value>20</var-value></
</table> var>
</field>
</body> </form>
</html:html> </formset>
На многоточия заменены неинтересные куски кода, а интерес- </form-validation>
ное – в самом начале листинга (taglib). Это так называемые библио- Форму я создал в struts-config. Называться она должна так же.
теки тэгов. Примеры можно видеть здесь же. Скажем, <bean:message Для поля age задается три правила валидации: required, integer,
key=”AddressBook.list.name”/> вставляет локализованную строку, intRange. Первое говорит, что поле обязательно, второе – что зна-
соответствующую данному ключу. А <logic:iterate> умеет итерировать чение должно быть целочисленным, третье правило сообщает, что

82 Linux Format Ноябрь 2007


Серверные приложения на Java Учебник

значение должно лежать в пределах от 10 до 20. В качестве пара-


метров задаются аргументы сообщений, которые будут выводиться
при ошибочном заполнении формы (arg), и параметры для правил
валидации (var).

Локализация
Последняя часть, пока не описанная – локализация. Сообщения хра-
нятся в так называемых properties-файлах, причем если property-
файл называется MessageResources, то, например, файл русской
локализации должен называться MessageResources_ru.properties,
а английской – MessageResources_en.properties. Если нужно уточ-
нить – например, английский язык, Америка – то получается так:
MessageResources_en_US.properties.
Структура файлов properties очень проста. Каждая строка (не пус-
тая и не комментарий) состоит из двух частей, разделенных знаком
равенства (=). Слева – ключ, справа – значение этого ключа.
Эти файлы нужно положить
в каталог src, и проконтролиро-
вать, чтобы они переписались
туда же, куда попадают class-
файлы. Плюс, для неанглийских
файлов, их нужно преобразовать
в ASCII-формат. Это делается ути-
литой native2ascii из поставки JDK.
Инструкции по пользованию утили-
той можно найти здесь: http://Java.
sun.com/Javase/6/docs/technotes/
tools/windows/native2ascii.html.
После этого можно исполь-
зовать в JSP вставки вида <bean:
message key=”AddressBook.add.
name”/>, вместо которых будет
вставлена локализованная строка,
соответствующая данному ключу (в
примере – AddressBook.add.name).

Что дальше?
Struts – великолепная библиотека,
позволяющая упростить разработ-
ку сложных приложений. Особенно
хорошо такого рода библиотеки под-
ходят для задач, в которых много
монотонной работы: больших форм,
большого количества простых дей-
ствий, необходимость проверки дан-
ных, вводимых в форму, локализация.
Также полезно, что используются
стандартные средства: JSP, Servlets,
да и сам Struts – самая распространен-
ная библиотека для такого рода работ.
В результате при приеме на работу,
например, знание именно Struts позво-
ляет набрать несколько дополнитель-
ных баллов.
Правда, еще больше баллов дает
знание EJB3. Но об этом мы пого-
ворим в следующей, заключительной
статье. LXF

Через месяц Вам в зернах или молотый? Мы завершим кофейную тематику разговором об Enterprise Java Beans.

Ноябрь 2007 Linux Format 83


Учебник wxWidgets
Новая серия! Разберемся со всем многообразием
открытых графических инструментариев

wxWidgets:
ЧАСТЬ 1 Что объединяет Audacity, poEdit и FlameRobin? Все они работают на
нескольких платформах, используя wxWidgets – и вы тоже так сможете, если
прочтете учебник Андрея Боровского!

Ч
то такое wxWidgets? Для многих разработчиков это просто но немало программ, самой известной из которых является, пожалуй,
набор виджетов, занимающий на платформе Linux почетное тре- аудиоредактор Audacity (Рис. 1).
тье место после вечных соперников Qt и GTK, и не все знают, что
wxWidgets – это еще и история открытых графических интерфейсов.
Набор визуальных элементов управления wxWidget появился на свет в
1992 году, тогда же, когда и XFree86. Все началось с того, что сотруд-
нику Университета Эдинбурга Джулиану Смарту [Julian Smart] потребо-
валась кросс-платформенная библиотека для создания графических
интерфейсов на платформах Sun и PC. У университета не нашлось
средств на покупку кросс-платформенной библиотеки виджетов (да,
были и такие времена), и тогда Смарт поступил так, как и подобает
настоящему хакеру – он начал писать собственную библиотеку, кото-
рую назвал wxWindows. Проект бесплатной кросс-платформенной биб-
лиотеки быстро привлек внимание других программистов в универси-
тете, а вскоре – и за его пределами. Первая версия wxWindows подде-
рживала XView (набор виджетов, созданный Sun Microsystems) и MFC Рис. 1. Audacity – убийственное приложение на wxWidgets.
1.0. В 2003 году представители компании Microsoft обратили внимание
на wxWindows и вежливо попросили Дж. Смарта изменить название Список платформ, поддерживаемых wxWidgets, внушает уважение.
(слово “Windows” является зарегистрированной торговой маркой Вы можете использовать библиотеку вместе с GTK (Unix/Linux/MinGW),
Microsoft в Великобритании) [подобные просьбы высказывались и в Lesstif/Motif (Unix/Linux) X11 (Unix/Linux/MinGW), Win32 (Windows,
адрес закрытых проектов, в частности, Windows Commander, – прим. Windows CE), Carbon (Mac OS), Cocoa (Mac OS X, GNUstep), Protein
ред.]. Переговоры продолжались долго; в качестве ответной уступ- (Palm OS), PM (OS/2), MGL (Unix/DOS). Само это перечисление демонс-
ки американская компания предложила материальную компенсацию трирует важную особенность wxWidgets – «вертикальную» организа-
(полученные от Microsoft деньги было решено потратить на развитие цию набора виджетов. В отличие от Qt и GTK, которые ориентированы
проекта), и в августе 2004 года библиотека wxWindows была офици- на платформы, библиотека wxWidgets ориентирована на интерфейсы.
ально переименована в wxWidgets. Если какой-либо из поддерживаемых wxWidgets интерфейсов пере-
Почему же wxWidgets не стала предпочтительным выбором для носится на новую платформу, перенос wxWidgets на эту платфор-
Linux-программистов? Причина проста: в те далекие времена, когда му не должен представлять особых проблем. По традиции, версии
решалась судьба графических оболочек для Linux, wxWidgets (тог- wxWidgets для каждой платформы обозначаются добавлением пре-
да еще wxWindows) не поддерживала X11. На платформе Unix/Linux фикса wx к сокращенному названию платформы. Например, wxWidgets
wxWidgets использовала виджеты Motif/Lesstif, а позднее – GTK. для Windows обозначается как wxMSW, wxWidgets для GTK – как
Версия библиотеки, способная работать с X11 без посторонней помо- wxGTK, wxWidgets для X11 – как wxX11, и т. д. Еще одна интересная
щи, появилась только в 2002 году, когда территорию графических обо- возможность, связанная с многоплатформенностью wxWidgets – кросс-
лочек для Linux уже застолбили другие библиотеки. компиляция. На сайте проекта можно найти инструкции по компиляции
Библиотека wxWidgets распространяется на условиях wxWindows wxWidgets-программ для Windows из-под Linux.
License (которую должна заменить wxWidgets License, отличающаяся Выбирая между wxWidgets для GTK и wxWidgets для X11, следует
от первой только названием). По сути своей, wxWindows License – это помнить, что, несмотря на все усилия разработчиков, эти два набора
«смягченный вариант» LGPL, позволяющий распространять произ- визуальных компонентов все еще неравноценны. На сайтах некоторых
водные продукты wxWidgets в бинарной форме на ваших собствен- проектов, использующих wxWidgets, вы найдете указания, что проект
ных условиях без отчислений разработчикам wxWidgets. Фактически, компилируется с wxGTK, но не с wxX11. Объясняется это тем, что набор
лицензия wxWindows предоставляет разработчику больше возмож- виджетов wxUniversal, который использует wxX11, все еще не дотяги-
ностей, чем лицензия GTK+, которая обязывает разработчика распро- вает по функциональности до набора GTK, на котором основана wxGTK.
странять производные библиотеки на условиях LGPL, и лицензия Qt, Разработанный с нуля wxUniversal представляет собой сравнительно
которая требует платить за коммерческое использование библиотеки. недавнее добавление в wxWidgets. Этот набор виджетов предназначен,
Приложения, использующие wxWidgets, можно программировать не в перспективе, для тех платформ, у которых собственные наборы вид-
только на родном для этой библиотеки – C++, но и на других языках жетов отсутствуют (хотя вряд ли такую можно сейчас найти). Список
программирования (Java, Perl, Python). Существуют также интерфей- виджетов и функций, которые присутствуют в wxGTK и wxMSW, но
сы wxWidgets для Microsoft .NET и Mono. На основе wxWidgets созда- все еще не реализованы в wxX11, приведен на сайте проекта. В каче-

84 Linux Format Ноябрь 2007


wxWidgets Учебник

живая история
стве довода в пользу wxX11 можно указать то, что этот набор видже-
тов не нуждается в «прослойке» GTK и может работать в системе, где Как должны выглядеть ваши программы?
библиотека GTK не установлена или не настроена должным образом.
Окончательное решение при выборе между wxGTK и wxX11 следует Разработчиков кроссплатформенных наборов виджетов можно разделить на два лагеря: одни
принимать, исходя из требований создаваемого приложения (есть ли стремятся к тому, чтобы визуальные компоненты выглядели по возможности одинаково на всех
в wxX11 все необходимые виджеты) и параметров GTK в целевой сис- платформах (обычно это люди с твердыми убеждениями относительно того, каким должен быть
теме. При этом, в случае необходимости, базовую платформу можно правильный графический интерфейс). Наборы визуальных компонентов этого типа радуют глаз
будет сменить и на ходу (по крайней мере, переход с wxX11 на wxGTK единством фирменного стиля. Разработчики из другого лагеря настаивают на том, чтобы на каж-
не вызовет проблем). дой платформе внешний вид графических элементов управления максимально соответствовал
Помимо собственно визуальных компонентов, wxWidgets предо- тому, что принято на данной платформе. К достоинствам этого подхода относят то, что единооб-
ставляет в распоряжение программиста классы для работы с базами разие внешнего вида приложений упрощает, якобы, освоение новых программ. Лично я с этим
аргументом не согласен. На мой взгляд, кнопки в стиле Aqua нисколько не мешают освоению
данных (поддерживаются интерфейсы ODBC, XBase, SQLite), классы
Safari для Windows.
для работы с сокетами и популярными сетевыми протоколами, а также
Самое сложное в освоении новой программы – согласовать подход разработчиков к решению
специальные классы для работы с HTML. Есть у wxWidgets и собствен- поставленной задачи со своим собственным видением. Как бы там ни было, wxWidgets придер-
ные классы, реализующие распространенные структуры данных (спис- живается второго подхода, причем следует ему в гораздо большей степени, чем, скажем, Qt.
ки, очереди и т. п.), которые были введены в проект еще до появления Визуальные элементы wxWidgets не только выглядят на каждой платформе «как родные» (фак-
в С++ стандартной библиотеки шаблонов. Поскольку сейчас использо- тически, во многих случаях, классы wxWidgets – это просто обертки вокруг фирменных элемен-
вание шаблонов стандартной библиотеки представляется более целе- тов управления), но и используют специфические возможности каждой платформы. Например,
сообразным, вы можете сконфигурировать wxWidgets таким образом, на платформе Win32 wxWidgets поддерживает метафайлы, которые отсутствуют в GTK. Если вы
чтобы библиотека использовала STL, а не собственные реализации программируете интерфейсы с помощью wxWidgets, вы должны сами устанавливать баланс
этих структур данных. использования платформо-специфичных и кроссплатформенных возможностей библиотеки.
В wxWidgets реализованы сразу два способа определения обработ-
чиков событий. Более старый способ, разработанный под влиянием
MFC, основан на статических таблицах событий (event tables). Однако,
он не позволяет манипулировать обработчиками событий во время инструментами. Библиотека wxWidgets не является исключением из
выполнения программы. Второй (более новый) вариант основан на этого правила. Вспомогательных средств разработки для wxWidgets
использовании метода connect() и больше похож на динамический спо- существует немало, больше, пожалуй, чем для Qt и GTK, но при
соб определения обработчиков событий, используемый в Qt. близком знакомстве с этими средствами заядлый линуксоид может
испытать разочарование. Мы привыкли к тому, что базовые средства
Инструменты разработчика разработки для библиотек виджетов доступны нам на тех же услови-
Сегодня практически каждый набор виджетов сопровождается средс- ях, что и сами библиотеки, однако с wxWidgets дело обстоит иначе.
твами визуального программирования и другими вспомогательными Наиболее функциональные системы визуального программирования

Центральная проблема GUI-программирования


Проблема обработки сообщений возникает во всех объектно-ориентиро- Разработчики библиотек визуальных элементов отдают предпочтение
ванных графических библиотеках, написанных на C++. Представьте себе модели, в которой для задания собственных обработчиков событий
объект, реализующий кнопку (пусть это будет объект класса Button). Во необходимо переопределить только один класс. Предположим, что в
время выполнения программы кнопка – объект button1 класса Button нашем гипотетическом наборе виджетов есть класс Window, который
получает информацию о событиях графической системы (например, о реализует главное окно. Мы определяем класс-потомок класса Window
щелчке мышью). В ответ на щелчок мышью для объекта button1 вызыва- (например, MyWindow) и определяем обработчики всех событий всех
ется метод класса Button (назовем его OnClick()), который должен опо- дочерних элементов главного окна как методы этого класса. Все кнопки,
вестить остальные компоненты программы о внешнем событии. используемые в окне класса MyWindow, могут быть объектами класса
Как заставить кнопку делать именно то, что нам нужно? Можно Button. Обработчиком события OnClick каждой кнопки будет один из
создать класс-потомок Button, например, MyButton, и переопределить в методов MyWindow. Нам остается только сообщить каждому объекту
нем метод OnClick() базового класса. Этот способ прост, но неудобен. В Button, какой из методов объекта класса MyWindow является обработчи-
вашей программе наверняка будет несколько кнопок и при таком подхо- ком его события. Тут-то и возникает проблема. Мы должны «прикре-
де вам придется создавать собственный класс для каждой из них. пить» методы MyWindow к объектам Button (при этом класс Button ниче-
Необходимость создавать собственный класс для каждой кнопки не го не знает о классе MyWindow). В некоторых языках программирования
только сделает ваш код громоздким и трудным в управлении (представь- (Objective-C, C#) эта проблема была решена на уровне самого языка. В
те себе, что вы сначала использовали для создания кнопок базовый C++ стандартного решения не существует, и разработчики наборов вид-
класс Button, а потом захотели воспользоваться другой реализацией жетов реализуют механизмы обработки сообщений по своему разуме-
кнопки), но и, в некотором смысле, противоречит принципам ООП. Ведь нию. Все используемые сегодня решения основаны, так или иначе, на
кнопка остается кнопкой, независимо от того, как она реагирует на собы- функциях обратного вызова. Фактически, разные библиотеки виджетов
тия. Зачем же создавать новый класс для каждой конкретной кнопки? различаются только способами оформления этого подхода.

Ноябрь 2007 Linux Format 85


Учебник wxWidgets

для wxWidgets либо являются полностью коммерческими продуктами,


либо распространяются бесплатно, но без исходных текстов.
Интегрированная среда разработки DialogBlocks (Рис. 2), доступная
на сайте www.anthemion.co.uk/dialogblocks, претендует на роль офици-
ального средства разработки приложений wxWidgets на C++.

Рис. 3. wxDesigner.

не обновлялся, я не рекомендовал бы вам тратить на него свои деньги.


В общем и целом следует признать, что по уровню функциональности
и удобства коммерческие IDE для wxWidgets не только не опережают,
но даже несколько отстают от открытых IDE, предназначенных для дру-
гих библиотек. Так, по крайней мере, обстоит дело на платформе Linux.
Для тех, кто ведет разработку приложений wxWidgets на платформе
Windows, ситуация складывается более благоприятно. Библиотека
Рис. 2. DialogBlocks.
wxWidgets давно уже умеет интегрироваться с Microsoft Visual Studio,
а с недавнего времени – и с Borland/CodeGear C++Builder. При этом
DialogBlocks включает визуальный редактор окон wxWidgets, мно- для «билдера» есть специальный мастер создания форм wxWidgets.
гооконный текстовый редактор, встроенную справочную систему. Некоторые разработчики нашли выход из положения благодаря кросс-
Интегрированная среда умеет генерировать Make-файлы для проектов платформенности wxWidgets – они ведут разработку приложений в
wxWidgets и пересобирать саму библиотеку. Поддерживается и интер- одной из Windows IDE, а конечный продукт компилируют в Linux (не
активная отладка приложений (с использованием внешнего отладчи- рассказывайте об этом фанатам Emacs и Eclipse, они побьют вас кам-
ка). Среда DialogBlocks – коммерческий продукт, который фактически нями, если узнают).
распространяется как shareware. Вы можете работать с программой На платформе Linux частичная (без средств визуального редакти-
бесплатно, однако, до тех пор, пока вы не оплатите регистрацию, рования) поддержка wxWidgets интегрирована в KDevelop и Anjuta. Эти
функциональность DialogBlocks будет ограничена. Диалоговые окна в интегрированные среды разработки умеют создавать заготовки при-
незарегистрированной версии могут включать не более 30 визуальных ложений wxWidgets а также генерировать скрипты configure и make.
элементов, специальное окно периодически напоминает вам о необ- Специально для редактирования графических интерфейсов wxWidgets
ходимости регистрации, а многие визуальные элементы оказываются создается программа wxGlade. Название проекта говорит само за себя –
недоступны. При весьма солидных расценках (за новейшую версию wxGlade претендует на роль Glade для wxWidgets. Редактор wxGlade
разработчик требует $85, «студенческий» вариант обойдется вам на написан на языке Python и в настоящем своем виде (версия 0.6) под-
$40 дешевле) DialogBlocks отнюдь не поражает воображение работы. ходит больше для тех, кто пишет программы, используя именно этот
Редактор исходных текстов лишен тех приятных мелочей (вроде авто- язык (хотя поддержка C++ и Perl также присутствует).
матического завершения кода и подсказок для заголовков вызывае- Собственно говоря, все вышесказанное не должно вселять в вас
мых функций), к которым мы давно привыкли в других коммерческих пессимизм. Если вы можете обойтись без визуального программирова-
IDE. При первой попытке собрать проект система предлагает указать ния и интерактивных подсказок, для написания приложений wxWidgets
место расположения компилятора, но ввести путь к файлу gcc в откры- подойдет любой текстовый редактор, хоть тот же KWrite.
том для этого диалоговом окне не удается (окно просто не реагирует
на нажатие клавиш). Конечно, пользователя Linux такими мелочами Приступаем к работе
не испугаешь, я тут же полез в окно настроек, где вручную сконфи- Хотя в вашем дистрибутиве Linux наверняка есть пакет разработчи-
гурировал проект для сборки под wxX11. Далее выяснилось, что для ка для wxWidgets, я рекомендую собрать библиотеку из исходных
того, чтобы собрать тестовое приложение надо сначала пересобрать текстов, доступных на сайте проекта (wxwidgets.org – просто на
wxWidgets, при этом некоторые поддиректории wxWidgets пришлось
переименовывать вручную. После всех этих доработок тестовое при-
ложение скомпилировалось и запустилось. Впрочем, и разочарования
на этом не кончились. В текстовом редакторе DialogBlocks отсутствуют Полезные ссылки
функции быстрого перехода между реализацией функции и ее объяв-
лением, перехода к выбранному заголовочному файлу и им подобные. Викифицированный справочник по всем классам, переменным,
Фактически встроенный редактор DialogBlocks не намного лучше, чем функциям и макросам библиотеки wxWidgets можно найти на сайте
KWrite. проекта по адресу: wiki.wxwidgets.org/docbrowse.html.
Те, кто готов платить за средство разработки для wxWidgets, могут Хорошим источником информации о программировании в wxWidgets
обратить внимание на еще одну коммерческую IDE – wxDesigner (Рис. 3). может служить книга «Cross-Platform GUI Programming with wxWidgets»,
Среда разработки wxDesigner – полностью коммерческий продукт написанная Джулианом Смартом [Julian Smart], Кевином Хоком [Kevin
Hock] и Стефаном Шомором [Stefan Csomor]. Книга вышла в 2005 году,
(вы можете бесплатно скачать пакет дистрибутива с сайта программы –
но не утратила актуальности до сих пор. Правила серии Bruce Perens
www.roebling.de, но незарегистрированная версия не позволит вам
Open Source Series, к которой принадлежит это издание, позволяют
сохранять проекты). Работает wxDesigner не очень стабильно, попытка абсолютно легально загрузить его электронную версию (на английском
создать диалоговое окно в режиме визуального программирования языке) с сайта www.phptr.com/perens. Бумажный вариант можно приоб-
несколько раз заканчивалась ошибкой сегментации и аварийным рести на Amazon.com по весьма умеренной цене.
завершением программы. Учитывая, что сам проект wxDesigner давно

86 Linux Format Ноябрь 2007


wxWidgets Учебник

всякий случай). Скомпилировав wxWidgets, вы не только получае- В потомке класса wxApp нам требуется переопределить только
те новейшую версию библиотеки, но и более гибкие средства кон- один базовый метод – OnInit(). Этот виртуальный метод вызывается
фигурирования. Например, для этих статей я решил использовать базовым классом в самом начале работы программы и именно на него
wxX11, тогда как пакет wxWidgets из моего дистрибутива (OpenSUSE) возложена задача по созданию и отображению главного окна. Если
сконфигурирован для GTK+. Скрипт configure wxwidgets позволя- метод OnInit() возвращает значение false, выполнение программы
ет настраивать многие параметры библиотеки с помощью ключей. сразу же завершается. Если вам необходимо выполнить какие-либо
Например, для того, чтобы скомпилировать wxWidgets с поддерж- специальные действия в процессе завершения программы (например,
кой X11, командуем: высвободить занятые программой ресурсы), вы можете переопреде-
./configure --with-x11 лить метод OnExit() класса wxApp.
Ключ --enable-stl указывает, что вместо классов структур данных В методе OnInit() мы создаем объект класса-потомка wxFrame и
wxWidgets следует использовать контейнеры STL. Полное описание вызываем его метод Show(), для того чтобы окно, созданное этим объ-
ключей configure вы можете получить, как обычно, с помощью клю- ектом, стало видимым. В классе HWFrame мы переопределяем конс-
ча --help. труктор и деструктор класса wxFrame. Наша задача – добавить в окно
Знакомство с программированием в wxWidgets мы начнем, как wxFrame визуальный элемент со статическим текстом (метку) и вывес-
всегда, с простейшего приложения (файл hwapp.cpp): ти в нем текст приветствия. Рассмотрим сначала базовый конструктор
#include “wx/wx.h” wxFrame. Первый параметр конструктора – указатель на класс роди-
тельского окна. Мы передаем в этом параметре значение NULL, так как
class HWFrame: public wxFrame главное окно не имеет родителя. Во втором параметре конструктора
{ передается идентификатор окна. Идентификатор представляет собой
public: целое число, которое идентифицирует окно в процессе обработки
HWFrame() : wxFrame(NULL, wxID_ANY, “First wxWidgets сообщений. Все окна, использующие один и тот же цикл обработки
Application”) сообщений (например, главное окно и его дочерние виджеты), долж-
{ ны иметь уникальные идентификаторы (это не относится к некоторым
label = new wxStaticText(this, wxID_STATIC, “Hello World”); типам окон, не предназначенных для получения «персональных» сооб-
} щений). В программе hwApp мы не обрабатываем сообщения, поэтому
virtual ~HWFrame() нам все равно, какой будет идентификатор у главного окна программы.
{ В конструкторе wxFrame мы передаем константу wxID_ANY, которая
delete label; указывает, что конструктор может сам выбрать идентификатор для
} создаваемого окна (константой wxID_ANY можно пользоваться вся-
private: кий раз, когда идентификатор окна вас не интересует). В последнем
wxStaticText * label; задействованном нами параметре конструктора передается заголовок
}; создаваемого окна (у конструктора wxFrame есть и другие параметры,
для которых мы оставляем значения по умолчанию). В самом кон-
class HWApp: public wxApp структоре мы создаем объект label класса wxStaticText (метка). Первые
{ два параметра конструктора wxStaticText имеют тот же смысл, что и
virtual bool OnInit() первые параметры конструктора wxFrame. В третьем параметре мы
{ передаем строку текста для отображения. Обратите внимание, что в
HWFrame * myFrame = new HWFrame(); качестве идентификатора окна визуального элемента «метка» мы вос-
myFrame->Show(); пользовались константой wxID_STATIC. Этот идентификатор исполь-
return true; зуется при создании статических визуальных элементов, которые не
} обрабатывают пользовательский ввод.
};

IMPLEMENT_APP(HWApp);
Эта программа действительно очень проста. Она не обрабатывает
события, не содержит сложных элементов интерфейса; все, что она
делает – выводит надпись “Hello World” в главном окне. Тем не менее,
программа hwapp демонстрирует важнейшие особенности структуры
приложения wxWidgets. Объявления всех классов, функций и мак-
росов библиотеки виджетов становятся доступны нам в результате Рис. 4. Наша первая программа, пока что не Audacity.
включения в текст программы одного-единственного заголовочного
файла – wx/wx.h. В отличие от Qt и GTKmm, в wxWidgets, даже при Вот, собственно, и все (Рис. 4). Ах, да, вы, наверное, обратили вни-
написании простого приложения нам приходится объявлять сразу мание, что в программе не определена функция main(). Дело в том, что
два собственных класса. Класс HWApp, который является потомком разработчики wxWidgets избавили нас от хлопот по написанию главной
класса библиотечного wxApp, представляет собой главный класс функции программы. Все необходимые определения содержит макрос
приложения. Этот класс можно рассматривать как аналог класса IMPLEMENT_App(), которому мы передаем имя класса приложения в
QApplication в Qt, с той разницей, что в Qt нам редко приходится качестве параметра. Теперь программу можно скомпилировать, вос-
создавать собственный класс, производный от QApplication. Класс пользовавшись вспомогательной утилитой wx-config:
HWFrame, который происходит от класса wxFrame, реализует главное g++ hwApp.cpp `wx-config --libs` `wx-config --cxxflags` -o hwApp
окно нашей программы. Обратите внимание, что имена всех классов Трудно представить себе программу проще той, что мы написали.
wxWidgets начинаются с префикса wx, а имена методов классов – с В продолжении серии мы рассмотрим процесс создания «настоящего»
заглавной буквы. приложения – программы для записи разговоров Skype. LXF

Через месяц Мы используем wxWidgets, чтобы создать по-настоящему полезное приложение.

Ноябрь 2007 Linux Format 87


Perl и С++
Учебник Perl и C++
Программирование для полиглотов
На DVD
Код примеров ста
тьи
Заголовочные фа
йлы
Qt4

Как работать
с классами С++ из Perl
Огорчены, что PerlQt застрял на версии 3.008?Не беспокойтесь – Вадим Лихота
расскажет, как решить подобную задачу своими силами. Если, конечно, хватит
терпения.

О
писаний того, как импортировать в Perl функции из С, доста- );
точно много, а вот информацию об использовании клас- Выделенные жирным строки необходимо добавить именно для
сов C++ я встречал в виде кратких описаний только в “XS того, чтобы Perl заработал с С++.
Cookbook” [1, 2] и небольшой статье [4]. Пример использования класса Кроме того, важно исправить файл QtCore.xs, который будет содер-
С++ в Perl’е из “XS Cookbook” в сокращенном варианте перекочевал в жать импортируемые в Perl функции:
perlxstut. Кроме того, на CPAN можно найти модули, импортирующие #ifdef __cplusplus
классы С++ и имеющие файлы импорта, которые можно использо- extern “C” {
вать в качестве примера, такие, как Boost-Graph, Lucene, Search-Xapian, #endif
Однако они не покрывают многих вариантов подключения классов. #include “EXTERN.h”
Чтобы не умножать сущности без надобности, т.е. не писать новых #include “perl.h”
классов, которые потом нигде не пригодятся, воспользуемся уже гото- #include “XSUB.h”
вой библиотекой QtCore из состава Qt4. Для удобства я буду приводить #ifdef __cplusplus
части заголовочных файлов этой библиотеки, но все примеры будут }
работоспособны при подключении реальной библиотеки. Кроме того, #endif
использование файла perlobject.map [3] позволит не писать заново Для наглядного примера создадим в этом файле класс, который
описание объектов. будет хранить, допустим, версию программы. Для этого добавим класс
после подключенных заголовочных файлов перед строкой MODULE =
Начальные данные для любого модуля QtCore PACKAGE = QtCore:
Начальные данные для любого модуля можно найти в уже упомянутой class QtCore {
статье [4], однако они столь ценны и необходимы для раскрытия темы, public:
что заслуживают отдельного рассмотрения. Скелет любого модуля QtCore(){ vers = 0.001; };
можно написать вручную, но легче и быстрее это делается командой ~QtCore(){};
h2xs -An имя_модуля. В результате будет создан каталог для модуля
с необходимыми файлами, содержимое которых детально описано double ver(){ return vers; };
в «Программировании на Perl» [5]. Дав команду h2xs -An QtCore, вы void setVer(double v){ vers = v; };
получите скелет модуля. В созданный каталог QtCore необходимо
скопировать perobject.map (названия всех файлов приводятся относи- private:
тельно каталога QtCore). Созданный файл Makefile.PL надо привести к double vers;
следующему виду: };
use 5.008; Работа с обычными функциями, конструктором и деструктором
use ExtUtils::MakeMaker; уже предусмотрена в Perl XS, поэтому после объявления модуля и
пакета можно использовать краткие объявления функций (также воз-
$CC = ‘g++’; можны комментарии в perl-стиле):
MODULE = QtCore PACKAGE = QtCore
WriteMakefile(
NAME => ‘QtCore’, =comment
VERSION_FROM => ‘lib/QtCore.pm’, явное указание использовать прототипы функций позволяет
PREREQ_PM => {}, # e.g., Module::Name => 1.1 избежать некоторых ошибок при передаче параметров в функции, но
($] >= 5.005 ? в тоже время не дает упростить использование этих функций.
(ABSTRACT_FROM => ‘lib/QtCore.pm’, Например, если функция получает два параметра, а ваши данные для
AUTHOR => ‘A. U. Thor <author@localdomain>’) : ()), нее хранятся в массиве @aa, то ее необходимо вызывать как
LIBS => [‘’], my_func($aa[0], $aa[1]).
DEFINE => ‘’, Тогда как при указании “PROTOTYPES: DISABLE” можно эту функцию
CC => $CC, вызвать как my_func(@aa).
LD => ‘$(CC)’, =cut
INC => ‘’,
# OBJECT => ‘$(O_FILES)’, PROTOTYPES: ENABLE
XSOPT => ‘-C++’,
TYPEMAPS => [‘perlobject.map’], =comment

88 Linux Format Ноябрь 2007


Perl и C++ Учебник

XS распознает только один конструктор -- “new”. Если их будет #!/usr/bin/perl -w


больше, то каждый нуждается в подробном описании.
=cut use blib;
use QtCore;
QtCore *
QtCore::new() my $q = new QtCore;
$q->setVer(4.001);
=comment print $q->ver(), “\n”;
методы класса В результате запуска скрипта должна появиться указанная нами
=cut версия 4.001.

double Импортирование нескольких классов


QtCore::ver() Едва ли можно найти библиотеку, состоящую из одного класса. Когда
классов немного, их можно описать в одном xs-файле, или последо-
void вать примеру модуля Search-Xapian, в котором один большой файл
QtCore::setVer(v) разбит на несколько, объединяемых командой
double v INCLUDE: подключаемый_файл.xs
Однако главным недостатком такого подхода является необходи-
=comment мость подключения всех заголовочных файлов в одном месте, содер-
В подавляющем большинстве случаев такого вызова деструктора жимое которых будет находиться в одной области видимости. Третий
хватает. вариант, особенно удобный для такой большой библиотеки, как QtCore,
Однако если вы хотите явно освободить память, уничтожить заключается в том, чтобы сделать каждый xs-файл относительно неза-
зависимые объекты и т.п., то пример вызова деструктора найдете в висимым и в каждом из них подключать только заголовочный файл,
XS Cookbook [2, ArrayOfStruct]. описывающий нужный класс. Это обычно делается двумя способами.
=cut Первый состоит в том, чтобы в главном xs-файле прописать импорт
boot-функций всех файлов и выполнять их в boot-функции основно-
void го xs-файла, вызываемого функцией bootstrap. Примеры реализации
QtCore::DESTROY() данного способа можно увидеть в библиотеках perl-Glib/Gtk2, Perl-RPM
Кроме того, для вызова класса следует указать Perl’у, чем является (в каждой немного по-своему). Другой способ заключается в том, что-
класс QtCore, т.е. как работать с этим типом данных, для чего создадим бы все вызовы сделать из главного модуля, но уже на Perl’e. Данный
файл typemap со следующим содержимым: вариант реализован в Win32::Gui. На мой взгляд, он более удобен и
TYPEMAP обладает большей переносимостью.
QtCore * O_OBJECT Опишем последний вариант подробнее. Прежде всего следует уда-
Описания встроенных типов данных представлены в typemap.xs [6], лить оставшиеся файлы предыдущей сборки, а именно: каталог blib и
а описание O_OBJECT находится в файле perlobject.map. Если не добав- файлы Makefile, pm_to_blib, QtCore.bs, *.c, *.o.
лять этот файл, то придется самостоятельно полностью описывать все Далее настроим обработку нескольких xs-файлов, для чего в
дополнительные типы данных в файле typemap (пример подобного Makefile.PL раскомментируем строку
описания приводится ниже). После этого остается внести изменения в OBJECT => ‘$(O_FILES)’.
файл lib/QtCore.pm, который и будет подключаться в конечных скрип- Вследствие этого будут отрабатываться все xs-файлы, найден-
тах. Поскольку QtCore.pm будет объектом, и ничего экспортироваться ные в каталоге модуля (во вложенных каталогах поиск не ведется).
из него не будет, то следует убрать из этого файла все относящееся к Подключим библиотеку QtCore.so, для чего в строку
модулю Exporter. Для импорта внешних функций можно использовать LIBS => [‘’],
как XSLoader, так и более старый DynaLoader (я использовал второй, пропишем ее:
т.к. к нему чаще обращаются). LIBS => [‘-L/usr/lib -lQtCore ‘],
package QtCore; Для примера импортирования нескольких классов выберем неболь-
шой класс QSize (если у вас не установлен Qt4, файл qsize.h можно най-
use 5.008; ти на диске).
use strict; Создадим файл QSize.xs:
use warnings; #ifdef __cplusplus
extern “C” {
require DynaLoader; #endif
#include “EXTERN.h”
our @ISA = qw(DynaLoader); #include “perl.h”
our $VERSION = ‘0.01’; #include “XSUB.h”
#ifdef __cplusplus
bootstrap QtCore $VERSION; }
#endif
1;
Чтобы собрать полученный модуль, выполните команды perl #include <QtCore/qsize.h>
Makefile.PL && make.
Все сделанное необходимо протестировать. В модуле уже есть MODULE = QtCore::QSize PACKAGE = QtCore::QSize
каталог t/ для тестовых скриптов, которые, однако, расчитаны только
на то, чтоб по команде make test вывести “имя_скрипта.....ok”. Этого =comment
явно недостаточно, чтобы подробно просмотреть работоспособность QSize входит в состав QtCore
написанного модуля. Поэтому создадим каталог test/ со скриптом =cut
qtcore.pl и следующим содержимым:

Ноябрь 2007 Linux Format 89


Учебник Perl и C++

PROTOTYPES: ENABLE use blib;


use QtCore::QSize;
QSize *
QSize::new() use Carp ‘croak’;

bool my $q = new QtCore::QSize; # создать класс


QSize::isEmpty() print “q is empty\n” if $q->isEmpty();
$q->setWidth(2); # присвоить параметр
int print $q->width(), “\n”; # проверить
QSize::width() $q->setHeight(3);
print “q isn’t empty\n” unless $q->isEmpty();
int
QSize::height() Использование нескольких конструкторов
Класс QSize содержит два конструктора, а компилятор XS знает только
void про new. Поэтому второй конструктор мы реализуем сами. Чтобы уви-
QSize::setWidth(w) деть, что для этого надо, достаточно посмотреть в файл QSize.c, авто-
int w матически сгенерированный компилятором XS из файла QSize.xs:
char * CLASS = (char *)SvPV_nolen(ST(0));
void QSize * RETVAL;
QSize::setHeight(h)
int h RETVAL = new QSize();
ST(0) = sv_newmortal();
void sv_setref_pv( ST(0), CLASS, (void*)RETVAL );
QSize::DESTROY() Иными словами, благодаря QSize::, расположенному перед кон-
Далее создадим для класса QSize собственный pm-файл структором new, в функцию передается строковый параметр CLASS с
lib/QtCore/QSize.pm. названием класса, после чего создается объект и используется bless
package QtCore::QSize; для полученной ссылки. Для примера импорта конструктора в QSize.xs
создадим конструктор new1 с явным указанием компилятору на код и
use 5.008; возвращаемый параметр:
use strict; QSize *
use warnings; new1(CLASS)
char * CLASS
use QtCore; # необходимо для вызыва bootstarp, находящегося в CODE:
файле QtCore RETVAL = new QSize();
QtCore::bootstrap_subpackage ‘QSize’; OUTPUT:
RETVAL
1; Теперь запустим make. Получный в QSize.c код для new1 будет иден-
В дальнейшем файлы QtCore.xs и lib/QtCore.pm будут нужны только тичен автоматически созданному коду для конструктора new. Однако
для вызова bootstrap модуля QtCore.pm. Заметим, что класс в QtCore. появятся две пометки о том, что код взят из QSize.xs. Аналогично
xs можно удалить, но тогда придется добавить хотя бы одну внешнюю создадим второй конструктор, но уже с параметрами инициализации:
функцию, иначе в файле QtCore.c, который создается на основе QtCore. QSize *
xs, не будет всех нужных объявлений. Вообще все boot-функции и new2(CLASS, w, h);
объявления в них можно прописать и вручную, но вряд ли это целесо- int w
образно, если компилятор XS делает все сам. Теперь следует добавить int h
в lib/QtCore.pm функцию, которая будет выполнять роль bootstrap для char * CLASS
остальных модулей: CODE:
sub bootstrap_subpackage { RETVAL = new QSize(w, h);
my($package) = @_; OUTPUT:
$package = ‘QtCore::’.$package; RETVAL
my $symbol = $package; Заметим, что в Perl’е удобнее было бы использовать идентифика-
$symbol =~ s/\W/_/g; тор new для вызова любого конструктора, не различая их по номерам.
no strict ‘refs’; Для реализации этой идеи удалим из QSize.xs вызов QSize::new(), после
DynaLoader::dl_install_xsub( чего добавим в lib/QtCore/QSize.pm функцию с таким же названием. В
“${package}::bootstrap”, зависимости от содержимого, она сама будет выбирать, что ей вызвать.
DynaLoader::dl_find_symbol_anywhere(“boot_$symbol”) При неверном количестве параметров функция выведет сообщение об
); ошибке:
&{ “${package}::bootstrap” }; sub new {
} return new1($_[0]) if ( scalar(@_) == 1 );
И последний шаг в нашем примере импортирования нескольких return new2($_[0], $_[1], $_[2]) if ( scalar(@_) == 3 );
классов. Класс следует описать в файле typemap, добавив в конце croak(“ожидалось 0 или 2 параметра\n”);
QSize * O_OBJECT }
Вот теперь уже можно запустить perl Makefile.PL && make и потес- Далее дайте команду make и проверьте, как все работает, для чего
тировать то, что получилось. добавьте в test/qsize.pl строку
Для проверки можно создать файл test/qsize.pl: my $w = QtCore::QSize->new(5,6);
#!/usr/bin/perl -w

90 Linux Format Ноябрь 2007


Perl и C++ Учебник

Сложение классов ( operator+ ) Особенности использования enum


Если в исходном классе, написанном на С++, содержатся операторы Работа с enum предусмотрена в Perl XS, однако с C++ появляется одна
«арифметических» и «логических» действий c классами, то данные неприятность. В время обработки xs-файла компилятором XS обра-
функции желательно импортировать в Perl. щения в другие классы за определенными в них enum, как, например,
Сначала рассмотрим, что добавить в QSize.xs для Qt::AspectRatioMode, в с-файле Qt::AspectRatioMode превращается в
QSize &operator+=(const QSize &); Qt__AspectRatioMode, и выдается ошибка компилятора о несуществу-
Оператор возвращает тот же класс, к которому осуществляется ющем типе. К сожалению, нет никакой возможности избежать этого
прибавление, поэтому возвратить QSize можно и в функции на Perl’e. преобразования, ибо таким способом создаются все функции с целью
Поскольку Perl по своей сути работает только с указателями, то перед не допустить дублирования названий функций с другими классами.
передачей функции прибавляемого класса otherSize его (указатель) Чтобы компилятор правильно увидел используемый нами enum, пере-
следует разыменовать: определим его в исходный облик. В C-части xs-файла после подклю-
void чения qsize.h добавим:
QSize::operator_plus_eq(otherSize) #define Qt__AspectRatioMode Qt::AspectRatioMode
QSize * otherSize Теперь можно описать функцию с этим типом данных:
CODE: void
THIS->operator+= (*otherSize); QSize::scale(w, h, mode)
Или, например, другой оператор: int w
friend inline const QSize operator+(const QSize &, const QSize &); int h
Несмотря на то, что фунция operator+ не является внутренней для Qt::AspectRatioMode mode
QSize, это не мешает получить указатель на первый класс указанным CODE:
выше способом. В то же время operator+ возвращает новый объект QSize, THIS->scale(w, h, mode);
который будет жить только в пределах С-функции. Нам же необходи- Не забудьте добавить в typemap новый тип данных:
мо вернуть указатель на новый объект QSize. Поэтому создадим новый Qt::AspectRatioMode T_ENUM
экземпляр класса QSize и присвоим ему результат. Класс QSize простой, Чтобы не запоминать числовые значения всех enum-параметров,
поэтому конструктор копий создается компилятором автоматически. добавим модуль lib/Qt.pm со всеми значениями AspectRatioMode:
QSize * package Qt;
QSize::operator_plus(qsize2)
QSize * qsize2 # enum AspectRatioMode
PREINIT: use constant IgnoreAspectRatio => 0;
char * CLASS = “QtCore::QSize”; use constant KeepAspectRatio => 1;
CODE: use constant KeepAspectRatioByExpanding => 2;
RETVAL = new QSize();
*RETVAL = (operator+ ( *THIS, *qsize2 )); 1;
OUTPUT: После добавления или удаления любого файла, следует полностью
RETVAL очистить библиотеку, удалив каталог blib, файлы *.c, *.o и т.д. После
В файле lib/QtCore/QSize.pm следует сделать оболочку для данных данных манипуляций и выполнения команд perl Makefile.PL && make
функций, используя overload (подробности использования overload можно тестировать программу. Для этого после use blib в файле qsize.
смотрите в perldoc или «Программировании на Perl» [5, стр. 397]): pl следует добавить
use overload use Qt;
‘+’ => \&_plus, а также дописать новую функцию в конце этого файла:
‘+=’ => \&_plus_eq, $e->scale(20, 20, Qt::IgnoreAspectRatio);
‘””’ => sub { $_[0] }; print “scale e (h, w) == “, $e->height(), “ “, $e->width(), “\n”;

sub _plus_eq { Взаимодействие с STL или ее аналогами


unless ( ref($_[1]) ) { В Perl’e STL практически не нужна, поскольку большинство возмож-
croak(“need QSize += QSize\n”); ностей STL уже поддерживаются массивами и хэшами самого языка.
return; Поэтому рассмотрим только передачу данных из шаблона list в массив
} Perl’a и обратно. Библиотека Qt4 инкапсулирует в себе STL, добавляя
operator_plus_eq($_[0], $_[1]); некоторые возможности. Мы подробно рассмотрим работу с шабло-
return $_[0]; # возвращается указатель на тот же экземпляр ном QList, ибо методы некоторых классов возвращают списки классов,
класса используя именно его. Для получения массива обратимся к классу
} QbyteArray. В нем есть такой конструктор:
QList<QByteArray> split(char sep) const;
sub _plus { В файле QByteArray.xs перед использованием шаблонов STL необ-
if ( ref($_[0]) and ref($_[1]) ) { ходимо убрать определения do_open и do_close, иначе они начнут кон-
return operator_plus($_[0], $_[1]); фликтовать с аналогичными из Perl’a.
} ...
croak(“Need QSize1 = QSize2 + QSize3\n”); #undef do_open
} #undef do_close
В заключение осталось проверить работоспособность операторов.
Добавьте в test/qsize.pl такие строки: #include <QtCore/qlist.h>
$w += $q; #include <QtCore/qbytearray.h>
print “w (h, w) == “, $w->height(), “ “, $w->width(), “\n”;
my $e = $w + $q; ...
print “e (h, w) == “, $e->height(), “ “, $e->width(), “\n”;
И, запустив, убедитесь, что это работает. AV *

Ноябрь 2007 Linux Format 91


Учебник Perl и C++

QByteArray::_split(c)
char c 1;
CODE: Пересоберите пакет и протестируйте его (файл test/qbytearray.pl).
RETVAL = newAV(); Аналогичным способом массив превращается в шаблон QList. Для
QList<QByteArray> lba = THIS->split(c); примера приведем конструктор класса QStringList, получающий для
for ( int i = 0 ; i < lba.size() ; ++i ) { инициализации массив объектов QString. В файле QtCore/qstrinlist.h
QByteArray * ba = new QByteArray(); конструктор объявлен как
*ba = lba.at(i); inline QStringList(const QStringList &l) : QList<QString>(l) { }
SV * rv = newSV(0); В xs-файле для него необходимо создать класс QList<QString> и
sv_setref_pv( rv, “QtCore::QByteArray”, (void *)ba ); заполнить его объектами QString, полученными из массива. av являет-
av_push(RETVAL, rv); ся указателем на копию этого массива. Копия используется, поскольку
}; функция av_pop() удаляет из массива считанные элементы.
OUTPUT: QStringList *
RETVAL new3(CLASS, av)
CLEANUP: char * CLASS
SvREFCNT_dec( RETVAL ); AV * av
CODE:
... QList<QString> qls;
Иными словами, в описании _split создается анонимный массив, while ( av_len(av) > -1 ) {
указатель на который будет передан в программу. Затем вызывает- SV * rv = av_pop(av);
ся функция split класса на C++, которая возвращает список объектов QString * str = (QString *)SvIV((SV*)SvRV( rv ));
QByteArray. Этот список обходится в цикле, в котором по одному ука- qls << *str;
зателю на объект заносится в массив RETVAL. Поскольку массив при- }
нимает только тип данных SV*, то на каждой итерации цикла создается RETVAL = new QStringList(qls);
новая переменная. Затем в нее копируется ссылка на объект из спис- OUTPUT:
ка, приведенная к типу данных Perl функцией sv_setref_pv. Подробно RETVAL
работа с массивами в Perl XS описана в perlguts, а примеры использо-
вания массива со строками можно посмотреть в “XS Cookbook” [2]. Описание типа данных, отсутствующего
Следующий шаг состоит в добавлении в typemap нового класса в typemap.xs и perlobject.map
QByteArray * O_OBJECT В том случае, если нужно добавить новый тип данных, необходимо
и создании для этого класса модуля lib/QtCore/QByteArray.pm. Функция описать, как компилятору работать с ним, т.е. читать из него данные и
_split возвращает указатель на массив, однако в программе удобнее записывать. Данная тема описана в документации Perl, но для полноты
пользоваться обычным массивом. С этой целью напишем простейшую картины приведем пример, иллюстрирующий работу с отсутствующим
оболочку для этой функции. Кроме того, в Perl’e есть своя функция в С типом string. Для этого типа в typemap следует добавить:
split, поэтому ее надо переопределить в пакете, используя use subs. string STRING
package QtCore::QByteArray; Ниже в разделах INPUT и OUTPUT необходимо описать, как пере-
вести string из внутреннего типа данных Perl’а (переменная $arg) в C++
use 5.008; (переменная $var) и обратно.
use strict; INPUT
use warnings; STRING
use Carp qw/carp croak/; {
STRLEN len;
use QtCore; # bootstraps QtCore.xs const char * tmp = SvPV($arg, len);
QtCore::bootstrap_subpackage ‘QByteArray’; $var.assign(tmp, len);
}
use subs qw(split);
OUTPUT
sub split { STRING
croak(“split: нет разделителя\n”) unless $_[1]; sv_setpvn((SV*)$arg, (char *) ($var.data()), ($var.size()));
return @{ _split($_[0], $_[1]) }; Таким образом, в данной статье были рассмотрены все основные
} варианты использования C++ и Perl XS. За ее пределами остались
только прямое использование шаблонных классов (но, как было ука-
зано выше, использовать их нецелесообразно, т. к. STL покрывается
возможностями самого Perl’a) и использование lvalue-функций из
Литература классов С++ в Perl’e (когда разрабатывался Perl XS для 5-й версии,
lvalue изначально не был реализован и в самом Perl5, а более поздних
0 Документация Perl (perlxs, perlxstut, perlguts). описаний расширений Perl XS на данный момент, по моим сведениям,
1 Dean’s Extension-Building Cookbook in two parts. не существует). LXF
Part A: http://www.cpan.org/authors/Dean_Roehrich/CookBookA-19960430.tar.gz.
2 Dean’s Extension-Building Cookbook in two parts.
Part B: http://www.cpan.org/authors/Dean_Roehrich/CookBookB-19960430.tar.gz.
3 http://www.cpan.org/authors/Dean_Roehrich/perlobject.map-19960302.gz.
4 John Keiser. Gluing C++ And Perl Together. – 2001. – http://www.johnkeiser.com/perl-xs-c++.html.
5 Уолл Л., Кристиансен Т., Орвант Д. Программирование на Perl. – СПб.: Символ-плюс, 2005. –
1152 с.
6 http://search.cpan.org/~nwclark/perl-5.8.8/ext/XS/Typemap/Typemap.xs.

92 Linux Format Ноябрь 2007


Чистка DVD Video Учебник

DVD: Долой
посторонние звуки!
Иногда безупречную во всех прочих отношениях любительскую запись портит фоновый шум
или подобная мелочь, оставленная без внимания при монтаже. К счастью, Алексей Маслий
знает, как подправить DVD, не нарушая его компоновки.

Н
едавно у моих родственников был юбилей, который они Audacity (http://audacity.sourceforge.net/) и QDVDAuthor (http://
засняли на цифровую камеру, а потом сделали DVD с меню qdvdauthor.sourceforge.net/). Все они входят в состав загружаемого
и видеоклипом по мотивам празднования. И все бы хоро- мультимедиа-дистрибутива Dynebolic, одну из версий которого мож-
шо, но в записи остался фоновой шум, местами очень сильный. И, но найти на диске LXF76, либо установить через менеджер пакетов
конечно, с просьбой очистить запись от шума они обратились ко вашего дистрибутива (я предпочитаю SUSE, а в нем необходимо
мне. К счастью, Linux позволяет решить эту задачу просто и эле- предварительно подключить репозиторий packman – http://packman.
гантно – и на следующих нескольких страницах мы разберемся, как links2linux.org/).
именно. Прежде чем браться за решение задачи, необходимо разобрать-
Для начала формализуем задачу. Имеется DVD-диск с записью, ся, в чем, собственно, заключается основная проблема. На самом
с которой нужно произвести некоторые действия: убрать шум, доба- деле этапы один и два я прошел за несколько часов (считая и вре-
вить комментарии, наложить субтитры на видеоряд и т.д., причем мя, потраченное на получение аудиодорожки и очистку ее от шума).
так, чтобы не испортить имеющееся на диске меню. Можно, конечно, Самая трудная задача – это вернуть очищенный звук на его место
поступить просто – скопировать видео, произвести с ним требуемые на DVD. Чтобы разобраться с ней, необходимо хорошо представлять
преобразования и сделать новый диск, но это проблема уже другого себе структуру диска DVD Video.
порядка сложности. Обычно на диске находятся два каталога: AUDIO_TS и VIDEO_TS.
Данная задача решается в три этапа. Во-первых, необходимо Интересующие нас файлы содержатся во втором из них. Все виде-
сохранить звуковую дорожку в отдельный файл в том формате, офайлы имеют расширение .VOB. Это обычные ролики в форма-
который понимает ваша программа обработки звука. Во-вторых, те MPEG-2, которые могут быть просмотрены с помощью любого
нужно произвести необходимые действия со звуковой дорожкой (в проигрывателя. Файлы с расширением .IFO и .BUP – служебные, в
нашем случае – убрать фоновый шум) или с видеорядом (но тогда них содержится информация о меню и временных сдвигах глав
длительность ролика не должна изменяться). Наконец, звуковую (chapter) – отдельных отрывков из видеопотока раздела. Раздел
дорожку следует записать обратно на DVD-диск. (title), в свою очередь, представляет собой видеопоток со своей
собственной временной шкалой. Меню видео-DVD содержится в
Рис. 1. Общий DVD изнутри трех файлах с расширениями .IFO, .BUP и .VOB, при этом каждый
вид программы Чтобы реализовать описанную выше идею, нам понадобятся три раздел может иметь собственное меню. Схема именования файлов
Avidemux2. основных программы. Это Avidemux2 (http://www.avidemux.org/), проста: VTS_xx_y.VOB, где хx – номер главы, у – порядковый номер
файла. у=0 соответствует файлу, содержащему меню главы, а все
видеофайлы с одинаковым значением х и у≥1 имеют общую вре-
менную шкалу.

Добываем звук
Приступая к первому шагу, необходимо определить, какой имен-
но раздел видео-DVD мы будем обрабатывать. Любительские DVD
обычно содержат только один раздел, но если вам попадется мате-
риал, содержащий два или более, лучше обрабатывать каждый
из них по отдельности. Выбрав необходимый раздел, скопируйте
все файлы VTS_x_y.VOB c у 1 (в моем случае это VTS_01_1.VOB
... VTS_01_4.VOB) на жесткий диск (и лучше в отдельный каталог).
Далее запустите программу Avidemux2 (Рис. 1). Откройте файл VTS_
01_1.VOB. Программа задает последовательно два важных вопроса:
«Выглядит как mpeg. Хотите индексировать?» и «Здесь несколько
mpeg-файлов, хотите объединить?». В обоих случаях следует отве-
тить «Да». В результате, спустя некоторое время, затрачиваемое на
индексирование и зависящее от скорости вашего компьютера, файл
будет открыт, причем не только первая его часть, но и весь времен-
ной поток. Теперь мы можем непосредственно заняться решением
первой проблемы – сохранить аудиодорожку. Программа Audacity,

Ноябрь 2007 Linux Format 93


Учебник Чистка DVD Video

Рис. 2. которая будет использовать-


Свойства видео и ся для очистки звука, работа-
аудио. ет с файлами формата WAV
(возможно, с PCM-сжатием),
поэтому следует узнать, в
каком формате звук записан
на DVD [в любом случае, мало-
вероятно, что это будет несжа-
тый WAV, – прим. ред.]. Для это-
го можно посмотреть свойства
открытого файла, нажав на
кнопку с изображением буквы
«i» на листе бумаги на панели
инструментов программы или
в меню Файл. В моем случае
аудиопоток кодирован в фор-
мате AC3 (Рис. 2). Для его перекодировки в WAV можно воспользо-
ваться меню Аудио в левой части окна программы. При запуске про-
граммы по умолчанию выбрано Копировать; нужно изменить это на
WAV PCM. Для сохранения аудиодорожки выберите в меню Аудио >
Сохранить. Укажите имя файла и подождите, пока программа запи-
Рис. 3. Окно эффекта «Удаление шума».
шет дорожку. Задача первого этапа решена, но программу Avidemux
можно не закрывать, поскольку ею мы будем пользоваться для
наложения аудиодорожки обратно на видеоряд. кнопки OK программа предложит выбрать WAV-файл – укажите
аудиодорожку, очищенную от шума. Чтобы убедиться, что внешняя
Чистка аудиодорожка действительно подключена, можно снова посмотреть
На втором этапе нам поможет прекрасный звуковой редактор свойства загруженного файла: кодеком для аудио теперь должен
Audacity. К сожалению, у нас нет возможности рассматривать его быть PCM. Для подготовки видеофайла в формате, понятном DVD-
сколько-нибудь подробно, поэтому мы ограничимся лишь процеду- плейеру, необходимо сделать следующие настройки.
рой шумоподавления (см. также LXF79). Для решения этой задачи Видео. Оставить Копировать, если вы не производили никаких
существует специальный фильтр Удаление шума, который доступен операций над видеопотоком, в противном случае выбрать один из
через меню Эффекты. Для его применения сначала надо найти в форматов DVD.
записи участок с образцом шума, то есть не содержащий никаких Аудио. Установить в FFm AC3, в качестве контейнера выбрать
других звуков. После этого выбрать пункт меню Эффект > Удаление MPEG PS A+V (Рис. 4). Обратите внимание, именно этот контейнер
шума. В появившемся окне (Рис. 3) нажмите кнопку Создать модель необходим для того, чтобы все DVD-плейеры понимали сохранен-
шума, и выделенный участок будет взят за образец. Далее необхо- ный вами файл. Теперь нажмите кнопку Сохранить и введите имя
димо указать участок записи, который вы хотите очистить. Обычно файла.
это вся дорожка, поэтому в меню следует выбрать пункт Правка > Задача практически решена – осталось подготовить DVD-диск
Выделить > Все. Теперь снова вызовите диалог Удаление шума, а с новым материалом. Для этого все содержимое оригинального
затем укажите при помощи ползунка, насколько глубоким будет это диска, кроме файлов, которые подвергались обработке, необходи-
удаление. По собственному опыту, я советую разместить бегунок мо переписать на жесткий диск (лучше всего опять же в отдельный
в районе середины шкалы и, если качество удаления шума вас не каталог). Файл с очищенным аудиопотоком можно переименовать
удовлетворит, повторить этот процесс еще раз. В противном случае в VTS_01_1.VOB и скопировать туда же. Если полученный файл
фильтр вырежет всю полосу частот, где замечен шум, и оставший- VTS_01_1.VOB оказался длиннее 2048 МБ, то мы имеем дополни-
ся звук станет неестественным. Для тестирования качества работы тельную проблему (см. врезку), которую легко решить при помощи
эффекта можно выделить участок, где шум наиболее заметен, и в QDVDAuthor. В противном случае можно сразу переходить к прожигу
Рис. 4. Настройки
окне Удаление шума (Рис. 3) нажать кнопку Прослушать. Программа нового диска. После чего можно вставить DVD в плейер и наслаж-
Avidemux2 для
экспорта в новый воспроизведет небольшой фрагмент записи, к которому уже приме- даться результатом. LXF
видеофайл. нен эффект удаления шума с выбранными параметрами. Следует
заметить, что если вы собираетесь производить процесс очистки
несколько раз, то следует заранее побеспокоиться о наличии доста-
точного места в разделе, где находится каталог /tmp – туда програм-
ма помещает временные файлы – или настроить сохранение вре-
менных файлов в разделе, где достаточно места. При полной очис-
тке записи программа создает резервную копию аудиодорожки для
возможности совершения отката. Соответственно, резервные копии
будут создаваться столько раз, сколько раз будет производиться
очистка. Приказать программе создавать временные файлы в дру-
гом месте можно во вкладке Каталоги в окне настроек программы
(Правка > Параметры Audacity). После того, как результат очистки
вас удовлетворит, можно сохранять очищенную аудиодорожку в
файл: Файл > Экспортировать как > WAV.

Сведение
Настало время возвратиться к Avidemux. Выберите в меню пункт
Аудио > Главная дорожка > External PCM(WAV). После нажатия

94 Linux Format Ноябрь 2007


Чистка DVD Video Учебник

Меньше – значит лучше


На этапе создания DVD-видео вы можете столкнуться еще с одной проблемой: ваш Выберите в меню пункт DVDAuthor > Create DVD или нажмите большую кнопку с
VOB-файл может превысить ограничение в 2048 МБ, накладываемое файловой систе- изображением DVD-диска на панели инструментов. Программа дважды спросит,
мой ISO9660. UDF в этом смысле более либеральна, но поддерживается не всеми DVD- хотим ли мы создать DVD без какого-либо меню; следует ответить «Да». Затем
плейерами (диапазон возможных проблем варьируется от нечитаемости диска до появится окно, содержащее очередь команд для создания DVD (Рис. 6), здесь все
неработающего ускоренного просмотра). К счастью, QDVDAuthor умеет делить боль- можно оставить без изменений. Нажмите «ОК», и некоторое время спустя в выбран-
шой файл на части. ном каталоге появится сгенерированный DVD (программа создает полную структуру,
Запустите программу. Как и в Avidemux, рабочее окно здесь разделено на две час- начиная с каталогов AUDIO_TS и VIDEO_TS). Здесь нам необходимо только взять фай-
ти: в левой – структура проекта DVD, а в правой визуальное отображение (Рис.5). лы VTS_01_x.VOB и перенести их в свой каталог, который мы создали чуть раньше
Нажмите кнопку Add Movie – запустится мастер создания нового проекта, который (при необходимости, если на вашем DVD они находились не в первом разделе, их
последовательно предлагает выбрать каталог для хранения временных данных (по можно переименовать). Не обращайте внимания на разницу в длине полученных и
умолчанию /tmp), имя проекта и каталог, в котором будет сохраняться сгенерирован- оригинальных VOB-файлов – это нисколько не влияет на результат, поскольку меню
ная структура DVD. После этого предлагается выбрать собственно видеофайл – нам DVD ориентируется на положение кадров во временной шкале, которое не меняется.
требуется тот, что вы сохранили из Avidemux.

Рис. 5. Так выглядит QDVDAuthor. Рис. 6. Окно очереди команд для создания DVD.

Каталог агентства «РОСПЕЧАТЬ


РОСПЕЧАТЬ»» – подписной индекс 2 0 8 8 2
Каталог «ПРЕССА РОССИИ»
РОССИИ» – подписной индекс 8 7 9 7 4
Ответы

Ответы
Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru

Сегодня мы ответим MP-BIOS bug: 8254 timer not connected to IO_APIC


на вопросы про: Kernel panic - not syncing: OI_APIC + timer doesn’t
work!
Искал и в Google, и в справке Ubuntu, но нашел
1 «Тараканы» BIOS 8 Резервные копии
только скудные заявления, что мой таймер не работа-
2 Беспроводные 9 Загрузчик ядра
ет. Думаю, что это как-то связано с моей видеокартой
проблемы 10 Включение по рас-
NVIDIA 7300LE (известно, что дешевые вещи обходят-
3 Снхронизацию с писанию
ся дорого), но в чем все-таки причина? Возможно,
PDA 11 Загрузку с CD в
пригодится другой факт. Все 3D-изображения на моем
4 Смену URL Grub компьютере становятся нестабильными и содержат
5 Разделы NTFS 12 Администрирова-
множество ошибок. Нужно ли мне покупать видео-
6 Легковесный Linux ние через браузер карту получше?
7 Инсталяции Ubuntu Загрузочные DVD Иво Иванов [Ivo Ivanov]

О
Дело не в видеокарте: причиной ваших про- Отредактируйте файл меню Grub, чтобы всегда
блем с графикой может быть APIC (Advanced загружаться с noapic.
1 BIOS с «тараканами» Programmable Interrupt Controller [Расширен-

В
Я купил, как мне казалось, самый лучший ком- ный программируемый контроллер прерываний, – Но сначала проверьте наличие обновлений BIOS на
пьютер по соотношению цена-производитель- прим. пер.]), управляющий таймингами и прерывания- сайте изготовителя: вполне возможно, что ваша про-
ность, и продолжаю считать его таковым. Но ми для различных компонентов вашей материнской блема была решена в последней версии прошивки.
кое-что меня беспокоит. При включении компьютера и платы, включая контроллер дисков и разъемы видео- Если нет, придется переделать меню загрузки, чтобы
выборе загрузки Ubuntu из Grub, на экран выводится карт. Контроллеры ACPI довольно часто отходят от спе- всегда использовалась опция noapic. Ubuntu не вклю-
сообщение об ошибке MP-BIOS 8254 и каком-то цификаций: многие изготовители полагают, что если чает программу для настройки процесса загрузки, и
неподключенном таймере. Также почти все дистрибу- плата «работает в Windows», то стандартам следовать Вам придется править файл конфигурации вручную.
тивы с DVD журнала не запускаются без опции noapic не обязательно. Вы уже обнаружили, что надо добавить Нажмите Alt+F2 и наберите
в строке загрузки. При загрузке LXFDVD95 выводится noapic в параметры загрузки LiveCD, но необходимо sudo gedit /boot/grub/menu.lst
текст также делать это при загрузке с жесткого диска. Это откроет файл конфигурации меню загрузки в
текстовом редакторе. Большинство строк там начи-
наются с # – это комментарии, и их можно игнориро-
вать. Найдите первую строку, начинающуюся с title;
Наши эксперты это первый пункт меню загрузки. Вам нужно изме-
нить следующую строчку, начинающуюся с kernel,
Мы найдем эксперта на любой вопрос! Вы получите ответ на все: от проблем с установкой или модемом до добавив noapic в ее конец, обязательно через про-
сетевого администрирования; главное – спросить! бел после последнего слова в строке. Файл сохрани-
те. После перезагрузки сообщение об ошибке BIOS
Нейл Ботвик Майк Сондерс исчезнет, и 3D-графика станет стабильной. Видимо,
Как экс-владелец ISP и экс- Майк был одним из создателей
редактор дисков для нашего прототипа LXF – Linux Answers. Его будут и другие улучшения в работе, потому что
журнала, Нейл считает, что в специальности – программирование, «глючная» прошивка APIC способна вызывать раз-
Linux он от скуки на все руки. оконные менеджеры, скрипты ные проблемы, от снижения скорости доступа к дис-
инициализации и SNES.
кам до неверного хода часов. НБ

Пол Хадсон Ник Вейч 2 Беспроводная сеть, ау!

В
Пол – местный супер- В свободное от исчеркивания текстов Я уже использовал Linux в 1996–1997 годах
программист. Он cправится красными чернилами время Ник для запуска UNIX-приложений на ноутбуке,
со всеми вашими проблемами возится с Linux- графикой и 3D- так как Linux был бесплатным, а Sparcbook
по части web и баз данных. приложениями; он у нас отвечает за
стоил 10 000 фунтов. Позже я решил, что было бы
простые вопросы!
неплохо использовать его снова и установить его на
моем домашнем DELL XPS m1210. Порывшись в
Валентин Синицын Интернете, я нашел, что для моей машины идеален
В редкие свободные минуты Slackware 10, благополучно установил его и исполь-
главный редактор нашего журнала зовал Lilo для двойной загрузки Windows Vista и
обычно запускает mcedit, чтобы Linux.
отшлифовать какое-нибудь
К сожалению, я не смог заставить работать бес-
открытое приложение. Его любимая
тема – настольный Linux. проводную сетевую карту; точнее, я не знаю, как
это сделать. Я смотрел в Сети, находил там реше-
КУДА ПОСЫЛАТЬ ВОПРОСЫ: ния, но все они были на чуждом для меня языке. За
Пишите нам по адресу: answers@linuxformat.ru или спрашивайте на форуме: www.linuxforum.ru прошедшие десять лет я очень многое перезабыл

96 Linux Format Ноябрь 2007


Ответы

и чувствую себя полным «чайником». Моя беспро- Синхронизация ваших записей о финансах – это
водная карта: Intel PRO/Wireless 3945ABG Network другая тема. GnuCash может импортировать стан-
Connection. дартные учетные записи QIF, но не экспортировать
Грег [Greg] их. Зато KMyMoney (http://kmymoney2.sourceforge.net)

О
Существует официальный драйвер от Intel умеет делать и импорт, и экспорт, так что Вы сможете
для этой беспроводной карты, найти его импортировать файлы с вашего PDA и переносить их
можно здесь: http://ipw3945.sourceforge.net, назад после модификации. Те, кто не разбираются в
но он требует довольно свежего ядра для работы, бухгалтерском учете профессионально или не имеют
как минимум 2.6.13. Slackware 10 старше трех лет и опыта работы, вероятно, сочтут KMyMoney более лег-
значительно старше этого драйвера, и использует ким, чем GnuCash. KMyMoney – тоже KDE-приложе-
ядро версии 2.4. Для нормальной работы нового ние, оно должно присутствовать в любом из перечис-
аппаратного обеспечения Вам нужен дистрибутив – и ленных выше дистрибутивов. НВ
в частности, ядро – такой же новый, как оборудова- CSynCE и synce-kde позволяют вашему ПК с Linux и
ние. Если вы хотите держаться Slackware, то устано- PDA с Windows идти в ногу друг с другом с минимумом 4 Перезапись URL

В
вите новейшую версию 12.0: это первый релиз с яд- мороки. Пишу web-сайт со множеством PNG-изображе-
ром 2.6, которое необходимо вашей беспроводной ний – большинство из них использует прозрач-
карте, по умолчанию. Пакеты для использования ность. Он великолепно работает во всех послед-
вашей карты со Slackware 12 есть на сайте PPC, это важная для меня программа – предоставляет них версиях браузеров, но (как и ожидалось) не в IE6.
ftp://ftp.slackware.at/slackware-12.0/extra/intel-wlan- ли GnuCash похожие возможности? Чтобы исправить это, я создал GIF-версии для каждой
ipw3945. Герхард Штигер [Gerhard Stieger] картинки (а также таблицу стилей), загружаемые

О
Как альтернативу, можно установить любой дру- Синхронизацию Linux-приложений с устрой- вместо PNG, если пользователь использует IE6.
гой дистрибутив, в репозитории которого есть пакет ствами Windows Pocket PC позволяет произ- Я хочу сделать это с помощью mod_rewrite и
ipw3945. Неплохой выбор – Ubuntu c DVDLXF94, водить каркас SyncCE (www.synce.org/index. .htaccess, чтобы images/png/image1.png переписывал-
поскольку драйвер ipw3945 включен в установку по php/SynCE-Wiki); степень его дружелюбия к пользова- ся в images/gif/image1.gif. Вот мой файл .htaccess:
умолчанию и должен «просто работать». В Fedora 7 телю и качество зависят от приложения. Проще всего RewriteEngine On
с DVDLXF95 также имеется ipw3945, но перед его синхронизируются приложения пакета KDE PIM – KMail, RewriteCond %{HTTP_USER_AGENT} “MSIE 6”
установкой требуется добавить репозиторий ATrpms Kontact, KAddressBook и KOrganiser. Чтобы сделать это, RewriteRule /images/png/([A-Za-z0-9])+\.png$
в менеджер пакетов. Как добавить репозиторий, мож- необходимо установить пакет synce-kde, присутствую- /images/gif/$1+\.gif
но прочитать по адресу http://atrpms.net/install.html. щий во многих дистрибутивах, но не во всех устанавли- RewriteCond %{HTTP_USER_AGENT} “MSIE 6”
Этот сайт содержит отнюдь не одни беспроводные ваемый по умолчанию. После установки системы RewriteRule css/style.css css/iestyle.css
драйверы – там множество самых разнообразных запустите менеджер пакетов и установите synce-kde, Перезапись CSS работает четко, но картинки (PNG
пакетов – и заслуживает добавления в ваш список если он не помечен как установленный. После этого вы на GIF) не заменяются.
репозиториев. МС сможете синхронизировать свою почту и контакты. OnlyTheTony, с форумов

О
Однако это потребует запуска системы на базе Вы предложили хорошую идею использовать
3 Желание синхронности KDE, типа Mandriva, Kubuntu, PCLinuxOS или SUSE. Все mod_rewrite для смены URL. Сбой происхо-

В
Хочу перейти на Linux, но боюсь, что синхрони- они присутствуют на DVD-дисках LinuxFormat, но вы дит потому, что Вы используете + для объ-
зация Microsoft Outlook на моем PDA не будет также можете найти ссылки на них и на множество единения строк, а mod_rewrite работает с регулярными
работать. Еще у меня на PDA стоит Money for других дистрибутивов на www.distrowatch.com. выражениями, где + означает «одно или более повто-
рений», а не оператор конкатенации.
В регулярных выражениях не нужно соединять
строки: чтобы отметить неизменяемые части, исполь-
Коротко про… зуются скобки, а $1, $2... включат их в путь назначе-
ния, как у Вас и делается, и все является либо текстом,

MD5 md5sum cooldistro1.0.iso либо символами регулярных выражений. Так, чтобы


Она вернет строку шестнадцатеричных символов, заменить последнее вхождение foo в строке на bar,
подобную хранящейся в cooldistro1.0.iso.md5. Конечно, потребуется выражение
ручное сличение 128-битных шестнадцатеричных чисел /(.*)foo(.*)/$1bar$2/
Как избежать сравнения больших друг с другом, возможно, не самое лучшее времяпре- В вашем случае надо взять нечто, начинающееся
потоков чисел. провождение (спешу добавить – для меня), особенно с image/png и заканчивающееся на .png, и заменить
если вы скачали много файлов, так что предоставим везде png на gif. Вы можете сделать это, вставив
Если вы загружали ISO-образы различных дистрибути- программе сделать это за нас:
одну из следующих строк вместо первого правила
вов, то, безусловно, видели рядом с ISO-файлами md5sum --check cooldistro1.0.iso.md5
RewriteRule:
файлы с именами типа cooldistro1.0.iso.md5, и, воз- Эта команда позволит узнать, соответствует ли конт-
можно, задавались вопросом: а зачем они? Сумма рольная сумма оригиналу или нет. MD5-файл может RewriteRule /images/png/(.*)\.png$ /images/gif/$1\.gif
MD5 – это 128-битный криптографический хэш содер- содержать контрольные суммы нескольких файлов. RewriteRule /(.*)/png/(.*)\.png$ /$1/gif/$2\.gif
жимого файла. Один и тот же файл всегда генерирует Например, исходные тексты Gnome состоят из множес- Первая строка легче читается, зато вторая также
одну и ту же сумму, но стоит изменить в нем всего тва файлов, а их суммы MD5 содержатся в одном. По будет работать с изображениями в других директо-
один бит, и сумма окажется совершенно иной. MD5 договоренности, этот файл часто называется MD5SUMS. риях. НБ
был первоначально разработан для обеспечения безо- Можно загрузить все необходимые вам файлы и про-
пасности. Проверив сумму MD5, вы можете убедиться, верить их за один раз: 5 Восстановить NTFS
что файл не был подменен. md5sum -c MD5SUMS

В
У меня внешний жесткий диск, отформатиро-
Ныне MD5 также используется для проверки случай- Кроме того, можно создать файл MD5SUMS:
ванный в NTFS. Мне нужно произвести его
ного повреждения во время передачи. При загрузке ms5sum *.iso >MD5SUMS
дефрагментацию, но я не хочу потерять все
ISO-образа, скачайте заодно и файл MD5. Прежде чем SHA1-файлы работают по аналогичному принципу,
тратить время на запись файла на компакт-диск и но с несколько более высоким уровнем безопасности. данные на нем. Можно ли выполнить дефрагмента-
попытки с него загрузиться, проверьте, не был ли файл Синтаксис тот же, только используется программа цию NTFS из Linux? Я запускаю Ubuntu Feisty Fawn на
поврежден, командой: sha1sum. старом компьютере PC2800.
churst1, с форумов

Ноябрь 2007 Linux Format 97


Ответы

О
Короткий ответ – нет, нельзя. Во-первых, дольше, чем простое копирование с диска. Вы можете
почему на этом диске NTFS? Если с него сделать это так:
загружают Windows, любые попытки выпол- tar czf ntfs.tar.gz /mnt/ntfs && umount /mnt/ntfs &&
нить дефрагментацию из-под Linux могут привести к mkntfs /dev/sda1 && mount /dev/sda1 /mnt/ntfs -t ntfs-
ее незагружаемости. Но если диск уже содержит 3g && tar xf ntfs.tar.gz -C /mnt/ntfs
Windows, то почему бы не провести дефрагментацию Если Вы используете NTFS только ради чтения из
из нее – Windows ведь не только для того, чтобы бало- Windows (а зачем она еще нужна?) и только с Вашим
ваться игрушками. Если же диск используется только компьютером, где стоит Windows, лучшим решением
для хранения данных, вы можете снизить фрагмента- будет переформатирование диска в ext2 и установ-
цию, скопировав все их с него, отформатировав диск ка драйвера ext2 с www.fs-driver.org в Windows. Это
и записав данные обратно. Это действие требует драй- снимет проблему фрагментации, и Вы получите луч-
вера файловой системы NTFS с полной поддержкой шее быстродействие в Linux. В вышеприведенных
записи, такой, как коммерческая Paragon NTFS for командах для этого надо заменить mkntfs на mke2fs
Linux, которую мы рассматривали в прошлом месяце, и удалить Puppy Linux уместил невероятное количество
программ на 100 МБ и идеален для маломощных
или NTFS-3G, включенная в репозиторий Ubuntu. -t ntfs-3g
компьютеров.
Также необходим пакет ntfsprogs, поэтому запустите из команды mount. НБ
Synaptic и инсталлируйте оба.
Теперь надо проделать небольшую работу по 6 Нужен легковес производительности. А в первую очередь нужен нетре-

В
открытию терминала, выбору директории, достаточно Я присматриваю ОС для AMD K6/200. Думал, бовательный оконный менеджер: среды Gnome и KDE
просторной для хранения содержимого NTFS-диска, и что NetBSD – лучший выбор, но максимум, чего к таковым не относятся. Гораздо лучше FluxBox, Xfce
запуску следующей команды: я добился в результате установки – это режим или IceWM. С учетом текстового процессора, Xfce был
tar cf ntfs.tar /mnt/ntfs && umount /mnt/ntfs && командной строки. XFree86 (не XOrg) требует отдель- бы лучшим выбором: он использует GTK, как и
mkntfs /dev/sda1 && mount /dev/sda1/mnt/ntfs -t ntfs- ной настройки. Я инвалид, и лишние усилия для меня AbiWord. Раз ресурсы у вас ограничены, выбирайте
3g && tar xf ntfs.tar -C /mnt/ntfs проблема. Существуют ли «простые» версии, наподо- набор приложений, использующих одни и те же биб-
Все это надо записать в одну строку. Мы сцепили бие PC-BSD или Desktop BSD – легких версий лиотеки, чтобы Ваша система работала более эффек-
вместе две долгоиграющих команды tar и mkntfs – это FreeBSD? тивно.
позволит Вам не быть сиделкой у компьютера, но каж- Пробовал DSL на машине P2/400 – ничего особен- Кстати о ресурсах: один из лучших способов уве-
дая следующая команда выполнится, только если пре- ного, но я открыл DSL-N. Там даже был настоящий личения производительности любой Linux-системы –
дыдущая отработает без ошибок (совершенно неза- тестовый процессор! Что будет с производительно- увеличение объема ОЗУ. Потратив немного фунтов/
чем переформатировать диск, если произойдет сбой стью, если установить Gnome или KDE на NetBSD или долларов/евро/песо на дополнительную память, вы
в копировании). Данный пример подразумевает, что DSL-N? Fedora Core с Gnome работает на P2/400 с жут- получите больший прирост скорости, чем при вложе-
Ваш диск – /dev/sda1 и смонтирован он в /mnt/NTFS. кими тормозами. нии тех же средств в более быстрый процессор.
Перед запуском команды убедитесь, что подставлены Гэри Причард [Gary Prichard] Есть целый набор дистрибутивов, предназначен-

О
правильные пути для Вашего компьютера. Процессор K6/200 по нынешним меркам ных для «слабых» систем: вы уже открыли для себя
Если у Вас мало места для хранения данных, може- очень медленный, поэтому необходим «лег- DSL и DSL-N, но советую также изучить Puppy Linux
те создать сжатый архив, но это продлится гораздо кий» дистрибутив для получения терпимой с www.puppylinux.org. DSL ограничен объемом ISO-

Часто задаваемые вопросы

FISH
Не путайте с языком программирования FISh…
разбиения Konqueror на два окна, легко
сравнивать или переписывать локаль-
ную и удаленную копии директорий.
только для входа через учетную запись с
правами запуска базовых команд обо-
лочки. Эти сервисы не дают установить
полный вход в оболочку, и FISH не рабо-
Итак, я могу использовать это для тает, но есть альтернатива. SSHFS (http://
управления файлами в Konqueror или fuse.sourceforge.net/sshfs.html) – файло-
Тогда что это такое? user@, то будет использоваться текущее Midnight Commander? вая система FUSE, позволяющая монти-
Это сокращение от FIles (Файлов), пере- имя пользователя. Управление файлами – это еще не все. ровать себя на учетных записях с воз-
даваемых через протокол (оболочки) Любое приложение KDE, работающее с можностью только копировать файлы
SHell. Выходит, через FISH кто-то может файлами, может получать их через FISH. (scp или rsync), но требуется монтиро-
читать файлы на моем компьютере? Хотите отредактировать файл на вашем вать удаленную файловую систему, даже
Стоп, не так заумно. Что он делает? Нет, потому что используется SSH. Но, web-сервере на другом конце земного если вам нужно взять всего один файл.
Проще говоря, он дает доступ к файлам если вы не используете аутентификацию шара? Просто наберите
на удаленной машине только через SSH по ключу, необходимо установить пароль kate fish://me@my.server iffypagename.
(или RSH). На удаленной машине не на учетную запись. В обоих случаях, html
нужно никакого специального програм- доступ сможете получить только вы. для загрузки его в Kate, и при нажатии
много обеспечения, кроме SSH и стан- Save модифицированный файл отпра-
дартных команд оболочки. Ваш компью- Ну, ладно, но Midnight Commander вится обратно на сервер. Конечно, web-
тер должен иметь установленными FISH- малость устарел, верно? В смысле, это страницами вы не ограничены: столь же
программы для доступа к этим файлам. ведь консольная программа, а как удобно использовать это для редактиро-
насчет GUI? вания файлов конфигурации.
Где такое ПО можно взять? Если у вас KDE, откройте Konqueror (или
Скорее всего, оно у вас есть; наберите мини-консоль Alt+F2) и наберите Значит, можно использовать FISH для
cd /#sh:user@hostname/some/path fish://user@hostname/some/path управления файлами на службах уда- FISH можно использовать для
в Midnight Commander, и вы получите Используя магию kio_slaves, эта ленного резервирования, вроде Rsync. запуска графических программ
список содержимого /some/path на уда- команда загрузит удаленную директо- net или StrongSpace? сравнения файлов на удаленной
ленной машине. Если вы опустите часть рию в Konqueror. Благодаря свойству К сожалению, нет. FISH предусмотрен машине.

98 Linux Format Ноябрь 2007


Ответы

образа в 50 МБ, а Puppy Linux больше раза в два. Это но отсоединить кабели питания от неиспользуемых пьютер для резервных копий был включен всегда, ког-
означает, что он включает гораздо больше программ, устройств. После этого ваша система должна загру- да требуется их создать.
например, текстовый процессор AbiWord и сопутству- жаться. Затем добавьте модуль piix к образу, который
ющие офисные приложения, SeaMonkey (новое имя Ubuntu загружает при запуске, с помощью команд 9 Новый диск хромает

В
Mozilla) для Web и почты и много чего еще. Недостаток sudo echo piix >>/etc/initramfs-tools/modules Найдя, что мне необходим жесткий диск
Puppy в том, что процесс инсталляции на жесткий sudo update-initramfs -u побольше, я подключил новый диск как hdb,
диск очень запутан, так как он спроектирован как Теперь вам надо выключить компьютер, снова разбил его, как надо, скопировал файловые
LiveCD-система. Зато вы можете запускать его прямо подсоединить все устройства и перезапустить его. системы со старого диска (hda) и попытался загру-
с CD, используя жесткий диск только для хранения Данная ошибка замечена небольшим числом поль- зиться с нового диска. К сожалению, ничего не
данных и настроек. зователей Ubuntu, у которых подключено много уст- вышло.
Другая альтернатива – правда, потяжелее – это ройств. Сообщалось также, что если проблема во Я сделал копии разделов /, /boot, /usr, /home и
Zenwalk (www.zenwalk.org). Если объем Вашего ОЗУ флоппи-дисководе, ее можно обойти, оставив в нем некоторых других. Я также создал swap-раздел. /boot,
такой, какой обычно использовался на 200 МГц маши- дискету, но мы не смогли этого проверить, и в любом первый основной раздел, сделал загрузочным. Я cпи-
нах, когда они были в новинку, то его не хватит; случае, это не метод. НВ сал MBR, используя lilo -M /dev/hdb. Далее монтиро-
но Zenwalk дает больше функций, чем маленькие вал /boot и / разделы, редактируя новую копию /etc/
дистрибутивы. 8 Сервис резервирования lilo.conf, (теперь на /mnt/hdb5) и запускал lilo -C /hdb5/

В
Запуск любой ОС на K-6/200 – это всегда компро- Откликаясь на Сравнение «Онлайн-резервиро- etc/lilo.conf -b /dev/hdb1 – на вид вроде работало.
мисс между возможностями и производительностью, вание» (LXF94), расскажу о мелкой, но, наде- Когда я пытаюсь загрузиться с нового диска, я
но он вполне возможен; тем более, если увеличить юсь, решаемой проблеме. Я использую iBackup, прохожу через стадию загрузочного окна Lilo и вижу
ОЗУ. НБ потому что делаю резервное копирование с моего ПК сообщения, заканчивающиеся на
(Ubuntu) и компьютера жены с Windows. Она справля-
7 Работка для Ubuntu ется с резервным копированием без моей помощи. initrd finished

В
Пытаясь запустить или инсталлировать Ubuntu, Проблема в том, что в процессе резервирования Freeing unused kernel memory
я получаю следующее сообщение после появ- с моего компьютера, запускаемого cron, соединение Warning: Unable to open an input console
ления заставки: часто прерывается. Когда это происходит, создавае-
unable to access tty job control turned off мый stunnel рушится, уничтожая резервирование, и я После этого только нажатие на reset выводит ком-
и возвращаюсь в командную строку. Ubuntu явно получаю частично скопированные данные на iBackup- пьютер из ступора. У меня стоит “Mandrakelinux release
пытается обратиться к моему флоппи-дисководу, сервере. Есть ли способ восстановить все при обрыве 10.2 (Limited Edition 2005) for i586”.
потому что перед появлением сообщения об ошибке соединения или даже возобновить процесс после вос- Родни М. Бэйтс [Rodney M Bates]

О
он включается. становления связи без потери данных? Проблема не в загрузчике. Раз уж ядро
Дэвид Лоусон [David Lowson] Сервер iBackup не позволяет настраивать время загрузилось, значит, загрузчик свое дело

О
Похоже, что ошибка связана с ядром: не или дату для копируемых файлов, поэтому все файлы сделал. Такая ошибка показывает на отсут-
найдя загрузочный диск, оно ищет его на имеют дату и время копирования. Из-за этого я копи- ствие файла в /dev – возможно, в /dev/console. Хотя
всех подряд устройствах, прописанных в рую сжатые в tar файлы и теряю возможности rsync. динамические файловые системы dev, типа udev и ее
BIOS. Потому-то дисковод и начинает работать. Эта Это хороший повод переключиться на использова- предшественника devfs, создают записи устройств в
проблема не у Вас одного, и существует более чем ние Rsync.net, но мне надо копировать файлы также и /dev автоматически, некоторые из них нужны еще до
одно решение. с компьютера моей жены. С iBackup у нее свое соеди- запуска devfs/udev. Подозреваю, что вы пропустили
Первое заключается в загрузке с установочного нение и URL. содержимое /dev, копируя свой корневой раздел –
диска и правке fstab в установленной системе. Если Гуус [Guus] забыли включить его в команду копирования или

О
ваш корневой раздел находится на /dev/sda1, нужны Если Вы используете rsync, рестарт резерви- исключили «прочие» файловые системы при копиро-
следующие команды: рования не должен вызывать проблем, пото- вании (вы не пояснили, как именно копировали фай-
sudo -i му что rsync «поднимается» с того места, где ловые системы, но cp, rsync и tar имеют опции по
mount /dev/sda1 /mnt произошел сбой. Не исключено, что сервер устанавли- исключению других файловых систем).
gedit /mnt/etc/fstab вает время копирования как время создания файлов, Содержимое вашей исходной директории /dev
В fstab вы должны найти строчку, где монтируется потому что так указано в опциях rsync. Вам нужно теперь скрыто, потому что новая, динамическая /dev
корневой раздел, она выглядит примерно так: вызывать rsync с опцией --times для сохранения вре- была примонтирована поверх нее, но, как вы можете
# /dev/sda1 мени файлов. Опция --archive – комбинация несколь- видеть, все еще доступна.
UUID=71f72f22-0a14-45b7-9057-f7b0bd9d819c /ext3 ких опций резервирования, включая --times. Это сни- mkdir /mnt/tmp
defaults.... мет необходимость копирования tar-архивов на сервер mount --bind / /mnt/tmp
UUID (Universally Unique IDentifier [Универсальный и позволит копировать индивидуальные файлы в том позволит обратиться ко всему корневому разделу
Уникальный Идентификатор]) позволяет Ubuntu нахо- виде, в котором они хранятся на вашей машине, что через /mnt/tmp без других подмонтированных фай-
дить корневой раздел, даже если сменилась точка сильно упрощает перезапуск копирования. ловых систем. /mnt/tmp/home должен быть пуст, а
подключения устройства (например, при добавлении Я попробовал Rsync.net после чтения статьи (рань- /tmp/mnt/dev должен содержать файлы устройств.
нового диска), но здесь бывают проблемы. Смените ше у меня был Strongspace) и переключился на Скопируйте их в /dev на Вашем новом разделе, и
UUID=xyz на путь вашего устройства, и система сно- него полностью. Резервирование нескольких машин ошибка при загрузке исчезнет. Самый простой способ
ва начнет загружаться. Fstab в этом случае должен выполняется легко, если Вы можете более или менее убедиться, что новый корневой раздел содержит все
выглядеть так: свободно обращаться с имеющейся памятью – удоб- файлы со старого –
# /dev/sda1 но будет создать по директории на резервную копию rsync -a --delete /mnt/tmp/ /mnt/newroot/
/dev/sda1 / ext3 defaults.... каждой машины. Rsync.net использует SSH для рабо- ПХ
Другое решение более экстремальное, так что ты rsync, так что в stunnel нужды нет, и вы можете
используйте его только в случае провала трюка с fstab. применить Duplicity для шифрования данных. 10 Рота, подъем!

В
Вы должны открыть корпус вашего компьютера и Альтернативное решение – резервирование дан- Для Mac OS X и Windows существуют специаль-
отключить все лишние дисковые устройства, оставив ных на локальный диск и синхронизация их с удален- ные программы, которые позволяют организо-
только загрузочный диск и DVD, с которого выпол- ным сервером. Преимущество здесь в том, что Ваш вать включение компьютера по расписанию. А
нялась установка – но не забудьте сперва выключить первый шаг резервирования локален: это позволяет есть ли что-нибудь подобное в Linux?
компьютер! Дисковод также отключите – достаточ- быстро восстановить данные, но требует, чтобы ком- Анатолий Евдокимов

Ноябрь 2007 Linux Format 99


Ответы

! Вопрос-победитель (английская версия)

Загружаясь с DVD
О
С точки зрения BIOS, загруз-

В
Я хочу установить DVD с LXF94 ка с CD и DVD – одно и то
на старый ПК в двойную загруз- же: DVD распознается прос-
ку с Windows 98SE. Это 7-летний то как большой CD-ROM. Старые
Athlon 600 на материнской плате MSI дистрибутивы Linux использовали
со 128 МБ ОЗУ, двумя жесткими дис- загрузочную дискету для быстрого
ками и приводами DVD и CD-RW. Его старта установки с CD, поскольку
BIOS не имеет опции загрузки с DVD. в то время множество компьюте-
Загрузочная последовательность поз- ров не поддерживало загрузку с CD.
воляет мне использовать CD-ROM как Ваше поколение техники должно
первое устройство, и я спокойно могу поддерживать загрузку с оптичес-
ее изменить. На форумах мне совето- ких дисков – неважно, CD это или
вали установить сперва Windows, если DVD. Установив в BIOS загрузку с CD,
нужна двойная загрузка (а так и есть). Вы не должны иметь проблем. Но Для ПК, неспособных загружаться с DVD, попробуйте Smart Boot Manager.
Я использовал Partition Magic V5 для могут сказываться личные особен-
создания и FAT, и Linux-разделов. ности BIOS: некоторые старые BIOS Windows, вставьте чистую дискету те установщику Ubuntu использо-
По-моему, Linux использует дру- дают сбой, если подключено более в дисковод и выберите sbootmgr.dsk вать все свободное место на диске
гой формат файлов по сравнению с одного оптического привода. Если как исходный образ. Загрузившись с («свободное» в этом случае означает
FAT, но я пытался использовать загру- вы установили в BIOS загрузку с CD и этой дискеты, вы сможете загрузить «неразмеченное», а не место внутри
зочную дискету Windows для «уста- не можете загрузиться с DVD, попро- ваш DVD. размеченных разделов).
новки» или «инсталляции» с DVD, и буйте отсоединить кабель от вашего Различия в файловых системах Ваш компьютер может «тор-
неудачно. Будет ли это работать, если CD-RW, чтобы остался только один Windows и Linux в этом случае к мозить» также из-за памяти. 128
диск будет CD-ROM? Дискета Red Hat оптический привод. делу не относятся, так как все дан- МБ – очень мало по сегодняшним
6.1 позволила мне запустить CD Red В наше время использование ные поступают с DVD, имеющего стандартам: современный рабочий
Hat, но она требует именно CD Red Hat загрузочной дискеты для установки другую файловую систему (ту же, стол, вроде KDE в Kubuntu, будет
и не работает с DVD LXF94. С CD Red с CD или DVD – это уже экзотика, что у CD). Использование Windows- работать очень медленно. Версия
Hat CD все получилось, но я прервал но на всякий случай мы поместили инструментов для создания разде- Ubuntu на LXFDVD наряду с жадны-
установку, потому что предпочитаю одну на DVD. Smart Boot Manager в лов Linux способно порождать труд- ми до ресурсов Gnome и KDE вклю-
(K)ubuntu. Могу ли я сделать загру- каталоге Essential/SBM на DVD как ности. Посредством Partition Magic чает нетребовательный рабочий стол
зочную дискету с DVD-драйверами на раз и есть загрузочная дискета для удалите созданные Linux-разделы, Xfce, используемый в Xubuntu. НБ
ней для установки DVD LXF94? запуска с оптического или жесткого включая swap, и оставьте просто
Джон Паттерсон [John Patterson] диска. Запустите RAWWRITE.EXE в неразмеченное место. Затем вели-

О О
Самый простой способ организовать «подъ- установленное программно, и отдают предпочтение Научить Grub запускать загрузчик с CD
ем по распорядку» – это воспользоваться времени, указанному непосредственно через BIOS. несложно, но для решения этой задачи при-
функцией ACPI WakeUp, которой обладает Исходя из этого, рекомендуется отключить в BIOS дан- дется привлечь два других проекта: MEMDISK
большинство современных материнских плат. Linux ную функцию – обычно она называется как-то вроде (http://syslinux.zytor.com/memdisk.php) и Smart Boot
предоставляет к ней два интерфейса. Wake from RTC/Alarm. Иногда пробуждение по таймеру Manager (http://btmgr.sourceforge.net/about.html или
В ядрах старше 2.6.22 используется файл /proc/ автоматически отменяется, если после его установ- Главное/SBM на нашем DVD). MEMDISK является час-
acpi/alarm, в который можно записать дату в формате ки в аппаратные часы были внесены изменения – а тью SYSLINUX и должен быть доступен в вашем дист-
«ГГГГ-ММ-ДД ЧЧ:ММ:СС», например, это делают многие дистрибутивы при выключении. рибутиве в виде одноименного пакета. Разверните
echo “2007-10-18 23:30:00” >/proc/acpi/alarm Поищите команду hwclock в скриптах /etc/init.d, и если данный пакет и извлеките из него файл memdisk,
после чего можно выключать компьютер обычным она там встречается, обеспечьте, чтобы время пробуж- который следует скопировать в каталог /boot. Далее,
образом. Конечно, следует проследить, чтобы сис- дения устанавливалось после нее повторно. возьмите из каталога Главное/SBM на первой стороне
темный блок остался подключенным к электросети и Можно пойти другим путем и воспользоваться нашего DVD файл btmgr.floppy.bz2 – это образ загру-
выключатель на его блоке питания находился в поло- программой nvram-wakeup (http://http//sourceforge. зочной дискеты Smart Boot Manager. Нам потребуются
жении ON. net/projects/nvram-wakeup), изменяющей установки ее первые 18 КБ: откройте root-терминал и наберите
Ядра 2.6.22 и выше предоставляют новый интер- прямо в энергонезависимой памяти BIOS (отсюда dd if=btmgr.floppy of=/boot/sbm.bin bs=1k count=18
фейс через файл /sys/class/rtc/rtcX/wakealarm. Для и название). Поскольку формат хранения данных в Наконец, необходимо создать соответствующую
установки «будильника» в него следует записать памяти меняется от производителя к производителю, запись в меню Grub:
желаемый момент времени в виде числа секунд, это получится только на поддерживаемых програм- title Boot from CD
прошедших с начала эпохи (1 января 1970 года, мой материнских платах, зато будет работать, как kernel /boot/memdisk
00:00:00) – формате, столь любимом ветеранами Unix. часы. ВС initrd /boot/sbm.bin
Чтобы отменить пробуждение, достаточно записать ВС
в файл значение 0. Кроме того, необходимо удосто- 11 Grub, который загрузит всех

В
вериться, что аппаратные часы вашего компьютера Надоело каждый раз устанавливать в BIOS
настроены на UTC, иначе пробуждение произойдет не загрузку с CD, чтобы попробовать новый дист-
в то время. рибутив. Есть ли способ добавить соответству-
Несмотря на свою простоту, данный способ не ющую опцию в Grub?
лишен недостатков. Так, некоторые материнские пла- Иван Пуренко
ты отказываются принимать во внимание значение,

100 Linux Format Ноябрь 2007


Ответы

На этом раздел заканчивается, но наши эксперты не расходятся по домам до тех пор, пока не дойдут до сути
Большой вопрос общей проблемы.

12 Администратор через браузер чтобы скрипты запускались на сервере, а не на MySQL. Теперь перейдите на https://www.ваш.

В
У нас учетная запись web-хостинга, предо- вашей машине. сайт/phphmyadmindir/ – вы увидите список ваших
ставляющего Apache, PHP и MySQL. Мы Загрузите и распакуйте один из tar-архивов с баз данных. Выбор одной из них покажет входя-
имеем FTP-доступ для загрузки файлов, но сайта phpMyAdmin (они различаются только языком щие в нее таблицы. Отсюда можно просматривать,
не доступ к командам оболочки, из-за чего и методом сжатия). Традиционный метод конфигу- выполнять запросы и модифицировать ваши SQL-
настройка базы данных SQL и других вещей рирования phpMyAdmin – создать подходящий файл таблицы, как вам нравится. Если у вас PostgreSQL,
затруднительна. Нам нельзя устанавливать на config.inc.php, взяв за основу включенные примеры, а не MySQL, то существует аналогичная программа,
сервер дополнительное ПО. Мы могли бы поискать но есть также и скрипт установки, который запуска- phpPgAdm, доступная по адресу http://phppgadmin.
другое место с shell-доступом, но нам нравится та ется всего один раз после копирования файлов на sourceforge.net.
цена, которую мы здесь платим. Есть ли способ сервер. Прежде чем что-то делать, убедитесь, что это Не только SQL-базы можно администрировать
получить административный доступ через web- безопасно. Любой получивший доступ к директории через web-интерфейс. Webmin позволяет изменять
браузер, и что для этого надо сделать? phpMyAdmin может читать и изменять вашу базу все, что вообще разрешено менять на *nix-маши-

О
Хотя переход на хостинг, поддерживаю- данных, так что обезопасьте себя с помощью файла нах, не ограничиваясь серверами. В вашем случае
щий SSH-доступ, добавит гибкости, .htaccess (или другим способом), чтобы подключе- Webmin невыгоден потому, что должен быть уста-
существуют решения, привлекательные ние было возможно только с защищенной паролем новлен и запущен от имени root, поскольку исполь-
даже в случае отсутствия командной строки. учетной записи. По возможности, включите его на зует собственный встроенный сервер, отличающий-
Основное из них – phphMyAdmin (www.phpmyadmin. раздел вашего пространства хостинга, доступный ся от подобных Apache. Спросите об этом своего хос-
net). Как видно из имени, это программа адми- через HTTPS, ведь вы передаете пароль при запуске тинг-провайдера: может, он уже установил Webmin
нистрирования MySQL, написанная на PHP; она установочного скрипта. Создайте директорию config или его бедного родственника Usermin. Если нет, то
устанавливается как набор файлов в вашей учет- в директории phpmyadmin и скопируйте всю дирек- он может захотеть его установить: это будет выгод-
ной записи после настройки безопасности и кон- торию (включая .htaccess) на сервер хостинга. но всем заказчикам. Он также может установить для
фигурации. Многие web-хостинги предоставляют Зайдите на https://www.ваш.сайт/phpmyadmindir/ вас phpMyAdmin, и у вас не будет нужды тратить на
доступ к базам данных только с локальных IP, setup.php и заполните поля своего подключения к это свою дисковую квоту и трафик. НБ

Шаг за шагом: соединяемся с phpMyAdmin

1 Прячем свой пароль 2 Мастер конфигурации 3 Ручная конфигурация


Перед копированием файлов phpMyAdmin (pMA) Загрузив setup.php в своем браузере, вы сможете Или же сконфигурируйте pMA перед загрузкой
на ваш web-сервер, убедитесь, что они защище- легко настроить phpMyAdmin, но подключайтесь файлов на web-сервер, отредактировав config.
ны от посторонних взглядов. через HTTPS, чтобы держать пароль в секрете. sample.inc.php и сохранив его как config.inc.php.

4 Вот оно! 5 А также PostgreSQL 6 Глобальная конфигурация


pMA позволяет работать с данными и схемами Пользователям PostgreSQL не придется терять C Webmin вы можете сконфигурировать на ком-
MySQL одним кликом мышки. Его можно исполь- чувство превосходства – для них есть phpPgAdm, пьютере все что угодно... точнее, все, что позво-
зовать и для создания резервных копий вашей эквивалент pMA. лит владелец компьютера. LXF
базы.

Ноябрь 2007 Linux Format 101


Лучшие новинки
открытого ПО на планете

LXF HotPicks
В ЭТОТ РАЗ ТОЛЬКО ДЛЯ ВАС: Rawstudio sdop
Atomic Tanks KBackup PartImage rlocate
Elastix
Kflickr
Krusader KardsGT
Ник Вейч
Чудо-математик, фанат Flickr и
иногда редактор LXF, Ник
рассылает из своего секретного
бункера летучих роботов-обезьян
на разведку интересных
приложений в поле свободного ПО.

Обработка изображений

Rawstudio
Версия 0.6 Сайт http://rawstudio.org/

R
awstudio мы уже рассматривали ранее, тов с форматом RAW или пакетной обработки
в LXF92; мы к ней вернулись, потому изображений в том виде, который вам больше
что здесь появилось несколько новых нравится.
функций. Для упустивших предыдущие пуб- Поскольку в RAW-изображениях, как пра-
ликации про эту программу, приведем некото- вило, 12 и более бит на канал, а у обычных
рые детали. Многие цифровые камеры – осо- «выходных» форматов 8 бит на канал, полу-
бенно более дорогие камеры SLR – позволяют чается неизбежная потеря качества при пере-
Rawstudio
получать изображения в т.н. «сыром» (raw) воде в JPEG, независимо от того, происходит и отметить нужные (выберите изображение
выполняет экспорт
формате, прямо с датчика. Обычно «сырые» это в камере или в Rawstudio – последняя дает и нажмите клавишу с цифрой), а затем пере-
не только в JPEG-
данные преобразуются в JPEG, но некоторые контроль над тем, какие биты отбрасывать файлы, но и в 16- ключиться на эту вкладку и заняться обработ-
камеры позволяют сохранять эти (довольно (можно также сохранять в других форматах). битные TIFF-файлы, кой. Обработка изображений требует време-
большие) файлы отдельно. Они более инфор- Запустите программу, выберите нужную чтобы сохранить всю ни, поэтому предусмотрен Пакетный режим
мативны, чем JPEG-файлы, и могут использо- папку, и все ваши файлы в RAW-формате информацию (Batch), и кстати, каждый снимок можно обра-
ваться для корректировки выдержки и других загрузятся как эскизы в верхнюю часть окна об изображении. ботать несколько раз по-разному.
эффектов. Многие пользователи также счита- Rawstudio. Вкладки внизу слева позволяют Новое в этой версии – улучшенная под-
ют, что компьютер переделывает RAW в JPEG выбрать группы фотографий, так что обыч- держка новых камер (благодаря dcraw) и дол-
лучше, чем фотоаппарат. ная схема работы – пройтись по всем фото гожданная коррекция посредством кривых.
Проблема RAW-формата в том, что у каж- В ней пока нет контроля каналов, но даже и
дой камеры он свой. Проект с открытым
кодом dcraw – отличное решение: он отсле-
«Разных RAW-форматов в таком виде это разительные обновления в
обработке изображений. Просто нажмите на
живает появление новых форматов. Rawstudio,
при его поддержке, предлагает богатый все-
много, и со всеми надо профиль кривой и поиграйте с кнопками, что-
бы добиться желаемых изменений.
возможными функциями GUI для эксперимен- как-то справляться… »
Шаг за шагом: Обработка RAW-файлов

Отметьте изображения Отредактируйте изображения Щелкните по вкладке Batch…


Укажите нужную папку в Rawstudio и выберите Настройте параметры (справа), чтобы получить …чтобы создать очередь из отобранных изобра-
изображения по их эскизам. Нажмите клавишу 1. желаемый эффект. Кривая яркости регулирует жений. Нажмите на Пуск – вы будете видеть
Щелкните на вкладке 1 (вверху слева) – контраст. Перед переходом к следующему эскиз текущего обрабатываемого изображения.
отобразятся только выбранные изображения. изображению нажимайте Ctrl+B.

102 Linux Format Ноябрь 2007


Работа с документацией

Simple DocBook
Processor
Версия 0.03 (Default) Сайт http://sdop.freshmeat.net
Поищите в Google “sdop”, и, вероятно, получи- Другой недостаток – sdop не поддержива-
те в результатах поиска San Diego Organising ет полный спектр возможностей стандартного
Project, Society for Diabetes in Old People и дру- набора функций DocBook; но отсутствие боль-
гие (без сомнения) достойные внимания сооб- шинства этих опций не так уж мучительно для
щества. Вряд ли вы найдете Simple DocBook печати, и вы, вероятно, его даже не заметите.
Использовать sdop
Processor, если, конечно, не ищете его специ- В ограниченной функциональности легко
очень легко,
ально. Что, вообще говоря, плохо, поскольку найти и плюс – простоту применения:
да к тому же есть
он довольно-таки хорош. sdop -o output.ps docbookfile.xml man-страница...
Основная его цель – получение PostScript- решит за вас все ваши проблемы (хотя есть
страниц из XML DocBook-файлов. Ничего дополнительные опции для генерации сооб-
больше. Есть и другие программы для этого щений, предупреждений и т.д.).
преобразования, но sdop отличается от них Короче, если вы хотите создать красивый,
рядом ключевых моментов. хорошо отформатированный и готовый для
Во-первых, она делает только это – нет ни печати документ DocBook, sdop сэкономит
вывода в HTML, ни чего-либо еще; если это вас вам массу усилий.
не устраивает – ну, не судьба. Во-вторых, она
не нуждается во внешней схеме или DTD для
осуществления преобразования. Может, это и
«Простая, легкая и удобная
недостаток, но если вам нужен всего лишь быс-
трый и точный перевод в PostScript (из которо-
в использовании: DocBook
го несложно сделать PDF), то вы его получили. без мороки.»

Устройство PBX

Elastix
Версия 0.8.5 Сайт www.elastix.org

A
sterisk, если кто не в курсе, не так услуги: голосовые ящики, факсимильную
давно превратилась в своеобраз- передачу и вечно раздражающий, но ох-как-
ный феномен Open Source: она стала полезный IVR (интерактивный голосовой
платформой для разработки, управления и ответ). В прошлом такие системы имелись
внедрения телекоммуникационных приложе- только в корпоративной среде, а Elastix собрал
ний с открытым и закрытым кодом, работаю- все эти функции в открытом пакете.
щих на OpenBSD, FreeBSD, Mac OS X и Solaris; Как обычно, настройка такого программ
но «родной» Linux поддерживается лучше превышает уровень «простых смертных» – Настройте PBX- чая интеграцию SugarCRM) в сочетании с при-
всего. Asterisk – сервер, работающий со всеми как минимум, по части файла конфигурации. «приставку» и ятным интерфейсом. Мы не тестировали его в
вашими телефонными соединениями, марш- Стоит ли удивляться, что рынок сейчас навод- получите всю реальной бизнес-среде, но уверены, что вам
рутизацией их по сети на телефоны, на любое нен решениями, включающим такие функции, нужную информацию это удастся.
количество VoIP-провайдеров, на факсы и т.д. как администрирование через сеть, статисти- через web- ISO-образ с последними разработками
Хотя вполне возможно создать огромную ка звонков, устранение неполадок и т.п. Этим интерфейс. добавлен на DVD. Запишите его на компакт-
систему IP-телефонии, настроив Asterisk на занимаются разработчики Asterisk, и есть еще диск или установите на виртуальную машину
одном из ваших серверов, в последние годы по крайней мере два других популярных про- для тестирования. Но в случае проблем звони-
довольно активно производятся автономные екта. Elastix пока еще зелен, но несмотря на те, э-э, не нам...
«приставки» [appliance] по типу «все в одном». это, обеспечивает множество функций (вклю-
Запустите их, прогуляйтесь по сети до экрана
конфигурации – и готово дело.
Современные телефонные системы име-
«Elastix – финалист
ют много забот: во-первых, они соединяют
большое количество телефонов. Затем – пре-
премии SourceForge
доставляют нужные людям дополнительные Community 2007 г.»
Ноябрь 2007 Linux Format 103
Файловый менеджер

Hottest
Krusader
Версия 1.80.0 Сайт http://krusader.sourceforge.net/
Pick

Д
ля большинства людей работа на ком- Хотя Konqueror останется частью KDE 4, сле-
пьютере означает создание, редакти- дует задаться вопросом, сколько усилий будет
рование, копирование, перемещение потрачено на его файловый менеджер.
и обработку файлов. Если ваша работа обхо-
дится без этого, вам повезло, но 99% пользо- Вперед, Крестоносцы!
вателей компьютера обязаны этим занимать- Итак, после довольно долгой преамбулы – к
ся, и эффективность и удобство управления делу. Krusader – файловый менеджер, раз-
файлами для них – главное. Может, вы даже вернутый несколько в ином направлении.
не знаете, сколько времени тратите на про- Продвинутые пользователи, утверждают его
смотр файлов через дерево папок или на разработчики, хотят иметь как можно больше
поиск какого-то документа в папке, где их информации. Они в ней не теряются: она фак-
сотни. Но мы уверены, что много! тически помогает им. Те, кого бесит строка
Вдобавок, чтобы вы знали, на работу влия- статуса, показывающая размер оставшегося
ют «ползучие силы зла». Нет, речь не о зомби свободного места в данной папке, могут поис-
(хотя они тоже достали, правда?). Мы имеем в кать другую программу.
виду медленное, но неуклонное «торможение» Krusader имеет привычный двухпанель-
всего. KDE 4 намерен в качестве файл-менед- ный вид. В одной половине – исходный ката-
жера по умолчанию использовать Dolphin, лог, в другой – каталог назначения, хотя файлы,
одолживший немало функциональности у понятно, могут перемещаться в обоих направ- Хотите реально кой мыши на файле – и это не столько коли-
Nautilus. Оба приложения стараются сделать лениях. Как в Konqueror, вы можете сделать взять под контроль чество предлагаемых вариантов, сколько их
работу более простой и приятной, скрывая вкладки из этих панелей, но в Krusader они рас- свои файлы? качество: добавить ссылку на файл, например.
от пользователя пугающие своей непонятнос- полагаются внизу окна, а не вверху. В любом Откажитесь [Мигранты с Windows! Krusader – это «мест-
тью подробности. Этот подход заимствован у случае, можно запросто открыть кучу папок от красивых иконок ный Total Commander», его наиболее полный
Mac OS X, и справедливо будет отметить, что назначения и переключаться с одной на другую. в пользу Krusader... аналог; тем и хорош, – прим.ред.] Этот фай-
резон в нем есть. Но тех из нас, кто работал Вы, наверное, уже подумывали, а чем отли- ловый менеджер не для праздношатающихся.
еще в Midnight Commander или Directory Opus чается Krusader от Konqueror, особенно когда Krusader также воспроизводит установки меню
(на Amiga!), идея утраты функциональности последний – в режиме детального просмотра? пользовательских действий из Konqueror, и вам
и детализации особо не радует. Даже хуже. Ответ можно получить, кликнув правой кноп- не придется определять их заново.
Предопределенные функциональные кла-
виши (пользователь может сам добавить
новые) охватывают стандартные действия и
Исследуем интерфейс Krusader продублированы в виде кнопок в нижней
части окна. Программа обязана своей мощью
добавочным приложениям, типа krename, но
есть и некоторые встроенные удобства.
Менеджер устройств
Полезен для управления Настрой-Ка
съемными дисками и Ключ к этому изобилию функций – возмож-
накопителями. ность настройки: вы оставляете нужную вам
информацию и убираете лишнюю. Эксперты
Управление файлами по эргономике раньше критиковали KDE и
Запросто синхронизируйте две KDE-приложения за чрезмерное количество
папки. настроек. Безусловно, потребуется немало
времени, чтобы прокрутить все опции и воз-
можности, но также безусловно, что при мыс-
Режимы просмотра ли «Хм-мм, а хорошо бы...» вы, скорее всего,
Доступны только два режима – найдете уже готовый вариант. Настройка в
детальный и менее детальный! основном заключается в привязке соответ-
ствующих приложений. Как и следовало ожи-
дать, большинство из них уже предусмотрено;
Нажмите и настройте а если вы потом установите новый архиватор,
Вкладки находятся внизу
панелей.
достаточно прописать к нему путь.
Клавиатура не нужна Множество функций Новый диспетчер файлов, несомненно,
Используйте функциональные Мощные функции включены по требует времени, чтобы в нем освоиться, но
клавиши для частых умолчанию.
потом вы поймете, что Krusader стоит этих
операций.
усилий.

104 Linux Format Ноябрь 2007


HotGames Развлекательные приложения
Карточная игра

KardsGT
Версия 0.6.3 Сайт http://kardsgt.nongnu.org/

К
арточных игр для Linux полным- ренно выколачивать очки из воображаемых
полно, и на первый взгляд KardsGT соперников и выкрикивать в экран бранные
не покажется чем-то особенным. Тут слова, спалив своего козырного валета; но,
шесть разных игр на выбор: Cribbage, Hearts, возможно, это сугубо личное.
Euchre, Old Maid, Spades и War. Большинство Другая приятная возможность – сохране-
команды LXF заинтересовалось Cribbage: ние текущего состояния игры.
существует не так много хороших версий Проблемы в процессе сборки? Вы уста-
этой игры под Linux. Чем нехотя занимать- новили Qt4 и используете qmake из того же
ся остальными, лучше мы направим наши релиза (а значит, пытаетесь собрать игру с
усилия на нее. Qt4, что обречено на провал). Прерывание игры с последующим возобновлением – полезная
Главные ее особенности – отличный вид функция, если к вашему рабочему месту двинулся босс.
и всевозможные опции. Выберите из спис-
ка локальных игроков или присоединитесь
к сети для реального турнира (хотя, если
только вы не счастливый участник сети с
другими пользователями Linux, поиск игро-
ков через LAN потребует времени). Карты и
общий дизайн игрового поля привлекатель- «Достойно сделанная
нее, чем у многих других игр, даже при том,
что картинка иногда слегка дергается. Ни
игра Cribbage –
с чем не сравнимое удовольствие – разме- отличное развлечение.»

Worms-подобная игра

Atomic Tanks
Версия 2.5 Сайт http://atanks.sourceforge.net

И
гры в танки, громящие друг друга, вая на него и кликая мышью. В самой игре
зародились еще до того, как Майк выберите метод уничтожения, используя
сказал свои первые слова («обал- клавишу Tab. Посредством клавиш курсо-
денно клево», если вам интересно). Вам ра скорректируйте угол и ударную силу, а
может показаться, что это клон Worms, но пробел означает «пли!» Если вы не сооб-
по правде, такие игры существовали задолго разили, как другие игроки ухитряются в вас
до него. Кто знает, что было первым подлин- попадать – большинство ударов отражается
ным примером в этом стиле (пишите письма от краев экрана, делая возможными самые
на /dev/null@linuxformat.co.uk)? Так или ина- жуткие и изощренные выстрелы!
че, это одна из тех игр. Почему мы включили Atomic Tanks использует Allegro, который Простые игры возвращают нас к золотой 8-битной эре.
ее сюда? Да потому что она неплоха, и поя- у вас, вероятно, уже установлен. А если нет,
вилась ее новая версия. пора это сделать.
Хотя рельеф не слишком сложный, ваше
передвижение ограничено и видов оружия
не слишком много, очень даже стоит поиг-
рать против некоторых компьютерных про-
тивников, чтобы посмотреть, как они слу-
чайно попадают друг в друга. Бесконечно
«Новые цвета, новые команды,
веселые моменты!
Управление тоже довольно простое.
новая мультяшная гравитация…
Обзаведитесь оружием в магазине, указы- Как их не полюбить?»

Ноябрь 2007 Linux Format 105


Утилита резервного копирования

KBackup
Версия 0.5.2 Сайт http://tinyurl.com/2jqson

П
ро резервное копирование мы зна- определенном месте – доступном с вашего ПК
ем, что а) его следует делать и б) мы, с Linux, включая возможность доступа через
вероятно, делаем его реже, чем сле- сеть. А хотите – переместите их во временный
довало бы. Если на ваших данных не зиж- каталог для записи на DVD (хотя это придется
дется само ваше существование, резервное делать вручную).
копирование всегда кажется лишней моро- Для регулярного резервного копирования
кой. Вы можете купить RAID-устройство или можете создать профиль, который будет хра-
изредка скидывать на DVD важную для вас нить настройки, такие, как целевая и исходная
информацию, но правда такова, что обычно папки: это удобно, если не забывать добавлять KBackup собственной несложной системы резервного
безопасность ваших данных пропорциональ- в свои профили вновь созданные каталоги. действительно прост, копирования.
на усилиям, приложенным к их сохранению. В KBackup есть очевидные ограниче- но не очень-то KBackup использует для создания архи-
Даже ваша новомодная железяка может стать ния. Можно заставить эту программу писать безопасен для вов tar или afio, и умеет даже сжимать файлы
объектом кражи или пожара. на съемный носитель, но чтобы делать это жизненно важных большого размера при помощи gzip. KBackup
Онлайн-сервисы резервного копирова- автоматически, придется создавать скрипт. документов! также поддерживает include и exclude для
ния – хороший вариант, так как ваши ценные Возможности программы расширяются за списков, и даже имеет возможность резервно-
данные хранятся удаленно, но они довольно счет способности использовать скрипты в го копирования в файл. Но самое убийствен-
дороги и трудоемки, если у вас много файлов, трех пунктах процесса резервирования, и ее ное то, что здесь нет режима Восстановить! В
которые необходимо регулярно резервиро- можно взять за основу для создания вашей момент, когда уже назрело резервное копиро-
вать (и этот процесс будет загружать сеть, ког- вание, вас не успевает обеспокоить мысль об
да вы захотите посмотреть футбольный матч их дальнейшем восстановлении!
с Мексикой по YouTube). Но все это не про «Поддерживает много
наш случай. KBackup – простая утилита с GUI-
интерфейсом, без лишних наворотов, которая
разных съемных устройств,
заархивирует нужные файлы и сохранит их в включая лентопротяжки.»

Создание образов разделов

PartImage
Версия 0.5.2 Сайт http://tinyurl.com/2jqson

У
мение создавать точный образ раз- например, архивными файлами, MPEG, JPG-
дела полезно, очень полезно. Вдруг изображениями и т.п., вы не слишком сэконо-
вам понадобится установить одинако- мите), хотя сжатие немного продлевает общий
во настроенный Linux на дюжине машин, или процесс. Кроме того, программа сохраняет
сохранить резервные копии первозданной только реально использованные дисковые
инсталляции, или вы установили супер-новую блоки, что экономит место, но и требует пони-
программу, которая конфликтует со всеми мания файловой системы. При размещении резервного копирования второстепенных раз-
остальными, и нуждаетесь в чем-то надежном, Впрочем, PartImage поддерживает много резервных файлов делов, больший смысл имеет использова-
на что можно положиться в трудный момент. распространенных файловых систем, включая на сменных ние версии на Live-диске для создания так-
К счастью для пользователей Linux, ядро Linux, NTFS (тестируется), XFS, JFS, FAT16/32, носителях же и образа основных рабочих разделов.
твердит, что все на свете – файлы, и это впол- ReiserFS и другие. Необходимое время и пригодится Предусмотрена широкая поддержка для рабо-
не приложимо к устройствам и разделам. При объем свободного места зависят от обстоя- авторазбивка на ты по сети, и хотя множественной записи
соответствующие
желании скопировать раздел, наберите dd в тельств, хотя программа и пытается опреде- разделов нет, зато легко записать образы при
порции.
командной строке, и блок за блоком вам ско- лить их за вас. надежном сетевом подключении.
пируется все, что угодно. Хотя можно установить PartImage на
По существу, PartImage именно это и дела- локальном диске и использовать его для
ет. Но полный образ раздела занял бы столь-
ко же места, сколько и сам раздел, поэтому
PartImage добавляет несколько дополнитель-
ных функций, самая очевидная из которых –
«PartImage включен во
сжатие сохраненного образа. Поразительно,
насколько можно уменьшить файл (правда,
многие дистрибутивы Linux:
если ваш раздел полон сжатыми данными, обновите свой сегодня!»
106 Linux Format Ноябрь 2007
Поиск файлов
Также выпущены

rlocate
Версия 0.9 Сайт www.flickr.com/groups/kflickr
Новые и обновленные программы,
заслуживающие вашего внимания...
nagios 3.0b3 Последний бета-релиз
инструмента мониторинга сети для
чемпионов. www.nagios.org

М
ожете использовать для поиска Программа создает задержки при сохране-
Проста
файлов Beagle и тому подобное, нии файлов – вы вряд ли захотите установить
в использовании,
но многие поклонники командной ее на машину, на которой идет частая запись
но сложна при
строки по-прежнему полагаются на slocate. файлов. Кроме того, для запуска вы должны установке – читайте
Наберите locate и часть имени файла, кото- собрать модуль ядра. Сгодится любое ядро документацию!
рый хотите найти, и мигом получите ответ. серии 2.6; но будьте осторожны с системами Также несовместима
Это действует, потому что примерно раз в безопасности. с SELinux.
день cron индексирует все файлы в файловой
системе и сохраняет результат в базе данных,
обеспечивая быстрый поиск. Главным обра-
зом эта программа нужна, когда вы только
что установили новое программное обеспече- Nagios умеет определять
ние и хотите найти все установленные файлы; злоупотребления сетью.
но результаты поиска могут ничего не дать,
поскольку база данных еще не обновлена. Goggles Music Manager 0.8.2 Запросто
прокрутит и проиграет ваши аудиофайлы.
Можно обновить ее вручную, но если у вас http://code.google.com/p/gogglesmm
система вроде нашей в LXF, вы намаетесь
ждать, пока обновятся 800 ГБ файлов. Ksquirrel 0.7.1 Просмотр изображений
В отличие от slocate, rlocate использует и слайд-шоу с поддержкой более
для управления базой данных модуль ядра. 50 форматов файлов.
http://ksquirrel.sourceforge.net
Она отслеживает изменения в файловой сис-
теме по мере их возникновения и обновляет
Jlaunchpad 1.0.0 Запуск Java-
базу данных – поэтому нет нужды перестраи- приложений, экономящий время
вать ее, и все файлы легко найти. и ресурсы. http://jlaunchpad.sourceforge.net

Tulip 3.0.0 beta ПО для построения


Загрузчик во Flickr графиков по большим массивам данных,
со сложной визуализацией.

Kflickr
www.tulip-software.org

Версия 0.9 Сайт www.flickr.com/groups/kflickr

О
дна из причин популярности Flickr – Kflickr теперь может автоматически извле-
богатство инструментов, разросшихся кать названия и примечания из тэгов EXIF,
на сайте благодаря мудрому решению встроенных в изображения, если ваша каме- Перетащит,
Flickr опубликовать открытый API. Существуют ра поддерживает эту функцию (или если вы прокомментирует,
многочисленные приложения для управления и добавили их при использовании других при- загрузит, даст пинка
загрузки фотографий. F-Spot и другие утилиты ложений для управления фотографиями). за перебор трафика.
управления изображениями имеют встроен- LXF Вот такой он, Flickr... Анализируй ЭТО!
ные возможности выгрузки во Flickr, но час-
то проще и легче иметь специализированный jython2.2 Скомпилируйте ваши Python-
приложения в байт-код Java и запустите на
загрузчик.
виртуальной машине JVM. http://jython.org
И неизменный фаворит здесь Kflickr (осве-
щался в HotPicks LXF93). На ранней стадии kalarm 1.4.14 В нужный момент выдает
его интерфейс страдал некоторой придурью, личные сообщения и напоминания.
но теперь стал полезным и многофункцио- www.astrojar.org.uk/kalarm
нальным, без лишних закидонов. Просто пере-
тащите файлы в главное окно, а затем, если Gambatte 0.1.0 Это приложение Qt/SDL
эмулирует Gameboy и Gameboy Advance.
хотите, пройдитесь по ним, добавляя тэги http://sourceforge.net/projects/gambatte
или меняя параметры безопасности. Kflickr
умеет управлять несколькими учетными запи- Tiny Tiny RSS 1.2.14 Крошечный новый
сями и даже добавлять фотографии в группы агрегатор, встроенный в web-страницу.
Flickr (хотя за раз можно загружать только http://tt-rss.spb.ru
одну группу). Эта программа нетребователь-
на к ресурсам и спокойно делает свое дело.
Единственный ее недостаток – насильствен-
ное автодополнение при добавлении тэгов.

Ноябрь 2007 Linux Format 107


LXF DVD98
В этом месяце: три полноценных дистрибутива плюс инструментарий по безопасности…

Бесценная страсть
На LinuxWorld этого года в Сан-Франциско то спрашивают о компьютерной индустрии,
(см. отчет о выставке на стр. 8) меня поразила добавляя: «Разве она не испорчена алчностью,
пылкая страсть к программированию, види- ударами в спину и монополиями?» Да, иногда
мая даже сквозь корпоративный лоск. Даже мир коммерческих программ именно таков.
возле броских стендов Dell и Palm слышались Но в мир свободных программ вход свобод-
больше беседы программистов, чем марке- ный – он не требует вложений (кроме личного
тинговые обсуждения и рекламные слоганы. У времени) от желающих присоединиться.
людей появилась подлинная страсть к техно- Чтобы реализовать свою страсть, скажем,
логии вообще и к Linux в частности. к водному спорту, вам придется снарядить
Самой лучшей площадкой для проектов лодку и обзавестись всем необходимым обо-
свободного ПО на выставке стала секция ‘.org’; рудованием. Но чтобы попасть в мир Linux и
Майк Сондерс разработчики OpenSUSE, Debian, Gnome, Open Source, все, что вам надо – это ПК (сго-
любовно подбирает Gentoo и других проектов смогли погово- дится даже старичок, купленный за 100 фун-
содержимое диска Linux
рить о своих самых свежих продуктах и тов на eBay). Нулевая стоимость программ
Format, а также
поддерживает сайт вовлечь в этот разговор других. Было означает, что вы можете учиться, выполнять
www.linuxformat.co.uk.
www.linuxformat.co.uk отрадно понимать, что эти люди здесь, исследования и даже делать карьеру прак-
потому что любят свою работу, и им не тически без средств. И это – действительно
нужны крупные суммы денег, чтобы их нечто особенное.
присутствие заметили. В этом месяце у нас три отличных дистрибу-
В том-то и состоит одно из луч- тива, полезные инструменты и многое другое.
ших свойств свободного ПО. Меня час- mike.saunders@futurenet.co.uk

Шаг за шагом: Установка 64 Studio 2.0


1 Загрузка 2 Язык
Загрузите компью- Запустится программа
тер с DVD, и воз- установки, предложив
никнет это меню. вам выбрать язык.
Нажмите F1, чтобы Для навигации ис-
увидеть полный пользуйте стрелки
список опций за- курсора и Enter.
грузки; в большин-
стве случаев доста-
точно нажать Enter
для старта.

5 Разделы 6 Разбивка
Здесь вам дается вручную
выбор – отвести под Если вы создаете
64 Studio весь жест- разделы вручную,
кий диск (Guided) отведите не менее
или вручную разбить 10 ГБ на корневой
диск на разделы раздел (/) и 512 МБ
(Manual). Если у вас на раздел подкач-
двойная загрузка, ки.
выбирайте второе.

108 Linux Format Ноябрь 2007


Мультимедийный дистрибутив DVD

Дистрибутив Linux

64 Studio 2.0
В
озьмите прочный фундамент Debian, его работоспособность соответствуют ожида-
пристройте отличные программы для ниям, уместным для любого дистрибутива на
редактирования аудио и видео – и вы основе Debian с широким спектром программ,
получите 64 Studio; разработка велась для но именно подбор программ в дистрибутиве
64-битных машин, но 32-битная версия с придает ему целенаправленность.
нашего DVD работает на обеих архитектурах. Выбор пакетов 64 Studio отражает богатс-
Дистрибутив фокусируется на производстве тво существующих на данный момент откры-
медиаконтента, и в нем имеется несколь- тых средств для создания медиа: для графики
ко заплаток ядра для улучшения произво- имеется Blender, Cinepaint, GIMP, Inkscape, Dia
дительности в режиме реального времени, и Skencil; для звука – Ardour, FLAC, Hydrogen,
позволяющих, например, избежать пауз при LilyPond, Audacity и Rosegarden; да еще мно-
записи звука. Релиз 2.0 включает ядро 2.6.21 жество инструментов и утилит. 64 Studio так-
и X.org 7.1, с Gnome 2.16. И внешний вид, и же включает Firefox (ребрендинг IceWeasel),
Pidgin (бывший GAIM), Gnumeric и AbiWord.
Сроду не устанавливали Debian? Возможно,
текстовая программа установки 64 Studio
немного вас испугает. Следуйте подсказкам, загрузите ПК с LXF DVD и нажмите Enter По-вашему,
да сперва позаботьтесь о создании резервных в ответ на приглашение к загрузке Debian. стандартный
копий всех важных данных, тогда проблем Запустится программа установки, и начнется рабочий стол
не возникнет. Мы рекомендуем процессор не процесс копирования дистрибутива на ваш скучноват?
Установите Beryl и
менее 1 ГГц, 256 MБ ОЗУ и 20 ГБ свободного жесткий диск – следуйте нашим рекомендаци-
наслаждайтесь
места на диске для работы. (Для обработки ям, изложенным далее, для быстрого запуска.
красотами 3D-куба!
звука лучше иметь процессор побыстрее, а Посетите форумы на www.64studio.com, там
если вы занимаетесь графикой, то полезным вам помогут; кроме того, на этом сайте много
будет 512 MБ ОЗУ.) информации по дистрибутиву, включая под-
Ardour с аудиофайлом, панель управления Чтобы установить 64 Studio и продегус- робное руководство по установке и список
JACK – звуковым сервером, объединяющим тировать плоды медиа с открытым кодом, часто задаваемых вопросов.
приложения.

3 Подготовка 4 Настройка сети


Программа уста- Если вы в сети, то
новки начнет счи- программа установки
тывать с DVD ос- задаст вам несколько
новные файлы. Это вопросов по ее на-
может занять не- стройке, например,
сколько минут – уточнит доменное
в зависимости от имя.
скорости вашего
компьютера.

7 Учетные записи 8 Копирование


Программа установки Программа уста-
попросит вас ввести новки скопирует
пароль root (админи- файлы, перезагру-
стратора) и создать зит и настроит па-
обычную учетную за- кеты, и вы готовы
пись пользователя. к работе!
Не забудьте их!

Ноябрь 2007 Linux Format 109


DVD Дистрибутив на базе Ubuntu

Дистрибутив Linux

Linux Mint 3.1


Н
ет, это не новая марка зубной пасты
[mint по-английски «мята»]. Linux Исследуем интерфейс Mint
Mint – быстроразвивающийся дист-
рибутив на основе Ubuntu. Пока вы не закрича-
ли «Ну вот, еще один Ubuntu!», позвольте нам Рабочий стол
Здесь находятся значки
Tomboy
кое-что объяснить. Он не похож на Fluxbuntu
Эта удобная
и Ко. (разновидности Ubuntu, отличающиеся для вашей файловой
утилита позволяет
системы, домашней
рабочим столом или оконным менеджером, отслеживать ваши
директории и
выбранным по умолчанию); цель Linux Mint – программы установки.
заметки, создавая
сделать ОС привлекательнее и дружелюбнее к связи между ними.
пользователю. Данный релиз создан на базе Deskbar
Ubuntu 7.04 (Feisty Fawn), большинство основ- Замещает обычные Сеть и обновления
ных программ имеют те же номера версий – меню Gnome; функций В правой части панели
ядро 2.6.20, X.org 7.2, Gnome 2.18, OpenOffice. в нем больше. находится инструмент
подключения к сети.
org 2.2 и Firefox 2.0.0.6.
Меню Здесь же появляется
Однако отличия от привычного Ubuntu значок, сигнализиру-
скрываются глубже. В качестве панели запус- Нажмите на кнопку
Celena, чтобы открыть ющий о наличии
ка Mint использует Deskbar вместо типичных обновлений.
Deskbar.
меню Gnome, и внизу только одна панель
вместо привычных двух. Если кликнуть вни-
зу слева в Celena (кодовое имя релиза 3.1),
откроется большое окно со ссылками на часто подтвердить, что работать с ним удобно, когда задачу. Однако в некоторых частях света эти
просматриваемые элементы файловой сис- привыкнешь. библиотеки являются юридически сомнитель-
темы, системные установки и приложения. Незначительные изменения внесены и в ными, в связи с патентным законодательствoм
На первый взгляд окно кажется несколько подбор программ. Вы увидите, что при запуске и по иным причинам, поэтому разработчики
перегруженным, но пользователи SLED могут дистрибутива всплывает популярный инстру- предоставляют также версию Light, не содер-
мент для заметок Tomboy, а почтовым клиен- жащую подобных компонентов.
том является Thunderbird (вместо Evolution). Linux Mint 3.1 представлен на нашем DVD
Сохранена совместимость с репозиториями в виде ISO-образа; запишите его на CD-R,
Ubuntu – собственно говоря, заглянув в /etc/ а затем загрузитесь с полученного диска.
apt/sources.list, вы увидите, что большинство Подобно Ubuntu, дистрибутив запускается в
репозиториев пакетов Ubuntu’вские, а от про- Live-режиме – т.е. непосредственно с носи-
екта Linux Mint только один. теля – и небольшая программка поможет в
У этого дистрибутива есть еще одна при- установке, если вы решились поселить его
мечательная черта. Стандартные релизы Mint на жестком диске. Системные требования –
сконцентрированы на поддержке различных 256 MБ ОЗУ, и мы рекомендуем процессор
медиа-кодеков (например, для воспроизве- не менее 1 ГГц и 5 ГБ жесткого диска, что-
Включите рабочий стол Beryl, если ваша дения MP3 и DVD) прямо из коробки, и в бы выжать из дистрибутива все, на что он
видеокарта справляется с 3D-эффектами. них множество библиотек, облегчающих эту способен.

Шаг за шагом: Установка Linux Mint 3.1


1 Загрузка 2 Рабочий стол
Запишите на CD-R Добравшись до рабо-
образ диска .iso из чего стола, вы увиди-
раздела те значок программы
Дистрибутивы/ установки Install, а
Linux_Mint нашего также значки для
DVD, затем загру- файловой системы и
зитесь с него. домашней директо-
Увидев этот экран, рии. Чтобы начать
нажмите Enter; за- процесс установки,
пустится Live-ре- дважды щелкните по
жим дистрибутива. пиктограмме Install.

110 Linux Format Ноябрь 2007


Дистрибутив для начинающих DVD

Дистрибутив Linux

Ark Linux 2007.1


К
то построил Ark [по-английски, Ark – Ark Linux обеспечивает полную установ-
ковчег; намек на известный библей- ку Linux на жесткий диск с нашего DVD. В
ский сюжет, – прим. пер.]? В дан- нем есть все, что полагается иметь ОС для
ном случае – Бернард «Беро» Розенкранцер настольного ПК – web-браузер, почтовый кли-
[Bernhard ‘Bero’ Rosenkranzer], бывший ент, офисные инструменты и игры. На вашем
cотрудник Red Hat, которого не устраивало ПК должно быть не менее 256 MБ ОЗУ, про-
отношение к KDE в релизах дистрибутива цессор 1 ГГц и 10 ГБ свободного места на дис-
его компании. Исторически сложилось, что ке для достойной работы, хотя идеально было
Red Hat (и Fedora) предпочитают Gnome, бы отдать ему весь жесткий диск целиком.
поэтому Беро решил создать собственный Если же для вас это роскошь, и на вашем
дистрибутив Linux, чтобы воздать должное компьютере нужна двойная загрузка Windows
KDE и позволить ему занять достойное поло- и Linux, программа установки и тут посо-
жение. Начавшись с релиза Ark Linux 2005.1 действует. В любом случае, установите DVD
в марте того года, развитие дистрибутива в дисковод и перезагрузите компьютер. При
шло не особенно бурно, по сравнению с появлении экрана загрузки Debian, введите
такими дебютантами, как Ubuntu, но мощь arklinux и нажмите Enter. (Если возникнут про-
релиза 2007.1 показывает, что он уверенно блемы, перезагрузитесь и попробуйте ввести Программы установки проще Ark Linux мы не видали: она даже не
встает на ноги. arklowres или arknoacpi.) поленилась объяснить, как пользоваться мышью!
Ark Linux нацелен на начинающих в Linux.
В крупных настольных дистрибутивах типа Следуйте подсказкам
OpenSUSE, Fedora и Ubuntu забота о них Запустившись, программа установки Ark Linux
ограничивается дежурным реверансом, то попросит вас выбрать язык. На каждой ста- Другие программы
есть удобной программой установки и гра- дии установки есть превосходные подсказки,
фическими инструментами настройки, а поэтому нам нет необходимости объяснять
Новые релизы
команда Ark Linux исходно сфокусирова- все здесь, но будьте осторожны при делении
В этом месяце – два новых рели-
лась именно на новичках. Это отлично раз- диска на разделы. Во время второй стадии вас
за в сфере личных финансов:
работанный дистрибутив – в него явно вло- спросят, хотите ли вы отвести весь жесткий
GnuCash 2.2.1 и HomeBank 3.5.
жено много усилий, и мы охотно включили диск под Linux, изменить размер существую-
Обе версии исправили ошибки,
его в DVD этого месяца: пусть «молодежь» щего раздела Windows или создать разделы
обнаруженные в предыдущих
порадуется. вручную. Если вы хотите сохранить двойную
релизах; тем, кто работает со
Но не думайте, что бывалые линуксоиды загрузку с Windows, выбирайте вторую опцию, HomeBank: зрелая
старыми версиями, неплохо бы
не найдут здесь ничего интересного. Даже но сперва сохраните все важные данные! программа управления
обновить их. Обе программы
экспертам в Linux стоит познакомиться с этим По завершении установки вы загрузите свою личными финансами
используют знакомую проце- с опрятным
дистрибутивом: не исключено, что через пару новую систему Ark Linux. Желаем приятного
дуру ./configure, make и make Gtk-интерфейсом.
месяцев он всех удивит, бросив вызов основ- знакомства с ней! В случае проблемы, или при
install, и если у вас налицо GCC и
ным игрокам. А если вы впервые взялись за желании больше узнать о дистрибутиве, хоро-
зависимости, сборка из исход-
Linux Format и несколько обескуражены жар- шим стартовым пунктом станет www.arklinux.
ных текстов не должна вызвать
гоном в статьях про другие дистрибутивы, вам org. А чтобы узнать, как дела у других читате-
проблем. скромной ролью арифмомет-
тоже будет нетрудно обосноваться здесь. лей, посетите форумы на www.linuxforum.ru.
В разделе Рабочий стол – дол- ра: здесь масса опций, широкий
гожданный Gimp 2.4: попробуй- охват научных функций, режим
те сами. На момент написания RPN и отмена/восстановление
доступен был только исход- предыдущего действия, а также
ный код, поэтому позаботьтесь набор регистров памяти.
3 Установка
о GCC и пакетах разработчика Если вы – разработчик, и при-
Следуя подсказкам,
Gtk и X. вычный текстовый редактор на-
установите Linux
По части аудио, солидных ус- чал действовать вам на нервы,
Mint на жесткий
диск. Скопируются пехов добивается KWave – ре- обратите внимание на TEA в раз-
файлы дистрибути- дактор звуковых файлов для деле Разработка. Это исключи-
ва, и после ввода KDE. Он позволяет нарезать и тельно гибкий редактор, кое в
имени пользовате- компоновать многоканальные чем побивающий даже мощный
ля, задания пароля WAV-файлы, а также предусмат- Emacs. Emacs ведь не конверти-
и выбора несколь- ривает систему модулей расши- рует текст в азбуку Морзе? TEA
ких настроек, може- рения. Еще одна полезная ути- использует в своем UI много-
те перезагрузиться уважаемый компонент редакти-
лита Рабочего стола – Calcoo;
и войти в Linux Mint
как вы и подумали, это кальку- рования Scintilla, и мы серьезно
(не забудьте из-
лятор, но он не довольствуется рекомендуем его на тест-драйв.
влечь CD!).

Ноябрь 2007 Linux Format 111


DVD Инструментарий безопасности

ПО и документация

Инструментарий безопасности

Б
езопасность – цель движущаяся. же ПК, введя nmap 127.0.0.1, но помните, что
Только вы подумали, что все у вас под в этом случае внешний сетевой брандмауэр не
контролем и защитой, как выявляется будет действовать.
новая уязвимость, и нужно спешно брать- Еще одна превосходная утилита – Sussen,
ся за предотвращение взлома своих машин. она сканирует машины на предмет известных
Конечно, в смысле безопасности Linux полу- уязвимостей. В отличие от Nmap, который,
чше, чем некоторые другие ОС – не будем проверив порты, бросает вас в одиночку разби-
говорить, какие – но это не значит, что пора раться с результатом, Sussen использует OVAL
почивать на лаврах. В ядре и в системных биб- (Open Vulnerability and Assessment Language –
лиотеках было-таки несколько досадных оши- Язык Обнаружения и Оценки Уязвимостей),
бок, которые в прошлом привели к несколь- чтобы сообщить о неблагонадежных програм-
ким взломам. мах. Если ваш почтовый сервер сильно уста-
Итак, что вы предпринимаете для безо- рел, и/или это «дырявый» релиз, Sussen сумеет
Следуйте советам наших статей и руководств по безопасности из
пасности системы? Очень важно следить за определить его и предупредить вас о том, что
предыдущих выпусков Linux Format, чтобы отогнать взломщиков
обновлениями, предоставляемыми произво- он просто напрашивается на взлом…
подальше.
дителем вашего дистрибутива; если вашим
программам уже несколько лет, есть шан- Обнаружение следов
сы появления новых заплаток. Кроме того, Какие бы меры вы ни предпринимали, втор- ем, как работает система паролей Linux, и как
при работе с сервером обязателен хороший жения в систему все же случаются, и нелиш- можно расширить ее, чтобы повысить безо-
брандмауэр. Большинство дистрибутивов в ним будет наличие детективными инструмен- пасность, и почему так важно отключать все
наши дни сводят количество открытых пор- тами, чтобы определять последствия. Linux ненужные сервисы, работающие на вашей
тов к минимуму – особенно на настольных дает здесь на выбор две отличные програм- машине.
ПК; но нелишне и убедиться, что вы ничего не мы: Aide и Tripwire; они обе отслеживают важ- Далее рассмотрены работа с Aide и
оставили распахнутым настежь. Сравнение нейшие файлы системы и сообщают о любых Tripwire, настройка брандмауэров в Linux с
на стр. 18 поможет вам сделать правиль- изменениях. Если, например, злодей проник на помощью командной строки и анализ инфор-
ный выбор в этой области; все интерфейсы ваш компьютер и подменил двоичный файл / мации, которую выдает Nmap. Благодаря этим
для брандмауэров, естественно, имеются на bin/login, чтобы отсылать пароли в сеть, Aide руководствам и программам ваша машина так
нашем диске. и Tripwire обнаружат это изменение и предуп- окрепнет, что (мы надеемся) взломщики дваж-
Однако в нашем разделе Безопасность редят вас о нем. Пусть это не идеал (умелые ды подумают, прежде чем с ней связываться!
есть кое-что поинтереснее: полный набор взломщики доберутся и до Aide или Tripwire!),
инструментов для сканирования и укрепления но все же (не)лишний уровень защиты.
вашей системы. Один из наиболее полезных – А на случай самого кошмарного – напри- И напоследок…
Nmap, сканер портов, который ищет открытые мер, взломщик добился, что ваша машина
порты на вашей машине. Пользоваться им перестала загружаться – нужно всегда иметь Ну не до такой же степени вы забаррикадировали свою
машину, чтобы это помешало вам поиграть! В этом
легко: просто введите nmap hostname (заме- под рукой копию INSERT. Это небольшой
месяце раздел Игры выставил отличный ассорти-
нив hostname на имя или IP-адрес маши- спасательный CD (60 MБ, чтобы уместиться
мент, начиная с классической стрелялки Alien Blaster.
ны, которую вы решили просканировать), и на мини-CD-R размером с визитку), наби- Кому по душе воспоминания об аркадах старой
он выдаст список доступных портов на этой тый инструментами безопасности и восста- школы, получит массу удовольствия!
машине. Можете даже просканировать свой новления, многие из которых составляют наш Любителям интеллектуальных игр поспокойнее пред-
детективный набор. Если ваша лагаем Amoebax, очаровательную головоломку на базе падающих
система пострадала от серьез- цветных блоков. Правда, на сей раз это не совсем блоки, а разновид-
ного взлома, или вы просто не ности амёб, которые, в силу мутации, пошли делиться, пока не запо-
хотите загружать ее в нормаль- лонят весь мир. А ваша задача – пресечь подобную микромегалома-
ном режиме, чтобы избежать нию, уничтожая их группами по четыре штуки.
И, наконец, DigiBand – первый имитатор гитары, который мы увиде-
худшего, берите Live-дистри-
ли в Linux. Возможно, вам уже встречались такие игры в аркадах
бутив INSERT и осматривайте
(вспомним Guitar Hero на PlayStation), и, хотя большинство из нас уме-
содержимое жесткого диска. ет играть только на клавишах, это отменное развлечение. LXF
На нашем DVD множест-
во других ценных программ:
познакомьтесь с Rootkit Hunter Японская тема
(RKH), John the Ripper (про- рулит.
граммой определения слабых Мы хоросё
играть время
паролей) и Wireshark (быв-
сейсяс – да!
ший Ethereal, анализатор сете-
вого трафика). Программами
диск не ограничивается: в раз-
деле Журнал/PDFs предлага-
ется подборка учебников по
Nmap обычно запускается на сканирование портов из безопасности из предыдущих
командной строки, но в нем есть и графическая оболочка. выпусков LXF. Мы объясня-

112 Linux Format Ноябрь 2007


DVD

Информация
о диске
ВНИМАТЕЛЬНО ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ DVD-ДИСК !

ЧТО-ТО ПОТЕРЯЛИ?
Часто случается, что новые программы зависят от дру-
гих программных продуктов, которые могут не вхо-
дить в текущую версию вашего дистрибутива Linux.
Мы стараемся предоставить вам как можно
больше важных вспомогательных файлов. В боль-
шинстве случаев, последние версии библиотек и
другие пакеты мы включаем в каталог «Essentials»
(Главное) на прилагаемом диске. Поэтому, если в
вашей системе возникли проблемы с зависимостя-
ми, следует заглянуть именно туда.
ФОРМАТЫ ПАКЕТОВ
Мы стараемся включать как можно больше раз-
личных типов установочных пакетов: RPM, Deb или
любые другие. Просим вас принять во внимание,
что мы ограничены свободным пространством и
доступными бинарными выпусками программ. По
возможности, мы будем включать исходные тексты
для любого пакета, чтобы вы смогли собрать его
самостоятельно.
ДОКУМЕНТАЦИЯ
На диске вы сможете найти всю необходимую
информацию о том, как устанавливать и использо-
вать некоторые программы. Пожалуйста, не забы-
вайте, что большинство программ поставляются
вместе со своей документацией, поэтому дополни-
тельные материалы и файлы находятся в соответ-
ствующих директориях.
ЧТО ЭТО ЗА ФАЙЛЫ?
Если вы новичок в Linux, вас может смутить
изобилие различных файлов и расширений. Так как
мы стараемся собрать как можно больше вариантов
пакетов для обеспечения совместимости, в одном
каталоге часто находятся два или три файла для
различных версий Linux, различных архитектур,
исходные тексты и откомпилированные пакеты.
Чтобы определить, какой именно файл вам нужен,
необходимо обратить внимание на его имя или
расширение:
имя_программы-1.0.1.i386.rpm – вероятно, это
бинарный пакет RPM, предназначенный для работы
на системах x86;
имя_программы-1.0.1.i386.deb – такой же пакет, но
уже для Debian;
имя_программы-1.0.1.tar.gz – обычно это исходный
код;
имя_программы-1.0.1.tgz – тот же файл, что и выше
по списку: «tgz» - это сокращение от «tar.gz»;
имя_программы-1.0.1.tar.bz2 – тот же файл, но
сжатый bzip2 вместо обычного gzip;
имя_программы-1.0.1.src.rpm – также исходный код,
но поставляемый как RPM-пакет для упрощения
процесса установки;
имя_программы-1.0.1.i386.FC4.RPM – бинарный пакет
RPM для x86, предназначенный специально для
операционной системы Fedora Core 4;
имя_программы-1.0.1.ppc.Suse9.rpm – бинарный
пакет RPM, предназначенный специально для
операционной системы SUSE 9.x PPC;
имя_программы-devel-1.0.1.i386.rpm – версия для
разработчиков.

Если диск не читается...


Это маловероятно, но если все же прилагаемый к
журналу диск поврежден, пожалуйста, свяжитесь с
нашей службой поддержки по электронной почте:
disks@linuxformat.ru

Декабрь 2006 Linux Format 113


DVD

СОЗДАНИЕ УСТАНОВОЧНЫХ
ДИСКОВ ПРИ ПОМОЩИ
CDRECORD

Самый быстрый способ записать ISO-образ на чистую


матрицу – это cdrecord. Для всех перечисленных ниже
действий потребуются права root. Для начала опре-
делите путь к вашему устройству для записи дисков.
Наберите следующую команду:
cdrecord -scanbus
После этого на экране терминала должен отобра-
зиться список устройств, подключенных к вашей систе-
ме. SCSI-адрес каждого устройства представляет собой
три числа в левой колонке, например, 0,3,0. Теперь вы
можете с легкостью записать образ на диск:
cdrecord dev=0,3,0 -v /путь к образу/image.iso
Чтобы упростить дальнейшее использование
cdrecord, сохраните некоторые настройки в файле /etc/
default/cdrecord. Добавьте по одной строке для каждо-
го устройства записи (вероятно, в вашей системе при-
сутствует всего одно такое устройство):
Plextor= 0,3,0 12 16M
Первое слово в этой строке – это метка, затем, пос-
ле адреса SCSI-устройства вы должны указать скорость
и размер буфера. Теперь вы можете заменить SCSI-
адрес в командной строке на выбранную вами метку.
Все будет еще проще, если вы добавите следующее:
CDR_DEVICE=Plextor
Все, что вам теперь нужно для записи ISO-образа
– это набрать команду
cdrecord -v /path/to/image.iso
Если вы не из числа любителей командной строки, в
таком случае вам придет на помощь утилита gcombust.
Запустите ее из-под root, выберите вкладку Burn и ISO
9660 Image в верхней части окна. Введите путь к обра-
зу, который вы хотите записать на диск, и смело нажи-
майте на Combust!. Пока ваш образ пишется на диск,
можете выпить чашечку кофе.

Другая ОС?
Вам не обязательно использовать Linux для записи ком-
пакт-диска. Все необходимые файлы уже включены в
ISO-образ. Программы вроде cdrecord просто переносят
данные на чистую матрицу. Если у вас нет устройства
для записи дисков, можно найти того, у кого оно есть, и
записать диск на его компьютере. На нем может стоять
Windows, Mac OS X, AmigaOS, или любая другая ОС.

Нет устройства для записи дисков?


А что, если у вас нет устройства, с помощью которо-
го можно было записать образ на диск? Вы знаете
кого-либо с таким устройством? Вам не обязательно
использовать Linux для записи дисков, подойдет любая
операционная система, способная распознать пишущий
привод (см. выше).
Некоторые дистрибутивы умеют монтировать образы
дисков и выполнять сетевую установку или даже уста-
новку с раздела жесткого диска. Конкретные методы,
конечно, зависят от дистрибутива. За дополнительной
информацией обращайтесь на web-сайт его разработ-
чика. LXF

114 Linux Format Декабрь 2006


Содержание DVD

Содержание DVD
ЖУРНАЛ
Advanced ....................Код из учебника Hardcore Linux.
Apache ........................Проекты Apache
Software Foundation.
JavaEE ........................Код примеров статьи.
KDE Art .......................Код к учебнику
по украшению KDE.
LinuxWorld..................Видеоотчет о конференции.
PerlCpp .......................Код к учебнику Perl и C++.
PDFs ...........................Статьи по безопасности
из предыдущих выпусков LXF.
StarFighter ..................Вариант игры, создаваемой
в рубрике Игрострой.

РАБОЧИЙ СТОЛ
Calcoo.........................Научный калькулятор.
CellWriter ....................Распознавание
рукописного ввода.
Gimp ...........................Графический редактор (Linux-
эквивалент Adobe Photoshop).
GnuCash .....................Персональный
финансовый менеджер.
HomeBank...................Пакет для работы
с личными финансами.
KWave ........................Звуковой редактор для KDE.

РАЗРАБОТКА
GTK-server .................Потоковый интерфейс
к библиотекам Gtk.
Mono...........................Среда .NET с открытым кодом. GuYum: удобопонятная графическая оболочка для менеджера пакетов Yum от Fedora.
MonoDevelop ..............Интегрированная
среда разработки C#. HOTPICKS СИСТЕМА
Qt ............................Среда для разработки Atomic Tanks ..............Клон Scorched Earth GuYum ........................GUI для Yum.
приложений. Elastix .........................Программа PBX. Sakura ........................Эмулятор терминала.
TEA ............................Мощный текстовый редактор. KardsGT ......................Карточная игра. VirtualBox ...................Виртуальная машина
Kbackup ......................Инструмент резервирования (эмулятор ПК).
ДИСТРИБУТИВЫ для KDE.
64 Studio ....................Дистрибутив Linux для создания KFlickr .........................Загрузчик на Flickr для KDE. ГЛАВНОЕ
цифрового контента. Krusader .....................Файловый менеджер. ATI driver ....................Графический драйвер.
Ark Linux.....................Дружественный к новичкам Partimage ...................Создание файлов образа Bash............................Оболочка командной строки.
дистрибутив. разделов диска. Cairo ...........................Библиотека двумерной графики.
Linux Mint ...................Настольный дистрибутив Rawstudio ...................Конвертирование изображений. CheckInstall ................Программа создания
Linux на базе Ubuntu. rlocate.........................Улучшенный slocate. бинарных пакетов.
Edubuntu .....................Образовательный дистрибутив SDoP ...........................Простой процессор DocBook. Coreutils .....................Утилиты командной строки.
(сторона 2). Flash Player................Модуль расширения Adobe Flash.
ИНТЕРНЕТ GLib ............................Низкоуровневая библиотека.
ИГРЫ Firefox.........................Web-браузер. Glibc............................Библиотека GNU C.
Alien Blaster ...............Стрелялка. Pidgin..........................IM-клиент (бывший GAIM). Gtk ............................Инструментарий
Amoebax .....................Головоломка. WebIssues ..................Совместная работа пользовательского интерфейса.
Battle Tanks................Танковая 2D-аркада. через Интернет. HardInfo ......................Системная информация
DigiBand .....................Фанки гитара/ударные. и сравнительный анализ.
Tennix .........................Настольный теннис. БЕЗОПАСНОСТЬ Jigdo ...........................Создатель ISO-образов.
Aide ............................Система обнаружения вторжений. Kernel .........................Свежий релиз ядра Linux.
СПРАВКА Bastille ........................Система укрепления LibXML2 .....................XML-анализатор
Answers ......................Решенные проблемы Linux. дистрибутива. и набор инструментов.
LDP ............................Linux Documentation Project FireHOL .......................Настройка брандмауэра Iptables. Ncurses.......................Оконный инструментарий
RUTE ...........................Руководство по Firestarter ...................Графический интерфейс текстового режима.
администрированию Linux. брандмауэра. NVIDIA driver ..............Графический драйвер.
Firewall Builder ...........Мультиплатформенный Python.........................Язык программирования.
интерфейс брандмауэра. RAWRITE ....................Программа записи образов
Guarddog ....................Утилита настройки брандмауэра. на дискеты.
INSERT........................Дистрибутив Inside Security SBM ............................The Smart Boot Manager.
Rescue Toolkit SDL ............................Библиотека мультимедиа.
John the Ripper ..........Программа определения
слабых паролей.
KMyFirewall ................GUI брандмауэра для KDE.
Nmap ..........................Сканер портов.
RKH ............................The Rootkit Hunter.
Sentry Tools ...............Защита от сканирования портов.
Shorewall ....................Инструмент настройки Netfilter.
Sussen ........................Сканер безопасности.
Tripwire.......................Система определения вторжений
Wireshark ...................Анализатор сетевого трафика.
Сетевой мультиплейерный Армагеддон судного
дня с применением оружия в Battle Tanks.

Ноябрь 2007 Linux Format 115


LXF Школа

Школа
Легкий путь к Web
Собственный web-сайт сегодня является таким же неотъемлемым атрибутом организации, как
телефон. Галина Пожарина расскажет, как создать его без лишних усилий.

П
о мнению экспертов фон- зования происходит в виде взаимодействия интернет-представи-
да «Общественное мне- тельств и образовательных учреждений. Основные виды такого
ние», к началу 2006 года взаимодействия:
число взрослой интернет-аудито- использование информационных ресурсов (просмотр, вос-
рии (старше 18 лет) в нашей стране произведение) учащимися, преподавателями, представителями
превысило 20 миллионов человек администрации;
(14% данной категории населения). использование коммуникационного потенциала Интернета
Однако, для сравнения, в Швеции (обмен информацией посредством электронной почты, интернет-
доля взрослых пользователей сети – телефонии, видео- и аудиоконференций, чатов и форумов);
74 %, в Соединенных Штатах – 59 %, Учреждения образования могут также выступать в качестве
в Канаде – 60 %, в Бельгии – 37 %, в заказчика и/или исполнителя услуг по созданию представительств.
Китае – 23 %, в Египте и Колумбии – Слово «контент» уже достаточно прочно вошло в русский язык,
19 %, в Турции – 17 %. В целом в стра- по крайней мере, в интернет-сообществе. Начало активного упот-
нах Европы, Северной Америки, в ребление этого понятия связано именно с интернет-технологиями.
Австралии и Японии почти 100 про- Слово «content» переводится с английского как «содержимое»,
центов населения знают о том, что «содержание», «значение», «смысл». Достаточно часто в контекс-
такое Интернет, в то время как от те интернет-технологий «content» переводят как «информационное
одной четверти до одной трети жите- наполнение». Контент можно определить как совокупность инфор-
лей России, Китая, Индии пока имеют мационных элементов (текст, графика, анимация, видео), отобра-
очень слабое представление о воз- жаемых на странице web-сайта. На самом деле, понятие «контент»
можностях этой глобальной инфор- можно трактовать более широко – это комплекс данных, которые
мационной сети. Вместе с тем, отмечается рост интернет-аудитории используются в работе интернет-систем и отображаются в том или
в регионах России. ином виде на страницах web-сайта.
Аудитория Интернет – это наиболее активная часть трудоспо- Появление интуитивно понятного тексто-графического интер-
собного населения России, ориентированная на развитие прогресса
и инноваций. В России – это еще и наиболее интеллектуальные, в
большинстве своем, представители общества. В основном, аудито-
рию российского сегмента Интернета составляют люди, сформиро-
вавшиеся профессионально и личностно, но было бы неправильно
исключить из процесса молодежную аудиторию, которая только
проходит интеллектуальное становление и вырабатывает жизнен-
ные критерии.
В области некоммерческого Интернета лидирующее положение
занимают образовательные ресурсы (так называемое интернет-
образование) и научные сообщества. Такое положение закономерно,
поскольку первоначально Интернет задумывался как академичес-
кая среда. Учитывая огромные территории России, развитие дис-
танционного обучения и внедрение Интернета в образовательный
процесс в нашей стране – одна из важных государственных задач.
Интеграция интернет-ресурсов в систему российского обра- Панель управления открытой CMS-системы Joomla.

116 Linux Format Ноябрь 2007


Школа LXF

фейса, который дал HTML и web-браузер, привело к компьютеру и в


Сеть огромное количество людей, которые ранее не сталкивались с
информационными технологиями. Удобство и простота использова-
ния сняла многие барьеры перед этой техникой, в том числе и пси-
хологические. Возможности объединения разнородного контента
подтолкнули процесс массового использования информационных
технологий, а также и более активного применения этих технологий
в бизнес-процессах
Существует два вида организации web-контента – статический и
динамический. В первом случае специалисты, отвечающие за созда-
ние и поддержку сайта, верстают каждую страницу в отдельности
на языке HTML. Во втором – в основе любой web-страницы лежит
шаблон, определяющий расположение всех компонентов страницы
в окне web-браузера, и вставка конкретной информации произво-
дится с использованием стандартных средств, не требующих от
участника процесса знания языка HTML и достаточно сложных для
неспециалиста процедур публикации web-страницы.
Если сайт состоит из множества страниц или должен часто
обновляться, то преимущество динамической организации стано-
вится очевидным. Разработчикам web-сайта не надо переписывать
всю страницу при изменении ее информационного наполнения или сайта и его дальнейшей поддержке в рамках подобных конструкто- CMS-система
дизайна. Странички не хранятся целиком, а формируются «на лету» ров различаются. SLAED CMS.
при обращении к ним. Можно выделить несколько основных плюсов конструктора
Для создания динамического сайта возможны два пути. сайтов:
Написать собственные программы, отвечающие за создание низкие затраты на разработку типичных проектов для малого и
нужных шаблонов и поддерживающих необходимые функции. При среднего бизнеса, а также личных проектов;
этом созданная система будет полностью отвечать потребностям, большое количество вариантов дизайна сайта;
однако, возможно, потребует больших программистских усилий и возможность подбора различных вариантов дизайна и момен-
времени. тальной смены оформления готовых проектов;
Воспользоваться уже существующими системами, которые и возможность редактировать содержание сайта в режиме онлайн,
называются системами управления web-контентом. Преимуществом с помощью удобного визуального интерфейса;
этого пути является уменьшение затрат времени и сил. К его недо- развитие сайта с помощью подключаемых модулей (сервисы
статкам можно отнести снижение гибкости, предоставление недо- поиска по сайту, голосование, обратная связь, каталог, интернет-
статочного или чрезмерного набора возможностей. магазин, новостная лента и другие);
Редактирование сайта становится максимально наглядным: отсутствие у пользователя необходимости в специальных знани-
пользователь вносит изменения прямо на сайт и видит конечный ях (программирования и т.п.);
результат своей работы. в пакет услуг включается хостинг будущего проекта;
Рано или поздно любой владелец контент-сайта приходит к мыс- постоянная служба поддержки.
ли о необходимости «контент-менеджера». Когда количество HTML- Основными минусами называют отсутствие индивидуального
файлов переваливает за несколько сотен, управляться с ними ста- подхода к клиенту в рамках конструктора сайтов, заданное количе-
новится трудно. Вот эту нужную, но рутинную работу берет на себя ство шаблонов, отсутствие во многих встроенных системах управле-
контент-менеджер (Content Management System, CMS). ния сайтом понятных помощников пользователя.
В работе CMS возможны следующие варианты: Выбор CMS для создания сайта учебного заведения достаточно
использовать услуги профессионалов, но это достаточно дорого. обширен.
Не каждое учебное заведение готово финансировать создание сайта По данным http://www.comasy.ru/, в TOP-10 бесплатных CMS
(расход составит не менее 30 тысяч рублей); входят Drupal, Joomla, Typo3, 4eZPublish, WordPress, Xaraya,
написать CMS собственными силами. Такой способ возможен DataLifeEngine, XOOPS, e107, Slaed.
при наличии кадровых ресурсов и также имеет значимую затратную А то, что хороший сайт – это такой сайт, где обновлять инфор-
составляющую, которая включает этапы проектирования CMS, реа- мацию может и малоопытный пользователь, а заказчику не нуж-
лизации проекта, написания документации, тестирования и дора- но обладать специальными знаниями для поддержки проекта и
ботки, внедрения; постоянно тратить деньги на web-дизайнера – сомнений не вызы-
найти уже готовый бесплатный (свободный) или некоммерчес- вает. Поэтому работники образовательных учреждений, грамотно
кий вариант. Данный вариант достаточно экономичен, его главный используя CMS, смогут концентрировать усилия на формировании
минус состоит в том, что такой CMS написан в расчете на некий контента, а не заниматься программированием и дизайном. LXF
«стандартный сайт». Для оптимизации необходимо внимательно
изучить и настроить CMS под свои нужды и дизайн.
Современные CMS позволяют создать полнофункциональный
контент web-представительства учебного заведения, при этом
используется не только свободное программное обеспечение (конс-
труктор), но и достаточно обширные библиотеки шаблонов дизайна,
находящиеся в публичном доступе.
Конструктор сайтов – это программное средство, основанное
на использовании шаблонов и призванное максимально упростить
процессы создания и поддержки сайта. Себестоимость создания
сайта с использованием конструктора на порядок ниже, чем в студи-
ях web-дизайна. Однако возможности пользователей по созданию

Ноябрь 2007 Linux Format 117


LXF Школа

Мастер-классы в Перми:
первый шаг
«У самовара» с Александром Поносовым

П
осле «триумфального шествия» по Сибири и Восточному взяла курс на внедрение открытого программного обеспечения (Open
Уралу пингвины наконец-то добрались и до Прикамья. Здесь Source).
их явно ждали. Основным докладчиком выступил представитель уральского фили-
Из новостей Пермского школьного портала. ала компании LinuxCenter.Ru Илья Николаевич Шпаньков. В своем
(автор А.Маткин) выступлении докладчик всесторонне охарактеризовал современное
21 сентября 2007 г. в Исследовательском центре развития системы открытое программное обеспечение и проблемы его использования в
образования г. Перми (ИЦРСО) состоялись мастер-классы по откры- России, а также рассказал о преимуществах и примерах применения
тому программному обеспечению (Open Source) и операционной сис- открытых технологий в сфере образования. Пермским педагогам были
теме Linux. Мероприятие было организовано компаниями компаниями продемонстрированы презентация и видеофильм. Затем участники
LinuxCenter.Ru, Mandriva.Ru совместно с журналом Linux Format, ИЦРСО мастер-класса были ознакомлены с ОС Linux (на примере дистрибутива
г. Перми при поддержке компании «Белов и Партнеры». В нем приня- Mandriva Linux 2007.1 Spring Edition).
ли участие представители 85 школ г. Перми (руководители школьных После небольшого перерыва учителя информатики и школьные
медиацентров, системные администраторы, учителя информатики). ИТ-специалисты перешли в компьютерный класс, где все желающие
К участникам мероприятия обратился директор школы села Сепыч смогли самостоятельно опробовать работу в операционной системе
Верещагинского района Пермского края Александр Михайлович Mandriva Linux, а также произвести ее установку на собственный ноут-
Поносов. бук в качестве второй ОС. Специалисты пермской компании «Белов и
Он напомнил о тех проблемах, с которыми ему пришлось столк- Партнеры» выступали в качестве консультантов и отвечали на много-
нуться зимой 2007 г., когда в его образовательном учреждении было численные вопросы участников мероприятия. Представители образова-
обнаружено «пиратское» программное обеспечение. Затем Александр тельных учреждений получили комплект CD-дисков с демонстрацион-
Михайлович рассказал о том, что после известных событий его школа ными версиями открытого программного обеспечения.

С
удя по всему, встречей остались довольны мероприятиях. Тем не менее, для более объективной Павел Фролов, директор компании
все участники мастер-класса. В ходе анке- оценки результатов я попросил поделиться впечатле- LinuxCenter
тирования большинство педагогов дали ему ниями и организаторов мероприятия, и тех, кому оно Цель подобных мастер-классов одна – показать поль-
оценку «отлично» и «очень хорошо» и отметили, что предназначалось. зователям, в данном случае педагогам, что Linux не
в дальнейшем хотели бы участвовать в подобных страшный. Она достигнута. Скажу больше: мастер-
класс в Перми – одно из самых успешных меропри-
ятий года. После него Пермь забурлила и закипела,
пошло множество обращений по поводу приобре-
тения дистрибутивов Linux; в основном заказывают
Mandriva и Red Hat. В общем, «народ» увидел и готов
внедрять. Сейчас главное – не останавливаться, а дви-
гаться прежним курсом.

Антонида Медведева, учитель


информатики
Действительно, мастер-класс понравился. Общение с
вами было замечательным. Удалось узнать о новых
программах, увидеть, как они работают, получить
достаточно важной информации. К сожалению, по
некоторым причинам не установила Mandriva к себе на
ноутбук, да и в школе пока не торопим события. Мое
мнение как рядового преподавателя такое: школы рады
перейти на альтернативные программы – этим решает-
ся вопрос с лицензированием, но осторожничают. Мы
тоже не хотели бы рубить с плеча, сложно вводить что-
то новое, когда идет учебный процесс. Подождем до
каникул. Думается, что следующим шагом после этой
встречи для учителей информатики обязательно нужно
организовать какие-нибудь курсы для более подробно-
го ознакомления с конкретным альтернативным про-
граммным обеспечением.

118 Linux Format Ноябрь 2007


Школа LXF

цена Linux, что немаловажно для образовательного Виталий Белов, директор ООО «Белов
учреждения. и партнеры», г. Пермь
Но все же полный переход школ на Linux в бли- Хоть мы и коммерческая организация, интерес у нас
жайшее время невозможен. Вся школьная программа был совсем не меркантильный. Мы прекрасно пони-
по информатике построена на изучении ОС Windows и маем, что бюджет есть бюджет, нам, собственно, от
ее приложений. него ничего не светит. Нашу задачу я понимаю так:
Необходимо искать «золотую середину»! информировать педагогов об альтернативе проприе-
тарному ПО, показать, что есть жизнь без «винды».
Андрей Маткин, заместитель Когда я организовывал этот мастер-класс, то
директора ИЦРСО предполагал, что будет определенный интерес к дан-
Радует, что удалось обозначить точки дальнейше- ной теме, но чтобы ТАКОЙ – ни разу. Честно говоря,
го взаимодействия. Мы договорились открыть на я даже немного сомневался, что зал будет заполнен.
Пермском городском школьном портале соответству- Предполагал, что придут, как обычно, энтузиасты
ющий раздел форума, в котором все учителя смо- этого дела, но я сильно ошибся, и это к лучшему.
Илья Шпаньков, директор гут задавать свои вопросы на тему свободного ПО, а Руководители и преподаватели реально интересуются
LinuxCenter-Урал, г. Екатеринбург отвечать им будут технические специалисты компа- альтернативным программным обеспечением. И это
Цель, если кратко – рассказать, что такое свободное ний «Белов и партнеры», Mandriva.Ru и LinuxCenter. заметно по тому, сколько они ноутбуков принесли для
ПО, «с чем его едят», дать попробовать. Рассказать Ru. В свою очередь, компания «Белов и партнеры» в установки Linux как второй ОС. То есть, они не просто
учителям, что свободные программы – более под- лице директора Виталия Белова пообещала оказывать для галочки отсиделись, а подошли к этому вопро-
ходящий вариант для образования, чем привычные школам всестороннюю посильную помощь в вопросах су серьезно и с пониманием. Я думал, что мой опыт
закрытые, при их использовании нет пределов для освоения свободного ПО. внедрения на коммерческие предприятия будет слабо
образования и самообразования. Учителя и школь- интересовать образовательные учреждения. Ан нет!
ники могут в полной мере погрузиться в глубины Владимир Кречетов, студент 2 курса Живой интерес вызвал рассказ об одном реальном
предмета. ПГПУ, факультет информатики и внедрении, с приведенными цифрами экономии на
Цель достигнута в полной мере. И даже сверх экономики ПО. Вопросами засыпали. Я был приятно удивлен.
того, что планировалось. Поразила заинтересован- Учусь на дневном отделении и второй год работаю в Уже после мастер-класса ко мне в офис поступи-
ность педагогов и работников системы образования школе (которую закончил в 2006 году) лаборантом ло множество звонков с разными вопросами и пред-
в свободном ПО. Активная аудитория, масса вопро- ЭВТ. Этим летом у нас ушел учитель информатики ложениями. Видимо, мимо внимания это событие не
сов, причем, в основном практической направлен- (на более высокооплачиваемую работу), и идти боль- прошло и вызвало определенный резонанс. Хочется
ности. Учителя идут впереди властей, сами задумы- ше некому было, техник тоже не мог, вот я и пошел, надеяться, что этот резонанс не выродится в пустой
ваются о будущем, не ждут указки сверху. У многих взяв с собой школьный ноутбук и имея свой интерес звук. Очень хочется.
уже есть опыт работы с Linux и определенный багаж к изучению ОС.
знаний. Про ОС Linux я слышал очень давно, но лично От автора
Понравилась сама организация. Все вовремя, встречаться с ней мне не приходилось, пока не купил Повторю за Виталием: «Очень хочется!»
никаких задержек, затяжек. Обычно приходят 30– ноутбук с установленной на него какой-то версией. Хочется, чтобы не покрылись пылью в углу кабине-
40% приглашенных, а здесь из 150 школ больше Потыкавшись около 2-х часов принял решение срочно та информатики диски с Open Source-софтом.
90 человек. снести и поставить Windows. Чтобы наши педагоги могли спокойно работать без
Также порадовало, что были не только учителя С тех пор прошел не один год, и в один прекрас- оглядки на прокуратуру.
информатики, но и директора школ, заместители, ный солнечный день захотелось перемен. Vista тре- Чтобы состоялись все предварительные соглаше-
руководители школьных медиацентров. Это гово- бует очень много ресурсов (которых у меня нет), и ния о сотрудничестве, достигнутые в ходе проведения
рит о том, что проблема школьного программного тут я вспомнил, что существует такая ОС, как Linux мастер-классов.
обеспечения волнует не только собственно препода- (хотя ставить на свой компьютер что-то непонятное не Чтобы предполагаемое участие в эксперименте
вательский, но и руководящий состав школ. Отсюда очень-то и хотелось, ведь компьютер нужен мне как по внедрению СПО пермские школы встретили во
вывод: образовательные учреждения Пермского воздух). В университете нам читали обзорные лекции всеоружии.
края морально уже готовы к внедрению свободного по ОС, а в этом году даже ввели новый спецпредмет Хочется...
ПО, осталось решить только некоторые технические «ОС Linux». Практики ждал с нетерпением… Но для этого придется приложить еще немало
вопросы. Визуально стало как-то более похоже на Windows, усилий. Чтобы пройти дорогу в тысячу миль, надо
хотя есть некоторые характерные черты, которые, сделать первый шаг. И не остановиться. LXF
Анжелика Мухина, заместитель я думаю, можно настроить под себя, но кто пустит
директора школы по User’а ползать в системных настройках? В этом вся
информатизации прелесть несокрушимости Unix-подобных ОС.
Первое, что впечатлило – большое количество После всего, что было сказано на семинаре, у
заинтересованных лиц, прибывших на семинар. меня сложилось такое впечатление,
Программа семинара была разбита на два этапа: что мы рассмотрели только ОДНУ
теоретическое и практическое знакомство с Linux. сторону медали, а про вторую забы-
Сначала, присутствующие, и я в том числе, вели себя ли. Я имею в виду, что как-то повер-
настороженно. Все новое поначалу вызывает сомне- хностно было рассмотрена проблема
ние. Неизвестность и слухи о несовершенстве Linux драйверов. Единственное, что я услы-
были развеяны представителями Линуксцентра. шал, это, если на ПК стоит Windows,
Слушатели «оживились» и стали задавать интере- то при установке Mandriva она берет
сующие вопросы. их из среды Windows [видимо, речь
Во время практической работы в среде Linux ста- идет об ndiswrapper, – прим. ред.]. А
ло понятно, что работа с данным программным обес- как быть, если на ПК не установлен
печением не требует кардинально новых навыков. Windows? Да и вообще, драйвера под
Интерфейс во многом схож с ОС Windows, поэтому Unix-подобные ОС не на каждом углу
полностью переучиваться не придется. Подкупает и валяются и не для всех устройств.

Ноябрь 2007 Linux Format 119


LXF Школа

Томск – полигон для


GNU/Linux в школе
Говорят, GNU/Linux в томские школы спустили сверху. Ничего подобного – он там был и
раньше. Денис Александрович Шергин многое сделал для этого, и сейчас он готов поделиться
своим опытом обучения учителей.

А
спирант радиофизического факультета затем стал помогать другим, начал писать документа- моя деятельность в продвижении идей Open Source
Томского государственного университета цию. Примерно в то же время я познакомился с основ- неизбежно переросла проект «Slackware Linux в
Денис Александрович Шергин (binstream@ ным составом TLUG (Tomsk Linux User Group). Начиная Томске».
binstream.net) является действующим активистом с 2001 года я стал активно использовать Linux в рабо- При поддержке единомышленников из томской
томской группы пользователей GNU/Linux. Для это- те, работая системным администратором факультета. LUG в 2005–2006 гг. мне удалось провести пилот-
го интервью его рекомендовал зам. директора по ИТ ную серию Open Source-семинаров для системных
Регионального центра развития образования Томской LXF: С чего началась ваша публичная деятельность администраторов и программистов. Всего получи-
области Виктор Дмитриевич Корнеев (korneev@ по продвижению GNU/Linux? лось 14 докладов в ходе 7 семинаров. Материалы
education.tomsk.ru). В вопросах распространения ДАШ: Постепенно количество подшефных серве- некоторых из них опубликованы в виде статей на
открытого программного обеспечения важно понять ров росло, у меня возникла идея создать локальное сайте http://slackware.tomsk.ru/seminars/. В резуль-
не только технические решения, но и причины, кото- зеркало с обновлениями Slackware, так как до этого тате томское Open Source-сообщество поняло, что
рые побуждают людей идти по этому пути. в Томске очень нерегулярно появлялись обновле- можно проводить более масштабные мероприя-
ния открытого ПО. В результате появился ресурс тия, а не просто непринужденные «линуксовки».
Евгений М. Балдин, LXF: Как вы познакомились http://slackware.tomsk.ru. Постепенно вокруг проекта Появилась заинтересованность именно в конструк-
с GNU/Linux? собралась команда людей, помогающих в меру сил тивном обмене опытом. Очень порадовал тот факт,
ДАШ Александрович Шергин: Впервые я уста- и способностей – кто-то трафиком, кто-то публика- что на эти семинары приходили люди, ранее не
новил Linux в 1998 году, это был Red Hat 4.2, взятый у цией новостей и своих оригинальных материалов, знакомые с миром Open Source. Вообще, тема ока-
друга. В 2000 году мне в руки попал диск со Slackware остальные поддерживают новичков в форуме. Всем залась востребованной, ко мне часто обращались
7.1, и это стало поворотной точкой – мне очень пон- им огромное спасибо за активное участие в «S.T.R. незнакомые люди и спрашивали, когда будут следу-
равился этот отличный, логичный дистрибутив, и я team». Однако Slackware – достаточно маргиналь- ющие семинары.
использую его до сих пор. Постепенно разбирался сам, ный дистрибутив (как бы я его ни любил), поэтому

120 Linux Format Ноябрь 2007


Школа LXF

LXF: Зачем это вам?


ДАШ: Сложно однозначно сказать, почему я этим
занимаюсь – просто есть внутренний импульс принес-
ти в этот мир что-то позитивное.

LXF: Как вы вышли на Региональный центр развития


образования?
ДАШ: После суда над пермским директором школы
Поносовым очень многие задумались о легализации
ПО. Чиновники начали осознавать масштаб пробле-
мы, но нехватка грамотных технических специалистов
мешала выработать адекватную программу действий
по переходу на Open Source, который, по сути, являет-
ся единственной альтернативой закрытым коммерчес-
ким системам в условиях скудного финансирования в
бюджетной сфере.
В марте 2007 года ко мне за помощью обратились
люди из Регионального центра развития образования
(РЦРО) – в рамках программы перевода школ области
на Linux требовалось провести переподготовку специа-
листов. Так я познакомился с Виктором Дмитриевичем
Корнеевым, зам. директора РЦРО по ИТ. Именно на
Виктора Дмитриевича в Томской области возложен
перевод системы общего среднего образования на
открытое ПО, и он же является основным «двигате-
лем» этого процесса. Практические занятия; установка различных дистрибутивов. С.Л. Ларин и Г.Э. Куликов наблюдают за
процессом (в левом верхнем углу).
LXF: Что вы знаете о том, как в Томской области
планируется переходить на открытое программное вместо Томска в текстах появилась Пермь. В конце риалы, доступные в Интернете. Так как курс рассчи-
обеспечение? концов стало ясно, что Томск все-таки входит в число тан всего на 72 часа (на большее время очень сложно
ДАШ: Согласно приказу Департамента общего обра- пилотных регионов, которых стало уже три, но из-за «выдернуть» специалистов из области), то я решил
зования Томской области, внедрять решения Open этой неразберихи было не совсем понятно, как реа- максимально сконцентрироваться на фундаменталь-
Source уже в 2007 году начнут в 25 школах Томска и гировать, поэтому, по большому счету, само известие ных основах, чтобы на этом структурированном «фун-
области. По результатам работы в этих школах осталь- мало что изменило. Все равно к тому моменту уже даменте» слушатели курса смогли уже самостоя-
ные образовательные учреждения области должны было понятно, что движение будет именно в направле- тельно выстраивать свои познания GNU/Linux. Курс
приступить к внедрению свободного ПО в 2008-2009 нии Open Source, так как эта тема в сфере образования намеренно сделан не привязанным к конкретному
годах. активно муссируется уже почти год. дистрибутиву, чтобы полученные в ходе обучения
До конца 2007 года планируется разработать спе- знания могли быть применимы к любой современной
циализированный дистрибутив, адаптированный под LXF: Чем GNU/Linux может заинтересовать учителей? GNU/Linux-системе.
нужды школ. К сожалению, честно говоря, я совер- ДАШ: Интерес в переходе на свободное ПО связан Вместе с Сергеем Леонидовичем Лариным и Глебом
шенно не верю в возможность сделать такую масштаб- с желанием избежать ответственности за использо- Эдуардовичем Куликовым мы преподавали этот курс
ную работу в столь сжатые сроки, особенно с учетом вание нелицензионного проприетарного ПО, которое на базе РЦРО в апреле 2007 г. Огромное им спасибо за
того, что томская компания, на которую возложена (и это ни для кого не секрет) сейчас установлено на активную поддержку, в одиночку это сделать было бы
ответственность за эту работу, не имеет подобного подавляющем большинстве машин в школах. История нереально. Я настоял на том, чтобы курс записывался
опыта. В 2008–2009 годах планируется его внедрение с Поносовым очень многих заставила задуматься. на видео (потому что желающих послушать его было
и поддержка, дальнейшие перспективы поддержки Интересные для школ возможности GNU/Linux – много, а читать его несколько раз у нас не было воз-
пока что неясны. достаточно низкие аппаратные требования, так как можности), и записи находятся в открытом доступе.
Также в планах за 2007–2008 год подготовить 400 компьютерный парк в школах состоит из не очень
специалистов (системных администраторов, учителей мощных машин. Очень животрепещущей темой явля- LXF: Насколько сложно переучить учителя?
информатики, учителей-предметников), из них 100 – ется качественная эмуляция MS DOS и MS Windows ДАШ: Если кратко – это сложно, но возможно. Мне
за оставшиеся месяцы 2007 года. Сначала появятся для нормальной работы большого количества нако- довелось работать с наиболее «продвинутой» частью
«тьюторы», которые далее будут на местах отвечать за пившихся методических пособий и специализирован- учителей и технических специалистов школ. Среди
переподготовку сотрудников. ного обучающего ПО. В общем, если в настоящее вре- них есть очень квалифицированные люди, которые
В начале 2008 года на федеральном уровне будет мя удастся без потерь мигрировать на GNU/Linux, это обладают обширным опытом развертывания и экс-
проведен конкурс на внедрение и сопровождение уже будет хорошо. плуатации ИТ-инфраструктуры на базе MS Windows.
свободного ПО, там будут распределяться основные Некоторые из них очень неплохо продвинулись в
средства. LXF: С подачи РЦРО вы прочитали курс для учителей. самостоятельном изучении GNU/Linux, и это помогало
Какова программа этого курса? на практических занятиях. Проблема в том, что таких
LXF: Летом было официальное сообщение, что для ДАШ: Я подготовил программу учебного курса людей катастрофически мало.
изучения открытого программного обеспечения в шко- «Основы операционной системы GNU/Linux», рассчи- Для обычных же учителей переход на Linux – прос-
лах будут выбраны два региона (Казань и Томск). Это танную на переподготовку системных администрато- то дополнительная головная боль, так как они скон-
как-то отразилось на распространении открытого про- ров школ и учителей информатики. При ее подготовке центрированы на своих непосредственных задачах, и
граммного обеспечения в Томской области? использовались материалы курса, который активист компьютерные системы для них всего лишь инстру-
ДАШ: Было очень много путаницы с этим сообще- TLUG Сергей Леонидович Ларин читал в Томском уни- мент (без которого некоторые из них до сих пор пре-
нием – сначала объявили, что в качестве пилотных верситете систем управления и радиоэлектроники, красно обходились). Их нужно понять – многие учите-
регионов будут выступать Казань и Томск, потом вдруг собственный опыт, классическая литература и мате- ля уже в возрасте, переучиваться тяжело.

Ноябрь 2007 Linux Format 121


LXF Школа

технической поддержки энтузиастов из сообщества


пользователей Linux, каждый из которых горой стоит
за свой любимый дистрибутив.
Разумеется, очень мешают переходу существую-
щие образовательные программы, очень сильно ори-
ентированные на конкретные программные продукты.
Лично я считаю, что это в корне неправильно – нуж-
но учить не «нажиманию кнопок» в MS Word или
OpenOffice Writer, а современным принципам работы
с текстовыми редакторами, то же самое можно ска-
зать про все остальные разделы учебной программы.
Разумеется, учить нажимать кнопки строго по мето-
дичке намного проще, чем давать фундаментальные
знания – к такой работе можно привлечь менее квали-
фицированного преподавателя. Но и качество резуль-
тата тогда получается соответствующее. Эта проблема
по масштабу даже более глобальная, чем переход на
GNU/Linux, и в сложившейся ситуации (низкая при-
влекательность профессии учителя, отсутствие в этой
сфере достаточного количества грамотных специа-
листов, инертность системы образования) пока что
решения не видно.
Накопленный за годы работы методический багаж,
ориентированный на MS Windows, тоже тормозит про-
цесс, именно поэтому очень актуальна тема качествен-
С возрастным фактором связана еще одна труд- ДАШ: Технических проблем особых нет, за исключе- ной эмуляции, о чем я уже упоминал.
ность – тяжело работать с аудиторией, которая силь- нием вопроса о дистрибутивах. Я считаю, что обучение Не хватает сложившейся инфраструктуры под-
но старше тебя. Обратная связь почти отсутствует, GNU/Linux ни в коем случае не должно быть привязано держки GNU/Linux – очень мало системных интегра-
потому что учителям трудно дается такой сложный и к определенному дистрибутиву. Лучше концентриро- торов могут предоставить такие решения, а это могло
объемный материал. Им сложно признаваться в своей ваться на фундаментальных основах. Аргументов в бы быть востребовано при массовом переходе всей
технической неграмотности лектору, которому всего пользу такого подхода два: системы начального образования на Linux. На местах
25 лет. Я привык работать с аудиторией сверстников во-первых, даже если «сверху» будет спущено не хватает адекватных программистов, которые могли
и первые пару дней лекционных занятий никак не мог решение о повсеместном использовании одного кон- бы создавать качественное ПО, работающее под Linux,
установить хоть какой-то эмоциональный контакт со кретного дистрибутива (а пока что все идет к этому), а еще лучше – кросс-платформенное.
слушателями курса. все равно совершенно еще не ясно, какой именно это Отдельная грустная история с проприетарным ПО,
будет дистрибутив; которому нет аналогов – например, бухгалтерские сис-
LXF: Какие проблемы, с вашей точки зрения, возникли, во-вторых, концентрируясь только на одном дис- темы, ПО для сдачи отчетности в налоговую, и многое
возникнут в процессе внедрения GNU/Linux в школах? трибутиве, мы теряем возможность привлекать для другое. Зачастую такие классы ПО требуют сертифи-
кации, и соответственно все вынуждены поневоле
использовать спущенные «сверху» сертифицирован-
ные программы. Этот сектор будет сложнее всего
переводить на GNU/Linux в техническом плане.
Если же вспомнить о школьниках, то они слов-
но губка – впитывают все новое, и с ними проблем
вообще не должно возникнуть. Среди моих знако-
мых, увлеченных GNU/Linux, есть достаточно мно-
го старшеклассников. Единственный вопрос, часто
задаваемый в этом контексте: «хорошо, научатся они
в школе Linux, потом пойдут на работу, а там везде
Windows!». На самом деле, при обучении именно осно-
вам ИТ, а не зазубривании расположения конкретных
кнопок на панели инструментов MS Word и Adobe
Photoshop, особых проблем с адаптацией не должно
быть. Помимо этого, судя по Томской области, в связи
с ужесточением борьбы с пиратством наметилась тен-
денция массового перехода коммерческих компаний
на использование GNU/Linux.

LXF: Приходилось ли переубеждать несогласных с


переходом на GNU/Linux?
ДАШ: Нет, если кто-то считает, что это не для него, я
не настаиваю – жизнь заставит, к сожалению. Вообще,
несмотря на то, что я много лет активно использую
GNU/Linux как серверную и настольную платформу,
я не считаю, что надо фанатично применять ее абсо-
Денис Шергин помогает с настройкой системы. лютно везде.

122 Linux Format Ноябрь 2007


Школа LXF

Внимание,
книга!

В издательстве «БИНОМ»
готовится к выпуску книга
Г. Пожариной и А. Поносова

«Linux в школе и вузе.


Стратегия миграции на
свободное программное
обеспечение»
С.Л. Ларин читает лекцию по базовой настройке системы.

LXF: Помогают ли чем-нибудь сообщество пользова- ДАШ: Есть, но все держится на конкретных личностях Издание адресовано
телей GNU/Linux? «продвинутых» учителей, по своей инициативе произ- работникам сферы
ДАШ: Да, конечно, но можно делать намного больше. водящих такие переходы. В Томске уже есть несколько
В основном я вижу готовность установить любимый школ, где больше года используется GNU/Linux в ком-
образования –
дистрибутив в ближайшей школе, про вопросы под- пьютерных классах, например, «Эврика-развитие» и руководителям
держки и обучения очень мало кто задумывается. педагогический колледж. Двойная установка (Linux и образовательных
Проблема диалога сообщества пользователей GNU/ Windows одновременно) тоже достаточно популярны.
Linux и преподавателей заключается еще и в том, что Однако массовым это явление назвать никак нельзя, и
учреждений, методистам,
это слишком разные миры, каждый со своей мане- держится это все на конкретных людях. C их уходом из преподавателям.
рой общения и правилами. Пожилые учителя неуютно системы образования (а такие специалисты востребо-
себя чувствуют в «тусовке» молодых IT-шников, где ваны в других, намного лучше оплачиваемых сферах),
Книга поможет тем, кто
все разговаривают на сленге и достаточно агрессивно созданная ими система с большой долей вероятности
относятся к задающим много глупых вопросов нович- распадется. собирается внедрять
кам. Таким образом, вне поля их внимания остается в своих школах, колледжах
множество профильных интернет-ресурсов, которые LXF: Чего не хватает для полноценного и относитель- и вузах открытые продукты
могли бы принести пользу. но безболезненного перехода на GNU/Linux школам и
В частности, для решения этой проблемы плани- сообществу? и технологии .
руется создание «информационного портала о сво- ДАШ: По большому счету – грамотных специалистов,
бодном ПО», который, по сути, будет дублировать уже вовлеченных в процесс. Причем не только технических
существующие интернет-ресурсы (причем в первое специалистов, но и учителей, использующих передо-
время наверняка будет содержать очень мало полез- вые педагогические практики, и руководителей, кото-
ной информации), но зато будет оформлен «правиль- рые смогут принять верные стратегические решения.
ным» языком. Остальное – дело техники. Следите за информацией
LXF: Участвуют ли в этом процессе коммерческие LXF: Что бы вы пожелали или посоветовали бы сооб-
в нашем журнале и на сайте
фирмы или все делается на добровольной основе? ществу пользователей GNU/Linux?
ДАШ: Пока что идет период тендеров, реальной ДАШ: Не забывайте, что развернуть системы GNU/ www.linuxcenter.ru
деятельности коммерческих фирм еще не видно. Linux – это всего лишь малая часть работы. Основная
Разумеется, на одном энтузиазме такой масштабный задача – поддержка и обучение.
проект не воплотить в жизнь, но я пока что скептичес- В целом – сил нам всем
ки настроен по поводу эффективности работы ком- и настойчивости, эта
мерческих компаний без практического опыта в этом дорога будет длин-
Обратная связь
направлении. Несмотря на это, есть ряд российских
компаний, ориентированных на GNU/Linux-технологии,
ной. LXF
У вас есть своя история успеха
и вы готовы поделиться ею
Внимание,
которые готовы подключиться к процессу.

LXF: Есть ли, c вашей точки зрения, примеры удачного


с читателями LXF?
Напишите нам об этом
по адресу
книга!
перехода школ на свободные программные продукты? info@linuxformat.ru!

Ноябрь 2007 Linux Format 123


Игрострой для новичка

И •Г •Р • О • С •Т •Р • О •Й
Все о разработке компьютерных игр с использованием
свободного программного обеспечения

АНДРЕЙ ПРАХОВ
Участник нескольких
игровых проектов,
Стрелялка
за выходные
представитель СМИ
и начальник
www.linuxmedia.ru

Постепенное ЧАСТЬ 1 Скучаете по R-Type и River Raid и готовы сделать что-то


погружение сами, но не знаете, с чего начать? Александр Супрунов покажет
путь, доступный даже новичку!

И
грострой – дело нелегкое и

П
весьма-весьма затратное. ризнаюсь сразу – это самый странный урок из Мы поместим на игровое поле крошечный кораблик,
Понятно, почему маститые всех, что вас ожидают. Я, конечно, постараюсь храбро «выносящий» с экрана полчища врагов (будут
разработчики игр не горят желанием скрасить его различными интересными отступ- ли ужасные БОССы и различные типы оружия – зави-
ваять свои шедевры под открытый и лениями, но уж ничего не поделаешь – в нем вы начнете сит от вас), реализуем многоплановый параллаксный
свободный Linux. Ну никак не окупится учиться с конца. В качестве положительного момента скроллинг, эффекты прозрачности и другие интересные
разработка, ну не та идеология у поль- отмечу, что изложенных в нем сведений должно хватить вещи. Подобный тип игр малораспространен на плат-
зователей открытых систем! И получает- для того, чтобы начать писать компьютерные игры для форме Linux, так давайте разберем по шагам все момен-
ся, что основная надежда игроков оста- Linux и, таким образом, значительно увеличить их число ты, которые требуются для создания игры и, следуя им,
ется лишь на своих же «свободных» в нашей любимой ОС. Мы будем использовать язык C/ напишем новую!
разработчиков. Конечно, радует появ- C++, но, чтобы следовать курсу, вам потребуются только
ление таких проектов, как AstroMenace базовые знания. Приготовим рабочее место
или игровой LiveDVD от linux-games.net. Основной игровой библиотекой в Linux, пожалуй, Взгляните на врезку Что нам потребуется? и убедитесь,
Честь и хвала людям, занимающимся следует назвать SDL. Скажу больше – написав игру с что указанные в ней компоненты присутствуют и гото-
этим делом почти на чистом энтузиаз- использованием SDL, вы без каких-либо изменений вы к работе. Я специально не стал упоминать популяр-
ме. Да вот уровень у них, мягко говоря, сможете откомпилировать ее для Linux, Windows, Mac ные IDE типа KDevelop – при всем своем удобстве они
не дотягивает до желанной истинными OS X, Amiga Pegasos и даже наладонников, а возмож- достаточно громоздки и скрывают суть происходящих
геймерами хардкорной планки. Вот и ностей библиотеки хватило для портирования Heroes процессов. Для компиляции нашего кода потребуется
ждут игроки у моря погоды, в надеж- of Might and Magic 3. Я не сомневаюсь, что ваши планы написать лишь крошечный make-файл (назовите его
де, что разработчики игр «одумаются». более грандиозны, но SDL способна реализовать и их. В Makefile).
Однако давайте вспомним, какие масш- крайнем случае (для повышения быстродействия и ско- TARGET = ingame.run
табные проекты были осуществлены на ростных операций масштабирования, вращения и про- CFLAGS= `sdl-config --cflags`
этом самом энтузиазме, столь нелюби- зрачности) всегда можно подключить OpenGL. LIBS = `sdl-config --libs` -lSDL_ttf -lSDL_mixer
мом некоторыми несознательными эле- При всех достоинствах SDL – это конструктор, поз- CC=g++
ментами ИТ-мира. Думается, создание воляющий собрать действительно удобный инструмент.
и поддержка какого-либо дистрибутива Например, вместо следующего кода, выводящего спрайт
отнюдь не легче, чем работа над серь- на экран стандартными средствами SDL –
езным игровым проектом. Так, может, SDL_Rect shadow; Что нам потребуется?
объединение светлых голов по известной shadow.x=(Sint16)x;
схеме Open Source и приведет к долго- shadow.y=(Sint16)y; GNU/Linux – свободная, бесплатная (другими словами –
жданному результату? SDL_SetColorKey(img,SDL_SRCCOLORKEY,SDL_ доступная любому человеку) операционная система и
«Москва не сразу строилась…» – это MapRGB(img->format,255,0,255)); обладающие теми же преимуществами средства разра-
известно всем и каждому. Попробуйте SDL_BlitSurface(img,0,screen,&shadow); ботки, входящие в состав любого популярного дистрибу-
свои силы в самом маленьком, крошеч- мне кажется более логичным написать: тива, а также текстовый редактор (Kate, vi, mcedit – по
вкусу). Помимо этого, необходимы библиотеки (в том
ном проекте. Еще никто не говорил, что sprite(номер, x, y);
числе и версии для разработчиков с суффиксом «devel»)
офисные игры – это зло. А «Игрострой» Если вам тоже импонирует эта мысль, читайте даль-
SDL (для графики), SDL_mixer (для звука) и SDL_ttf (для
всецело вам в этом поможет. ше – мы доведем SDL именно до такой степени. При вывода сообщений) – их можно установить через менед-
info@linuxmedia.ru этом исходный код ваших игр едва ли превысит 20–30 жер пакетов вашей системы.
КБ и будет кристально понятным даже новичкам.

124 Linux Format Ноябрь 2007


Игрострой для новичка

all: тие на клавиши, вычисляет значение FPS и так далее.


$(CC) -o $(TARGET) starfighter.cpp $(LIBS) Если пользователь нажимает Escape, функция fx() Система координат
strip $(TARGET) сбрасывает флаг GAME возвращает управление, после
./$(TARGET)& чего главный цикл, а вместе с ним и наша программа, В наших приложениях используется прямоугольная
Переменная TARGET задает имя исполняемого завершаются. декартова система координат с центром в левом верх-
файла, который будет получен в результате компиля- нем углу экрана. Ось абсцисс направлена влево, а ось
ции. CFLAGS содержит флаги, необходимые любому Разместим первый спрайт ординат – вниз.
SDL-приложению – в данном случае мы получаем их Теперь немного усложним программу – заставим ее
командой sdl-config. В поле LIBS указываются требу- выводить на экран картинку, сохраненную в формате
емые библиотеки. Если понадобиться добавить еще BMP. Изображение можно взять с LXFDVD или под-
одну, например, SDL_image, следует просто дописать готовить самостоятельно в графическом/трехмерном
-lимя_библиотеки в конце этой строки. Переменная CC редакторе. Я, например, создал боевой космический
содержит команду для вызова компилятора C++. истребитель в Blender (LXF89-91). Учтите только,
Строки, следующие за all: – это те самые правила, что для правильного отображения нашим движком,
по которым будет происходить сборка. Думаю, вы уже прозрачные участки картинки должны иметь цвет
догадались, как интерпретировать строку (255,0,255) в RGB-нотации.
$(CC) -o $(TARGET) starfighter.cpp $(LIBS) #include “ingame.h”
а если нет, сделаю подсказку – $(var) подставляет
в строку значение переменной var. Что же касается int main(int n, char **s)
необязательной команды strip $(TARGET), то она очи- {
щает получившийся исполняемый файл от ненужной screen(500, 700);
служебной информации. Наконец, последняя строчка loadsprite(1, “ship.bmp”); ло может изменяться в пределах от 0 до 999 – более
./$(TARGET)& высокие значения зарезервированы ingame.h для слу-
после каждой компиляции запускает игру на выпол- while (GAME) жебных целей. При этом количество копий каждого
нение, чтобы вы могли видеть результат. Ее можно { спрайта на экране практически неограничено. Спрайт
удалить, но на мой взгляд, это удобно. sprite(1,250,650); выводится на экран функцией sprite(), которой сле-
Общий цикл разработки нашей игры теперь будет fx(); дует передать номер и координаты точки, в которой
выглядеть следующим образом: } осуществляется отображение. Для вашего удобства в
1 Открыть текстовый редактор и набрать код return 0; ingame.h уже определены такие переменные, как x, y,
программы. } x2 и y2, поэтому вы можете просто использовать их в
2 Запустить терминал, перейти в каталог с игрой и По сравнению с предыдущим случаем добавился коде. Например, если вы измените
набрать make. вызов функции loadsprite(), загружающей спрайт ship. sprite(1,250,650);
3 Оценить результат. bmp в память и присваивающей ему номер 1. Это чис- на
4 Завершить программу, нажав клавишу Escape.
Перейти к пункту 1.
...и так до тех пор, пока оценка, выставленная в Основные функции
пункте 3, не достигнет «хорошо» или «отлично».
В файле ingame.h определен ряд функций, делающих loadmusic (название файла, номер ячейки с музыкой);
Приступим к делу программирование игр простым и понятным даже для Загружает в память музыку в формате MID, MOD, XM, IT,
Ну-с, теперь мы готовы начать программирование. И в новичков. Все они являются обертками над соответствую- WAV и т.д.
первую очередь следует подключить файл ingame.h – щими функциями библиотеки SDL. Пример: loadmusic (“sintez.mod”, 5);
он содержит все основные функции, которые потребу-
ются нам при написании игры (см. врезку «Основные screen (ширина экрана , высота экрана) music (номер ячейки с музыкой);
функции»). Простейшая программа, не создающая Устанавливает экранное разрешение. Проигрывает ранее загруженный музыкальный ролик.
ничего, помимо пустого окна (но уже умеющая вычис- Пример: Вызов screen(640,480) переключит монитор в Пример: music (5);
лять FPS и реагировать на клавишу Escape) будет режим 640x480.
loadsound (название файла, номер ячейки со звуком);
иметь следующий вид:
loadsprite (номер ячейки , “название файла”) Загружает в память звук в формате WAV.
1 #include “ingame.h”
Загружает спрайт (рисунок) в память и связывает его с Пример: loadsound (“boom.wav”,1);
2 указанными номером.
3 int main(int n, char **s) Пример: loadsprite(5, “cat.bmp”) загружает файл cat.bmp sound (номер ячейки со звуком);
4 { с изображением кота и ассоциирует его с номером 5. Проигрывает ранее загруженный звук.
5 screen(1024, 768); Пример: sound (1);
6 while (GAME) sprite (номер ячейки, x, y, [a])
7 { Отображает ранее загруженный в память спрайт на экране. box(объект1, координата Х объекта1, Y объекта1, объект2,
8 fx(); Функция может быть вызвана только после screen(). координата Х объекта2, координата Y объекта2, );
Пример: sprite (5, 100,150) разместит кота на экран в Простая проверка столкновения объекта1 и объекта2
9 }
точке с координатами x=100, y=150: (учитывается только пересечение прямоугольников, огра-
10 return 0;
Четвертый необязательный параметр регулирует прозрач- ничивающих спрайт).
11 } Пример: if (box(1, bomb_x, bomb_y, 2, ship_x, ship_y) ) {
ность спрайта и меняется в пределах от 0 (непрозрачный)
Давайте разберемся, что здесь происходит. до 255 (полностью прозрачный). sound(“boom.wav”); }
Функция screen(), вызванная в строке 5, устанавли-
вает полноэкранный режим 1024x768 (кстати, как мы colorfon(R, G, B); fx();
вскоре увидим, здесь можно указать и любое другое Закрашивает фон экрана произвольным цветом. R,G,B – Основная и обязательная функция. Обрабатывает собы-
значение). В строке 6 запускается главный цикл игры, значения его красной, зеленой и синей составляющей, тия, поступающие от пользователя и формирует изобра-
обрабатывающий события, поступающие от пользо- соответственно. жение на экране вашего монитора.
вателя. Этим занимается вспомогательная функция Пример: while (GAME) { fx(); }
fx(), определенная в ingame.h – она отслеживает нажа-

Ноябрь 2007 Linux Format 125


Игрострой для новичка

x=250; С назначением переменных UP (вверх), DOWN Третий этап – битва с БОССом. В роли «вели-
y=650; (вниз) и FIRE (огонь) вы теперь можете разобраться кого и ужасного» будет выступать Гигантский
... самостоятельно. корабль-матка.
sprite(1,x,y); Конец. Враг разгромлен, но одна шлюпка
все будет работать, как раньше. Ключ на старт! выскользнула за пределы оцепления и скрылась в
Итак, с выводом одной картинки мы разобра- Чтобы находящийся на экране неподвижный корабль звездных просторах. Продолжение следует?
лись. Программирование игр – не жонглирование, начал движение, в программу необходимо добавить Конечно, вы вольны придумать свою сюжетную
и обращаться с несколькими спрайтами ненамного всего две строчки. Вот так: линию, но главное здесь – увидеть примерную струк-
сложнее: screen(500, 700); туру игры. И могу вас заверить – если все сделать
screen(800,600); loadsprite(1, “ship.bmp”); грамотно, то играть будет весьма увлекательно. А что
loadsprite(1,”luna.png”); x=250; самое важное в космических стрелялках? Конечно же,
loadsprite(2,”ship.png”); y=650; красивые взрывы, поэтому на красочных эффектах
loadsprite(3,”fire.png”); while (GAME) тоже экономить не стоит.
while (GAME) { Все это здорово, но мы упустили одну маленькую
{ sprite(1,x,y); деталь. Чтобы создать по-настоящему высококласс-
sprite(1, 150 , 0); ную игру, необходимо придумать изюминку, свой-
sprite(3, 250 , 300); if (LEFT) {x=x-2;} ственную только ей. Поэтому сидите и думайте, изред-
sprite(2, 350 , 500); if (RIGHT) {x=x+2;} ка поглядывая в зеркало. Как только размер головы
fx(); станет чуть больше перезревшего арбуза – бегите к
} fx(); друзьям и продолжайте мозговой штурм. И тогда...
} Не забывайте и о факторе внезапности, а так
Чем больше будет изменение координаты, тем же физических законах. Где-то на полпути к Луне
быстрее будет перемещаться корабль по экрану. И кораблю может повстречаться метеоритный поток.
наооборот, если приращение координаты установить Некоторые метеориты будут настолько велики, что
равным 0,1 или 0,01, ваш скоростной истребитель окажутся способны своим импульсом изменить
будет ползти, как старый имперский сухогруз. направление движения истребителя. Но именно в этом
астероидном поле устроили засаду мириады вражес-
Что дальше? ких перехватчиков – земному пилоту придется ой как
Прошло каких-то несколько минут, а вы уже имеете не сладко! Однако всему этому придется подождать
работающую демо-версию новой игры. Есть что пока- до следующего выпуска «Игростроя»... LXF
зать друзьям, поэтому самое время решительно ска-
зать: «Стоп!». Все должно развиваться по плану.
Начнем с уже озвученной фабулы. Мы управляем
небольшим космическим истребителем. Цель: уничто-
Полученный в результате успешной компиляции жить враждебных пришельцев, основавших цитадель
экран уже худо-бедно напоминает игровое поле, так на Обратной стороне Луны. Соответственно, до этой
что, пожалуй, пришла пора рассказать о нем попод- самой Луны необходимо добраться, поэтому игровой
робнее. Думаю, вы уже в курсе, что в нашу Солнечную процесс целесообразно разделить на 3 этапа:
систему ворвались ужасные инопланетные захват- Первый – добраться до Луны через открытый
чики. Враг обосновался возле Луны, и ваша цель космос. Этому, очевидно, будут мешать вражеские
теперь – добраться до естественного спутника Земли, перехватчики.
чтобы уничтожить вражеское гнездо. Второй этап происходит над Лунной поверхностью.
Уверен, вы придумали бы более привлекательную Это повод реализовать фантастический многоплано-
фабулу. Если же нет, то зовите скорее к компьюте- вый паралаксный скролинг! Нашими врагами будут
ру друзей и знакомых, всех, кто способен сочинять все те же истребители, а также пушки, вмонтирован-
интересные истории, рисовать, писать музыку и пла- ные в скалы.
нировать уровни – скажите им, что вместе вы може-
те защитить целую Вселенную, стать популярными
в мире Linux и многое другое. Ну разве оно того не
стоит?
Предопределенные переменные
Для управления кораблем у нас есть следующие
В ingame.h определен целый ряд переменных, которые с большой вероятностью понадобятся вам при разработке
замечательные переменные, также определенные в
своей игры.
ingame.h:
Следует отметить, что движок работает с числами с плавающей точкой. Это значит, что мы можем перемещать
LEFT Принимает значение 1, если нажата клави-
спрайт не только на целое число пикселей (скажем, 1), но и на дробное – например 0.02. Это дает возможность
ша «стрелка влево», и 0, если она отпущена, так что выводить очень медленно перемещающиеся спрайты (например, далекие облака).
выражение Список предопределенных переменных:
if (LEFT) {x=x-1;} x , y Координаты спрайта первого игрока (тип float)
примененное в нужном месте кода программы, сдви- x2, y2 Координаты спрайта второго игрока (тип float)
нет наш истребитель влево на один пиксель. LEFT, RIGHT, UP, DOWN Флаг, равный 1, если нажата клавиша «стрелка влево/вправо/вверх/вниз» или «огонь»
RIGHT По аналогии с LEFT, принимает значение 1, (пробел), соответственно, и 0 в противном случае
если нажата клавиша «стрелка вправо», и 0 – в про- GAME Флаг, сбрасываемый в 0, если пользователь нажал клавишу Escape
тивном случае.

В следующий раз Мы завершим игру, добавив вражеские корабли и контроль столкновений.

126 Linux Format Ноябрь 2007


Мнение: Джереми Эллисон

Низвести
cкрижали с Гор
П
рипозднившись, после года разработки, GNU General Public этой лицензией, от упомянутых угроз. Изменение в лицензии, подверг-
Джереми License версия три (GPLv3) наконец-то вышла в свет. нувшееся самой яростной критике – это раздел анти-DRM, номер шесть
Эллисон Неофициально признанная конституцией движения Свободного новой лицензии. Разработчики ядра Linux были настолько против этого
ПО, GPL – наиболее широко используемая свободная лицензия: процен- раздела, что до сих пор придерживаются GPLv2 – это, безусловно, их пра-
Джереми – веду-
щий разработчик тов семьдесят свободно распространяемых программ выходят под ней. во. Однако создается впечатление, что суть проблемы затерялась в под-
команды Samba, На новое творение уже нацелились критики, в основном из числа тех нятом шуме. Суть в том, что GPLv3 вовсе не запрещает DRM, и не ставит
сейчас работает в
Google, в Сан-Хосе, индивидуумов и компаний, кто не участвовал в ее подготовке. Хотя коли- ее вне закона. Просто вы не можете использовать код GPLv3 или компо-
Калифорния. чество крупных корпораций, принявших участие в процессе создания новаться с ним для создания подобной системы. Как и всегда, компании
GPLv3, достойно удивления. могут совершенно свободно создать собственный проприетарный DRM-
В 1991 г., когда RMS (Ричард Столлмен [Richard Stallman], автор GPL код и попытаться усложнить задачу копирования цифровой информации
и основатель FSF – Free Software Foundation) выпустил вторую версию (удачи!), используя плоды собственного труда. Они просто не должны
GPL, лишь немногие энтузиасты «Свободного ПО» озаботились ее про- использовать для этих целей существующий код GPLv3. Мне это кажется
чтением и пониманием. Спустя шестнадцать лет выход третьей версии совершенно справедливым. Я не хочу, чтобы хоть какая-то часть моего
прокомментирован непосредственно компанией Microsoft, а в ее созда- кода использовалась в системе DRM, но при этом я не собираюсь ограни-
нии активно участвовали юристы IBM. Да, времена меняются. чивать кого бы то ни было в погоне за этой несбыточной мечтой.
Но кое-что осталось неизменным – это сам RMS. Да, он постарел, и
расплатой за хакерские подвиги, некогда его прославившие, стал кисте- Я выпускаю код под GPLv3
вой туннельный синдром, но его взгляды на свободу ни на йоту не изме- Мои взгляды на патентные соглашения уже, наверное, хорошо известны.
нились. Если вы хотите понять GPL, вам надо понять RMS. Бородатый, В двух словах – я против. Они пытаются выделить класс привилегирован-
словно ветхозаветный пророк, RMS обладает неким нравственным ком- ных пользователей, «осененных благодатью» и защищенных от судеб-
пасом, указывающим абсолютно точное направление: его стрелка всег- ных преследований благодаря тому, что они заплатили определенным
да повернута к свободе. поставщикам за получение их кода. Это – не свобода, это предоставление
У RMS всегда было очень четкое представление о том, каким он хочет слуге права выбора, который хозяева уже сделали за него. Главная идея
видеть мир программного обеспечения, и GPL он создавал именно с этой сообщества разработчиков и пользователей GPL – в отсутствии приви-
целью. Для занятых в индустрии проприетарного ПО оно звучит пугаю- легированного положения. Никто никого не использует: налицо истин-
ще: в сущности, их выбор рода деятельности признается безнравствен- ное сообщество идей. Патентные соглашения – это попытка разделять и
ным, вплоть до уголовного преследования. Лично мне по пути с RMS властвовать, чтобы вынудить людей платить дистрибьюторам, даже не
только до этого момента – не нужно признавать незаконным выбор дру- участвовавшим в создании кода. Эти поставщики намеренно изолируют
гих. Я слишком боюсь тех, кто находит безнравственным и достойным себя от сообщества, но при этом хотят взимать со всех нас пошлину. Для
законодательного запрещения мой выбор. Но что касается остальных меня это – самое важное изменение в GPLv3. Даже не будь в ней всех
его взглядов, относительно создания массивной экосистемы программ остальных изменений, кроме этого положения, все равно я бы выпускал
под GPL, свободно распространяемых среди пользователей и програм- все свои программы под GPLv3, чтобы сохранить ровное и широкое поле
мистов, я полностью за! деятельности, необходимое для процветания сообщества разработчиков
Для понимания использования GPL и создания сообщества и пользователей.
Свободного ПО необходимо осознать, что самая важная часть – слово Благодаря нововведениям, GPLv3 являет собой скромный эволюци-
«сообщество». Это подобно клубу, где членство зависит от того, принима- онный шаг вперед. Она демонстрирует, что RMS и FSF можно доверять в
ете ли вы дух лицензии, которую используют все члены – GPL. Заметьте, я деле защиты свободы программного обеспечения GPL для разработчи-
говорю «дух», а не «букву» лицензии. Причина здесь в том, что код, созда- ков и пользователей. Лет через десять, когда возникнет необходимость
ваемый членами сообщества, обладает невероятной ценностью. Создание в создании четвертой версии GPL по причине возникновения пока что
ядра Linux было однажды оценено в 600 миллионов долларов. На заре неведомых угроз, я рассчитываю увидеть ту же самую критику в адрес
Samba, проекта, в котором я работаю, коммерческий конкурент предлагал лицензии и ее разработки от тех же самых людей. «Проект версии четыре
за обладание правами 40 миллионов долларов. Ему отказали. При столь чересчур экстремален, – скажут они, – в отличие от логичной и понятной
высокой ценности кода, рассматриваемого как «находящийся в свобод- всем версии три, которой мы пользуемся сегодня».
ном доступе», для тех, кто тянет к нему руки, большим соблазном было Не обращайте внимания на истерию. Все эти критики ошибаются
бы попытаться найти такую лазейку, чтобы уничтожить этот дух лицен- насчет GPLv3, и я ожидаю, что множество программ станет доступно
зии, как бы придерживаясь (или даже перетолковывая) ее букву, чтобы под этой лицензией. Мечта RMS об огромной экосистеме Свободного
только получить коммерческое преимущество. ПО GPL, которое все мы можем использовать на благо наших работода-
GPL второй версии устарела. Компании, пытающиеся воспользо- телей и наших сообществ, может стать реальностью, если не отвлекать-
ваться лицензией, столкнулись в этой связи с техническими проблема- ся от главного приза. Если вы цените работу Free Software Foundation,
ми с оборудованием, а также с тем, что они считают дырой в патентной пожалуйста, окажите им финансовую поддержку. Пусть это будет всего-
защите, гарантированной GPLv2, и цель у всего этого – ниспроверже- навсего $1.05, помочь может даже скромная лепта.
ние самой идеи равенства прав на код для каждого. Я говорю о Защите Как говорится в веселом фильме «Отряд Америка: Всемирная поли-
Цифровых Прав [DRM], которая «запирает» оборудование, и о патент- ция» [Team America: World Police – мультфильм от создателей «Саус
ных соглашениях Microsoft. Парка», вышедший на экраны в 2004 году, – прим. пер.]: «Свободы нету
Третья версия GPL разработана как раз для решения этих проблем – дармовой, и плата не мала. Коль ты не вложишь бакс-другой… кто вло-
и для того, чтобы защитить «равные права для всех», гарантированные жится тогда?» LXF
Reviews Xxx

Главное в мире Linux

Журнал зарегистрирован Федеральной службой по надзору за соблюдением


законодательства в сфере массовых коммуникаций и охране культурного
наследия
ПИ № ФС77-21973 от 14 сентября 2005 года
Выходит ежемесячно. Тираж 6000 экз.

РЕДАКЦИЯ РУССКОЯЗЫЧНОЙ ВЕРСИИ:


ГЛАВНЫЙ РЕДАКТОР
Валентин Синицын info@linuxformat.ru
Литературные редакторы
Родион Водейко, Елена Толстякова, Иван Мищенко
Переводчики
Илья Аввакумов, Александр Бикмеев, Светлана Кривошеина, Александр Казанцев,
Алексей Опарин, Валентин Развозжаев, Татьяна Цыганова, Юлия Шабунио
Редактор диска
Александр Кузьменков
Допечатная подготовка
Мария Пучкова, Родион Водейко
Креативный директор
Станислав Медведев
в ноябре
Технический директор
Денис Филиппов
Директор по рекламе
Денис Игнатов +7 812 965 7236 advert@linuxformat.ru

Как принять
Заместитель генерального директора
Софья Виниченко
Генеральный директор
Павел Фролов
УЧРЕДИТЕЛИ
частные лица
ИЗДАТЕЛИ

участие?
Станислав Медведев, Виктор Федосеев, Павел Фролов

Отпечатано в типографии «Текст», ООО «ППК «Текст»


188680, Ленинградская область, Всеволожский район, Колтуши, д.32
Заказ _____
Пре–пресс: d.r.i.v.e-group

РЕДАКЦИЯ АНГЛОЯЗЫЧНОЙ ВЕРСИИ:


Редактор Ник Вейч [Nick Veitch] nick.veitch@futurenet.co.uk Хотите создать собственную группу пользователей или
Заместитель редактора Пол Хадсон [Paul Hudson] paul.hudson@futurenet.co.uk
Художественный редактор Эфрейн Эрнандес-Мендоса взбодрить существующую? Мы дадим вам все инструменты,
[Efrain Hernandez-Mendoza] efrain.hernandez-mendoza@futurenet.co.uk
Редактор новостей Майк Сондерс [Mike Saunders] mike.saunders@futurenet.co.uk необходимые, чтобы нести свет Open Source в массы!
Редактор обзоров
Грэм Моррисон [Graham Morrison] graham.morrison@futurenet.co.uk
Литературный редактор
Мэтт Нейлон [Matt Nailon] mnailon@futurenet.co.uk

Подготовка материалов
Ладислав Боднар [Ladislav Bodnar], Нейл Ботвик [Neil Bothwick], д-р Крис Браун [Dr.
Chris Brown], Энди Ченнел [Andy Channelle], Крис Хауэллз [Chris
Сделай сам!
Howells], Энди Хадсон [Andy Hudson], Рэйчел Проберт [Rachel Probert], Джек Найт
[Jack Knight], David Feeley [Дэвид Фили], Евгений Балдин, Александр Бабаев, Николай
10 проектов, которые могут потрясти ваш мир: трехмерные
Байбородин, Андрей Боровский, Вадим Лихота, Алексей Маслий, Андрей Паскаль,
Галина Пожарина, Александр Поносов, Андрей Прахов, Александр Супрунов, Алексей
фотографии, запуск Linux с USB-брелка, свой собственный
Федорчук, Илья Шпаньков
Художественные ассистенты: Ник Кокс [Nick Cox], Дэвид Диас [David Dyas], Дэмиан
медиа-сервер или дистрибутив на базе Fedora - мы расскажем
МакГи [Damian McGee]
Фотографии: Джена Камбо [Jena Cumbo], iStock Photo
обо всем этом, а также многом другом.
Иллюстрации: Пол Блечфорд [Paul Blachford], Крис Винн [Chris Winn]

КОНТАКТНАЯ ИНФОРМАЦИЯ
UK: Linux Format, 30 Monmouth Street, Bath BA1 2BW
Tel 01225 442244 Email: linuxformat@futurenet.co.uk
РОССИЯ:
D-Bus для разработчика
Санкт-Петербург (редакция): ул. Гончарная, 23, офис 54, телефон: (812) 717-00-37
Представительство в Москве:
Без этой технологии немыслим современный открытый
пр.Мира, 161, телефон +7(495) 799-18-63, +7(495)136-88-45
Email: info@linuxformat.ru, Web: www.linuxformat.ru
рабочий стол - узнайте, как использовать ее, прямо сейчас!
Авторские права: Статьи, переведенные из английского издания Linux Format, являются
собственностью или лицензией Future Publishing Ltd (Future plc group company). Все права
зарегистрированы. Никакая часть данного журнала не может быть повторно опубликована без
письменного разрешения издателя.
Все письма, независимо от способа отправки, считаются предназначенными для публикации,
если иное не указано явно. Редакция оставляет за собой право корректировать присланные
письма и другие материалы. Редакция Linux Format получает неэксклюзивное право на
публикацию и лицензирование всех присланных материалов, если не было оговорено иное.
Linux Format стремится оставлять уведомление об авторских правах всюду, где это возможно.
Свяжитесь с нами, если мы не упомянули вас как автора предложенных вами материалов и мы
постараемся исправить эту ошибку. Редакция Linux Format не несет ответственности за опечатки. Интервью
Интервью: эксклюзивно
для LXF
Все присланные материалы могут быть помещены на CD или DVD-диски, поставляемые вместе с
журналом, если не было оговорено иное.
Ограничение ответственности: используйте все советы на свой страх и риск. Ни при каких условиях
редакция Linux Format не несет ответственность за повреждения или ущерб, нанесенные вашему
компьютеру и переферии вследствие использования тех или иных советов.
За содержание рекламных материалов редакция ответственности не несет.
Linux-зарегистрированная торговая марка Линуса Торвальдса (Linus Torvalds). Название «GNU/
Linux» заменяется на «Linux» в целях сокращения. Остальные торговые марки являются Точки зрения посетителей и участников LinuxWorld в
собственностью их законных владельцев.
Linux Format является торговой маркой Future Publishing Ltd (Future plc group company).
За информацией о журналах, издаваемых Future plc group company, обращайтесь
Сан-Франциско.
http://www.futureplc.com

© Linux Format 2005


© Future Publishing Ltd 2005
Содержание последующих выпусков может меняться без уведомления

128 Linux Format Xxx 2006


B AT H • L O N D O N • M I L A N • N E W Y O R K • PA R I S • S A N D I E G O • S A N F R A N C I S C O

Вам также может понравиться