LXF97 Python » MySQL » Slashdot » OpenMoko LXFDVD MOPSLinux 6.0

ПЛЮС: ALT 4.0 Personal Desktop LXF

Октябрь 2007 » Zenwalk Live & Core » KDE 4 Beta 2 № 10(97) Главное в мире Linux № 1100

Ubuntu ООктябрьктябрь ((97)97) 22007007 БоремсясоSlashdot-эффектом Борьба за лучший

Эксклюзивная информация Python о том, как делается самый

ParagonNTFS популярный в мире дистрибутив

Что нового в Gusty Gibbon? Мнения разработчиков ЛуисСуарес-Поттс ППЛЮС! ЛЮС! Собери свой собственный SedиAwk OpenMoko

Пишемсобственныйebuild Не заSlashdot’ишь! Bash, Sed, Awk Ebuild’нем… Подготовьте свой web-сайт к Накоротке с основными инстру- Приготовьте исходный код для наплыву посетителей с. 42 ментами командной строки с. 58 пользователей Gentoo с. 72

ККаталогаталог агентстваагентства «РРОСПЕЧАТЬОСПЕЧАТЬ» – подписной индекс 2208820882 ККаталогаталог «ППРЕССАРЕССА РОССИИРОССИИ» – подписной индекс 8879747974 Я ни на секунду не предлагаю ОOо стать Боргом! OpenOffice.org Луис Суарес-Поттс Приветствие

Главное в мире Linux К Вашим услугам... Продав компанию Thawte, основатель Ubuntu Марк Шаттлворт заработал 575 миллионов долларов. А на что бы вы потратили эту сумму, окажись она в вашем распоряжении?

Пол Хадсон Грэм Моррисон Майк Сондерс Я бы создал фонд Я бы притворился Я бы проспонсиро- помощи бездомным бездомным ребен- вал строительство детям... а затем ком, чтобы урвать механических без- купил большую, еще и кусок, достав- домных детей, блестящую машину. шийся Полу. чтобы они делали работу, которую сейчас выполняют живые бездомные дети. В плену у технологий

Жить без технологий невозможно – по крайней мере, если вы с удовольствием читаете журналы вроде LXF. Компьютеры (как проявление технологий) берут на себя тяжелую и рутинную работу вроде размещения на бумаге символов, которые я сейчас набираю – а вам остается только пожинать плоды заслуженного Эфрейн Эрнандес- Мэтт Нейлон Энди Ченнел Мендоса Я бы вложил один- Я бы закупил мно- бездействия... пардон, интеллектуальной деятельности. Но не кажется Я бы не сказал об единственный пфен- жество танков, этом ни одной ниг под 5% с капи- самолетов, винтовок ли вам иногда, что технологий стало слишком много? живой душе, а сам тализацией, подож- и тонны боеприпа- Достаточно интересными в этом смысле являются настольные продолжил жить по- дал 2000 лет и полу- сов для своих дру- старому: переведя чил бы сумму, в 134 зей, сражающихся в поисковые системы наподобие Google Desktop. Вырастающие доллары в стерлин- млрд. раз превыша- армии CIRCA. ги, вы получите не ющую золотой запас www.clownarmy.org корнями из мощных движков, способных выловить крупицы полезной такую уж впечатляю- Земли. информации из безбрежного океана хлама, известного как World Wide щую сумму. Web, они способны за секунду отыскать нужный документ и на вашем локальном компьютере... если, конечно, он уже представляет собой все тот же океан или хотя бы пруд хлама! Поймите меня правильно – я не люмпен и вполне способен оценить технические достоинства подобных инструментов, и даже вижу несколько случаев, когда они могут оказаться действительно Энди Хадсон Д-р Крис Браун Нейл Ботвик полезными. Но не будет ли правильнее побороть собственную А кто-нибудь уже Я бы подарил ноут- Я бы, пожалуй, засу- оплатил перевод бук с Ubuntu каждо- нул большую часть неаккуратность, а не сваливать эту проблему на мощный, но Linux на эсперанто му сотруднику этого добра за спин- безмозглый компьютер? По крайней мере, до тех пор, пока он не или классическую Microsoft, чтобы ку дивана – по край- латынь? А то я бы, просто посмотреть ней мере, до сих пор научится прибираться и в вашей комнате тоже... LXF думаю, взялся... на их лица. мои деньги собира- лись именно там. Валентин Синицын Главный редактор [email protected]

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

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

Октябрь 2007 Linux Format 1 СодержаниеООктябрьктябрь 20072007 № 1010 (97)(97) Весь номер – прямо как на ладони: приятного чтения!

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

Тайм-менеджмент Как привести дела в порядок ...... 54 MOPSLinux 6.0 Первые шаги в Mozilla Sunbird – удобной Последняя версия отечественного дист- программе для планирования жизни. рибутива, базирующегося на Slackware Bash Linux 12.0 – большой выбор пакетов и Используем командную строку ...... 58 очень качественная русификация с Знакомство с grep и каналами, а также сохранением достоинств оригинала! введение в инструментарий продвинутых пользователей. Zenwalk 4.6 Live & Core Python Современная, быстрая, рациональная Прибираем аудиоколлекцию ...... 60 разновидность Slackware, запускающаяся Сохраните всю музыку в одном месте, прямо с CD. А также неплохой фунда- сгруппируйте по вкусу, поправьте ID3-тэги – и мент для собственной разработки. все это несколькими строками кода. Классический Linux ALT Linux 4.0 Personal Desktop Настольный дистрибутив от российской Каналы и фильтры ...... 64 Подобно тому, как из деталей конструктора команды разработчиков, основанный на Lego появляются чудо-машины, sed и awk одном из крупнейших в мире репозито- могут склеить неприглядные утилиты в риев свободного ПО – Sisyphus. полезные программы. Mono Подборка Сравнений Убойная коллекция обзоров из предыду- Шифруем файлы ...... 68 Защитите свои данные от любопытных глаз по щих выпусков нашего журнала поможет методу, проверенному на правительственном найти подходящее ПО для работы и Выиграйте пару секунд на этом круге в SuperTuxCart. уровне. отдыха. Hardcore Linux Portage и ebuild ...... 72 Безупречный рецепт для получения максимума Что за штука... с. 46 LXFHotPicks удовольствия от коктейля из 12 000 пакетов Gentoo. Лучшие новинки открытого EE Open ПО на планете ...... 114 Письмо на родину ...... 76 Бывает, приложениям Java тоже хочется позвонить домой. К счастью, у них есть для Moko? этого все необходимое. GTK+ Закажите себе Движок текстового редактора ...... 79 комплект раз- Подсветка синтаксиса, неограниченные undo/ работчика и redo, нумерация строк и более могут стать отправьте раз- вашими, если вы освоите API GtkSourceView. рекламирован- Ананас ный iPhone на Установим и посмотрим ...... 82 Ваше первое знакомство со свободной учетной свалку исто- системой для Linux – и не только. рии! Suspend-to-Disk Thunder and Lighting: обрушьте на врага гром и молнии! Спокойной ночи, Тукс! ...... 86 Начинайте работу в Linux там, где вы ее закончили – научите свой дистрибутив впадать в спячку и просыпаться по требованию. LXF ИНТЕРВЬЮ Препринт Офсет ...... 90 «Я ни на Ищите типографию, запасайтесь пленками и терпением – пришла пора освоить секунду не качественную офсетную печать. предлагаю RADIUS Входим в сеть...... 94 ОOо стать В Linux есть множество утилит, облегчающих работу с защищенными сетями Wi-Fi. Network- боргом...» Переживем Manager, KWlan или просто wpa_supplicant: кто из них лучше подходит для решения ваших Луис Суарес-Поттс сс.. 2222 слэш-доттинг с. 42 задач? Помогите своему web-серверу выстоять, когда в его двери начнут ломиться тысячи посетителей.

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

Спецрепортаж Обзоры

eSys PC ...... 08 Конечно, это не ноутбук за $100, но бюджетный ПК с Linux едва ли можно назвать Борьба за лучший дешевкой. Ubuntu

Фаворит 2007 года в объективе нашего микроскопа с. 26 А также... Хорошие или плохие – но они Сколько стоит свобода ...... 34 поставляются с Linux из коробки. Закрытый или открытый: где провести черту? Google Desktop ...... 10 Флагман интернет-поиска выпустил тралер Сведи на нет Slashdot-эффект ..... 42 локальной файловой системы и для нашей Как выдержать тысячи запросов: практическое любимой ОС. Как это скажется на Linux и заработает ли в Китае? руководство. Yellow Dog PS 3 ...... 11 Поменять операционную систему на последней Связующее звено Интернета ...... 48 игровой консоли Sony теперь под силу не Познакомьтесь с BIND и некоторыми другими способами только хакеру. превратить строку в IP-адрес. MailEnforcer 3.0 ...... 12 Фраза «первое в мире 64-битное решение для обеспечения безопасности и архивирования» звучит громко, но что скрывается за этими словами? Постоянные рубрики Paragon NTFS ...... 13 Требуется записывать данные на разделы Win- Новости ...... 04 Что за штука ...... 46 Ответы ...... 107 dows XP и Vista из-под Linux? Узнайте, как. OOXML отклонен. Идея «Linux в каждом мобильном Наши эксперты решают ваши проблемы: телефоне» стала ближе с выходом FTP, USB, Samba, Linux-вирусы, DVD, Сравнение: IRC-клиенты DistroWatch ...... 20 OpenMoko... темы Firefox, RAID и прочее. Что ждет нас в недалеком будущем, Konversation ...... 15 дистрибутивы для интернет-кафе и Тот, что выживет ...... 52 Через месяц ...... 128 загадочный Yoper. Джереми Эллисон сокрушается о судьбе 98-й выпуск в хрустальном шаре LXF. Opera ...... 15 исторически важных документов, Irssi ...... 16 Интервью LXF ...... 22 сохраненных в проприетарных форматах, Pidgin ...... 16 Луис Суарес-Поттс из OpenOffice.org и рисует картины страшного будущего KVirc ...... 17 высоко ценит сотрудничество – и он человечества, потерявшего все расскажет нам, почему. накопленные знания.. Xchat ...... 17 Kopete ...... 18 Интервью LXF Russia ...... 39 Школа LXF ...... 98 Chatzilla ...... 18 Linux Format беседует с Инной Linux для образовательных учреждений Кузнецовой, директором по Linux- Глазова и Екатеринбурга: Галина стратегии корпорации IBM. Пожарина и Александр Поносов.

Перекодировать видео из DVD в открытый формат – это просто!

Октябрь 2007 Linux Format 3 Новости Новости ГЛАВНЫЕ НОВОСТИ: Дистрибутив для школ России OOXML отклонен AMD открывает спецификации ATI Игрушечный прогресс Франция выбирает Red Hat Проблемы заморского ГУИНа Открытый QNX

ББИТВАИТВА ЗАЗА ООБРАЗОВАНИЕ:БРАЗОВАНИЕ: рраундаунд ппервыйервый

ешение российского правительства тур. Первыми заявили о себе участники аль- параллельно с закупкой проприетар- янса, организованного компанией ALT Linux. Р ного ПО для школ создавать и альтер- К ней присоединились такие известные раз- нативные проекты на базе свободного ПО ста- работчики и внедренцы, как Линукс-онлайн, ло логическим завершением многочисленных Naumen, Eterrsoft и системный интегратор споров и обсуждений за круглыми столами «Центр». Основной задачей данного объедине- перспектив дальнейшего развития отечест- ния станет разработка специализированного венного программного обеспечения. Проект, дистрибутива Linux и создание разветвленной подготовленный Мининформсвязи, подразу- сети специализированных филиалов, которые мевает почти трехлетнюю программу созда- будут осуществлять техническую поддержку и ния школьного Linux-дистрибутива, способ- сопровождение дистрибутива в учебных заве- ного полностью заменить закупаемое сегодня дениях. Школьный Linux будет создаваться на коммерческое ПО: в конце текущего года будет базе ALT Linux Junior и репозитория Sysiphus, проведен тендер, победитель которого в 2008 являющегося третьим в мире по числу входя- году осуществит пилотные переводы на сво- щих в него пакетов. При этом основной упор бодное ПО трех регионов, в списке которых участники альянса делают на то, что создани- сегодня звучат Татарстан, Пермский край и ем школьной операционной системы должны Томская область. В течение тестового пери- заниматься разработчики, обладающие соб- ческое и обучающее ПО, затем – блок, обслу- ода будут вноситься все необходимые кор- ственной пакетной базой. живающий деятельность школы как хозяйс- ректировки, а к осени 2009 года планируется Спустя всего несколько дней заявил о себе твующего субъекта, и, наконец, блок про- обеспечить операционной системой Linux все и второй альянс. Его инициатором выступила грамм, обеспечивающих деятельность школы российские школы. Финансирование столь петербуржская компания Линукс Инк, а свой как социального учреждения. В целом данный глобального проекта будет осуществляться из интерес к данному объединению проявили ЗАО вариант выглядит более взвешенным, ведь на федерального бюджета, при этом в 2007 году Lynx, Линуксцентр, Инфра-Ресурс, издательс- самом деле не имеет смысла избавляться от будет освоено 50 млн. рублей, в 2008 году – 60 тво BHV и НПО «Сеть». Программа данного одного монополиста, чтобы заменить его дру- млн., а в 2009 году сумма затрат составит око- альянса немного отличается от той, что озву- гим. Школы должны иметь свободу выбора ло 600 млн. рублей. чили конкуренты: не зацикливаясь на каком- и пользоваться той операционной системой, Масштабность поставленных правитель- то определенном дистрибутиве, разработчики которая будет наиболее выгодна и удобна в ством задач стала причиной объединений рос- планируют заняться созданием мультисис- работе, а задача разработчиков – подготовить сийских компаний, работающих в области сво- темного специализированного программного качественное программное обеспечение, спо- бодного ПО, сразу в несколько мощных струк- обеспечения по трем направлениям: педагоги- собное функционировать в любой среде.

4 Linux Format Октябрь 2007 Новости Двоевластия пока не будет

начале сентября технический комитет мата, занимающих около 6000 страниц. А до чиной появления официального запроса в Международной организации по стан- этого времени есть повод разобраться с тем, Федеральное агентство по техническому регу- Вдартизации (ISO) вынес свое решение – как проходило голосование в региональных лированию и метрологии, подготовленного формат OOXML не собрал количество голосов, комитетах. И повод этот довольно серьезный: депутатом Госдумы РФ Виктором Алкснисом. необходимых для выдвижения его в качестве в некоторых странах рассмотрение формата Согласно просочившимся в прессу данным, международного стандарта одновременно с OOXML сопровождалось массой нарушений решение об одобрении нового формата было ODF. Такой результат был получен на осно- действующего законодательства. Сторонние вынесено Федеральным агентством без сколь- вании решений организаций по стандартиза- наблюдатели постоянно сообщали о различ- ко-нибудь серьезных исследований специфи- ции из более чем ста стран. По правилам, для ных подтасовках, попытках ввести участников каций, а непосредственными исполнителя- выдвижения в число стандартов «кандидат» комиссии в заблуждение или просто попыт- ми стали рядовые сотрудники учреждения. В должен набрать не менее 2/3 голосов «за» ках победить числом, а не уменьем: были связи с этим депутат попросил руководство и не более 25% «против». Ни одно из этих зафиксированы случаи, когда состав техни- агентства сообщить, каким образом прини- условий не было достигнуто: число сторон- ческой комиссии в последние часы голосова- малось решение, кто проводил техническую ников OOXML составило лишь 53% от обще- ния резко возрастал за счет вхождения в него оценку представленных спецификаций, какие го количества проголосовавших, при этом компаний, являющихся партнерами Microsoft. экспертные группы привлекались к работе против нового стандарта высказалось около В Швеции вообще пришлось аннулировать комиссии и кто конкретно вынес решение об 26%. Но такой результат еще не означает, что результаты голосования по причине явных одобрении формата OOXML. Одновременно у Microsoft нет шансов протолкнуть собствен- подтасовок. он запросил копии всех решений, протоколов ную разработку: в феврале будущего года Не лучшим образом себя показали и стра- и заключений специалистов, если они, конеч- пройдет повторное заседание технического ны СНГ, единодушно поддержавшие ини- но, имеются. комитета ISO и до этого времени редмондский циативу Microsoft по продвижению OOXML. гигант может исправить недочеты, обнаружен- Причем, то, что Россия без каких-либо заме- ные экспертами в спецификациях нового фор- чаний одобрила OOXML, послужило при- Дела игрушечные

се продолжающийся рост популяр- Впрочем, на рынке немало и таких разра- зу под двумя лицензиями: коммерческой и ности свободных операционных сис- ботчиков, кто наоборот пытается успеть заво- свободной GPLv3. Благодаря такому подходу Втем оказывает влияние на весь рынок евать в Linux-сообществе свою долю поль- разработчики не только наращивают число программного обеспечения, но, пожалуй, зователей. Компания CCP Games совместно своих пользователей, но и привлекают талан- наибольший интерес у пользователей вызы- с TransGaming Inc. планируют к концу теку- тливых разработчиков к дальнейшему совер- вает ситуация с развитием игровых прило- щего года разработать клиентскую часть для шенствованию игры. жений для Linux. А за прошедший месяц популярной онлайновой игры EVE Online не здесь произошло немало интересных собы- только для Windows, но и для платформ Linux тий. Впрочем, начать обзор игровых ново- и Mac OS X. Ранее фанаты данной космичес- стей придется с не самого оптимистичного кой RPG пользовались клиентской частью Новости короткой строкой сюжета: компания id Software решила поме- для Windows, запуская ее с помощью пакета Компания Microsoft закрыла web-сайт «Get The Facts», на нять приоритеты и готовит новую игру Rage Cedega. Хороший опыт не остался незаме- котором публиковались специальным образом подготов- с движком, использующим только DirectX, ченным и теперь авторы Cedega смогут изба- ленные доказательства преимуществ Windows перед Linux. без поддержки OpenGL. Следует отметить, вить своих пользователей от дополнитель- что раньше компания довольно благосклон- ных забот. Аналогичное решение приняла и Компания ALT Linux объявила о готовности долгожданной но относилась к Linux-геймерам: достаточ- компания Hothead Games, создающая на базе версии ALT Linux Personal Desktop 4.0. но вспомнить, что такие популярные игры, онлайновой версии Penny Arcade мультиплат- как Quake и Wolfenstein после определенно- формное игровое приложение. Объясняют Компания LinuxCenter по многочисленным просьбам при- го периода коммерческого распространения свой поступок авторы игры очень просто: ступила к продажам электронной версии журнала Linux передавались сообществу Linux-пользовате- рынок Linux-систем стремительно растет и Format. лей, а движок легендарного Doom III изначаль- если сейчас сделать правильные шаги, то в В интернете открылся web-сайт Linux Wikipedia, на котором но создавался в платформенно-независимом недалеком будущем можно будет значительно планируется собрать рекордное количество документации. варианте. Не последнюю роль в подобной расширить число своих пользователей за счет универсальности играл тот факт, что движки приверженцев свободного ПО. Но, пожалуй, Компания IBM присоединилась к числу разработчиков паке- всех вышеперечисленных игр были постро- наиболее радужные перспективы ожидают тех та офисных программ OpenOffice.org. ены на платформе OpenGL, что значительно разработчиков, которые не останавливаются 5 сентября стартовал глобальный образовательный проект облегчало перенос игровых приложений в на полпути и переводят свои игровые прило- SELF Platform, призванный объединить усилия преподавате- среду Linux. Чем вызван переход на более жения под свободные лицензии. Один из таких лей из разных стран по созданию документации по Linux. закрытый DirectX, руководство компании id примеров – компания Viewizard, выпустившая Software умалчивает. свой космический 3D-шутер AstroMenace сра-

Октябрь 2007 Linux Format 5 Новости

Свободный Neutrino

Фото: http://www.bigfoto.com Фото: омпания QNX Software Systems объявила об открытии ССОЗДАНЫОЗДАНЫ ДДРУГРУГ ДДЛЯЛЯ ДДРУГАРУГА кода операционной системы реального времени QNX КNeutrino RTOS. Теперь данная разработка будет выходить ока российские власти только пла- ный спектр услуг, включая техническую под- под двойной лицензией, позволяющей как принимать участие в нируют осторожное внедрение Linux держку и сопровождение своих программных совершенствовании данного ПО свободным разработчикам, так и П в сферу образования, в Европе миг- продуктов. распространять её на прежней коммерческой основе. Таким обра- рационные процессы набирают обороты. Еще более значимые результаты достигну- зом авторы проекта надеются создать сообщество разработчиков Министерство образования Франции и компа- ты в Германии, где власти федеральной зем- открытого ПО, принимающих полноправное участие в развитии ния Red Hat сообщили о завершении процесса ли Северный Рейн-Вестфалия заключили с программного продукта. На первом этапе в разряд открытого перевода 2500 серверов, установленных в 30 компанией Novell контракт на обеспечение ПО перешли исходные тексты микроядра QNX Neutrino, а также подразделениях министерства по всей стране, 33 университетов, насчитывающих около 560 библиотеки и некоторых драйверов. В дальнейшем ожидается на использование операционных систем Red тысяч студентов, операционными системами открытие кода Photon microGUI, сетевого стека, файловой системы Hat Enterprise Linux. Основной причиной столь SUSE Linux. Примечательно, что устанавли- и набора утилит. Специально для сторонних разработчиков авторы масштабной миграции послужила государс- ваться данное ПО будет не только на рабочие проекта подготовили специализированный web-сайт Foundry27, твенная программа по уменьшению затрат на машины в аудиториях, но и на персональные после регистрации содержание правительственных учреждений компьютеры студентов и работников универ- на котором мож- Франции, а также необходимость в сниже- ситетов. Следует также отметить, что чуть но будет получить нии зависимости от определенных постав- раньше аналогичные контракты были реали- доступ к исход- щиков проприетарного ПО. По словам чинов- зованы в Тюрингии и Баварии, где число сту- ным текстам QNX ников, сегодня практически весь парк серве- дентов составляет примерно 300 тысяч чело- Neutrino RTOS. ров министерства работает только на Linux, век. Таким образом, по окончании миграции в а выбор в пользу Red Hat был обусловлен общей сложности почти 40% всех германских тем, что данная компания обеспечивает пол- студентов будут пользоваться ОС Linux. AAMDMD открываетоткрывает спецификацииспецификации ддрайвероврайверов AATITI

Сентябрь принес радостную новость для всех ся более 72 тысяч файлов с документацией ки помогать сообществу в создании свобод- пользователей операционных систем Linux, и ожидается, что большая часть из них будет ных видеодрайверов для карт ATI. И, похоже, обладающих видеокартами с лейблом ATI: постепенно представлена на специализиро- надежды компании на улучшение ситуации с компания AMD решила открыть спецификации ванном web-сайте, открытом по такому слу- полноценным 3D-ускорением в Linux имеют этих графических чипсетов. Одновременно с чаю компанией AMD. Данное решение должно под собой почву: очередная версия драйверов выпуском очередной версии драйверов компа- способствовать ускорению разработки сво- на тестах показала значительный прирост в ния начала выкладывать в свободный доступ бодной версии драйверов, а также позволит скорости работы, поэтому есть надежда, что технические материалы, описывающие все компании привлечь к созданию более качес- в скором времени все мучения владельцев тонкости функционирования видеокарт. На твенных версий ПО сторонних разработчиков. видеокарт ATI останутся в прошлом. сегодняшний день в запасниках AMD находит- Также руководство AMD пообещало всячес- Осуждение с принуждением

Слишком широкое распространение пропри- по закону обязаны установить на компьютер смогло бы работать и в Ubuntu Linux. При всей етарного ПО создает, порой, самые непред- осужденного специализированное ПО, отсле- курьезности ситуации на самом деле она при- сказуемые проблемы, и с одним из таких живающее активность пользователя в сети и открывает еще один серьезный аспект небла- примеров столкнулся бывший администра- ежедневно отсылающее отчеты в управление гоприятного влияния проприетарного ПО на тор одного из трекеров EliteTorrents BitTorrent по надзору за осужденными. Как нетрудно жизнь общества: при определенных обстоя- Скотт МакКосланд [Scott McCausland]. В 2006 догадаться, данное программное обеспечение тельствах оно может способствовать наруше- году он выложил на сервер пиратскую копию было предназначено для установки исклю- нию основных прав и свобод, гарантирован- очередной серии кинохита «Звездные войны», чительно в операционную систему Windows. ных конституцией. за что был арестован и осужден на полгода Впрочем, офицеры быстро решили проблему, тюремного заключения и еще полгода домаш- предложив Скотту удалить Ubuntu и устано- него ареста. Его история осталась бы неза- вить «правильное» ПО, на что убежденный

меченной, как и тысячи других, но случилось сторонник свободного ПО не мог согласиться При подготовке данного выпуска новостей были использо- так, что Скотт оказался приверженцем сво- ни под каким предлогом. Посовещавшись с ваны были использованы материалы сайтов: Приоритетные бодного ПО и предпочитал работать на ком- адвокатом, он решил подать в суд и потре- национальные проекты, InfoWorld, vnunet.com, ars technica, пьютере исключительно в операционной сис- бовать, чтобы надзорные органы предостави- Free Software Foundation, Citrix и других, а также наших соб- теме Ubuntu. Между тем, надзорные органы ли такое программное обеспечение, которое ственных корреспондентов.

6 Linux Format Октябрь 2007 3D modelling tool Reviews Обзоры Новинки программного и аппаратного обеспечения в описании наших экспертов

Алексей Федорчук Его слабости – mass storage, разметка диска и файловые системы. Сегодня мы рассматриваем...

eSys ePC c. 08

ZFS: конец файловым 08 eSys ePC Basic проблемам? Тонкая разница между «недорогим» и «дешевым» не нуждается в объяснении – вопрос в том, сможет ли этот бюджетный компьютер удержать марку… или же – сколько денег, столько и песен? азметка диска и файловые системы – те немногие элементы «высшей 10 Google Desktop математики» POSIX’ивизма, пред- Р Когда мы впервые услышали о нем пару лет назад, ставление о которых не помешает любому казалось, речь идет о настольных web-приложениях, пользователю. Причем получить его жела- вроде предлагаемых Oracle. В реальности все тельно до установки первого дистрибути- суровее: это просто поисковая утилита. ва. Иначе трудно исключить ситуацию, ког- Имеет смысл потратить на этот компьютер пару да будет мучительно больно за бесцель- 11 Yellow Dog PS 3 сотен – и потом держать в качестве постоянно но потраченное дисковое пространство в В основе PlayStation 3 лежит архитектура PowerPC, включенного сервера или второго рабочего места. одной ветке файлового древа и острую так что выпуск для нее дистрибутива от Terra Soft нехватку оного – в другой. Solutions был всего вопросом времени. Что это Paragon NTFS c. 13 Конечно, методы перераспределения значит для YDL, которому многие прочили гибель, и дискового пространства между разделами консоли, которая не бьет рекорды продаж? существуют. Это и программы типа parted, и механизмы логических томов (например, 12 MailEnforcer 3.0 LVM в Linux). Однако использование их не Если вы ищите масштабируемое, почти бесконечно вполне тривиально, да и не всегда безо- настраиваемое решение для защиты почты на пасно для данных. предприятиях любых размеров, доступное для 32- и ZFS, похоже, предлагает окончательное 64-битных систем, считайте, что вы его нашли. решение этого вопроса. Эта 128-битная (!) файловая система была разработана фир- 13 Paragon NTFS мой Sun для ОС Solaris. Потом она была Когда возникает необходимость с комфортом включена в OpenSolaris, портирована во писать на разделы Windows XP из-под вашего FreeBSD и (через FUSE) поддержана Linux. любимого дистрибутива Linux, выбор не так уж и Если вы – системный администратор или просто Ожидается, что она будет файловой систе- велик. имеете машины Windows в домашней сети, это мой по умолчанию в Mac OS X Leopard. бывает удобным. В ZFS наличное дисковое пространство предстает в виде единого пула (zpool), доступ к которому могут иметь все вклю- НАШ ВЕРДИКТ: пояснение ченные в него ветки файловой иерархии. Кроме того, 128 разрядов ZFS гарантиру- Все попавшие в обзор продукты «Top Stuff». Номинантами стано- ют, что с ограничениями на ее размер не оцениваются по одиннадцати- вятся лучшие из лучших – прос- Вердикт придется столкнуться за всю грядущую бальной шкале (10 – то высокой оцен- историю человечества. По словам созда- высшая оценка, 0 – низ- ки здесь недоста- Google Earth шая). Как правило, мы точно. Разработчик: Google теля XFS Джеффа Бонвика [Jeff Bonwick], оцениваем функциональ- Рассматривая Сайт: http://earth.google.com «для этого пришлось бы вскипятить оке- ность, производитель- свободное ПО, мы Цена: Бесплатно по закрытой лицензии ан». Наконец, целостность данных и быс- ность, простоту исполь- обычно указываем Функциональность 10/10 зования и цену, а для предпочтитель- Производительность 9/10 тродействие при доступе к ним – тоже не Простота использования 9/10 бесплатных программ ный дистрибутив. последние козыри этой ФС. Документация 9/10 учитывается документа- Иногда это озна- Похоже, буква Z в названии действи- ция. Кроме того, мы всег- чает компиляцию Если весь мир – сцена, то Google тельно символизирует... точку в развитии да выставляем общую оценку, из исходных текстов, но, если Earth – театр. Простая в использовании, захватывающая и ободряюще практичная файловых систем. демонстрирующую наше отно- разработчики рекомендуют программа. [email protected] шение к продукту. Autopackage, мы следуем этому Выдающиеся решения могут совету. получить престижную награду Рейтинг 9/10

Октябрь 2007 Linux Format 7 Обзоры Персональный компьютер eSys ePC Данный ПК – еще не ноутбук за $ 100, но он доказывает, что концепция реализуема. Ник Вейч проверяет, может ли такая удача быть правдой…

у что можно купить за 280 долларов? Система Кусок PlayStation 3? 736 консервных Н банок фасоли? Четыре подписки на Процессор: лучший в мире журнал о Linux? А настольный Celeron 331 компьютер с предустановленным Linux – не (2,66 ГГц, кэш хотите? Компания eSys – известный про- 256 КБ, системная изводитель систем, которые специалисты шина 533 МГц) RAM: 512 МБ по маркетингу называют «доступными», в Накопители: диапазоне от самых простых до умеренно жесткий диск 80 ГБ, «навороченных». Наша модель – простей- DVD-ROM шая из простых – дешева до предела. Но: Графика: дешевка ли? VIA Unichrome (работает в Vesa- Качество изготовления – хоть куда. Чашку режиме) кофе можно ставить сверху без опаски. И хотя корпус – гадкий midi-tower серебристого пластика от магазина бытовой техники High Street, свое дело он делает. Предусмотрены свободные отсеки для дополнительного обо- рудования (отрада самоделкиных), несколько USB- и аудио-портов спереди и обычный час- Чтобы максимально снизить цену, ePC токол выводов сзади, включая стандартный продается без монитора. VGA-разъем для монитора. В комплект входят мультимедиа-клавиа- тура и мышь, а вот на монитор придется рас- кошелиться. Найдите такой, чтобы работал со По части графики, материнская плата, на не есть хорошо. Конечно, VIA позаботилась стандартным VGA-входом – впрочем, многие которой собрана система, оснащена встро- о поддержке Linux на своем оборудовании, ЖК-дисплеи это до сих пор умеют. енным графическим чипсетом VIA, но это но лучший результат зачастую достигается при использовании свободных драйверов, не полностью поддержанных VIA. Однако даже ePC изнутри проект Openchrome, всеобщая палочка-выру- чалочка, на время написания статьи не под- держивал данный чипсет. Винить eSys осо- бо не за что, но, честно говоря, компания Накопители Материнская плата оснащена могла бы подобрать материнскую плату от поддержкой SATA, но и DVD- Intel с интегрированной поддержкой графики. привод, и 80-ГБ жесткий диск Досадно осознавать, что потенциал аппарату- являются PATA-устройствами. ры используется не полностью. Стоит, правда, заметить, что улучшенная поддержка графики Питание могла бы повлиять разве что на качество вос- 250-ваттный блок питания произведения фильмов – того, кто ищет мощ- работает тихо, но безотказно. ную графическую станцию, наша машина вряд Процессор ли заинтересует. Под мощным кулером скрывается 2,66-ГГц Celeron. Ubuntu навсегда В комплект входят клавиатура и мышь. Оба устройства оснащены разъемами PS/2, и это Обмен информацией Единственный сетевой порт радует. Клавиатура выглядит вполне солидно, 10/100. есть все функциональные клавиши, а сверху еще и панель медиакнопок. Удивительно, но все они (ну, почти все) исправно работают! Разве не здорово, что можно изменить гром- Графика Слоты расширения Резервы роста Периферия кость или запустить браузер без мороки с X- «Бортовая» графика VIA 3 слота PCI и один AGP 3 отсека спереди и 1 Два USB-порта, расположенные Unichrome прячется здесь. дают шанс на разгон. внутри предусмотрены на передней панели, удобны настройками или lineak? про запас. для подключения цифровых Менее удивительно то, что сборщики eSys фотоаппаратов и т.п. EPC выбрали в качестве системы для установ- ки Ubuntu (между прочим, компьютер снабжа-

8 Linux Format Октябрь 2007 Персональный компьютер Обзоры

Интересно было бы в очередном номере сравнить предустановленный Linux в исполнении Dell.

ется сопроводительным диском с драйверами Flash-эффектами, обнаружится, что по фак- Правда, воспроизведение фильмов несколько VIA, хотя толку от него мало, ведь на нем нет ту ничего не работает. Firefox, естественно, отрывистое, а 3D-эффекты Compiz недоступ- специальных Linux-драйверов). Это уже тен- предложит загрузить подходящий модуль, но ны, но ведь для рабочей лошадки это не глав- денция, и с учетом того, что Dell тоже соби- мы-то с вами знаем, что из этого ничего ное. Зато устройство вызывающе дешево, и в рается ставить Ubuntu, выбор явно неплох. Не не выйдет; а пользователь зайдет в тупик. этом есть своя «изюминка». Мы рекомендуем могут же ошибаться сразу несколько милли- Инсталлировать Flash-player от Adobe вручную взять да и установить на купленный компью- онов пользователей, верно? для новобранца весьма непросто, даже если тер свой любимый дистрибутив – терять особо Разочаровывает, однако, что это голая инс- нечего. LXF талляция Ubuntu. Похоже, произошло следую- щее: Ubuntu (речь идет о 6.06 LTS) установили «Неудивительно, что на компьютер, использовав стандартное имя производители выбрали пользователя и пароль (кстати, они есть на стикере на боку коробки!), затем полученный дистрибутив Ubuntu.» образ залили на жесткие диски всех новых компьютеров. Зная это, нетрудно предугадать он знает, откуда его можно скачать. Политика последствия подобной установки Ubuntu. Adobe в отношении OEM настолько либераль- Вердикт Например, если вы задумали подарить на, что производители eSys могли бы преспо- такой компьютер племяннику на Рождество, койно предустановить Flash. Пусть такое ПО eSys ePC basic готовьтесь к продолжительным телефонным может «запятнать» систему щепоткой «несво- Разработчик: eSys Сайт: www.esysglobal.com переговорам. После первой загрузки и входа в боды», но лица, кому эти пятна не дают покоя, Цена: примерно $280 с НДС систему пользователь получает стандартный, обычно способны инсталлировать и стериль- Функциональность 6/10 пустой рабочий стол Ubuntu: ни на экране, ную систему с сопроводительного диска. Производительность 7/10 ни в коробке нет никаких сведений о том, что Выходит, что это не проблемы Ubuntu. Да Простота использования 5/10 делать дальше. Невольно возникает идея сра- это и не проблемы самого устройства: скорее, Цена 10/10 зу же сменить пароль и/или настроить новую упущенные возможности завоевать симпатии учетную запись! пользователей, что могло бы благотворно Купи один или парочку! Подари близким! Да не забудь отключить Но это не единственная проблема. Конечно, отразиться на имидже Linux. телефон, а то замучают техническими бывалый линуксоид запросто добьется пра- Компьютер явно заслуживает внимания; вопросами… вильной работы, установив дополнительные его легко использовать как домашний сер- пакеты, но ведь большинство покупателей вер или настольную систему для непритяза- будут новичками. Так вот, когда они запус- тельного пользователя. Скорости процессора Рейтинг 8/10 тят Firefox и набредут на какой-нибудь сайт с вполне достаточно для повседневных нужд.

Октябрь 2007 Linux Format 9 Обзоры Google Desktop Google Desktop 1.0 Страсти по настольному поиску отбушевали двенадцать месяцев назад. Грэм Моррисон считает, что Google припозднился с предложением для Linux.

пустя почти три года после выпуска Вкратце… первоначальной версии для Microsoft С Windows и на два месяца позже вер- Инструмент сии для Apple OS X, Google Desktop наконец-то для объединенного пришел в Linux. Слово «desktop» в названии поиска несколько двусмысленно. Google Desktop – как в Интернете, только поисковый инструмент, способный так и в пределах настольного заменить Kat [ныне Strigi, – прим.ред.] в KDE компьютера. Может или Beagle в Gnome, но никак не рабочий стол индексировать KDE или Gnome. Хотя программа далеко не и локальные файлы, бесполезна: до сих пор нам не сильно везло и почтовые с приличными поисковыми инструментами директории на Google. для Linux. Несмотря на потенциальную полез- См. также: ность, они либо занимают под свой индекс Beagle и Kat. весь жесткий диск, либо отъедают солидные куски оперативной памяти, либо полностью блокируют компьютер после нескольких дней использования. Хотелось бы встретить рабо- тоспособную версию. 64 – быть? Google предоставляет 32-битные двоичные пакеты в форматах Deb и RPM для большин- Приложение, в котором открывается ссылка, зависит от настроек браузера. ства Linux-дистрибутивов. Обещана 64-бит- ная версия, хотя мы без особого труда уста- ла и его местонахождение, но и содержание, Все это работает безупречно, без вся- новили 32-битный вариант на нашу 64-бит- причем каждый тип файлов требует особой ких проблем с производительностью, которы- ную машину. Затем остается вручную запус- обработки. Поддерживается множество раз- ми страдают «родные» Linux-приложения. Но тить программу командой gdlinux – на панели личных форматов с уклоном в Linux: доку- вывод web-браузера не очень хорош с точки инструментов появляется маленький значок менты OpenOffice.org, стандартные почтовые зрения интеграции в рабочий стол – вдобавок Google Desktop, и начинается важнейший про- директории, Thunderbird, PDF, Ogg Vorbis, mp3 не работает опция ИЛИ – и возникает неприят- цесс индексирования. Кажется, что он длится и истории браузеров. Тот, у кого есть почта ное чувство, что это скорее циничная попытка целую вечность. Индекс формируется лишь во на Google, может включить в индекс учетную Google навязать пользователю зависимость время простоя компьютера, поэтому прошло запись Gmail, интегрировав таким образом ее с от своей поисковой технологии, чем действи- несколько дней, прежде чем 81361 файлов на рабочим столом. Удивляет лишь полное отсут- тельно полезное Linux-приложение. Windows- нашей машине были полностью проиндекси- ствие поддержки формата Microsoft Office. версия обладает виджетами, чья функцио- рованы, что составило около 7 часов чистого нальность схожа с Dashboard/SuperKaramba, времени обработки. Подобно Kat или Beagle, Встроенный сервер что гораздо удобнее. Хотелось бы увидеть поиск Google Desktop проникающий: просмат- Есть два способа начать поиск. Можно дваж- нечто подобное и в Linux. А пока это толь- ривается и анализируется не только имя фай- ды нажать клавишу Ctrl, и откроется малень- ко очередной настольный поисковый инстру- кий поисковый инструмент, а можно вызвать мент. Пускай и работоспособный… LXF новую домашнюю страницу Google из панели. Свойства навскидку Поисковый инструмент интуитивно понятнее и хорошо интегрируется в рабочий стол, подоб- но Beagle или Spotlight на OS X. Во время набо- Вердикт ра слов запроса результаты появляются ниже поля ввода. Нажатие Enter выводит более Google Desktop подробные результаты поиска в отдельном Разработчик: Google Cайт: http://desktop.google.com/linux окне браузера. Выглядит все это совершенно Цена: Бесплатно (проприетарный продукт) так же, как онлайн-поиск Google, который все Функциональность 5/10 мы знаем и любим, включая краткий конспект Производительность 7/10 по содержанию результата каждого запроса. Простота использования 7/10 Интеграция Проникающий поиск Google утверждает, что никакие данные с пер- Цена 7/10 Дважды нажмите клавишу Ctrl – Google Search читает содержа- сональных серверов на его собственные сер- Программа работает, она эффективна, поисковик Google откроется и ние файлов многочисленных веры не поступают. Типы файлов обозначают- но нет ощущения разработки специально заполнит свое окно результата- типов и добавляет результаты ся маленькими значками, а щелчок на одном для Linux. ми поиска по вашему запросу. чтения к своему индексу для из файлов в списке найденных открывает его удобства последующего поиска. в назначенном по умолчанию приложении. Рейтинг 6/10

10 Linux Format Октябрь 2007 Дистрибутив Linux Обзоры

Yellow Dog Linux 5.0.2 Из-за перехода Apple c PowerPC на процессоры Intel будущее Yellow Dog заволакивается туманом. Грэм Моррисон видит (маловероятного) спасителя в PlayStation 3 от Sony.

огда Apple перешла на архитектуру Вкратце… Intel, сразу же встал вопрос о выжи- К вании PowerPC-ориентированных Свободные дистрибутивов вроде Yellow Dog Linux (YDL) и коммерческие без своей главной пользовательской базы. версии PowerPC- Но процессор PlayStation 3 (PS3) Cell (произ- ориентированных водная от PPC), вкупе с решением Sony оста- производных Fedora Core для старых вить возможность установки альтернативной машин Apple, IBM ОС, открывают двери для Linux. Есть версии BladCenter JS21, Cell Ubuntu и Fedora, специально собранные для QS20, Mercury Cell PS3, но YDL была здесь с самого начала. и PlayStation 3 от Sony. Другая ОС Понадобятся обычные USB-клавиатура и мышь – мы успешно опробовали несколь- ко разных устройств. После инсталляции Linux игровой контроллер PS3 поддержива- ется через USB-порт, но только как джойстик. Проблема инсталляции Linux на PS3 состоит в том, что приходится переформатировать и Пол заново разбивать жесткий диск из главного считает… меню приставки – инструменты дистрибутива для этого использовать невозможно, так как Посетите сайт При HDMI-подключении YDL будет использовать разрешение 1280х768 для ТВ высокого Terrasoft и уз- Sony ограничила прямой доступ и к жесткому разрешения, но правкой файлов конфигурации можно задействовать все 1080 пикселей. найте, как мало диску, и к графической аппаратуре. Видимо, приставок фирма опасается посягательства Linux-разра- Нужно установить загрузчик YDL с DVD чий стол начинает тормозить. Firefox, напри- нужно собрать ботчиков на ее мировое господство в игровой (достаточно вставить диск и выбрать «Install мер, запускается 8 секунд, а после запуска в YDL-кластер, сфере. Есть угроза потерять весь загруженный Other OS» в системном меню PS3) и сменить еле тащится. Аппаратные ограничения Sony чтобы достичь контент, сохраненные игры, музыку, видео и ОС приставки по умолчанию, чтобы подобие вынуждают Linux-дистрибутивы применять теоретической фотографии, если только предварительно не загрузчика Sony изменилось на Grub или LILO. для графического вывода фрейм-буфер, не производитель- сделать резервную копию. К счастью, функ- Мы обнаружили, что в случае возникновения извлекая никакой выгоды из мощной аппа- ности выше ция резервирования и восстановления в PS3 каких-либо проблем, достаточно выключить ратуры Nvidia. Но не все так плохо, как может одного тера- развита хорошо: приятно видеть, что не все питание консоли, затем удерживать кнопку показаться – например, полноэкранное видео флопа. потеряно, обретая прежнюю консоль после питания в течение пяти секунд – и стандартная со стандартным разрешением работает без переформатирования. Сетевая учетная запись конфигурация Sony полностью восстановится. проблем. И все же графическое ускорение PlayStation Network сохраняется, на месте и Инсталляция продолжительна, занимает свы- могло бы помочь YDL выйти на «большую настройка беспроводного доступа, и другие ше 90 минут – хотя инсталлятор и уверяет, что дорогу» и получить более широкое призна- настройки, сделанные вами ранее. 25 минут для установки вполне достаточно. ние. LXF Недоуправление пакетами Свойства навскидку Набор ПО в YDL довольно скуден. Вы полу- Вердикт чаете Firefox, OpenOffice.org и IDE, плюс пригоршню игр Gnome, и все это искус- Yellow Dog Linux 5.0.2 но вплетено в рабочий стол Enlightenment. Разработчик: Yellow Dog Linux Запущен и OpenSSH, а VNC держится наготове Сайт: www.terrasoftsolutions.com на случай, если вам захочется использовать Цена: DVD от $49.95 ТВ. Менеджер пакетов YUM инсталлирован, Функциональность 9/10 поэтому нетрудно добавить дополнительные Производительность 8/10 репозитории и загрузить все необходимые Простота использования 7/10 пакеты. Удобная среда с несколькими API Цена 8/10 Пакеты YUM Специально для PS3 для многопоточной Cell-разработки выглядит Годится для самоделок, эмуляции и Добавьте собственные Инсталляция ПО и поддержка и работает гладко, а сравнительно неболь- способен производить впечатление на репозитории для установки сети специфичны для PS3, а шое потребление памяти E17 (у PS3 только девушек, но не заменит ПК. новых приложений – и ваша PS3 значит, заставить заработать 256 МБ RAM) сохраняет отзывчивость систе- превратится в полноценный функции вроде беспроводного мы. Правда, если запустить программу с чуть медиаплейер. доступа совсем несложно. Рейтинг 8/10 большими потребностями по памяти, рабо-

Октябрь 2007 Linux Format 11 Обзоры MailEnforcer 3.0 MailEnforcer 3.0 На рынке ПО для предприятий затевается нечто действительно серьезное, если Грэм Моррисон решился вставить в обзор выражение «проталкивать». езопасность Linux общеизвестна; глав- Вкратце… ным образом потому-то мы им и поль- Б зуемся. Но это видимое преимущество Почтовый прокси- лишь сейчас начинает влиять на мир бизнеса: сервер, сразу несколько компаний готовят продук- фильтрующий ты, призванные протолкнуть Linux на широ- сетевой почтовый кий рынок. Устройство Yoggie Gatekeeper Pro, трафик. Поставляется которое мы рассматривали в LXF95 – яркий как на DVD, тому пример. Это встраиваемый Linux-ком- так и в составе пьютер, установленный на USB-брелок, для самостоятельного фильтрации и защиты интернет-данных – при сервера. Альтернативой этом неважно, под какой ОС работает компью- можно назвать лишь тер-хост. MailEnforcer имеет сходное назначе- комбинацию ние, только масштаб крупнее. Продукт постав- специальных ляется предустановленным на сервер по ваше- скриптов, му выбору либо в виде комплекта DVD/CD для коммерческих антивирусов инсталляции на имеющееся оборудование, с и фильтров контента целью обеспечения безопасности электронной наподобие почты на уровне предприятия. После установ- DansGuardian. ки программа занимает место между почтовы- ми серверами и Интернетом, проверяя сооб- щения на соответствие строгим критериям, а MailEnforce использует Java-оболочку для настройки и наблюдения за сервером; впервые заодно регистрируя все сообщения, создавая СУБД Oracle снабжена экземпляром Enterprise Linux от Oracle. отчеты и посылая предупреждения. вызвать особых проблем. Во время работы ний и многие другие тесты. Мы заваливали Мудрость Oracle внутри MailEnforcer крутится столько страниц, программу сотнями писем из наших кол- Для установки MailEnforcer на наш сервер Athlon что ими можно было бы наполнить мифи- лекций спама, а MailEnforcer добросовестно 64 X2 мы взяли DVD-версию. Фактически, уста- ческую Вавилонскую библиотеку. Это пугает блокировал их или помечал как подозри- навливается 64-битная версия Oracle Enterprise до тех пор, пока вы не уясните, как все-таки тельные. Страница обзора статистики, кроме Linux, и это был первый раз, когда данный работает эта система. MailEnforcer напомина- своего прямого назначения, позволит вам отпочкованный Oracle от Red Hat дистрибутив ет web-прокси, а чтобы поместить програм- засечь необычно высокую почтовую актив- повстречался нам в живой природе. Литература му между вашими почтовыми клиентами и ность и направит на ваш электронный адрес о продукте утверждает, что глубоких познаний серверами (как правило, Microsoft Exchange более подробные отчеты. Вдумчиво комбини- Linux не требуется, и это соответствует исти- или Sendmail), ее нужно настроить. В малом руя подразделения и группы, можно добиться не – по крайней мере, во время инсталляции: окружении MailEnforcer можно использовать осуществления любой мыслимой политики, даются точные указания о том, что устанавли- даже как самостоятельный POP-сервер, уста- а также переложить часть бремени адми- вать, какие службы включить (есть только SSH новив простые настройки и включив пользо- нистрирования, используя микроменеджмент. и SMTP) и как сменить пароль суперпользова- вателей во внутреннюю группу – кстати, это Продукт легко масштабируется и подходит как теля. Все остальное делается через web-интер- неплохая возможность протестировать сис- для малых/средних предприятий, так и для фейс, доступный после инсталляции. Однако тему перед началом ее серьезного использо- сравнительно крупных организаций. Подобной мы не рекомендуем слепо полагаться на Linux, вания. Правильно настроенный, MailEnforcer программы для Linux мы до сих пор просто не Управление не обладая хотя бы минимальными навыками. должен быть прозрачен для конечного поль- встречали. LXF почтовой системой Средний администратор без опыта работы в зователя, проявляясь разве что в извещениях с помощью браузера Linux может споткнуться, даже делая такие о блокировке сообщения, которое нужно как- эффективно, простые вещи, как смена IP-адреса сервера – то вызволять. Вердикт но требует хотя бы особенно если инсталляция не включает X11. начального уровня MailEnforcer 3.0 Web-интерфейс – облицовка либо для Изобилие настроек знаний о Linux. Разработчик: Drawbridge Software встроенного Java-апплета, либо для загружае- Сказать, что MailEnforcer легко настраива- Cайт: www.drawbridgesoftware.com мого приложения Java Web ется – значит, сказать очень мало. Под соб- Цена: US$995 за лицензию на 10 Start (последнее работает ственные нужды здесь можно перекроить бук- пользователей Функциональность 9/10 на нашей машине немного вально все. Характерный пример – фильтры Производительность 7/10 быстрее). Успешным был сканирования почты, имеющие более сорока Простота использования 6/10 и опыт с Blackdown Java – параметров настройки (и все включены по Цена 8/10 единственный метод полу- умолчанию). Среди них проверка коммерчес- Прекрасный выбор для компаний чить 64-битную версию ким (Kaspersky) и открытым (ClamAV) анти- всех размеров, еще не выработавших Web Start. Да и любая дру- вирусами, доступ к различным онлайн-базам стратегию почтовой безопасности. гая 32-битная инсталляция данных по фишингу и спаму, черные списки Java (1.4 и 1.5) не должна DNS, оптическое распознавание изображе- Рейтинг 8/10

12 Linux Format Октябрь 2007 Файловая система Обзоры Paragon NTFS for Linux 6.0 Нужна запись на жесткие диски Windows XP или Vista из-под Linux? Нейл Ботвик тестирует единственное потенциальное решение с поддержкой сжатия NTFS.

ользуясь открытым ПО, мы прини- Вкратце… маем как должное даваемую им сво- П боду. Здесь нет тайн, и программы Коммерческая легко срабатываются друг с другом: ведь их файловая система внутренние механизмы показаны в исходном для доступа к NTFS- коде. Если нужен доступ к файловой системе разделам Windows Linux из Windows, достаточно лишь устано- из Linux, с вить драйвер – вся информация, необходи- поддержкой чтения и записи со сжатием. мая для его написания, открыта и доступна. См. также: NTFS-3G. Попробуете сделать наоборот – совсем другая история. В ядро Linux встраивается ограни- ченная поддержка файловой системы NTFS, ограниченная в том смысле, что безопас- ным считается только чтение с этой системы. Альтернатива – модуль NTFS-3G FUSE, предо- ставляющий доступ и на чтение, и на запись. Paragon сработал еще одну, коммерческую альтернативу, но по плечу ли ей заставить вас раскошелиться (а заодно и поступиться прин- ципами свободного ПО)? Существует две версии NTFS for Linux: персональная, о которой пойдет речь в Надежность измерить трудно: копирование отдельных файлов проходило без ошибок и нашей статье, устанавливает лишь драйвер потерь, хотя изредка случались сбои при чтении в «глубоко вложенных» директориях. файловой системы без дополнительных инструментов. Профессиональная версия оснащена инструментами для создания, Как же работает программа? Прилично, и Давление сжатия? изменения размеров, архивирования и дру- очень быстро. Файловая система устанавли- 83-страничное руководство, доступное на сай- гих операций с NTFS-разделами из-под вается в качестве модуля ядра, поэтому перед те Paragon (но не включенное в загружаемый Linux. Обе версии могут похвалиться Live инсталляцией необходимо иметь исходный архив) покрывает вопросы инсталляции и раз- CD для доступа к NTFS-разделам, включая код ядра и среду для компиляции, чего по личные параметры монтирования файловых возможность резервного копирования дан- умолчанию в большинстве дистрибутивов нет, систем NTFS, причем речь идет в основном ных на CD или DVD. но все необходимые компоненты присутству- об инструментах профессиональной версии. ют в стандартном репозитории. Установив их, Существенное отличие от NTFS-3G – обраще- инсталлировать программу нетрудно: доста- ние со сжатыми файлами. Это файлы, сжатые Производительность точно распаковать zip-архив и запустить sh на уровне файловой системы, а не обычные install.sh (не верьте документам, советующим zip-архивы. Хотя читать такие файлы могут Мы пробовали запустить тестовые программы bonnie, bonnie++ и использовать ./install.sh, поскольку бит ‘x’ на многие файловые системы, записывать в этот iozone, но они не работают с NTFS For Linux, и это показывает, что нем не установлен). Инсталлятор формирует формат умеет лишь NTFS for Linux – и если у некоторые важные функции файловой системы упущены. Но вряд ли и инсталлирует модуль файловой системы, вас сжатая NTFS, ваш выбор уже сделан. LXF кто-нибудь заведет базу данных или почтовый сервер на NTFS-разде- затем разыскивает NTFS-разделы и добавляет ле, да и сверхскоростное массовое копирование/создание файлов их в /etc/fstab. Есть возможность автоматичес- вряд ли понадобится. Так что мы обошлись тестами попроще. Они кого монтирования таких разделов при загруз- Вердикт состояли из копирования двух наборов файлов в обоих направлениях. ке. Графического инсталлятора нет, а базовые Первый набор состоял из 4 ГБ больших видеофайлов, чтобы оценить Paragon NTFS for Linux 6.0 максимальную скорость копирования. Второй набор, из 713 МБ малых инструкции, пожалуй, чересчур подробны, но Разработчик: Paragon Software Group файлов (49900 на два «ядерных» дерева), показывал способности запуск инсталляционного скрипта – это все, Сайт: www.ntfs-linux.com/home/personal обращения со сложными файловыми структурами при сравнительно что вам нужно сделать. малом объеме передаваемых данных. NTFS For Linux оказалась мед- Будучи установленной, файловая система Цена: $29,95, включая 60-дневную поддержку (для РФ – 120 рублей) леннее NTFS-3G в первом случае, при копировании файлов большого монтируется так же, как и любая другая, но, Функциональность 3/10 объема, и быстрее – во втором, при наличии сложной системы фай- вследствие различий с NTFS, получить такие Производительность 6/10 лов. Полученные цифры приводятся ниже. же права доступа и владения, как в Linux, Простота использования 7/10 не получится. Вместо этого предоставляются Цена 6/10 Запись 4 ГБ больших файлов Чтение 4 ГБ больших файлов параметры монтирования с указанием вла- NTFS for Linux 80 секунд NTFS for Linux 207 секунд Приличная производительность, но не дельца, группы и прав доступа по умолчанию NTFS-3G 128 секунд NTFS-3G 108 секунд без проблем при работе со сложной для файлов, совершенно так же, как с встро- структурой директорий. Запись 713 МБ малых файлов Чтение 713 МБ малых файлов енными в ядро файловыми системами FAT. NTFS for Linux 99 секунд for Linux 105 секунд NTFS-3G 806 секунд NTFS-3G 545 секунд Рейтинг 6/10

Октябрь 2007 Linux Format 13 Сравнение Каждый месяц мы сравниваем тонны ПО – а вы можете отдыхать!

Клиенты IRC На DVD Истошное перекрикивание не лишено недостатков, поэтому Крис Хауэллз рассматривает более уместный способ связи: с помощью клиентов Internet Relay Chat (IRC).

О тестировании

Тест проводился в системе 7.04 Feisty Fawn, установленной на Lenovo ThinkPad X60s с 1,5 ГБ ОЗУ (ограничено до 256 МБ) и 1,66-ГГц процессором Intel Core Duo. Программы сравнивались по следую- щим критериям: Производительность IRC-клиент тихонько дожидается на заднем плане, пока вам не понадобится войти в чат, поэтому он должен быть как можно более бережливым в отно- шении ресурсов. Мы сравнивали количество ОЗУ, используемое каждым клиентом. Удобство использования и документация Новичку IRC может показаться слегка недружелюбным. Насколько просто пользо- ваться клиентом: доступен ли он тому, кто не имеет базовых знаний о протоколе? Функции IRC Обладает ли клиент такими функциями, как передача файлов, адми- нистрирование каналов, приват и присоеди- нение к нескольким сетям IRC одновремен- но? Можно ли расширить функциональ- ность клиента использованием скриптов? Paul Blachford

разу после кончины динозавров – К сожалению, научиться общению через ло IRC-клиентов, предлагающих упростить Наш точнее, в 1989 году – финского IRC не так-то просто: команды управления доступ к большинству обычных функций IRC, выбор программиста по имени Яркко сеансом по этому протоколу несколько зага- типа присоединения к каналу, отправки фай- Chatzilla с. 18 Ойкаринен [Jarkko Oikarinen] дочны. На наше счастье, существует нема- лов и смены псевдонимов-ников. Irssi с. 16 Сосенило. Он создал первый сервер и клиент Konversation с. 15 Internet Relay Chat, породив технологию, и по Kopete с. 18 сей день популярную среди тысяч, если не KVirc с. 17 миллионов, пользователей Интернета. Введение в IRC Opera с. 15 Рядом с современными видеоконферен- Pidgin с. 16 циями сермяжно-текстовые окна IRC, воз- IRC-сети, которых немало, состоят из много- Хотя графические клиенты скрывают от поль- численных каналов, на которых собираются зователя основы переговорного процесса, XChat с. 17 можно, выглядят архаизмом. Но IRC распро- пользователи, объединенные интересом к управляемого текстовыми командами, значе- странен очень широко, благодаря необычай- предмету обсуждения данного канала. Как ние главных команд неплохо было бы знать. ной простоте своего протокола и наличию правило, каналы открыты, и присоединиться к Вот несколько основных: IRC-клиента едва ли не в каждой ОС, снаб- ним может любой желающий. Присоединение /join #channel присоединяет к каналу под женной стеком TCP/IP. Тысячи пользова- к каналу позволяет общаться либо со всеми названием #channel телей множества IRC-сетей плотно заняты пользователями одновременно, либо вступать /nick ircUser меняет ваш ник на ircUser обсуждением самых разных вопросов с еди- в частные переговоры с отдельными пользо- /part покинуть текущий IRC-канал и не полу- номышленниками, хоть про Linux, хоть про вателями. Можно даже переслать файл. чать больше сообщений с него дела домашние.

14 Linux Format Октябрь 2007 IRC-клиенты Сравнение Konversation С легкостью поддерживает разговор.

onversation написан с использовани- и одноименная функция браузера – в дальней- ем KDE-библиотек, хотя и не является шем присоединиться к такому каналу будет Kчастью стандартного рабочего стола значительно проще. KDE. Заполучить его проще простого, ведь Для тех, кто не мыслит себя без команд- существуют пакеты для многих версий Linux – ной строки, у Konversation припасена воз- и он присутствует на нашем DVD. можность встраивания эмулятора терминала После запуска Konversation появляется Konsole. Предусмотрен и On Screen Display окно со списком серверов, позволяющее ука- (OSD), где могут отображаться некоторые зать сеть IRC, к которой вам хотелось бы под- сообщения в то время, когда окно Konversation ключиться; каналы, присоединяться к кото- минимизировано. рым следует автоматически; и ваш любимый Нам понравилась функция Paste Protection, Konversation хорошо интегрируется с KAddressBook, связывающей ник. которая выдает пользователю предупрежде- ники IRC с контактами в адресной книге. По умолчанию пользовательский интер- ние о том, что он намеревается послать в фейс программы делится на две части, со канал больше одной текстовой строки, и поз- списком сетей слева и окном чата справа. воляет отменить операцию или отредакти- Список ников, относящихся к данному кана- ровать содержание сообщения. Диалоговое Вердикт лу, составляет часть правого окна. Различные окно настройки интуитивно понятно и разум- Konversation 1.0.1 значки используются для отображения ста- но, поэтому барьер для нового пользователя Разработчик: KDE туса каждого ника, так что можно, например, обещает быть минимальным. Сайт: http://konversation.kde.org смекнуть, кто является оператором канала. Цена: Бесплатно под GPL Окно перехвата URL отображает все «Paste Protection выдает Солидный, удобный клиент, способный Интернет-адреса, упомянутые во всех кана- удовлетворить нужды как новичков, так и лах, к которым произошло присоединение. предупреждение при опытных пользователей. Есть функция Bookmark (Избранное), позво- попытке вставить больше ляющая «ставить закладки» на избранные Рейтинг 9/10 IRC-каналы примерно таким же способом, как одной строки текста.» Opera Пакет интернет-приложений.

pera IRC Client, наряду с браузером Подключиться к новой чат-комнате мож- Opera, составляет часть пакета Opera но командой /join или воспользовавшись OInternet Suite. Все эти части интегри- немного невнятно названной кнопкой панели руются в одно цельное приложение, из кото- инструментов New Room. Нам понравилась рого можно читать почту, просматривать web- идея работы в полноэкранном режиме, когда страницы и переговариваться в чате IRC. весь экран превращается в один гигантский Чтобы приступить к переговорам по IRC в IRC-сеанс, хотя при этом – досадно! – отсут- Opera, достаточно внести сведения об избран- ствуют средства наблюдения за активностью ной сети в окне Mail and Chat Accounts (Учетные на других каналах. записи почты и чатов). Настроить существен- Opera работает сравнительно неплохо, ные детали, такие как ник и название сети, к хотя мы заметили несколько мелких неувя- которой следует присоединиться, помогает зок вроде появления кнопок Source и Validate Каналы мастер. По окончании настройки с сервера (Источник и Проверить) в меню правой кноп- распределяются по загружается список сетей IRC, который отоб- ки мыши – эти кнопки актуальны лишь при вкладкам: на каждой ражается в окне браузера, хотя название кана- просмотре web-страниц в браузере. А еще вкладке есть ла можно указать и непосредственно, если вы раздражает не замеченное нами ни в одном браузер сети/канала Вердикт его уже знаете. другом IRC-клиенте стремление Opera скрыть (слева), область Набравшись опыта в IRC и став оператором префикс # в названии канала. канала (посередине) Opera 9.21 канала, вы обнаружите функции, позволяю- и список ников Разработчик: Opera Software, Осло (справа). Сайт: http://www.opera.com щие контролировать каналы и деятельность Цена: Бесплатно (проприетарный продукт) пользователей на них. Щелчок правой кнопкой Ничем особо не выделяется, мыши на одном из ников в списке пользовате- «Полноэкранный режим но определенно стоит внимания лей вызывает контекстное меню, одно из под- пользователей браузера Opera. меню которого, Control (Контроль), содержит превращает весь экран команды, позволяющие изгнать пользователя Рейтинг 6/10 канала – временно (kick) или навсегда (ban). в гигантский IRC-сеанс».

Октябрь 2007 Linux Format 15 Сравнение IRC-клиенты Irssi Название не звучит? Ну, это не главное!

отя Irssi – консольная программа, пьютер на ночь, оставляя сервер в работе, нет и назвать ее интуитивно-понятной нужды отсоединяться от IRC. Х язык не поворачивается, приложение Если вам случалось по ошибке садануть достаточно мощное и гибкое в настройке. За большую вставку текста в чужой IRC-канал, ним стоит мощная команда разработчиков и вам будет приятно узнать, что при отправке пользователей, благодаря чему на сайте и в более чем пары строк Irssi сперва обязательно wiki программы накоплен солидный объем потребует подтверждения такого действия. документации. Приятное впечатление произвела способ- Настроить Irssi можно двумя способами. ность Irssi к самообновлению. По команде Первый – редактирование файла ~/.irssi/config /upgrade программа автоматически загружа- в обычным текстовом редакторе. Второй – ет новые бинарники, на удивление даже без Объедините Irssi с GNU screen (www.gnu.org/software/screen) и SSH – ввод команд в программу. Работающую кон- выхода и отключения от IRC-серверов. и сможете отовсюду подключаться к одному и тому же IRC-сеансу. фигурацию затем можно сохранить в файле Наблюдение за активностью IRC-кана- настройки. лов реализуется с помощью списка названий Irssi обладает поразительно широкими активных окон в правом нижнем углу строки возможностями настройки поведения, как состояния. Если кто-нибудь в канале или в Вердикт с использованием визуальных тем, так и с привате обращается непосредственно к вам, Irssi 0.8.11 помощью скриптов. Скрипты пишутся на . то номер окна окрашивается в пурпурный Разработчик: Тимо Сираинен Немало разнообразных тем и готовых скрип- цвет. Сайт: www.irssi.org тов доступно на сайте программы. Одно из Цена: Бесплатно под GPL скрытых достоинств Irssi – модуль irssi-proxy, Irssi вряд ли подойдет новичку, но для который, согласно своему названию, действу- опытного пользователя трудно отыскать ет как IRC прокси-сервер. Когда Irssi работа- «Одно из скрытых более подходящий IRC-клиент. ет на сервере, к нему можно подключиться достоинств Irssi – с другого компьютера – например, вашего Рейтинг 8/10 настольного PC – и если вы выключаете ком- модуль irssi-proxy.» Pidgin Много протоколов в единственном интерфейсе.

ы были когда-нибудь в буфете «съешь, Интерфейс Pidgin примитивен, а набор сколько сможешь» и, поняв название функций ограничен. Мы не нашли способа Вбуквально, проклинали себя в тече- сменить свой ник, кроме обращения к коман- ние нескольких следующих часов? Таким мы де /nick, а если не возвращаться в главное нашли Pidgin. Известный прежде как Gaim, меню программы, то нет способа присоеди- Pidgin – это клиент сети мгновенных сооб- ниться к новому каналу, кроме команды /join. щений, поддерживающий множество разных Можно добавлять каналы к списку Buddies протоколов, включая IRC. (Друзья), хотя немало разочаровывает, что Всеядность Pidgin в поддержке самых раз- эта функция не автоматизирована. К сожале- ных протоколов вынуждает кое-чем пожер- нию, команда /server тоже не реализована. А твовать ради поддержки IRC. Ведь основная еще Pidgin не позволил нам присоединиться к Репутацию Pidgin отчасти спасает задача программы – обмен персональными Freenode с нашим обычным ником, ни с того встроенная проверка мгновенными сообщениями, а это большая ни с сего потребовав заменить последний орфографии, разница. знак единицей. подсвечивающая Добавив IRC-сервер к настройке учетной неверно набранное Вердикт записи, мы угодили в ловушку: не обнаружи- слово в поле ввода лось ни окна для ввода сообщений, ни воз- текста. Pidgin 2.0.2 можности присоединиться к каналу. В конце Разработчик: Pidgin (ранее Gaim) Сайт: http://pidgin.im концов мы догадались, что название канала Цена: Бесплатно под GPL необходимо указать в меню Buddies > Join A IRC-клиент очень неудобен в Chat (Друзья > Присоединиться к чату). После «Поддержка большого пользовании и не особенно-то сочетается этого появилось новое окно, используемое с остальной частью Pidgin. только для IRC-функций Pidgin. Каждый канал числа протоколов занимает отдельную вкладку с выводом текс- Рейтинг 5/10 та слева и списком ников – справа. требует жертв.»

16 Linux Format Октябрь 2007 IRC-клиенты Сравнение KVIrc Клиент с богатыми возможностями настройки.

ще один клиент, написанный с исполь- Пользовательский интерфейс KVirc инту- зованием библиотек KDE и . Буква итивно-понятен и гибок в настройке, включая Е “V” в названии KVirc, видимо, означает поддержку разнообразных тем, многие из “visual”, но, хотя выглядит KVirc весьма непло- которых доступны для загрузки с сайта KVirc. хо, не совсем ясно, почему визуальность счи- Впечатляют и способности программы к шиф- тается таким уж важным качеством. рованию. Поддерживаются многие протоколы По умолчанию KVirc оснащается интер- шифрования, включая Micryption, применяе- фейсом MDI (Multiple Document Interface), а мый также в XChat и популярном IRC-клиенте не современным вкладочным, в стиле Firefox. для Windows mIRC. Шифрование применяет- Поэтому каждый канал размещается в отде- ся в каналах, в привате и прямых чатах DCC льном окне внутри главного окна программы. (Direct Client-to-Client). Справочная система KVirc делит окно пополам. Продолжая работать Окно канала можно перемещать, минимизиро- Высоко развита поддержка скриптов: в с программой в левой части, можно просматривать документацию в вать и максимизировать; можно даже вывести KVirc есть даже собственный скриптовый его из главного окна и разместить в любом движок под названием KVS (KVirc Scripting месте рабочего стола. language), обладающий элементами различ- Похоже, что KVirc рассчитан на сравни- ных языков программирования, включая C++ Вердикт тельно опытных IRC-пользователей, судя по и Perl. Преимущество языка состоит в том, KVIrc 3.2.0 таким функциям, как редактор действий и что он создан специально для работы в IRC. Разработчик: Шимон Стефанек синонимов-алиасов. Редактор алиасов позво- Но при желании можно составлять скрипты Сайт: www.kvirc.net ляет создавать клавиатурные комбинации, с на чистом Perl. Цена: Бесплатно под GPL помощью которых можно выполнять весьма Местами невразумителен, но сложные действия благодаря встроенному встроенная поддержка скриптов весьма скриптовому движку. удобна для автоматизации. Хотя в целом документация KVirc довольно «Развита поддержка подробна, эти функции в ней освещены скуд- скриптов: для них даже Рейтинг 6/10 но; очень жаль. Зато документация по скрип- товому движку составлена превосходно. есть свой движок.» XChat Этот клиент на GTK+ – хороший работяга.

верхпопулярный клиент, отчасти бла- слежения), XChat старательно пытается при- годаря долгожительству (разрабаты- влечь ваше внимание, включая мигание кноп- Свается еще с 1990-х годов), отчасти ки на панели задач KDE. Заодно в системном из-за кроссплатформенной архитектуры. лотке появляется значок XChat, хотя не сов- После первоначального запуска XChat вам сем ясно, зачем: ведь единственный параметр, необходимо указать сеть, к которой нужно который можно при этом включить – это “Quit” подключиться, хотя эта стадия не особен- (Покинуть программу). Подобным образом но приветлива, а набор функций прямо-таки эти функции работают и в Gnome. устрашает. Клиент располагает обширным набором Программа предоставляет широкие воз- клавиатурных комбинаций, что делает воз- Скрипты – важная функция Xсhat, их можно писать и на Perl, и на можности настройки интерфейса. По умолча- можным управление с помощью клавиатуры, Python; много готовых скриптов имеется на сайте программы. нию в левой части окна представлены серверы почти без участия мыши. Наиболее удобна и каналы в виде дерева, в середине – главное комбинация Alt+N (где N – цифра от 0 до 9) окно чата, а справа остается список ников. для переключения между каналами. Есть воз- Вердикт Можно отказаться от «древесного» вида ради можность назначить собственные комбинации, вкладочного варианта, с корешками вкладок если умолчания не устраивают. XChat 2.8.4 для каждого канала в низу экрана. Приятная Разработчик: Петер Железны Сайт: www.xchat.org функция – горизонтальная черта, которая под- Цена: Бесплатно под GPL водится под текущим чатом при переключе- Зрелый солидный клиент, умело нии на другой канал: по возвращении обратно «Набор клавиатурных балансирующий между простотой сразу видно, сколько всего произошло за вре- использования и мощью. мя вашего отсутствия на канале. комбинаций позволяет Если кто-нибудь на канале упоминает ваш Рейтинг 9/10 ник (или слова из настраиваемого списка для обойтись без мыши.»

Октябрь 2007 Linux Format 17 Сравнение IRC-клиенты Chatzilla Лучший выбор для «сталкера»!

тот клиент можно получить либо в появляется в списке преднастроенных сетей, составе браузера Seamonkey, либо как можно было бы предположить. Экак расширение к Firefox. Для данного Печально, что документация не может ока- Сравнения мы взяли модуль Firefox, посчи- зать сколько-нибудь существенной помощи. тав, что именно так его могло бы использовать Есть, правда, объемистый список FAQ, но большинство читателей. ничего похожего на пошаговые инструкции о Если Firefox уже установлен, то инсталля- том, как осуществить какое-либо действие. ция предельно проста – всего-навсего вой- Что касается технологии, то Chatzilla напи- дите на сайт Chatzilla и нажмите установоч- сан на JavaScript, а его пользовательский Не особенно богат набор функций, зато удачно именованный “Stalk ную ссылку (или возьмите файл с DVD этого интерфейс создан с помощью каскадных таб- list” позволяет составить список ников или текстовых строк, об номера). После загрузки и инсталляции нуж- лиц стилей (CSS) [корректнее было бы сказать, упоминании которых программа должна немедленно уведомлять вас. но перезагрузить Firefox, после чего Chatzilla XUL и CSS, – прим. ред.]. Альтернативные цве- появится среди пунктов меню Tools (Сервис). товые схемы, известные как Motifs, доступны Другой способ запуска – ввод в адресной на сайте программы. Нарастить функциональ- строке Firefox «Интернет-адреса» в таком ность Chatzilla можно, создав собственные Вердикт формате: irc://server/#channel. скрипты JavaScript. Расширяемость програм- Chatzilla 0.9.78.1 Некоторые раздражающие черты Chatzilla мы такова, что можно добавлять даже соб- Разработчик: Chatzilla застали нас врасплох. Несколько сетей про- ственные пункты меню. Сайт: http://chatzilla.hacksrus.com/ писаны в программе по умолчанию, и одного Цена: Бесплатно под GPL/MPL/LGPL щелчка на их названии достаточно для подклю- Гибок в настройке, но хромает чения к IRC-серверу. Но совсем не так просто интеграция с браузером, по сравнению с добавить к списку новую сеть. В диалоговом «Написан на JavaScript, а Opera. Удобство пользования тоже не на окне Preferences (Параметры) есть кнопка Add высоте. (Добавить), после нажатия на которую можно интерфейс пользователя добавить Network (Сеть) и Target (Канал), но, Рейтинг 6/10 к несчастью, после добавления сети она не применяет CSS». Kopete AIM, ICQ, MSN, Yahoo, Jabber, IRC, Gadu-Gadu, Novell GroupWise и все, все, все…

формив свою учетную запись в кает отдельная вкладка, но окно сообщений Kopete, вы оказываетесь почти в делится на вывод канала слева и список ников О такой же ситуации, как и в Pidgin: справа. необходимо вернуться назад, в главное меню, Щелчок правой кнопкой мыши в спис- и выбрать File > Add Contact (Файл > Добавить ке ников выдает контекстное меню, которое контакт). Затем нужно будет указать ник или оператор IRC-канала может использовать для Увы, как и в Pidgin, команда /server не реализована, и для название канала. Правда, оформлено все это управления. подключения к другой сети необходимо создавать новую учетную сравнительно приятно: ник или название кана- Программа хорошо интегрируется с запись. Другие IRC-команды – например, /join для присоединения к ла сопровождают вас во время переговоров остальными компонентами KDE, такими как новому каналу – действуют. по ICQ, AIM или MSN Messenger (да и по всем адресная книга, поэтому любой контакт из остальным IM-протоколам, которые поддер- адресной книги можно связать с его IRC- живает Kopete). ником. Сделав это, можно отправлять сооб- Хотя опытный IRC-пользователь вряд ли щения на электронный адрес абонента прямо Вердикт оценит такую способность, но Kopete гораз- из Kopete – очень удобно для связи, например, до лучше Pidgin осуществляет интеграцию с коллегами при работе над распределенным Kopete 0.12.1 IRC-клиента в унифицированный клиент сети проектом. Разработчик: KDE Сайт: http://kopete.kde.org мгновенных сообщений. Цена: Бесплатно под GPL Начать приватные переговоры с кем- Хорошо интегрирует IRC с другими нибудь из своих собеседников можно, дваж- «Неплохо интегрирует IM-протоколами в надежном и удобном ды щелкнув по его нику в главном окне клиенте. программы; присоединиться к какому-либо IRC в унифицированный каналу можно подобным же образом. После Рейтинг 7/10 присоединения к каналу в окне чата возни- клиент сообщений».

18 Linux Format Октябрь 2007 IRC-клиенты Сравнение

IRC-клиенты Вердикт Xchat 9/10

актически, IRC не особо изменился с 1989 года, оставаясь до сих пор Ф чрезвычайно простым протоколом – простым до такой степени, что для участия в чатах достаточно telnet-клиента (хотя это и не рекомендуется: ведь вам нужно будет отве- чать на ping-запросы сервера, а если вы не будете делать это достаточно шустро – вас просто отключат!). По счастью, все клиенты на данном тес- те гораздо хитрее telnet, хотя удобство их использования существенно различается: некоторые требуют знания IRC-команд, тогда как в других почти все делается из графичес- кого интерфейса. Из клиентов, проходивших наш тест, бла- гоприятное впечатление на нас произвели три. Это XChat, Konversation и Irssi. XChat – клиент, успешно сочетающий мно- На сайте XChat доступны к загрузке сотни готовых скриптов. А если нужного не найдется – гие из наиболее важных аспектов IRC в един- почему бы не написать что-нибудь самому на Perl или Python? ственной программе, достаточно простой для новичков и обладающей богатыми скрипто- xchat-gnome.navi.cx), лучше интегрированную в ладах с оболочкой, мы настоятельно реко- выми возможностями. Клиент базируется на с Gnome. Будучи «клиентом для всех», XChat мендуем поэкспериментировать с ним и почи- GTK+ и почти одинаково работает в Gnome и заслуженно получил высшую награду наше- тать man, прежде чем изгонять эту программу KDE. И все же пользователям Gnome полезно го теста. с компьютера за то, что она недостаточно было бы взглянуть на альтернативную вер- понятна интуитивно. Вы наверняка замети- сию XChat под названием XChat-gnome (http:// Соискатели те, что небольшое количество потраченно- Konversation – превосходный клиент для KDE, го таким образом времени экономит многие сочетающий выдающееся удобство исполь- часы в дальнейшем. Irssi вполне заслуженно Вопрос читателю зования с замечательной документацией. разделила в нашем сравнении второе место Но хотя эта программа может использовать с Konversation. Вы фанат IRC или предпочитаете другие скрипты с помощью dcop (программа kdcop Chatzilla – единственный клиент нашего средства, например, ICQ, AIM или MSN выведет все доступные виды интерфейсов), тестирования, который нам не хотелось бы Messenger? Сообщите нам свое мнение и ее скриптовые способности далеки от анало- рекомендовать кому бы то ни было из-за поделитесь соображениями на letters@ гичных возможностей XChat. Поэтому он идет его раздражающего поведения, неудобства в linuxformat.ru. Кстати, почему бы не присо- единиться к #linuxformat на irc.freenode.net? голова к голове с Irssi. использовании и чрезвычайно скудной доку- Irssi – единственный консольный клиент ментации. LXF в нашем обозрении. Даже если вы не совсем

Таблица функций

Более одного Ведение Проверка Поддержка разных Потребление Приложение Версия Лицензия Скрипты Темы сервера журнала орфографии протоколов памяти

KVIrc 3.2.0 GPL 8.0МБ Konversation 1.0.1 GPL Частично 6. МБ Kopete 0.12. GPL .3МБ XChat 2.8. GPL 5. МБ Pidgin 2.0.2 GPL 12. МБ Chatzilla 0.9. 8.1 GPL/MPL/LGPL 39.8МБ Проприе- Opera 9.21 22.9МБ тарная Irssi 0.8.11 GPL Скрипт 2.5МБ

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

ЛАДИСЛАВ БОДНАР основатель, редактор, начальник и сотрудник DistroWatch.com. Скоро выйдут… С ростом популярности Linux дистрибутивы наперебой Пингвиний угол предлагают новые функции. Что будет на нашем столе в 2008-м?

редставьте на миг, что вы утром отя каждый лидирующий проект вносит инно- проснулись и обнаружили себя вации, заодно заимствуя идеи у соперников, П в Бутане, горном королевс- Х все дистрибутивы движутся к одной общей тве у могучих Гималаев. Вас осеняет, что цели – действительно удобному настольному решению. компьютеры важны для успеха в жизни. Однако чтобы изучать компьютеры, сна- OpenSUSE 10.3 чала необходимо овладеть иностранным Из всех основных дистрибутивов, openSUSE ближе всего языком. Такова печальная экономическая на пути к новому релизу. Версия 10.3, запланированная реальность: Microsoft не делает Windows на 4 октября 2007, впервые включит устанавливаемые для Бутана просто потому, что этот продукт LiveCD и единственный установочный CD (с Gnome или столь низкого спроса не окупит вложенные KDE). Разработчики приступили к интеграции в дистри- в перевод и локализацию средства. бутив предстоящего KDE 4, но поскольку новая версия KDE выйдет позже, чем OpenSUSE 10.3, по умолчанию Вечный родник надежды останется KDE 3.5. Среди других интересных улучшений К счастью, для Linux и другого ПО с откры- и новых функций – интегрированные внешние репози- Все основные дистрибутивы сулят поставку давно тым кодом, укоренившимся в Интернете, тории пакетов в YaST, новый добавочный CD с обра- предвкушаемого KDE 4, но будет ли он стабилен? ситуация не столь безнадежна, как рань- зовательным ПО, помощник миграции и чрезвычайно ше. Правительства различных небольших ускоренное время загрузки. шей интеграции в Mandriva 2008 легковесного рабочего и малочисленных стран подхватили ини- стола Xfce. циативу создания локализованных дис- Ubuntu 7.10 трибутивов Linux. В Бутане министром Обычный 6-месячный цикл продолжается в виде 7.10, с Fedora 8 Информации и Коммуникаций недав- кодовым именем “Gutsy Gibbon” [Бесстрашный Гиббон]; В данный момент назначенный на 7 ноября, выход но был запущен основанный на Debian планируемая дата выхода – 18 октября. И вновь проект Fedora будет последним релизом основных дистрибути- Dzongkha Linux (джонгха – официальный попытается включить (причем по умолчанию) 3D-рабо- вов в этом году. Он будет иметь важное преимущество язык Бутана). В соседнем Непале подобные чий стол, на этот раз благодаря недавнему слиянию по времени для интеграции KDE 4 и исправления любых усилия вылились в разработку NepaLinux, проектов Compiz Fusion. Многое зависит от стабиль- потенциальных ошибок. Что касается пользователей также основанного на Debian, полностью ности и удобства использования Compiz Fusion: преды- Gnome, одной из неожиданных новых функций является локализованного на непальском. дущая итерация Ubuntu в последний момент отброси- замена традиционной панели Gnome на Online Desktop Там, где этой работой не управляют ла эту функцию, решив, что Beryl (ныне часть Compiz (часть проекта Mugshot), разработку, спонсируемую Red правительства, инициаторами часто высту- Fusion) содержит много ошибок и недостаточно устой- Hat и интегрирующую различные сетевые сервисы, типа пают сообщества разработчиков Linux. чив. Ubuntu 7.10 также будет впервые поставляться с публикации фотографий и web-почты, в улучшенную Прекрасный пример – Hacao, вьетнамский редакцией Mobile And Embedded, нацеленной на неболь- панель. Кое-что еще улучшено и отполировано, но ради- дистрибутив на основе Puppy Linux: он шие, мобильные и встраиваемые устройства. кальных новшеств нет; похоже, Fedora 8 – куда менее не только полностью переведен на вьет- амбициозный релиз, чем Fedora 7. намский, но также мал, быстр и ком- Mandriva 2008 фортно чувствует себя даже на скромном Ожидается в октябре 2007. В отличие от OpenSUSE Все эти дистрибутивы будут поставляться с последними оборудовании. и Ubuntu, компания помалкивает о новых функциях версиями основных компонентов и пакетов; вероятно, с Мы часто называем Linux альтернатив- [краткое и полное описание версии 2008 появилось в ядром 2.6.22 и множеством новых драйверов для бес- ной операционной системой. Для многих Интернете в самом конце августа 2007, – прим. пер.]: на проводных сетевых карт; а графическая система непре- людей, однако, Linux далеко не альтер- момент написания дневник разработки весьма повер- менно получит в подкрепление X.Org 7.3. Хотя KDE 4 все натива – это единственная доступная для хностен, а Wiki содержит лишь предполагаемый спи- еще вызывает беспокойство по поводу времени выпуска них ОС. сок, а не окончательные решения. Тем не менее, Cooker и качества окончательного кода, Gnome это не каса- [email protected] (дерево разработки Mandriva) регулярно обновляется, а ется: все четыре дистрибутива предложат Gnome 2.20 последний пресс-релиз намекает на возможную интег- (обещанный на 19 сентября). OpenOffice.org должен в рацию NEPOMUK, технологии социального семантичес- сентябре обновиться до 2.3, но Firefox 3.0, ожидаемый кого рабочего стола, в окружение KDE. Кроме стандарт- в октябре, вряд ли успеет попасть в любой из четверки ного обновления ядра и пакетов, говорится также о луч- главных дистрибутивов.

20 Linux Format Октябрь 2007 Distrowatch

Только серфистам Вопросы темпа Webconverger Дистрибутив Linux, нацеленный Yoper Linux 3.0 Согласно его разработчикам, только на web-серфинг. это быстрейший дистрибутив Linux на свете.

ы встречали их в интернет- оявившийся в Новой кафе: бросаете в прорезь Зеландии, он не только ском- Вмонетку, и открывается web- П пилирован и оптимизирован браузер, предоставляя вам неогра- для архитектур современных процес- ниченный доступ к богатствам web. соров: его ядро улучшено заплатками, Но попытайтесь сохранить файл или которые большинство остальных дист- запустить исполняемую программу, и рибутивов не приняли, опасаясь неста- обнаружите темную сторону этих так бильности. К тому же многие ключе- называемых интернет-киосков: они вые приложения и библиотеки пред- разработаны только для web-серфин- варительно загружаются в память для га, и любые другие действия, ожидае- Webconverger, дистрибутив, снижения времени запуска. Все это и Оригинальное оформление, тема мые от компьютера, запрещены. Хотя, разработанный для интернет-киосков, другие маленькие хитрости дают ощу- рабочего стола и обои создают интересное визуальное ощущение при ограниченной функциональности, основан на Debian Live. щение, что все на рабочем столе Yoper в Yoper 3.0. у них также есть важное преимуще- го поведения. Все обычные для рабо- происходит быстрее. ство: они надежны и практически не чего стола Linux комбинации клавиш Скорость – не единственный фак- для рабочих столов. требуют сопровождения. отключены. По части модулей расши- тор: часть самых свежих пакетов Yoper Начав как коммерческий дистрибу- Компания, разрабатывающая аль- рения, он поставляется с преднастро- поставляется через RPM, но его менед- тив, Yoper позднее превратился в сооб- тернативу с открытым кодом для более енными Flash Player 9 и MozPlugger для жер пакетов основан на Smart, системе щество разработчиков-энтузиастов, распространенных интернет-киосков, проигрывания файлов QuickTime. управления ПО с автоматическим раз- ведомых Тобиасом Гершнером [Tobias основанных на Windows – базирующа- Свободный демо-CD доступен для решением зависимостей и графической Gerschner], ради продолжения работы. яся в Великобритании Webconverger. загрузки на сайте компании. Для внед- оболочкой. Просматривая установлен- Первым стабильным релизом проекта Ее продукт, носящий то же имя, рабо- рения в интернет-кафе или другие ное и доступное ПО, вы увидите значи- за два года стал Yoper 3.0, вышедший тает как мгновенно используемый дис- коммерческие среды, Webconverger тельный массив приложений, библио- в июне 2007 после нескольких меся- трибутив Linux, запускаемый с CD. При предлагает настраиваемое решение с тек и драйверов (по последним подсче- цев бета-тестирования. Как и следует загрузке он автоматически настраивает дополнительными функциями: домаш- там, свыше 1500), и проприетарных, и ожидать после столь долгой задержки, интернет-соединение, затем открыва- ней страницей, возможностью печа- свободных, включая графические драй- новая версия весьма превосходит пре- ет Firefox. Браузер не имеет панели ти web-страниц, поддержкой ввода вера ATI и Nvidia, модули , дыдущие релизы проекта; теперь он инструментов и не может быть закрыт интернациональных символов и филь- Java, мультимедийные проигрыватели и доступен как установочный и LiveCD и или свернут мышкой, но предусмотре- трацией контента. кодеки, пакеты 3D-рабочего стола (Beryl обзавелся улучшенной функцией авто- на комбинация клавиш для закрытия http://webconverger.com и Compiz) и стандартный набор универ- матического обнаружения устройств. браузера, на случай его некорректно- сальных программ с открытым кодом www.yoper.com LXF

Экзотические дистрибутивы Хит-парад

Linux добрался до всех уголков Земли. Вот несколько наиболее экзотических дистрибутивов, поддер- 10 самых посещаемых страниц на DistroWatch.com живаемых правительствами, небольшими компаниями и сообществами энтузиастов. с 24 июля 2007 по 1 августа (среднее число визитов в день)

Дистрибутив Число визитов Основан на Mandriva с поддержкой бенгальского, на котором говорят в Ankur Bangla Бангладеш и районах Индии. www.bengalinux.org 1 PCLinuxOS 1,997 Основан на Debian; его амбициозная цель – полная поддержка всех BOSS GNU/Linux 2 официальных языков Индии. http://bosslinux.in Sabayon 1,937

3 Вьетнам, основан на Puppy Linux. Быстр, мал и полностью переведен на Ubuntu 1,935 Hacao Linux вьетнамский. www.hacao.com 4 OpenSUSE 1,191

Иран, основан на Slackware. Разработан для людей, интересующихся 5 Karamad 1,145 языком и культурой древней Персии. www.karamad.com 6 DesktopBSD 1,067 Основан на Debian, полностью локализован на непальский. NepaLinux 7 www.nepalinux.org Fedora 1,043 Основан на Debian, Монголия; правда, на момент написания проект уже 8 Debian 791 Soyombo Linux более двух лет дремлет. http://openmn.sf.net 9 PMagic 767

Основан на Debian, разработан в Индии; локализован на телугу, 10 Swecha GNU/Linux SLAX 601 государственном языке штата Андхра Прадеш. www.swecha.org Индия, основан на Debian, поддерживает говорящих на гуджарати. DistroWatch.com оценивает популярность дистрибутивов, Utkarsh www.utkarsh.org основываясь на числе посещений страницы каждого дистрибу- тива. Хотя это не дает представление о действительном числе Нигерия, коммерческий, основан на Red Hat. Поддерживает английский, Wazobia Linux установок, но показывает, какие дистрибутивы более популяр- хауса, йоруба и игбо. www.wazobialinux.com ны за определенный промежуток времени.

Октябрь 2007 Linux Format 2 1 LXF Интервью Луис Суарес-Поттс

Сбиваясь в стаю

Linux Format слегка удивился, повстречав в Монреале Луиса Суарес-Поттса. Что делает разработчик офисных приложений на конфе- ренции Libre Graphics Meeting?

Ранее в этом году Linux Format присутствовал на встрече Libre Graphics в Ecole Polytechnique de Montrеal в Канаде, в Интервью анонсе которой было заявлено: «по поводу участия: худож- ники и разработчики, приносите ноутбуки и покажите, что вы умеете (и чего пока что не умеете). Организуйте BOF- сессию по поводу своего любимого проекта или функ- ции». В отличие от большинства других конференций, где доминируют специалисты по продажам и маркетингу, главный организатор Луи Дежарден [Louis Desjardins] создал Libre Graphics Meeting как мероприятие для разработчиков: воздух прямо-таки гудел от идей взаимного обогащения открытых проектов – и не только тех, которые в первую очередь связаны с графикой. Мы поймали Луиса Суарес-Поттса [Louis Suarez-Potts], менеджера по развитию и главу сообщества ведущего открытого настольного приложения, OpenOffice.org (www.openoffice.org), с целью узнать его мнение о задачах, стоящих перед многими открытыми проектами, в особенности о реализации Open Document Format [ODF] и о преимуществах и недостатках корпоративного вклада в разработку программ с открытым кодом.

Linux Format: Чем заполнен ваш рабочий день, кроме вашего обширного и изнури- тельного вклада в OpenOffice.org? Луис Суарес-Поттс: Я являюсь связующим звеном с основной компанией, кото- рая поддерживает и спонсирует OpenOffice.org [OOo] – Sun Microsystems, а поми- мо этого с 2000 по 2007 работал старшим менеджером по развитию сообщества и Жаргон консультантом по стратегии Open Source в CollabNet (www.collab.net), софтверной компании, которая предоставляет хостинг OpenOffice.org. Недавно знакомился с BOF проблематикой «инфономики», или политэкономии информации. Некоторые из Сокращение от пословицы «Одной моих публикаций и работ можно найти на http://homepage.mac.com/luispo/. Один из породы птицы в стаю стремятся моих блогов посвящен OpenOffice.org и Open Source: http://ooo-speak.blogspot.com, сбиться» [в оригинале – “Birds of a feather flock together” – прим. пер.] в другой – культурному критицизму. компьютерных кругах обычно назы- ваются неформальные дискуссии по LXF: Второй вопрос может показаться нахальным, но зачем вы приехали на Libre интересам, возникающие спонтанно, Graphics Meeting? Выбор этой конференции выглядит довольно странным для того, без предварительного плана. кто так плотно занят более… э-э… Office’ной стороной приложений...

22 Linux Format Октябрь 2007 Луис Суарес-Поттс LXF Интервью Nick Veitch ЗДРАВЫЙ СМЫСЛ БИЗНЕСА «В мире Open Source вы ничего не теряете, рекламируя чей-то чужой продукт».

Октябрь 2007 Linux Format 2 3 LXF Интервью Луис Суарес-Поттс

ЛСП: По двум причинам. Во-первых, это конференция для разработчиков. И с моей точки зрения, использование ODF в Scribus и в других сходных прило- Большинство участников так или иначе связаны с открытой графикой. И, конеч- жениях весьма желательно, хотя и не столь важно, как усовершенствование функ- но же, есть открытый формат документов. Хартия ODF по большей части касается ции импортирования. Кроме всего прочего, в Libre Graphics Meeting есть отличная документов, но ведь графика тоже используется в презентациях и т.п. Проявлен вещь: публикация превосходного сборника. Он показывает, как хорош Scribus (Луи большой интерес, при большой активности, насчет того, как OpenOffice может Дежарден сам участвует в этом проекте) и насколько серьезны усилия, вложенные перерасти рамки традиционного офисного пакета, чтобы включить вещи, весьма в это мероприятие. интересные с творческой точки зрения, и решить проблему использования ODF в других программах, не входящих в этот пакет. Например, Scribus; если вы можете LXF: Если расширить функциональность программ с открытым кодом, это утащит импортировать свой текст в формате ООо, почему бы вам также не сохранять доку- большее число потенциальных пользователей от проприетарных программ? менты и не разделять доступ к ним как к документам с открытым кодом, по типу ЛСП: Я ни на секунду не предлагаю ООо стать боргом в мире программных про- ODF? Ведь преимущество вполне понятно, если, например, вам надо постоянно дуктов, сжирающим все! [Borg – фантастическая раса киборгов в Star Trek, грубая обновлять страницу, используя данные из электронной таблицы. сила, сопротивляться которой бесполезно, – прим. пер.] Отличный пример страте- гии Open Source по части взаимодействия и дружелюбия к пользователю – такая LXF: А вторая причина? простая вещь, как всплывающее окно в ООо с советом пользователю обратиться ЛСП: Это никак не связано с конкуренцией – никто из нас не конкурирует с каким- к Scribus, если способ форматирования файла пользователем подсказывает про- то «плохим парнем»; в мире Open Source всем надо держаться вместе. Каким бы грамме, что лучше было бы использовать приложение DTP. Точно так же и с гра- открытым проектом ты ни занимался, у тебя есть своя задача, но все наши дей- фикой – таким же образом пользователям ООо будет сообщено о возможности ствия нацелены на одно – предложить конечному пользователю выбор удобного использования GIMP, если они попытаются нарисовать в ООо нечто более сложное, ПО. Само понятие сотрудничества обязано выходить за рамки любого открытого чем квадрат. проекта. Общий формат важен, но не менее важны такие вещи, как сходство техно- Все это стимулирует пользователей. Многие – если не большинство – пользо- логии, архитектуры, кода – все это важно. Никто не собирается покупать такие при- вателей компьютера никогда даже не пытались выяснить, какая программа боль- ложения, как KOffice или OpenOffice.org, но ше подходит для выполнения их задач: они пользователи могут выбрать одно из прило- ПЕРЕРАСТИ МЫШЛЕНИЕ XX ВЕКА просто обходятся тем, что есть под рукой жений с открытым кодом как альтернативу и поставлено вместе с компьютером (или вездесущему Microsoft Office в силу не толь- «Я ни на секунду не с пакетом поддержки, если речь идет о ко его функциональности, но также способа пользователях из крупного бизнеса), вмес- взаимодействия с другими программами на предлагаю ООо стать то того, чтобы оценить другие варианты. их рабочих столах. Боргом среди программ, В мире Open Source вы ничего не теряете, рекламируя чей-то чужой продукт – хорошо LXF: В этом ведь и есть цель Open Source, сжирающим все.» все то, что расширяет сферу пользователей не так ли? Это – одно из ключевых отличий открытого кода. программ с открытым кодом от проприетарных программ. ЛСП: Надо думать! Гоббсовский идеал [Томас Гоббс – английский философ, чьи LXF: И какую реакцию от других проектов вы получаете, когда говорите о подоб- идеи легли в основу политической философии, – прим. пер.] (что неограничен- ном взаимодействии? ная конкуренция хороша для бизнеса) несовместим с идеалом Open Source; я не ЛСП: Большинству из них это по душе. Очень важно работать вместе над про- говорю, что все разработчики должны вместе трудиться над каждым проектом, блемой совместимости. Вчера мы кое с кем из команды ООо общались с парнями это нереально; зато действительно необходимо сотрудничество с другими проек- из KOffice, обменивались с ними опытом по усовершенствованию совместимости тами, умножающее наши силы для достижения общих целей. Вот одна из причин вообще и говорили о потребностях вокруг ODF. И о том, как лицензировать техно- сотрудничества ООо со Scribus: Scribus весьма разборчив относительно шрифтов и логию – весьма важная тема в связи с выходом GPL 3. требует соответствия спецификациям, значительно более строгим, чем у большин- ства других приложений. Обе команды обсудили возможность создания библио- LXF: Как вам кажется, не вносит ли участие спонсоров некий оттенок обязаловки теки шрифтов («библиотеки» в старом смысле: репозитория), соответствующей для участников подобных конференций? стандартам Scribus и в то же время способной работать с другими совместимыми ЛСП: Все зависит от организации. Это может быть сложно с этической точки зре- приложениями, например, ООо. Это поможет не только Scribus и OOo, но также и ния: одно дело, когда вас угощает роскошным обедом некая коммерческая группа, пользователю. выражающая полное одобрение целей Open Source; однако более высокий уровень такого участия может подразумевать определенное коммерческое давление, Искусство в открытом коде не всегда уживающееся с академичес- кой природой дискуссии. Возможно, для Blender Krita компаний-спонсоров было бы разумнее За несколько лет Blender прошел путь от закрытого Лауреат премии Академии KDE в номинации Лучшее приложение тратить свои средства не на организа- коммерческого приложения до одного из самых обсуждаемых 2006 года, Krita – это приложение для создания и редактирования цию обедов, а, например, на обучение 3D-приложений в мире, и теперь он распространяется свободно. изображений для KOffice, часть офисного пакета KDE начиная с менеджеров проектов работе в стиле www.blender.org версии 1.4. http://koffice.org/krita/ меньшего чинопочитания… GIMP Scribus Понятно, что многие компании ощу- GNU Image Manipulation Program – наиболее широко Названный Newsforge «одним из убойных приложений для щают наличие некоего конфликта меж- используемый свободный графический пакет, работающий на Linux», Scribus представляет собой настольную издательскую ду их бизнес-моделями и целями Open разных платформах, включая GNU/Linux, Windows и Mac OS X, систему, которая работает под Linux,, Mac OS X, OS/2 и Source; но все же грань между спонсо- и имеющий возможности расширения благодаря модульной Windows 2000/XP. www.scribus.net ром и участником все более размывает- архитектуре. www.gimp.org ся, по сравнению с тем, что было рань- The Open Clip Art Library ше – Novell, можно поспорить, попада- Inkscape Цель этого проекта – создание архива открытого векторного ет в обе категории: с одной стороны, Лидер среди свободных программ векторной графики с клип-арта в формате SVG, предоставляемого бесплатно и обеспечивает финансовую поддержку функциями, подобными Adobe Illustrator, Macromedia Freehand являющегося достоянием общественности. Содержит более 12 и CorelDraw. Используя SVG в качестве родного формата 000 работ более 700 художников, доступных для скачивания. конференций, с другой стороны – одно- документов, он работает под Linux/Unix, Windows и Mac OS X. www.openclipart.org временно открывает код для сообще- www.inkscape.org ства. Должны быть четкие этические

24 Linux Format Октябрь 2007 Луис Суарес-Поттс LXF Интервью

границы, однако кто решает, где именно провести эту черту? Большинство корпораций готовы финансировать определен- ные мероприятия, однако организаторам следует быть осто- рожными, иначе кто-нибудь задаст скользкий вопрос: «Во сколько обходится заинтересованность разработчика?» По моему мнению, некоторые компании не выступают в роли спонсоров в прямом смысле этого слова – они готовы вкладывать ресурсы, поставляя людей для работы в областях программирования, лежащих в пределах их собственных раз- работок, в ущерб прочим областям, и не работают с сообще- ствами, не занимающимися разработкой – то есть с другими компаниями, заинтересованными именно в тех областях Open Source, куда и вкладываются эти спонсорские компании. А те другие стороны в конце концов получают доступ к коду, пото- му что все возвращается к исходному моменту, но не получа- ют понимания причин, по которым код стал именно таким.

LXF: Значит, между бизнесом и сообществом непреодоли- мая грань? ЛСП: Вовсе нет. В случае OOo, где-то в 2002-3 г. вопрос совместимости с Mac OS X решался широко распределен- ной международной группой, состоящей из людей, которые вместе работали над одной задачей – может ли быть лучший пример сообщества? Хорошо бы было побольше таких ком- паний, как Novell, в полном масштабе работающих с сооб- ществом, а не только нацеленных на освоение рынка. Novell является спонсором конференции OOo Con, и это прекрасно, но лучше бы использовать эти деньги не на круизы, а на помощь с контролем качества, локализацию и обучение, и тогда получаемая отдача будет намного лучше и для Novell, и для сообщества в целом. Люди думают, что это разделение существует из-за самой природы спонсорства ЛСП: Я довольно скептически отношусь к тому, как это работает в рыночных отно- или пожертвований разных участников. Например, IBM не может внести большего шениях, но свои преимущества у этого определенно есть. Microsoft тратит больше вклада в развитие ООо, потому что ООо конкурирует с некоторыми из ее продуктов; денег на подбор разработчиков, чем, например, Sun. Однако вам не нужны рабы или зачем Adobe содействовать открытому проекту, который станет конкурентом Microsoft’а [в оригинале – Microserfs, дословный перевод – «Рабы Майкрософта», его продуктов, поставляющих солидную часть его доходов? роман английского писателя Дугласа Коупленда, – прим. пер.]: как наниматель, вы заинтересованы в поиске разработчиков, предпочитающих технологическую LXF: Сложно ли координировать проект, в котором участвуют как добровольцы, так и социальную свободу, которую дает открытый код – пиар играет важную роль в и оплачиваемые сотрудники? привлечении новаторов и интересных людей; успехи Sun в привлечении множества ЛСП: В классической корпоративной структуре есть отдел маркетинга, который хороших разработчиков на данный момент очевидны. говорит: «Вот что нужно пользователям», потом эта информация синтезируется и В противовес тому, что я говорил раньше о слишком большом влиянии пред- объясняется инженерам; потом инженеры говорят: «Вы шутите!» Так вот, в мире приятия на проекты, связанные с их моделью извлечения прибыли, будет правиль- Open Source это самое «Вы шутите!» формулируется куда более резко, потому что но сказать, что привлечение стремящихся к получению прибыли компаний может разработчики-добровольцы могут просто взять и уйти, если у них пропал интерес к дать важное направление открытым проектам. Посмотрите на Debian… делу – они хотят заниматься тем, что представляет для них больший интерес с точ- ки зрения технологии. Это – классический либеральный подход (в смысле свободы, LXF: Debian? Ха-ха! а не политики), и в наши дни открытым кодом по большей части руководят люди, ЛСП: Можете смеяться! Debian – эксперимент по демократии, пошедшей вразнос, привыкшие работать именно в таком стиле. вплоть до амока [амок – приступ неудержимой ярости или безумия, – прим. пер.]. Когда компания выделяет определенное количество разработчиков для работы в И он этим очень гордится: это же так радикально; но подобный разгул демократии определенной области, могут возникнуть трения, поскольку разработчики не в вос- может отвратить деловые круги от Open Source, поскольку способен препятство- торге от того, что компания распределяет ресурсы или диктует, над какими частями вать прогрессу. Разработка не происходит в вакууме; в бизнесе, чтобы запустить проекта следует работать. Эти области не всегда привлекательны для разработчиков, продукт, нужен кто-то, чья ответственность – говорить: «вот в этом направлении потому что не дают больших возможностей для инноваций. Многие разработчики не мы будем двигаться» и «вот чем мы займемся после!» – потому-то Марк Шаттлворт хотят просто изготовлять открытые эквиваленты для функций, уже предоставленных (руководитель Ubuntu, основанного на Debian) столь важен для Linux. программами компаний вроде Microsoft и Adobe; ими движет желание реализовать что- нибудь потрясающее. Если специалисты по маркетингу не считают это стоящим, или LXF: Интересно отметить, что, хотя ODF напрямую не поддерживается в Windows группа изучения спроса изначально не увидит здесь изюминки для конечного пользо- Office 2007, Microsoft финансирует проект ODF add-in for Word на SourceForge для вателя, то коммерческие соображения приведут к ограничению ресурсов, выделенных создания модуля расширения Microsoft Office, свободно доступного по лицензии на развитие новых функций, а для разработчиков все закончится тем, что им придется BSD. Сколько компаний понимают это? работать над интересными для них областями исключительно безвозмездно, без вся- ЛСП: По мере распространения Open Source, компании начинают понимать, что к кой спонсорской помощи. Многих разработчиков Open Source – и оплачиваемых, и чему, и поворачиваться в верном направлении. Стоит им осознать, что больше не добровольцев – вероятно, огорчает такая ситуация, но они понимают, что на данный придется делать все свои исследования в рамках своей компании, выиграют все – момент дела обстоят именно таким образом, и как-то мирятся с этим. если они начнут финансировать открытый проект, это станет подобно открытию дочернего бизнеса, но только с намного меньшими рисками и во многих случаях LXF: Как вы считаете, аспект пиара в разделении кода со всем открытым сообще- куда более окупаемого. LXF ством является серьезным мотивом для этого?

Октябрь 2007 Linux Format 2 5 Битва за лучший Ubuntu Битва за лучший

«Gutsy Gibbon» [«Бесстрашный Гиббон»] почти вышел – удержит ли команда Ubuntu звание популярнейшего в мире дистрибутива? Майк Сондерс разберется...

истрибутивы приходят и уходят, как времена года. WinLinux, Итак, каким же образом команда Ubuntu и ее родитель – компания AlphaNet, Xpresso и многие другие возникали на наших – объединяет все эти элементы и издает новый релиз дист- радарах, хвастались новыми возможностями и обещали рибутива? На следующих семи страницах мы будем вникать в процесс Д нанести имена своих создателей на скрижали истории развития Ubuntu, анализируя предстоящий релиз Gutsy Gibbon (7.10) Linux. Ну и где они сегодня? Что произошло? Почему разговор сейчас и прослеживая его прогресс от возникающих идей до исполняемого идет только о Fedora, OpenSUSE, Ubuntu и Ко? кода. С помощью ключевых фигур среди хакеров Ubuntu мы поймем, Ответ прост: сообщество. Галдеж о так называемых революцион- что необходимо для успеха релиза – даже если вы не используете этот ных функциях может вызвать пару недель ажиотажа, но не создаст дистрибутив, вы окунетесь в самую гущу процессов и людей, собираю- щих новую версию Linux. «У популярности свои проблемы: прежде всего, нельзя ронять планку.»

«долгоиграющий» дистрибутив. Так многие из якобы перспективных дистрибутивов, которых мы нагляделись за эти годы, в конце концов ушли в небытие, зачахнув без поддержки разработчиков и участия сообщества. Но команда Ubuntu все это получила. Они взяли за основу хорошо отлаженную базу Debian, отшлифовали ее, приспособив к пользова- телю, и поддерживают ее с помощью исключительно работящего и живого сообщества. Сила Ubuntu в том, что он редко пытается вводить пионерские функции, изменяющие мир Linux – он довольствуется стан- дартными утилитами конфигурации Gnome и отстает по части вызыва- ющих слюнки украшательств вроде Compiz. И тем не менее, это один из самых популярных дистрибутивов в мире. У популярности есть свои проблемы: прежде всего, нельзя ронять планку. Группа Ubuntu жонглирует обширным массивом потребностей пользователей, решая, какие вещи заслуживают включения в новый релиз, и исправляя столько ошибок, сколько позволяют наличные люд- ские ресурсы. Трудные решения должны приниматься, споры пресекаться – а накопившиеся корзины с грязным бельем вытряхиваться в процессе открытой разработки.

26 Linux Format Октябрь 2007 Битва за лучший Ubuntu

Октябрь 2007 Linux Format 227 7 Битва за лучший Ubuntu Зарождение Перед началом пиршества разработки хакеры Ubuntu должны решить, какие функции следует включить.

редставьте себя разработчиком Ubuntu: вы только что открыли дверь последнему, сияющему, новехонькому Мои любимые функции Gutsy: релизу, и пользователи Linux по всему миру азартно его П устанавливают. Вы бросаете написание кода и исправ- Марк Шаттлворт ление ошибок, созрев для вполне заслуженного отдыха – но не тут-то было! Уже пора вгрызаться в следующую версию. Ubuntu следует шес- «Я разрываюсь между Compiz, предоставляю- тимесячному графику разработки (с единственным отклонением в вер- щим замечательное многомерное окружение сии 6.06 из-за проблем со стабильностью), поэтому разворот к новым рабочего стола, и новым Ubuntu Mobile для функциям выполняется очень резко. интернет-планшетов, позволяющих вам носить В команду разработчиков Ubuntu входят и оплачиваемые, и добро- Сеть в кармане.» вольные кодеры: первые трудятся над дистрибутивом полный рабо- чий день и нанимаются Canonical, а вторые подключаются, когда сами могут. Несмотря на этот «гибрид» платной и бесплатной работы, между двумя группами практически не существует трений, с тех пор как в про- гие разработчики Canonical занимаются проектами по своим же идеям, шлом Canonical наняла некоторых разработчиков Debian. Для многих но некоторые решения мы принимаем “сверху”». Так что добровольные кодеров участие в сотворении Ubuntu обеспечивает дальнейшую карь- участники могут облюбовать себе для разработки функции, которые еру в области оплачиваемого создания дистрибутивов. им нравятся, а Canonical придаст определенную направленность своей После отправки нового выпуска Ubuntu на зеркала снова запускает- оплачиваемой команде. ся процесс отбора функций для следующей версии. Мэтт Циммерман, Предложения по функциям поступают со всех углов мира Linux: технический директор Ubuntu и председатель Технического совета, некоторые дополнения берутся из других дистрибутивов, некоторые поясняет: «Идеи предлагаются сообществом Ubuntu и самими раз- зарождающиеся технологии просачиваются из случайных сайтов на работчиками. Если разработчику нравится идея, он воплощает ее в SourceForge, а иные являются просто классными примочками, которые технической спецификации, которая затем может стать основой для пригодятся в следующем релизе Ubuntu. Когда полный список функ- проекта». ций готов, менеджер по разработке (в Gutsy это Скотт Джеймс Ремнант Идеи будущих функций накапливаются на Launchpad, сайте под- [Scott James Remnant]) отправляет его в рассылку разработчиков держки разработчиков Canonical – для Gutsy они перечислены на (http://tinyurl.com/2cxfev), и начинается кодинг... https://launchpad.net/ubuntu/gutsy/+specs. Некоторые идеи обсужда- ются разработчиками лично при встречах. Циммерман продолжает: «Основная активность проявляется на саммите разработчиков Ubuntu, перед началом каждого цикла выпуска. Спецификации рассматри- вает группа технических экспертов для оценки их правильности и жизнеспособности». Приоритеты! Приоритеты! Каждой идее новой функции присваивается приоритет (высокий, сред- ний или низкий), зависящий от спроса на нее, ее влияния на общую стабильность дистрибутива и от того, уложится ли ее выполнение в срок. Launchpad также постоянно информирует о процессе работы над новой функцией: разработчики могут видеть, находится ли процесс в самом начале, хорошо ли продвинулся или готов к бета-тестированию. Здесь же сообщается, кто работает над каждым проектом. Но как распределить усилия разработчиков? Слово Циммерману: «Canonical определяет, какими проектами займутся ее разработчики, а http://launchpad.net помогает разработчикам в организации и расстановке сообщество само решает, на что тратить свое время. На практике, мно- приоритетов новых функций Gutsy.

Повышаясь в ранге

Существует два типа разработчиков Ubuntu: MOTU и Core. Первые является хорошие пакеты для Universe, разработчик может просить Технический частью команды “Masters of the Universe [Хозяева Вселенной] ”, это боль- совет Ubuntu и Совет сообщества присоединить его/ее к группе Core. Если шая группа хакеров, поддерживающих программы в репозиториях Universe разработчик проделал хорошую работу: создал надежные пакеты, имеет и Multiverse. Universe охватывает пакеты, которые не считаются достаточно сильные коммуникативные навыки и обширные знания Linux, его/ее при- важными для базовой системы, но тем не менее востребованы пользова- нимают в группу Core, работающую над критичными пакетами в репозито- телями. Новые разработчики присоединяются к группе MOTU, упаковыва- риях Main и Restricted (т.е. предназначенных для дисков Ubuntu). Ubuntu ющей программы в Deb-пакеты Ubuntu и поддерживающей исправление их имеет свой кодекс поведения: разработчики обязаны взаимно оказывать ошибок и проблем безопасности. Показав свою способность создавать друг другу помощь, уважение и сотрудничество.

28 Linux Format Октябрь 2007 Битва за лучший Ubuntu Время кодировать «Создание дистрибутива – это 1% вдохновения и 99% потогонного труда» – так мог бы сказать Томас Эдисон, живи он во времена Linux...

отя Gutsy сейчас [на момент написания статьи, – прим. пер.] находится посереди кипучего процесса разработки, общие цели для него уже установлены, как описано выше. Х Ключевые функции и поправки команда Ubuntu надеет- ся включить в 7.10, но, как всегда бывает, при релизе дистрибутива некоторые из них могут отпасть, если они не заработают или не будут достаточно стабильными на дату выпуска!

Рабочий стол Gutsy поставляется с Gnome 2.20, а его Kubuntu-вари- ант – с KDE 3.5.7. Желающие получить представление о KDE 4 смогут заодно установить его релиз-кандидат. Gutsy впервые включит Compiz Fusion, обеспечивающий умопомрачительные 3D-эффекты рабочего стола на поддерживаемых графических чипах. Пользователи смогут вернуться к стандартному менеджеру окон за пару щелчков мыши. Кроме того, в работе находится новый графический инструмент настройки экрана (разрешение, количество цветов и т.д.) на базе GTK. X.org X, оконная система, претерпит несколько изменений: будет включена версия 7.3, обеспечивающая горячее подключение устройств отображения. Одна из преследуемых здесь целей – «пуленепробивае- мые X», то есть настройки X’ов при возникновении проблем спокойно возвращаются к стандартным видеорежимам, а не обрушиваются с кучей вывода в командную строку. В интересах всех новичков Linux в мире, мы одобряем эту функцию, с высокой Башни LXF! Win-модемы Да, эти противные программные модемы, наиболее широко распространенные на ноутбуках или розданные бесплатно с ботчиков начинают шалить нервы – ведь сайты новостей и журналь- Любуйтесь! пакетами широкополосной связи, будут поддерживаться. По крайней ные статьи (одна из них перед вами!) принимаются обсуждать новые 3D-эффекты мере, некоторые из них. Gutsy обеспечит доступ к некоторым «огра- возможности, и неприятно думать о разочарованиях, последующих, рабочего стола в действии, ниченным» (restricted – то есть не совсем свободным или открытым) если при окончательном раскрое релиза выкинется что-то важное. благодаря драйверам, чтобы помочь людям выйти в сеть. Циммерман описывает эту проблему как интенсификацию разработ- интеграции Безопасность AppArmor, система безопасности, позволяющая адми- ки: «Главное – чтобы множество параллельных проектов шли голова к Compiz Fusion. нистраторам блокировать используемые программы и ресурсы, будет голове и мы успели бы сделать все запланированное». доступна как опциональное дополнение. Это система, используемая в Novell SUSE; Red Hat придерживается SELinux. Кодировочная лихорадка Свободный Flash Некоторые кодеры Ubuntu изучают возможность И пошло кодирование! Сборщики пакетов из команд Core и MOTU хва- включения свободного Flash-плейера. Сейчас наиболее приемлемый тают новейший исходный код тысяч программ, добавляют скрипты вариант – это несвободный плейер от Adobe, но команда Ubuntu при- компиляции Deb-пакетов и генерируют их в духе Ubuntu. Дистрибутив сматривается к – свободной альтернативе. Однако, Gnash по- в это время подобен водовороту, постоянно бурлящему и меняюще- прежнему отстает от проприетарного плейера. муся под влиянием разработчиков и перестроения критических зави- Свободный как свобода В техническом обзоре заявлена возможность симостей (например, библиотек Gnome и KDE), поэтому сборщикам «не ограниченной» (non-restricted) установки Gutsy, то есть установки с CD без копирования несвободных компонентов на ваш жесткий Ключевые фигуры Ubuntu диск. Считается, что это более разумный под- ход, чем создание отдельного дистрибутива Уважаемые люди в команде хакеров коде дистрибутива, удостоверяясь, что они излучали положительные волны. для сторонников чистоты Open Source и сво- Ubuntu: процессам разработки и выпуска не Трой Соботка [Troy Sobotka] Лидер бодного ПО. Он будет называться . Марк Шаттлворт [Mark Shuttleworth] препятствуют крупные ошибки, прения группы художников. Его команда Варианты Разработчикам, занимающимся Мультимиллионер, совершивший разработчиков или чрезмерные запро- работает над темами и иконками, интернет-планшетами и другими небольши- вылазку в космос; сделал себе состоя- сы функций. чтобы Ubuntu выглядел свежо (ну, то ми устройствами, будут предложен новый ние, основав Thawte, а теперь он само- Брайан Мэррей [Brian Murray] есть, так свежо, как может выглядеть вариант Ubuntu: Mobile and Embedded Edition. провозглашенный «Пожизненный Главный спец по ошибкам и менеджер коричневая тема) и гарантирует, что Кроме того, проект Ubuntu Server получит Добрый Диктатор». Он задает общее команды Ubuntu QA, ответственной за дистрибутив визуально гармоничен. направление проекта и, как бывший то, чтобы «задавить» побольше оши- Мэтью Ист [Matthew East] Наблюдает новую команду от Canonical. разработчик Debian, также вносит свой бок в дистрибутиве перед релизом. за документацией, которая помогает вклад в некоторые технические реше- Кори Бургер [Corey Burger] Глава делать дистрибутив более доступным, Таковы текущие цели особенностей Gutsy, и ния. маркетинговой команды; отвечает за и обеспечивает переводы на множест- при нынешних темпах развития уже видится, Мэтт Циммерман [Matt Zimmerman] контакт с группами СМИ по информа- во языков. что большинство из них войдут в окончатель- Технический директор. Он заботится о ции о релизах и обеспечивает, чтобы ный релиз. На этой стадии у ведущих разра-

Октябрь 2007 Linux Format 2 9 Битва за лучший Ubuntu

нужно постоянно следить за ним и убеждаться, что их родные проекты синхронизированы. Допустим, ответственный за сборку графического Мои любимые функции Gutsy: инструментария GTK собрал новый Deb-пакет со свежей версией; тогда сборщики GTK-приложений должны гарантировать, что их продукты Даниэль Холбах будут с ним совместимы и запускаться без проблем. Хотя Ubuntu и построен из пакетов, часть из них – не просто отдель- «Compiz. Я уже несколько недель его исполь- ные программы: они существенно преобразуют систему. Например, зую, и это изумительно, как плавная анимация скрипты запуска (инициализации) существуют в Deb-форме, но их и оконные эффекты создают абсолютно новый содержание и действия могут внести радикальные изменения в рабо- стиль и характер работы. Также ожидаю мно- ту Ubuntu. То же относится к пакетам ядра, способным включить или жества улучшений и хороших вещей в Ubuntu Server (AppArmor, EBox и т.д.) и просто замеча- отключить критические части системы (например, драйверы оборудо- тельный Ubuntu Mobile.» вания). Как объясняет Циммерман, такие изменения тщательно прове- ряются: «Существенные или спорные изменения обычно неофициаль- но обсуждаются сообществом, и проблема решается на основе консен- суса. Если консенсус не достигается, окончательное решение выносит Технический совет Ubuntu». консольный почтовый клиент или пакет-гигант типа OpenOffice.org. Разработчики постоянно выгружают свои пакеты с новыми верси- Так что группа Ubuntu должна находить баланс между работой с «при- ями программ или исправлений, и вся эта работа открыта для желаю- текающими сверху» (от разработчика) исходными кодами и целями щих поучаствовать. Многие рьяные фанаты Ubuntu стремятся «догнать дистрибутива. Циммерман пишет: «Труднее всего, когда проект связан ветвь разработки» – это жаргонное выражение для постоянного обнов- с деятельностью, протекающей вне Ubuntu; мы часто зависим от свое- ления до самых последних версий пакетов. Занятие рискованное, но временного окончания работ в сторонних открытых проектах.» Если энергичные пользователи отлавливают ошибки и помогают с ними разработчик программы испортил ее и добавил вагон ошибок, сборщик покончить. Возможно, вы слышали термин «триаж» в применении к пакетов Ubuntu должен решить, принять ли новую версию или оставить ликвидации ошибок, но не знаете, что он означает. Когда пользователи старую (и более устойчивую), рискуя нарваться на протест жадных до представляют отчеты об ошибках в Ubuntu, то ошибки идут на триаж: новинок пользователей. А иногда, наоборот, сборщики Ubuntu отча- определяется степень их серьезности и что нужно с ними делать. янно ждут новых функций, а таймер «релиз-каждые-шесть-месяцев» Но есть одно «но». Большинство разработчиков Ubuntu заняты тикает у них в ушах. превращением в пакеты программ других хакеров, будь то небольшой Сборка пакетов и тестирование Процесс сборки пакетов с новым ПО, исправления ошибок и добав- ления изменений в базовую систему продолжается от одного до двух месяцев, прежде чем команда сможет показать что-то конкретное миру. Каждый пользователь Ubuntu может скачать последние вер- сии пакетов и протестировать их на любой стадии, но для упрощения ситуации в более широком мире пользователей Linux, команда Ubuntu выкладывает текущий вариант дистрибутива, отражающий прогресс в работе над ним. Как и окончательный релиз, это автономный, инстал- лируемый CD, но он предназначен только для разработчиков – хакеры Ubuntu отговаривают случайных пользователей от его применения. Каждый дистрибутив имеет кодовое имя для серии таких вариатов: в Feisty Fawn (7.04) они назывались “Herd” [Стадо], а нынешний Gutsy использует кодовое имя “Tribe”[Племя], так что в процессе разработки команда плодит Tribe 1, Tribe 2..., демонстрируя новые возможности и собирая отчеты об ошибках. Эта обратная связь жизненно важна для Creative Commons image, RAMONRAMON, http://tinyurl.com/2rz7v5 дистрибутива: она позволяет определить, с чем все хорошо, что требу- ет доработки и что следует отставить ради соблюдения сроков. Затем, примерно за шесть недель до окончательного релиза, без- удержная разработка останавливается: новые функции уже не доба- вишь, радикальные изменения делать некогда. Пришла пора набрасы- ваться на ошибки и делать релиз-кандидаты...

Хакеры Ubuntu генерируют идеи и коды на саммите разработчиков в Севилье.

Цикл выпуска: временная шкала

0 Выпуски текущих снимков 6 ркала МЕСЯЦ МЕСЯЦ Выходы снимков (snapshots), основная часть графика разработки, как прави- Анонс релиза ло, происходят примерно раз в три недели. События здесь планируются в Релиз-кандидаты Наброски новых идей начале выпуска, но точные даты могут меняться из-за ошибок или изменения

Осуществление разработки набора функций. Постановка задачи по функциям Финальная отправка на зе

30 Linux Format Октябрь 2007 Битва за лучший Ubuntu

Собери себе Ubuntu Вот вам способ создать свой индивидуальный вариант Ubuntu, включающий только нужные вам пакеты – так же, как мы делаем это для DVD Linux Format.

/ubiquity/ е так уж трудно пересобрать Ubuntu, если вы понимаете принцип работы дистрибутива и не /ubuntu-live/d боитесь командной строки. Создание индивидуального варианта – это также отличный способ /user-setup/d прочувствовать процесс сборки дистрибутива: вы поймете все сложности, обычно скрытые в END Н релизе Ubuntu за завесой Gnome. Нижеследующее руководство покажет, как извлечь Ubuntu sed -f /tmp/sedscript < ubuntu-rebuild/casper/ CD, добавить и удалить необходимые вам пакеты, а затем вновь собрать его воедино. Это один из мето- filesystem.manifest > ubuntu-rebuild/casper/filesystem. дов, который мы используем для создания супер-мега-расширенной версии Ubuntu на LXF DVD (например, manifest-desktop в LXF94 и LXF88)! Имейте в виду, что вам потребуется по крайней мере 3 ГБ свободного места на диске. 6 Ремастеринг Теперь нам надо пересобрать образ файловой систе- 1 Получение ISO-файла ва, как будто именно его мы и запустили. За это надо мы SquashFS – это займет до получаса... Для пересборки Ubuntu нужен образ Desktop CD (тот, сказать спасибо маленькому инструменту chroot: он mksquashfs ubuntu-source/ ubuntu-rebuild/casper/ что запускается в Live-режиме, а не Alternate CD на меняет восприятие корневой файловой системы, и filesystem.squashfs -noappend базе командной строки). Вы можете скачать послед- можно «притвориться», что вы находитесь в другом Далее обновим контрольную сумму MD5 для под- нюю стабильную версию с http://releases.ubuntu.com/ дистрибутиве. Введите следующие команды – первая тверждения целостности диска: feisty/. Скачайте образ ubuntu-7.04-desktop-i386.iso, из них настраивает сетевое соединение внутри файло- (cd ubuntu-rebuild && find . -type f -print0 | xargs -0 запишите его в свою домашнюю директорию и пере- вой системы Ububntu: md5sum > md5sum.txt) именуйте в feisty.iso. (Это добрых 700 МБ, и тем, кто cp /etc/resolv.conf ubuntu-source/etc/ И наконец, команда mkisofs создат нам сияюще- не обладает терпением святого, здесь не обойтись без chroot ubuntu-source новый ISO-образ: широкополосного интернет-соединения!) Теперь вы находитесь внутри каталога ubuntu- mkisofs - -V “My Modified Ubuntu” -cache-inodes -J -l source, как если бы он был корневым (/). Вы запус- -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul- 2 Монтирование образа тили тот же дистрибутив, который идет на Live CD, boot -boot-load-size 4 -boot-info-table -o newbuntu.iso Образ CD нужно подмонтировать к файловой системе. но теперь его можно изменять! Я не рекомендую уда- ubuntu-rebuild Откройте терминал и, переключившись на админист- лять пакеты, если вы абсолютно точно не уверены, Et voila: Если все прошло «на ура», то вы теперь ратора (sudo bash), введите следующее: что делаете; некоторые являются зависимостями для имеете файл newbuntu.iso, который можно прожечь mkdir /mnt/loop критичных системных пакетов. Но вы можете начать на CD-R (или, если он больше 700 МБ, на DVD). Но mount -o loop feisty.iso /mnt/loop добавление программ с помощью apt-get – например, помните, что если образ больше 2 ГБ, у вас будут про- Теперь содержимое feisty.iso доступно в /mnt/loop. чтобы добавить AbiWord в вашу систему: блемы с запуском. Если же он меньшего размера, то Нам надо скопировать его в нашу файловую систему, apt-get install abiword записывайте его, загружайте и наслаждайтесь! так что создайте директорию и скопируйте все содер- Программы, добавленные на этой стадии, будут жимое, вот так: присутствовать на финальном CD/DVD, когда мы его mkdir ubuntu-rebuild пересоберем. Так что вы можете добавить Xfce, если rsync -ax /mnt/loop/. ubuntu-rebuild это ваше любимое окружение рабочего стола, или После этого директория ubuntu-rebuild будет пакет ‘’build-essential’’, если вам нужен GCC и иже с содержать файлы с диска. Теперь можно отмонтиро- ним, готовое к запуску. Помощь собратьям вать ISO-образ (umount /mnt/loop). 5 Обновление Вы не фанат Ubuntu в режиме 24х7, но стремитесь 3 Закончив, наберите exit, чтобы покинуть файловую Подготовка помочь вашему любимому дистрибутиву? Как прави- Далее необходимо распаковать сжатую файловую систему Ubuntu и вернутся в свой обычный дистри- ло, большинство проектов ищет кодеров, сборщиков систему с CD Ubuntu; для этого используем SquashFS, бутив. Теперь надо сгенерировать список файлов, пакетов, тестеров и людей для работы с документа- представленной в Ubuntu в пакете squashfs; вам также имеющихся в обновленном образе Ubuntu. Для этого цией, как описано на главной странице Ubuntu – при- необходимо установить squashfs-tools. Сжатая файло- наберите следующую команду-монстр: менимы те же самые требования. Разберитесь с вая система подмонтируется так: chroot ubuntu-source dpkg-query -W -- сообществом вашего дистрибутива и ключевыми mount ubuntu-rebuild/casper/filesystem.squashfs /mnt/ showformat=’${Package} ${Version}\n’ | grep -v deinstall игроками, просмотрите списки рассылки, чтобы loop -t squashfs -o loop > ubuntu-rebuild/casper/filesystem.manifest измерить уровень деятельности и природу отправле- Теперь в /mnt/loop находится содержимое сжатой Необходимо также сказать установщику Ubuntu, ний, затем начинайте выдвигать ваши собственные функции или идеи. файловой системы Ubuntu – той, что используется, когда он запустится, чтоб игнорировал определен- когда вы загружаетесь в режиме LiveCD. Скопируйте ные пакеты. Например, после инсталяции иконка OpenSUSE : http://en.opensuse.org/How_to_ ее в новый каталог вашей домашней директории: «Установить Ubuntu» [Install Ubuntu] на рабочем столе Participate mkdir ubuntu-source вам уже ни к чему! Итак, пробежимся по списку инс- Fedora : http://fedoraproject.org/wiki/Join rsync -av /mnt/loop/. ubuntu-source таллируемых файлов (при помощи sed) и удалим ком- Debian : www.debian.org/intro/help umount /mnt/loop поненты исключительно для Live CD: Mandriva : www.mandriva.com/en/community/ cat > /tmp/sedscript <

Октябрь 2007 Linux Format 31 Битва за лучший Ubuntu Время R! Код написан, функции добавлены, и срок выхода релиза все ближе и ближе...

концу цикла разработка вступает в суматошный пери- Creative Commons image, elkbuntu, http://tinyurl.com/2s9scb од: бурно разрастается количество отчетов об ошибках. Мои любимые функции Gutsy: Брайан Мэррей руководит Группой контроля качества К Ubuntu и управляет уровнем обратной связи с сообще- Кори Бургер ством: «При полностью открытой системе отчетности об ошибках, при- нятой в Ubuntu, кажется, что мы получаем больше всего отчетов об «Я надеюсь, что будут доделаны все работы ошибках, когда уже сделана финальная версия для более широкого над сервером. Нужно еще много сделать, распространения. Однако Desktop CD с его Live-средой обеспечивает чтобы Ubuntu Server был так же «вылизан» и людям отличный способ проверки релизов для разработчиков и спо- был таким же простым в использовании, как собствует их вкладу в процесс». настольная версия. Ведется работа по библио- Итак, это ситуация «Уловки-22»: команда Ubuntu хочет иметь отче- текам LDAP и сборке Ebox, web-инструмента контроля сетевых сервисов.» ты об ошибках, чтобы суперски отполировать окончательный релиз, но получает наибольшее их количество тогда, когда дистрибутив факти- чески уже выпущен! Однако если налицо проблемы со стабильностью, релиз. В редких случаях разработчик может упросить менеджеров даты выпуска снимков и окончательного релиза могут быть изменены: Ubuntu сделать исключение из правила, если выгоды, которые оно при- «Важнее представить нашим пользователям хорошую работу, чем уло- несет, перевесят возможности серьезных последствий по стабильнос- житься в назначенный срок». Так было с Ubuntu 6.04 – для устранения ти. Разработчик должен четко продемонстрировать, что его/ее новый некоторых неприятных проблем со стабильностью команда вынужде- пакет не повредит другим, зависящим от него пакетам. на была сдвинуть релиз на два месяца ради дополнительной доводки. Поэтому он вышел под номером 6.06. Конец не за горами Недель за шесть до релиза раздается команда: «Заморозить вер- Далее следуют еще две «заморозки»: художественных работ и «строк». сии пакетов»: никакие новые версии, как от индивидуальных разра- Вторая запрещает изменение текста в программах, а обе вместе они ботчиков программ, так и существующих пакетов Debian, в дистрибу- означают, что люди, отвечающие за документацию, могут изготовлять тив больше не добавляются. Так, если вы – сборщик пакета AbiWord экранные снимки и тексты справок, не опасаясь, что вид дистрибутива версии 2.4.6 для Gutsy, и тут выходит версия 2.5.0, придется отложить внезапно изменится. Через неделю после заморозки строк и за месяц ее до следующего выпуска Ubuntu. Разработчики все еще могут досы- до выхода конечной версии выпускается бета-версия, которая содер- лать исправления ошибок и проблем безопасности, но цель этого эта- жит работающие – хотя все еще потенциально нестабильно – реализа- па – создание конкретной платформы, которую группа может начать ции всех новшеств дистрибутива. Ubuntu-овщики называют это «функ- стабилизировать. ционально-завершенным релизом», подразумевая, что все это пойдет Примерно месяц спустя в силу вступает команда «Заморозить в конечную версию, но нуждается в тестах. В Gutsy будет функции» – с этого момента никакие новые функции, меняющие рабо- На этом этапе группа исправления ошибок работает на износ, как новый измеритель ту дистрибутива, добавлять нельзя. Как и при заморозке номера вер- объясняет Мэррей: «Поскольку близок окончательный релиз, все боль- энергопотребления с графиком сии, это существенно для сохранения целостности дистрибутива: кому ше народу берет его [дистрибутив] для прогона, и число сообщений об зависимости этой нужно, чтобы какой-нибудь разработчик полностью переписал скрипт ошибках может подскочить. Задача здесь – обеспечить быструю сорти- величины начальной загрузки накануне выпуска! Если какая-то планируемая ровку ошибок, определение высокоприоритетных и их устранение». от времени. функция не готова к этому времени, она переносится на следующий Помимо технических вопросов, часть сообщества начинает рабо- тать над имиджем дистрибутива. Нужно готовить пресс-релизы и стря- пать описание релиза с инструкцией по новым функциям, сдобренной экранными снимками. Маркетингом в Ubuntu занимается Кори Бургер: «Команда маркетинга и Canonical обычно беседуют друг с другом неза- долго до релиза, чтобы понять, кто что делает. Обычно я звоню одному из маркетологов Canonical и узнаю, чем они занимаются. В Feisty было так, что Canonical занималась пресс-релизом и ответами на запросы прессы (по крайней мере, английской), а сообщество создало множест- во онлайн-описаний, таких как “Тур по функциям 7.04”». За неделю до финального релиза команда выгружает сборку RC (релиз-кандидата) дистрибутива: потенциально это окончательный вариант, если в последний момент не найдутся ошибки типа «полный назад». Разработка прекращается; на данном этапе разрешено исправ- ление только критических ошибок. Большинство членов сообщества с нетерпением ждут, надеясь, что их жесткий диск не спалится ни при каких экзотических комбинациях оборудования. Если все хорошо, команда производит окончательную сборку пакетов и ISO-образов дисков, направляет их на зеркала во всем мире и объявляет о новом релизе на сайте Ubuntu. Тем временем часть разработчиков начинает собирать воедино пла- ны для следующего выпуска Ubuntu. Цикл начинается заново…

32 Linux Format Октябрь 2007 Битва за лучший Ubuntu Включаемся Теперь вы получили некоторое представление о процессе разработки Ubuntu; почему бы немного не помочь ему – или любому другому дистрибутиву?

ак как Ubuntu продолжает процветать, проект постоянно Creative Commons image, sfllaw, http://tinyurl.com/3489hh ищет новые дарования – и в этом легко принять участие. Мои любимые функции Gutsy: Не надо быть кодером с большим стажем работы, чтобы Т помочь дистрибутиву: существует масса других способов Мэтт Цимерман влиться в него и добавить свои улучшения. Новый выпуск дистрибути- ва – это продукт кооперации различных талантов, работающих вместе «Я персонально слежу за запуском нашего с одной целью: сделать пригодную к использованию операционную мобильного продукта – Ubuntu Mobile and систему. Поэтому, даже если какой-либо из аспектов процесса разра- Embedded, который будет представлен как ботки вам чужд или пугает вас, не бойтесь: можно работать над соб- часть релиза 7.10. Более подробно об этом ственным проектом и больше никуда не соваться. можно узнать на сайте http://wiki.ubuntu.com/ Как мы видели, решения высокого уровня, определяющие направ- MobileAndEmbedded.» ление развития Ubuntu, принимает Canonical, но подавляющее боль- шинство разработок у всех на глазах. Помощь дистрибутиву сама по себе награда: она дарит вам опыт на будущее. Вот несколько областей, разработанным интерфейсам. Создайте значки, картинки, обои рабоче- достойных приложения сил (это справедливо и для других дистрибути- го стола и макеты интерфейса, чтобы ваш дистрибутив выглядел при- вов – например, Fedora или OpenSUSE): ятнее и понятнее. Еще лучше, если вы сделаете эту графику с помощью Кодирование Создание пакетов, исправление ошибок и выпуск приложений с открытым исходным кодом, вроде GIMP и Inkscape! заплаток безопасности являются основой работ в любом дистрибу- Поддержка Сообщество Ubuntu, как и Gentoo, считается одним из тиве; хотя они не требуют расширенных знаний в программировании. самых гостеприимных и дружелюбных; помогите людям на www. Полезны базовые знания C/C++ и Bash-скриптинга. Если вы накорот- ubuntuforums.org, давая советы по основным проблемам пользователей ке с командной строкой, редактируете текстовые файлы и собираете и стараясь, чтобы никто не чувствовал себя чужаком, переключившись программное обеспечение из исходников, вам по зубам изготовление на Linux. Пусть вас бесят вопросы вида «пачиМУ линуx Ни раБотаит Deb-пакетов Ubuntu; рассмотрите возможность работы с ними в репо- а» – сохраняйте дружелюбие и доступность, и вы заработаете большой зитории Universe. Если вы дока в программировании, попытайте удачи авторитет в сообществе. в одном из оплачиваемых bounty-проектов Ubuntu. Локализация Как подчеркнул Ладислав в DistroWatch этого месяца Тестирование Скачайте промежуточный вариант дистрибутива и на стр. 20, во многих странах, из-за необходимости знать второй язык, новые пакеты, и если они не работают, отправьте отчет об ошибках значительная часть населения лишена преимуществ пользования ком- на http://bugs.launchpad.net. Ваши отчеты должны быть краткими, но пьютерами. Если вы знаете два и более языка, особенно не поддержи- информативными; слова «Не работает, просьба устранить» только раз- ваемых проприетарными ОС, ваша помощь может быть неоценима в дражают разработчиков, а точное описание ошибки и спецификация любой области, особенно по части поддержки, перевода существую- вашей системы поможет им локализовать проблему. щей документации и консультаций разработчикам GUI-интерфейсов. Документирование Одна из проблем Linux – независимо от дистри- бутива – это разрозненная документация. Кодеры любят программиро- Если вы хотите с головой нырнуть в процесс разработки Ubuntu, вать, но их не прельщает перспектива написания руководств пользова- надеясь на работу в командах MOTU и Core, как было описано теля. Вы можете помочь в написании инструкций к еще не документи- выше, вы должны попасть в списки рассылки (https://lists.ubuntu.com). рованным программам или улучшить руководства пользователя хоро- Предложение идей – хорошая штука, но, как однажды сказал Линус шо известных приложений, имеющих только их черновые наброски. Торвальдс, «Разговоры стоят дешево. Покажите мне код». Если вы Здесь необходимы знания XML и DocBook. способны сделать пакет с продуктом, которого пока нет в репозитории Внешний вид Как и руководствами для пользователей, этой частью Ubuntu, и изготавливаете стабильные, чистые Deb-файлы, то сможете хакеры иногда пренебрегают, что приводит к уродливым или плохо наладить контакт с разработчиками и включиться в списки. Кроме того, если у вас есть идея для базового дистрибутива Ubuntu и вы способны реализовать ее четким, безопасным и легко проверяемым образом, закодируйте ее и разместите в списках. Ну что, пишем? Если программирование не ваш конек, но вы хотите приложить руки к улучшению документации дистрибутива, посетите http://doc.ubuntu. com. При склонности к дизайну и графике, попробуйте создавать икон- ки, логотипы и фоны рабочего стола на https://wiki.ubuntu.com/Artwork. Независимо от того, что вы хотите делать, страница приглашения в Ubuntu на www.ubuntu.com/community/participate предоставит вам ссылки на все виды ресурсов – списки рассылки, страницы wiki и раз- дел Launchpad. Если вы дружелюбны и подробно опишете свою работу или предложение, то сможете получить полезные отклики и множество путей для дальнейшего продвижения. Кодеры, тестеры, художники, составители документации – множество Или, почему бы не приложить руки к вашему любимому дистрибути- навыков необходимо для создания достойного релиза Ubuntu. ву? Смотрите врезку внизу стр. 31 – там приведены адреса. Удачи! LXF

Октябрь 2007 Linux Format 3 3 Какова цена свободы? Какова цена свободы?

В сфере открытого ПО часто приходится идти на компромиссы. Грэм Моррисон рассмотрит пре- имущества и недостатки открытой модели разработки, выбор, который встает перед многими из нас, и его влияние на нашу любимую ОС Linux.

ез обиняков: я люблю MythTV. За четыре года оно наполни- Причины радоваться ло медиаконтентом всю нашу жизнь. Мы смотрели фильмы, Есть три причины, почему я сопротивлялся коммерческому решению записывали цифровое и аналоговое ТВ, проигрывали музы- так долго. Во-первых, цена: я не хотел связываться с услугой, которая ку и играли в игры на том самом блестящем черном Linux- по контракту приковывала меня на 12 месяцев. Во-вторых, мне не нра- компьютере,Б что спрятан за телевизором. вилась компания, которая предлагала эту услугу: она являлась монопо- Компьютер не отличался особенной красотой или бесшумностью, листом (поэтому у нас не было альтернативного провайдера), а отсут- а если вы на какое-то время оставляли дверь закрытой, температура ствие конкуренции заметно усложняет существование независимым внутри комнаты поднималась до уровня ливийской пустыни. Растения проектам типа MythTV. В-третьих, я хотел полного контроля над данны- начинали жухнуть, воздух наполнялся кислотой, а уцелевшие граммы ми, как в MythTV. Мы в Linux сейчас принимаем это как должное – мы влаги скоро испарялись с поверхности раскаленного медного теплоот- все используем открытые форматы, и мало кто сталкивается со зло- вода процессора. Пару раз у нас в этой комнате ночевали на раскла- употреблением запретительными цифровыми правами на компьютере с Linux. Но этого нельзя сказать о многих проприетарных и готовых продуктах. Например, вы не cможете купить MP3-плейер без подобных «Как пользователи Linux, многие проблем. И то же самое в мире цифрового телевидения. из нас горой за открытые Как пользователи Linux, многие из нас стоят горой за открытые стандарты и свободное программное обеспечение. Но это не должно стандарты и свободное ПО.» быть первопричиной, ведь Linux – великолепная операционная систе- ма, независимо от политики, которой руководствуются разработчики. душке гости, и если я забывал выключить MythTV на ночь, они просы- Многие из нас используют Linux по тем же мотивам, которые когда-то пались с мутными глазами и иссохшие от жажды. Я всегда думал, что привели меня к MythTV: цена, объект финансовых вливаний и контроль небольшой набор таких компьютеров был бы идеальным средством над информацией. Соблюдать такую политику нелегко, потому что для поддержания температуры в зимнем саду, но этот проект все вре- пользователи Linux часто являются технофилами – они любят супер- мя откладывался. Вот такой MythTV. Сотни часов (я не преувеличиваю) современные примочки и последние достижения техники. Игры, навер- головной боли теперь позади, и перед нами сияющий новый цифро- ное, самый лучший пример. Что вам делаеть, если вы хотите играть в вой видеомагнитофон. Я нажимаю на «паузу», и телевидение оста- игры? При желании сохранить верность Linux, вам придется признать, навливается. Я нажимаю «запись», и он начинает записывать. Я нажи- что ваши знания в сфере игр быстро устареют. Средняя Linux-игра про- маю «перемотать», и перемотка заканчивается в считанные секунды. давалась в магазинах под другие платформы еще несколько лет назад, Изумительно. Кроме включения в розетку, ничего больше делать не и мы еще рады, что разрыв хотя бы не так велик. Если вы любитель нужно, и это смущает. С MythTV требовалось как минимум потратить поиграть, остается идти на компромисс: найти себе другое занятие или выходные на борьбу с командной строкой и скачивание электронного нарушать одно из трех правил. программного руководства, не говоря уж о самой записи.

34 Linux Format Октябрь 2007

Какова цена свободы? Игры Для желающих играть в игры сегодняшнего дня, наша платформа – одна из самых ужасных...

Есть и подобные программы – прекрасная группа проектов. Они позво- игра? ляют пользователям Linux играть в игры для Windows, не имея уста- новленной копии Windows на компьютере и без перезапуска машины

Небольшие, под Windows. Производительность похуже, чем в исходных версиях, но но затягивающие достаточно близка к ним, а технически это огромное достижение. игры на XBox Live Впечатляющим достижением является реинжиниринг библиотек (например, Space Microsoft DirectX при сохранении двоичной совместимости, особенно Giraffe Джеффа при наличии одного-единственного пособия – API программиста. Но в Минтера [Jeff Minter]) и на PlayStation то же время этот подход – своего рода компромисс. Microsoft DirectX недороги, высоко ценится для быстрого, мощного развития игр, но он появил- так как затраты ся в то время, когда многие игры использовали OpenGL – открытую на их разработку платформу, которая позволила бы заметно упростить перенос игр под и распространению ничтожно малы. Linux. Беда в том, что OpenGL спихнули на обочину, так как многие раз- Возможно, для Linux работчики перешли на бурно развивающийся эквивалент от Microsoft, нужно что-то вроде отложив разработки для ОС третьих сторон, типа Linux, в долгий ящик. www. steampowered. Я не хочу вдаваться в политику по поводу деятельности Microsoft, но com: простая если вы хотите, чтоб игры перебирались в Linux, то поддерживать в использовании Родные версии игр обычно появляются много позже, чем рыночная площадь разработку DirectX неправильно. Wine, Cedega и CrossOver – все они первоначальный выпуск. Cold War была выпущена довольно быстро – для игр добавляют законности к подходу Microsoft, молчаливо признавая, что лишь год спустя. от независимых единственный способ добиться игры в действии – подладиться к этой разработчиков. Эта популярной альтернативе. Linux преследует движущуюся цель: ко вре- на каждом конкретном производителе, поскольку они понесут потери идея может казаться плевком в лицо мени, когда мы выходим на поле боя, все, что там остается – это спесь на каждой единице продаж – таково их желание доминировать. Но что- сторонникам Open по поводу нашего очередного поражения. А то, что действительно нуж- бы это работало, нужно также отказаться от покупки каких-либо игр в Source, но идеи но сделать – и что мы в некоторых случаях и делаем – это открывать принципе, что поставит крест на предмете покупки, если только вы не свободного ПО второй фронт, выгодный для наших сильных сторон, а не для слабых. покупаете просто плейер для Blu-Ray. в области игр Это аналогично решению, пользоваться Wine или нет. Вы стали не столь эффективны, Консоли как терминалы бы продвигать бизнес-модель, с которой вы не согласны, только ради как в области ОС. Игры ставят нас перед другой головоломкой на консольном рынке. возможности поиграть? Тут нет правильного или неправильного отве- Деньги в этом случае Сейчас существуют три основных типа консолей для игр так назы- та. Любой из нас с радостью урвал бы Xbox 360, имей он хотя бы пол- могут послужить ваемого «седьмого поколения»: выбирать предлагается из Nintendo оправдания для покупки. И репутация Sony не намного лучше, даже не мотивацией. Wii, Sony Playstation 3 и Microsoft XBox 360. Каждая из них имеет свои считая судебных исков против компании по поводу самовольно уста- преимущества и недостатки, но в настоящее время 360 от Microsoft и новленного миллиона руткитов. Но, по крайней мере, на PS3 можно Nintendo Wii недалеко ушли друг от друга в борьбе за господство на установить Linux, а в 360 до этого ох как далеко, даже если вы стерпите рынке. Все мы любим Wii, но когда речь заходит о следующем поко- жуткие надругательства над цифровыми правами. Возможно, мы все Тормозит ли лении высококачественных игр, мы на самом деле должны выбирать должны ждать расцвета рынка подержанной продукции, чтобы выбрать Cedega легитимную между XBox 360 и Sony PS3. Но почему мы должны делать выбор из консоль, уже набитую играми. разработку, запуская этих двух по причинам морального свойства? Почему просто не купить игры от Windows под игру, которая лучше, без оглядки на законы рынка и экономические Развивать свое, родное Linux? теории? Можно даже сказать, что покупка любой консоли отразится На самом деле, компенсировать надо отсутствие собственных ори- гинальных разработок игр на платформе Linux. Introversion Software, независимый разработчик игр, таких как Defcon, Darwinia и Uplink, один из тех немногих, которые активно поддерживают Linux. И это прямое следствие того факта, что разработчики выбирают OpenGL, а не DirectX. Однако Introversion является исключением. Разработчиков, выпускаю- щих версии своих игр под Linux, очень мало – но, возможно, это симп- том совершенно другого недуга: разработка игр стоит дорого, а значит, приходится поддерживать ведущие платформы, что, в свою очередь, ведет к использованию DirectX или промежуточных решений. Отрасль заинтересована не в рыночных нишах, а в играх, экви- валентных развлекательным комплексам, где лучшие голливудские хиты удобно соседствуют с прибыльными точками быстрого питания. Изменение этого соотношения будет более сложным и может быть еще одним хорошим поводом для покупки консоли на проприетарной платформе.

36 Linux Format Октябрь 2007 Какова цена свободы? Наигрывая мелодию Даже такая простая вещь, как воспроизведение музыки, выражает потребность в свободе.

Если вы не играете в игры, то, возможно, слушаете музыку. Но, по край- заслуживает успеха за такой открытый подход ней мере, купив аудио компакт-диск в магазине или через Интернет, вы к бизнесу. почти наверняка сможете прокрутить его под Linux. Существуют неко- торые исключения, но гнусная практика печати дисков, не удовлетво- Трудный выбор ряющих требованиям Красной книги, к счастью, отмирает. Выбор MP3-плейера тоже ложится бременем Если вы затеяли сделать копию музыкального диска и сохранить на совесть пользователей Linux. Подобно эво- ее на своем жестком диске, это уже не так просто. Законность этих люционной тактике флоры и фауны тропиков, действий, особенно в Великобритании, неясна; хотя, будем надеяться, более всего нас способны прельстить музы- закон скоро изменится. Кое-кто советует покупать и скачивать музыку кальные проигрыватели, перегруженные функ- из интернет-магазинов. Но музыка – это та область, где доминирует циями, несовместимыми с идеалом открытости. злоупотребление цифровыми правами (digital rights mismanagement, Лучший пример – iPod, созданный для работы DRM). И, понятно, никак нельзя сказать, что DRM и ПО с открытым только с программой iTunes от Apple: лакомый исходным кодом – задушевные друзья. Трудно предсказать, выбе- кусок для покупателей, с прекрасными функци- рет ли каждый розничный онлайн-торговец музыкальной продукцией ями управления данными и DRM под Windows свой собственный DRM-механизм, чтобы отличиться от конкурентов, или Macintosh. Пользователи Linux не у дел, Открытый код или предпочтет одну операционную систему другой. Скорее всего, это если только не сдадутся на Wine или Windows. То же самое – с дру- RockBox дал будет нечто среднее. Иногда кажется, что в скором будущем владельцы гими подобными плейерами, от Creative и Microsoft. Если вам нужна страстным прав на музыку начнут брать деньги за то, что мы напеваем ее про себя. гарантированная совместимость с Linux, то найдется разве что незатей- любителям модных Филип К. Дик, в этом смысле, должен чувствовать себя как дома. ливое устройство хранения данных, выполненное отнюдь не в передо- примочек право вой эстетике. Если вы соблазнились штучкой на букву “i”, то получите купить сверкающее В лад устройство, совместимое со многими приложениями Linux; но будет устройство на букву Факт тот, что очень немногие онлайн-магазины открыто поддержи- ли это правильным шагом? Должны ли мы способствовать разработке “i”. вают Linux и открытые кодеки, позволяющие скачивать их музыку устройств, не поддерживающих Open Source, только потому, что они без помощи их собственного клиента или версии Windows Explorer. хорошо выглядят, и это примиряет с их проприетарностью? Та же ста- Независимые продавцы помельче часто предлагают музыкальные рая проблема. файлы в MP3-формате, которые, по крайней мере, без проблем проиг- К счастью, разработчики свободного ПО нашли решение: откры- рываются под Linux. Без DRM-ограничений можно, например, скачать тую замену для прошивки многих популярных MP3-плейеров, вклю- каталог Warp или новые релизы с Bleep.com. Неплохи и более общие чая iPod. Она называется RockBox, и в большинстве случаев придает музыкальные магазины, хотя уровень интеграции здесь не на столь добавочные функции, включая поддержку хранения и проигрывания высок. Но, как ни странно, предпринимаются попытки это изменить. открытых форматов, таких как Ogg Vorbis и Flac (оба отсутствуют в про- Для пользователей Linux лучший пример работы музыкального дукции от Apple), и десятки небольших модулей расширения. Имеется онлайн-магазина – MagnaTune (http://magnatune.com). Он не только также необходимый интерфейс с возможностью выбора дизайна для предлагает хорошие условия исполнителям (неэксклюзивные согла- дисплея. С RockBox вам уже не придется принудительно скачивать шения и разделение прибыли 50/50), но вы можете прослушать музы- обновления или беспокоиться о попадании персональной информации ку до покупки альбома и выбрать между форматами Ogg Vorbis, Flac в музыкальные файлы. и MP3, по лицензии Creative Commons. Кроме того, тут нет DRM: вас даже поощряют поделиться музыкой с тремя друзьями. Но лучшее в MagnaTune – поддержка этого виртуального магазина, встроенная прямо в наши любимые музыкальные проигрыватели: Amarok в KDE и Rhythmbox в Gnome. Оба они обладают возможностью удаленного доступа к коллекции MagnaTune, как будто вся эта музыка находит- ся в локальном каталоге вашего компьютера. Просто перетащите в плей-лист заинтересовавшие вас альбомы и песни, нажмите “Play” – и зазвучит музыка высокого качества, не требуя с вас ни гроша. Если она вам понравится настолько, чтобы ее купить, для этого опять же доста- точно просто нажать кнопку. Выглядит революционно, а MagnaTune

Ваше мнение Интеграция Напишите нам, что вы думаете по этому вопросу, на адрес letters@ MagnaTune linuxformat.ru с темой «Какова цена свободы?». Как далеко заходит в Amarok — самое ваша вера в приложения с открытым кодом и насколько это влияет на лучшее, что могут жизнь людей вокруг вас? Мы будем рады услышать ваше мнение, так получить как считаем эту тему важной для обсуждения. Лучшие письма будут пользователи Linux напечатаны в одном из следующих номеров. в качестве встроенного музыкального онлайн-магазина.

Октябрь 2007 Linux Format 3 7 Какова цена свободы? Разработка программ

Разработчики тоже не могут придти к единому решению, что стоит сделать свободным, а что – нет.

Все, о чем речь шла до сих пор, освещалось со стороны покупателя. Но организации OSDL, где работали ведь между разработчиками разногласий быть не может? Увы, и может Триджелл и Торвальдс, так что быть, и есть. Крупнейшие разногласия до сих пор окружают использо- продолжать разработку ядра с вание коммерческого и проприетарного ПО в крупнейшем проекте с BitKeeper стало неприемлемым. открытым кодом – ядре Linux. Вплоть до середины 2005 года конт- Именно о подобной ситу- роль версий для разработчиков ядра Linux осуществлял несвободный ации предостерегали крити- BitKeeper — хотя тут немалый вклад внес сам Линус Торвальдс, счи- ки BitKeeper с самого начала: тавший, что, несмотря на свою проприетарность, BitKeeper дает столь запретительный контроль над сильные преимущества для разработки, что их нельзя игнорировать. продуктом со стороны вла- Торвальдс открыто критиковал CVS и Subversion, две наиболее дельца. Последовали обиль- популярных альтернативы, а решение он видел в BitKeeper. К сожале- ные и желчные дебаты через нию, многие другие разработчики ядра думали иначе. Хотя им предо- списки рассылки для разра- ставлялась бесплатная версия, контроль и развитие приложения по- ботчиков, но о выборе смен- прежнему держал в руках BitMover, владелец BitKeeper. Предложение щика для BitKeeper так и не договори- бесплатной версии было снято в апреле 2005 года, когда основного лись. В конце концов Торвальдс пообещал и создал совершенно новую разработчика ядра, Эндрю Триджелла [Andrew Tridgell], публично обви- систему контроля версий, отличную от BitKeeper и CVS / Subversion, и нили в попытке инженерного анализа частей BitKeeper (обвинение он назвал ее Git. С тех пор Git и используется, превратившись в достойный решительно отрицает), и BitMover даже отказался продавать лицензии продукт (см. наше Сравнение в LXF91). . NET-работы Но дискуссии, связанные с разработкой ПО, на Git не кончились. Другой проект, Mono, тоже расщепил ряды сторонников Open Source. Mono – открытый аналог исключительно влиятельной среды раз- работки .NET от Microsoft. Если вы с недавнего времени следили за деятельностью разработчиков, то сами знаете, что .NET стала своеоб- разным стандартом для разработки приложений. И Mono означает не только совместимость с .NET для приложений с открытым кодом, но и практический опыт для разработчиков Linux в одной из самых важных Мигель де Икаса технологий, разработанных за последние пять лет. Но тут снова возни- ведет блог кает все та же проблема. Если бы разработчики Linux с самого начала о деятельности шли путем инноваций, не было бы нужды адаптироваться к решениям команды собственников. Это главное, за что критикуют Mono, помимо букета разработчиков нарушений патентных прав. Если наступит момент, когда открытая на версия Mono де-факто исчезнет, получится, что все его совершенство http://tirania.org/blog. загонит разработчиков к .NET от Microsoft, а не к подлинно открытой альтернативе. Да и на Mono дело не заканчивается. Те же разработчики Mono работают и над Silverlight от Microsoft – это комбинация NET и XAML Свобода как опция (Extensible Application Markup Language). Silverlight является попыт- кой Microsoft конкурировать с аналогами Flash-технологии от Adobe и Люди решают использовать свободное ПО по промисс, но получаемые преимущества побе- JavaFX от Sun для загрузки контента и приложений, встроенных в бра- различным причинам, и эти причины могут дили. С этим сталкиваются все пользователи узер. Первую рабочую версию Silverlight в результате недельного мара- оказывать сильное влияние на принятие дру- свободного ПО, в большей или меньшей степе- фона создали Мигель де Икаса [Miguel de Icaza] и его команда, работая гих решений. Например, немало людей просто ни. Я считаю, что успех приложений с откры- используют свободное ПО, поскольку оно тым исходным кодом и GNU/Linux обязан тому, по двенадцать часов в день. Планируется, что их проект, прозванный наилучшим образом соответствует их потреб- что мы действуем во «враждебной» среде. Moonlight, будет отслеживать график релизов Silverlight от Microsoft и ностям – тут нет никаких политических моти- Проприетарные разработки ПО, насильствен- обеспечит совместимость Linux с одним из самых ожидаемых проектов вов. Свобода – это опция, и каждый из нас ные модернизации, закрытое оборудование, года. Понятно, что Moonlight столкнулся с той же критикой, что и Mono взвешивает плюсы и минусы использования дата-майнинг и угроза нарушения патентов – (кстати, он использует Mono для компонентов .NET), но, бесспорно, открытого ПО, которое эквивалентно коммер- все это стимулирует разработчиков на созда- пользователи настольных компьютеров получат большие преимуще- ческим приложениям. ние альтернатив. Неважно, на сколько процен- ства, поскольку все мы бьемся с проблемами совместимости форма- В случае моего MythTV, хлопоты по подде- тов мы привержены к свободному ПО, коли мы тов. Так не наплевать ли им на политику, которой окружена разработка ржанию работоспособности (почти круглосу- вообще его используем, в той или иной форме: проектов? LXF точные), в сочетании с затратами на модерни- каждый новый пользователь дает и новый зацию аппаратных средств, сделали его менее стимул. Но это не повод, чтобы бежать и поку- полезным для меня, чем коммерческие, закры- пать XBox 360. тые, монополистические и запатентованные решения. Мне было неуютно идти на этот ком-

38 Linux Format Октябрь 2007 Инна Кузнецова Интервью LXF Наши у руля

Излишне напоминать, какую роль играет IBM в развитии и поддержке Linux. По заданию редакции Linux Format Виктор Федосеев встретился с Инной Кузнецовой – человеком, который непосредственно отвечает за то, каким будет это влияние в глобальном масштабе.

LXF: Инна, ваша должность звучит как «Директор IBM по Linux-стра- ИК: Linux имеет большое будущее не только на серверах, но и на тегии». Что подразумевается под этими словами и что входит в спектр рабочих столах. Linux – молодая система, и она очень быстро развива- решаемых вами задач? ется. Несколько лет назад настольный Linux был мало распространен. ИК: Я отвечаю за стратегию Linux в корпорации IBM. Linux сейчас Причины этому – и необходимость высокой технической подготовки настолько тесно интегрирован в продуктовые линейки IBM, что фак- людей, использующих данную ОС, и банальная проблема отсутствия тически в каждом подразделении, в каждой стране у нас есть люди, программных продуктов, необходимых обычному пользователю каж- вовлеченные либо в разработку, либо в продажу, либо в маркетинго- дый день – офиса, графических редакторов и так далее. И, кроме вую поддержку в области Linux, и их усилия необходимо координиро- того, во многих организациях есть пользователи, которым приходится Наше вать. Необходима единая стратегия, система управления и контроля в силу тех или иных причин использовать программы, работающие Интервью над стратегией, нам постоянно нужно отвечать на вопрос: достигаем под управлением другой ОС. Переводить такую организацию на Linux ли мы целей этой стратегией, как развивается наше партнерство, как можно, лишь обеспечив обмен данными и информацией внутри гете- Инна Кузнецова продвигается наше участие в различных проектах. рогенной сети. Директор Я руковожу командой, которая отвечает не только за разработку С одной стороны, в последнее время Linux как система стал проще по стратегии этой стратегии, но и за управление всей системой. К примеру, раз в и дружественней пользователю, для работы в нем уже не нужны какие- и развитию бизнеса квартал по результатам своей деятельности я отчитываюсь перед дву- то специальные знания. Есть очень дружественные дистрибутивы – от IBM System p. С мая мя старшими вице-президентами IBM: рассказываю, как обстоят дела Novell, Ubuntu, Mandriva, которые очень просто ставить, настраивать и 2007 года – директор по Linux-стратегии с Linux в нашей компании. Естественно, что я в свою очередь собираю обслуживать. С другой стороны, появились продукты, которые решают корпорации IBM. руководителей подразделений, которые рассказывают мне о том, как проблему обмена данными внутри гетерогенных сетей. Выпускница у них идут дела, связанные с Linux. Помимо роли стратега и руководи- К примеру, месяц назад мы объявили о выпуске продукта Open Московского теля, в мои задачи также входит сплочение Linux-сообщества IBM. Ведь Collaboration Client, который пока работает только под управлением Государственного Linux в IBM сегодня занимаются сотни и сотни людей. Необходимо, SUSE Linux Enterprise Desktop и представляет собой продукт на осно- Университета, магистр математики чтобы они регулярно получали информацию о том, что происходит в ве технологий Lotus, обеспечивающий единую рабочую среду – поч- и компьютерных наук, компании в целом, обо всех изменениях, которые происходят на рынке, та, обмен сообщениями, графический и текстовый редакторы и т.д. имеет степень MBA чтобы они чувствовали себя частью целого и не потеряли дух Linux. Пользователь, по самым консервативным оценкам, экономит 300–500 от Columbia Business долларов на одной лицензии в сравнении с продуктами Microsoft. School (США). LXF: В течение продолжительного времени IBM придерживалась под- Но главное даже не это. Если заказчик хочет устроить у себя гете- хода, который можно описать словами «Linux — на серверах, Windows — рогенную среду – к примеру, сети на основе Linux и Windows – то он на рабочем столе». С выпуском Lotus Workplace для Linux ситуация может это сделать. При этом он унифицирует офисные программные изменилась? продукты, что позволяет без проблем и недоразумений обмениваться

Октябрь 2007 Linux Format 3 9 LXF Интервью Инна Кузнецова

информацией и данными между пользователями с различными ОС. для интеграции данных IBM Information Server и услуги по внедрению, При этом в тех случаях, когда ему важны критические для бизнеса при- включая финансирование. Новое решение обеспечивает консолидацию ложения, работающие под отличной от Linux операционной системой, и перемещение значительных объемов данных для более глубокого он может это себе позволить. Мне кажется, что такая унификация и понимания бизнеса и решения проблем, связанных со стремительным станет ключевым моментом в продвижении Linux на рабочих столах. ростом объемов данных. Big Green Linux – это долгосрочная инициатива, сейчас мы нахо- LXF: Недавно компания IBM объявила еще об одной Linux-инициативе димся в самом ее начале, но будем регулярно информировать прессу под названием Big Green Linux. Вы не можете прокомментировать ее и заказчиков о последующих этапах. суть? ИК: В августе этого года, компания IBM объявила об инициативе Big LXF: Позвольте спросить, как вы относитесь к альянсу одного из Green Linux, в рамках которой она будет помогать своим клиентам ваших ключевых Linux-партнеров, компании Novell, с Microsoft? Ведь использовать Linux для уменьшения энергозатрат вычислительных вы в последнее время очень интенсивно работаете с Novell: в част- центров путем консолидации серверов, более эффективного управ- ности, в области Big Green Linux и уже упоминавшегося выше Open ления ресурсами и балансировки нагрузки. Консолидация серверов на Collaboration Client. Не повредит ли такое поведение Novell бизнесу и основе Linux позволяет провести как существенную экономию электро- имиджу компании IBM в мире Linux? И как вы считаете, необходимо ли энергии, так и снижение общих затрат на охлаждение офисных поме- заключение патентных соглашений с компанией Microsoft? щений, а также обслуживание и администрирование серверов. IBM ИК: Big Green Linux существует на всех дистрибутивах, с которыми мы начала применять этот подход к собственной инфраструктуре. Месяц работаем. Наша стратегия – работать с несколькими дистрибьюторами. назад мы объявили о консолидации 3900 наших серверов на 30 мейн- Мы считаем, что у заказчика должно быть право выбора – это стаби- фреймов под управлением ОС Linux. По нашим расчетам, эта консо- лизирует рынок и позволяет технологиям расти быстрее. Так что мы лидация только в плане экономии электроэнергии позволит снизить не выделяем кого-то одного, и наши инициативы доступны всем, кто затраты на 80% от ее изначальной величины. За пять лет, таким обра- в них заинтересован. В настоящий момент у нас существуют два стра- зом, мы сэкономим достаточно энергии, чтобы удовлетворить годовые тегических альянса – с компанией Novell и компанией Red Hat. Многие потребности небольшого города. наши продукты работают на обоих дистрибутивах. В некоторых случа- Есть и другие аспекты. Сегодня подлежащие консолидации серве- ях какие-то продукты работают только на одном из них – как правило, ра занимают по площади около 139 футбольных полей. Консолидация потому, что второй не заинтересован в этом проекте и просто хочет приведет к огромной экономии на аренде площадей. Благодаря такой вложить свои ресурсы в какую-нибудь другую инициативу. консолидации у нас освобождается огромное количество сотрудников, По поводу патентной защиты – я не считаю, что она необходима. задействованных на администрировании этих серверов. Мы не плани- Более того, IBM поддерживает Open Invention Network – это органи- руем увольнений – наш план заключается в переобучении их работе с зация, предоставляющая юридическую поддержку всем пользовате- Linux-системам, чтобы помочь нашим клиентам, планирующим подоб- лям Linux. Мы считаем, что такая защита адекватна и достаточна, и ные проекты консолидации. нет необходимости прибегать к каким-то дополнительным мерам по Еще один интересный момент такой консолидации – это вопрос о защите Linux. Несмотря на заявление о нарушении 238 патентов, ком- том, что же нам делать с освобождающимися серверами? Часть из них, пания Microsoft до сих пор не назвала ни одного конкретного. Однако, относительно новых, мы очищаем от информации, приводим в товар- несмотря на расхождение с Novell по этому вопросу, наше партнерство ный вид и продаем на вторичном рынке. Часть, которые являются уже крепко, как никогда ранее. IBM объявила месяц назад, о том что Web относительно старыми, мы утилизируем. У нас есть сервис по утилиза- Application Server (WAS) Community Edition будет частью SUSE Linux ции старых серверов, IBM Global Asset Recovery Services, который мы Enterprise Server. Кроме того, IBM и Novell предлагают услуги поль- предлагаем и своим клиентам. Так, в прошлом году мы утилизирова- зователям, которые хотят мигрировать с сервера приложений JBoss ли оборудование весом более ста миллионов фунтов. И только менее (принадлежащего Red Hat) на WAS. Тем не менее, мы так же работаем 1% ушло в отходы – т.е. на свалки. Так что этот наш бизнес является с Red Hat, и JBoss работает на наших продуктах. довольно экологичным. Однако у этого партнерства есть одно положительного качест- Клиенты IBM тоже прибегают к консолидации. Приведу два при- во. И это – возможность добиться лучшего взаимодействия между мера компаний, объявивших в августе этого года о консолидации Linux и Windows. Оставим в стороне юридическую часть вопроса и на серверах системы System p. Первая из них – компания Telefonica сфокусируемся на технических аспектах. Если это партнерство позво- Mobiles, третья по размеру телефонная компания в мире и самая круп- лит Novell улучшить взаимодействие внутри гетерогенной среды, где ная телекоммуникационная компания в Испании. Она консолидировала есть Windows; если продуктам на основе Linux будет лучше и проще несколько сот своих серверов платформы x86 на двух серверах плат- взаимодействовать с продуктами и сетями Windows, то в конечном формы System p, работающей на базе процессоров POWER. Некоторые счете, Linux выиграет. По-моему, это положительный момент такого приложения были переписаны для Linux на платформе System p, а сотрудничества. некоторые используют технологию pAVE (System p Application Virtual Environment), которая позволяет запускать приложения для Linux на LXF: Давайте вернемся к Open Collaboration Client, который сейчас платформе x86 под Linux на System p без изменений и перекомпиля- работает только на дистрибутиве Novell. Скажите, а планируете ли вы ции. Данная технология доступна бесплатно для скачивания с нашего выпуск этого продукта для дистрибутивов, отличных от Novell? web-сайта. Сегодня она еще находится в бета-версии, но специалисты ИК: Мы готовы распространить продукт на другие дистрибутивы, под- из Telefonica Mobiles были настолько восхищены результатами и ста- бильностью работы этой технологии, что приняли решение применить ее в постоянной деятельности. Open Invention Network Другая компания, объявившая о проекте консолидации – Volkswagen AG. Она консолидировала 76 своих серверов на 6 серверов опять же Open Invention Network – союз компаний IBM, Novell, Philips, Sony и Red Hat, System p. имеющий своей целью содействие в рыночном продвижении операцион- Кроме того, в рамках инициативы Big Green Linux компания IBM ной системы Linux, покупку патентов и предоставление их на бесплатной объявила новый продукт – Information Server Bladе, предназначенный основе любой компании, учреждению или частному лицу на том условии, для виртуализации данных. Работает он под управлением Red Hat что они не будут использоваться в разработках, конкурирующих с опера- Linux. IBM Information Server Blade – это полностью интегрированное ционной системой Linux или определенными Linux-приложениями. решение, включающее blade-системы IBM, программную платформу

40 Linux Format Октябрь 2007 Инна Кузнецова Интервью LXF

будем интенсивно развивать наши собственные ОС. В прошлом году Open Collaboration Client мы отметили двадцатилетие OC AIX, а в этом году выпускаем версию AIX 6.0 с множеством новых возможностей. Open Collaboration Client – базирующийся на Eclipse продукт, включающий в себя бизнес-коммуникации на основе Lotus Notes, систему обмена мгно- LXF: Вы — представитель крупной компании. Было бы интересно венными сообщениями и совместной работы Lotus Sametime, текстовый узнать ваши взгляды на так называемую «коммерциализацию Linux», процессор, электронную таблицу и средство создания презентаций. которую иногда ставят ему в укор любители BSD. Имеется возможность добавить и другие компоненты из портфолио Lotus ИК: Наличие выбора всегда прекрасно. Наличие Linux не служит для связи с Quickr, Connections, Websphere Portal и т.д. Слово Open не сто- ограничением на развитие других инициатив. Но у коммерциализации ит понимать как Open Source: имеются в виду открытые стандарты. существует два совершенно разных аспекта – это вопрос разработки и вопрос внедрения. Если коснуться первого из них, то наличие сооб- щества очень важно. Это сильная сторона Linux. Ни одна компания держиваемые IBM. Корпорация постоянно работает с различными про- не может себе позволить нанять 60 тысяч разработчиков и выпускать изводителями. Если кто-то захочет выпустить данный продукт, то мы несколько версий ядра в год. А ведь именно благодаря этому Linux готовы к сотрудничеству. Но пока он работает только под Novell, т.к. быстро развивается, в нем оперативно и эффективно решают вопросы Novell – первая компания, которая заинтересовалось работой над этим безопасности, и т. д. Попытки перехватить инициативу в разработках – продуктом. В данном случае все определяется вопросами бизнеса. Мы это ошибка. Компания может при этом выиграть битву, но проиграть объявили данный продукт всего месяц назад, и фактически мы наблю- войну, так как в долгосрочной перспективе это крайне плохо. И потому- даем, есть ли на него спрос. Если спрос появится, то будет разумно то, несмотря на огромные инвестиции ресурсов в Linux, мы работаем выпустить его и для других дистрибутивов или вообще сделать плат- в этом плане именно с сообществом. Если какое-либо из наших пред- формонезависимый вариант, как OpenOffice.org. ложений не пройдет в финальный код, это может выглядеть как про- игрыш небольшого сражения, но в долгосрочной перспективе это LXF: Недавно прошло голосование по поводу принятия стандарта означает, что сообщество выберет более сильный вариант, что важно документов от Microsoft — OOXML — в качестве международного стан- для всех, в том числе и для IBM. дарта ISO. Что IBM думает по этому поводу и как IBM относится к стан- Другой вопрос – внедрение. Linux вышел из периода евангелизма – дартам вообще? он вырос, это следующий этап эволюции. Это система, на которой уже ИК: IBM является членом OASIS. Мы считаем, что стандарты должны сегодня работают критические для бизнеса приложения. Так, к приме- быть открытыми и не завязанными на одну компанию. ру, одна крупная компания в США по производству моторов отслежи- Как вы уже знаете, 4 сентября стандарт OOXML был отклонен. вает всю цепочку их производства – от цеха до продажи при помощи Согласно правилам ISO, у Microsoft есть возможность в следующем сенсоров, меток RFID и систем на основе ОС Linux. Linux применяется году заново поставить этот вопрос на голосование, исправив те заме- там, куда вкладываются немалые деньги. И для качественного, про- чания, что были высказаны. С моей личной точки зрения, очень важ- фессионального обслуживания, внедрения и обучения необходимы но, что наиболее быстро развивающиеся страны – Китай, Бразилия, серьезные коммерческие компании. Ведь в конечном итоге это ведет Индия – поддержали OpenDocument и не поддержали OOXML. Там, к тому, что деньги уходят и к программистам тоже: должны же они где происходит быстрый рост, очень четко понимают, что нужно для получать зарплату. Чем больше мы привлекаем ресурсов, тем лучшими эффективного ведения бизнеса, понимают, что нужно не усложнять программистскими кадрами можем оперировать. процесс, а использовать открытые стандарты. Такая коммерциализация – это естественный процесс, это рост, это Мы активно проводим поддержку OpenDocument как член альянса эволюция, и это нормально. Если продукт не растет, то начинается OASIS. В этом, как и многих других видах деятельности, связанных с стагнация и последующее его умирание. Linux и открытыми стандартами, IBM является активным членом cооб- щества. Так, мы поддерживаем сообщество Linux за счет наших патен- LXF: Каким, по-вашему, будет «мир Linux» через пять лет? Займет ли, тов и разработок – например, свыше 600 разработчиков IBM в 40 стра- на ваш взгляд, Linux в течение этого срока заметную долю на рабо- нах заняты в нашем Центре Технологий Linux (Linux Technology Center). чих столах? Из них более 300 заняты разработками исключительно в сфере ядра ИК: Я думаю, что мы, несомненно, увидим огромное продвижение Linux. И специалисты этого центра очень активно участвуют в работе Linux в области рабочих столов. Помимо появления новых продуктов над открытыми стандартами. с необходимой функциональностью, позволяющих компаниям сэконо- Мы подаем любые изменения кода в сообщество Linux в строгом мить деньги, мы также увидим, как Linux идет в школы, ВУЗы и госу- соответствии с существующим процессом, поддержка сообщества – дарственные учреждения. Очень много стран в мире, включая Россию, это залог честной конкуренции в общей борьбе за лучший код и его начинают тестировать, а часто и внедрять продукты на основе Linux в максимальную эффективность. Так же и в России – мы работаем сов- государственных и учебных заведениях. Более того, к примеру, в США местно с Linux-сообществом, развивая его и помогая ему, но ни в коем этот процесс давно идет. Во многих университетах, во многих коллед- случае не конкурируя и не выделяясь из него. жах Америки Linux уже давно используется. Моя дочь, к примеру, учит- ся в MIT, и на ее настольном компьютере стоит Linux. В данном ВУЗе LXF: Каковы перспективы развития собственных операционных сис- Linux – очень распространенная система. тем IBM (AIX и z/OS) в свете развития Linux? Факт прихода нового поколения в Linux очень важен. Когда при- ИК: Linux и ОС IBM будут развиваться параллельно. AIX разрабаты- дет целое поколение, которое знает Linux и сможет сделать выбор вается специально под аппаратное обеспечение IBM System p, а z/OS – в более информированном пространстве, это безусловно пойдет на под IBM System z. Linux разрабатывается огромным сообществом, и он пользу всем. всегда хуже оптимизирован под конкретную платформу, чем операци- онная система того же производителя, который поставляет аппаратные LXF: А вы сами используете Linux у себя дома? Если да — то какой? средства – и лучше оптимизирован в целом, независимо от аппаратной ИК: Да, я и моя семья, мы используем Linux у себя дома. У нас платформы. несколько компьютеров, и мы иногда тестируем новые дистрибутивы. Одним заказчикам важнее оптимизация под разные платформы, Можно провести ревизию своих домашних компьютеров, но я уверена, другим – те преимущества, которые они могут получить от ОС, оптими- что там найдутся несколько популярных Linux’ов. LXF зированной под конкретные аппаратные средства. Одни выберут Linux, другие – AIX или zOS на соответствующей платформе. Безусловно, мы

Октябрь 2007 Linux Format 41 Пережить Slashdot-эффект

Как сделать Slashdot’о-упорным ваш сервер Ваш web-сервер подорвал силы, отбивая наплыв посетителей – аж по два обращения в секунду? Пол Хадсон покажет, как его излечить.

igg, Reddit, Delicious, Furl, Newsvine и другие крупные сай- Но вот беда: большинство сайтов именно что рухнет. Slashdot- ты новостей посещаются миллионами пользователей, но, эффект получил свое название из-за того, что орды нагнанных им вообще говоря, лишь один из них популярен достаточно, визитеров превышали пределы возможностей сайтов, и последние в чтобы дать имя явлению, вгоняющему в пот сисадми- конце концов падали. Если же вы настроены серьезно и хотите, чтобы нов:D Slashdot-эффекту. Новости на нем, возможно, вам и не по вкусу, ваш сайт был доступен всегда и везде, то есть много способов сдер- но Slashdot остается едва ли не главной отрадой хакеров в Интернете. жать напор посетителей. Да, надо взяться за оружие и показать пры- Ссылка на ваш web-сайт, включенная в одну из новостей с главной стра- щавым слэшдоттерам, что вам плевать на 500 запросов в секунду, что ницы, приведет к вам за несколько часов более сорока тысяч человек, вам приятно быть как Dugg и что Delicious остается только отирать с что чревато двумя исходами: либо огромным ростом прибыли от рекла- лица грязь, летящую из-под ваших копыт. Короче, пора превратить ваш мы (больше народу прокликает ваши баннеры), либо тем, что ваш сер- медленный и средненький web-сервер в супербыстрый и супернадеж- вер расплавится, погрузив сайт в анабиоз ожидать волшебного поцелуя, ный сервер вашей мечты. который вернет его к жизни. Более того, если ваша история интересна широкой аудитории, то ее переопубликуют сотни других сайтов, источни- Живи и дай умереть ком новостей для которых является Slashdot, и посетителей может быть [В заголовке – название известной песни Пола Маккартни, – прим. пер.] в несколько тысяч раз больше – если, конечно, ваш сайт не рухнет. Быстрота вашего кода особого значения не имеет: в конечном итоге все зависит от грамотности настройки Apache. Проблема в том, что люди думают: «Ну вот, сайт протестирован: он справляется, даже когда на него заходит сразу 20 человек – отлично!» 20 обращений в секунду – это Предупреждение: до старта неплохо, если вы размазываете число посещений в месяц равномерно по месяцу. Когда мы спросили, насколько опасен Slashdot, у эксперта LXF Внесение изменений в настройки вашего сервера может привести к непресказуемым послед- по web-технологиям Майка Сондерса, тот побледнел, задрожал и не сра- ствиям. Мы советуем использовать для этих тестов не занятый в основной деятельности сервер и перед внесением любых изменений в настройки делать резервную копию всех файлов систе- зу ответил: «Slashdot-эффект – это как тысяча термитов, грызущих ваши мы. После изменения настроек Apache/MySQL не забудьте перезапустить сервисы, чтобы новые сетевые кабели». И когда он говорил о тысяче, он и имел в виду тысячу: параметры вступили в силу. двадцать обращений в секунду – это неплохо, но если ссылка на ваш сайт угодит на Slashdot, реально получить до тысячи обращений в секунду.

42 Linux Format Октябрь 2007 Пережить Slashdot-эффект

Первый эффект Slashdot возникает тогда, когда из-за огромного Zend Platform количества одновременно открытых соединений посетителям не удается отслеживает наличие соединиться с сервером, даже если он еще жив и нормально обрабаты- проблем с PHP на вает запросы. И они нажимают на кнопку «Обновить», и делают это сно- web-сервере, а также автоматически ва и снова; и рано или поздно сервер в самом деле падает. Вот вам и вто- ускоряет выполнение рой эффект Slashdot: ваш сервер становится дымящейся развалиной. скриптов. Таким образом, решение проблемы состоит в выборе: обеспечить пользователям либо 100%-ную производительность ресурса при низ- кой загрузке и 5%-ную при высокой, либо 90%-ную при низкой и 70%- ную при высокой. Большинство людей предпочло бы второй вариант, потому что большую часть времени почувствовать разницу между 90% и 100%-ной производительностью невозможно. Но когда на сайт захо- дят тысячи посетителей и время имеет значение, различие между эти- ми вариантами становится очевидным. Эти два варианта разделены одной строкой в файле настроек User 2 запросил foo.jpg Apache: KeepAlive. Она появилась в HTTP/1.1 и предназначена для того, User 3 запросил foo.jpg чтобы разрешить постоянное соединение между клиентом и сервером. User 4 запросил index.html Браузер без поддержки KeepAlive соединяется с сервером, загружает User 1 запросил bar.jpg страничку, отсоединяется, затем проверяет, есть ли на странице рисун- User 2 запросил bar.jpg ки и другие вложения, после чего создает отдельные соединения для User 3 запросил bar.jpg каждого из этих объектов. Это требует массы дополнительных дей- User 4 запросил foo.jpg ствий, поэтому KeepAlive сохраняет одно соединение открытым около User 4 запросил bar.jpg 15 секунд, позволяя пользователем загрузить в его ходе несколько Это куда справедливее, и вероятность того, что будет обслуже- файлов. Если на вашем сайте много графики, то включение поддерж- ны все пользователи, а не несколько приоритетных, намного выше. ки KeepAlive способно уменьшить время ожидания (это не то же самое, Убедились? Так и должно было быть! Чтобы отключить поддержку что время загрузки страницы) примерно вдвое. KeepAlive, откройте файл настроек Apache (обычно /etc/httpd/httpd.conf Все это хорошо, но вспомним, что Apache поддерживает не более или /etc/apache2/apache2.conf) и измените строку 256 одновременных соединений. Так что если пытаются подключить- KeepAlive On ся 1000 пользователей, то Apache откроет соединения с двумястами на строку пятьюдесятью шестью из них, обработает их запросы на все страницы KeepAlive Off и картинки, потом оставит соединение открытым на 15 секунд на слу- После перезапуска Apache разницы в скорости вы почти не замети- чай, если клиенты затребуют еще что-либо, и, наконец, закроет их. Тут те. Но когда наступит критический момент и ваша история станет пер- можно перейти к обслуживанию других пользователей. Здесь есть две вой на Slashdot, тогда вы почувствуете разницу. основные проблемы. Во-первых, глупо сохранять соединение откры- тым в течение 15 секунд, когда его ждут сотни других пользователей. Оснастка PHP Во-вторых, приоритет загрузки изображений над загрузкой содер- Итак, Apache заработал на полной скорости; мы можем обратить наш жимого – штука неправильная по сути. Если отключить поддержку взгляд на PHP, на котором написано большинство популярных web- KeepAlive, то файл журнала запросов будет выглядеть примерно так: сайтов. С PHP связаны две основные проблемы: User 1 запросил index.html 1 Это интерпретируемый язык, и скрипт должен компилироваться User 2 запросил index.html каждый раз, когда запрашивается страница. Как ни странно, время User 3 запросил index.html компиляции часто гораздо больше времени выполнения. User 1 запросил foo.jpg 2 Код многих популярных проектов оставляет желать лучшего или слишком раздут. Примерами последнего могут служить PHPBB и PostNuke. Но даже если качество кода очень высокое (например, Управление несколькими MediaWiki или Drupal), первая проблема все равно остается. Есть и еще одна проблема, но от нее обычно страдают только серверами Apache системные администраторы Windows: если интерпретатор PHP запус- кается в режиме CGI, то он работает ужасно медленно. В Linux PHP Ваш сервер Apache может поддерживать не более 256 одновременных чаще всего уже сконфигурирован для запуска как модуль Apache, так соединений. Это много, но недостаточно для победы над Slashdot’ом, как этот способ обеспечивает наилучшее быстродействие. Если вы не поэтому ваша цель – обработать эти запросы как можно быстрее, чтобы к серверу могли подсоединиться другие пользователи. Однако уверены, создайте файл info. в корневом каталоге web-сервера и ваш сервер может быть не настроен на обработку такого количества добавьте в него следующие строки: одновременных соединений – загляните в файл настроек Apache сразу количество серверов, создаваемых при запуске сервера, второй – Загрузив этот файл в браузере, в разделе Server API вы должны количество серверов, для которых разрешен запуск, и третий – сколь- увидеть строку Apache 2.0 Handler. Если ее нет, то PHP работает не с ко запросов должен обрабатывать каждый сервер, прежде чем он максимальной производительностью, и вам нужно установить пакет будет снят. Если нагрузка вашего сайта высока, можно увеличить mod-php5 для сервера Apache. значение StartServers до 32, при этом убедившись, что значение Но даже если PHP настроен правильно, ваша работа только начина- MaxClients также высокое. Однако здесь есть одно условие: сервер MySQL может обрабаты- ется: вам предстоит установить кэш и оптимизатор кода, разобраться, вать ограниченное количество соединений. И если серверов Apache как сгенерировать отчет, если страницы загружаются слишком долго; больше, чем соединений MySQL, то узкое место системы смещается к наконец, все это должно работать как можно быстрее, потому что наша MySQL, и вам нужно увеличить количество соединений в настройках цель здесь – одолеть Slashdot, а не тратить кучу времени на редактиро- сервера MySQL. вание файлов конфигурации. Моментальное решение – Zend Platform, которая умеет все вышепе-

Октябрь 2007 Linux Format 4 3 Пережить Slashdot-эффект

речисленное и даже больше. Эта среда хороша тем, что с ней можно ни о чем не думать – вы ее устанавливаете, и она автоматически кэширует Постоянные соединения: и ускоряет выполнение всех страниц на сервере без вашего участия. Если сайт достаточно крупный, то вам, возможно, захочется увеличить друг или враг? количество оперативной памяти, выделяемой под кэш – по умолчанию это 64 МБ, вполне достаточно для кэширования тысячи PHP-скриптов PHP позволяет устанавливать постоянные соединения с сервером приличного размера. Вспомним, что кэш кода позволяет компили- MySQL. На практике это означает, что каждый поток сервера Apache ровать скрипты PHP лишь один раз, сохраняя в оперативной памяти создает свое собственное соединение с базой данных. Преимущество результат компиляции, что ускоряет их выполнение. В результате ваш такого подхода в отсутствии создания и закрытия соединений каждый раз, когда выполняется новый скрипт. Но это также означает, что сайт работает не хуже, чем раньше, а число обращений в секунду уве- сервер MySQL должен поддерживать как минимум столько одновре- личивается в три-четыре раза. менных соединений, сколько запущено серверов Apache. Второе Если вы хотите еще подхлестнуть свой сервер, попробуйте дина- неудобство – многие приложения PHP не поддерживают постоянных мическое кэширование содержимого: страниц, не изменяемых обра- соединений; однако в вашем собственном коде с этим легко справить- щением к ним. Например, допустим, форма с запросом GET вызывает ся. только получение данных, а запрос POST преобразовывает страницу. Динамическое кэширование страниц в Zend Platform позволяет избе- жать ненужных обращений к базе данных для тех страниц, содержимое В Ubuntu эта команда находит файлы конфигурации MySQL в ката- которых не меняется. На практике хранение кэшированных страниц в логе /usr/share/doc/mysql-server-5.0/examples, например, my-huge. оперативной памяти обеспечивает дополнительное повышение скоро- cnf с конфигурацией MySQL для крупных серверов. Изучая эти фай- сти в 4 раза по сравнению с традиционными системами с кэшировани- лы, можно узнать много нового, особенно потому, что в начале фай- ем на жестком диске. ла содержатся комментарии, поясняющие, для каких систем данный Если вы еще не файл больше всего подойдет. «Кэш запросов – одна из убеждены, что Zend Если по-простому, учитывать надо следующие параметры: Platform может снять Размер ключевого буфера. самых недооцененных с вас тяжкое бремя, Размер кэша запросов. характеристик MySQL.» подумайте вот о чем: Настройки совместного выполнения потоков. эта система бесплатна Размер кэша таблиц. для разработчиков. Это означает, что пока эта платформа не работает Это не полный список кэшей и буферов, используемых MySQL, на настоящем сервере, вы можете пользоваться ей совершенно без- но только изменение именно этих параметров приводит к заметным возмездно. Стоимость лицензии на продукт – 685 фунтов в год без результатам. учета НДС, включая поддержку через Интернет. Проверить, достаточен ли объем ключевого буфера, очень просто. Соединитесь с сервером MySQL и в командной строке выполните сле- Мой, мой MySQL дующую команду: Многие используют для MySQL движок MyISAM – прежде всего пото- SHOW STATUS LIKE ‘%key_read%’; му, что он работает очень быстро, заставляя забыть о потенциальной Вы получите два числа: Key_read_requests и Key_reads. Первое возможности повреждения данных. Но если что-то уже с ходу работа- показывает, сколько раз в базе данных производилось считывание ет быстро, это не значит, что нельзя добиться еще большей скорости. ключа индекса, а последний – сколько раз ключ не удавалось найти в Этим мы сейчас и займемся, поскольку, кое-где подправив файлы кэше, и он считывался с диска. Для большинства сайтов необходимо, конфигурации, можно реально увеличить скорость работы MySQL. чтобы значение Key_read_requests было как можно больше по сравне- Правда, с оговоркой: чтобы достичь максимальной производительнос- нию с Key_reads. Определить числовой показатель качества можно с ти, потребуется много оперативной памяти. помощью простой формулы: Прежде всего откройте файл настроек MySQL – обычно это /etc/ 100 – ((Key_reads / Key_read_requests) * 100) my.cnf, /etc/mysql/my.cnf или что-то в этом роде. В вашем дистрибу- Вы берете значение Key_reads и делите его на Key_read_requests, тиве, скорее всего, уже есть файл с настройками по умолчанию, но затем умножаете результат на 100 и вычитаете получившееся число могут быть и файлы с настройками для различных типов серверов. из 100. Готово. Например, если у вас 30 Key_reads и 1177 Key_read_ Запустите updatedb для обновления локальной базы данных, затем requests, нужно разделить 30 на 1177, получится 0.025, затем умно- выполните команду: жить это число на 100, и получится 2.55, наконец, вычесть это число locate my- из 100, и получится 97.45%. Это означает, что 97.45% всех ключей индекса считываются из кэша – это великолепно! Если у вас полу- чилось менее 80%, то либо у вас проблемы, либо операций вставки, обновления и удаления данных просто очень много, что приводит к росту Key_reads. Если результат составил от 80 до 95 процентов, то нужно увеличить размер ключевого буфера – 256 МБ считается более или менее нормальным для больших баз данных. Если у вас получи- лось более 95%, беспокоиться не о чем. Кэш запросов – это одна из cамых недооцененных характеристик Сервер MySQL Enterprise MySQL. Он особенно удобен, когда объем данных большой, запросы автоматически выполняются часто, а данные изменяются редко. Когда вы выполня- выводит ете запрос, объем результата которого не превышает 16 МБ, то этот информацию о числе результат помещается в кэш. Если тот же запрос поступает снова, его обращений к кэшу и результат берется из кэша. Фокус состоит в том, что если данные в числе соединений, а какой-либо из таблиц, участвующих в кэшированном запросе, изменя- также другую ются, кэш автоматически очищается, чтобы результат снова формиро- полезную статистику, вался непосредственно из базы данных. которая поможет вам В файле настроек MySQL размер кэша запросов определяется настроить сервер. переменной query_cache_size в разделе [mysqld]. Например, рекомен-

44 Linux Format Октябрь 2007 Пережить Slashdot-эффект

Тестирование нагрузки

Прежде чем вносить изменения в конфигурацию Apache или MySQL, снимите характеристики вашего сайта. Лучший способ это сделать – это запустить на другом компьютере утилиту ab: она несколько тысяч раз обращается к серверу и оценивает время отклика. Для начала запустите эту команду ab -n 10000 -c 100 -k http://localhost/index.php Она отправит на ваш сервер 10000 запросов, разделенных на сто одновременных соединений. Ключ -k означает «использовать поддержку KeepAlive», что позволит вам оценить характеристи- ки сервера с поддержкой KeepAlive и без нее.

вы пользуетесь Zend Performance, то постарайтесь не вмешиваться в его работу. Например, MediaWiki (приложение, на базе которого работает Wikipedia) имеет возможность кэширования страниц (опция memcache). «Скомпилированные» страницы хранятся в оперативной Многие приложения PHP содержат собственные средства памяти и при необходимости извлекаются оттуда. Это может реально оптимизации, но внимательно проверяйте их, чтобы убедиться, что вы увеличить производительность, так как MediaWiki – крупное приложе- в выигрыше! ние, очень требовательное к системным ресурсам при преобразовании дованный минимум составляет кода из нотации wiki в HTML. query_cache_size=16M Но дело в том, что Zend Platform способно обеспечить гораз- “M” в MySQL означает МБ; таким образом, эта строка устанавлива- до лучшее кэширование, чем MediaWiki, и, объединив кэши, можно ет размер кэша в 16 МБ. Но если размер оперативной памяти позволя- использовать оперативную память наилучшим образом. Помните, что ет – а он должен – установите это значение в 64M, чтобы кэшировалось memcache – это общий способ кэширования, тогда как Zend Platform больше запросов. предлагает решение, направленное на PHP: она кэширует скомпилиро- Последние два параметра лучше сделать побольше. Для кэша таблиц ванные скрипты и выводимые страницы и автоматически отслеживает обычно вполне достаточно 128; если у вас больше 128 таблиц, просто изменения на сайте, поэтому всегда понятно, когда нужно обновить увеличьте это число. Что касается одновременного выполнения потоков, кэш. В MediaWiki вы в лучшем случае получаете кэш вывода, который то число параллельных потоков должно быть вдвое больше числа ядер не идет ни в какое сравнение. в вашем процессоре – стало быть, для четырехъядерного процессора Другие популярные проекты содержат различные средства оптими- установите его в 8. Вот и все: перезапустите сервер MySQL для принятия зации, которые нужно изучить более внимательно. Например, Drupal новых настроек и наслаждайтесь обретенной скоростью! содержит средства оптимизации кэширования и сжатия данных, но мы опять же рекомендовали бы вам оставить кэширование отключен- Улучшенный мониторинг MySQL ным (как по умолчанию), зато попробовать включить сжатие CSS. До MySQL входит в большинство дистрибутивов, поэтому многие не зна- и после внесения изменений всегда снимайте контрольные характе- ют, что существует превосходная коммерческая версия продукта – ристики, чтобы убедиться в том, что вы случайно не замедлили работу MySQL Enterprise. Эта версия использует тот же сервер, что и MySQL, системы. но с выходящими каждые три месяца пакетами обновления, службой Итак, наше краткое руководство по оптимизации web-сервера поддержки, и – главное – сетевым монитором MySQL. Это очень тол- подошло к концу. Применив эти настройки, вы сможете пережить ковый набор программ, который локально запускает собственный web- испытание не только Slashdot’ом, но и Slashdot’ом в сочетании с Digg, сервер и сервер MySQL, подключаемые ко всем остальным серверам StumbleUpon, Furl, Reddit, Delicious и другими крупными сайтами – на MySQL и формирующие подробный отчет об их работе. Если один из деле вас ограничивает лишь объем оперативной памяти и частота про- серверов перестает отвечать на запросы, или загрузка его процессора цессора. Вам осталось только придумать что-нибудь этакое, чтобы или использование оперативной памяти достигает предельного зна- ваш сайт засветился на Slashdot, а вот с этим, боюсь, я помочь уже чения, сетевой монитор отправляет сообщение об этой проблеме на не смогу… LXF web-интерфейс администратора и даже выводит небольшие графики использования ключевых буферов, числа соединений и т.д. Кроме того, предоставлятся консультативный сервис MySQL, кото- рый сканирует MySQL-сервер и формирует список возможных про- блем: нет ли правил, которыми вы пренебрегаете? Возможны ли проблемы с безопасностью в вашей конфигурации? Самым полез- ным из таких сервисов являются советы по использованию памяти: ведется наблюдение за использованием буферов и даются рекомен- дации по оптимизации настроек – вся умственная работа выносится за скобки… Настройки для отдельных приложений Вместе с MySQL Enterprise вам предоставляется доступ к службе под- держки при возникновении каких-либо проблем, однако пока вы не особо налегаете на MySQL (особенно с репликацией), проблемы вряд ли возникнут. В любом случае, следует попробовать 30-дневную тесто- вую версию MySQL Enterprise – установить ее на свой сервер, дать ей поработать несколько дней на настоящем сайте и посмотреть, не посо- ветует ли эта система что-нибудь полезное. Некоторые сложные приложения на PHP содержат встроенные средства оптимизации, помогающие ускорить их выполнение, но если

Октябрь 2007 Linux Format 4 5 Что за штука? OpenMoko

Что за штука…

На DVD

Обзор Greenphone Учебник по OpenMoko телефонии в Linux Cчитаете ли вы изобретателем телефона Шарля Борселя, Филипа Рейса, Антонио Меуччи или Александра Грэма Белла, Ник Вейч найдет, что вам возразить.

Я так вижу, что речь опять пойдет о заморочках жений к мобильным телефонам, что может привлечь жаждущих принять участие. Впрочем, «кривых» уст- с открытым ПО. О чем сегодня? Очередная сис- больше производителей мобильных устройств к уста- ройств хватает. тема управления контентом? новке на них Linux. Да, вы правы, это открытый проект, но не совсем тот, В чем же отличие OpenMoko? что можно запустить на вашем web-сервере. Ну разве Минуточку, но ведь телефонов на Linux и без Дело не в отличиях, это вообще другая плат- что на очень, очень маленьком… того полно? форма. Но в некотором смысле разработка более Да не так уж и полно. Motorola выпускает несколько открыта: кроме проприетарных драйверов для GPS и Смеетесь? А я-то думал, что вы тут все объяс- устройств на базе Linux, но они предназначены в основ- GSM, все остальные исходные коды вышли под откры- няете – так что давайте, делитесь… ном для японского рынка. Конечно, есть Greenphone от тыми лицензиями и могут быть вполне законно моди- OpenMoko – это название проекта, разрабатывающего Trolltech, который вышел в августе прошлого года, но фицированы любым желающим. новую мобильную платформу. Цель проекта – сво- что-то не заметно толпы компаний-производителей, Ядро OpenMoko базируется на обычном ядре 2.6.21 бодная и открытая платформа для разработки прило- и оснащено некоторыми открытыми усовершенство-

46 Linux Format Октябрь 2007 OpenMoko Что за штука?

ваниями пользовательского интерфейса и доступа к основу команда взяла один из собственных телефо- инструменты для перепрошивки телефона и работы с оборудованию, но основная часть не особо завязана на нов. Да вы не думайте, что FIC – убогое устройство. загрузочным образом. Linux. Например, для подключений по Bluetooth и GSM Текущая версия оснащена 128 МБ ОЗУ, 64 МБ флэш- используются стандартные открытые библиотеки. носителем и слотом для microSD. Здесь есть и GPS, и Ну, а если у меня нет лишних $400, чтобы выло- GPRS/GSM, и прекрасный VGA-экран. Хотя они и пыта- жить за телефон, который к тому же и не на А это хорошо? ются разработать платформу и добиться ее стабиль- 100% работает – могу ли я участвовать в OpenMoko? Судите сами, ведь когда обе платформы – и ности на отдельно взятом устройстве, в дальнейшем Конечно. Комплект разработчика, как уже было сказа- мобильного устройства, и настольного компьютера – возможен перенос системы и на другие телефоны. но, создан под FIC1973. Но ведь это всего лишь моди- пользуются одинаковыми библиотеками, насколько фицированная версия Linux для процессора ARM – ее же упрощается портирование приложений, не говоря В самом деле? Что-то этого не заметно… нетрудно эмулировать с помощью Qemu, настроить и уже о разработке и тестировании. По-моему, вско- Возможно, но ведь в OpenMoko участвует не т.д. Разумеется, эмулировать некоторые аппаратные ре следует ожидать обычного наплыва портов Doom одна команда, в проекте заинтересованы многие раз- функции настоящего телефона невозможно (напри- и игрушек-головоломок. В области взаимодействия работчики и организации. Один из энтузиастов ухит- мер, функции GSM/GPS), зато можно разрабатывать с пользователем в настоящее время предлагаются рился установить систему на свой Palm Treo. и тестировать приложения пространства пользователя GTK и als. или загружать программы, разработанные для устрой- Ну хоть про это я что-то слышал. Так для каких ства другими людьми. Фактически, большинство про- GTK? Это чтобы проще было Gnome еще телефонов годится новая платформа? грамм будут основаны на GTK, а это значит, что их позвонить? Официально поддерживается пока лишь FIC1973, но можно смело портировать на настольный ПК. Эй, шучу здесь я… видятся перспективы переноса платформы на подоб- ные устройства, оснащенные чипами ARM. На рынке Вы считаете, это тот самый телефон, что прине- Ну, раз уж вся разработка открыта, теперь мобильных телефонов процессоры ARM вездесущи, сет славу Linux? пользователи оседлают сотовых операторов и поэтому о возможностях речь не идет, остается лишь Есть и другие претенденты. Что-то может получить- вообще перестанут платить за переговоры, а? руки приложить. Понятно, что в основном усилия ся из инициативы Trolltech (телефон Greenphone мы Да нет, вряд ли. В конце концов, соединение происхо- дит через провайдеров, а уж они-то пристально сле- дят, что можно делать в их сетях, а что – нельзя. «Представьте себе, что в будущем вы Какой же тогда во всем этом толк? сможете перенести все свои данные, А толк состоит в том, что разрабатывается универсальная, функционально богатая платформа, настройки и софт на новый гаджет.» позволяющая извлечь максимальную пользу из «про- двинутой» аппаратуры, и она упростит разработку OpenMoko будут направлены на телефоны с сенсорны- рассматривали в LXF91, а руководство разработчи- приложений для мобильных устройств, да и пользо- ми экранами, а это разом вычеркивает многие потен- ка к нему от Грэма Моррисона из LXF92 записано ватели не будут забыты. Представьте себе будущее, циальные приложения с другими интерфейсами. на сопроводительный DVD нынешнего номера Linux когда, обновляя свой мобильник, вы сохраните свои Format). Motorola вносит значительный вклад в разви- данные и настройки и просто перенесете их на новую Черт возьми, я посмотрел спецификацию теле- тие Linux, а есть и новички, например, ROAD Handy PC трубку: ведь все приложения будут там работать. Да и фона и обнаружил, что в нем нет даже WiFi. Не (www.road-gmbh.de/englisch/index.html). Но OpenMoko просто сможете запускать свои любимые программы проще ли взять две пустые консервные банки, и при имеет среди них нисколько не худшие шансы. на мобильном телефоне. помощи натянутой струны… Покамест FIC1973 – тоже опытный образец. Телефон А вы ничего не забыли? Здорово. Какие же телефоны поддерживаются, будет обновлен – вероятно, в этом году – и снабжен Что, мамулин день рождения? А, понял, вы име- и где можно их купить? новой спецификацией. Есть сведения, что он будет ете в виду Интернет-адреса сайтов, где можно узнать Для конечного пользователя OpenMoko пока не имеет оснащен более быстрым процессором и WiFi на осно- больше. Хорошо. Страниц на SourceForge по этому стабильной версии. Хотя целью является платфор- ве Atheros. вопросу нет, поэтому единственное место, где можно ма, пригодная для установки на любой телефон, в получить информацию – это Wiki на сайте OpenMoko. настоящее время разработка сконцентрирована на Хм, а пока что — покупать недоделанную Там собрано немало сведений не только об отдель- единственном устройстве, FIC1973. В свое время этот трубку? ном проекте, а обо всех аспектах разработки ПО для телефон прочили на замену iPhone, хотя, разумеется, Для первого поколения устройств на сайте OpenMoko мобильников. Возьмите стилус и настучите в браузере iPhone уже с нами. Тем не менее, FIC1973 смотрится доступен комплект разработчика. Разумеется, вы буде- вашего Linux-смартфона: http://wiki.openmoko.org/wiki/ неплохо и обладает похожим интерфейсом через сен- те предупреждены о том, что кроме базовых функций Main_Page. LXF сорный экран. В наличии GPS и прочие функции, хотя приема и отправки телефонных вызовов, с телефоном HDSPA, развивающийся стандарт мобильной широко- мало что можно сделать, если вы сами не возьметесь полосной связи, не поддерживается тоже. за разработку ПО. Даже обновленная модель вряд ли ПОКА ВЕРСТАЛСЯ НОМЕР будет предназначена для обычных пользователей (ну, Компания Trolltech объявила о выпуске продукта Qtopia Я и не слыхивал о такой фирме. Неужели лиде- разве что для тех, кому хочется казаться крутым). Phone Edition для Neo1973 и платформы OpenMoko. ры проекта не могли найти более известного Таким образом, сторонние разработчики получили брэнда? И за эти «привилегии» предлагается еще и возможность выбора инструментария – GTK+ (Hildon) Ну, брэнд FIC широко известен в Китае. А поскольку платить? или Qt. Примечательно, что для этой платформы основная часть разработчиков работает в FIC и вся Телефон первого поколения стоит $300, а $540 – цена Qtopia Phone Edition был впервые представлен по поддержка исходит от него же, неудивительно, что за с полным комплектом разработчика, в который входят лицензии GPL (версия 2).

Октябрь 2007 Linux Format 47 Служба доменных имен

DNS: Cвязующее звено Интернета

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

етырехбайтная адресация, лежащая в основе IP-протокола, на ров. Корневой сервер физически не в силах держать информацию обо котором, помимо всего прочего, зиждется сеть Интернет, удоб- всех доменах третьего (да даже и второго) уровня, так что все, что он Чна для операционных систем, но слишком тяжела для слабого может сделать, это послать нас... правильно, к DNS-серверу первого и изнеженного человеческого мозга. Поэтому «записная книжка», из уровня, который обслуживает зону ru. которой в любое время можно было бы узнать, что сайт linuxformat.ru В дела отдельных доменов и этот сервер не вникает, так что адреса нужно искать по адресу 88.212.196.134, а почту для mail.ru отправлять конкретных узлов не обслуживает. Зато он знает, какой DNS-сервер на 194.67.23.20, всегда будет востребована. отвечает за домен yandex.ru. Туда он нас (точнее, сервер нашего про- Поначалу с ролью такой «записной книжки» превосходно справлял- вайдера) и отправит. А вот DNS-сервер домена yandex.ru уже просто ся простой текстовый файл HOSTS.TXT. За его формирование отвечал обязан вернуть нам IP-адрес входящего в его зону ответственности Сетевой информационный центр Стенфордского института, а адми- хоста. Ну или послать... на этот раз просто послать, если искомый хост нистраторы и пользователи периодически скачивали его по FTP. Но не существует в природе. по мере роста числа компьютеров, объединенных в единую сеть, такое Таким образом, за каждый домен может отвечать свой админист- решение стало абсолютно неэффективным. ратор, настраивая DNS-сервер для его обслуживания, а вышестоящим В конечном итоге DNS (Domain Name System, система доменных серверам достаточно знать, что и кому они делегировали. За счет этого имен) уверенно и, похоже, надолго, заняла место службы, снабжающей и обеспечивается потрясающая масштабируемость, сделавшая службу нас информацией о том, какой же IP-адрес соответствует интересую- DNS столь эффективной. щему нас доменному имени. Основным преимуществом DNS является ее распределенная природа – информация не концентрируется в одном Желание клиента – закон месте, а разбросана по всему Интернету в соответствии с иерархичес- Начнем наше знакомство с клиентской части. Реализована она в виде кой структурой пространства доменных имен. стандартной библиотеки, и используем мы ее, можно сказать, ежеми- Во главе этой иерархии размещается так называемый корневой нутно, сами того не замечая. Если точнее, то используют ее те прило- домен, обозначаемый одиночной точкой. Из этого корня «растут» жения, с которыми мы работаем – браузеры, FTP- и почтовые клиен- домены первого уровня – ru, uk, com, net, org и т.д. Для реального ты, различные сетевые серверы, да практически любые приложения, использования доступны домены, начиная со второго уровня. Внутри работающие в сети. домена могут размещаться как отдельные хосты, так и поддоме- Настраивается клиент с помощью файла /etc/resolv.conf. В боль- ны. Например, www.ibm.com – хост в домене ibm.com, а austin.ibm. шинстве случаев достаточно указать там DNS-серверы, адреса которых com – поддомен. предоставляет вам провайдер: Здесь нужно ввести еще одно понятие – «зона». Зоной называют nameserver 1.2.3.4 область пространства имен домена, которая администрируется незави- nameserver 4.3.2.1 симо от остального пространства имен. Жесткой привязки к делению В современных дистрибутивах эта операция зачастую выполняется на поддомены здесь нет – поддомен может обслуживаться как авто- через графический интерфейс. Если для настройки сети используется номная единица, т.е. иметь свою зону (в этом случае говорят о делеги- DHCP-клиент, то он, как правило, и осуществляет «редактирование» ровании поддомена), а может входить в родительскую зону. /etc/resolv.conf. Т.е. обычный пользователь сталкивается с данным Так как же DNS позволяет узнать IP-адрес того или иного хоста, файлом не часто. Тем не менее, полезно знать, куда заглянуть в слу- например, www.yandex.ru? Выглядит это примерно так. Клиент отправ- чае проблем. ляет запрос близлежащему DNS-серверу (обычно это сервер провай- Помимо упомянутой опции nameserver, в resolv.conf могут задавать- дера, но мы увидим далее, что можно запустить и собственный). Этот ся и некоторые другие параметры, но сейчас они нам не слишком инте- сервер в общем случае не знает требуемый IP, и даже не представляет, ресны. Подробности ищите на странице man resolv.conf(5). где его искать. Поэтому обращается к одному из корневых DNS-серве-

48 Linux Format Октябрь 2007 Служба доменных имен BIND: Узелок на память

Теперь поговорим о сервере. Наиболее распространенным пакетом, Раз уж мы здесь, рассмотрим конфигурационный файл named.conf обеспечивающим работу службы DNS на Unix-подобных системах, чуть подробнее. Синтаксис у него, как видите, «Си-подобный», поэтому Скорая в настоящее время является BIND (Berkeley Internet Name Domain). не забывайте завершать каждую опцию и блок точкой с запятой. Блок помощь Посмотрим, какая от него может быть польза, даже если вы не распо- options содержит общие для сервера опции, для каждой обслужива- Если, несмотря лагаете собственным доменом. емой зоны должен присутствовать блок zone (обратите внимание на на все шаманство Установка сложностей никаких не представляет – даже если BIND зоны, по умолчанию присутствующие в named.conf; зона «.» – подсказ- с resolv.conf, не включен в состав вашего дистрибутива изначально, его, как пра- ка серверу, где искать корневые серверы, чтобы с чего-то начать). разрешение имен идет как-то не так, вило, несложно найти в официальном репозитории. Скажем, в Ubuntu загляните в /etc/ns- достаточно одной команды – sudo aptitude install bind9, и спустя 300 Своя зона switch.conf, в строку килобайт трафика один из лучших DNS-серверов в мире будет тру- Что еще можно сделать, имея собственный DNS-сервер? Ну, например, hosts. Там указан диться вам на благо. мы можем создать «локальную» зону для наших внутренних узлов. порядок поиска доменных имен: files Самое интересное то, что свежеустановленный BIND уже готов к Скажем, чтобы по адресу webserver.local открывалась наша внутренняя означает файл /etc/ работе в качестве кэширующего DNS-сервера. То есть он не отвечает интернет-страничка, а ftpserver.local вел на FTP-сервер. Конечно, мож- hosts, dns – поиск ни за какую зону (за исключением localhost), но способен разрешать но прописать необходимые соответствия в /etc/hosts на каждом узле с помощью DNS- поступающие к нему запросы, сохраняя ответы в локальном кэше. При локальной сети, но зачем так усложнять себе жизнь? клиента. Возможно, повторном запросе ответ уже будет возвращен из кэша, за счет чего Итак, в named.conf добавляем описание нашей «зоны»: тут и кроется проблема? достигается некоторая экономия трафика и времени. zone “local” { Для управления сервером (его исполняемый файл носит название type master; named) можно использовать стандартные средства вашего дистри- file “/etc/bind/local.db”; бутива (скажем, сценарий /etc/init.d/bind9; в других дистрибутивах он }; может называться просто bind или named). Помимо этого, существует И в файл /etc/bind/local.db заносим информацию о наших узлах: специальная утилита rndc (замечу, что, поскольку во время работы она $TTL 3d взаимодействует с уже запущенным демоном named, то запускать его @ IN SOA admin.ns.local. ( она как раз и не умеет). Чаще всего вы будете сталкиваться с коман- 1 ; Порядковый номер дой rndc reload [zone], позволяющей перезагрузить зону (или все зоны) 2d ; Период обновления после внесения изменений. Состояние сервера вернет вам rndc status. 1h30m ; Повторение попытки Введите rndc без параметров, и вы узнаете обо всех ее возможностях. 1w ; Устаревание slave-зоны Чтобы начать использовать свой DNS-сервер, укажите его IP-адрес в 1h ) ; Время жизни отрицательных ответов /etc/resolv.conf. ; IN NS ns.local. Пусть работает трактор в поле... ns IN A 192.168.0.254 Как нетрудно догадаться, чтобы получить IP-адрес, соответствующий webserver IN A 192.168.0.2 имени www.yandex.ru, кэширующий сервер будет вынужден итератив- ftpserver IN CNAME webserver.local. но обращаться к различным серверам, начиная с корневого, пока не В подробности вдаваться не будем – если интересно, ответы на получит искомое. Для крупного DNS-сервера это вполне нормальный все вопросы вы найдете в замечательной документации (man 5 named. режим работы (заодно пополняющий кэш сведениями о промежуточ- conf). Пока достаточно знать, что A-запись ставит в соответствие имя ных серверах), но в нашей небольшой сети мы хотели бы максимально хоста его IP-адресу, а CNAME-запись позволяет указать для хоста снизить нагрузку и трафик. В случае с BIND львиную долю нагрузки дополнительное имя. NS указывает на DNS-сервер, отвечающий за можно переложить на плечи DNS-сервера нашего провайдера, указав данную зону (т.е. на наш сервер). Полные доменные имена обязатель- в конфигурационном файле named.conf (в Ubuntu его можно найти в но должны заканчиваться точкой, имена без точки будут дополняться /etc/bind) параметр forwarders в разделе options: именем зоны. Ну и нужно знать про еще одну запись – PTR, отвеча- options { ющую за «обратное» разрешение (т.е. поиск доменного имени по IP- . . . другие опции . . . адресу), для которого нужно создать еще и in-addr.arpa-зону: forwarders { zone “0.168.192.in-addr.arpa” { 1.2.3.4; # IP-адрес DNS-сервера провайдера type master; }; file “/etc/bind/0.168.192.in-addr.arpa.db”; // forward only; }; }; Соответствующий файл 0.168.192.in-addr.arpa.db: Теперь все запросы, на которые наш сервер не сможет ответить $TTL 3d из своего кэша, он будет пересылать DNS-серверу провайдера (мож- @ IN SOA admin.ns.local. ( но указать и несколько), ожидая от последнего уже готового ответа. 1 ; Порядковый номер Раскомментировав строку forward only, мы вообще запретим нашему 2d ; Период обновления серверу самостоятельно искать ответ, даже если ни один из forward- 1h30m ; Повторение попытки серверов наш запрос не удовлетворит. 1w ; Устаревание slave-зоны

Октябрь 2007 Linux Format 49 Служба доменных имен

ного (master) сервера. Если данные этой зоны меняются не часто, то, Маленькие шалости с DNS единожды загрузив файл зоны (выполнив трансфер зоны), вы сможете самостоятельно обслуживать запросы к ней без обращений к DNS-сер- веру провайдера. Описывается slave-зона столь же легко: Думаю, вы уже поняли, что собственный DNS-сервер позволяет и немнож- zone “your.provider.ru” { ко пошалить. Например, что помешает нам создать master-зону microsoft. type slave; com? Вот наши пользователи удивятся, когда вместо www.microsoft.com file “/var/bind/slaves/your.provider.ru.db”; попадут на linux.org! Главное – не переусердствовать, ведь потерять дове- рие других людей – это уже совсем не шутки... masters { 1.2.3.4; }; # IP-адрес провайдерского DNS-сервера }; После перезагрузки сервера (например, командой rndc reload) у вас должен появиться указанный файл. Вручную создавать его не нуж- 1h ) ; Время жизни отрицательных ответов но; только позаботьтесь, чтобы каталог /var/bind/slaves принадлежал ; пользователю BIND или, как минимум, был доступен ему на запись. IN NS ns.local. Теперь ваш сервер сможет авторитативно (то бишь компетентно, офи- 2 IN PTR webserver циально) отвечать на запросы, касающиеся зоны your.provider.ru, без 254 IN PTR ns дополнительных обращений к серверу провайдера. (Нужно заметить, Фигурирующую в самом начале SOA-запись можно, не вдаваясь что зачастую администраторы DNS-серверов по соображениям безо- в особые подробности, скопировать из какого-нибудь файла-приме- пасности запрещают передачу зоны на произвольные узлы. Если это ра – в ней задаются преимущественно различные таймауты, и значе- ваш случай, то попросите провайдера разрешить трансфер для вашего ния по умолчанию обычно неплохо подходят. Точка с запятой начинает адреса – в конце концов, он тоже заинтересован, чтобы его сервер не комментарий. беспокоили по пустякам.) На всякий случай замечу, что файлы зон вы вольны называть как Кстати, то, что мы получили, на самом деле не настоящий slave- душе угодно. Просто для удобства принято, чтобы имя файла соответ- сервер, поскольку ни одна из NS-записей зоны your.provider.ru на него ствовало обслуживаемой зоне: сразу видно, за что именно тот или иной не ссылается. Так что «чужие» о нашем сервере ничего не узнают и не файл отвечает, и не обязательно сверяться с named.conf. смогут им пользоваться – а нам оно и не надо... Если же вы настраива- Теперь машины нашей локальной сети будут получать нужные ете полноценный slave-сервер для делегированного вам поддомена, то адреса при запросах к «зоне» local (при условии, что в настройках в укажите его в файле зоны в качестве NS-сервера наряду с основным: качестве DNS-сервера указан наш), ну а запросы к другим зонам будут @ IN NS ns.mydomain.ru. обслуживаться как в случае кэширующего сервера. IN NS slave.mydomain.ru. Теперь клиенты будут обращаться случайным образом как к основ- Служить бы рад... ному, так и к подчиненному серверу, распределяя нагрузку. А в случае Рассмотрим еще один случай. Предположим, что пользователи вашей выхода из строя основного, slave-сервер, как ему и положено, возьмет небольшой локальной сети активно работают с ресурсами, имена кото- обслуживание зоны на себя. рых обслуживаются зоной вашего провайдера. Безусловно, использо- вание кэширующего DNS-сервера поможет разгрузить и DNS-сервер провайдера, и ваш интернет-канал. Однако можно поступить еще луч- ше – настроить свой BIND в качестве slave-сервера для зоны провайде- ра. Подчиненный (slave) сервер DNS предназначен для резервирования основного сервера, т.е. он тоже занимается обслуживанием зоны, но с той разницей, что файл зоны он берет не с диска, а скачивает с основ-

Другая точка зрения

Допустим, у вас есть делегированный вам домен mydomain.ru, который match-clients { 1.2.3/24; }; обслуживается вашим DNS-сервером. И здесь может возникнуть две zone “mydomain.ru” { интересные задачи. Во-первых, иногда нужно скрыть некоторую инфор- type master; мацию от любопытных глаз, предоставляя ее лишь избранным. Например, file “/etc/bind/mydomain.clients.db”; ваша компания оказывает услуги доступа в Интернет, и вы хотите, чтобы }; ваш FTP-сервер посещали лишь ваши абоненты. (Да, это делается . . . прочие зоны . . . настройкой самого FTP-сервера, но было бы неплохо, чтобы посторон- }; ние о нем даже и не знали...) Можно ли предоставить адрес вашего сервера только пользователям конкретного домена? view “others” { Во-вторых, в локальной сети, как правило, используются «серые» IP-адре- match-clients { any; }; са, и обращение к «внешним» по отношению к ней ресурсам связано с zone “mydomain.ru” { трансляцией адресов. Но если ресурс работает на машине с несколькими type master; сетевыми интерфейсами и доступен в том числе и по «серому» адресу, то file “/etc/bind/mydomain.db”; такая трансляция уже несколько избыточна. Можно ли возвращать пользова- }; телям локальной сети «серый» адрес в ответ на запрос, не вынуждая их . . . прочие зоны . . . использовать альтернативные имена типа inner.mydomain.ru или тот же }; «домен» local? Такими настройками мы выделили два «вида» – для наших клиентов (сеть В случае использования BIND9 ответы на оба вопроса будут положитель- 1.2.3.0/24) и всех остальных. Осталось лишь подготовить различные файлы ны. В нем появилась одна замечательная штука – оператор view. Он позволя- одних и тех же зон для разных «видов», и задача будет решена. Обратите ет разграничить «виды» одной и той же зоны для разных групп клиентов. внимание, что если вы приняли решение использовать «виды», то не должно Выглядит это примерно так: быть ни одного оператора zone, не входящего в какой-нибудь оператор view “clients” { view.

50 Linux Format Октябрь 2007 Служба доменных имен dnsmasq: не BIND’ом единым...

BIND является одним из самых мощных и настраиваемых DNS-серве- server=/provider.ru/1.2.3.4 ров. Однако порой его возможности выглядят излишними, а кого-то server=4.3.2.1 Скорая могут и испугать... Эти строки предписывают dnsmasq игнорировать сведения из /etc/ помощь Конечно, BIND нельзя назвать ресурсоемким приложением, осо- resolv.conf и использовать сервер 1.2.3.4 для разрешения имен домена Если ваш бенно применительно к современному оборудованию. Да и настройки provider.ru, и сервер 4.3.2.1 для всех прочих запросов. DHCP-клиент не столь обременительны, в чем я, надеюсь, вас убедил. Однако, если Помимо выбора forward-серверов, вы можете указать пользователя ISC при каждой единственной задачей, возлагаемой на локальный DNS-сервер, явля- и группу, от имени которых будет выполняться dnsmasq, конкретизи- перезагрузке ется кэширование запросов пользователей, то для ее решения можно ровать интерфейсы, на которых dnsmasq будет ожидать запросы от затирает resolv.conf, раскомментируйте воспользоваться и более специализированным сервисом. пользователей и т.д. строку «prepend Одним из таковых является кэширующий DNS-сервер dnsmasq (по Еще одна полезная особенность – по умолчанию dnsmasq при стар- domain-name-serv- совместительству он может выполнять и роли DHCP-сервера, раздавая те читает файл /etc/hosts и заносит найденную там информацию в ers 127.0.0.1;» в машинам локальной сети IP-адреса и прочие сетевые настройки, необ- свой кэш. Благодаря этому можно обеспечить разрешение локальных /etc/dhcp3/dhcli- ent.conf. Вместо ходимые для работы, и TFTP-сервера для обеспечения работы бездис- имен без необходимости синхронизировать /etc/hosts на всех машинах 127.0.0.1 укажите ковых станций, загружающихся по сети). Его установка выполняется локальной сети. Если вам эта функция не нужна, отключите ее опцией IP-адрес своего столь же легко, как и BIND – многие дистрибутивы уже включают его в no-hosts. DNS-сервера. базовой поставке, если нет – почти наверняка вы найдете его в офици- Помимо редактирования файла dnsmasq.conf, практически все альном репозитории. Для настройки используется файл /etc/dnsmasq. параметры работы можно задать непосредственно в командной строке. conf (в других дистрибутивах место расположения может быть иным). Подробности – на man-страницах. То, что конфигурационный файл содержит свыше 400 строк, не Как видите, собственный DNS-сервер может оказаться весьма должно вас пугать – большую их часть составляют довольно подро- полезной (ну, как минимум, интересной) штукой, даже если в вашей бные комментарии, да и значимые строки отвечают преимущественно локальной сети всего пара машин, а о собственном домене вы и не за работу сервера DHCP. Основные же DNS-параметры сосредоточены помышляете. И настроить его совсем не сложно. Так что дерзайте! в начале файла. LXF На что следует обратить внимание в настройках? Во-первых, dnsmasq руководствуется файлом resolv.conf, определяя, каким DNS- серверам следует перенаправлять запросы, которые не могут быть удовлетворены из кэша. При необходимости вы можете определить другой файл вместо /etc/resolv.conf в параметре resolv-file либо запретить его использование, раскомментировав параметр no-resolv. Параметрами server можно указывать «вышестоящие» DNS-серверы прямо в конфигурационном файле. Причем вы можете даже задавать различные серверы для отдельных доменов: no-resolv

Другая точка зрения

DNS работает как бы сам по себе, но если начинаются проблемы, это сказывается самым неожиданным образом на самых различных прило- Name: linuxformat.ru жениях: от браузера до сервера электронной почты. Пока за DNS отвеча- Address: 88.212.196.134 ет ваш провайдер, беспокоиться особо не о чем, но раз уж мы взялись Помимо командного режима, nslookup поддерживает и интерактивный – сами за настройки этой службы, то нужно быть готовым к различным запустите ее без параметров, и вас встретит приглашение командной строки, сюрпризам. где возможности тестирования DNS гораздо шире. Традиционно для тестирования работы DNS используются утилиты Вторая утилита – dig – выдает более подробную информацию согласно nslookup и dig. Первая издавна шла в составе пакета BIND, и пользоваться секциям DNS-ответа. Она менее удобна в повседневной жизни, зато позволя- ею очень просто – укажите в качестве аргумента доменное имя, и утилита ет лучше понять работу протокола DNS и более точно определить точки воз- вернет IP-адрес и сведения о сервере, который использовался для разреше- никновения ошибок. ния имени. При необходимости вы можете указать любой DNS-сервер вто- Одной из полезных особенностей этой утилиты является возможность рым аргументом, которому будет отправлен запрос: задать в переменной окружения LOCALRES путь к альтернативному файлу amsand:~$ nslookup linuxformat.ru ns.mezon.ru вместо resolv.conf. Эта переменная никак не влияет на работу других про- Server: ns.mezon.ru грамм, так что с помощью dig можно проверить работоспособность нового Address: 83.68.34.21#53 файла либо использовать альтернативный в особых случаях.

Октябрь 2007 Linux Format 51 Мнение: Джереми Эллисон

Неподвластное времени

едавно в Тулсе, Оклахома, была извлечена из земли памят- лет). Представьте себе, как лет через 500 некий историк обнаружива- ная капсула 1957 года. Ее основным содержимым был ет «засекреченный бункер» вице-президента Чейни, где спрятан его Джереми Н автомобиль — Плимут Бельведер 1957 года. При закладке личный ноутбук. «Ура, – думает этот историк, – наконец-то мы узнаем, Эллисон капсулы его предусмотрительно снабдили канистрой бензина, сочтя, кто же давал советы этой администрации по поводу нефтяной полити- что летающие автомобили 2007 года уже не будут нуждаться в столь ки!» – и вновь погружается в океан, поглотивший бывший Вашингтон. Джереми – веду- щий разработчик ископаемом топливе. В сопроводительных бумагах к автомобилю, пос- И тут оказывается, что данные записаны в формате «Word-Кривой для команды Samba, ледний именовался «бесценным для 2007 года антиквариатом»! Windows 2002», который специально создавался так, чтобы конкуренты сейчас работает в Google, в Сан-Хосе, Безусловно, это антиквариат, но не очень-то бесценный. В капсулу не могли его прочесть. Калифорния. просочились грунтовые воды, и бедняге подпортило ржавчиной корпус, Кроме шуток, проприетарные форматы усложняют задачу сохра- крылья, да и все в целом. Нам, умудренным людям 2007 года, легко сме- нения нашей культуры почище устаревших аппаратных интерфейсов яться над наивностью создателей капсулы, однако разве мы сами лучше, и подверженности носителей данных разрушению, хотя мы привык- когда оставляем историкам будущего свои письменные свидетельства? ли считать их вечными и незыблемыми. Использовать форматы дан- Все наши письменные свидетельства быстро переходят на элек- ных, не являющиеся опубликованными стандартами, означает просто тронные носители. Хорошим примером тому служит закат популяр- напрашиваться на неприятности при долгосрочном хранении данных. ности фотопленки – почти никто в наши дни не покупает пленочных Я отдаю предпочтение формату ODF, формат Microsoft Office Open фотоаппаратов; фотографии теперь хранятся на картах памяти или XML (OO-XML) тоже документирован, так что он не вызовет проблем загружаются на крайне хрупкие жесткие диски компьютеров, обычно при долгосрочном хранении данных. Однако большинство документов без всяких резервных копий. Даже будучи профессиональным компью- мира – как на правительственном уровне, так и на корпоративном – по- терщиком, я проявляю не меньшую лень по части резервного копиро- прежнему сохраняются в проприетарных форматах, а ведь порой доку-

вания фото, чем все прочие. Одна несчастная случайность – и все мои менты, считавшиеся недостойными сохранения, оказываются самыми , открытого программного планетария для Linux, Windows и Mac OS X на OpenGL. www.stellarium.org драгоценные воспоминания будут безвозвратно утрачены. желанными для историков.

Меня не слишком волнуют «сценарии судного дня», рисующие пост- Stellarium «Кто знает, какие еще открытия индустриальную, лишенную электричества цивилизацию, утратившую все научные знания по причине неспособности прочитать документы, появятся по мере расширения созданные на компьютере: когда общество в таком положении, у него доступа к знаниям человечества.» есть более серьезные поводы для беспокойства, чем невозможность получить доступ к древним финансовым документам предприятий. Нет, Изображения планет взяты из Недавно в NASA обнаружили, что оригинальные пленки медленной меня беспокоит другое: вдруг кто-то захочет увидеть старую пленку с развертки с первой высадки человека на Луну с Аполлона-1 пропали. Те записью падения Берлинской Стены, и обнаружит, что есть только копии кадры, что видели все, на самом деле лишь копия тех пленок, снятая с с копий с других копий, а оригинальная «правда» этого события утраче- видеозаписи с высоким разрешением телекамерой 1969 года. Согласно на сотни лет назад. Или, что еще хуже, не сможет определить, которая сообщениям NASA, у них имеется 2 612 коробок с пленками, однако не из версий этого видео показывает настоящее событие. хватает еще 13 000 дополнительных пленок. Это мне напоминает склад, Мой любимый мультипликатор Тед Ролл [Ted Rall] (www.rall.com) который показывают в конце «Поисков утраченного ковчега» [Raiders использует 2024 как римейк оруэлловской антиутопии «1984». Герой of the Lost Ark – один из фильмов об Индиана Джонсе, – прим. пер.]. от нечего делать редактирует список лауреатов Нобелевской премии Даже если эти пленки найдутся – интересно, много ли сохранилось Мира и подсовывает в него имя местного рок-музыканта. Средства киноаппаратов образца 1969 года в рабочем состоянии, чтобы можно массовой информации получают и распространяют этот список, а было воспроизвести эти данные? Насколько обветшает к тому моменту герой уже позабыл о своей шалости и принимает подаваемую инфор- пленка? И это всего лишь за 40 лет – или около того. А что будет через мацию на веру, как и все остальные. Когда живые очевидцы события 100 лет, или через 500, или 1000? Пленки со съемками высадки на исчезнут, и сохранятся только электронные свидетельства, с присущей Луну – историческая ценность, и если мы о них не можем позаботиться, им подверженностью изменениям, узнают ли люди правду о нашем то что уж говорить о менее важных записях? Письменные записи, по прошлом? Возможно, DVD или запись на ином физическом носите- крайней мере, можно расшифровать и через много тысяч лет. ле, точно привязанном к хронологии исторических событий, может Я вовсе не луддит: преимущества перевода наших данных и записей в стать ценнее, чем любые данные в электронном виде, и даже послужит цифровой формат серьезно перевешивают все возможные недостатки. арбитром для имеющихся цифровых версий. Возможно, мы оставляем К примеру, оцифровка всех книг и данных музеев сделает их доступны- грядущим поколениям проклятие в виде такого неимоверного количе- ми для тех ученых, у кого есть доступ в Интернет, но нет шансов сопри- ства версий одних и тех же данных, что невозможно будет отличить, где коснуться с этими данными в реальности. Да и вообще, возможность в же среди них оригинальная правдивая версия, если она вообще есть. информационных массивах весьма привлекательна. Сейчас, при сво- И, напоследок, не могу удержаться от комментария в адрес NASA – бодном доступе к спутниковым снимкам через Интернет, стали неожи- они ответственны за сохранение единственного долгосрочного носите- данно делаться важные открытия – например, метеоритных кратеров. ля данных, когда-либо созданного человечеством. Космические кораб- Кто знает, что еще откроется благодаря переводу человеческих знаний в ли Пионер и Вояджер несут на борту плакетки с указанием располо- общий доступ? Однако было бы неплохо задуматься о сохранении воз- жения нашей солнечной системы; на Вояджере также находится диск можности доступа к важным историческим записям нашего времени. с аудио- и видеозаписями с Земли. Есть надежда, что миллионы лет Полагаю, проприетарные форматы записи станут проблемой для спустя далеко за пределами Солнечной системы эти послания достиг- историков. Возможно, не в ближайшем будущем – но уж совершенно нут внеземного разума, который сможет прочесть их. Вот памятная точно, через некоторое время (я говорю о сотнях, если не о тысячах капсула, достойная восхищения! LXF

52 Linux Format October 2007 3D modelling tool Reviews Учебники Наши эксперты помогут вам с любым приложением Linux В этом выпуске... ЕВГЕНИЙ БАЛДИН 54 Как привести дела в порядок 76 Почта подана Начинал с Агатов. Когда- Откладывай на завтра то, что можешь Магия Java: всего на нескольких то даже знал, что такое сделать сегодня, но делай это с умом – страницах Александр Бабаев напишет Робик. Энди Ченнел подскажет, как не навредить приличный почтовый клиент и простой и выкроить минутку для отдыха. графический интерфейс к нему.

GNU/Linux в «большой» 58 Bash для начинающих 79 GtkSourceView политике? Сегодня Рэйчел Проберт познакомит вас Каждый программист в своей жизни с командой grep и каналами, а также должен написать текстовый редактор, и даст пару советов, достойных желательно помощнее. Петр Семилетов – Проблемы? спросил Ваймс, догоняя продвинутых пользователей. уже справился с этой задачей и готов быстро семенившего Ди. поделиться своим опытом. – У нас нет никаких проблем. 60 Организуем файлы «Ага, он солгал, – подумал Ваймс. – Зачем мучиться с графическим 82 Как правильно вырастить Начинается дипломатия». приложением, когда для сортировки Ананас файлов можно использовать Python? Терри Пратчетт. Пятый слон Нет, вы не открыли по ошибке журнал Ник Вейч покажет, как. «Наш Сад»! Андрей Паскаль начинает серию статей о свободной учетной зарёкся упоминать в своих колонках 64 Фильтры и каналы системе, доступной в Linux. сильных мира сего – их цели, как Крис Браун знает, как построить из Я правило, сильно отличаются от целей невзрачных кирпичей прекрасный 86 Гибернация остального человечества. Но упомянуть о как дворец. Соберите с виду бесполезные Не ждите, пока запустится система – минимум поверхностной метаморфозе, про- утилиты в единое целое и наслаждайтесь просто откройте ноутбук и продолжайте изошедшей с Мининформсвязью, управляе- всей мощью Linux! работать! Сергей Яремчук посоветует, мой Л. Д. Рейманом, всё-таки, наверное, как правильно пожелать вашему Linux стоит. 68 Шифруем файлы спокойной ночи. Менее полугода назад это министерство За приятной внешностью Пола Хадсона скрывается убежденный параноик. отличилось совершенно бездарным планом 90 Офсетная печать Зашифруйте с его помощью все самое Мы подобрались к самому закупок лицензионного программного обес- ценное – пока у вас еще есть такая интересному – Александр Чернышов печения для школ и заслуженно получило возможность... запасся пленкой и готов к выходу на «оплеуху» от ведомства Грефа. К сожалению, офсет! автор «оплеухи» Андрей Шаронов уже уво- 72 Portage и ebuild лился из Минэкономразвития, но как след- Даже двенадцати тысячам пакетов 94 Подключаемся к сети WPA ствие, Мининформсвязь породила проект, Gentoo не испугать Нейла Ботвика! В течение месяца ломали голову, как задачей которого является «разработка дист- Получите максимум от этого подружить Linux с любовно настроенной рибутива общесистемного и офисного про- дистрибутива под его чутким в прошлый раз точкой доступа? Андрей граммного обеспечения на основе свободного руководством. Боровский знает ответ. программного обеспечения для образова- тельных учреждений Российской Федерации» – то есть правильные слова уже выучили. Совет месяца: rename и prename Совершенно не очевидно, что из этого полу- чится что-то полезное, поэтому расслабляться Едва ли отыщется пользователь командной строки, не называется rename, но вам следует поискать prename или не стоит, но и хуже, чем сейчас, явно не будет. знакомый с командой mv. Зачастую это самый быстрый что-то похожее, если имя «rename» уже занято в вашей Тем более, если вернуться к теме сильных способ привести файлы в порядок, хотя нажатие F2 в системе под что-то другое. Естественно, уж коль скоро к мира сего, то одному из них фирма IBM сумела современном файловом менеджере позволит вам сделать этому приложил руку Ларри, rename – это сценарий Perl, навязать ноутбук с GNU/Linux, и он уже был то же самое, но графически. Буквы «mv» являются сокра- так что вы можете открыть его в своем любимом тексто- неоднократно замечен в использовании этого щением от глагола «move» (перемещать), куда более вра- вом редакторе. Основное предназначение данного скрип- продукта. Подробности можно прочитать по зумительно описывающего действие команды. та – легко перемалывать группы файлов. Однако его адресу http://abbra.livejournal.com/94656. Действительно, имя файла может включать и путь, поэто- мощь зиждется на анализаторе выражений Perl, которые html. Это ни о чём особо не говорит, но инфор- му, набрав mv /usr/sbin/sux /sbin/sux, вы измените не не всегда просты для понимания, особенно если у вас нет мация о GNU/Linux неудержимо расползается. название, а местоположение. Переименовывать файлы в опыта. Например, чтобы добавить расширение «_bak» к Как говорится: мелочь – а приятно. прямом смысле этого слова тоже можно, например, при каждому файлу, нужно набрать следующее: P.S. Исходные тексты и графика игры размещении их в резервном каталоге нелишне будет доба- prename ‘s/\_bak$//’ file* AstroMenace (LFX95) теперь доступны под вить и расширение «_bak». Mv хорошо справляется с Это только начало – после того, как вы овладеете лицензией GPL3. С моей точки зрения, это одиночными файлами или директориями, но пасует, когда механизмом регулярных выражений Perl, вы сможете уже отнюдь не мелочь. речь идет о групповом переименовании. применять prename для решения практически любых P.P.S. SCO объявила себя банкротом. Вот К счастью, небезызвестный Ларри Уолл [Larry Wall] задач. Он особенно удобен при переименовании файлов уж действительно мелочь – но всё равно создал еще одну команду, которую можно отыскать изображений, загруженных с раздела Windows, из верх- приятно. практически в любом дистрибутиве Linux. Обычно она него регистра в нижний. [email protected]

Октябрь 2007 Linux Format 5 3 УчебникПервые Первые шаги шаги Советы для тех, кто только начинает знакомиться с Linux Органайзер: Лекарством для недугов наших дней (кроме снижения затрат ископаемого топлива) была бы лучшая организация. Энди Ченнел – хозяин своего времени...

Sunbird имеется во многих основных рабочих столах. Linux-версия – это архив .tar.gz, с которым ваш ПК должен справиться автоматически. Если нет, дважды щелкните на нем после загрузки.

управлять информацией и временем [в русском переводе: Д. Аллен «Как привести дела в порядок. Искусство продуктивности без стресса», емп жизни, похоже, не собирается замедляться, и потерянное Вильямс, 2007 г.]. И хотя вся GDT-«индустрия» полнится рекламной искусство тянуть время становится, хм, все более потерянным. шумихой и почти непознаваемым корпоративным сленгом, по сути она Т Но так не обязательно должно быть. При содействии некоторых выливается в несколько здравых идей, которые можно реализовать, не стандартных программ Linux и правильного планирования все еще прибегая к дорогому ПО, книгам или интенсивным семинарам. возможно (по крайней мере, иногда) спихнуть на завтра то, что нужно сделать сегодня. На самом деле, без этого не обойтись! Получаем программы Наш Ключом к продуктивным проволочкам является умение точно Для начала нам необходимы две программы, первая из которых – сама эксперт представить, когда дело должно быть сделано, сколько времени оно Sunbird. На момент написания была доступна версия 0.5, на www. Энди Ченнел займет и что важнее. А ключевые типы программ, помогающие этого mozilla.org/projects/calendar/sunbird/, она имеется на DVD этого меся- Энди делает свои добиться – Календарь и Список задач [To Do]. К счастью, в Linux есть ца. Загрузив файл, дважды щелкните на архиве и распакуйте его куда- первые шаги в Linux уже шесть лет, прекрасные программы для обоих рабочих столов, Gnome и KDE, в нибудь, где у вас хранятся приложения или двоичные файлы (в нашем а технологиями лице Evolution и Kontact соответственно, но существуют также и кросс- случае, это /home/downloads/имя_приложения). Затем сам архив мож- интересуется еще платформенные пакеты, вроде Sunbird – и его дочернего проекта но удалить. Теперь просмотрите каталог Sunbird и найдите элемент с со времен Dragon 32 Lightning, интегрированного в Thunderbird – а также целый диапазон именем Sunbird (вообще-то это скрипт) и дважды щелкните на нем. онлайн-решений, идущих ноздря в ноздрю с настольными соперни- Перед вами появится окно с выбором: показать файл, запустить его в ками. Ради простоты мы выбрали для данного урока Sunbird/Lightning, терминале или просто запустить. Выберите Запустить [Run] и подож- но приведенные здесь методы подходят к практически любому мыс- дите пока приложение запускается. При первом запуске вам предоста- лимому приложению, управляющему расписанием. Sunbird делает все вится возможность импорта данных календаря из других источников, необходимое для контроля за нашим временем; мы создадим календа- включая Evolution, а затем перед вами предстанет само приложение, по ри для задач, добавляя и редактируя события, установим напоминания, умолчанию отображающее вид День. Абсолютно понятный набор дру- подписавшись на сетевые списки событий, синхронизирумся с нашим гих видов, доступный в верхнем меню окна, включает Месяц [Month] сетевым календарем и расставим приоритеты работ, настроив список и Неделю [Week]. задач. Через страницу мы также покажем, как идти в ногу со временем Прежде чем двинуться дальше, сделаем на рабочем столе ярлык вдали от вашего Linux-компьютера при помощи новаторского (и очень для этого приложения и заставим его запускаться при каждой загрузке дешевого) органайзера Graphite. системы – это удобный способ известить себя о насущных задачах на Кое-что из этого основано на идее Getting Things Done (GTD) Дэвида день: календарь должен быть первым, что вы видите. Аллена [David Allen] (www.davidco.com): как наиболее эффективно

Месяц назад Мы редактировали видео под Linux – прямо в web-браузере.

54 Linux Format Октябрь 2007 Первые шаги Учебник

На DVD

Sunbird 0.5 Lightning 0.5 Успеть все! Provider 0.2.1

сможете выбрать в нем загруженный XPI-файл. По завершении уста- новки понадобится перезапустить Sunbird. Добавляем содержимое Итак, мы справились с установкой, но пока данных нет, проку от этого Скорая мало. Первое, что мы добавим – праздники своей страны: это легко, помощь благодаря тому, что web-сайт проекта в разделе Docs & Extras имеет набор календарей праздников. Отыщите ссылку на вашу страну и сохра- ните файл на свой жесткий диск. Вернитесь в Sunbird, выполните Файл Работая на разных ПК с разными ОС, > Открыть календарь... [File > Open Calendar File...] и переместитесь к используйте кросс- только что загруженному файлу. Теперь, выбрав вид Месяц, вы долж- платформенные ны увидеть, что календарь заселен различными событиями. Можете пакеты, чтобы не отключить эти события, перейдя на вкладку Календари [Calendars] гадать, как же это (слева от главного окна) и сняв галочку напротив RussiaHolidays. все работает. Поскольку Sunbird использует распространенный формат файлов- календарей ICS, можно загружать из сети всевозможные варианты – By default, Sunbird launches in Day View, which is ideal for seeing what например, игры сборной Манчестера на сезон–2007/2008, и это будет the coming workday holds. отдельный календарь внутри приложения. Собственные события можно добавить в календарь, дважды щел- Итак, в Gnome щелкните где-нибудь на рабочем столе и выберите кнув на дате или во временной секции любого из видов и добавив Создать кнопку запуска... Добавьте соответствующее Имя, затем щелк- соответствующую информацию. Каждое событие должно иметь дату, ните по кнопке Просмотреть... рядом с областью Команда. Перейдите к время и продолжительность (если только это не событие на весь день), элементу Sunbird, на котором вы щелкали ранее, и выберите его. Теперь и выбранный Календарь (то есть частью какого календаря оно явля- щелкните по кнопке с текстом Нет значка, выберите Просмотреть и ется). Среди других опций, пригодится флажок Повторять, который найдите каталог /Icon внутри каталога Sunbird. Выберите большую из также позволяет повторить событие согласно определенному шаблону, двух иконок и нажмите кнопку OK. Можете также добавить подсказку если, например, надо учесть событие, происходящее в 10:00, но толь- для элемента, поместив текст в строку Примечание. Если иконка полу- ко по будням и только до 22 декабря. После определения события оно чилась слегка великоватой для вашего рабочего стола, то щелкните тут же появится в соответствующем окошке, подкрашенное цветом, на ней правой кнопкой мыши, выберите Растянуть значок, а затем выбранным для данного календаря. Вы можете изменить детали собы- измените его размер, используя один из четырех квадратиков по углам тия, дважды щелкнув на нем; или, если необходимо изменить только иконки. Теперь нажмите Система > Параметры > Сеансы и выберите дату (или время в виде День), можете перенести выбранную секцию в вкладку Запускаемые при старте программы. Нажмите Создать, задай- другое место. те имя и, уже в последний раз, Просмотреть для перемещения в соот- Для грамотного управления временем необходимо изучить две ветствующее место, чтобы выбрать приложение Sunbird. основные концепции: разделение и приоритет. Примером первой явля- Процедура для KDE весьма похожа, за исключением того, что ется собрание всех российских праздников в один календарь Sunbird. после правого щелчка при создании ярлыка на рабочем столе следует Эта информация может быть включена или выключена, то есть при выбрать Ссылка на приложение... (и далее то же). Чтобы приложение желании вы можете полностью ее игнорировать, пока она снова не запускалось автоматически, откройте ваш каталог в /home, выведите понадобится. Вторая связана с использованием списков задач с при- скрытые файлы (Вид > Показывать скрытые файлы), перейдите в .kde/ оритетами – Sunbird их тоже поддерживает, но мы воспользуемся сете- Autostart и создайте в нем ссылку на приложение Sunbird. вым сервисом: он более гибок и прекрасно интегрируется с Sunbird. Теперь, когда бы вы ни включили свой ПК, Sunbird в Gnome или KDE Предположим, в вашей жизни есть три главных приоритета: семья, будет запускаться автоматически, и вы точно будете знать, чему посвя- работа и дела общественные; последнее – в форме заведования шко- тите свой день – конечно, если позаботитесь о вводе этих данных. лой. Надо также отслеживать важные даты релиз-цикла Fedora. На все Вторая необходимая нам программа также есть на DVD. Она назы- это требуется пять календарей, включая уже имеющийся календарь вается Provider и позволяет Sunbird (или Lightning) осуществлять двус- российских праздников. Конечно, можно сгрести все эти данные в один тороннюю синхронизацию с календарем Google. Это значит, что если вы обновите календарь Sunbird, то эти изменения попадут и в ваш сете- вой календарь, и наоборот; а значит, открываете ли вы свои данные в домашнем уюте или в интернет-кафе в Москве, вы всегда будете иметь верную информацию под рукой. Последняя версия доступна на https:// Если ваш addons.mozilla.org/en-US/sunbird/addon/4631. Однако если вы просто календарь щелкнете по кнопке Установить [Install Now], ничего не произойдет, запускается потому что расширение разработано для Sunbird, а ссылка работает автоматически, только в Firefox. Вместо этого щелкните на ссылке правой кнопкой значит, вы уже мыши и сохраните ее на вашем рабочем столе. Теперь откройте Sunbird, не избежите выполните Инструменты > Дополнения и внизу слева нажмите кнопку необходимости Установить... Откроется стандартный диалог открытия файла, и вы соблюдать сроки.

Октябрь 2007 Linux Format 5 5 Учебник Первые шаги

даря, и убедитесь, что отличие в оттенках каждого из них бросается в глаза. В следующем окне необходимо ввести детали для входа на сер- вер и выбрать, следует ли сохранить эти детали, чтобы календарь мог обновляться автоматически. Когда вы дойдете до конца, данные будут загружены, и, как по волшебству, появятся в Sunbird. Теперь сделайте то же для остальных ваших личных календарей. Поскольку мы устано- вили для Sunbird модуль расширения Provider, то любые изменения, сделанные нами в календарях, связанных с сервисом Google, будут отражены в версии, размещенной в сети. Далее, добавим динамический календарь событий, сосредото- ченный на проекте Fedora: вновь запустим мастера нового календаря и выберем опцию В сети и формат iCalendar (ICS). Календарь нахо- дится на webcal://fedora.redhat.com/participate/schedule/fedora-project. ics, так что вставьте этот URL в строку Адрес и нажмите кнопку OK. Замечательно то, что если некий пользователь обновит календарь Fedora, он будет синхронизирован с вашим, так что у вас всегда будет Модуль расширения Provider для Sunbird позволяет достаточно свежая информация. Выше главного окна календаря расположен спи- просто подцепить календарь Google. сок встреч: это просто список всего, что вам предстоит, и поскольку он отражает содержание календаря ниже, то вы можете включать и календарь, но смысл отдельных календарей в том, что вы можете пред- выключать его части, используя флажки в списке календарей слева. видеть свою жизнь, если хотите – то в виде баланса работа/жизнь, на месяц вперед и, если необходимо, полностью «отключить» какую-то из Что за дела! линий, если требуется сосредоточиться на другом. Мы заготовили несколько календарей, предоставляющих долгосроч- Первым делом надо переименовать домашний календарь по умол- ный обзор того, что нас ждет – и можем сконцентрироваться на чанию – Мой календарь: он идеально подойдет как календарь обще- задачах дня, а для этого необходим Список задач [To Do list]. Sunbird ственных мероприятий, поскольку к нему не нужен удаленный доступ. имеет окно со списком задач, но бывает удобнее разделить ваше рас- Щелкните правой кнопкой мыши на Моем календаре, выберите писание на два вида (долгосрочное и текущее), чтобы, работая над Свойства (или дважды щелкните на нем) и введите новое имя. Здесь непосредственными задачами, вы не отвлекались бы на то, что ждет вы можете также задать новый цвет календаря. вас за углом. Для создания нового календаря, щелкните правой кнопкой мыши Для управления нашими списками воспользуемся сервисом под в панели календарей (слева в главном окне) и выберите Новый кален- названием Remember The Milk [«Не забудь купить молока»] (www. дарь... или просто выполните двойной щелчок где-нибудь на этой rememberthemilk.com). Это сетевое приложение позиционируется как Скорая панели для запуска мастера нового календаря. Вначале вам предложат «список напоминаний о покупках», но фактически это Управление зада- помощь два варианта: календарь на вашем компьютере или в сети? Первый чами/Список задач промышленного уровня, и оно прекрасно подойдет просто хранится на вашем компьютере (так же, как переименован- для наших попыток Привести Дела В Порядок. Мы выбрали Remember Разбиение больших ный Общественный календарь), а второй для получения информации The Milk (RTM), а не другой сетевой сервис из подобных Списков задач событий на небольшие части – соединяется с календарем в Интернете; однако для доступа или изме- по той причине, что RTM позволяет создавать различные списки, спо- важный процесс нения данных сетевого календаря не обязательно подключаться к сети, собные отражать пометки о событиях в наших календарях. К тому же для управления поскольку Sunbird создаст локальное зеркало на то время, пока вы последняя версия программы работает с Google Gears (более подроб- временем. отсоединены. Вы можете обновить все позднее, щелкнув правой кноп- но – см. http://gears.google.com), а значит, вы сохраните доступ к редак- кой мыши на календаре и выбрав Обновить удаленные календари или тированию ваших списков, будучи вне сети; данные затем будут обнов- используя комбинацию клавиш Ctrl+R. лены при очередном подключении к Интернету. Нас интересует возможность работать с нескольких разных ком- Прежде всего, надо зарегистрироваться на сервисе и, что не обяза- пьютеров, но так, чтобы иметь доступ к данным и в отсутствие сети, тельно, загрузить и установить программу Google Gears, запускаемую поэтому создадим сетевой календарь. На самом деле, сперва мы под- из XPI в Firefox. Зарегистрировавшись и войдя, щелкните на ссылке ключим существующий календарь Google, а потом – календарь в фор- Settings [Настройки], расположенной справа вверху главной страницы мате iCal. Это означает, что нам не придется вновь вводить кучу данных RTM. Теперь выберите вкладку Lists [Списки]: здесь вы можете опре- или, что более важно, потерять их, если жесткий диск выйдет из строя или вор-линуксофил стырит ноутбук LXF: оба аспекта очень важны при решении вверить свои данные какому-либо устройству. Чтобы внести информацию в Sunbird, вначале войдем в службу Google Calendar и выберем календарь, к которому собираемся под- ключиться. Как и в Sunbird (и практически везде), список доступных календарей отображается слева. Щелкните на стрелке рядом с име- нем календаря и выберите Calendar Settings [Настройки календаря]. Интересующий нас раздел внизу окна справа и озаглавлен Private Address [Личный адрес]. Щелкните правой кнопкой мыши на кноп- ке XML и выберите Copy link location [Скопировать ссылку]. Теперь вернитесь в Sunbird и запустите мастер нового календаря. Выберите календарь В сети и опцию Google Calendar и, по запросу, вставьте ско- пированный URL из буфера обмена при помощи Ctrl+V. Нажмите Далее. Теперь вам предоставляется возможность задать календарю имя (мы выберем Работа), а также цвет отображения. Цвета очень важны с точки зрения организации: они сразу же наглядно покажут, чем будет занят ваш день, неделя или месяц и насколько вы будете заняты; так Масса календарей на экране может вас запутать. Используйте что выберите цвет, некоторым образом соответствующий целям кален- список календарей слева для уменьшения числа элементов.

56 Linux Format Октябрь 2007 Первые шаги Учебник

делить сколь угодно много своих списков. Щелкните на кнопке Add List [Добавить список] и дайте списку имя. При желании быть действитель- КПК-органайзер Graphite но суперсобранным, можете создать список для каждого дня недели, чтобы знать, что вы хотели выполнить в каждый 24-часовой период, Все еще существуют такие места и времена, и использовать практически везде, даже там, плюс список Будущее для того, что произойдет чуть позже. Или просто когда у вас нет доступа к вашим любовно пос- где суеверные туземцы подозревают, что элек- следуйте схеме, используемой для вашего календаря. Каким бы спо- троенным календарям и спискам задач. Для тричество – это мстительный злой дух. собом вы ни решили организовать ваши списки, RTM разместит их в таких случаев, органайзер Graphite – прекрас- Основные принципы обращения с подобными алфавитном порядке, а если вы хотите иного упорядочения, придется ный инструмент внесения данных, готовых для штуками – выбирать их малого формата, синхронизации с вашими календарями и спис- использовать по листку на день и, вычеркнув добавить к вашим спискам числа (01, 02, 03 и т.д.). Покончив с этим, ками задач при первой возможности. Такие все на листке, тут же его выбрасывать, чтобы перейдите на страницу Tasks [Задачи] (ссылка справа вверху) – вы продаются в любом приличном магазине канц- верхним всегда был «сегодня» или «просроче- увидите, что каждый список имеет свою вкладку; есть еще две стан- товаров и в большинстве супермаркетов, при- но». Да, и не забывайте о взаимном обмене дартные вкладки с именами Inbox [Входящие] и Sent [Отправленные], чем во всевозможных видах: прошитые, на событиями между органайзером и вашим к которым мы сейчас перейдем. спиральке и клеенные. На пару с маленьким списком задач (исключительно нудное заня- Чтобы начать, щелкните на одной из вкладок. Метод добавления карандашом, органайзер можно легко извлечь тие). задачи тот же, что и при создании различных списков: выберите Add Task [Добавить задачу], введите имя задачи и нажмите ввод. По умол- чанию, задачи будут появляться в порядке их введения, но вы можете ложительное время завершения, поместить тэги для категорий поверх Скорая изменить этот порядок, установив некоторым из них приоритеты – это уже имеющихся и даже добавить URL, если, например, задача связана помощь один из фундаментальных аспектов серьезной организации, достой- с неким web-сайтом или документом в сети. ный применения. RTM имеет четыре настройки приоритетов: 1, 2, 3 и В добавление ко вкладке Task [Задача], имеется также опция Notes Если какое-то дело none [нет]. Для придания задаче приоритета, выберите ее, используя [Заметки] – это небольшая, автоматически сохраняющаяся текстовая требует меньше флажок слева от имени задачи, а затем в выпадающем списке над область, где можно внести дополнительные детали конкретной зада- двух минут, задачами укажите соответствующий приоритет. Задача при этом под- чи. Все эти детали окажутся под рукой, когда вы выберете задачу из – сделайте его прямо сейчас. светится и, в зависимости от выбранных вами настроек, может также весьма мощное подспорье. Задачи можно также добавлять в список по изменить свою позицию в списке. Высокоприоритетные элементы электронной почте, SMS или, если вы хотите приобщиться к Web 2.0, всплывут к верху краю списка, элементы без приоритета останутся даже через учетную запись Twitter. внизу. Вы можете также повысить или понизить приоритет области задач, выбрав все те, что нужно изменить, и применив к ним пункт Полный цикл списка Move Priority Up... [Повысить приоритет...]. При этом приоритет Итак, мы организовали наше расписание в Sunbird и справились с орга- 3 у задач изменится на 2, а 2 изменится на 1. События без приоритета низацией управления текущими задачами посредством Remember The автоматически получат приоритет 3. Milk. Настало время небольшого объединения мыслей и связей: соеди- Это облегчает управление приоритетами в течение дня. Завершив ним обе службы вместе. RTM имеет возможность вывода вашего спис- задачу с высоким приоритетом, вы можете выбрать ее и пометить как ка задач – по крайней мере, тех, у которых есть дата завершения – в Complete [Выполнено], а затем выбрать следующую и увеличить ее виде iCal-файла, то есть мы можем подписаться на этот URL при помо- приоритет на 1, чтобы знать новую первоочередную задачу. щи Sunbird и получить автоматическое появление задач в календаре. Вы могли заметить, что задачи по умолчанию не связаны с датой; Стандартная система RTM выводит каждый список в виде отдельно- добавить ее и можно, и несложно. Сперва выберите задачу, установив го iCal-файла, но не худо бы собрать их в один синхронизированный флажок, а затем перейдите в раздел справа от списка задач. На вид это файл. Так что вновь перейдите на страницу Settings [Настройки] и просто информационный список, но все записи в нем можно редак- выберите вкладку Info. Здесь вы найдете адрес электронной почты для тировать, и если вы щелкнете на тексте рядом с записью Due: [Срок], пересылки задач в ваш список, адрес ленты (и сможете просмат- то сможете добавить информацию о сроке выполнения задачи. RTM ривать ваш список задач в читалке RSS), а также два адреса, которые хватает ума, чтобы проверить и реализовать ваши намерения; напри- можно добавить в строку Адрес в окне нового календаря Sunbird. мер, если вы введете срок как ‘next tuesday’ [следующий вторник], он Здесь есть две опции. Во-первых, возможен экспорт списка задач в автоматически введет за вас дату, а если вы укажете только время, он виде списка, но он поддерживается немногими программами. Лучший сочтет, что вы имели в виду «сегодня», если время еще не прошло; (да и единственный) выбор для Sunbird – заставить RTM экспортиро- иначе он впишет его на «завтра». Вы можете также установить опцию вать списки как события. Щелкните правой кнопкой на URL с пометкой повторения (она работает так же, как и в календаре), добавить предпо- iCalendar Events Service (All Lists) [Служба событий iCalendar (Все спис- ки)] и выберите Copy Link Location [Копировать ссылку]. Теперь верни- тесь в Sunbird и вставьте эту информацию в строку Адрес нового кален- даря. Задайте новому календарю имя и цвет, и ваши события переко- чуют в Sunbird. Однако помните, что в отличие от календаря Google, к которому мы подключались ранее, это езда в один конец: изменение даты завершения задачи в Sunbird не отразится в списке RTM. Хотя хорошее управление временем не снизит число распечаток и не укоротит бессмысленные споры ваших детей, оно может оказать положительное влияние на ваш уровень стресса и улучшить отношения с семьей и коллегами. И благодаря осведомленности о том, что мне следует делать и когда, я выкроил 20 минут на эффектное завершение статьи. А лучше посижу немного в саду... LXF

Разбейте ваши списки на управляемые куски, используя вкладки RTM; благодаря Google Gears, это можно делать и вне сети.

Октябрь 2007 Linux Format 5 7 УчебникBash Bash для для начинающихначинающих Как извлечь максимум из командной строки Bash: Используем

Часть 2 Хотите проводить в командной строке больше времени? Рэйчел Проберт расскажет о grep, pipe и других командах, которые обязательно надо знать.

В прошлый раз мы говорили о действиях, потенциально способных grep (1) - print lines matching a pattern отобрать много времени: например, необходимо быстро найти отчет, Команда whereis поможет найти другие нужные вам команды или написанный когда-то давно. Вы забыли имя файла, но помните, что программы. Если вы загружаете из Интернета программу, для работы темой отчета было соглашение с компанией ABC. После обнаружения которой нужна другая программа, вам захочется узнать, установлена документа его содержимое нужно отправить коллеге или шефу. ли она в вашей системе. Чтобы выяснить местонахождение программы grep -r -i -H CompanyABC /home/rjprobert/work и ее man-страницы, наберите whereis [имя программы]. Так, например, Наш cat filename | mail [email protected] находится расположение популярного текстового редактора : эксперт Для начала мы разомнемся с помощью нескольких команд для whereis vi Рэйчел Проберт опытных пользователей. Они вряд ли пригодятся обычным пользова- – небольшая команда, повторяющая все, что вы ни напечата- последние семь лет телям для каждодневной работы, но если вы администратор системы ли. Например, если набрать echo hello, на экране появится слово “hello”. консультирует и устанавливаете программы для своих пользователей, значение этих Вообще говоря, обычно это делать незачем: команда echo может при- начинающих бизнесменов и команд повышается. годиться вам в будущем, если вы начнете писать скрипты. (Скрипт – это разрабатывает для Команда whoami не вовлечет вас в философские дискуссии по небольшая программа, позволяющая выполнить несколько команд за них web-приложения. самопознанию, но напомнит, под каким именем пользователя вы вош- один раз.) В скриптах echo может использоваться для отображения ли в систему; очень удобно, когда вы работаете с несколькими учетны- действий скрипта в каждый момент времени, или чтобы попросить ми записями, используемыми для решения различных задач, и посто- пользователя что-нибудь сделать, например, ввести текст. янно переключаетесь между ними. Похожая команда, whatis, позволит Команда last выведет список пользователей, заходивших сегод- понять, что делает та или иная программа. В Linux сотни программ, и ня в систему, и терминалы, которые они используют (использовали). невозможно запомнить, что делает каждая из них. Например, напеча- Набрав exit, вы завершите сеанс работы с терминалом. Если нужно тав whatis grep, вы увидите: зайти в систему под другим пользователем, используйте вместо нее команду logout. Часть 1: По Grep’у!

Вот теперь повеселимся! Grep – команда, которая находит слова в probert@ubuntu:~$ mv report*.txt /home/probert/Work файлах. Охотно сказала бы, что ее название произошло от слова probert@ubuntu:~$ ls «поиск» по-клингонски, но это было бы неправдой и только укре- Bin Desktop Examples LAN Music Work пило бы стереотип, что все технари любят Star Trek! На самом деле Звездочка (*) – это специальный символ, который позволяет нам название команды – сокращение от «Глобальный Парсер Регулярных делать все, что мы хотим, с файлами, название которых начинается со Выражений» (Global Regular Expression Parser), что означает «глобаль- слова report; каждый из таких файлов включается в команду. У меня ный поиск строк, соответствующих регулярному выражению, и их есть правила именования файлов и разделения их на категории, кото- вывод на экран». Название команды происходит от команды текстового рых я строго придерживаюсь. Например, названия всех файлов отчетов редактора ed g/re/p, выполняющей подобные действия. начинаются со слова report, счетов – со слова invoice и т.д. Пускай это Начнем с создания специального каталога, где будем размещать новые выглядит как ритуальные действия безнадежно больного ОКР, зато при Скорая файлы. Чтобы убедиться, что каталог создан, используйте команду ls. наличии методичного подхода нужные вещи находятся очень быстро! помощь probert@ubuntu:~$ mkdir Work Переместимся в каталог Work и снова используем ls, чтобы убедиться, probert@ubuntu:~$ ls что все файлы перемещены: Bin Desktop Examples LAN Music Work probert@ubuntu:~$ cd Work Grep требует немалого времени! Откроем текстовый редактор и создадим новый файл report1.txt: probert@ubuntu:~/Work$ ls Если у вас есть хоть probert@ubuntu:~$ pico report1.txt report1.txt report2.txt какие-то мысли о Pico – это текстовый редактор, который я использовала при написании Сейчас мы сделаем следующий шаг в поисках этого крайне важного том, где находится этой статьи. В дистрибутив Linux включено несколько текстовых редак- файла для нашего коллеги. Команда grep обладает множеством опций файл, всегда указывайте каталог. торов; выбор одного из них определяется лишь вашими предпочтени- (их список выведет команда man grep). Опция -r позволяет выполнить Просмотр всех ями и наличием у редактора специальных функций, которые помогут рекурсивный поиск файлов, начиная с названного каталога, а опция -i каталогов подряд в решении именно вашей задачи. Когда текстовый редактор откроется, выполнит поиск без учета регистра. Попробуйте следующие команды с может ох как напечатайте слово CompanyABC. Затем точно так же создайте второй опцией -i и без -i и посмотрите, как это повлияет на результаты поиска. затянуться. файл с именем report2.txt, который будет содержать слово companyabc. probert@ubuntu:~/Work$ grep -r -i ‘CompanyABC’ /home/ Закончив, введите команду ls, и вы увидите примерно такой список: probert/Work probert@ubuntu:~$ ls Результат будет примерно таким: Bin Desktop Examples LAN Music report1.txt report2.txt Work /home/probert/Work/report1.txt:CompanyABC Обратите внимание, что файлы, которые мы создали, находятся рядом /home/probert/Work/report2.txt:companyabc с каталогом Work. Давайте переместим их в нужный каталог: Итак, мы нашли этот неуловимый файл; что же дальше?

58 Linux Format Октябрь 2007 Bash для начинающих Учебник

На DVD командную строку

Скорая Часть 2: Стандартный ввод-вывод помощь

Стандартный ввод/вывод позволяет вводить данные в программу из Чтобы прочитать содержимое этих файлов, можно открыть их в тексто- Не используете grep с регулярны- любого источника и выводить данные в любой источник. Таким обра- вом редакторе pico: ми выражениями? зом, можно направить вывод одной команды непосредственно на ввод probert@ubuntu:~$ pico findresult Вот основные другой команды... правда, мило? Linux предоставляет три канала ввода/ Я предпочитаю просматривать небольшие файлы с помощью команды опции: вывода, более известных как потоки ввода/вывода. По умолчанию стан- cat. Ниже я использовала эту команду для просмотра результатов поис- -i Игнорировать дартный ввод подразумевает клавиатуру, стандартный вывод – экран. ка в файлах findresult и finderrors. регистр при срав- Третий поток ввода/вывода – это на самом деле поток вывода для сооб- probert@ubuntu:~$ cat findresult нении. щений об ошибках, предупреждений и оповещений: так легче отличить /etc/passwd -v Выводить сообщения об ошибках от остальных сообщений. Поток ошибок обычно /etc/pam.d/passwd только строки, не соответствующие также выводится на экран, но (как и каждый из трех стандартных пото- probert@ubuntu:~$ cat finderrors шаблону. ков) может быть перенаправлен. Этим мы сейчас и займемся. find: /etc/ssl/private: Permission denied -c Вывести Есть два основных способа перенаправления потоков данных; мы find: /etc/cups/ssl: Permission denied количество фай- можем использовать > или | (перенаправление и каналы соответствен- Вы также можете добавить информацию в файл с помощью команды лов, соответствую- но). Если нужно просто направить стандартный вывод в файл, можно >>. Давайте перенаправим стандартный вывод, чтобы добавить инфор- щих шаблону. напечатать команда > файл. Давайте попробуем это на реальном при- мацию в наш первый файл findresult следующим образом: -n Отображать мере: найдем все файлы с именем passwd в каталоге /etc. Наберите probert@ubuntu:~$ find /etc -name passwd 2>> findresult номера строк, где найден шаблон. find /etc -name passwd Вы можете снова проверить результаты с помощью команды cat Результат будет примерно таким (он зависит от особенностей вашего findresult. Второй способ перенаправления потоков – вывод одной -H Выводить имя файла для дистрибутива Linux): команды прямо на вход другой (канализация). Давайте проверим каждого соответс- probert@ubuntu:~$ find /etc -name passwd содержимое каталога /usr/lib, где находятся объектные файлы, биб- твия. find: /etc/ssl/private: Permission denied лиотеки и системные двоичные файлы. В моем каталоге /usr/lib при- /etc/passwd мерно полторы тысячи файлов – многовато, чтобы прокручивать этот /etc/pam.d/passwd список один за другим! Если мы перенаправим вывод ls на ввод коман- find: /etc/cups/ssl: Permission denied ды less, то получим список, в котором можно перемещаться по страни- Обратите внимание, что команда генерирует как стандартный поток цам, в удобном для нас темпе. Попробуйте: вывода, так и поток ошибок. Сейчас мы создадим файл findresult и ls /usr/lib | less перенаправим стандартный поток вывода в этот файл, оставив на экра- Достигнув конца документа, нажмите клавишу Q, чтобы вернуться в не только ошибки. командную строку. Вы также можете предварительно отсортировать probert@ubuntu:~$ find /etc -name passwd > findresult этот список по убыванию, например, таким образом: find: /etc/ssl/private: Permission denied ls /usr/lib | sort -r | less find: /etc/cups/ssl: Permission denied Краеугольный камень философии Unix заключается в том, чтобы каж- Перенаправим эти ошибки в другой файл, finderrors, используя 2>. дая программа делала что-то одно по-настоящему хорошо, позволяя probert@ubuntu:~$ find /etc -name passwd 2> finderrors использовать свой вывод как ввод другой программы. Использование /etc/passwd каналов позволяет провести этот принцип в жизнь, создавая очень /etc/pam.d/passwd эффективные цепочки команд. Наберите ls, и вы получите результат, похожий на мой. Теперь, разузнав, как работают grep и каналы, сведем их вместе для probert@ubuntu:~$ ls поиска того самого отчета и отправим его нашему коллеге: Bin Desktop Examples finderrors findresult LAN Music grep -r -i -H CompanyABC /home/rjprobert/work cat report1.txt | mail [email protected] Помощь по grep Миссия завершена! LXF Поскольку grep производит поиск соответствий по шаблонам, вы Мини-проект: команды для умных должны предоставить ему регулярное выражение для этого шаблона. Регулярные выражения бывают простыми и сложными. Наиболее рас- Есть несколько общих команд, о которых пространенные (и простые) типы регулярных выражений выглядят date df так: полезно знать. Привожу некоторые из них без date +%D free объяснений; эти команды можно использовать date +%T du независимо от дополнительных опций. abc Соответствует строкам, которые содержат “abc” в любом мес- cal top те. Наберите их и посмотрите на результат. cal 1066 ps ^abc Соответствует строкам, начинающимся с “abc”.

Через месяц Moнтирование, создание резервных копий, распаковка файлов из tar и zip.

Октябрь 2007 Linux Format 5 9 УчебникPython Рython Организуйте ваши файлы именно так, как вам хочется Управляемся: Надоело мириться с дезориентирующими тэгами и нелепыми именами файлов? Укодируйте их до полного исчезновения с помощью Ника Вейча и магии Python!

мир вашей Linux-системы способен удовлетворить любые ваши прихо- ти, включая страсть к педантизму и скрупулезной правильности! Python – превосходный язык для выполнения стандартных опера- ций с файлами. Он позволяет обрабатывать имена файлов и исполь- зовать функциональные возможности ОС с помощью ряда встроенных функций, всегда готов при необходимости вызвать внешние утилиты, имеет огромную коллекцию готовых модулей, способных выполнить практически любые действия, и к тому же очень прост для понимания. Он хорош не только для прототипирования, но и для создания самосто- ятельных приложений – или как минимум удобных небольших сцена- риев для выполнения частных задач. Итак, наша цель – разобраться с коллекцией музыкальных файлов на моем Linux-компьютере (отдельным счастливчикам это тоже при- годится). У меня есть один большой каталог под названием ‘Music’, который, как полагается, делится на подкаталоги по исполнителям, альбомам и отдельным трекам. Однако, несмотря на столь стройную систему, у меня имеются проблемы непосредственно с музыкальными файлами. Вот примерный список вещей, мешающих мне насладиться моей коллекцией:

1 Некоторые файлы имеют слишком длинные имена, затрудняю- щие работу с ними. Такое бывает с покупной музыкой: в название включается сразу и альбом, и имя исполнителя, и номер дорожки, и равда-правда, я ужасно люблю порядок: все вещи на своем т.д. Я же хочу единый для всех названий вид, желательно без дурац- месте, все под рукой, и вы можете мигом определить, что ких символов. Песть, чего нет; и всякое такое. Впрочем, люди, видевшие фото 2 Некоторые файлы содержат тэги формата ID3v1, а не ID3v2. Беда моего рабочего стола или совавшие нос в мой бельевой ящик, пожа- небольшая, но по возможности я бы предпочел наслаждаться и пре- луй, оторопеют от явной лживости этого высказывания. Но, пожалуйс- имуществами ID3v2. Наш та, внимательно прочтите его еще раз: я сказал, что люблю порядок, а 3 Некоторые файлы снабжены тэгами формата ID3v2, но не ID3v1. эксперт вовсе не что я люблю его наводить. Моя мечта – чтобы во всех комна- Из-за этого они не читаются на стареньком MP3-плейере в моем тах моего дома стояло по хитроумной мусорной корзине, связанной с автомобиле. Ник Вейч этаким интеллектуальным сканером объектов: каждый раз, покончив с 4 Некоторые из файлов неработоспособны. Неплохо было бы Добродушный олигарх Linux Format использованием/чтением/изучением чего-либо, я бы просто скидывал иметь список дефектных файлов, чтобы удалить их из коллекции очень организован – эту штуку в мусоросборник, а она волшебным образом перемещалась или заменить. в электронном куда-нибудь и дожидалась там своего часа. Увы, похоже, подобные Некоторые из файлов сохранены в нетипичных форматах, кото- смысле. Но бардак 5 в его сарае такой же, технологии не скоро до меня доберутся. Сейчас самая моя больная рые распознаются не всеми доступными устройствами. Список этих как и в вашем: тема – музыкальная коллекция. Я, конечно, целиком за свободу твор- файлов тоже пригодился бы. велосипеды, чества, но то, что все мои сборники CD имеют разные шрифты, цвета и перевязанные пожарным шлангом, формат хранения данных, действует на нервы. Впрочем, виртуальный Но как же достичь хотя бы части этих целей? Хоть я и не вполне уве- кучи старых банок из- рен, что все перечисленные мной желания легко выполнимы, но попы- под краски… таться стоит; по крайней мере, я знаю, с чего начать. В Python’е имеется модуль под названием os. Он реализует все стандартные функции ОС, Что такое «кортеж»? в частности, связанные с файловой системой. Python – кросс-платфор- Кортеж – это объект, состоящий из нескольких значений. Он часто менная разработка, поэтому, несмотря на различия реализации в раз- используется в Python. Хороший пример использования кортежа – ных операционных системах, задача у данного модуля одна: предостав- цвет. Вместо того, чтобы хранить три значения в трех разных перемен- ление функциональности уровня ОС с единым интерфейсом. Одной из ных для красного, зеленого и синего цветов, вы назначаете одну пере- самых полезных из известных мне функций, представленных в данном менную, содержащую три значения! Кортеж в Python записывается модуле, является walk(). Если задать ей имя родительского каталога, примерно так: (123,255,17). Вы можете получить доступ к любому эле- эта функция вернет список кортежей (см. врезку слева), включающих менту кортежа с помощью индексов – значений в квадратных скобках, имя родительского каталога, список подкаталогов (если они есть) и указываемых после имени переменной. Например, команда print Colour[1] вернет значение «255» в случае с предыдущим примером – список имен файлов. Таким образом, чтобы получить список всех фай- только не забывайте, что значения индексов начинаются с 0! лов, включая полный путь к ним, нужно выполнить функцию walk() с заданным нами каталогом и по шагам обработать результат.

60 Linux Format Октябрь 2007 Рython Учебник Python и музон

import os topdir=”/usr/share/music/” Будем резать! walklist = os.walk(topdir) for dirs in walklist: В Python используются индексы для «нареза- >>> print string [-0] if(dirs[2]): ния на кусочки» (иногда говорят «слайсинг», p for file in dirs[2]: от англ. slicing) строк, списков и других типов >>> print string [-1] // Выполнить какое-нибудь действие переменных. Пусть у нас имеется запись plop. 3 print os.path.join(dirs[0],file) mp3; мы можем запросто извлечь из нее >>> print string [-4:] else: любой нужный нам бит. Откройте терминал, .mp3 for entry in dirs[1]: запустите Python для входа в интерактивный >>> режим и попробуйте следующие команды: В последнем операторе print из строки выхва- print dirs[1] >>>string = ‘plop.mp3’ тываются четыре последних символа. В данном примере мы сначала импортируем модуль os, затем >>>print string[1] Отрицательные индексы отсчитываются с кон- назначаем каталог, который хотим использовать. В результате выпол- l ца строки, но будьте внимательны: -0 означает нения функции walk() генерируется объект в переменной walklist. С >>> print string[:2] то же самое, что и просто 0, а именно – начало помощью конструктора for мы можем затем использовать имеющий- pl строки! (Индексы в Python нумеруются с 0.) ся в Python способ пошагового перемещения по списку для работы с каждым элементом. Чтобы вам стало понятнее, данные переменной walklist должны выглядеть примерно так: (‘/usr/share/music/Blonde_Redhead’, [‘1980 Forward’, ‘23’], []) ность операторов if, elif (else if) и else. Символ # в Python указывает, что Скорая (‘/usr/share/music/Blonde_RedHead/1980 Forward’, [], [‘18-Magic оставшаяся часть строки – комментарий. В итоге наш основной цикл помощь Mountain.mp3’]) примет такой вид: (‘/usr/share/music/Blonde_Redhead/23’, [], [‘10-My Impure Hair. for file in dirs[2]: Тэги ID3v2 могут mp3’,’1-23.mp3’, ‘7-Publisher.mp3’, ‘3-The Dress.mp3’, ‘6-Silently. fullpath = os.path.join(dirs[0],file) содержать массу mp3’]) extension = file[-4:] избыточных данных: Теперь пошагово проверим каждую строку. Если элемент строки if (extension!=’.mp3’): например, битрейт, является файлом (одним или несколькими, в виде списка), мы хотим # Это не MP3-файл; проверить на другие расширения? лицензионную информацию выполнить с ним определенные действия. Оператор if проверяет, име- if (extension ==’.wma’): или даже текст ется ли что-нибудь в каталоге, а если имеется, мы продолжим пере- wmalist.append(fullpath) песни. Если у вас мещаться по списку файлов тем же способом. Что делать с файлами, elif (extension ==’.ogg’): портативный плейер пока не совсем ясно, поэтому просто распечатаем список в стандарт- ogglist.append(fullpath) с небольшим объемом памяти, ный вывод. Здесь мы воспользуемся другой полезной функцией моду- else: ликвидация этого ля os – os.path.join(). Она соединяет вместе все компоненты пути к unknownlist.append(fullpath) балласта может файлу и записывает их в виде, соответствующем текущему модулю os, else: значительно что, несомненно, гораздо лучше, чем простое соединение вхождений с # Это MP3-файл. увеличить помощью слэша /, как это обычно делается в Linux! # Что-нибудь с ним сделаем. Я также добавил здесь еще одну ветку else – на случай, если мы print fullpath захотим что-то проделать и с каталогами (может, переименовать?). Но Мы также должны объявить три переменных типа «список» в для начала просто выполните данный скрипт, чтобы проверить, рабо- основном коде. Возможно, вы захотите добавить код, обрабатываю- тает ли он в вашей системе. Главное – не забудьте указать именно щий файлы, или указать другие варианты расширений. Для полноты тот каталог, где действительно имеются MP3-файлы. картины, создадим также список неизвестных типов файлов, найден- ных в нашем каталоге – чисто информативный; заодно он поможет Проверка типов файлов обнаружить то, что мы упустили. Ну вот, теперь самое время добавить новые функции в данный скрипт. Теперь займемся MP3-файлами. Спецификация ID3v1 весьма Но прежде чем приняться за файл, я предлагаю убедиться, что он дей- незамысловата: в конец файла просто добавляется 128 байт инфор- ствительно музыкальный! Думаю, мы можем смело предположить, мации о файле, и легко создать синтаксический анализатор для сбора что все MP3-файлы имеют расширение mp3. Таким образом, в нашем этих данных и дальнейшей обработки. Однако ID3v2 придерживается цикле мы могли бы проверить это и пометить файлы, не соответству- других стандартов: информация заносится в начало файла, в виде ющие данному критерию. Вероятно, мы могли бы просто включить сложной структуры с переменной длиной данных, и, если честно, нам такую проверку внутри цикла, уже осуществляемого оператором if, но пришлось бы изрядно разрастить наш маленький скрипт, чтобы с ней так как проверка может потребоваться не одна, гораздо разумнее при- справиться. Поэтому мы поступим, как все нормальные программисты: своить расширение переменной и затем проверять ее. Для извлечения схитрим! Существует множество готовых модулей Python, способных расширения воспользуемся простым и мощным способом обработки читать данные MP3-тэгов, вот и возьмем один из них. Рекомендую строк и переменных других типов в Python (подробнее – см. врезку EyeD3 – это признанный фаворит, и в нем есть все, что нам нужно. Вы справа вверху). Добыв расширение файла, можно проверить, не совпа- найдете его на DVD, прилагаемом к данному журналу, а на сайте http:// дает ли оно с другими форматами музыкальных файлов, вроде ‘.wma’ eyed3.nicfit.net может оказаться более свежая версия. и ‘.ogg’ – на случай, если мы захотим поработать и с такими файлами. Данный модуль творит всяческие чудеса; некоторые из них нам В Python нет оператора case:; придется нагромоздить последователь- даже и трогать незачем. Вы можете почитать о нем подробнее на ука-

Октябрь 2007 Linux Format 61 Учебник Рython

занном сайте, но для наших целей достаточно импортировать модуль и ознакомиться с функциями, которые нам пригодятся. Форматирование К счастью, модуль eyeD3 не относится к числу сложных. Опасения внушает только один объект – eyeD3.Tag, содержащий структуру тэгов Необходимость чёткого форматирования кода в Python многих ставит ID3v1 и ID3v2. Чтобы заполнить его данными из вашего файла, вы в тупик, но это вполне простое и разумное требование. В частности, должны использовать метод объекта link с соответствующим именем отступы строк (посредством пробелов или табуляции) в блоке кода файла, и выглядит это примерно так: должны быть одинаковыми, потому что в Python отступы являются mytag=eyeD3.Tag() значимыми. Взглянув на код, вы не увидите фигурных скобок вокруг mytag.link(‘/usr/share/music/Blonde_Redhead/23/1-23.mp3’) любых операторов или блоков кода: Python распознаёт окончание бло- print mytag.getArtist() ка по окончанию отступа. Это даёт сразу два преимущества: код стано- вится гораздо удобнее для чтения, и не надо заботиться о вложенных print mytag.getAlbum() фигурных скобках! print mytag.getTrackNum() Изменив любой из тэгов, просто вызовите метод tag.update(), и он запишет новый тэг в файл. Теперь разберемся, как мы поступим с Скорая нашими файлами. Вместо того, чтобы сразу создавать необходимый помощь код, я обычно просто вписываю набор операций, которые нужно сде- ускользнули логика действий и структура скрипта. Особо хитрые учас- лать, в виде комментариев. Потом можно легко сортировать их, разби- тки – или участки, используемые многократно – можно вынести в Тэги ID3v1 могут вызывать в динами- вать на более мелкие действия, или, в конце концов, собраться с духом отдельную функцию. Существуют мнения и за и против этого, и про- ках очень короткие и дописать требуемый код! Ниже представлен примерный список опе- граммисты нередко обсуждают, что допустимо выделять в отдельную щелчки между раций над нашими файлами, которые могли бы понадобиться: функцию. Теория выглядит примерно так: чем больше вы выносите из дорожками на основного цикла программы, тем более очевидной становится общая старых MP3-плей- задача. Но есть и контрдовод: чем больше вы включаете подобных ерах. Эта проблема Получить расширение файла не решается путём Он заканчивается на .mp3? обобщений, делая программу максимально простой и понятной, тем конвертирования Проверить, действительно ли это MP3-файл сложнее потом добраться до работы отдельных функций. Резюме: тэгов в ID3v2, т.к. Прочитать тэги версии 2 поскольку вы пишете программу исключительно для личного пользо- многие устройства вания, делайте так, как вам удобнее! не поддерживают Прочитать тэги версии 1 новый формат. Если имеется только один тип, копировать в другой тип Музыку прослуши- Если тэгов вообще нет, установить пометку Проверка типов файлов – 2 вать вы сможете, Создать нормальное имя файла из тэгов Теперь пора и делом заняться. Прежде всего, получим расширения но на дисплее Предложить/записать новое имя файла файлов через слайсинг Python’а, а затем проверим, MP3 это или нет. не будет отобра- После чего употребим модуль eyeD3, чтобы распознать, действительно жаться информация Проверить, соответствует ли название альбома имени каталога о дорожках. Если это не MP3-файл, то что? Добавить в соответствующий ли файл соответствует заявленному формату. список После операторов проверки сделаем отступы, чтобы было видно, какой блок кода используется при обнаружении соответствия, и воз- Как сказано выше, впишем это в скрипт в виде комментариев. вратимся к оператору else. В данном случае я слегка поменил порядок Обычно приступать к делу лучше с первого пункта, чтобы от вас не действий, для начала разобравшись с файлами, не соответствующими формату MP3, а затем через оператор else перешел к дальнейшим действиям. Почему? Да просто очень легко позабыть про файлы, не Журналирование интересующие вас в данный момент; если вы можете парой строк отде- латься от второстепенных данных, лучше сразу с ними и покончить. В Небольшие скрипты часто нашпиговывают множеством выводов промежуточных данных на конечном итоге, быть может, у нас появится специальная функция для печать, чтобы знать, что и как происходит. Это действительно удобно; но иногда хочется превра- их обработки. тить строку с оператором печати в комментарий, потом снова её подключить, и т.д. Проще всего В представленном ниже коде можно встретить так называемые в таком случае использовать встроенный в Python модуль ведения журнала! Он умеет выводить функции «санации» (sanitize). Присутствие их тела в основном коде сообщения и в консоль, но способен различать сообщения по значимости, и вы сможете гибко сделало бы его неудобочитаемым, кроме того, иногда их бывает нужно регулировать количество выводов на консоль путём правки всего одной строки кода скрипта. вызывать из разных мест. Наконец, так с их реализацией можно разо- Добавьте этот модуль к списку импортируемых и впишите следующий код в начало вашего браться и позже, не затрагивая основной код. скрипта: if (extension !=’.mp3’): logger = logging.getLogger(“pymusic”) # Не файл MP3? Проверить на другие расширения? # Создать обработчик консоли if (extension == ‘.wma’): handler = logging.StreamHandler() # Создать форматирование и настроить обработчик на его использование wmalist.append(fullpath) formatter = logging.Formatter(“%(asctime)s - %(name)s - %(levelname)s - %(message)s”) # logger.warn(“silly wma file %s”,fullpath) handler.setFormatter(formatter) elif (extension == ‘.ogg’): # Добавить обработчик к модулю ведения журнала ogglist.append(fullpath) logger.addHandler(handler) else: logger.setLevel(logging.WARN) unknownlist.append(fullpath) Часть этих штук смахивает на волшебство, и кое-кто считает модуль ведения журнала непос- else: тижимым, но на самом деле все очень просто. Если вы хотите узнать больше, документация # Это вправду MP3-файл? находится здесь: http://docs.python.org/lib/module-logging.html. Фактически, всё, что необходимо if eyeD3.isMp3File(fullpath): знать – это набор стандартных команд для управления выводом сообщений в консоль. # Прочитать тэг ID3V2 Например, следующий код: logger.warn(“ file %s does not seem to be a valid mp3 file”,fullpath) tag2 = eyeD3.Tag() выведет в консоль только сообщения, относящиеся к предупреждениям типа WARN или ниже tag1 = eyeD3.Tag() (порядок такой: Critical, Error, Warning, Info, Debug). Можно установить и собственные уровни, но a = tag2.link(fullpath,eyeD3.ID3_V2) мы займёмся этим в другой раз... b = tag1.link(fullpath,eyeD3.ID3_V1) if b and not a: # Имеется только тэг ID3v1

62 Linux Format Октябрь 2007 Рython Учебник

print “version1 only” # Выдадим предупреждение Скорая # Создать информацию для tag2 по tag1 logger.warn(“ file %s does not seem to be a valid mp3 помощь print fullpath file”,fullpath) artist = tag1.getArtist() Полная распечатка этого небольшого скрипта представлена на Хотите разобраться album = tag1.getAlbum() DVD данного номера Linux Format. Но будьте осторожны – скрипт не с мелодиями, не title = tag1.getTitle() завершен! Нельзя гарантировать, что он не испортит вашу музыкаль- имеющими данных print artist,album,title ную коллекцию! Особенно следует обратить внимание на проверку об исполнителе или названии альбома? tag1.update(eyeD3.ID3_V2) символов в кодировке Unicode, нередко встречающихся в тэгах ID3v2 Посетите сайт http:// # check tags are cool (недопустимых в тэгах первой версии). Также вы, возможно, захотите musicbrainz.org, там elif a and not b: обработать и файлы формата .ogg. подскажут. # Имеется только тэг ID3v2 Здесь не доделано также множество проверок на ошибки. В случае print fullpath с тэгами в кодировке Unicode поможет структура try: ... except:; она же artist = tag2.getArtist() пригодится и для других случаев (например, выяснении, как поступать album = tag2.getAlbum() с музыкальными файлами без прав доступа на запись). Но я надеюсь, title = tag2.getTitle() что рассмотренный в статье пример показал вам, как просто создавать print artist,album,title полезные скрипты! LXF try: tag2.update(eyeD3.ID3_V1_1) except UnicodeEncodeError: logger.error(“tag invalid for v1.1 in file %s”, fullpath) elif a and b: # Имеются оба тэга logger.info( “both versions fine %s”, fullpath) Аудиоплейеры вроде AmaroK помогают редактировать else: тэги к каждому файлу, но не показывают явно # Тэгов нет вообще тип используемых тэгов – ID3v1 или ID3v2. logger.warn(‘this file has no tags! %s’, fullpath) error_flag = True # М.б. удастся вытянуть что-нибудь из имени каталога, где сидит файл! if not error_flag: # Пускай имя файла будет # number-name.mp3 title=tag2.getTitle() title = title.replace(‘ ‘,’_’) n=tag2.getTrackNum() # Номер (number) у нас есть ns = str(n[0]) if len(ns)==1: ns= ‘0’+ns ns=ns+’-’+title+’.mp3’ # Уберем нехорошие символы ns=sanitize(ns) if (file!=ns): logger.info(“change filename suggested for %s, to %s!”,filename,ns) os.rename(fullpath, os.path.join(dirs[0],ns) else: Сравнение аудиоплейеров в Linux

Использование Загрузка Интернет радио/ Захват данных Поддержка Приложение Импорт (секунды) CPU (%) MP3 Ogg FLAC плейлистов потоковые данные с CD Запись CD MP3-плейеров

Amarok 113 1

Banshee 73 10

BMPx 108 10 Только Shoutcast/Icecast

Juk 56 0.5

Rhythmbox 773 10 только iPod

XMMS N/A 0.5 Плагин

Через месяц Секреты Python снова помогут вам контролировать события.

Октябрь 2007 Linux Format 6 3 УчебникКомандная Фильтры строка Linux Крутые штучки, способные превратить программирование в удовольствие Linux: Фильтры Хватайте трубку и ласты и ныряйте в загадочный подводный мир фильтров и каналов вместе с Крисом Брауном.

(процесс-получатель). Схема этого процесса показана на Рисунке 3. Приведенная команда tr, если вам интересно, заменяет все символы из набора [A-Z] соответствующими символами из набора [a-z], то есть преобразует текст из верхнего регистра в нижний. Полуфильтры Многие команды Linux, которые на самом деле не являются фильт- рами, выводят результаты своей работы в стандартный поток вывода stdout и могут стать началом канала. К ним относятся ls, ps, df, du и многие другие. Например, команда $ ps aex | wc пересчитает запущенные на компьютере процессы, а команда $ ls -l | grep ‘^l’ выведет только символические ссылки для текущего каталога. (Регулярное выражение ^l означает строки, начинающиеся с буквы ‘l’.) Менее распространен другой вариант полуфильтров. Это програм- мы, считывающие данные из потока ввода, но не выводящие их в поток вывода stdout. В голову приходят только команда просмотра файлов less, утилита печати lpr и почтовый клиент для командной строки mail. Такие программы могут использоваться как окончание канала; напри- мер, команда grep syslog /var/log/messages | less выводит строки файла /var/log/messages, относящиеся к системному журналу syslog, с помощью команды less. Команда less используется огда я впервые столкнулся с Unix и Linux, мое внимание сразу как окончание канала очень часто. привлекла классная вещь: набор средств командной строки – К фильтров, и штука под названием «каналы», их соединяющая. Потоковый редактор sed Вместе они образовывали невероятно мощную компонентную архитекту- Потоковый редактор sed поддерживает автоматическое редактирова- ру, предназначенную для обработки потоков текстовых данных. ние текста и является более гибким по сравнению с большинством Фильтр – это программа, которая считывает один входной поток, фильтров. Он считывает свои входные данные строку за строкой из Наш как-то преобразует его и выводит результат в один выходной поток стандартного потока ввода или из заданного файла, применяет к ним эксперт (Рис. 1). По умолчанию выходной поток (также называемый стан- одну или несколько операций редактирования и выводит строки Д-р Крис Браун дартным выводом или просто stdout) связан с окном терминала, где результата в стандартный поток вывода. У этого редактора целый набор внештатный запущена программа, а входной поток (стандартный ввод или просто команд, но самая полезная – команда замещения. Для начала рассмот- консультант по Linux stdin) – с клавиатурой. Однако на практике фильтры редко использу- рим простой пример использования sed для подстановок в тексте, вве- со степенью доктора наук по физике ются для обработки данных, набираемых на клавиатуре вручную. Если денном с клавиатуры (stdin): элементарных частиц фильтру через аргумент командной строки передать имя файла, он $ sed ‘s/rich/poor/g’ и обладатель откроет этот файл и считает его содержимое вместо считывания дан- He wished all men as rich as he сертификатов Novell CLP и Red Hat RHCE. ных со стандартного ввода stdin (Рис. 2) – такая схема применяется He wished all men as poor as he Он только что гораздо чаще. Во врезке напротив показано несколько простых команд. And he was as rich as rich could be написал книгу по SUSE Linux для Большинство фильтров сами по себе не делают ничего впечатляющего. And he was as poor as poor could be O’Reilly. Гораздо интереснее использовать их в сочетании друг с другом. ^D $ Сочетание фильтров: каналы Канал позволяет направить данные с выходного потока одного процес- Рис. 1 са на входной поток другого. Обычно они используются для подключе- ния стандартного потока вывода к стандартному потоку ввода. Создать канал в командной строке очень просто: для этого используется сим- вол | (вертикальная черта). Например, когда в командную оболочку Фильтр поступает следующая команда: $ sort foo.txt | tr ‘[A-Z]’ ‘[a-z]’, то оболочка одновременно запускает два отдельных процесса для программ sort и tr и создает канал, передающий стандартный вывод команды sort (процесс-источник) на стандартный ввод команды tr У фильтра есть один входной поток и один выходной поток.

64 Linux Format Октябрь 2007 Фильтры Linux Учебник и каналы те проясним кое-что: отнюдь не меняет файл /etc/passwd. Он просто Скорая Полезные фильтры считывает его и выводит измененные строки в стандартный поток помощь вывода.

Фильтр Что он делает При создании Awk цепочек команд, Названный в честь своих создателей Ахо [Aho], Вайнбергера связанных cat Копирует входной поток в выходной. [Weinberger] и Кернигана [Kernighan], awk представляет собой отде- каналами, лучше head Показывает начало файла льную категорию: это развитый язык программирования с переменны- делать это по (по умолчанию – первые 10 строк). шагам, на каждом ми, циклами, условиями и функциями. Программа на языке awk состо- этапе проверяя tail Показывает конец файла ит из одной или нескольких пар «шаблон-действие»: (по умолчанию – последние 10 строк). вывод. Можно шаблон { действие } добавлять команды wc Подсчитывает символы, слова и строки. шаблон { действие } интерактивно, используя стек sort Сортирует входные строки. Шаблон – это некое условие, применяемое к каждой строке; если истории команд, grep Находит строки, соответствующие строка соответствует шаблону, над ней выполняется указанное дей- или записывать их регулярному выражению. ствие. Если шаблон опущен, действие применяется ко всем строкам. в файл скрипта. tr Преобразует или удаляет символы заданного набора. Если опущено действие, строка целиком выводится на экран. Awk Последний sed Потоковый редактор. отлично подходит для обработки текстовых данных, разделенных на подход имеет преимущество uniq Оставляет только одну строку из набора поля (столбцы); он считывает входные данные строку за строкой и сохранности и одинаковых строк. автоматически разбивает их на поля, доступ к которым производится упрощает повторное awk Очень гибкая обработка полей данных. через специальные переменные $1, $2, $3 и т.д. использование Для демонстрации работы awk мы будем использовать небольшой кода. Наверное, нужно немного пояснить. Команда sed заменяет все набор географических данных, за правильность которых ручается имеющиеся строки ‘rich’ строками ‘poor’. Суффикс /g говорит о том, атлас мира Collins Complete World Atlas. Они включают названия стран, что это глобальная замена – если в строке больше одного вхождения, их площадь, население (в тысячах), языки и валюту. Для краткости то все они будут заменены (без этого суффикса было бы заменено ограничимся четырьмя строками, которые выглядят вот так: только первое). Сразу после команды sed мы видим две пары строк. Страна Площадь Население Языки Валюта Первая строка в каждой паре – это текст, который мы ввели с клавиа- Албания 28748 3130 Албанский,греческий Лек туры, а вторая – результат работы редактора, выведенный в стандарт- Греция 131957 11120 Греческий Евро ный поток вывода. Люксембург 2586 465 Немецкий,французский Евро А вот более полезный пример, в котором мы используем регуляр- Швейцария 41293 7252 Немецкий,французский,итальянский Франк ное выражение для удаления всех полей строк файла /etc/passwd, Эти данные находятся в файле с именем geodata. кроме первого: Многие awk-программы так просты, что их можно ввести с команд- $ sed ‘s/:.*//’ /etc/passwd ной строки как аргумент awk. Например: root $ awk ‘{ print $1, $5 }’ geodata daemon Страна Валюта bin Албания Лек sys Греция Евро ... остальные строки пропущены ... Люксембург Евро Здесь текст, который мы заменяем, определяется регулярным Швейцария Франк выражением :.*; оно соответствует фрагменту от первого двоето- Эта программа на языке awk содержит единственную пару «шаб- чия до конца строки. Строка, которой будет заменен такой фрагмент лон-действие». Шаблон пропущен, поэтому действие применяется к (между вторым и третьим слэшами), пуста, что приводит к удалению каждой строке – это вывод первого и пятого полей, то есть названия всех фрагментов, соответствующих регулярному выражению. Так мы страны и ее валюты. получаем список имен пользователей из файла passwd. Однако давай- Теперь давайте найдем страны, которые используют евро. Чтобы

Входной файл Рис. 2 Рис. 3 foo.txt

sort канал tr Фильтр

Получая файл, фильтр читает его, игнорируя стандартный ввод. Схема выполнения команды sort foo.txt | tr ‘[A-Z] ‘ ‘[a-z]’

Октябрь 2007 Linux Format 6 5 Учебник Фильтры Linux

Скорая применить условие к пятому полю, можно использовать шаблон, помощь например, таким образом: Перехват стандартного вывода $ awk ‘ $5==”Евро” { print $1 }’ geodata Возьмите в Греция В большинстве наших примеров предполагается, что стандартный вывод привычку заключать Люксембург связан с окном терминала (вариант по умолчанию). Однако аргументы А как определить суммарное население всех стран? Это потребует перенаправить его в файл очень просто, использовав оператор оболочки командной строки в двух пар «шаблон-действие»: одна из них будет срабатывать в каждой >. Например, команда одинарные кавычки, строке и последовательно накапливать значения численности населе- $ sort foo.txt | tr ‘[A-Z]’ ‘[a-z]’ > sorted.txt для уверенности в запускает ту же самую цепочку команд, что и раньше, но перенаправляет том, что оболочка ния (из третьего столбца), а вторая сработает только в конце и выве- стандартный вывод stdout команды tr в файл sorted.txt. Заметьте: не распознает их дет результат. Можно было бы ввести эту программу через командную перенаправление выполняет сама оболочка, команда tr просто выводит как специальные строку, как и предыдущие примеры, но на сей раз она немного длин- данные в stdout и не знает, да и знать не хочет, куда направляются эти символы и не нее, и удобнее записать ее в отдельный файл – я назвал его totalpop. выкинет что- данные. нибудь странное. awk. Он выглядит так: Вреда от них нет, { sum += $3 } а нужные кавычки END { print sum } [король заказал первый перевод Писания на англ. яз. – прим. ред.]. помогут избежать У первого действия нет шаблона, поэтому оно применяется к каж- Теоретически мы можем ввести все решение с командной строки, но разного рода дой строке. Sum – просто имя созданной мною переменной. В awk лучше оформить его в виде скрипта wordfreq.sh. Мы будем добавлять в неожиданностей. переменные не нужно объявлять заранее, они начинают существовать этот файл по одной строке и контролировать результат работы скрипта после первого упоминания имени (тогда же им присваивается нулевое на каждом этапе. значение). Второе действие использует специальный шаблон ‘END’, Каждая строка файла, который я скачал с сайта Вирджинского который выводит результат. Он срабатывает только один раз – после университета, соответствует одному стиху и начинается с его номера и того, как все входные данные обработаны. двоеточия. Например, строка для стиха 42 выглядит так: Теперь я могу запустить awk и заставить интерпретатор считать 42: And they did all eat, and were filled. программу из файла totalpop.awk, например, так: [И все ели, и насытились.] Я сохранил этот текст в файле mark.txt. $ awk -f totalpop.awk geodata Чтобы определить количество слов, воспользуемся ассоциативны- 21967 ми массивами, но сперва надо слегка почистить входной текст. Для Обратите внимание, что для указания имени файла с программой начала избавимся от этих номеров. Мы можем использовать команду мы используем ключ -f. замены редактора sed. Эта команда и будет первой строкой нашего Попробуем найти страны, население которых говорит на указанном скрипта wordfreq.sh: языке. Это немного сложнее, так как для каждой страны указан список #!/bin/bash языков, разделенных запятыми. Нам нужно разделить этот список на sed ‘s/^[0-9]*:\ //’ $1 составляющие. К счастью, для этого в языке awk есть встроенная функ- Первая строка файла – это часть механизма скриптов в Linux. Она ция. Вот полный текст программы, которую я назвал language.awk: предписывает операционной системе использовать оболочку bash для { NL = split($4, langs, “,”); интерпретации скрипта. Вторая строка – классический пример исполь- for (i=1; i<=NL; i++) зования sed. Использование команды замены ясно из предыдущих if ( langs[i] == “Греческий”) примеров; «старый шаблон» использует регулярные выражения, соот- print $1 ветствующие фрагменту «начало строки, далее возможны несколько } цифр, затем двоеточие и пробел», а «новый шаблон» между вторым Здесь только одно действие, с которым не связан ни один шаблон и третьим прямыми слэшами пуст. Таким образом, номера в начале (поэтому оно применяется к каждой строке), однако это действие с строк удаляются. $1 в конце этой строки еще немного приоткрывает вызовом функции, набором переменных, циклом и условием уже боль- нам механизм скриптов в Linux – он будет заменен аргументом команд- ше похоже на настоящую программу. Вот пример ее запуска: ной строки, который мы передадим скрипту. Это имя файла, который $ awk -f language.awk geodata должен обработать sed. Албания Создав наш двустрочный скрипт, мы должны разрешить его Греция выполнение: Одной командой покажем, что awk умеет выполнять арифметичес- chmod u+x wordfreq.sh кие действия – получим список стран с плотностью населения более Теперь можно запустить скрипт, передав ему в качестве аргумента 150 человек на квадратный километр: имя файла: $ awk ‘$3*1000/$2 > 150’ geodata ./wordfreq.sh mark.txt Люксембург 2586 465 Немецкий,французский Евро Стих 42 из нашего примера теперь выглядит так: Швейцария 41293 7252 Немецкий,французский,итальянский Франк And they did all eat, and were filled. Обратите внимание, что в этой программе есть шаблон, но нет Затем я решил сделать подсчет слов нечувствительным к регистру. действия. Как видите, в этом случае используется действие по умолча- Проще всего для этого преобразовать все символы верхнего регистра нию – строка целиком выводится на экран. в исходном тексте в нижний регистр, что легко делается командой tr. Язык awk содержит массу возможностей, о которых здесь не рас- Теперь наш скрипт стал на три строки длиннее: сказано, и многие пишут на этом языке программы гораздо длиннее, #!/bin/bash чем в четыре строчки! Впрочем, моя задача не в том, чтобы показать, sed ‘s/^[0-9]*:\ //’ $1 | \ какие длинные бывают программы, а в том, что и короткие программы tr ‘[A-Z]’ ‘[a-z]’ делают немало полезного. Мы добавили ко второй строке обозначение канала | и обратный слэш, означающий, что команда продолжится в третьей строке. На Пример с решением самом деле такие выражения не нужно разбивать на отдельные стро- Давайте объединим все, о чем мы говорили, в последний пример. Наша ки: я сделал это лишь затем, чтобы упростить чтение скрипта. Команда задача – подсчитать частоту появления слов в образце текста, а текст tr на третьей строке – тоже классика. Она означает «заменить каж- сегодня утром взят из Евангелия от Марка, Глава 6 (версия короля дый символ из набора A-Z соответствующим символом из a-z». Если Якова; загрузить его можно из центра электронных текстов библиотеки запустить наш новый скрипт из трех строк, то строка из примера будет Вирджинского университета – http://etext.virginia.edu/kjv.browse.html) выглядеть так:

66 Linux Format Октябрь 2007 Фильтры Linux Учебник

and they did all eat, and were filled. abroad) 1 Скорая На следующем шаге избавимся от этих нудных знаков препинания. name 1 помощь Это тоже можно сделать с помощью команды tr (используя ключ -d). and 134 Итак, теперь наш скрипт будет выглядеть следующим образом: …следующие строк этак 400 пропущены. Чтобы подробно #!/bin/bash Наконец, мы можем вывести эти данные в более удобной форме. изучить регулярные sed ‘s/^[0-9]*:\ //’ $1 | \ Для этого отсортируем их по числу вхождений (чтобы список начи- выражения, tr ‘[A-Z]’ ‘[a-z]’ | \ нался с чаще всего встречающихся слов) и применим head, чтобы найдите старый tr -d ‘[.,;:]’ оставить только 10 первых строк. Окончательная версия скрипта будет номер LXF80 и откройте стр. 74. Последняя строка просто удаляет все символы из набора [.,;:]. выглядеть так: Или познакомьтесь После запуска этой версии скрипта наша строка выглядит так: #!/bin/bash с формальным and they did all eat and were filled sed ‘s/^[0-9]*:\ //’ $1 | \ описанием их Вот это уже можно отдать на съедение awk: именно здесь мы и tr ‘[A-Z]’ ‘[a-z]’ | \ синтаксиса на странице man определим частоту появления слов. Основная идея состоит в прокру- tr -d ‘[.,;:]’ | \ regex (понять чивании каждого отдельного слова в документе, используя само слово awk -f wordfreq.awk | \ его практически как индекс в ассоциативном массиве и просто увеличивая на единицу sort -nr -k2 | \ невозможно). соответствующий элемент этого массива. Обработав весь документ, мы head сможем вывести индекс и значение каждого элемента массива – то есть Обратите внимание на флаги команды сортировки. -n включает само слово и сколько раз оно встречается в документе. Я решил запи- сортировку по численному значению, -r реверсирует результаты сорти- сать программу в отдельный файл с именем wordfreq.awk; таким обра- ровки, а -k2 сортирует данные по значению второго поля. Теперь у нас зом, сейчас у нас есть два скрипта, с которыми можно поработать – это есть желаемые данные о частоте появления слов: скрипт оболочки wordfreq.sh и программа на языке awk wordfreq.awk. and 134 of 27 Наш скрипт выглядит следующим образом: the 64 him 26 sed ‘s/^[0-9]*:\ //’ $1 | \ he 38 unto 23 tr ‘[A-Z]’ ‘[a-z]’ | \ they 31 to 22 tr -d ‘[.,;:]’ | \ them 31 his 21 awk -f wordfreq.awk а программа на языке awk выглядит так: Сделайте это по-разному { for (i=1; i<=NF; i++) Как и большинство вещей в жизни, наша задача решается разными w[$i]++ способами. Вместо использования ассоциативных массивов awk мож- } но разбить содержимое файла на отдельные слова (по одному слову на END { for (word in w) каждой строке) командой tr, затем упорядочить этот список по алфа- print word, w[word] виту (вхождения одного и того же слова будут расположены друг за } другом), после чего командой uniq подсчитать, сколько раз появляется awk-программа содержит два действия. Проще начать с первого, каждое слово, отсортировать список по убыванию и выделить первые которое применяется ко всем строкам, так как не содержит шаблона. десять строк. Такой скрипт будет выглядеть следующим образом: Это действие обрабатывает все поля во входной строке (т.е. все слова) #!/bin/bash и увеличивает на единицу соответствующий элемент ассоциативного sed ‘s/^[0-9]*:\ //’ $1 | \ массива w. Имена переменных i и w я выбрал сам, переменная NF – tr ‘[A-Z]’ ‘[a-z]’ | \ внутренняя переменная языка, которая содержит количество полей в tr -d ‘[.,;:]’ | \ текущей строке. Выражение w[$i]++, которое увеличивает на единицу tr ‘ ‘ ‘\n’ | \ соответствующий элемент ассоциативного массива w – главная часть sort | \ этой программы. Все остальное лишь обеспечивает его работу. uniq -c | \ Второе действие в этой программе срабатывает только один раз, sort -nr | \ после того, как все входные данные обработаны. Оно просто перебирает head элементы массива w и выводит индекс элемента в массиве (само слово) а результат его работы выглядит так: и значение элемента (сколько раз это слово встретилось в тексте). 134 and 27 of Вывод нашего скрипта в корне изменился и теперь выглядит так: 64 the 26 him themselves 4 38 he 23 unto would 3 31 they 22 to looked 1 31 them 21 his taken 1 Он точно такой же, как и предыдущий, только поля расположены в of 27 обратном порядке. Чтобы понять, как работает эта программа, попро- sit 1 буйте создать ее по шагам (на каждом этапе вводите произвольные privately 1 данные) и анализируйте результат ее работы. LXF

Регулярные выражения

Команда Что она делает

head /etc/passwd Показывает первые десять строк файла /etc/passwd. grep ‘/bin/bash$’ \ /etc/passwd Показывает строки из /etc/passwd о пользователях, использующих bash для входа в систему. sort /etc/services Сортирует сервисы из файла /etc/services в алфавитном порядке. wc /etc/* 2> /dev/null Считает строки, слова и символы во всех файлах каталога /etc; сообщения об ошибках игнорируются.

Октябрь 2007 Linux Format 6 7 УчебникMono-Мания Mono-Мания Программирование на современной платформе для новичков Mono: Шифруем Если вы не параноик, это не значит, что за вами не следят. Пол Хадсон создает шифровальщик файлов правительственного уровня, пока он еще может...

крупная правительственная организация захочет взломать ваши дан- ные, она их взломает. К счастью, я уверен, что скрывать вам нечего, а значит, шифрование, изученное на этом уроке, вполне подойдет, что- бы не дать случайным зевакам пялиться в ваши данные, которые им незачем видеть! Наш проект этого месяца будет шифровать и дешифровать файлы, основываясь на заданном вами секретном ключе шифрования – это 256-битный ключ AES, способный защитить от хакеров практически любой масти. Как вы, надеюсь, знаете, «бит» – это одна восьмая бай- та, так что 256-битный ключ эквивалентен 32-м байтам данных. Так уж вышло, что один байт – это ровно столько, сколько требуется для хранения одного ASCII-символа; значит, наш ключ – это пароль из 32- х символов. Если вы не Джеймс Бонд, то, скорее всего, у вас нет 32-символьно- го пароля – в лучшем случае 12 символов (если вы особо заботитесь о безопасности), но наиболее вероятно – около 8. Как же создать такой 32-символьный AES-ключ, чтобы вы его не забыли или, упаси Боже, не записали его? Есть два возможных ответа: 1 Дополнить ваш пароль до 32 символов. Например, если это frosties, преобразуем его в frosties000000000000000000000000. Надеюсь, вы понимаете, почему это плохое решение! 2 Создать хэш-сумму ключа. Это преобразует frosties в, на первый взгляд, случайный поток символов и цифр. Замечательное свойство о времен тайных посланий Марии Стюарт, королевы хэш-ключа в том, что, подавая frosties на вход хэш-алгоритма, мы всег- Шотландской, про свержение королевы Елизаветы, и до сис- да получаем одно и то же. Стемы «Энигма» в нацистской Германии, давно уже ясно, что Второй вариант, очевидно, лучше, так что наша первая зада- все, что шифруется, можно и расшифровать – были бы инструменты. ча – прочесть секретный ключ пользователя и преобразовать его Марию сгубил союз сэра Фрэнсиса Уолсингема [Francis Walsingham] в хэш. Самый популярный хэш-алгоритм – Secure Hash Algorithm Наш и Томаса Феллипса [Thomas Phelippes]: им было поручено разгады- [Защищенный хэш-алгоритм], но он не столь защищен, как многие о эксперт вать ее переписку, защищая королеву Елизавету от заговорщиков. Для нем думают; есть более новые алгоритмы SHA-256 и SHA-512, выпол- Пол Хадсон машины Энигма роковой стала череда роковых случайностей, остро- няющие тут же задачу с большей надежностью. Конечно, проблема с полагает, что Mono – умных догадок и приемов математики. Но итог в обоих случаях один: любым новым алгоритмом в том, что его защищенность не доказана, лучшая вещь со сообщения, посылаемые в расчете на секретность, были взломаны и так что пока мы удовольствуемся старым добрым SHA1. времен мультфильма Pinky and the Brain, превратились в обычный текст. и сейчас Я рассказываю все это как предисловие к проекту этого месяца, Создаем хэш поддерживает два потому что мы собираемся создать программу шифрования и дешиф- Среда .NET предоставляет на выбор несколько хэш-алгоритмов; проекта на основе Mono на SourceForge. ровки файлов. Для проекта мы применим супер-мощный Advanced используются они примерно одинаково. Для SHA1 необходимо создать Encryption Standard [Продвинутый стандарт шифрования], который объект SHA1Managed, передать ему строку для хэширования как поток оценен Национальным агентством безопасности США как пригодный байт, затем прочесть поток байт хэшированного значения и преобра- для документов высокой секретности, но не обольщайтесь: уж если зовать его в строку. Возможность генерации хэша для любых входных данных исключительно полезна; я создам небольшой метод Sha1(), которому можно передать строку текста и получить хэш-строку, при- близительно такой: !!! ПРЕДОСТЕРЕЖЕНИЕ !!! static string Sha1(string input) { SHA1Managed hashgen = new SHA1Managed(); На этом уроке мы занимаемся шифрованием файлов с использованием указываемого вами byte[] hash = hashgen.ComputeHash(Encoding.UTF8.GetBytes(input)); секретного ключа. Если вы передадите этот ключ другим людям, они смогут расшифровать string result = “”; ваши файлы. Если вы его забудете, то не сможете извлечь информацию из файлов, foreach (byte b in hash) result += b.ToString(“x2”); зашифрованных им. Вы предупреждены! return result; }

Месяц назад Мы сделали клиент мгновенных сообщений для локального или web-чата.

68 Linux Format Октябрь 2007 Mono-Мания Учебник

На DVD

Mono 1.2.5 MonoDevelop 0.14 и 0.15 ваши файлы Код учебника

Здесь два действительно сложных места: это преобразование вво- Это лишь еще один да в последовательность байт при помощи Encoding.UTF8.GetBytes() и проект для преобразование хэшированных байтов обратно в шестнадцатеричную командной строки, строку через b.ToString(“x2”). Но они сложны лишь потому, что вы, так что убедитесь, вероятно, видите их впервые – не так все страшно, когда они упакованы что вы выбрали верные опции в в опрятный метод, трогать который вам больше не придется! MonoDevelop. Как Чтобы попользоваться прелестями этой криптографии, вам понадо- обычно, не нужно бится добавить следующие строки в заголовок любого кода, который позволять ему будет использовать упомянутый метод Sha1(): создавать using System.Security; отдельный using System.Security.Cryptography; подкаталог. using System.Text; Вперед! Итак, теперь, когда вы поняли, как работает хэш, я хочу, чтобы вы запустили MonoDevelop и создали новый проект с именем Tanuki (если вы распознаете намек, я немало удивлюсь). Итоговый метод Main() этого проекта должен читать имя файла и параметр + или – (для шиф- рования или дешифрования файла), а также строку текста из команд- Rijndael – это прежнее название алгоритма AES, до того, как он был Скорая ной строки, которая передастся функции Sha1() для создания ключа принят в качестве стандарта. Заметьте, что мы используем Substring() помощь шифрования. Но сначала убедимся, что система Sha1() корректно для чтения первых 32-х байт ключа SHA1, поскольку это все, что нам

работает, заставив Main() прочесть секретный ключ, хэшировать его и нужно. IV – сокращение от Initialisation Vector [Вектор инициализации], Если вы хотите затем вывести результат на экран. и может рассматриваться как беглое предварительное шифрование самостоятельно static void Main(string[] args) { перед основным шифрованием. Прогон входных данных через IV опробовать // Мы хотим прочесть секретный ключ, так что читаем некий текст и известен как «отбеливание» [от «белый шум», – прим. ред.] – перед SHA512, просто замените класс помещаем его в переменную “key” зашифровкой ваш текст преобразуется в нечто более безликое, и если SHA1Managed на Console.Write(“Пожалуйста, введите ключ: “); даже кто-то доберется до вашего ключа перебором миллионов комби- SHA512Managed. string key = Console.ReadLine(); наций, он не будет знать, достиг ли он верного результата, потому что Но помните, что это // Если ключ не указан, использовать ключ по умолчанию IV его исказил. Для AES, IV должен состоять из 16 символов, так что мы приведет к if (string.IsNullOrEmpty(key)) { читаем из ключа SHA1 с 5-го символа по 21-й, просто для краткости. генерации ключей, отличающихся от Console.WriteLine(“Ключ не указан – считаем, что это ‘frosties’”); Итак, этот кусок весь довольно простой. Более трудная часть – сгенерированных key = “frosties”; протащить входной файл через шифровальщик в выходной файл, SHA1! } поскольку это выполняется при помощи файловых потоков. Делается // Создание хэша ключа это приблизительно так: key = Sha1(key); Открыть файловый поток с правами записи; он будет использовать- Console.WriteLine(key); ся для сохранения результата } Создать движок Rijndael Скиньте это в ваш новый проект, вместе с методом Sha1(), описан- Создать базовый шифровальщик, указав ему наш движок Rijndael и ным ранее, и вы готовы к бою: попытайтесь запустить его, чтобы убе- выходной файловый поток диться, что ваш генератор SHA1 работает нормально. Прочитать входной файл в массив байтов Передать массив байтов шифровальщику, для его шифрования и Секретное послание записи в результат Благодаря ReadLine() и Sha1() теперь у нас есть 40-битный ключ безо- Закрыть открытые файлы пасности, 32 бита которого будут использоваться для шифрования Затем, в завершение, засунем весь этот блок кода в приятный наших файлов. Здесь начинается реальная сложность: зашифровать и метод EncryptFile(), чтобы больше никогда его не видеть! расшифровать файлы с использованием .NET не так легко, и это стран- Превращая все это в C#, получаем следующий большой метод, с но, для столь широко используемой операции! Фактически, шифрова- комментариями для удобства чтения: ние и расшифровка, вместе с использованием сети (как показал пре- static void EncryptFile(string file_in, string file_out, string key) { дыдущий номер), это уродливые наросты, которые, похоже, необходи- // Я заключил весь метод в блок try/catch для перехвата ошибок мы любой среде программирования, чтобы считаться полноценной. try { Труднейшая часть шифрования – работа с данными, пока они FileStream output = new FileStream(file_out, FileMode.Create,FileAccess. блуждают между входным и выходным файлами. Вообще-то создать Write); AES-шифровальщик предельно просто, раз у нас уже есть готовый к применению ключ. Фактически это сводится к следующему: // Это тот же код, что и ранее RijndaelManaged aes = new RijndaelManaged(); RijndaelManaged aes = new RijndaelManaged(); aes.Key = Encoding.UTF8.GetBytes(key.Substring(0, 32)); aes.Key = Encoding.UTF8.GetBytes(key.Substring(0, 32)); aes.IV = Encoding.UTF8.GetBytes(key.Substring(5, 16)); aes.IV = Encoding.UTF8.GetBytes(key.Substring(5, 16));

Октябрь 2007 Linux Format 6 9 Учебник Mono-Мания

// Этот кусок делает всю трудную работу ICryptoTransform transform = aes.CreateEncryptor(); CryptoStream cryptostream = new CryptoStream(output,transform, CryptoStreamMode.Write); // Вытягиваем входной файл... byte[] inputbytes = File.ReadAllBytes(file_in); // ...и проводим его через CryptoStream в выходной файл cryptostream.Write(inputbytes, 0, inputbytes.Length); // а теперь очищаем cryptostream.Close(); output.Close(); Скорая } catch (Exception e) { помощь // При возникновении проблем (не найден файл и т. п.), печатаем ошибку Файл на входе...... и на выходе, после однократного прогона через Мы используем Console.WriteLine(e.Message); Tanuki. Encoding.UTF8. GetBytes() для пре- } образования нашей } строки-ключа в Необходимость использовать массивы байтов смахивает на откат // Убеждаемся, что запись закончена, затем закрываем дескриптор последователь- к C, но это единственный способ корректно работать с двоичными файла ность байтов, но технически это не данными. Если вы попытаетесь сохранить шифрованные данные output.Flush(); обязательно, пото- в виде строк, то почти наверняка повредите ваши данные – будьте output.Close(); му что Sha1() воз- осторожны! } catch (Exception e) { вращает лишь Console.WriteLine(e.Message); ASCII-символы, и } можно обойтись Подставляем другую щеку Encoding.ASCII. Шифрование файлов без возможности их дешифрации имеет смысл, } GetBytes(). Однако в только если вы для хранения бумаг регулярно применяете шредер. Но Как и при шифровании, я умышленно поместил расшифровку в идеале мы не цель Tanuki – выполнять шифрование и дешифрацию файлов, исполь- отдельный метод – вы можете вставить этот код в любой проект, и он хотим, чтобы зуя один и тот же ключ – означает, что нам необходим метод Decrypt(), просто будет работать. Encrypt() или Decrypt() вникали, в в пару к вышеприведенному Encrypt(). каком формате они Дешифрация файлов немного отличается от шифрования, пото- Соединяем все вместе получают данные, му что нам необходимо читать дешифрованные данные и записывать Теперь мы умеем шифровать файлы, дешифровывать файлы и генери- поэтому работа с простой текст. Это может быть сделано путем прямого подключения ровать хэши строк для использования в качестве секретных ключей; но UTF8 (известной выхода шифрованного потока на вход нашей операции записи, почти Tanuki пока что лишь набор методов, гуляющих сами по себе. В некото- также как Unicode) – более как “>” в командной строке. Лучший способ объяснить это – предоста- ром смысле это неплохо: работа с такими самодостаточными кодами умное решение. вить вам код с комментариями, где происходит изменение; вот он: означает, что у вас есть набор строительных блоков, которые можно static void DecryptFile(string file_in, string file_out, string key) { поместить куда угодно. Более того, если когда-нибудь вы решите изме- try { нить ваш алгоритм с AES на какой-то другой, останется лишь изменить // Готовимся к чтению со входа и к записи на выход несколько строк в Encrypt() и Decrypt() – остальной код менять не нуж- FileStream input = new FileStream(file_in, FileMode.Open,FileAccess. но, потому что он и знать не знает, как работают Encrypt() и Decrypt(). Read); Этот метод, известный как «инкапсуляция» или «скрытие данных», StreamWriter output = new StreamWriter(file_out); является фундаментальной концепцией программирования. RijndaelManaged aes = new RijndaelManaged(); Итак, на данном этапе нам осталось обновить метод Main(), aes.Key = Encoding.UTF8.GetBytes(key.Substring(0, 32)); чтобы он читал параметры и выполнял соответствующие действия. aes.IV = Encoding.UTF8.GetBytes(key.Substring(5, 16)); Параметры, которые должен воспринимать Tanuki – это указание шиф- ICryptoTransform transform = aes.CreateDecryptor(); ровать или дешифровать файл (при помощи + или –), а также имена CryptoStream cryptostream = new CryptoStream(input, transform, входного и выходного файлов. В общем, метод должен: CryptoStreamMode.Read); 1 Проверить, налицо ли все три параметра (и выкручиваться, если их // Записываем все, что прислал дешифровщик CryptoStream окажется больше/меньше). output.Write(new StreamReader(cryptostream).ReadToEnd()); 2 Прочесть секретный ключ пользователя из командной строки (и использовать frosties, если ничего не было введено). 3 Создать хэш ключа. 4 Если первый параметр +, шифровать файл. Забираемся глубже! 5 Если первый параметр –, дешифровать файл. Преобразуя это в комментированный код, получим: Если вы закончили Tanuki и ищете способы набраться опыта, попробуйте такие идеи: static void Main(string[] args) { Легко: Заставьте Tanuki записывать секретный журнал с информацией о том, когда каждый // Нам нужно ровно три аргумента! файл был зашифрован или дешифрован. if (args.Length != 3) { Средне: Позвольте людям выбирать другие алгоритмы шифрования, а не только AES. Console.WriteLine(“Укажите либо +, либо - как первый параметр, Трудно: Позвольте пользователям указывать каталоги для шифрования. Пусть выходной потом введите входной и выходной файлы как второй и третий файл автоматически приобретает вид файл.расширение.encrypt, т. е. /foo/bar/baz.txt параметры.”); превратится в /foo/bar/baz.txt.encrypt return; // Выкручиваемся } Экстрим: Кэшируйте секретные ключи пользователей на 10 минут, чтобы им не // Это уже было приходилось постоянно вводить их при шифровании различных файлов. Подсказка: наиболее Console.Write(“Пожалуйста, введите ключ: “); безопасный метод требует другой программы, запущенной как демон, а также связи через string key = Console.ReadLine(); сокеты. if (string.IsNullOrEmpty(key)) {

70 Linux Format Октябрь 2007 Mono-Мания Учебник

ной файл существует? Проверка первого может быть выполнена путем Пароли как параметры простого добавления следующего кода сразу после проверки args. Length: У вас может быть искушение позволить людям запускать Tanuki так: if (!File.Exists(args[1])) { mono tanuki.exe + in.txt out.txt my_secret_key Console.WriteLine(“Входной файл не существует!”); На вид более удобно, и это вправду удобно. А заодно и ужасно return; небезопасно, поскольку любой может просто влезть в вашу историю } Bash и узнать пароль. Единственный способ обойти это – очистить Что касается второй проблемы, ее решение зависит от того, как историю (выполнив history -c), но проще запросить пароль после вы хотите с ним работать. Я специально написал Tanuki так, чтобы она запуска программы. работала с входным и выходным файлами, и никакая ошибка, случай- но допущенная вами при вводе кода, не уничтожила ваши драгоценные файлы! Но коль скоро ваш код заработал, почему бы вообще не отбро- Скорая сить параметр выходного файла и выполнять шифрование прямо на помощь Console.WriteLine(“Ключ не указан – считаем, что это ‘frosties’”); месте. Как альтернатива, вы можете позволить людям запускать Tanuki Скомпилированную key = “frosties”; с параметрами + и – (шифрование и дешифрация) или ++ и –– (шиф- программу Mono } рование и дешифрация, и не выкручиваться, если выходной файл уже очень просто key = Sha1(key); существует). преобразовать // Выбираем, что делать, согласно первому параметру Итак, мы подошли к концу проекта этого месяца, и я надеюсь, вы обратно в более if (args[0] == “+”) { видите, что теперь мы получили действительно серьезный код. Если или менее понятный код, в EncryptFile(args[1], args[2], key); даже вам не на 100% ясно, как работают Encrypt(), Decrypt() и Sha(), основном потому, } else { фишка в том, что они существуют как закрытые методы, о которых что большинство . DecryptFile(args[1], args[2], key); вам нечего беспокоиться – они работают, вот и все! В частности, я счел NET программ } метод Sha1() полезным в моем собственном коде, поскольку создание содержит много легко } хэш-значений (всего, от паролей до DVD-образов в 8 ГБ) является пре- распознаваемых В использовании программой параметров имеется один сущест- красным способом проверки корректности полученных данных. Но в встроенных венный недостаток – рекомендую вам попробовать самим его обна- любой ситуации, когда вы не желаете, чтобы мир копался в ваших дан- функций. Так что не ружить, пока я не назвал его. Покамест попытайтесь запустить вашу ных, шифрование – лучший выбор. ожидайте программу так: Наслаждайтесь – шифрование ваших файлов поможет вам быть на выигрыша от любых усилий LXF Создайте файл с именем foo.txt в вашем каталоге bin/Debug. шаг впереди силовых ведомств! вроде «неясно – Поместите в него что-нибудь. Но только не много. значит, безопасно»: Теперь выполните: mono tanuki.exe + foo.txt foo-enc.txt Tanuki защищена, Затем: mono tanuki.exe - foo-enc.txt foo-copy.txt потому что защищен AES и Если все работает, то foo.txt и foo-copy.txt должны совпасть. потому что Нашли проблему? Нет? Хорошо, даю вам еще минуту, и пользуюсь секретный ключ случаем напомнить вам, что для максимальной безопасности понадо- хранится в секрете, бится вектор инициализации получше. У использованного мною IV есть а не потому, что вы проблема: он поставляется из того же источника, что и ключ (обра- припрятали исходный код ботанная SHA1 версия текста, предоставленного пользователем). Все только для себя. потому, что я использую одну и ту же часть хэша для создания ключа и IV, вместо того, чтобы использовать для IV несколько символов не из ключа. Помните, однако, что IV не должен храниться в секрете, пото- му что его основная работа – малость перемешать ваш простой текст перед тем, как он отправится на шифрование. Работа над ошибками Я думаю, что у вас было достаточно времени осознать проблему с параметрами в Tanuki, а потому даю ответ: если args[0] равен «+», мы шифруем файлы. В противном случае, мы их дешифруем. А вдруг кто- то случайно перепутает порядок следования параметров, т.е.: mono tanuki.exe in.txt out.txt + В этом примере Tanuki попытается дешифровать файл, а затем вылетит, потому что мы указали в качестве имени выходного файла +. Простейший способ исправить этот казус – ввести проверку, напри- мер, так: if (args[0] == “+”) { EncryptFile(args[1], args[2], key); } else if (args[0] == “-”) { DecryptFile(args[1], args[2], key); } else { Console.WriteLine(“Укажите либо +, либо - как первый параметр”); } Tanuki в действии. Есть несколько вещей, которые вы можете Для начала неплохо, но это только часть проблемы. Что произой- захотеть попробовать или исправить: каждый может видеть дет, если входной файл не существует? Что произойдет, если выход- секретный ключ при его вводе (он не скрыт за звездочками), и нет сообщений подтверждения. Через месяц Встреча Mono и Posix: как использовать любимые функции Linux.

Октябрь 2007 Linux Format 71 УчебникHardcore Hardcore Linux Linux Проверьте себя как продвинутого пользователя Gentoo: Не жди Необходимо самое свежее ПО, еще не попавшее в portage? Нейл Ботвик покажет пользователям Gentoo, как отследить ebuild или написать свой собственный. Шагать в ногу со временем Если последнюю синхронизацию portage вы проводили раньше, чем вчера, то запустите emerge --sync, чтобы убедиться в наличии всех свежих обновлений, содержащих то, что вам необходимо. Если Snafu 2.0 все еще нет и он был выпущен менее чем месяц назад, весьма вероятно, что он уже есть в portage, но помечен для тестирования. Большинство ebuild’ов находятся в дереве около 30 дней, прежде чем их пометят как стабильные; очевидное исключение – исправления безопасности, которые поставляются всем при первой же возможнос- ти. Управляет этим параметр KEYWORDS, KEYWORDS=”x86 ~amd64” означающий, что ebuild рассматривается как стабильный для x86, но все еще тестируется для amd64. И вам не нужно закапываться в ebuild’ы, чтобы это обнаружить! Первая полезная программа уже здесь, она называется eix, вот ее и emerge’ните. Это программа поис- ка в portage, она в несколько раз быстрее, чем использование emerge --search, и к тому же предоставляет больше информации. Быстротой она обязана использованию индексов, так что после ее установки запустите update-eix. Базу данных необходимо обновлять каждый раз при запуске emerge --sync; программа eix-sync позаботится об обеих задачах и сообщит вам о новых и обновленных пакетах. Теперь выполните eix некая_программа, и увидите, что есть в portage. Вывод eix четко различает стабильные, тестовые и маскированные (об этих роме рассылки своевременных ответов на вопросы озада- далее) пакеты. Версия пакета, устанавливаемого portage, управляет- ченных пользователей через форумы www.linuxformat.co.uk, ся параметром ACCEPT_KEYWORDS в вашем /etc/make.conf, но его Кнаибольшее удовлетворение от работы в Linux Format нашей можно назначить самим. При желании установить тестовый пакет, команде приносят ответы на избранные запросы наших читателей, при- выполните сылаемые на наши адреса (см. стр. 107). Мы хотим лишь одного: чтобы ACCEPT_KEYWORDS=”~amd64” emerge snafu Наш у нас было побольше времени на помощь! но это должно использоваться только с --pretend, для тестирова- эксперт ния. Имеются по меньшей мере две веские причины не использовать Уважаемый Linux Format, ACCEPT_KEYWORDS в командной строке. Во-первых, это будет приме- Нейл Ботвик В вашем обзоре Gentoo сказано, что в нем почти 12 000 пакетов, и нено ко всем устанавливаемым пакетам: не только к Snafu, но и к его считает, что Gentoo – лучший дистрибутив они всегда свежие, так почему же я не могу установить новую версию зависимостям. Во-вторых, установка является временной, и при следу- после его Snafu 2.0? ющем emerge world portage попытается вернуть все назад. Решение – предыдущего Брюзга из киберпространства в etc/portage/package.keywords. Файлы в /etc/portage отменяют для любимца, и никогда не упускает отдельных пакетов настройки в make.conf и профиле portage. Итак, возможности Уважаемый/ая г-н/г-жа Брюзга, поместите следующую строку исправить то, что Действительно, пакетов для Gentoo очень много: сейчас есть более net-misc/snafu ~amd64 не было сломано. 24 000 ebuild’ов для более 12 000 пакетов; но нет такого репози- в /etc/portage/package.keywords (если файл тория, где содержится абсолютно все. Однако Вы можете запо- не существует, создайте его), и будете лучить Snafu хоть сию же минуту, причем не одним способом. всегда использовать тестовую вер- Так что давайте рассмотрим некоторые способы его найти, или сию Snafu. Можно выполнить более даже, если ни один не поможет, напишем свой собственный тонкую настройку, применив ее к ebuild, что не так страшно, как Вам может показаться. Заодно мы конкретной версии; можно пред- рассмотрим несколько полезных программ, которые делают работу почесть тестовую версию Snafu 2.0 с portage еще легче. и остановиться на ней, когда она ста- Я случайно подметил, что Вы пожаловались лишь на сравни- нет стабильной, а не гнаться постоянно тельно малоизвестную программу Snafu; более известные foo и за новыми версиями; более детально см. bar всегда идут в ногу со временем, поскольку они необходимы врезку под заголовком «Атомная сила» на сле- для корректной работы большинства man-страниц. Читайте... НБ дующей странице.

Месяц назад Применяли APT.

72 Linux Format Октябрь 2007 Hardcore Linux Учебник ebuild’ов!

Gentoo, где регистрируются ошибки [bug tracker] – http://bugs.gentoo. Скорая org. Поищите по имени программы с префиксом ALL, чтобы убедиться, помощь что просмотрены будут все ошибки, а не только открытые – например,

ALL snafu. Вы можете обнаружить, что кто-то уже написал ebuild или Чтобы облегчить изменил существующий, если он обновляется. Если нет, можете заре- себе жизнь, не гистрировать ошибку с запросом на ebuild. Если вы ищете обновление используйте номер программы, находящейся в portage, то дайте разработчикам время версии внутри ebuild. Переменные отреагировать на ваш запрос – не размещайте запросов на обновле- вроде $P – все они ния через час после выхода программы. После Bugzilla, посмотрите на описаны в man- домашней странице программы – некоторые авторы выпускают свои страницах ebuild собственные ebuild’ы; а не то поищите на форумах Gentoo. – делают ebuild Найдя ebuild, скопируйте его в соответствующее место вашего переносимым между версиями оверлея; при именовании должны использоваться стандартные кате- одного и того же гории, определенные для portage, так что ваш ebuild Snafu 2.0 следу- пакета. ет разместить в /usr/local/net-misc/snafu/snafu-2.0.ebuild. Если вы не смогли назвать его правильно, то portage, вероятно, проигнорирует http://bugs.gentoo.org: запрос обновленных версий, отчет об ошибках его. Обычные предостережения касаются программ, поступающих из и ваш успех в обновлении или размещении собственных ebuild. неофициальных источников: если они что-то сломают, вам останутся осколки и ничего более.

Возможно также, что пакет просто не был протестирован на вашей архитектуре, и ebuild не содержит ключевых слов для нее. Обычно это «Древо Portage – это случается со второстепенными архитектурами, но порой имеет место главный репозиторий ebuild’ов, и для amd64. Часто вы можете заставить его установиться, изменив ACCEPT_KEYWORDS на значение ~x86 или x86 для этого пакета. Если но не единственный.» таким образом все устанавливается и корректно запускается, отправь- те отчет на http://bugs.gentoo.org, чтобы осуществляющие поддержку знали это. Я так поступал много раз, когда устанавливал на свой iBook Обновление существующего ebuild’а программы, не тестированные для PPC. Если вы собираетесь обновить существующий пакет, часто вы може- Другой вариант – пакет замаскирован; тогда присвоение ему ключе- те установить его, сделав копию существующего ebuild’а. Поскольку вых слов ни при чем. В этом случае пакет (обычно) приведен в списке ebuild’ы используют другие файлы внутри каталога пакета, наилегчай- /usr/portage/profiles/package.mask, вместе с причинами маскирования. ший путь сделать это – скопировать весь каталог пакета с /usr/portage Причина может быть любой: от «замаскирован для тестирования» до в ваш оверлей, затем скопировать ebuild, например: «подпалит вашего кота, если установите». Если вы готовы к подобным cp -a /usr/portage/net-misc/snafu /usr/local/portage/net-misc/ последствиям, добавьте атом пакета в /etc/portage/package.unmask, cd /usr/local/portage/net-misc/ чтобы установить его. cp snafu-1.5-r1.ebuild snafu-2.0.ebuild Прежде чем оставить тему тестовых и стабильных ebuild, важно Выберите для копирования последний из существующих ebuild’ов. уяснить, что эти термины означают. Они соответствуют самому ebuild. Часто ebuild’ы не требуют какой-либо правки, благодаря способу, Стабильный ebuild тестировался около месяца и потому стабилен, и в смысле доказательства работоспособности и в смысле других опреде- лений стабильности, и неизменяем. Это важное свойство стабильных пакетов: вам не надо обновлять вашу машину бесконечно, что важно на Атомная сила производстве. Тестовый, с другой стороны, не означает нестабильный, В документации ebuild вам встретятся упомина- Первый соответствует только версии 2.0, вто- в смысле склонный к сбоям: это означает более быстрое изменение. ния об атомах; но что это такое? Атом – это спе- рой соответствует только пакетам с версией Очень важно, что эти термины применяются к ebuild, но не к програм- цификация какого-нибудь пакета, типа snafu или выше 2.0 (чтобы включить 2.0, используйте >= ), мам, которые они устанавливают. Хотя ebuild Snafu 2.0 еще не помечен net-misc/snafu. Первый вариант можно использо- < и <= соответствуют меньшим номерам. как стабильный, это не означает, что сама Snafu считается нестабиль- вать в командной строке, но не в других местах, Последний пример менее привычен и означает ной, склонной к повреждению вашего компьютера или вызывающей потому что пакеты с тем же именем могут ока- 2.0 и любое исправление 2.0, такое как net-misc/ выпадение волос. заться в других категориях: пример – emerge -- snafu-2.0-r1, но не 2.0.1 или 1.9. Поскольку неко- pretend fuse. Значит, при работе с ebuild’ами торые используемые здесь символы имеют осо- Забираемся глубже нужно кроме имени указать категорию. Но иногда бое значение при работе в оболочке, не худо бы Хотя дерево portage – это главный репозиторий ebuild’ов, он отнюдь необходимо быть еще более точным. Все нижес- выработать привычку заключать подобные атомы не единственный. Portage позволяет добавлять оверлеи, содержащие ледующее – это корректные атомы: в кавычки. =net-misc/snafu-2.0 больше ebuild’ов. Если вы добавите строку >net-misc/snafu-2.0 PORTDIR_OVERLAY=/usr/local/portage

Октябрь 2007 Linux Format 7 3 Учебник Hardcore Linux

которым portage получает информацию о версии из имени ebuild. sunrise), содержащий избранные ebuild’ы с http://bugs.gentoo.org, он Скопированный ebuild будет знать, что нужно загрузить snafu-2.0.tar. ближе всех к официальному оверлею. bz2 со страницы проекта на SourceForge. Если вы сделаете это и он заработает, пожалуйста, сообщите об успехе разработчикам на http:// Ваш первый ebuild bugs.gentoo.org – пусть знают, что он работает. Прежде чем работать Вы пытались переименовать старый ebuild (если это обновление), с пакетом, добавленным вами к вашему оверлею, следует создать для искали в http://bugs.gentoo.org, http://forums.gentoo.org, в Google и под него файл манифеста. Он содержит хэши MD5 и SHA1 всех файлов в кроватью, но ebuild для вашего пакета так и не нашелся. Есть еще одна каталоге пакета (а файлы в официальном дереве имеют также GPG- возможность: написать ebuild самостоятельно. Спешу вам сообщить, подпись). Это сделано для предотвращения вторжений malware под пока вы в ужасе не отбросили журнал, что написание ebuild для Gentoo видом ebuild и означает, что protage откажется устанавливать пакет, намного проще, чем создание RPM- или Deb-пакетов, потому что боль- если детали его манифеста не совпадают. Для ваших оверлейных шую часть работы выполняет portage. Если пакеты для сборки и уста- ebuild’ов вам необходимо создать манифест самостоятельно, при новки используют стандартный автоматический процесс ./configure && Скорая помощи make && make install, то процедура практически тривиальна. помощь ebuild /usr/local/portage/net-misc/snafu-2.0.ebuild manifest Вы найдете шаблоны ebuild в /usr/portage/skel.ebuild, они почти целиком состоят из пояснительных комментариев. Ebuild – это скрипт Спустя какое-то Сторонние оверлеи bash, управляющий загрузкой, распаковкой, конфигурированием, ком- время, файлы Оверлей portage вы можете создать сами, а можете во множестве пиляцией и установкой программ. Portage использует множество в /etc/portage захламляются импортировать их из других мест. Когда-то для этого приходилось функций для выполнения этих задач, главные из которых – src_fetch(), избыточными использовать cvs или subversion, а затем редактировать /etc/make. src_compile() и src_install(). Вы можете определить их в вашем ebuild, или устаревшими conf, но сейчас у нас есть layman – один из полезных инструментов, о но если этого не сделать, то определения по умолчанию работают в элементами. которых я говорил ранее: пришла пора его установить. Готово? Теперь стандартном случае ./configure && make && make install. Получается, Выполните eix-test- выполните что простейший ebuild – просто набор присвоений значений перемен- obsolete, чтобы увидеть «засохшие» layman -L ным, вроде ветки, которые для загрузки и отображения последнего списка оверлеев. Список, можно отстричь. правда, не слишком информативен: как узнать, какой оверлей содер- # Copyright 1999-2007 Gentoo Foundation жит требуемый пакет? Вспомним eix. Он умеет загружать индексы так- # Distributed under the terms of the GNU же и из layman: выполните General Public License v2 update-eix-remote и при следующем поиске с использованием eix выведется также и # $Header: $ DESCRIPTION=”Snafu is a great program” HOMEPAGE=”http://www.snafu.con/” «Слоты – это способ установки SRC_URI=”http://www.snafu.con/downloads/${P}.tar.bz2” двух, обычно несовместимых, LICENSE=”GPL-2” SLOT=”0” версий одного и того же пакета.» IUSE=”” KEYWORDS=”~x86” список пакетов, найденных в оверлеях. Добавьте этот оверлей в вашу систему так: Три первые строки необходимы, если вы отправляете свой ebuild layman -a overlayname на http://bugs.gentoo.org. Остальные переменные обязательны, а имена Когда вы делаете это в первый раз, вам следует добавить следую- их по большей части говорят сами за себя. DESCRIPTION, HOMEPAGE щую строку в /etc/make.conf и LICENSE (используется американская орфография) очевидны, за source /usr/portage/local/layman/make.conf исключением того, что значение LICENSE должно быть одним из ука- Она известит portage обо всех добавленных layman оверлеях, так занных в /usr/portage/licenses. SRC_URI – это расположение tar-архива что вы сможете устанавливать из них через emerge. Один из первых с исходными текстами, $P соответствует имени ebuild’а без расшире- рассматриваемых оверлеев – Sunrise (http://overlays.gentoo.org/proj/ ния .ebuild и любых частей -rN. Именно поэтому переименование ebuild автоматически заставляется загружать и устанавливать новую версию программы, версия и имя tar-архива берется из имени ebuild. SLOT – обязательный параметр, он обычно равен нулю, что означает, что пакет Настраиваем Portage не множественный [slotted]. Слоты – это способ установки двух, обыч- но несовместимых, версий одного и того же пакета. Они необходимы, в Gentoo имеется полезный инструмент под Каталог /etc/portage содержит много файлов, когда различные программы зависят от отличающихся версий. Чтобы позволяющих перекрыть глобальные настрой- названием flagedit, способный добавлять или увидеть множественные пакеты, выполните ки для отдельных пакетов напрямую. Чтобы удалять записи из этих файлов. Это особенно equery list --duplicates установить флаги USE для выбранных паке- полезно при изменении флагов USE для каж- тов, используйте package.use, тогда как дого пакета при помощи Equery – еще одна из полезных программ, которую следует уста- package.keywords, как уже говорилось, позво- flagedit net-misc/snafu usb новить, она является частью пакета gentoolkit. Присутствие IUSE также ляет изменить для них ACCEPT_KEYWORDS. flagedit net-misc/snafu -usb обязательно, хотя переменная может быть оставлена пустой, в отличие Если вы хотите установить замаскированный flagedit net-misc/snafu %usb от SLOT; она содержит список флагов USE, соответствующих ebuild. пакет, поместите его в /etc/portage/package. Первые два добавляют usb и -usb записи в KEYWORDS также не требует пояснений (по крайней мере, если вы unmask; для предотвращения установки ука- package.use, а последний удаляет любые упо- читаете этот урок нормально, от начала к концу) и должна иметь значе- занных вами версий пакетов пригодится минания о usb (и всю запись snafu, если здесь ния только тех архитектур, для которых известно, что программа рабо- это последний флаг use), так что будут исполь- package.mask. тает. Если вы знаете, что программа не работает на конкретной архи- Здесь можно применять общие или привязан- зоваться стандартные флаги USE. flagedit не тектуре, вам следует предварить ее в KEYWORDS знаком - (минус). ные к версии атомы, хотя будьте осторожны, только существенно экономит время по срав- KEYWORDS=”~x86 amd64 -ppc” используя общие атомы в замаскированных и нению с ручным редактированием файлов, но демаскированных файлах. также проверяет, что указанные вами флаги означает, что вы протестировали его на трех архитектурах, и он зарабо- Чтобы избежать правки файлов use и keyword, USE верны. тал только на первых двух. Любая не указанная архитектура считается не протестированной.

74 Linux Format Октябрь 2007 Hardcore Linux Учебник

Следующий шаг пояснительные комментарии, но вам не мешает обратиться к app- Все, чем мы покамест занимались на нашем уроке – это чрезвычайно portage/portage-manpages за дополнительной документацией. Другие простой ebuild, даже не рассматривающий фиксированные зависимос- места, где можно разжиться подробной информацией – man-страницы ти, не говоря уж о различных опциях и зависимостях, управляемых ebuild и portage, а также Руководство разработчика Gentoo на http:// флагами USE. Давайте его немного дополним. Portage различает зави- devmanual.gentoo.org. симости времени компиляции, те, что необходимы только при сборке Это лишь кратчайшее введение в ebuild, но вполне достаточное, программы, и зависимости времени исполнения. Они указываются в чтобы вы могли начать, и оно показывает, что написать простой ebuild переменных DEPEND и RDEPEND соответственно, и часто совпадают. очень просто, потому что разработчики portage уже сделали всю труд- Ebuild для Snafu может содержать ную работу за вас. Все равно что в кулинарном рецепте указывать DEPEND=”dev-libs/libusb только ингредиенты, будучи счастливым владельцем целого персонала media-libs/libpng поваров, которые умеют готовить блюдо. LXF >=app-misc/unfoo-1.0.5” RDEPEND=”${DEPEND}” Заметьте, что мы можем указать соответствующую версию пакета. А что если Snafu поддерживает USB опционально? Ясно, что это встро- ено в программу, так что с ней уже ничего не сделаешь, но давайте предположим, что в ней имеется опция «не работать с USB-устрой- ствами», и мы хотим использовать эту возможность при ее установке. Именно для этого и существуют флаги USE. Нам необходимо добавить в ebuild три вещи: сообщение, какие флаги USE следует учитывать, учет всех зависимостей, затрагиваемых флагами USE, и пересылку соответствующих опций в конфигурационный скрипт программы, при- Полезные утилиты мерно так: IUSE=”usb” Имеется несколько программ, способных сде- откопать любую информацию об установлен- лать работу с portage проще и быстрее. Вот ных пакетах и даже предоставить оценку вре- DEPEND=”usb? (dev-libs/libusb) мои любимые, в порядке важности: мени до завершения текущего emerge. другие зависимости...” portage-utils src_compile() { eix Здесь содержатся программы ‘Q’, выполняю- econf \ Уже описывался: это самый быстрый и гибкий щие схожие с equery функции. Альтернатива Q $(use_enable usb) инструмент поиска в portage. работает быстрее, но equery имеет больше emake || die “Make failed” gentoolkit & gentoolkit-dev функций, так что устанавливайте обе. } Gentoolkit содержит несколько полезных ути- layman flag? (atom) в DEPEND означает «если флаг установлен, добавить лит: equery для запроса информации о пакетах, Уже описывалась; если вы хотите использо- атом к зависимостям». Поскольку мы меняем опции конфигурации, revdep-rebuild для поддержания системы в вать ebuild’ы с оверлеев, layman намного нельзя использовать стандартную функцию src_compile(), которая порядке, glsa-check следует запускать после упростит управление ими. каждой синхронизации для проверки предуп- sufed, profuse и flagedit по существу запускает econf для вызова ./configure, а затем emake реждений по безопасности, eclean может вер- Это редакторы флагов USE; ufed и profuse – для запуска make; обе они являются некоторыми специфичными для нуть свободное место путем удаления уже не интерактивные редакторы, работающие с гло- portage улучшениями. Мы всего лишь добавляем дополнительные нужных tar-архивов. Gentoolkit-dev содержит бальными флагами, отображая информацию о опции в ./configure. Функция use_enable проверяет, установлен ли еще несколько утилит для работы с ebuild’ами, каждом флаге и позволяя включать их или флаг USE, и если да, то выводит --enable-flagname. Если в каталоге в основном ориентированных на создание выключать. Flagedit – только для командной с исходными текстами snafu вы выполните ./configure --help, как при ebuild’ов для распространения. строки, он подразумевает, что вы уже знаете, установке из исходных текстов вручную, то увидите список опций. Если genlop чего хотите, но также работает с ключевыми опция для включения поддержки USB – это --enable-usb, то добавление Это синтаксический анализатор файла emerge. словами [keyword] и с установками для каждо- $(use_enable usb) в econf означает, что ./configure вызывается с этими log, не особо замечательный, но он может го пакета в /etc/portage. опциями. А если вместо этого конфигурационный скрипт использует - -enable-libusb? Вы можете определить любую разрешенную строку для использования вместо названий флагов при помощи econf $(use_enable usb libusb) Некоторые конфигурационные скрипты используют --with-option вместо --enable-option; в этом случае замените use_enable на use_with. Если вы emerge’ите пакет при помощи USE=“-usb”, то configure будет запущен с --disable-usb или --without-usb. Классный код Базовые функции ebuild, такие как src_compile, доступны для всех ebuild’ов, но существует множество других функций, используемых группами ebuild, которые вы также можете использовать. Они называ- ются eclasses и содержатся в /usr/portage/eclasses; их можно добавить в ваш ebuild путем включения inherit имя_класса в самом начале. Наиболее распространена из них eutils, используемая огромным числом ebuild’ов, но также имеются и классы для программ Отображать или менять ваши глобальные флаги USE поможет Profuse. Это интерфейс определенных типов, так что если вы пишете ebuild для программы GTK+, но он переключится в ncurses, если X недоступен. KDE, посмотрите различные kde eclasses. Сами eclasses содержат

Через месяц Предмет столь захватывающий, что это пока секрет!

Октябрь 2007 Linux Format 75 УчебникJava Серверные Enterprise приложения Edition Учимся на Java писать клиент-серверные приложения на Java Почтовый

ЧАСТЬ 9 Хотите оснастить свою программу возможностью писать «на деревню дедушке»? Александр Бабаев знает подходящее средство.

есмотря на засилье браузера в серии, JEE им не ограничи- Но в Java, как всегда, уже позаботились о том, чтобы упростить вается. Давайте попробуем посылать письма из Java (ведь жизнь человеку, которому нужно рассылать письма – позаботились на Н каждая хорошая программа должна уметь сообщать разра- самом высшем уровне (в Sun Microsystems) и достаточно качественно. ботчикам об ошибках), и сделаем это приложение не браузерным, а «обычным». И где волшебная кнопка? Есть такая замечательная библиотека, JavaMail. Она достаточно круп- Коротко о почте ная (224 килобайта только JAR-файл), зато и умеет очень много. А чего Чтобы работать с почтой, нужно уметь её отправлять и получать. При не умеет – можно научить, благо архитектура настраиваемая. Давайте попытке разобраться в этом вы наткнетесь на следующие буквосо- посмотрим, как с ней работать. четания (с разными вариациями): SMTP, POP, IMAP. Рассмотрим кратко, что это такое и как этим пользоваться (а также где почитать Подготовка поподробнее). Для начала скачаем саму библиотеку. Страничка продукта находит- ся по адресу http://java.sun.com/products/javamail/; скачивать нужно, SMTP как водится, последний релиз (1.4). Также понадобится JavaBeans При помощи Simple Mail Transfer Protocol (простого протокола переда- Activation Framework (JAF), которую можно загрузить со странички чи почты) почта передается с клиента на сервер. Отправляется то есть. рядом: http://java.sun.com/products/javabeans/jaf/index.jsp. Протокол текстовый, и если есть желание, можно отправлять письма После загрузки и разархивирования, получаем две библиотеки: mail. прямо из telnet’а. jar и activation.jar. Первая из них поддерживает все возможные прото- колы, поэтому размер имеет достаточно внушительный. Если что-то из POP этого многообразия вам не нужно, можно воспользоваться урезанны- Тоже текстовый протокол, но уже не для передачи, а для приема сооб- ми версиями, они также содержатся в mail.jar. щений. Может выдать информацию по почтовому ящику (сколько Создадим каталог для проекта (QuickMailer), в нем заведем под- сообщений, какой их размер), загрузить сообщение по номеру и так каталог libs и положим туда эти два jar-файла. Потом заведем другой далее. подкаталог (src), для записи исходных текстов.

IMAP Окошки POP предполагает, что почта скачивается на клиент и там уже раскла- Сделаем окошко для отправки сообщения. Оно будет простое – вот дывается по папкам, обрабатывается, группируется. При этом с серве- такое: ра сообщения стираются. Это не всегда удобно. Как раз для хранения почты на сервере создан протокол IMAP. Как и предыдущие два, он текстовый. Но с его помощью можно не только получить сообщения, но и создать на сервере папку, переместить письмо куда-нибудь, под- писаться на получение изменений (новых писем) в папке, и так далее.

GoogleMail/HotMail/… Но и это не всё. Протоколы протоколами, но некоторые сервисы рабо- тают «по-своему». И если GoogleMail предоставляет POP-интерфейс, то Hotmail, например, нет. В таком случае обычно есть какой-то свой, нестандартный протокол.

Итого В итоге получается, что разных протоколов много-много (это не считая вариантов и нюансов, комбинаций которых сотни). И чтобы по-чело- вечески все это обрабатывать, пришлось писать бы огромное количе- ство кода. А потом его отлаживать… Поэтому обычно, рассматривая сетевые приложения, отправку/получение писем обходят стороной. Действительно, зачем? Кому нужно, и так разберется. Рис. 1. Окно создания и отправки сообщений.

Месяц назад Сокеты – основа сетевого взаимодействия и работа с ними из Java.

76 Linux Format Октябрь 2007 Серверные приложения на Java Учебник На DVD

Код примеров статьи сервис

Подробно рассказать про то, как создаются формы, не хватит мес- JPanel mainPanel = new JPanel(new BorderLayout(5, 5)); та. Но привести код, создающий такое окошко – запросто. import javax..*; _message = new JEditorPane(“text/rtf”, “”); import javax.swing.border.EmptyBorder; mainPanel.add(controlsPanel, BorderLayout.NORTH); import java.awt.*; mainPanel.add(new JScrollPane(_message), BorderLayout.CENTER); import java.awt..ActionListener; mainPanel.add(buttonsPanel, BorderLayout.SOUTH); import java.awt.event.ActionEvent; mainPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); public class QuickMailerForm extends JFrame { private JTextField _fieldTo; setContentPane(mainPanel); private JTextField _fieldSubject; } private JEditorPane _message; Вкратце, здесь создается несколько панелей, вложенных друг в private JButton _buttonSend; друга. Чтобы выглядело получше, задаются отступы и межкомпонен- тные расстояния. public QuickMailerForm() throws HeadlessException { Последний метод – создание обработчика события нажатия на setTitle(“Быстро Мэйлер”); кнопку: private void createActions() { setDefaultCloseOperation(EXIT_ON_CLOSE); _buttonSend.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { createLayout(); try { createActions(); QuickMailer.sendMessage(“[email protected]”, _fieldTo.getText(), _fieldSubject.getText(), pack(); _message.getDocument().getText(0, _message. setSize(700, 560); getDocument().getLength())); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); } catch (Exception e1) { setLocation((int) (screenSize.getWidth() - 700)/2, (int) ((screenSize. e1.printStackTrace(); getHeight() - 560)/2)); } } } } }); Как видно, класс наследуется от JFrame, это окно приложения. } Имеется конструктор, где окну присваивается заголовок, устанавлива- Тут все достаточно просто. Вытаскиваются параметры письма из ется размер и положение в середине экрана. Также есть две функции: полей, после чего вызывается некий метод sendMessage, который мы первая создает компоненты (createLayout), вторая «вешает» на кноп- сейчас и рассмотрим подробнее. ку Отправить обработчик события, который собирает информацию и вызывает метод отправки почты. Собственно отправка сообщения Вот как создаются компоненты формы: Предполагается, что у вас на localhost’е настроен smtp-сервер (у меня private void createLayout() { стоит postfix), либо есть доступ к какому-то другому (который не тре- JPanel labelsPanel = new JPanel(new GridLayout(2, 1)); бует авторизации: с ней разбираться пока не будем). labelsPanel.add(new JLabel(“EMail получателя:”, JLabel.RIGHT)); Для начала создадим адреса отправителя и получателя: labelsPanel.add(new JLabel(“Тема письма:”, JLabel.RIGHT)); public static void sendMessage(String aFrom, String aTo, String aSubject, String aMessageText) throws Exception { JPanel buttonsPanel = new JPanel(new FlowLayout(FlowLayout. InternetAddress from = new InternetAddress(aFrom, “From”); RIGHT)); InternetAddress to = new InternetAddress(aTo, “To”); _buttonSend = new JButton(“Отправить”); Теперь нужно настроить так называемый транспорт, который будет buttonsPanel.add(_buttonSend); заниматься отправкой сообщения. Properties props = new Properties(); JPanel fieldsPanel = new JPanel(new GridLayout(2, 1)); props.put(“mail.transport.protocol”, “smtp”); _fieldTo = new JTextField(); props.put(“mail.smtp.host”, “localhost”); _fieldSubject = new JTextField(); props.put(“mail.smtp.port”, “25”); fieldsPanel.add(_fieldTo); Session session = Session.getDefaultInstance(props); fieldsPanel.add(_fieldSubject); Transport transport = session.getTransport(); Теперь – создадим само сообщение. JPanel controlsPanel = new JPanel(new BorderLayout(5, 5)); MimeMessage message = new MimeMessage(session); controlsPanel.add(labelsPanel, BorderLayout.WEST); message.setFrom(from); controlsPanel.add(fieldsPanel, BorderLayout.CENTER); message.setRecipient(Message.RecipientType.TO, to);

Октябрь 2007 Linux Format 7 7 Учебник Серверные приложения на Java

message.setSubject(aSubject, “utf-8”); commons. Называется она commons-email, и ее страничка располага- message.setContent(aMessageText, “text/plain; charset=utf-8”); ется по адресу http://commons.apache.org/email/. Скачав библиотеку, И, наконец, отошлем письмо. положим её в libs, к mail.jar и компании. Теперь попробуем отправить transport.connect(); письмо с ее помощью: transport.sendMessage(message, new Address[]{to}); public static void sendMessageCommonsEMail(String aFrom, String aTo, transport.close(); String aSubject, String aMessageText) throws EmailException { } SimpleEmail email = new SimpleEmail(); Как можно заметить, все предельно просто и понятно – но исклю- email.setHostName(“localhost”); чительно потому, что сам пример простой. Система достаточно мощ- email.setFrom(aFrom, “From”); ная, чтобы справиться и с авторизацией, и с сообщениями на разных email.addTo(aTo, “To”); языках, и с вложениями файлов. email.setSubject(aSubject); email.setMsg(aMessageText); Собираем все вместе email.send(); Осталось только написать метод, который будет все это запускать. } public static void main(String[] args) { Насколько все проще и понятнее сразу стало! А если нужно файл QuickMailerForm form = new QuickMailerForm(); приложить? Да пожалуйста: form.setVisible(true); public static void sendMessageWithAttachment(String aFrom, String aTo, } String aSubject, String aMessageText) throws EmailException { У меня после написания кода получилось два файла, QuickMailer. EmailAttachment attachment = new EmailAttachment(); java и QuickMailerForm.java. Скомпилируем их (выполнив, находясь в attachment.setPath(“attachments/attachment.zip”); каталоге, в котором находится src и libs): attachment.setDisposition(EmailAttachment.ATTACHMENT); javac -cp libs/activation.jar:libs/commons-email-1.0.jar:libs/mail.jar attachment.setDescription(“Файл-приложение к письму”); -encoding utf-8 -d out src/*.java attachment.setName(“attachment.zip”); Обратите внимание на часть команды после -cp. Это указание ком- пилятору, где искать используемые в коде классы, кроме стандартных. MultiPartEmail email = new MultiPartEmail(); Часть команды после -d определяет каталог, куда будут складываться email.setHostName(“localhost”); скомпилированные классы. И, наконец, так как мы создавали файлы в email.setFrom(aFrom, “From”); кодировке UTF-8 (в ней представлены исходные тексты на диске), то и email.addTo(aTo, “To”); в командной строке это нужно указать, иначе будет выбрана кодировка email.setSubject(aSubject); по умолчанию, а это не всегда верно. email.setMsg(aMessageText); Запустим: cd out email.attach(attachment); java -cp .:../libs/activation.jar:../libs/commons-email-1.0.jar:../libs/mail.jar QuickMailer email.send(); Можно отправлять письма. } Здесь тоже ничего сложного нет. Создать приложение в письме А получить? можно и используя только JavaMail, но там это получается достаточно На новое окошко места уже не хватит. Ограничимся просмотром кода, непросто, и длиннее раза в три-четыре. который нужно написать для того, чтобы получить письмо, например, по протоколу POP. Про спам Properties props = new Properties(); Конечно, работа с почтой не так проста, как это отражено в статье. Есть Session session = Session.getDefaultInstance(props, null); и проблема спама (а для программно отправляемых сообщений – про- блема того, что оно с большой вероятностью посчитается именно спа- Store store = session.getStore(“pop3”); мом), и проблема корректности. SMTP-протокол, в частности, доста- store.connect(aHost, aUserName, aPassword); точно старый, и там много неточностей, неявных правил и так далее. В общем, то, что есть JavaMail – это отлично, и она очень сильно помога- Folder folder = store.getFolder(“INBOX”); ет при работе с почтовыми сообщениями, но панацеей тем не менее не folder.open(Folder.READ_ONLY); является. Все равно нужно представлять себе, как работает протокол, какие заголовки нужно ставить, как обрабатывают сообщения разные Message message[] = folder.getMessages(); почтовые клиенты (чтобы письмо нормально там показывалось, а не крякозябрами) и много чего еще. for (int i = 0, n = message.length; i < n; i++) { Но все же, надеюсь, теперь можно не бояться страшных буквен- System.out.println(i + “: “ + message[i].getFrom()[0] + “\t” + message[i]. ных сочетаний, связанных с почтой, и спокойно встраивать в про- getSubject()); грамму еще одно удобнейшее средство коммуникации: электронные } письма. LXF

folder.close(false); store.close(); Данный кусок кода просто выведет список всех писем на сервере. Ну, а если не мудрить… Есть вариант и попроще. Если программа работает с почтой активно, можно использовать библиотеку наших постоянных друзей из apache-

Через месяц Struts: полезная библиотека, в которой собрано сразу несколько интересных решений.

78 Linux Format Октябрь 2007 GtkSourceView Подсветка синтаксисаGtkSourceView Учебник в ваших Gtk-приложениях Движок текстового

редактора На DVD

Если возможностей чистого GtkTextView для вашего приложения уже недостаточно или вы просто решили по-быстрому написать лучшую IDE всех времен и народов – начните с урока GtkSourceView от Петра Семилетова.

состав библиотеки Gtk входит отличный виджет текстового Однако среди разрабочиков известного редактора GEdit вырос редактора, воплощенный в виде взаимодополняющих классов виджет-надстройка над GetTextView – и называется он GtkSourceView В GtkTextBuffer, GtkSourceView и ряда других, вспомогательных (gtksourceview.sourceforge.net). В нем есть все то, чего недостает в стан- (мы писали про них в LXF93). Но ради универсальности этого вид- дартном виджете: и движок redo/undo, и подсветка синтаксиса, и отоб- жета его разработчики пожертвовали некоторыми вещами. Например, ражение правой границы – так называемого margin’а, и многое другое. нет встроенного механизма redo/undo, нет также подсветки синтаксиса Сейчас развитие GtkSourceView стоит на пороге перехода на новую различных языков программирования, хотя виджет обладает способ- ветку – под номером два. Вторая версия еще считается нестабильной, ностью задавать цвет и параметры шрифта при отображении отдель- а API ее не устоялось. В этой статье я постараюсь дать представление ных участков текста. и о современной версии библиотеки, и о грядущей. Замечу также, что я предполагаю ваше умение работать с обычным GtkTextView. Как я упоминал, GtkSourceView – лишь надстройка над GtkTextView, поэтому работа с GtkSourceView подразумевает использование и «стандартных» функций из Gtk. Чтобы создать новый виджет GtkSourceView, используется функция Gtk_source_view_new: GtkWidget *text_view = gtk_source_view_new (); Классу буфера для GtkSourceView, вместо GtkTextBuffer, соот- ветствует GtkSourceBuffer. Для его создания надо вызвать функцию gtk_source_buffer_new: GtkSourceBuffer *text_buffer = gtk_source_buffer_new (table); В качестве параметра мы передаем этой функции экземпляр таб- лицы с определениями тэгов пользовательской подсветки (вне движ- ка подсветки GtkSourceView). Напомню, что в текстовом движке Gtk, тэг – это объект, содержащий параметры форматирования текста, как то: шрифт, цвет и тому подобное. Для движка GtkSourceView первой версии, таблица имеет тип GtkSourceTagTable. Во второй версии GtkSourceView надо использо- вать стандартный тип из Gtk – GtkTextTagTable. Можно передавать в параметре значение NULL. Тэги вам понадобятся, только если вы захотите неким образом размечать текст – например, подчеркивать слова с ошибками. Создание тэгов, помещение их в таблицу и после- дующее применение (тэги применяются в тексте к месту, ограничен- ному итераторами) – тема, выходящая за рамки данной статьи. Для получения текста из GtkSourceBuffer и помещения его туда применяются те же функции, что и для GtkTextBuffer – gtk_text_ buffer_get_text и gtk_text_buffer_set_text. Передавая экземпляр GtkSourceBuffer в качестве параметра, можете приводить его к типу Рис. 1. Подсветка в редакторе TEA, выполненная с помощью (макросом GTK_TEXT_BUFFER), а можете не приводить – все равно GtkSourceView 2. передается указатель, а компилятор может выдавать предупрежде-

Октябрь 2007 Linux Format 7 9 Учебник GtkSourceView

ния в зависимости от своих настроек. Однако ничего дурного не слу- менеджер языков и строку, задающую тип MIME (для загруженного чится, если вы вместо: файла). gchar *text = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (buffer)); Менеджер языков – это переменная типа GtkSourceLanguagesManag напишете такое: er (в GtkSourceView 1) и GtkSourceLanguageManager (в GtkSourceView 2). gchar *text = gtk_text_buffer_get_text (buffer); В первом случае получаем экземпляр нужного класса с помощью В общем, здесь и далее, ради экономии журнального места, я не функции gtk_source_languages_manager_new, во втором лучше исполь- буду использовать в примерах приведение к типу. зовать новое средство, функцию gtk_source_language_manager_get_ Итак, с текстовым содержимым GtkSourceBuffer мы разобрались. default. Вручную уничтожать полученные объекты не нужно. Теперь давайте применим к загруженному тексту подсветку синтакси- Итак, для получения механизма подсветки, соответствующего неко- са – если таковая, конечно же, предусмотрена для конкретного языка торому типу MIME, используется примерно следующее: движком: создания подсветки «пользовательского» языка мы касать- language = gtk_source_languages_manager_get_language_from_mime_ ся не будем. Используем готовые, «встроенные» модули подсветки – type (source_languages_manager, mime_string); физически это XML-файлы, в которых заданы правила подсветки. Однако тут возникают два вопроса. Как быть в GtkSourceView 2, где Само собой, виджет не догадывается по помещенному в него тек- покамест нет функции, «отдающей» нам язык по переданному типу сту, подсветку синтаксиса какого языка надо использовать. Эту про- MIME? И как вообще получить MIME для файла? цедуру необходимо запрограммировать Работать будем опять-таки с На первый вопрос ответ очевиден – надо писать свою функцию. В буфером. каталоге tests исходных текстов GtkSourceView 2 есть образец – смот- В GtkSourceView 1: рите файл test-widget.c, функцию get_language_for_mime_type. Не gtk_source_buffer_set_language (buffer, language); самое удачное воплощение алгоритма, но оно работает, и вы будете gtk_source_buffer_set_highlight (buffer, TRUE); иметь представление, куда двигаться дальше. В GtkSourceView 2: Теперь о типах MIME. Есть несколько библиотек, позволяющих gtk_source_buffer_set_language (buffer, language); работать с ними. Самый естественный способ для программы, осно- gtk_source_buffer_set_highlight_syntax (buffer, TRUE); ванной на Gtk – обратиться к библиотеке GnomeVFS (LXF94): Функция gtk_source_buffer_set_language устанавливает нужную GnomeVFSFileInfo *info = gnome_vfs_file_info_new (); подсветку (удаляя при этом все тэги типа GtkSourceTag из таблицы GnomeVFSResult r = gnome_vfs_get_file_info (filename, info, GNOME_ тэгов переданного буфера), а gtk_source_buffer_set_highlight (либо gtk_ VFS_FILE_INFO_GET_MIME_TYPE); source_buffer_set_highlight_syntax) включает ее. А вот что такое пере- менная language в параметре первой функции? Определена она так: gchar *mime = gnome_vfs_file_info_get_mime_type (info); GtkSourceLanguage *language = NULL; Каким образом связать переменную language с подсветкой фай- // тут что-то делаем со строкой mime, затем освобождаем память, лов определенного типа? В первой версии GtkSourceView есть функ- выделенную под структуру info: ция с очень длинным названием: gtk_source_languages_manager_get_ language_from_mime_type. Она получает два параметра – указатель на gnome_vfs_file_info_unref (info);

80 Linux Format Октябрь 2007 GtkSourceView Учебник

Итого – в переменной mime, покуда память для info не освобожде- надо временно этот механизм отключить, используйте функции gtk_ на, имеем значение, соответствующее типу MIME для файла, чье имя source_buffer_begin_not_undoable_action и gtk_source_buffer_end_not_ передано в переменной filename. undoable_action. Любые действия с текстом в буфере между их вызо- Не забудьте, что перед использованием функций GnomeVFS надо вами не будут включены в очередь отмены. Так, например, следует инициализировать эту библиотеку (gnome_vfs_init), а после заверше- поступить при первой вставке текста из загруженного файла – иначе, ния работы вызвать gnome_vfs_shutdown. когда пользователь будет применять отмену, он рано или поздно дой- Итак, подсветка заработала. Что еще мы можем с ней сделать? дет до пустого документа. Изменить цвета. В GtkSourceView 1 можно, с помощью довольно гро- Для программного вызова отмены и отмены отмены (redo, как вы моздкого кода, назначить параметры подсветки для каждого элемен- догадались) нам даны функции gtk_source_buffer_undo и gtk_source_ та каждого доступного языка, например, для строки в HTML или CSS. buffer_redo. Можно также проверить, доступны ли эти операции, и В GtkSourceView 2 появился более удобный способ изменения цве- установить наибольшую длину очереди движка замен – указать, сколь- тов – использование схем. Схема здесь – это, грубо говоря, предус- ко в ней может быть элементов. тановленный набор цветов. Во время написания этих строк, в соста- Кроме того, движок GtkSourceView предоставляет много функций, ве GtkSourceView идет 3 схемы – classic, kate и tango. Как выбрать полезных разработчикам редакторов для программистов. Это управле- схему? ние автоматическим отступом и параметрами табуляции, отображение Сначала раздобудем список идентификаторов установленных в номеров строк слева от текста, работа с маркерами (полезно для пока- системе схем: за каких-нибудь закладок) и многое другое. GtkSourceStyleSchemeManager *manager = gtk_source_style_scheme_ Обе версии GtkSourceView – первую и вторую – можно установить manager_get_default (); одновременно, они не мешают одна другой. Если вы пишете программу с использованием GtkSourceView, то стоит подумать над поддержкой gchar **scheme_ids; обеих версий, ведь в старых дистрибутивах (да и в стабильной ветке g_object_get (manager, “scheme-ids”, &scheme_ids, NULL); Debian) вторая версия появится не скоро. Проверить наличие установленной библиотеки и включить ее в GList *ids = NULL; параметры сборки можно разными способами. Приведенный ниже код gint c = g_strv_length (scheme_ids) - 1; (предназначенный для размещения в configure.in) проверяет, установ- gint i; лены ли в системы библиотеки GtkSourceView2 и GnomeVFS 2. Если да, то они добавляются к параметрам сборки, а в файле config.h будет for (i = 0; i <= c; i++) определена константа gtksourceview2_SUPPORTED, проверяя которую, ids = g_list_prepend (ids, scheme_ids[i]); мы сможем узнать, есть поддержка GtkSourceView2 или нет: Здесь мы получаем менеджер схем по умолчанию, а затем считы- echo -n “checking for GtkSourceView2... “ ваем из него свойство scheme-ids в массив scheme_ids. После чего, для удобства, перемещаем идентификаторы в список ids. Со списком if pkg-config --exists gtksourceview-2.0 ; then GList удобнее работать, если у вас есть готовые функции для создания LIBS=”$LIBS `pkg-config --libs gtksourceview-2.0 `” виджетов-меню или виджетов-списков на основе данных из GList. А CFLAGS=”$CFLAGS `pkg-config --cflags gtksourceview-2.0 `” массивы представляются мне чем-то старорежимным. AC_DEFINE(GTKSOURCEVIEW2_SUPPORTED, 1, Далее, зная идентификаторы доступных схем, мы можем затребо- [GTKSOURCEVIEW2_SUPPORTED]) вать нужную схему по ее идентификатору: echo “yes” GtkSourceStyleScheme *scheme = gtk_source_style_scheme_manager_ get_scheme (manager, cheme_id); echo -n “checking for gnome-vfs-2.0... “ Осталось лишь назначить схему буферу GtkSourceBuffer: if pkg-config --exists gnome-vfs-2.0 ; then gtk_source_buffer_set_style_scheme (buffer, scheme); LIBS=”$LIBS `pkg-config --libs gnome-vfs-2.0`” Чем еще полезным нас может порадовать GtkSourceView2? CFLAGS=”$CFLAGS `pkg-config --cflags gnome- Механизмом Undo/Redo. По умолчанию любое изменение текста vfs-2.0`” в буфере подлежит отмене либо обратному действию. Если вам echo “yes” else echo “no” fi

else echo “no” fi Сходным способом можно проверить и наличие GtkSourceView 1. Все это касается стандартной системы сборки/установки с помо- щью Autotools – Scons, CMake и прочие настраиваются аналогично (с поправкой на синтаксис, разумеется). Для удобной работы с пользо- вательской настройкой подсветки в первой версии GtkSourceView вам еще понадобится библиотека GConf, чтобы держать настройки цветов в хранилище. Все подробности можно найти в исходных текстах GEdit или TEA. LXF

Октябрь 2007 Linux Format 81 УчебникНовая Ананас серия! Изучаем учетную платформу со свободной лицензией Первый взгляд ннс

ЧАСТЬ 1 Андрей Паскаль научит отличать спелый Ананас не только по виду и запаху, покажет несколько приемов препарирования чудо-фрукта и... даст пару советов по уходу за офисными Ананасами.

а забавным названием «Ананас» скрывается – «кто бы мог lrn.ru. Там вам скажут, где лежит продукция цеха по упаковке спелых подумать!» – полноценная среда разработки и исполнения со Ананасов в формат, установленный таможенным кодексом ваше- Зсвоим языком программирования, редактором экранных диа- го государства, или, другими словами, менеджера пакетов вашего логов, шаблонами печатных форм, метаданными и удобным редакто- дистрибутива. ром структур данных. Добавим сюда архитектуру «клиент-сервер» с По обнаружении подходящих пакетов вам не потребуется много поддержкой наиболее популярных свободных SQL-серверов MySQL, знаний для их установки. Ниже я расскажу, как быть, если подходящих PostgreSQL, умение выживать в среде Linux и Windows и получим к вашему дистрибутиву Linux пакетов нет, или вы не тот человек, кото- Наш (ого!) свободную платформу для автоматизации бизнес-процессов. рый, имея доступ к свежему коду в репозитории CVS, станет довольс- эксперт Итак, обо всем по порядку. Да, действительно, Ананас – это не твоваться упаковкой с датой изготовления полугодичной давности. просто еще одна программа для печати платежных поручений: Ананас – Отправляясь в волшебное путешествие, где вас ждут трудности Андрей Паскаль первая учетная платформа для Linux. Кроме того, приложения, разра- и испытания, помните одно: вам всегда помогут на форуме проекта. использует Linux ботанные на платформе Ананас, одинаково хорошо работают и под Стоит лишь правильно задать вопрос, и вы тут же получите на него более семи лет и Linux, и под Windows. исчерпывающий ответ. Форум лежит в глухом, заброшенном местечке играет роль координатора проекта Чем же Ананас отличается от хорошо всем известных интегри- с неказистым адресом http://ananas.lrn.ru/phpBB2/. Ананас. Он также рованных сред программирования, таких как NetBeans, Eclipse или знает ответ на Kylix? – спросит прозорливый читатель. Неужели Ананас луч- Ананас из исходников популярный у всех ше, или же всерьез собирается конкурировать с известными универ- Чтобы собрать Ананас из исходных текстов, вам потребуются следу- новичков вопрос: «Какой дистрибутив сальными инструментами? Разумеется, нет. ющие обязательные ингредиенты: mysql-devel, qt-devel, qt-qsa-devel. Linux мне выбрать?». Ананас является специализированной платформой, средой разра- Названия пакетов могут меняться в зависимости от дистрибутива. ботки учетных бизнес-приложений. Отсюда и вытекают отличия, зало- Приведенные выше именования пакетов и ниже – названия файловых женные при проектировании. Его не следует использовать для написа- путей приняты в Fedora 7. ния почтовых серверов или драйверов, управляющих оборудованием, После этого – тянем-потянем Ананас: если только вам не доставляет удовольствие занятие, напоминающее cvs -d :pserver:[email protected]:/var/cvs login вычерпывание супа шумовкой. Система запросит пароль. В ответ нажмите Enter. Если при программировании универсальным инструментарием cvs -d :pserver:[email protected]:/var/cvs co -r release-094b программист живет в поле таких понятий, как Класс, Объект, Запись, ananas Поле реляционной таблицы, то программирование со вкусом Ананаса В последней команде стоит обратить внимание на опцию -r release- составлено из букета таких понятий, как Документ, Справочник, 094b. Она задает версию Ананаса, которая будет вытянута в результате Регистр, Журнал, Отчет. выполнения команды. Для чего это сделано? А для того, чтобы программист мог проще Возможно, ко времени публикации статьи выйдет более свежая находить общий язык с заказчиком, который живет примерно в том же версия; тогда опцию следует сменить на release-XYZb, где X,Y и Z соот- понятийном мире. Для того, чтобы при составлении программы про- ветствуют номеру версии Ананаса, которая указывается в формате граммист оперировал как можно более высокоуровневыми понятиями ananas-X.Y.Z. и достигал результата как можно с меньшими затратами, не загляды- Самые смелые могут и вовсе не указывать эту опцию, чтобы полу- вая внутрь без особой необходимости. чить исходный код Ананаса с самыми свежими изменениями, которые Ну и хватит умствований. Давайте просто посмотрим, из чего же разработчики Ананаса поместили в репозиторий вчера или даже сегод- состоит приложение, разработанное на платформе Ананас. Но сначала ня (главное, чтобы не в момент запуска вами команды!): решим задачу установки Ананаса. cvs -d :pserver:[email protected]:/var/cvs co ananas В свое время я был поражен, узнав, что ананасы произрастают Репозиторий проекта поддерживается разработчиками в состоянии в траве, как арбузы, а не на пальмах, как финики. Поэтому давайте постоянной готовности к сборке. Это гарантирует успешную компиля- правильно сориентируемся на местности и определим, где же взять цию полученного кода, но не его работоспособность. Ананас. Так как нас интересуют только спелые, готовые к употребле- Следующая пара команд запустит процесс сборки Ананаса. нию Ананасы, придется проявить выдержку и смекалку при поиске, cd ananas отборе и тестировании... make Первым местом, которое следует посетить всякому уважающему После успешного завершения процедуры потребуется всыпать в себя детективу – пардон, опытному пользователю – является, если не консоль вагон и маленькую тележку команд для правильной установки считать DVD-диск с вашим любимым дистрибутивом Linux (а также Ананаса в систему. Радует лишь то, что cut-n-paste еще никто не отме- DVD текущего номера Linux Format), сайт проекта Ананас http://ananas. нял. Разумеется, тут не обойтись без прав пользователя root.

82 Linux Format Октябрь 2007 Ананас Учебник

на DVD на ннс Ананас 0.9.4b

Сначала установим файлы в систему: Внешний вид и содержание окна может отличаться от приведен- sudo cp src/ananas/ananas /usr/bin/ ного здесь примера в зависимости от версии и настройки программы, sudo cp src/designer/ananas-designer /usr/bin/ настроек вашей графической среды, но в заголовке (шапке) окна обя- sudo cp -P src/lib/libananas.so* /usr/lib/ зательно будет надпись Список бизнес-схем, а справа кнопки, показан- sudo cp src/plugins/libananasplugin.so /usr/lib/ ные на снимке экрана. sudo ln -s /usr/lib/libananasplugin.so /usr/lib/qt-3.3/plugins/designer/ sudo mkdir -p /usr/share/ananas/translations /usr/lib/qt-3.3/bin/lrelease translations/*.ts Бизнес-схема sudo cp translations/*.qm /usr/share/ananas/translations/ sudo cp -r src/designer/templates /usr/share/ananas/ Так называют приложение, разработанное на платформе Ананас, потому что помимо собственно кода приложения, сюда включается описание структур данных приложения (метаданные) и база sudo mkdir -p /usr/share/ananas/inventory данных с хранящейся в ней информацией. Жизненный цикл бизнес-схем Ананаса также несколь- sudo cp applications/inventory/*.odt /usr/share/ananas/inventory/ ко отличен от жизненного цикла классических приложений/программ. Бизнес-схемы Ананаса sudo cp applications/inventory/*.ods /usr/share/ananas/inventory/ рассчитаны на модификацию во время эксплуатации, без потери уже занесенных данных. Таковы sudo mkdir -p /usr/share/ananas/extensions требования реального бизнеса в реальной жизни. sudo cp src/extensions/libaext_meta.so /usr/share/ananas/extensions/ Вообще разработчики любят использовать слово «бизнес» в своей терминологии. Работая с sudo cp src/extensions/libaextxml.so /usr/share/ananas/extensions/ Ананасом, вы также столкнетесь с такими понятиями, как бизнес-объект, бизнес-процесс. sudo cp /src/extensions/libaexttext.so /usr/share/ananas/extensions/ sudo mkdir -p /etc/ananas sudo cp applications/inventory/inventory.cfg /etc/ananas/ sudo cp applications/inventory/inventory.rc /etc/ananas/ В списке в средней части окна будут две строки с надписями: sudo cp applications/inventory/inventory-demo.cfg /etc/ananas/ «Оперативный учет» и «Оперативный учет. Демо.». sudo cp applications/inventory/inventory-demo.rc /etc/ananas/ Бизнес-схема «Оперативный учет. Демо.» содержит демонстраци- Затем создадим и наполним демонстрационную базу данных на онную базу данных. Ее мы и выберем (Рис. 2), чтобы ознакомится с MySQL-сервере, подразумевая, что вирус паранойи информационной возможностями работы приложения и увидеть примеры заполнения безопасности еще не добрался до вас и вы не меняли пароль пользо- справочников и документов. Бизнес-схема «Оперативный учет» пред- вателю root сервера MySQL после установки. назначена для начала реальной работы и не содержит никакой инфор- mysqladmin -u root create ananas_system мации в базе данных, а также и в справочниках. mysqladmin -u root create ananas_inventory Каждая бизнес-схема использует свою базу данных и является пол- mysqladmin -u root create ananas_inventory_demo ностью автономной и не связанной с другой бизнес-схемой. То есть, mysql -u root ananas_inventory < applications/inventory/inventory.sql если, работая с демонстрационной бизнес-схемой, вы занесете в спра- mysql -u root ananas_inventory_demo < applications/inventory/inventory- вочник продавцов новую организацию, она не появится в справочнике demo. продавцов рабочей бизнес-схемы. На этом процедуру установки можно считать завершенной. Таких бизнес-схем может быть несколько, что позволяет вести учет Попробуем попрактиковаться – к счастью, создатели Ананаса предус- при помощи одной программы сразу для нескольких субъектов или мотрели для вас кое-какие демо-приложения. Для работы с приложе- разбивать учет на периоды (например, годичные) и для каждого пери- нием «Оперативный учет» следует запустить Ананас командой ода выделять отдельную бизнес-схему. ananas После выбора бизнес-схемы на экране появится основное окно и выбрать бизнес-схему с соответствующим названием. программы, из которого осуществляется доступ ко всем возможнос- тям приложения. Знакомство с интерфейсом Если программа была правильно установлена, на экране появится окно следующего вида (Рис. 1): Какие бывают бизнес-схемы?

Помимо бизнес-схемы, поставляемой с дистрибутивом Ананаса, сущест- вует ряд бизнес-схем, разрабатываемых и поддерживаемых независимы- ми разработчиками. На сегодня в качестве примера можно привести такие бизнес-схемы, как «Учет транспортных услуг (логистика)», «Оперативный учет в оптовой торговле», «Спутник. Учет заявок». Количество и разнооб- разие бизнес-схем растет по мере освоения программирования на Ананасе новыми разработчиками. Разумеется, не все бизнес-схемы доступны (или будут доступны) свободно. Тем не менее, открытых бизнес-схем всегда будет достаточно для повседневного извлечения вкусной пользы из Ананаса. Рис. 1. Диалог выбора бизнес-схемы при запуске программы.

Октябрь 2007 Linux Format 8 3 Учебник Ананас

ции Ананаса, он практически не меняется со временем. Справочник Константы хранит такую редко меняющуюся информацию, как рекви- зиты вашей организации, ФИО директора, бухгалтера или просто ваши данные, если вы предприниматель. Каталог товаров Для хранения информации о товарах в бизнес-схеме «Оперативный учет» используется многоуровневый Каталог товаров (Рис. 4). По каж- дому товару в каталоге отражается состояние остатков в количествен- ном выражении по состоянию на текущий момент времени.

Рис. 2. Главное окно приложения «Оперативный учет. Демо» после первого запуска.

Бизнес-схема «Оперативный учет. Демо.» достаточно проста в освоении, чему, несомненно, способствуют примеры введенных доку- ментов и заполненные справочники. Кроме того, разработчики позабо- тились и о пользователях-новичках, снабдив приложение подробным 50-страничным руководством, где по шагам и экранным снимкам раз- бирается каждая возможность бизнес-схемы «Оперативный учет». Рис. 4. В Каталоге товаров отображается количественный остаток Повседневную, будничную работу пользователя бизнес-схемы по состоянию на текущий момент времени. «Оперативный учет» Ананаса по большому счету можно разделить на два вида деятельности: Остаток меняется автоматически по мере оформления приходных Оформление документов, которые называются в бухгалтерском уче- и расходных накладных, свидетельствующих соответственно о покупке те первичными учетными документами. Оформление подразумевает и продаже товаров, в них указанных. создание новых электронных документов, их заполнение и распечатку. Таким образом, пользователь бизнес-схемы «Оперативный учет» Здесь можно назвать такие документы, как накладные на товар, кассо- Ананаса в любой момент времени имеет достоверную информацию вые ордера, счет, банковские поручения. Подготовку отчетов/печатных документов для налоговой инспекции или для решения собственных задач по анализу товарных запасов, денежных расчетов, задолженностей и прочих показателей бизнеса.

Рис. 3. Работа со справочником констант.

Разумеется, присутствуют и разовые, эпизодические работы, необ- ходимые для поддержки справочника Контрагентов (продавцов, поку- пателей) и Каталога товаров в актуальном состоянии. Наименьшее количество хлопот доставляет справочник Константы Рис. 5. Счет на приобретение товара, сформированный для и (Рис. 3): будучи заполненным первым в самом начале эксплуата- открытый в OpenOffice.org Ананасом.

84 Linux Format Октябрь 2007 Ананас Учебник

о состоянии запасов товаров и может своевременно спланировать их пополнение. Состав объектов бизнес-схемы Печать документов и отчетов «Оперативный учет»: Платформа Ананас предоставляет программисту возможность созда-

ния отчетов в формате OpenOffice.org, HTML или любом другом фор- Справочники мате документов, хранимых в виде ASCII-файла. • Справочник контрагентов, отображающий информацию о расчетном Разработчики бизнес-схемы «Оперативный учет» сделали ставку на балансе каждого контрагента использование OpenOffice.org как на наиболее удобный для пользова- • Справочник товаров, отображающий информацию по остаткам това- теля пакет подготовки документов для печати (Рис. 5). ров в количественном и денежном выражении на складе Впечатляет удобство получения документов OpenOffice.org из Вспомогательные справочники Ананаса. Стоит пользователю нажать кнопку «Печать» в экранной фор- • Справочник Складов ме любого из электронных документов, перед ним тут же появляется • Справочник реквизитов (констант) Документы окно OpenOffice.org с документом, готовым к выводу на печать, а если • Счет нужно, и редактированию или конвертации в другие форматы. • Приходная накладная В заключение, для краткого перечисления возможностей бизнес- • Расходная накладная (ручной ввод или автоформирование по схемы «Оперативный учет», процитирую «Руководство пользователя» Счету) этой бизнес-схемы, которое содержит исчерпывающее описание всех • Платежное поручение ее возможностей. • Банковская выписка Бизнес-схема «Оперативный учет» обеспечивает следующую • Приходный кассовый ордер функциональность: • Расходный кассовый ордер Ведение ежедневно необходимого учета: покупка, продажа, платежи Журналы через банк, кассовые операции; • Общий Специальные журналы Получение управленческой информации: по товарным запасам в • Журнал реализации суммовом и количественном выражении; • Журнал прихода Получение баланса по расчетам с партнерами; Отчеты Автоматический расчет остатков; • Движение товаров Генерация отчетов и печать документов; • Ведомость по поставщикам и покупателям Сервисные функции по резервному копированию и восстановлению • Ведомость по кассе данных. • Книга покупок Остается пожелать удачи всем, кто, прочитав статью, решил позна- • Книга продаж комиться с Ананасом самостоятельно. А для тех, кто решил не останав- Печатные формы ливаться на уровне пользователя и готов взяться за программирование, • Печатная форма расходной накладной • Печатная форма приходной накладной из которых вы узнаете кое-что о CRUD-приложениях, меню, регистрах • Печатная форма платежного поручения и отчетах. LXF • Печатная форма банковской выписки • Печатная форма ПКО • Печатная форма РКО • Печатная форма счета • Печатная форма счета-фактуры

Фото: http://www.free-pictures-photos.com © Через месяц CRUD-приложение в терминах Ананаса: что это значит и как это сделать.

Октябрь 2007 Linux Format 8 5 Учебник Hibernate

Пингвин впадает в спячку

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

сожалению, праздники и выходные имеют вредную при- каталоге /usr/src/linux/Documentation/power, с которым советую озна- вычку быстро заканчиваться, после чего снова предстоит комиться всем для понимания сути проблемы. В настоящее время фак- К приступать к работе, вспоминая, чем занимался в послед- тически известны несколько реализаций спящего режима для Linux. ний раз. Очевидно, это настолько существенная проблема для наро- Это заплатка pmdisk (СONFIG_PM_DISK) http://lwn.net/Articles/48471/, да, что в Windows, начиная с ХР, уже реализована возможность сейчас ее код включен в состав swsusp, собственно сам swsusp, гибернации (hibernate state), доступная через Панель Управления: swsusp2 или Software Suspend 2 (http://www.suspend2.net/) и µswsusp – Производительность и обслуживание > Электропитание > Спящий User space Suspend (http://suspend.sourceforge.net/). Первые два про- режим > Разрешить использование спящего режима. При этом все екта в настоящее время интереса не представляют. Зато интересны данные, находящиеся в оперативной памяти, сбрасываются на жест- последние две разработки, развивающиеся сейчас наиболее активно. кий диск (т.е. фактически делается моментальный снимок состоя- Проект µswsusp относительно молодой (начало разработок датирова- ния системы), и компьютер отключается. При включении полностью но апрелем 2006), поддержаны ядра начиная от 2.6.17, реализация – в восстанавливается предыдущее состояние, и пользователь начинает виде обычной программы, работающей в пространстве пользователя, работу именно с того места, где он закончил ее. Кроме очевидного что дает большие преимущества. Эта разработка уже готова к приме- удобства, выключение/включение компьютера при использовании нению, но некоторые возможности пока не дотягивают до swsusp2, о такого режима ускоряется, так как не происходит закрытия и запуска котором и пойдет речь в дальнейшем. приложений, что очень важно для мобильных устройств, нацеленных В отличие от µswsusp, swsusp2 реализован в виде заплатки к на энергосбережение. ядру. Сегодня поддержка ядер версии 2.4 этим проектом практически остановлена, последней является заплатка 2.1.5.7B для ядра 2.4.28; А что пингвины? работает она стабильно, но дальнейшее развитие не предусмотрено. Сторонники Linux тоже любят праздники и желают пользоваться все- Аналогичная ситуация и с ядром 2.2. Поддерживаются все файловые ми благами цивилизации, поэтому проблема не осталась незамечен- системы (некоторые, правда, с оговорками), а также LVM и dm-crypt ной. Первым такой режим реализовал Габор Кути [Gabor Kuti] в 1998 (средство для шифрования данных). Работа со спящим режимом про- году – его заплатка v7c для ядра 2.2.20 до сих пор находится на стра- нице http://falcon.sch.bme.hu/~seasons/linux/swsusp.html, но уже долгое время не поддерживается. Основную работу по реализации спящего Другой подход режима для Linux провела группа энтузиастов под руковод- ством Найджела Каннингэма [Nigel Cunningham]. Хотя разра- Справедливости ради следует отметить, что KDE умеет восстанавливать ботка Software Suspend for Linux или swsusp, имеет уже длин- рабочий стол последнего сеанса, если выйти из него через К > Завершить ную историю, она долгое время рассматривалась как альфа сеанс. Для настройки такой возможности зайдите в Центр управления и использовалась энтузиастами на свой страх и риск. Наконец, KDE > Компоненты > Менеджер сессий и установите галочку напротив начиная с версии ядра 2.5.18, код swsusp включен в основное Восстанавливать предыдущий сеанс. Правда, приложения все равно дерево разработки. закрываются, и рабочий стол восстанавливается лишь частично, хотя этого Вместе с исходными текстами ядра доступно небольшое бывает достаточно, чтобы вспомнить, чем занимался последний раз. описание реализации этого режима: посмотрите файл swsusp.txt в

86 Linux Format Октябрь 2007 Hibernate Учебник

тестирована на многочисленных конфигурациях, хотя возможны и Учитывая «мягкий» характер зависимостей пакетов в Ubuntu, сове- проблемы с некоторым оборудованием. Необходима поддержка рас- тую внимательно просмотреть, какие пакеты будут установлены допол- ширения процессора PSE или PSE36 (cat /proc/cpuinfo | grep pse) – не нительно – и, главное, списки Предлагаемые пакеты и Рекомендуемые могу сказать, где ее нет, но с процессорами Intel, AMD и VIA C3 про- пакеты. блем быть не должно. Система сна пока не будет работать с большим количеством оперативной памяти (> 4 ГБ), зато поддерживаются AGP, Компиляция ядра DRI, USB и прочее. Однако, если жесткий диск не знает ничего о DMA В том случае, когда вышеприведенный вариант неприемлем, ядро при- или режиме suspend, что свойственно для ну очень старых дисков, то с дется собрать самостоятельно. Исходные тексты ядра можно загрузить данными, скорее всего, придется проститься. с http://www.kernel.org/ или найти на нашем DVD, а с сайта swasup2 сле- Возможность сохранения данных вместо раздела подкачки в файл, дует взять заплатку под нужную версию. появившаяся во второй версии, имеет особое значение. Представьте $ cd /usr/src себе такую ситуацию: для тестирования запускаете Knoppix, который $ sudo tar -xjvf /home/source/ linux-2.6.22.tar.gz находит на диске swap-раздел, монтирует его и сохраняет в нем свои $ sudo ln -sf linux-2.6.22 linux данные. Если в этом разделе были сохранены результаты suspend, то, $ cd linux естественно, они будут затерты. Аналогичная картина будет наблюдать- $ wget -c http://www.tuxonice.net/downloads/all/suspend2-2.2.10-for- ся при использовании двух ядер, одно из которых не знает о suspend. 2.6.22.patch.bz2 Использование файла подкачки позволяет избежать таких ситуаций. $ bzcat suspend2-2.2.10-for-2.6.22.patch.bz2 | patch -p1 Теперь в .config активируйте следующие параметры: Настройка гибернации в Kubuntu CONFIG_SUSPEND2=y Некоторые производители уже включают возможность перехода в CONFIG_SUSPEND2_FILE=y спящий режим в последние версии дистрибутивов. За подробностями CONFIG_SUSPEND2_SWAP=y конкретно используемого вами дистрибутива отправляю на страницу CONFIG_CRYPTO_LZF=y Wiki проекта SWSup2, где все подробно расписано. В Kubuntu, начи- Если используется более ранняя версия ная с версии 6.10, при выходе из системы такой пункт уже имеется. В ядра, желательно, но не обязательно уста- Kubuntu 6.06 LTS такой возможности по умолчанию нет, но эту неспра- новить и последнюю версию ACPI (http:// ведливость легко исправить. acpi.sourceforge.net/). См. Рис. 1. К сожалению, если набрать sudo apt-cache search hibernate, мож- но найти только старую версию скрипта hibernate, упрощающего Последние приготовления управление этим режимом. Мир не без добрых людей: тем, у кого нет Также следует позаботиться о том, чтобы раздел подкачки имел желания самостоятельно компилировать ядро, следует отправиться достаточный размер (рекомендуется хотя бы двойной размер ОЗУ). на страницу http://dagobah.ucc.asn.au/dapper-kernels/, где находится Как вариант, можно подготовить файл, в котором и будет сохра- альтернативный репозиторий для Dapper Drake. Добавьте в /etc/apt/ няться информация. В конфигурационном файле загрузчика /boot/ sources.list: grub/menu.lst к параметрам, передаваемым ядру, добавьте строку deb http://dagobah.ucc.asn.au/ubuntu-suspend2 dapper/ resume2=swap:/dev/hda2, где /dev/hda2 – swap-раздел, используе- и обновите список пакетов: мый при гибернации. Теперь, когда система будет засыпать, сигнату- $ sudo apt-get update ра данного раздела будет изменена на S2SUSP, а уже после загрузки и Запрос sudo apt-cache search hibernate покажет наличие двух паке- извлечения данных она будет заменена на нормальную – SWASPACE2. И тов, которые и нужно установить. Кстати, метапакет suspend2 включает если этот раздел будет использован другим дистрибутивом, то при запус- все необходимое. ке заснувшей системы будет найдена сигнатура S2SUSP, но нужных дан- $ sudo apt-get hibernate suspend2 ных на разделе не обнаружится, и загрузка будет остановлена. Выходом

Октябрь 2007 Linux Format 8 7 Учебник Hibernate

$ sudo echo mem > /sys/power/state Для сброса информации в раздел подкачки и последующего отклю- чения – режим Suspend to Disk – используется такая команда: $ sudo echo -n disk > /sys/power/state После загрузки с новым ядром в /sys/power/ появится подкаталог suspend2, файлы в котором позволяют получить информацию о состо- янии некоторых параметров системы либо управлять режимом сна. Перевести систему в режим гибернации можно и так: $ sudo echo anything > /sys/power/suspend2/do_suspend после чего компьютер, немного пожужжав, выключится. Если зано- во запустить систему, то в консоли среди прочих должны появиться сообщения, свидетельствующие о том, что swap-раздел с информаци- ей для восстановления состояния найден. Software Suspend 2.2.10: Swap space signature found. Software Suspend 2.2.10: This is normal swap space. По умолчанию компрессия и шифрование записываемого образа включены. При необходимости, отключить эти функции можно так: Рис. 1. из такой ситуации является загрузка с параметром noresume2 или фор- $ sudo echo 0 > /sys/power/suspend2/compression/enabled Настроить матирование раздела заново при помощи mkswap, либо использование $ sudo echo 0 > /sys/power/suspend2/encryption/enabled необходимые для хранения данных гибернации файла подкачки вместо раздела. Чтобы опять их включить, достаточно заменить в этих выражениях параметры ядра Загрузите новое ядро. В процессе старта на консоль должны быть 0 на 1. можно и через выведены сообщения (dmesg | less), вроде: графический Software Suspend Core. Работа со скриптом hibernate интерфейс. Software Suspend Swap Writer registered. C помощью файлов, находящихся в /sys/power/suspend2, можно Software Suspend 2.2.10: Suspending enabled. задать множество параметров работы системы сна, но вбивать их каж- Обратите также внимание и на запуск ACPI. Иногда система выво- дый раз вручную достаточно нудно. Разработчики существенно упрос- дит примерно такое сообщение: тили эту задачу, написав скрипт, делающий весь процесс более нагляд- ACPI disabled because your bios is from 97 and too old ным и удобным. Называется он hibernate – именно его мы и установили, You can enable it with acpi=force введя одноименный параметр в apt-get. Просто наберите: Оно свидетельствует о древности используемого BIOS. Поступите, $ sudo /usr/sbin/hibernate как подсказывает сообщение, т.е. добавьте параметр acpi=force к пара- и система погрузится в режим сна. Скрипт имеет ряд полезных пара- метрам, передаваемым ядру, прописав эти строки в конфигурацион- метров. Например, --save-settings позволит сохранить все настройки в ном файле загрузчика. указанный следом файл. Параметр --no-suspend позволит протестиро- вать скрипт без выключения питания. После изменения всех настроек Вперед следует протестировать работу, введя в качестве параметра --reboot=1, Теперь можно укладывать систему спать. Ранее это можно было сде- что заставит систему сохранить все настройки в файл гибернации и лать несколькими вариантами, но в ядрах 2.6, использующих sysfs, перезагрузиться. рекомендуемым является обращение к файлам в /sys/power/. Свои параметры скрипт берет из конфигурационного файла /etc/ Например, чтобы перевести систему в режим Suspend to RAM, ког- hibernate/hibernate.conf, разъяснения по структуре которого мож- да питание процессора отключается, но вся информация сохраняется в но получить, набрав hibernate с параметром --h. Я приведу здесь оперативной памяти, следует ввести лишь наиболее интересные директивы, но в принципе можно рабо-

88 Linux Format Октябрь 2007 Hibernate Учебник

Затем перезапустите acpid. $ sudo /etc/init.d/acpid restart Теперь при закрытии крышки ноутбука сис- тать и с установками по тема будет впадать в спячку с выключенным питанием, умолчанию. а при нажатии на кнопку питания выключаться. Просто, а UseSwsusp2 Разрешает или главное – удобно. блокирует режим Suspend. Несмотря на то, что рассказано много, настроить спящий режим EnableEscape Будучи вклю- в Linux очень даже просто, а попробовав один раз на практике, ченным, позволяет отменить очень трудно отказаться от его использования. К хорошему быстро переход в suspend-режим кла- привыкаешь. LXF вишей Escape. PowerdownMethod Способ засыпания. 3 соответствует Suspend- To-RAM, 4 – гибернации, 5 – отключе- нию питания. Для ноутбуков разумно использо- вать пос- ледний вариант. IncompatibleDevices и IncompatiblePrograms Первое – это список уст- ройств, несовместимых с гибернацией (обычно /dev/dsp, /dev/video*). Процессы, имеющие к ним доступ, будут перед засыпанием остановле- ны. Второе – названия несовместимых программ; они будут остановле- ны независимо от того, к каким устройствам обращаются. Unmount и UnmountFSTypes Перечень файловых систем, которые следует размонтировать перед переходом в suspend-режим. Хорошей идеей будет включить в него используемые вами сетевые ФС. Первая директива позволяет указать точки монтирования, а вторая – типы файловых систем (например, smbfs). StartServices, StopServices, RestartServices Список сервисов, которые необходимо остановить при выключении и запустить/перезапустить при включении. Кстати, в некоторых дистрибутивах (Kubuntu как раз относится к ним) для удобства все настройки разнесены по нескольким файлам, которые подключены в hibernate.conf директивой Include. Теперь можно пробовать залечь в спячку. Для начала рекомендует- ся сделать это в консоли. Введите init 3 и запустите скрипт. $ sudo /usr/ sbin/hibernate Good night! Good morning! Если все прошло удачно, попробуйте запустить его из- под Х. Если и это получилось, можете себя поздравить. Немного автоматизируем процесс На этом статью о гибернации в Linux можно бы и закончить, но еще пару слов хочется добавить для удоб- ства использования. Естественно, каждый раз запускать скрипт не всегда удобно, иногда бывает проще закрыть крышку ноутбука, а вновь включив питание, обнаружить все на своих местах. Для этого необходимо использовать демон acpid, который является пользова- тельским интерфейсом, позволяющим управлять любыми событиями ACPI, доступными через /proc/acpi/event. При этом acpid читает набор конфигурационных файлов в каталоге /etc/acpi/events/. Скорее всего, необходимый пакет уже есть в вашем дистрибути- ве, и надо просто проверить его наличие и создать конфигурацион- ные файлы. Если же пакета нет, скачайте последнюю версию с сайта http://phobos.fs.tum.de/acpi/, скомпилируйте и установите. В каталоге /etc/acpi/events создайте два файла: lid и power. Первый описывает реакцию на закрытие крышки, второй – на нажатие кнопки включения питания. В /etc/acpi/events/lid впишите event=button/lid.* action=/usr/sbin/hibernate

Аналогично поступите и с /etc/acpi/events/power event=button/power.* action=/sbin/shutdown -h now

Октябрь 2007 Linux Format 8 9 УчебникПрепресс TeX и так в далее...Linux От вёрстки в TeX’е до профессиональной книги Переходим

ЧАСТЬ 3 В прошлый раз мы рассмотрели особенности печати книги на ризографе. Настало время добиться наивысшего качества. В этом нам поможет офсетная печать и Александр Чернышов.

опреки распространённому убеждению, коего я сам до недав- При подготовке вёрстки в TeX’е важно правильно задать формат него времени придерживался, что офсет – это дорого и только гранки. Исходите из того, что после фальцовки на обрезку с каждой Вдля избранных, на деле всё оказалось значительно интереснее. стороны уйдёт примерно по 1–1,5 см. Прикиньте, какие вам бы хоте- Если вам надо качественно напечатать книгу тиражом более 300 экзем- лось оставить в книге поля, где у вас будет располагаться колонцифра. пляров, то имеет смысл поискать офсетную типографию и попросить, Можно просто замерить линейкой гранку в готовой книге подходящего чтобы вам посчитали стоимость тиража вашей книги. Обычно услуга формата. В конце концов вы получите два числа, которые надо задать эта бесплатная. как \hsize и \vsize. Многие типографии «дерут» высокие цены. Но при желании и везении вполне можно найти недорогую офсетную типографию. Так Спуск мне однажды повезло с типографией в Москве: книга в качественном Чтобы после фальцовки все страницы в тетрадке следовали в нуж- жёстком переплёте, тиражом 500 экземпляров, в которой было почти ном порядке, их надо правильно расположить на каждом печатном 800 страниц (без цветных иллюстраций), обошлась меньше чем по 300 листе. Процесс этого расположения называется спуском. В принципе, рублей за экземпляр, что я считаю очень неплохим показателем. в современном Linux есть средства, позволяющие выполнить спуск Что же касается качества, то офсет – это как раз тот случай, когда самостоятельно (мы рассмотрим эту возможность позже), но обычно все положительные свойства TeX’а проявляются оптимальным обра- в этом нет необходимости. В большинстве случаев типография делает зом. В конце концов, именно для подобных технологий печати тиражей спуск сама. TeX и создавался. Так что – осваиваем офсет. Печать плёнок Формат бумаги А вот теперь переходим к самому интересному. Любой офсет начина- Вы, вероятно, будете удивлены применением в типографиях соб- ется с плёнок. Именно «в плёнках» затем делают спуск и дальнейший ственных стандартов размеров бумаги. Вместо «А4» и «А5», вам назо- процесс от нас уже не зависит. Как только плёнки взяты типографи- вут что-то вроде «60x90/8» и «60x90/16». Кстати, «промежуточный» ей в работу, можете мыть руки, чтобы не испачкать ими сигнальные формат большинства книг по программированию имеет здесь своё экземпляры. стандартное обозначение: «70x100/16» (читается «семьдесят на сто в Однако, качество результата в наибольшей степени зависит именно шестнадцатую долю»). от качества вывода плёнок. А здесь от нас зависит очень многое. Дело в том, что офсетная машина печатает сразу целый печатный В зависимости от типографии вам могут предложить: лист. Это большой лист бумаги, на котором напечатаны все страницы принести свои плёнки (и вам придётся печатать их одной книжной тетради. Причём лист, запечатанный только с одной самостоятельно); стороны, называется оттиском, а с обеих сторон – собственно печат- изготовить плёнки по вашему файлу на оборудовании типографии. ным листом. Первые две цифры (например, 70x100) описывают раз- Рассмотрим каждый из этих вариантов. мер печатного листа в сантиметрах. Далее лист фальцуют (складывают) в несколько раз, получая ...В типографии сразу тетрадку книги. Её теперь остаётся только прошить и обрезать. «...и тут пошли огрехи всей системы...» Параметр доли как раз и определяет, сколько страниц текста будет Из монолога Жванецкого напечатано на одном печатном листе. Так, /16 означает, что на оттиске будет 16 страниц, а на печатном листе (и в одной тетрадке книги) – 32 Вообще, этот вариант на мой взгляд предпочтительнее. Типография, страницы. предлагая его, обычно «имеет за душой» довольно мощное печатаю- Между прочим, именно в силу этого вы должны обеспечить, что- щее устройство (2400, или даже 4800 dpi). В результате итоговое качес- бы количество страниц в вашей книге было кратным 16 (я не ошиб- тво будет соответствовать непревзойдённому металлическому набору. ся – по технологическим причинам именно 16). По счастью, в TeX’е И к этому надо стремиться. Тем более что в арсенале нашего TeX’а можно слегка «поиграть» параметрами междустрочного интервала имеется возможность делать шрифты разрешением аж до 9600 dpi! (\baselineskip, \lineskiplimit, \lineskip) и добиться желаемого. Лишь в Только узнайте о возможностях устройства заранее и постарайтесь редких случаях приходится поступать «по старинке» и выбрасывать подготовить свой электронный оригинал-макет с соответствующим «лишний» материал либо дописывать «недостающий». разрешением. Например:

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

90 Linux Format Октябрь 2007 TeX и так далее... Учебник на офсет

dvips -D 2400 ..... -o file.ps file.dvi и с новым (не перезаправленным!) картриджем, да ещё с барабаном При работе программы dvips обращайте внимание на все предуп- в пределах заводского ресурса, то вам крупно повезло – вы сможете реждения о генерации шрифтов! Иногда встречаются шрифты со получить плёнки почти профессионального качества. скрытыми ошибками, а также для некоторых букв в некоторых шриф- Если принтер не понимает PostScript, то придётся использовать тах случаются банальные переполнения программы metafont. Это при- GhostScript (в Linux), либо переводить оригинал-макет в PDF и печатать водит к потере букв и даже целых участков текста, набранных забрако- из Adobe Reader (в Windows). Это способно очень сильно увеличить ванным шрифтом, или к непредсказуемым заменам. Бороться с этим время вывода каждой страницы при высоком разрешении печати. Для можно только понижением разрешения или переходом на векторные ускорения можно попытаться использовать векторные шрифты вместо шрифты (скажем, CM-Super – мы обсудим их чуть позже). стандартных, но это далеко не всегда возможно. Ключ -O не нужен – окончательное расположение материала в спус- Помните также, что желательно настроить metafont на растериза- ке всё равно делается вручную. Главное, чтобы печатаемый материал в цию шрифтов именно для вашей модели принтера! принципе попадал в зону печати. И ключ -x тоже не нужен. Для офсет- ной печати вывод всегда делается в масштабе 1:1. Векторные шрифты Казалось бы, после получения file.ps все проблемы должны быть Технология, используемая в шрифтах TeX, иногда приводит к непри- сняты. Но оказывается, что это не всегда так – подробности читайте ятностям. Итоговые шрифты остаются растровыми, и при попытке их во врезке. генерации для больших разрешений metafont иногда переполняется (не хватает длины его разрядной сетки). То есть, используя технологию ...И самостоятельно metafont, эти шрифты получить в высоком полиграфическом качестве Этот вариант может показаться дешевле, но для получения высокого невозможно. качества потребует от вас учёта дополнительных факторов, которые Поэтому сообщество пользователей TeX постоянно предпринимает мы сейчас и обсудим. усилия в направлении использования в TeX векторных аналогов при- Сначала о принтерах. Годятся только лазерные. Чем выше разре- меняемых шрифтов. Отрадно, что в последнее время уделили, наконец, шение принтера, тем лучше. Настоящего профессионального качества внимание и кириллическим шрифтам. в «домашних» условиях, конечно, не добиться, но если вы найдёте На данный момент разработан и постепенно проникает «в массы» лазерный принтер с разрешением 1200 dpi, понимающий PostScript пакет шрифтов под названием CM-Super. В стандартные дистрибутивы

Своенравный ps2pdf

Мне надо было напечатать на офсете книгу, вёрстка которой была рас- В моём случае команда выглядела так считана на формат 70x100/16 (размер страницы не кратен А4). \ special{papersize=164mm,235mm} Типография бралась сама изготовить плёнки по моему file.ps. Но вдруг После этого получить DVI-файл обычным способом. обнаружилось, что их специализированная программа управления прин- 2 Найти в системе файл конфигурации драйвера dvips config.ps. тером плёнок упорно считает, что каждая страница моей книги располо- Найти в нём определение формата печати жена на листе А4. Это приводило к значительному перерасходу дорогос- @ unknown 0in 0in тоящей плёнки. Если это определение есть, то вам повезло. Если же его там нет, создай- Переплачивать за плёнку не хотелось, и я решил поискать решение. те в домашнем подкаталоге файл .dvipsrc со следующим содержимым: Первое, что пришло на ум – ключ -T команды dvips, задающий (вроде бы) @ unknown 0in 0in @+ statusdict /setpageparams known { hsize vsize 0 1 размер листа. Но этот способ проблемы не решил. statusdict begin { @+ setpageparams } stopped end } { true } ifelse { statusdict / Второе решение – «правильно» установить параметр BoundingBox – setpage known @+ { hsize vsize 1 statusdict begin { setpage } stopped pop end оказалось вообще несостоятельным. Дело в том, что этот «параметр» на } if } if самом деле записывается в комментариях файла PostScript и использу- 3 Теперь можно переводить вёрстку в PostScript: ется только программами типа TeX, которые сами PostScript не интерпре- dvips -D 2400 -t unknown -O 0.5cm,0cm -o file.ps file.dvi тируют. Профессиональные же программы, интерпретирующие Параметр -O в данном случае нужен именно для того, чтобы попасть в PostScript, комментарии игнорируют. зону печати. Проблема оказалась в том, что размер листа вообще не попадал в мою вёрстку, и по умолчанию интерпретатор PostScript принимал его равным Попутно выяснилось, что проверить правильность выполненной рабо- А4. Решение проблемы следующее: ты довольно легко, «не выходя» из Linux. Достаточно скомандовать: ps2pdf file.ps file.pdf 1 Размер листа надо задавать внутри верстаемого документа (в его и далее начале) командой gv file.pdf \special{papersize=WIDTH,HEIGHT} В этом случае просмотр осуществляется по действительным размерам где вместо WIDTH и HEIGHT подставить необходимые значения. страницы, заданным непосредственно в PS-программе.

Октябрь 2007 Linux Format 9 1 Учебник TeX и так далее...

Linux он, кажется, пока не входит, но его можно взять из сети Интернет Ключей командной строки у команды не так много, и они достаточ- (CTAN:fonts/ps-type1/cm-super или ftp://ftp.vsu.ru/pub/tex/font-packs/cm- но хорошо описаны в man. super) и попытаться поставить в своей системе. Самая сложная часть команды – описание раскладки страниц Инструкция по установке, идущая в комплекте с пакетом, не совсем (pagespec). верная. Но с помощью Ивана Чернявского мне удалось заставить рабо- Вот как она представлена в документации: тать этот пакет на своей системе. pagespec = [modulo:]specs specs = spec[+specs][,specs] spec = [- Пакет включает полный комплект векторных шрифтов, позволя- ]pageno[L][R][U][@scale][(xoff,yoff)] ющий заменить все основные «стандартные» шрифты TeX. Причём В этом описании: шрифты идентичны со своими аналогами по метрике, так что при их modulo (модуль) – количество страниц на одном листе (блоке), замене вёрстка не «уплывает». После его установки для пользова- включая те, которые на данном проходе просто пропускаются, напри- телей LaTeX не меняется (теоретически) вообще ничего (если толь- мер, для печати на обратной стороне. ко в вёрстке не используются «нестандартные» для LaTeX шрифты). spec – описание вывода и расположения на листе одной страницы Пользователям же plain TeX придётся привыкать к новым именам с номером pageno (по модулю modulo, то есть pageno должен иметь шрифтов – так, вместо lhr10 придётся теперь писать larm1000. А заод- значение от 0 до modulo–1). но придётся «передвинуть» по кодам некоторые русские знаки, напри- xoff и yoff задают смещение страницы на листе, допускается указа- мер «номер». ние величины смещения в сантиметрах (cm), дюймах (in) или в специ- Вообще, пакет оставил приятное впечатление. Получающийся альных единицах w и h, соответствующих ширине и высоте страницы PostScript просто идеален: хорошо конвертируется в PDF, просматри- (их размеры должны быть заданы ключами командной строки). вается Acrobat и печатается. При этом для нас очень важно, что теперь Параметры L, R и U задают поворот страницы влево, вправо и вверх он вообще не зависит от разрешения принтера! Правда, и жирностью ногами; точкой поворота считается левый нижний угол страницы. мы теперь управлять не можем: растеризация этих шрифтов – дело scale задаёт масштабирование страницы и для наших целей не самого принтера. нужен. Однако все эти прелести работают, только если в документе не Знак минус задаёт реверсивный порядок вывода страниц. используются нестандартные шрифты. Например, если вы верстае- Параметры, объединённые знаком +, описывают расположение те книгу по шахматным партиям и используете макропакет chess, то страниц на одном листе, объединённые через запятую – на разных (это шрифты этого макропакета всё равно будут растровыми. может пригодиться, если у вас двухсторонний принтер). Если же ваши нестандартные шрифты ещё и русские буквы содер- Ключевым к нашей цели будет следующий пример: жат (а вы эти буквы используете), то у вас могут возникнуть проблемы 4:2U(1w,2h)+0(0w,0h) и похуже – дело в том, что внутренние кодировки шрифтов семейства В нём мы взяли первый и третий из каждых четырёх листов доку- lh (стандартных для большинства русификаций teTeX), а также других мента и разместили третий лист над первым, причём перевернули его шрифтов на их базе и шрифтов CM-Super различаются. В результате вверх ногами. Теперь переходим к собственно спуску. совмещать эти шрифты в одной вёрстке нельзя. Вообще говоря, порядок страниц в спуске зависит от многих фак- торов. Поэтому приводимый ниже пример носит демонстрационный Снова о плёнках характер. Реальное расположение страниц в спуске вы всегда должны Теперь осталось обсудить собственно процесс вывода. определять на месте. В зависимости от принятой в типографии технологии, вас попросят Выполним спуск в шестнадцатую долю (/16). При этом в одной изготовить либо прозрачные плёнки, либо полупрозрачные (иногда тетради будет 32 страницы. Расположим страницы на первом оттис- их называют кальками). Технология печати в обоих случаях немного ке так: различается, но сэкономить всё равно не удастся, так как, независимо 17 16 9 24 32 1 8 25 29 4 5 28 20 13 12 21 от формата вашей книги, печатать вы будете в масштабе 1:1 на фор- а на втором оттиске (с учётом печати на противоположной сторо- мате А4. Посему постарайтесь центрировать свои страницы на плёнке. не!) так: Ширина остающихся белых полей играет очень большую роль. Без 23 10 15 18 26 7 2 31 27 6 3 30 22 11 14 19 полей плёнки невозможно будет закрепить в спуске. А лишние поля в В обеих раскладках в первой и третьей строках страницы должны типографии просто обрежут. быть перевёрнуты вверх ногами. Прозрачные плёнки. Здесь всё просто. Печать выполняется точно Чтобы выполнить раскладку, подготовим два вспомогательных так же, как на бумаге. Весь процесс уже описан раньше, и больше рас- файла. сказывать нечего. Первый назовём pages.first (весь файл – одна строка!): Полупрозрачные плёнки. Здесь вывод надо выполнить в зеркальном 32:16U(1w,4h)+15U(2w,4h)+8U(3w,4h)+23U(4w,4h)+31(0w,2h)+0(1w,2h отражении. Для этого надо добавить в итоговый документ PostScript )+7(2w,2h)+24(3w,2h)+28U(1w,2h)+3U(2w,2h)+4U(3w,2h)+27U(4w,2h)+ программу зеркального разворота. 19(0w,0h)+12(1w,0h)+11(2w,0h)+20(3w,0h) В состав современных установок teTeX входит файл mirr.hd, содер- второй – pages.second (опять – одна строка!): жащий эту программу. Применяется он так (искать его не надо – если 32:22U(1w,4h)+9U(2w,4h)+14U(3w,4h)+17U(4w,4h)+25(0w,2h)+6(1w,2h он есть, программа dvips должна найти его сама): )+1(2w,2h)+30(3w,2h)+26U(1w,2h)+5U(2w,2h)+2U(3w,2h)+29U(4w,2h)+ dvips -hmirr.hd [другие ключи] -o file.ps file.dvi 21(0w,0h)+10(1w,0h)+13(2w,0h)+18(3w,0h) Вот и всё! Теперь, чтобы выполнить спуски для всех первых оттисков, доста- точно дать команду Делаем спуск сами pstops -h... -w... `cat pages.first` file.ps first.ps Повторю ещё раз: вам вряд ли это понадобится. Но технология может и в файле first.ps будут находиться последовательные листы пер- пригодиться для других целей [например – верстки «книжкой» и печа- вых оттисков всех печатных листов. Обратите внимание, что необхо- ти на обычном лазерном принтере методички, автореферата или даже димо задать правильные значения -h и -w – они должны быть равны одного из многочисленных руководств texinfo, – прим. ред.]. размеру одной страницы с полями, причём с запасом на фальцовку и Вся работа выполняется командой pstops, обычно входящей в обрезку. пакет psutils, существующий практически в любом дистрибутиве Linux. Вторые оттиски могут быть получены командой Вообще-то её основное предназначение – пересортировка страниц в pstops -h... -w... `cat pages.second` file.ps second.ps готовом документе PostScript, но и разложить несколько страниц на Просмотреть результат можно командой gv, например, большом листе она тоже может. gv first.ps

92 Linux Format Октябрь 2007 TeX и так далее... Учебник

при этом весь лист можно увидеть только на формате А0, который в имевшей ширину печати сразу в три моих страницы. Переложить стра- конфигурации программы по умолчанию закрыт. Разрешите его, отре- ницы для этого случая было довольно просто (реально использованная дактировав файл /etc/X11/app-defaults/GV (с правами root), а затем команда): выберите в меню форматов запущенной программы. pstops -h 235mm -w 164mm ‘3:0(0w,0h)+1(1w,0h)+2(2w,0h)’ infile.ps Приведённый пример имеет целый ряд недостатков. Во-первых, в ofile.ps правильном спуске поля между страницами у корешка и у обреза раз- Далее файл ofile.ps был открыт обычным текстовым редактором и ные, а у нас они одинаковые, так что для реального применения про- в нём были сделаны следующие изменения: межуточные файлы с раскладкой придётся доработать. Во-вторых, не 1 увеличена втрое ширина (точнее, правая граница листа) в согласован порядок следования оттисков в файлах first.ps и second.ps. %%BoundingBox (конкретно, с 465 до 1395); Но для печати плёнок это не имеет значения: формы всё равно полу- 2 символами % закомментирована строка с /setpagedevice и следу- чают раздельно. В-третьих, если количество страниц в книге кратно 16, ющая за ней (именно она снова заставляет интерпретатор PostScript но не кратно 32, одна тетрадь должна будет иметь половинную толщи- работать с листом А4, а у нас свой размер страницы); ну (обычно это третья от конца книги тетрадь). Наш пример этого не 3 в строке (найти поиском) TeXDict begin 30580752 43819980 учитывает. Но, опять же, при желании его можно доработать, написав 1000 600 600 ...... первое число (как раз ширина листа) заменено дополнительные промежуточные файлы раскладок. втрое большим (91742256). Наконец, самое важное. При перекладке страниц программа немно- Теперь преобразованный документ готов к печати на плёнке. го переписывает исходный код PostScript в документе, в результате Предварительную проверку результата можно выполнить, как и чего заданный в документе истинный размер страницы (который мы ранее: выше вставили с таким трудом) будет завуалирован и не сможет пра- ps2pdf ofile.ps ofile.pdf вильно распознаться. При этом размер листа, на котором выполняется gv ofile.pdf спуск, в документ вставлен не будет. А для профессиональных про- Если на одном широком листе видны все три страницы в ряд, зна- грамм печати это уже проблема. чит, всё сделано правильно. Ее можно решить исправлением итогового PS-файла вручную. Я Вот, пожалуй, и всё, что мне хотелось рассказать сегодня. приведу упрощённый пример, имеющий под собой реальную основу. Happy TeX’ing! LXF Итак, плёнки моей книги формата 70x100/16 выводили на машине,

Октябрь 2007 Linux Format 9 3 УчебникWPA RADIUS Enterprise Linux на страже безопасности домашней Wi-Fi сети Linux в сети WPA: ЧАСТЬ 2 Теперь, когда в вашем распоряжении есть защищенная по максимуму Wi-Fi-сеть, дело за малым: осталось только подключить к ней свой собственный ноутбук. Этим и займется Андрей Боровский.

прошлой статье мы познакомились с сервером FreeRADIUS и него, нам понадобятся демон управления сетями NetworkManager, ути- дополнительными возможностями авторизации WPA Enterprise, лита wavemon, а также, в зависимости от того, по какому пути пойдет В которые он предоставляет. На этот раз речь пойдет о настрой- настройка – графическая оболочка GNOME NetworkManager Applet ке авторизации беспроводных клиентов Linux в сетях, использующих [или ее KDE-аналог – KNetworkManager, – прим. ред.], утилиты wpa_gui авторизацию WPA Enterprise. Конечно, в вашей беспроводной сети и KWlan. Все перечисленные программы можно найти в любом сов- наверняка есть и Windows-машины, но останавливаться на методах ременном дистрибутиве Linux. Многие системы устанавливают их по настройки Windows мы не будем. Настройка авторизации клиентов умолчанию, но в некоторых случаях нужные пакеты придется добав- Windows в беспроводной сети (в том числе и методами WPA) довольно лять самостоятельно. проста и подробно документирована (пошаговые руководства на рус- ском языке можно найти и в Сети). В мире Linux дела обстоят несколь- Настройка WPA с помощью NetworkManager ко сложнее. Впрочем, как мы увидим, не намного. Начнем с самого простого и приятного способа настройки аутентифи- Самая серьезная проблема, с которой вы столкнетесь при под- кации в беспроводной сети. Современные дистрибутивы Linux содер- ключении Linux-машины к беспроводной сети, заключается в подборе жат компонент NetworkManager; его главная задача заключается в том, драйвера, поддерживающего вашу Wi-Fi-карту. Ситуация с поддержкой чтобы обеспечить работу сети прямо из коробки. NetworkManager – это чипсетов беспроводных карт в ОС Linux сейчас напоминает положение демон, который выполняет роль связующего звена между такими дел с аппаратным ускорением графики в 2000–2001 годах: необходи- компонентами, как демон аутентификации wpa_supplicant, клиент мые программные компоненты уже есть, но поддержка конкретного DHCP и другими. Во многих системах NetworkManager будет запу- оборудования реализована не полностью. Справедливости ради надо щен сразу после установки – проверить это можно с помощью ути- отметить, что ситуация улучшается довольно быстро (см. врезку). литы nm-tool, о которой будет сказано ниже. Если NetworkManager При описании настройки авторизации беспроводного Linux-клиен- не запускается автоматически, его следует запустить в режиме root та я буду исходить из предположения, что вы уже прошли мучитель- командой NetworkManager. Если вы хотите получить консольный ный процесс поиска и установки Linux-драйвера для вашей Wi-Fi-карты вывод NetworkManager (например, в случае возникновения оши- (или подобрали поддерживаемую Linux Wi-Fi-карту) и научились «под- бок), запускайте программу с ключом --no-daemon. Учтите, что фай- нимать» беспроводной сетевой интерфейс в своей системе. лы конфигурации, оставшиеся от предыдущих попыток настроить Аутентификацией WPA в Linux управляет демон wpa_supplicant. подключение к беспроводной сети другими способами, могут поме- Перед началом настройки беспроводного клиента WPA-enterprise убе- шать NetworkManager определить параметры оборудования и сети. дитесь в том, что этот демон установлен в вашей системе. Помимо Например, мне, чтобы запустить NetworkManager, пришлось удалить файл /etc/network/interfaces со старыми настройками. После запуска демона вы можете проверить его работу с помощью утилиты nm-tool. Выбираем беспроводной адаптер Если с NetworkManager все в порядке и утилита nm-tool распечатала на экране консоли корректные сведения о ваших сетевых интерфейсах и сетях, к которым они подключены, можете плясать и петь – основная Изначально распространение открытых драйверов беспроводных адаптеров для Linux сдержива- часть работы по настройке подключения к сети вами уже сделана. лось теми же причинами, что и распространение открытых драйверов графических карт с аппа- ратной поддержкой OpenGL: производители соответствующего оборудования опасались утечки Для управления NetworkManager существует несколько графичес- своих фирменных секретов. Компания Atheros Communications, производитель весьма распро- ких утилит, наиболее функциональной из которых является апплет страненных Wi-Fi-чипсетов, предлагает разработчикам драйверов для Linux и BSD бесплатный, NetworkManager для GNOME. Утилита настройки NetworkManager от но закрытый компонент, создающий единый программный интерфейс для различных чипсетов GNOME запускается командой nm-applet. Если ее нет в вашей системе, Atheros (Hardware Abstraction Layer, HAL). В то же время в мире открытых ОС ведется разработка значит, скорее всего, соответствующий пакет просто не установлен. полностью открытого компонента абстракции оборудования (OpenHAL). Atheros OpenHAL изна- Если апплет NetworkManager отказывается запускаться с сообщением чально создавался для OpenBSD, однако в настоящее время активно портируется на платформу “Failed to open device XXX”, вам следует перезапустить демон dbus: Linux. Правовой аспект разработки открытого компонента, тесно интегрированного с фирменны- sudo /etc/init.d/dbus restart ми разработками Atheros, пока что не совсем ясен, но ситуация обнадеживает. Более подробные Если же апплет NetworkManager запустился успешно и обнаружил сведения о разработке OpenHAL можно получить по ссылке madwifi.org/wiki/OpenHAL. настройки беспроводной сети, в системном лотке рабочего стола В настоящее время наиболее полная поддержка Linux обеспечена чипсетам Intel, Atheros и Ralink Technology. Не следует также забывать о постепенно выходящем из употребления драйве- появляется пиктограмма с несколькими точками и бегущими по кру- ре ndiswrapper, который является Linux-оберткой для Wi-Fi-драйверов, написанных для гу стрелками. Щелчок мышью по этой пиктограмме открывает окно, Windows. в котором перечислены обнаруженные сети. Справа от имени каждой беспроводной сети расположен значок, указывающий на наличие

Месяц назад Мы научились настраивать сервер FreeRADIUS.

94 Linux Format Октябрь 2007 RADIUS Учебник есть контакт!

защиты сети, и индикатор качества сигнала. Чтобы подключиться к кий адрес – для другой), эти профили нельзя привязать к профилям одной из обнаруженных сетей, следует щелкнуть по ее имени. Правда, NetworkManager, так что при переключении с одной сети на другую по умолчанию для сетей WPA апплет NetworkManager предлагает (которое NetworkManager выполняет автоматически) профили настро- только аутентификацию WPA Personal, то есть WPA-PSK. Для под- ек сетевых интерфейсов придется менять вручную. Разработчики ключения к сети с использованием других методов аутентификации NetworkManager обещают добавить поддержку настроек IP-адресов в выберите команду Connect to Other Wireless Network.... В открывшем- следующую версию (0.7) своей утилиты, а пока что придется мириться ся окне (Рис. 1) можно ввести необходимые параметры. Для настрой- с этим неудобством. ки аутентификации по протоколу PEAP MS CHAP V2 вам понадобятся имя пользователя сети и пароль, а для настройки авторизации мето- Настройка wpa_suppplicant дом EAP TLS – файлы сертификатов, ключа и пароль к секретному Если простая настройка сети с помощью NetworkManager у вас не ключу. Пояснения смысла полей ввода этого окна вы найдете ниже, в работает, придется прибегнуть к ручной настройке wpa_supplicant. В разделе «Настройка подключения к сети». системе Linux wpa_supplicant (который, кстати, доступен и на плат- форме Windows) обычно запускается как демон, поэтому мы будем называть его «демон аутентификации». Демон аутентификации wpa_ supplicant отвечает за решение двух задач безопасного беспроводного соединения – безопасной аутентификации по протоколам WPA/WPA2 и управления ключами, используемыми при шифровании передавае- мых данных. Поскольку wpa_supplicant и сопутствующие ему модули развива- ются очень быстро, всегда есть вероятность, что оборудование, не поддерживаемое старой версией wpa_supplicant или Wi-Fi-драйве- ра, будет поддерживаться более новыми версиями. Если экземпляр wpa_supplicant из вашего дистрибутива не сумел наладить взаимодей- ствие с вашей беспроводной картой, попробуйте собрать программу из исходных текстов последнего релиза (который всегда доступен на официальном сайте hostap.epitest.fi/wpa_supplicant/). Для успешной сборки wpa_supplicant вам понадобятся исходные тексты драйверов (обновление драйвера может решить проблему взаимодействия wpa_ supplicant и беспроводной карты). Исходные тексты драйверов следует загружать отдельно, с сайтов разработчиков. Список поддерживаемых драйверов, как и ссылки на сайты, можно найти на той же официаль- ной странице. Демон wpa_supplicant имеет модульную структуру, так что если вы собираете его из исходных текстов, вы должны убедиться, что в процессе сборки были подключены все необходимые модули. Список модулей, подключаемых к wpa_supplicant в процессе сборки, должен содержаться в файле .config, расположенном в корневой директории исходных текстов wpa_spplicant (по умолчанию, в корневой директо- рии расположен файл defconfig, из которого перед началом сборки необходимо сделать файл конфигурации, подходящий для вашей сис- темы). Файл .config состоит из набора строк вида: CONFIG_<опция>=y Рис. 1. Подключение к сети WPA Enterprise с помощью апплета Убедитесь, что ваш файл .config включает строки NetworkManager. CONFIG_EAP_PEAP=y CONFIG_EAP_TTLS=y Убедившись, что подключение к сети с помощью NetworkManager Они автоматически подключают модули, необходимые для под- работает, вы можете добавить NetworkManager в rc-скрипты для его держки аутентификации с помощью MS-CHAP V2 и цифровых сер- автоматического запуска в процессе загрузки ОС. тификатов (EAP-TLS). Кроме списка модулей, реализующих методы Недостатком апплета NetworkManager на сегодняшний день явля- и протоколы аутентификации, файл .config должен включать список ется то, что утилита не умеет настраивать параметры IP-адреса сете- поддерживаемых интерфейсов драйверов – например, вого интерфейса. Отсутствие средств такой настройки не является CONFIG_DRIVER_MADWIFI=y проблемой, если вы используете DHCP во всех сетях, к которым под- CONFIG_DRIVER_NDISWRAPPER=y ключаетесь, но многие, в том числе и я, используют в домашней сети CONFIG_DRIVER_WEXT=y статические адреса. Настроить статический IP для соединения, управ- Проследите за тем, чтобы демон аутентификации был сконфи- ляемого NetworkManager, можно стандартными средствами вашего гурирован с поддержкой интерфейса драйвера вашей Wi-Fi-карты. дистрибутива Linux, однако тут возникает еще одна проблема – хотя Двоичный пакет wpa_supplicant, входящий в ваш дистрибутив Linux, штатные средства настройки сетевых интерфейсов ОС обычно позво- сконфигурирован с поддержкой всех доступных демону Wi-Fi-драй- ляют создавать несколько профилей (DHCP для одной сети, статичес- веров. Это сделано с целью обеспечить максимальную совместимость

Октябрь 2007 Linux Format 9 5 Учебник RADIUS

двоичного пакета, однако в некоторых случаях драйверы конфликтуют TKIP CCMP, а атрибуту group – значение CCMP TKIP WEP104 WEP40. между собой. Если вы никак не можете запустить процесс аутентифи- Если вы хотите, например, запретить использование любых протоко- кации и все другие средства не помогают, попробуйте удалить из фай- лов, кроме AES, в процессе двусторонней передачи данных, добавьте в ла конфигурации все директивы подключения драйверов, кроме одной, конфигурационную запись строку: фактически используемой вашей беспроводной картой. pairwise=CCMP Поскольку мы настраиваем wpa_supplicant вручную, нам придется Атрибут eap позволяет указать список поддерживаемых методов самостоятельно «привязать» наши настройки к сетевому интерфей- аутентификации EAP. Мы присваиваем ему значение PEAP. В принци- су – например, в Kubuntu в файл /etc/network/interfaces следует доба- пе, атрибут eap можно опустить, так как по умолчанию в wpa_supplicant вить запись вида: включается поддержка всех методов аутентификации, поддержива- auto ath0 емых выбранным протоколом. Атрибут identity содержит имя поль- iface ath0 inet static зователя для аутентификации по протоколу MS CHAP V2, а атрибут address 192.168.1.36 password – пароль. Наконец, атрибут phase2 указывает, что в безопас- netmask 255.255.255.0 ном туннеле, созданном по протоколу PEAP, должен использоваться gateway 192.168.1.1 протокол аутентификации MS CHAP V2. После внесения изменений wpa-driver madwifi в файл wpa_supplicant.conf, во избежание появления довольно стран- wpa-conf /etc/wpa_supplicant.conf ных ошибок, следует перезапустить сетевой сервис (а не только демон Здесь ath0 – имя настраиваемого беспроводного сетевого интер- wpa_supplicant). Не забудьте (при необходимости) перенастроить точ- фейса. Далее следуют статические адреса узла и шлюза. Если узлы ку доступа, и если вы все сделали правильно, вы увидите сообщения вашей сети получает адреса по DHCP, вместо этих настроек надо сервера FreeRADIUS об успешном прохождении процедуры аутентифи- написать кации PEAP MS CHAP V2. iface ath0 inet dhcp Для аутентификации по протоколу EAP-TLS на клиентской машине Последние две строчки настраивают собственно параметры WPA. В потребуется установить клиентский сертификат, корневой сертификат, атрибуте wpa-driver указывается имя драйвера беспроводного адапте- удостоверяющий подпись клиентского и серверного сертификатов, и ра, а в атрибуте wpa-conf – путь к файлу конфигурации wpa_supplicant. файл секретного ключа клиентского сертификата. Методы генерации В некоторых дистрибутивах Linux (и в старых версиях Kubuntu) пара- всех этих файлов были подробно рассмотрены нами в предыдущей ста- метры запуска wpa_supplicant следует прописывать в специальном тье (LXF96), и сейчас нам остается выполнить лишь одно дополнитель- файле /etc/sysconfig/wpa_supplicant (в старых версиях Kubuntu – /etc/ ное преобразование. Напомню, что мы создавали файлы сертификатов в default/wpasupplicant). Вот типичный пример такого файла: формате DER, тогда как демон wpa_supplicant и его друзья предпочита- INTERFACES=”-iwlan0” ют сертификаты в формате PEM. Преобразовать клиентский сертификат DRIVERS=”-Dmadwifi” из формата DER в формат PEM можно с помощью команды: Значением атрибута INTERFACES должен быть список интерфейсов x509 -in user1.crt -out user1.pem устройств, для которых запускается демон wpa_supplicant, а значением Точно также следует преобразовать и корневой сертификат. атрибута DRIVERS – список интерфейсов необходимых драйверов. При аутентификации по протоколу EAP-TLS запись network {...} в файле wpa_supplicant должна принять вид Настройка подключения к сети: network={ PEAP MSCHAP V2 и EAP-TLS ssid=”lochi7” Linux предоставляет много способов настройки аутентификации с key_mgmt=WPA-EAP помощью wpa_supplicant, в том числе с применением вспомогатель- eap=TLS ных утилит. Мы начнем с настройки путем непосредственного редакти- identity=”user1” рования файлов конфигурации. Вспомогательные утилиты настройки ca_cert=”/usr/local/etc/certs/myroot_ca.pem” авторизации (включая апплет GNOME NetworkManager) используют те client_cert=”/usr/local/etc/certs/user1.pem” же обозначения полей, что и файл конфигурации wpa_supplicant, так private_key=”/usr/local/etc/certs/user1.key” что, поняв принцип редактирования этого файла, вы поймете и прин- private_key_passwd=”password” ципы работы с графическими помощниками. } Для настройки авторизации PEAP MSCHAP V2 создайте файл /etc/ Теперь атрибут eap указывает метод авторизации TLS. Атрибут wpa_supplicant.conf и добавьте в него запись вида identity содержит имя пользователя, с которым связан клиентский сер- network={ тификат. Как отмечалось в предыдущей статье, мы можем настроить ssid=”lochi7” сервер FreeRADIUS таким образом, чтобы он не проверял это значение. scan_ssid=1 Значением атрибута ca_cert должен быть путь к файлу корневого сер- key_mgmt=WPA-EAP тификата, значением атрибута client_cert – путь к файлу клиентского eap=PEAP сертификата, а значением атрибута private_key – путь к файлу секрет- identity=”kub” ного ключа клиента. Пароль доступа к секретному ключу хранится в password=”password” атрибуте private_key_passwd. На этом настройка клиента для авториза- phase2=”auth=MSCHAPV2” ции по протоколу EAP-TLS закончена. Как и при настройке MS CHAP V2, } нам следует перезапустить сетевую систему. Атрибут ssid содержит значение SSID беспроводной сети. Строка Мы не коснулись еще одного важного аспекта настройки бес- scan_ssid=1 необходима только в том случае, если в вашей сети проводного клиента – поддержки нескольких сетей. Настроить wpa_ запрещена широковещательная передача SSID. Значением атрибута supplicant для работы с несколькими сетями очень просто – доста- key_mgmt должен быть список протоколов управления ключами (эле- точно добавить соответствующие записи network{...} в файл /etc/ wpa_ менты списка разделяются пробелом). Помимо используемого нами supplicant.conf. В большинстве случаев подключение к доступной сети протокола WPA-EAP, поддерживаются значения WPA-PSK, IEEE8021X будет выполняться автоматически. и NONE (для отключения WPA). Если вы хотите явным образом указать алгоритм шифрования данных, можете указать атрибуты pairwise (для Вспомогательные утилиты двусторонней передачи данных) и group (для широковещательной Проверить параметры подключения к беспроводной сети можно с передачи). Значениями этих атрибутов являются списки имен протоко- помощью утилиты wavemon (Рис. 2). Эта консольная утилита позволя- лов шифрования. По умолчанию атрибуту pairwise присвоено значение ет отслеживать в реальном времени такие параметры беспроводного

96 Linux Format Октябрь 2007 RADIUS Учебник

соединения, как скорость передачи, количество переданных пакетов, создание нескольких профилей для подключения к разным сетям), но трафик, уровень сигнала и отношение сигнал/шум. интерфейс KWlan, на мой взгляд, удобнее (Рис. 4).

Рис. 2. Проверка работы беспроводной сети с помощью wavemon.

Было бы странно, если бы в эпоху безалкогольного шампанско- го и электрических зубных щеток не существовало GUI-утилит для настройки wpa_supplicant. С одной из таких утилит – nm-applet – мы уже познакомились. Если вы почему-либо не можете использовать NetworkManager для настройки WPA-соединения, к вашим услугам две другие графические утилиты – wpa_gui и KWlan. Утилита wpa_gui предоставляет в распоряжение пользователя графический интерфейс (на базе Qt) и довольно удобные возмож- Рис. 4. Настройка беспроводного соединения с помощью KWlan. ности настройки протоколов, методов и параметров аутентифика- ции в беспроводных сетях (Рис. 3), а также средство сканирования эфира в поисках точек доступа. С помощью wpa_gui можно настра- Помимо настроек аутентификации WPA, KWlan поддерживает ивать параметры аутентификации в нескольких беспроводных сетях. настройки IP-адреса, адресов шлюза, DNS и других параметров соеди- Переключение между сетями выполняется при выборе имени новой нения для каждого профиля. KWlan может отображать текущее состо- сети в раскрывающемся списке Network. яние сетевого соединения (Рис. 5) и запускать/останавливать демон wpa_supplicant; впрочем, последняя функция пока что работает не очень надежно.

Рис. 5. KWlan: ура, беспроводное подключение работает!

Подводя итоги, можно утверждать, что по простоте настройки аутентификации WPA Linux приближается к Windows (чего, увы, все еще нельзя сказать о спектре поддерживаемых беспроводных карт). В этой статье были рассмотрены не все возможности и инструменты настройки WPA Enterprise на платформе Linux, но теперь, когда общая Рис. 3. Настройка wpa_supplicant с помощью wpa_gui. картина вам ясна, использование любого специфического инструмента не должно быть для вас сложным делом. LXF Базирующийся на wpa_gui сетевой менеджер KWlan умеет управ- лять не только беспроводными, но и кабельными соединениями, а так- же подключениями dial-up. В случае работы с беспроводными соеди- нениями KWlan выступает в роли графической оболочки для демона wpa_supplicant. Возможности управления настройками WPA у KWlan те же, что и у wpa_gui (настройка протоколов и методов аутентификации,

Октябрь 2007 Linux Format 9 7 LXF Школа Школа В помощь методисту

Сегодня Галина Пожарина расскажет о свободном программном обеспечении для ведения образо- вательного процесса.

рограммное обеспечение учеб- использование компьютера в качестве составляющей профильного ном процессе может приме- лабораторного оборудования (физика, электроника и пр.); Пняться как: использование компьютера в работе над проектами (внутри одной базовое для формирования умений дисциплины или междисциплинарными). и навыков у учащихся (в соответствии с Программное обеспечение, необходимое для реализации перечис- образовательным стандартом); ленных задач подразделяется на: обеспечивающее функционирова- среды для формирования умений и навыков, таких как умение пе- ние учебной компьютерной лабора- чатать, рисовать, обрабатывать фотографии , видео или звук, пользо- тории (сетевые взаимодействия, ан- ваться электронной почтой и пр.; тивирусная защита, политика доступа репозитории информации – электронные учебники, учебные порта- пользователей); лы и пр. как источники информации); обеспечивающее работу ТСО и пери- контролирующие среды – контрольно-измерительные материалы ферийного оборудования (интерактив- для оценки качества получаемого образования: тесты, опросы); ная доска, проектор, принтеры и пр.); вспомогательные прикладные программы и модули, такие как кон- обеспечение работы администрации вертеры курса валют, программы-переводчики, словари, географичес- учебного заведения (почта, планиров- кие и астрономические карты, часы, таблица Менделеева и пр.; щик задач, бухгалтерские программы, За счет насыщения продуктами из сектора свободного програм- кадровые программы, документообо- много обеспечения возможно повышение качества образования. рот, мониторинг учебного процесса). Свободные программы зачастую пишутся студентами высших учебных Стандартные подходы к формиро- заведений в качестве курсовых и дипломных работ. Их функции не ванию сборников программного обес- только понятны, но и могут быть адекватно сравнимы с компонентами печения базируются на классификации программного обеспечения образовательного стандарта, а набор формирует «инструментарий уча- по функциональным группам (офис, почтовые, антивирусы и пр.). щегося», который можно профилировать в зависимости от предмета Специфика создания подобных сборников для учреждений образова- изучения или уровня обучения. ния заключается в том, что образовательный процесс подразделяется с Репозитории информации, имеющие актуальность для образования точки зрения использования информационных технологий на несколь- состоят из следующих ресурсов: ко потоков (циклов). Предметные и межпредметные порталы и сетевые энциклопедии. При подборе собственно учебного программного обес- печения, основываясь на перечисленных в образователь- ных стандартах перечнях формируемых умений и навыков у учащихся, видится целесообразным сопоставить их с функ- циональными возможностями подбираемых компьютерных программ. Перечень программного обеспечения для реали- зации учебной программы по предмету «информатика» оп- ределяется государственным образовательным стандартоv и содержится в примерных учебных программах. Эта нор- мативная документация находится в открытом доступе на портале Единое окно (http://window.edu.ru/window) Предмет «информатика» не включает: использование репозиториев в рамках других предметов (свободный поиск в Интернете, электронные энциклопедии, электронные учебники); использование преподавателями мультимедийных де- монстрационных приложений (презентаций, фильмов, ау- диозаписей и пр.); контроль качества образования вне зависимости от изу- чаемой дисциплины (тестирования и экзамены);

98 Linux Format Октябрь 2007 Школа LXF

С позиции доступности ресурсов – наиболее доступные. Исполь- зование программного обеспечения для просмотра, копирования либо удаленной работы с подобными ресурсам, имеющими удобный web-ин- терфейс, сводится к использованию, в первую очередь, браузеров. Энциклопедии и учебники для LAN и автономной работы Работа с этим классом программ также в большинстве случаев свя- зана с использованием web-интерфейса и браузеров. Технические тре- бования, указанные в сопроводительной документации к учебнику (дис- ку) могут служить основанием для принятия решения о возможности его установки на имеющееся в учебном заведении оборудование. Контрольно-измерительная среда может быть внедрена в пор- тальную систему (учебный портал), быть автономной или сетевой. Результаты опросов могут накапливаться, обрабатываться в виде сво- док, экспортироваться. тестирование – способ «по умолчанию». Тестирующая система должна включать несколько видов тестов. Наиболее распространенные из них – выборки один из многих, несколько из многих, установление последовательности, установка соответствий, дополнение. Три первые из указанных видов тестов могут быть оценены автоматически, а сле- довательно лежат в основе независимой экспертной оценки. В качестве дополнительных экспертных параметров можно добавить время вы- полнения тестового задания, последовательность выполнения заданий теста (выполнение от первого к последнему, пропуск заданий и возмож- ные возвраты к невыполненным заданиям с целью обдумать варианты ответа или внести исправления. Мониторинг «прилежности» – в сетевых портальных системах воз- можна оценка времени пребывания пользователя в сети, виды вза- имодействий с сетевыми ресурсами. Количественными показателями При подборе программного обеспечения для ТСО и периферийного могут стать также: оборудования , необходимо принимать во внимание, что рынок подоб- • публикации в сетевых ресурсах, ного оборудования достаточно обширен. Наличие репозиториев драй- • активность в форумах, веров периферийных устройств дает возможность подключить имею- • рейтинг авторского ресурса (графической работы, программы) и пр. щееся оборудование и активно его использовать. LXF

Октябрь 2007 Linux Format 9 9 LXF Школа Школьный софт: как поменять коня на переправе

«У самовара» с Александром Поносовым

ак следует из заявления Л.Реймана, до кон- «У самовара» в этом номере: ца 2009 года следует ожидать внедрение в К систему образования отечественного пакета Алексей Смирнов, свободных программ. Если не брать в расчет полити- генеральный директор компании ческую составляющую этого мероприятия, то ничего ALT Linux сверхестественного не происходит, российскую шко- лу реформами удивить трудно. Можно рассматривать переход на альтернативные программы как один их Алексей Новодворский, необходимых элементов модернизации. Другой воп- заместитель генерального рос, насколько качественно все будет организовано, директора ALT Linux удастся ли избежать сбоев в работе и прочих негатив- ных последствий. Учитывая традиционную неспеш- ность и обстоятельность родного ведомства, для пер- Олег Садов, вого разговора пригласим тех, кто уже на линейке технический директор ОАО Линукс Инк. готовности, российских разработчиков программного обеспечения. Итак, о грядущем «триумфальном шествии» сво- бодного софта. Фото: www.opensource-forum.ru; www.cnews.ru; www.cio-world.ru www.cnews.ru; www.opensource-forum.ru; Фото:

Александр Поносов: На сегодняшний момент какие школы поставлены компьютеры с ALT Linux. Мы туры школы в штатном расписании не предусмотре- уже имеется опыт внедрения СПО в образование, как могли помочь только тем, кто сам обращался к нам. но, да пользоваться проще всего тем, к чему давно успешный, так и неудачный. Поскольку сейчас речь Несмотря на это, Junior все же прижился в шко- привык. идет о широкомасштабном переходе, поневоле вспо- лах, хоть и в немногих. Об этом говорят, например, Алексей Смирнов: Немедленный тотальный и минается поставка компьютеров в Южном федераль- заявки школ на ПО: http://www.svobodanews.ru/Popup принудительный перевод всех школ на Linux был бы ном округе в 2003-2004 годах. Результат: пиар-акция /2007/05/08/20070508204158180.html (таблица вни- серьезной ошибкой, дискредитирующей само начина- Microsoft «Школы Волгограда отказываются от Linux зу), где он – единственный представитель свободного ние. Проводя предварительные переговоры с потен- в пользу платформы Windows». В чем, на Ваш взгляд, ПО, хотя цифры нельзя признать удовлетворитель- циальными поставщиками, Мининформсвязи разде- причины неудачи эксперимента? Какие уроки можно ными. Нас многому научила та история. Возможно, лило стратегическую задачу перехода на свободное извлечь из этой истории? главный вывод таков: если мы хотим успеха, то надо ПО и тактическую задачу срочной легализации уже Олег Садов: Неготовность инфраструктуры под- работать с государством, с системой образования и установленных на школьных компьютерах программ. держки и обучения. Наконец, неготовность самого непосредственно с учителями. К счастью, у нас много При этом была анонсирована готовность приступить решения и методической поддержки для него. И это учителей-энтузиастов СПО. Но гораздо больше тех, то к решению стратегической задачи немедленно, запус- не упрек, а скорее констатация фактов. Вся поставка хотел и мог бы использовать его, но скован по рукам тив подготовку адаптированного для нужд школ дис- происходила в крайней спешке, без какой либо пред- и ногам нормативкой, отсутствием учебных и мето- трибутива Linux и организовав внедрение в пилотном варительной подготовки. Мы тогда трезво оценили дических пособий. Надо ликвидировать эти препятс- регионе. Возникает 2-3 летний переходный период, обстановку и просто отказались от участия в этой твия, иначе самые лучшие программы не смогут быть в течение которого нужно без потрясений перейти компании. востребованы. к широкому использованию свободных программ, Такие масштабные внедрения надо тщательно гото- решив такие проблемы, как подготовка учителей, вить технологически, методически и организационно. АП: По вашему мнению, как должен быть организован разворачивание системы техподдержки, переход на Алексей Новодворский: В ЮФО в 2003-2004 не переход системы образования на СПО, чтобы получить многоплатформенные прикладные программы. Если было внедрения, была поставка компьютеров с пре- гарантированный положительный результат? этого не сделать, школы столкнутся с невозмож- дустановленным ALT Linux Junior. После проведения ОС: Процесс миграции должен начинаться в неболь- ностью получить квалифицированную поддержку по конкурса руководство программы «Дети России» сме- шом числе пилотных зон внедрения. Главное – нали- новой для преподавателей системе и с невозможнос- нилось, и мы оказались отрезаны от всякой информа- чие заинтересованных людей в этих пилотных зонах, тью запускать привычные обучающие программы, ции по поставкам, а поставщик компьютеров, вопреки поскольку без такой заинтересованности проект изна- которые разработаны так, что работают только под обязательствам, стал оказывать поддержку сам. Даже чально обречен на провал: у учителей и так масса дел, Windows. областные отделы образования не сообщали нам, в выделенных кадров на поддержку ИТ-инфраструк- продолжение на стр. 106

100 Linux Format Октябрь 2007 Школа LXF Linux Свято-Алексеевский

Перевести школу на свободное ПО всегда непросто. А если школа эта – частная, с особым подхо- дом и требованиями к качеству обучения? Непосредственный участник одного из таких переходов Михаил Журухин готов поделиться с вами своим опытом.

«Лучше день потерять, зато потом за пять минут долететь» Крылья, Ноги и Хвосты

елико значение тех знаний и умений, которые закладываются НОУ Свято-Алексеевская школа (г. Екатеринбург) – одно из таких с детства, со школы. Это особенно касается навыков, которые учебных заведений, где преподаватели серьезно подходят к формиро- Впозднее практически не углубляются, но активно используются ванию профессиональных навыков учащихся, в том числе и в области в профессиональной деятельности. Речь идет об изучении информа- информатики. Это небольшая частная православная школа с класси- ционных технологий в школе и основах компьютерной грамотности. Не ческой программой обучения. Сравнительно маленькие классы (от 3–5 является секретом то, что большая часть практических навыков работы до 15 человек), по одному в каждой параллели, позволяют реализовать с компьютером остается еще со школьной скамьи. Поэтому особенно индивидуальный подход к учащимся. важно правильно заложить основы навыков работы с компьютерами на Обучение информационно-компьютерным технологиям (ИКТ) уроках информатики в школе. ведет опытный преподаватель, инженер (выпускник радиотехничес-

Октябрь 2007 Linux Format 10 1 LXF Школа

технические специалисты и отсутствует зависимость от вышестоящих организаций. В переводе школы на Linux и СПО активно участвовала команда проекта Open-World, сайт которой находится по адресу: http://www.open-world.org.ru/. Процесс перехода Парк компьютеров в кабинете информатики насчитывает 10 рабочих машин (от AMD Duron 750 МГц и до Celeron D 2.4 ГГц, объем опера- тивной памяти – в пределах от 128 до 256 МБ) и один сервер. Все они работали под управлением 2000. На первом этапе было решено установить свободные приложе- ния для Windows: в первую очередь, офисный пакет OpenOffice.org и браузер Mozilla Firefox. Сервер был переведен на CentOS (свободный клон Red Hat Enterprise Linux) с поддержкой следующих служб: Apache (web-сервер), MySQL (СУБД), PHP (язык программирования сценари- ев), CMS-система Joomla!, Squid (прокси-сервер), vsftpd (FTP-сервер) и GuardDog (брандмауэр). Преподаватель информатики настроил их все самостоятельно, используя в качестве универсального учебника и справочника книгу Билла Болла, Хойта Даффа и др. «RedHat Linux 8/9. Настольная книга пользователя» («ДиаСофт», 2004, 928 стр.).

Отец Роман кого факультета УГТУ-УПИ) и священник – о. Роман (Важенин). Он (Важенин) же является лаборантом, т.е. системным администратором школы. В Подборка открытого ПО от основе программы лежит учебник Н. Д. Угриновича «Информатика. Свято-Алексеевской школы Базовый курс» и его же методическое пособие «Преподавание курса “Информатика и ИКТ” в основной и старшей школе». Предмет препо- дается углубленно, с седьмого класса. Клавиатурный тренажер: TuxType2 Излишне говорить, что изучение ИКТ немыслимо без соответ- Обучающие игры: GCompris ствующего ПО. И здесь возникают сразу две проблемы: во-первых, небольшая частная школа не может позволить себе приобретение Файловый менеджер: Konqueror, Thunar (Xfce) Форматирование дискет: KFloppy дорогостоящих программ и пакетов (а после «дела Поносова» покупка Архиватор: File-Roller лицензионного ПО стала необходимостью), а во-вторых, с помощью Антивирус: ClamAV с графическим интерфейсом KlamAV коммерческого ПО для Windows трудно привить учащимся понимание процессов, протекающих в компьютере, поскольку их подробности Текстовый процессор: OpenOffice.org Writer обычно тщательно замаскированы и скрыты под глянцевым интерфей- Электронный калькулятор: KCalc сом пользователя. Базы данных: OpenOffice.org Base Выход из этой ситуации очевиден – использование в обучении Звуковой редактор: Audacity ИКТ ОС Linux и свободного программного обеспечения (СПО). Мало того, оказалось, что Linux и СПО прекрасно заменяют коммерческие Электронные таблицы: OpenOffice.org Calc программы и дают гораздо большие возможности в преподавании и Растровый графический редактор: TuxPaint, GIMP, Google Picasa Векторный графический редактор: OpenOffice.org Draw обучении, чем можно было предположить. Разнообразие СПО дает воз- Создание презентаций: OpenOffice.org Impress можность абстрагироваться от конкретных продуктов и вести обучение информационным технологиям, а не пользованию определенной про- ПО для знакомства с кодировками: KCharSelect граммой определенной версии. Редактор формул: OpenOffice.org Math Мысль использовать ОС Linux и СПО в учебном процессе появилась Англо-русский словарь: KSocrat с того момента, когда стало ясно, что только с помощью этой системы Словарь синонимов: KThesaurus можно наглядно объяснить учащимся все тонкости информационных процессов. Кроме того, выяснилось, что для Linux существует много Система объектно-ориентированного программирования: хорошего образовательного ПО, которое ко всему прочему является абсолютно свободным и бесплатным. Желание расширить кругозор в Web-браузер: Mozilla Firefox + расширения Почтовый клиент: Evolution информатике, привить учащимся свободный стиль мышления, расска- Обмен мгновенными сообщениями: Gaim зать о проблемах, которые существуют в мире ИТ (патенты, лицензии), Web-разработка: BlueFish, NVU показать действительно реальную альтернативу коммерческим реше- Межсетевой экран: GuardDog ниям тоже стало своего рода толчком к подготовке перехода на Linux. Наконец, в программе обучения и учебниках Н. Угриновича обучение Просмотрщик математических 3D-функций (стереометрия): Zhu3D построено на трех ОС: Windows, Linux и Mac OS X, причем к методичес- Планетарий (астрономия): Kstars, Celestia кому пособию прилагается два диска: ПО для обучения под Windows Также активно используются программы из пакета KDEdu (география, и ALT Linux с обучающим ПО (правда, это сравнительно устаревший и химия, геометрия). урезанный вариант дистрибутива). В конце методички приведено крат- кое руководство по установке и использованию Linux. Анимация: Gimp (gif-ролики), Macromedia Flash в Wine Запись компакт-дисков: K3b С самого начала было решено перевести все обучение на Linux, без использования коммерческих (платных) программ, и это условие было Информацию об этих и многих других образовательных программах выполнено. Следует, однако, иметь в виду, что в данной школе пой- можно найти по адресу: http://rus-linux.net/po.php?name=po/po-10-1.koi. ти на этот шаг было намного проще, чем в других, так как здесь есть

102 Linux Format Октябрь 2007 Школа LXF

Затем пришел черед и рабочих компьютеров пользователей. Сложность перехода заключалась в том, что в распоряжении не было специального дистрибутива для школ, учитывающего отечественные реалии и образовательные программы. Разбираться с такими специ- фичными вещами, как , желания не было, так как работать нужно было сразу. Поэтому пришлось идти по пути наименьшего сопротивления и выбирать тот дистрибутив, который был известен лучше других, а также прост и удобен в использовании. Вариантов было немного: Novell SLED 10, CentOS и Mandriva Linux. Первый из них отпал как неприемлемый из-за скорости работы (выяснилось, что это достаточно тяжелый дистрибутив и к тому же не совсем свобод- ный). Серверный CentOS по своей природе не слишком приспособлен для использования на рабочем столе; кроме того, для него сложно найти образовательные приложения. Так в качестве ОС была выбра- на Mandriva Linux 2007: хорошо знакомый дистрибутив, удобный в настройке и использовании и имеющий большой репозиторий с обра- зовательным ПО. На следующем этапе была выбрана тестовая машина, на которую (после резервного копирования необходимых данных) и установили Mandriva Linux 2007 Free. Мы настроили систему, установили нужные приложения и убедились, что все работает как надо. Через некоторое время был составлен примерный план перехода, зафиксированы его основные стадии. Чтобы ускорить развертывание, установка дистрибути- ва на рабочие машины производилась по сети с сервера (через FTP). Были и некоторые проблемы технического характера: не работа- В настройке свежеустановленной Mandriva очень помогла гордость ли Tuxtype2 на русском (проблема была в переключателе раскладки), дистрибутива – комплект графических утилит-мастеров под общим Kxneur (аналог Punto Switcher). Были сложности и с traceroute. названием Mandriva Control Center. С его помощью была сконфигури- рована сеть, подключены локальные репозитории (опять же доступ- Первые впечатления ные по FTP) и доустановлено необходимое ПО. Пришлось немного Настроить компьютеры – треть дела, нужно еще учить детей. С детьми повозиться с настройкой оборудования: принтером и МФУ от Hewlett- легче: Packard, видеокартами NVIDIA и др. – Вы поставили новый Windows? Вторая серьезная проблема – производительность при 128 МБ ОЗУ. – Нет, это другая ОС, называется Linux. Особенно остро она стоит для таких тяжеловесов, как OpenOffice.org. – А она лучше Vista? Проблема частично решилась с переходом на новую версию OOo – 2.2, – Лучше – понятие относительное, но новее – это точно. частично – использованием облегченной версии Mandriva Linux – SAM – Ура! Нам новый Windows поставили! Mandriva называется! Linux. Этот дистрибутив, предлагающий легкий рабочий стол Xfce4, Впрочем, поначалу среди детей было несколько противников пере- показал высокую скорость работы, особенно с OpenOffice.org. Но в хода, особенно среди одиннадцатиклассников. «Сложно и немодно», – нем есть серьезные проблемы: в основном англоязычный интерфейс, говорили они. После «копания в настройках» недовольных поубави- неполная совместимость с Mandriva на уровне пакетов, сырой инстал- лось – одна прозрачность панелей чего стоит. А после демонстрации лятор, отсутствие Центра управления. В результате было решено, что Mandriva 2007 с «кубиком» на столе появилась целая куча дисков с дистрибутив требует доработки, поэтому он был оставлен только на просьбой «записать Linux». самой слабой машине. Кроме старших классов, в Свято-Алексеевской школе знакомят с Третья проблема: курс Угриновича предусматривает программиро- компьютерными технологиями и совсем маленьких: 1–3 классы. Для вание на Visial Basic, , знакомство с «Компасом». Замена Visial них разработана специальная программа, позволяющая в игровой фор- Basic приведена на страницах учебника и методички – это Gambas. ме ознакомиться с возможностями компьютера и информационными Однако он не полностью совместим с Visial Basic (например, у этой про- технологиями. Это GCompris (http://gcompris.net/-ru-). А еще детям граммной среды оказались некоторые свои особенности вывода гра- очень нравится TuxPaint (красивый и удобный графический редактор), фических модулей), а упражнения специально для Gambas разработа- они рисуют в GIMP и играют в SuperTux и вообще во все игры, кото- ны не были. Проблема была решена переработкой практических задач рые находят. для Gambas. Старую версию среды, включенную в состав Независимость – тема, которая сквозит в каждом примере развер- дистрибутива, было решено заменить другой сборкой, доступной по тывания свободного ПО в школах. Свято-Алексеевская школа – част- адресу: ftp://ftp.open-world.org.ru/pub/gambas. От Delphi пришлось отка- ная, и по определению имеет больше свободы выбора учебных планов заться, в том числе и из-за нехватки учебного времени. и ИКТ, чем государственные общеобразовательные школы РФ. В пер- С Компасом ситуация сложнее. Вариантов три: отказаться от его спективе здесь планируется раздавать домашнее задание ученикам на использования в пользу QCad, не рассматривать совсем и попытаться LiveCD, а также проводить компьютерное тестирование по всем пред- запустить в Wine@Etersoft. Думается, что многие из этих проблем будут метам (с помощью iTest и KEduca), организовать удаленное админист- решены с выходом в свет Mandriva Education Linux. рирование, демонстрировать основные сетевые технологии и углубить Свои особенности нашлись и у «Открытого Офиса», однако, выру- изучение HTML, внедрить в образовательный процесс Google Earth и чила полная русскоязычная документация: Чернова Д., Еременко А. и автоматизировать организацию учебного процесса (SchoolTool). LXF др. «Руководство пользователя OpenOffice.org 2 (+CD)», BHV, 2007 г. В ней рассмотрены все возможности пакета OpenOffice.org 2: работа с текстовыми документами в OpenOffice.org Writer, создание электрон- ных таблиц в OpenOffice.org Calc, подготовка и демонстрация презен- таций в OpenOffice.org Impress, создание математических формул в OpenOffice.org Math, подготовка рисунков в OpenOffice.org Draw, осно- вы работы с базами данных в OpenOffice.org Base и так далее.

Октябрь 2007 Linux Format 10 3 LXF Школа GNU/Linux заглядывает в ВУЗы Многие говорят, что свободное ПО и высшее образование просто созданы друг для друга, но далеко не все знают, как организовать их первую встречу. Александр Сергеевич Казанцев, успеш- но продвигающий Linux в родному институте и за его пределами, любезно согласился ответить на вопросы Евгения Балдина.

Александр Сергеевич Казанцев

аличие тотального высшего образования способствует уско- ренному развитию общества. Почти все грамотное население Н России знает про МГУ; есть подмножество, которое знает, что НГУ ничуть не хуже. Но даже если очень захочется, все просто физи- чески не смогут обучаться только там, а обучать надо именно всех. Большинство образовывается в небольших ВУЗах, и в этих ВУЗах роль личности может оказаться определяющей. Александр Сергеевич Казанцев (он же akdengi на ЛинуксФоруме и в Русском сообществе OpenOffice.org), молодой кандидат технических наук и доцент (пока без диплома) кафедры «Автоматизированные сис- темы управления» Глазовского инженерно-экономического института (филиала) ГОУ ВПО Ижевский государственный технический универси- тет, выбирает GNU/Linux.

Linux Format: Кого готовит ваша кафедра? Александр С. Казанцев: Мы готовим специалистов-компью- терщиков широкого профиля. Студенты заканчивают специальность 230102, Автоматизированные системы обработки информации и управ- Рис. 1. Александр Казанцев собственной персоной. ления, а вот кто из них в результате получается – это вопрос. Часть работает в направлении САПР и АСУТП, часть в области бух- галтерских программ. Есть выпускники, работающие компьютерщика- ми в банках и в пенсионном фонде, то есть ВУЗ поставляет специалис- тов для разных областей. А раз работодатели сами идут к нам просить студентов1, значит, выпускаем тех, кого надо, благо программа содер- жит всего понемногу: и программирование, и САПР, и проектирование систем, а также математические дисциплины, дающие для этого базу.

LXF: Что используется в процессе обучения? ACK: Компьютеры, компьютеры и еще раз компьютеры. Ну, еще про- ектор для демонстраций. Плюс применяем сеть 1-Wire для подключе- ния внешних управляемых систем. Две лаборатории – моя гордость, одна с «железом», где можно пощупать различные части ЭВМ, вто- рая – с пятью компьютерами (пока) и проводной, а также беспровод- ной сетью, опять же для лучшего изучения. Плюс общие компьютерные классы института (три класса по 15 машин на GNU/Linux). Программное обеспечение необходимо разное, так как для каждой дисциплины нужен свой программный пакет. Одних ОС в процессе обу- чения я рассматриваю две-три штуки.

Рис. 2. Александр Казанцев и Михаил Давыдов – web-гуру института. 1 Больше всего удивил военкомат (улыбается).

104 Linux Format Октябрь 2007 Школа LXF

LXF: По какой причине возник вопрос перехода на GNU/Linux? ACK: Первичной причиной была задача сделать быстро восстанав- ливаемый компьютерный класс для изучения операционных систем, позволяющий безболезненно программировать и менять их настройки, вплоть до погружения системы в нокаут. Тогда-то (два года назад) у меня в лаборатории впервые появился мой первый GNU/Linux и вир- туальные машины. Затем известное дело Поносова заставило руко- водство ВУЗа поднять вопрос о лицензионной чистоте программного обеспечения. Тут и пригодились мои наработки. Результат – GNU/Linux почти во всем ВУЗе.

LXF: Был ли план миграции? Как производился переход? ACK: План заключался в постепенном переходе по максимуму на открытое ПО, с закупкой лицензионных закрытых продуктов только при крайней необходимости. Я сделал выбор дистрибутива, совместно с коллегами (за закупки и обслуживание всей техники в институте отве- чают другие люди) посмотрели список используемых в учебном про- цессе программ, нашли им аналоги из мира Open Source, работающие под GNU/Linux, и приказом директора была запущена машина пере- хода. Первые дистрибутивы мы получили в феврале, а к маю-месяцу переход был закончен. На кафедре я это сделал за одну неделю. Переход выполняли своими силами – точнее, моими и двух лабо- мер, бухгалтерский учет) вообще считаются «оффтопом», то в мире Рис. 3. Марат рантов, один из которых – любитель FreeBSD (ничего, кроме нее, не свободного ПО работы хоть отбавляй. Не стало проблем с выбором Салимзянов — признает), а второй – заядлый линуксоид. В процессе работы обучили языков программирования (в настоящее время используем линуксоид по еще несколько человек, так что теперь все лаборанты могут нормально и C# Mono). Пишут также на Java, C++, Ruby, Python. Появилась воз- убеждению. развернуть систему. можность рассматривать CRM/ERP системы и организовывать дистан- ционное обучение. До перехода я (да и остальные) просто не задумы- LXF: А что еще осталось доделать и почему? вались об Open Source. Обеспечена лицензионная чистота по многим ACK: Доделывать осталось еще много (по институту в целом). Связано дисциплинам – например, по электротехнике и микропроцессорной это со сменой операционных систем на серверах (трогать их во время технике используем KTechLab; по компьютерной графике – Blender учебного процесса было нельзя) и полном развертывании того про- и Inkscape. Проще стало изучать Операционные системы, Сети ЭВМ, граммного обеспечения, которое было не нужно во втором полугодии. Моделирование систем и тому подобное. В мою компетенцию входит перевод типографии института на GNU/ Linux и развертывание нового дистрибутива в лаборатории и классах. LXF: Какие методические материалы сейчас используются при обучении? LXF: Какой был выбран дистрибутив GNU/Linux? ACK: Пока идет наработка материала. Используем «нарытое» в сети ACK: Решили остановиться на Mandriva Linux, и я не жалею об этом. и из журнала Linux Format. Перерабатываем старые методические ука- Выбор шел среди дружественных пользователю дистрибутивов, кото- зания (с Microsoft Office на OpenOffice.org, с MathCad на Maxima и т.п.) рые облегчили бы переход студентов и преподавателей с Windows. и пишем новые. Я уже в этом году давал программирование сетевых приложений на C# в Mono. На новый учебный год (2007–2008) готов- LXF: Как отреагировали на переход пользователи? лю новые методические материалы по Операционным системам и ACK: Как и следовало ожидать, пользователи отреагировали бурно Проектированию АСОИУ с учетом Open Source. Также буду вести новый отрицательно. Но внушенная им мысль о самостоятельной покупке предмет – кросс-платформенное программирование, поэтому готовлю лицензионного ПО сразу остудила обстановку. Так как большинству полный методический комплект для этого предмета: лекции, практи- был необходим только «Офис», то переход прошел почти безболез- ческие занятия и лабораторные. ненно, – кроме как в деканатах, из-за необученности государственных Параллельно готовлю цикл статей по использованию Mandriva структур, любящих присылать различные формуляры на заполнение в Linux в образовании. Все, что напишу я сам и мои коллеги, обязатель- виде файлов Excel с макросами и бухгалтерии. но сделаем общим достоянием на одном из ресурсов, посвященных Возникающий шум решался отсутствием Windows и поднятием воп- GNU/Linux. роса о занимаемой должности. Жестко, но по-другому в сжатые сро- ки было не перейти. Так же я поступил у себя на кафедре, полностью LXF: Раз уж упомянули Linux Format, то не могли бы вы перечислить удалив Windows с кафедральных машин. Благо таких эксцессов было наиболее полезные/интересные с вашей точки зрения статьи? немного, а похожесть Mandriva Linux и OpenOffice.org на их «несвобод- ACK: Особенно понравились циклы по программированию на разных ных коллег» сыграла свою положительную роль. языках – много полезного почерпнул (и продолжаю) из статей о Mono, Переучивание же студентов происходило на парах по ходу занятий, Ruby и Java. Другие преподаватели (я им даю почитать свою копию а преподаватели перестраивались сами (мы, преподаватели, должны журнала, который пока выписываю только я) тоже нашли массу полез- заниматься самообразованием). В результате перехода студенты раз- ного в статьях об Inkscape, Blender и OpenOffice.org. Для новичков ока- делились на два лагеря: одни меня про себя ненавидят, а другие под- зались полезными статьи, показывающие работу с пакетами на разных держивают. Жалко, что первых пока больше. Надеюсь, что в следую- дистрибутивах. щем году таких уже не останется. LXF: Какие новые материалы в Linux Format вам хотелось бы LXF: Насколько из-за перехода на свободное программное обеспече- увидеть? ние изменился образовательный процесс? ACK: Интересно бы было прочитать о связи приложений в Linux с ACK: Образовательный процесс ожил. По своей кафедре могу сказать, OpenOffice.org на разных языках – я считаю тему актуальной, особенно что исчезла проблема с темами курсовых и дипломных работ. Если в свете отказа от несвободных офисных пакетов. Также с удовольстви- под Windows в основном все уже написано, а некоторые темы (напри- ем бы ознакомился с программированием при помощи библиотек SDL

Октябрь 2007 Linux Format 10 5 LXF Школа

Рис. 4, 5. Институтские лаборатории.

и OpenAL как замены DirectX в проектах. Не помешали бы обзорные Qt ) доделываю в свободное время дома и внедряю в инсти- статьи о математических программах (был только цикл по Maxima), тутский репозиторий (надеюсь, мое начинание найдет поддержку у программах для бухгалтерского учета, существующих CAD/CAM систе- Mandriva.ru). мах. Люди просто не знают, какие программные продукты существу- Времени. Работы и идей много, но чтоб все успеть… Последние пол- ют, а использование выдержек из данных материалов в дипломных и года сплю по 5-6 часов. Нужна команда единомышленников, но пока курсовых проектах позволило бы донести идеи Open Source до более [грустно] я не вижу большого рвения со стороны коллег мне помочь. широких масс. Хорошего САПР. Из-за него (а именно, КОМПАС-3Д) мы вынуждены были закупать «не Линукс». LXF: Чего вам сейчас не хватает для полного счастья? В смысле использования GNU/Linux в образовательных целях. LXF: Что бы вы пожелали сообществу для того чтобы процесс внедре- ACK: По порядку: ния GNU/Linux в образование пошел активнее? Понимания. Как со стороны студентов и сотрудников, так и со сто- ACK: Нужно выходить на государственный уровень УМО, федераль- роны руководства (очень сильное лоббирование «виндузятников», как ного агентства по образованию. Лицензировать специальности по внутривузовских, так и из высших эшелонов власти, которое может рабочим программам с использованием GNU/Linux. Создавать обра- свести на «нет» все начинания). зовательные ресурсы, для поддержки начинания, издавать книги и Образовательного дистрибутива Mandriva. Кучу вещей (например, делиться опытом. А преподавателям следует заниматься положенной нормально скомпилированного под Mandriva с поддержкой GTK2 и нам, преподавателям, работой, а не сидеть сложа руки. LXF

Школьный софт: как поменять коня на переправе (окончание, начало на стр. 100)

АП: Думается, полного перехода на альтернатив- Разумной может оказаться поэтапная модель 2 этап. Здесь следует сосредоточиться на реше- ную платформу все таки не будет. Тем более, часть внедрения: нии задачи запуска в Linux имеющихся в школах школ уже закупила лицензионные продукты Microsoft. на первом этапе можно организовать использова- обучающих и медиа-материалов, рассчитанных на Что вы думаете о моно- и гетерогенных системах в ние свободного ПО для Windows (Firefox, OpenOffice. ОС Windows, разработке средств простой подготовки школе? org, GIMP и др.) образов загрузочных CD (LiveCD) с заданным набором АН: Мне представляется, что решение государства само знакомство с Linux можно начинать с LiveCD, прикладных программ, работающих без установки ОС. о закупке лицензий на проприетарное ПО для снятия который дает возможность опробовать новую сис- Кроме того необходимо включить программы, требуе- проблемы легальности вкупе с внедрением в школы тему без риска сломать то, что уже установлено на мые для организации учебного процесса: средства для СПО весьма удачно. Какое-то время мы будем жить компьютере обеспечения административной деятельности школы, с двумя системами. Надеюсь, что дальше все будут финальный этап – установка системы в режи- средства для организации дистанционного обучения, определять не деньги, а стремление познакомить ме двойной загрузки, позволяющая при необходи- средства для проведения тестирования, обучающие детей с действительно современными технологиями, мости воспользоваться привычным программным программы по предметам школьного курса. привить им вкус исследованиям, к совместной рабо- окружением. 3 этап. Создание инфраструктуры школы и класса, те, дать образованию инженерный импульс. Если это АС: Учитывая всю сложность ситуации, мы предлага- включающей легко настраиваемый сервер с функция- получится, то выбор СПО неизбежен. ем трехлетний план перехода школ на свободное про- ми web-сервера, сервера баз данных, сервера домена, ОС: Выбор – это великолепно! Самое главное – это что граммное обеспечение. почтового сервера, сервера мгновенных сообщений, а бы та самая «вторая» система когда-нибудь стала пер- 1 этап. Обеспечение базовой функциональности также шлюза в Интернет с антиспамом и антивирусом. вой, а не лежала мертвым грузом на диске. рабочего места. Прямо сейчас мы готовы выпустить Организация школьного класса должна обеспечивать АС: Широкое использование многоплатформенных специализированный «школьный» дистрибутив, кото- работу ученика на любом компьютере класса с сохра- прикладных программ ликвидирует зависимость от рый будет рассчитан на рабочее место ученика и содер- нением индивидуальных данных и настроек, при этом поставщика какой-либо одной ОС. Мы уверены, что жать все необходимые для школьного курса програм- устаревшие компьютеры можно использовать в каче- использование в школах двух ОС – Linux и Windows мы. Дистрибутив включает многопользовательскую, стве терминалов. принесет несомненную пользу: учитель получает сво- многозадачную операционную систему с оконным боду выбора используемой на уроке ОС, а школьники интерфейсом пользователя, близким по «устройству» АП: Ваши компании будут участвовать в конкурсе на расширят кругозор. с интерфейсом Microsoft Windows, офисные прило- разработку пакета ПО для школ. Сроки крайне сжаты. жения: текстовый процессор, электронные таблицы, Наверное, в самое ближайшее время можно будет АП: Что можете порекомендовать коллективам обра- систему презентаций, совместимые с форматом ODF и познакомиться с «опытными образцами»? зовательных учреждений, планирующим переход на имеющие возможность импорта/экспорта документов АН: Не позже следующей недели (24.09-30.09) начнем СПО, для того, чтобы он прошел безболезненно? в распространенные неспецифицированные форматы публичное тестирование. ОС: Тщательно планировать процесс миграции, по воз- doc, xls, ppt, с поддержкой русского правописания и ОС: Наш комплект поступит в школы в начале октяб- можности привлекать к этому местных специалистов. переносов. ря. Подарок ко Дню Учителя. LXF

106 Linux Format Октябрь 2007 Ответы Есть вопрос по Open Source? Пишите нам по адресу: [email protected]

ненадежной связи, типа радиоканала, поэтому имеет Сегодня мы ответим большую избыточность кода и коррекцию ошибок и на вопросы про: создает файлы примерно на 30% больше. Перекодирование из MPEG2-TS в MPEG2-PS является 1 Видеокодеки 7 Разделы Vista простым и быстрым, поскольку оно затрагивает лишь 2 Настройки Firefox 8 USB и Samba эту восстановительную информацию, а не формат 3 Обновления и 9 Procmail и видео. резервное SpamAssassin Существует ряд программ, пригодных для превра- копирование 10 Настройки щения DVB MPEG в DVD. Одна из самых простых, хотя 4 Сбои RAID сервера и довольно медленная – tovid (http://tovid.wikia.com); Конвертация видеофайлов DVB (Freeview) в DVD 5 Удаление Linux Безопасность команда todisk из пакета берет список видеофайлов проста: по сути они одинаковы. 6 Брандмауэры FTP почти любого формата и преобразует их в ISO-образ DVD. Если вы предпочитаете графический интер- фейс, полезны будут dvdstyler (www.dvdstyler.de) и qdvdauthor (http://qdvdauthor.sourceforge.net). Однако 1 DVB на DVD для цели создания DVD из единственного MPEG2-фай- Этот скрипт разделяет аудио- и видеопотоки, затем Я сумел настроить тюнер DVB-T, но моя жена не ла они будут перебором – скрипт оболочки сделает эту перекомбинирует их с данными способом, принятым хочет смотреть трансляцию на экране компью- работу быстрее: для DVD – без излишеств DVB, создаст файловую В тера; нет ли способа конвертировать файлы, #!/bin/sh структуру DVD и запишет ISO-образ. Перед прожигом сохраненные из потока, чтобы воспроизвести их на mplayer -dumpfile title.audio -dumpaudio $1 ISO-образа на DVD можете протестировать его: нашем телевизоре через DVD-плейер? mplayer -dumpfile title.video -dumpvideo $1 mplayer -dvd-device title.iso dvd://1 towy71, с форумов LXF mplex -f 8 -o title.mpg title.{audio,video} Для этого понадобятся mplayer, mjpegtools и DVB и DVD используют два варианта видеоко- dvdauthor -x title. dvdauthor; все они должны быть в репозитории ваше- деков MPEG2. DVB использует MPEG2-TS, а mkisofs -dvd-video -o title.iso dvd го дистрибутива, а большинство, вероятно, уже уста- О DVD – MPEG2-PS; соответственно, Transport Здесь title.xml содержит: новлено. Кроме того, если вы используете MythTV для Stream и Program Stream. Различаются они в основном записи и просмотра программ, установите модуль рас- тем, что Transport Stream предназначен для работы при ширения mytharchive для экспорта в DVD. Это прило- жение может поместить несколько программ на один диск – при необходимости перекодируя их для разме- Наши эксперты щения большего числа на одном носителе (получается дольше, но если вы собираетесь делать это регулярно Мы найдем эксперта по любому вопросу. Вы получите ответ на все: от проблем с установкой или модемом и не хотите быть погребены под кучей дисков, то стоит до сетевого администрирования; главное – спросить! им воспользоваться). Оно также предлагает на выбор Нейл Ботвик Майк Сондерс стили и раскладки меню. Я сам этим постоянно поль- зуюсь. НБ Владелец ISP и экс-редактор Майк был одним из создателей дисков для нашего журнала, Нейл прототипа LXF – Linux Answers. считает, что в Linux он от скуки на Его специальности – 2 Кнопки-уродцы все руки. программирование, оконные Я новичок в Linux: избавился от Windows XP и менеджеры, скрипты инициализации теперь сижу в PCLinuxOS 2007 на моем Fujitsu и SNES. Пол Хадсон Ник Вейч В Siemens Amilo хi 1546. При использовании Пол – местный супер- Во время, свободное от исчеркивания Firefox радиокнопки на web-страницах выглядят урод- программист. Он управится со текстов красными чернилами, Ник ливо, а не так гладко и округло, как в Internet Explorer. всеми вашими проблемами по возится с Linux- графикой и 3D- Есть ли решение, способное сделать их приятнее на части web и баз данных. приложениями; он у нас отвечает за вид? простые вопросы! Порывшись в Сети, я нашел нечто о помещении Владимир Иванов изображений пары радиокнопок в папку /Firefox/res и Владимир работает с Linux уже правке кода в /Firefox/res/forms.css, но ссылки на код более 10 лет, днем – создавая и изображения устарели и исчезли. Объясните новичку комплексные решения для круп- в Linux, как это сделать попроще? ных компаний, а вечером – моде- Ник [Nick] рируя сайт linux.org.ru и отвечая на По умолчанию виджеты Firefox и вправду вопросы о системном администри- ровании и информационной безо- выглядят угловато. Вы, вероятно, наткнулись пасности. О на модуль Осмо Саломаа [Osmo Salomaa], его можно загрузить с http://users.tkk.fi/~otsaloma/art/ КУДА ПОСЫЛАТЬ ВОПРОСЫ: firefox-formwidgets.tar.gz. Но чтобы избавить вас от Пишите нам по адресу: [email protected] или спрашивайте на форуме: www.linuxforum.ru проблем на случай, если ко времени выхода журнала

Октябрь 2007 Linux Format 10 7 Ответы

архив снова «сбежит в самоволку», мы включили этот твердят: «Сделайте резервную копию ваших данных». файл в директорию Magazine/Answers на DVD Linux Каких данных? Это же не просто архивирование Format этого месяца. Для его установки выйдите из домашней директории, ведь сервисы уровня предпри- Firefox, скопируйте firefox-form-widgets.tar.gz с DVD в ятия охватывают всю ОС, и одни библиотеки зависят от вашу домашнюю директорию, затем откройте терми- других. Вдруг из-за обновления что-нибудь рухнет? нал и введите Можно ли сделать «откат»? tar xf firefox-form-widgets.tar.gz Я понимаю, что основные серверные дистрибутивы cd firefox-form-widgets.tar.gz тратят много времени, чтобы пакеты в их репозиториях su были самодостаточными, однако есть вещи, которые cat res/forms-extra.css >>/usr/lib/firefox-2.0.0.3/ никогда не сделать силами дистрибутива – например, res/forms.css некоторые CRM, почтовые решения третьих фирм и cp -a res/form-widgets /usr/lib/firefox-2.0.0.3/res/ т.д. Наличие более одного пакета с похожей функцио- exit нальностью может реально означать, что я в конечном Для изменения системных файлов Вам потребуют- итоге буду распутывать зависимости вручную, если Сохранение копий ваших серверов как виртуальных ся права суперпользователя root, этот вопрос решает- что-то пойдет не так. Идеальным решением, конечно, машин позволяет легко тестировать новое программное обеспечение без привлечения запасных компьютеров. ся командой su. Команда exit снова переключит Вас на было бы сперва применить заплатку на какой-нибудь обычного пользователя, так как неразумно оставаться тестовой среде. По-честному, сколько людей дела- под правами root без абсолютной необходимости. ют зеркала всех бесперебойно работающих служб? У В серверах, критичных для бизнеса, все изменения Кстати, пользователи Ubuntu имеют графический меня есть резервный компьютер, но я предпочитаю нужно обязательно тестировать на отдельной системе инсталлятор для этих виджетов, благодаря любезности его не трогать, а держать на случай, если сломается перед их применением. Вы правильно мыслите насчет одного из своих форумчан. Вы найдете его по ссылке что-то другое. виртуализации, но ее надо применить в тестовой сис- http://ubuntuforums.org/showthread.php?t=369596 ПХ Виртуализация кажется выходом из этой ситуации. теме: так можно эффективно испытывать версии всех Виртуализуем свое окружение, делаем снимок и при- ваших систем на одной или двух машинах. Это дает ряд 3 Критика обновлений меняем заплатку, а если что-то пойдет не так – откатим явных преимуществ. Во-первых, можно использовать Я администратор в небольшой компании, пре- всю операционную систему. Но это выглядит слегка один компьютер с рядом виртуальных машин на нем, доставляющей Web-сервисы зарубежным неэлегантно – все равно что менять автомобиль, когда который потребует не больше ресурсов, чем отдель- В филиалам, VPN-решения и другие услуги, все кончился бензин. ные системные блоки для каждого из ваших серверов, на базе CentOS, а также внутренние сервисы, такие как sgb, с форумов LXF за очевидным исключением дискового пространс- Samba и CUPS. Я не очень разбираюсь в обновлении Пример со сменой автомобиля тут не совсем тва. При необходимости обновить какую-то систему, Linux-серверов, но должен сделать это прямо сейчас. уместен: откат к последнему снимку просто просто загрузите виртуальную машину, примените и Паралич из-за страха все сломать не может тянуться О уберет изменения, внесенные после его сня- испытайте обновления и реплицируйте их на требуе- долго – это приведет к ненадежности системы. Я читал тия, аналогично функции undo – только не на одно мый сервер, когда будете полностью удовлетворены книгу за книгой, статью за статьей. Все они упорно действие, а на фиксированное время. надежностью работы. Если появятся проблемы, вер- нитесь на предыдущий снимок и попробуйте еще раз; а ваш производственный сервер будет спокойно зани- Коротко про… маться своим делом. Еще одно преимущество тестирования на отдель- ной системе проявится, когда вы будете устанавливать программы из исходных текстов. На реальной систе- Файловые системы ме их собирать не нужно, поэтому на ней не нужно и держать полный комплект средств разработки. Это Различные способы хранения и организации всех ваших данных. сокращает число пакетов, установленных на удаленном Файловая система – это метод хранения и организации почтовыми файлами и кэшем браузера. сервере, а значит, повышает его безопасность. Чтобы данных на ваших запоминающих устройствах, таких XFS использует кэширование памяти в большей собрать RPM-пакеты программ для установки на про- как жесткие диски или DVD. Все файловые системы степени, чем другие файловые системы. Это делает ее изводственных системах, воспользуйтесь checkinstall решают одни и те же задачи, но разными способами. очень быстрой, но гораздо более уязвимой в случае (http://checkinstall.izto.org). НВ Именно поэтому каждая файловая система имеет свои сбоев в сети электропитания. Для систем, защищенных сильные и слабые стороны. ИБП, или для ноутбуков, где батарея позволяет не 4 Эй, Raid! Много лет единственной файловой системой, исполь- бояться внезапного отключения, это хороший выбор; Мы установили сервер Apache Tomcat с двумя зуемой в Linux, была ext2 – весьма надежная, благодаря но будьте осторожны с ее использованием в незащи- дисками на 500 ГБ с программным RAID 1. Я кое- столь долгому тестированию, а также быстрая. Одна из щенном компьютере. Есть и другие файловые системы что поменял в некоторых файлах, перезагрузил причин ее быстроты заключается в отсутствии ведения Linux, например, JFS от IBM и новые файловые систе- В журнала. Попросту говоря, журналирование – это регис- мы – Reiser4 и ext4, но они (пока) не нашли широкого сервер, чтоб их протестировать, и обнаружил, что вне- трация изменений в файловой системе, облегчающая применения. [развитие файловой системы Reiser4 при- сенные изменения исчезли. Файлы, которые я удалял, восстановление ее целостности после незапланирован- остановилось из-за заключения под стражу ее разра- появились снова. Я проверил свою почту и получил ного отключения компьютера. В файловой системе ext2 ботчика, а ext4 пока находится в стадии тестирова- письма с ошибками от mdadm. выполнение fsck после сбоя или отключения электро- ния, – прим. пер.] A DegradedArray event had been detected on md device энергии может отнять много времени. Файловые системы Windows заслуживают упомина- /dev/md0. При добавлении в ext2 журналирования получилась ния благодаря их массовой распространенности. Даже The /proc/mdstat file currently contains the following: ext3, по-прежнему предпочитаемая многими в силу ее если вы не используете Windows, вы можете использо- Personalities : [raid1] долгой истории и множества инструментов восстанов- вать USB-брелки, цифровые камеры и MP3-плейеры. md1 : active raid1 sda2[0] sdb2[1] ления. Две другие популярные файловые системы, Все они используют файловую систему Windows FAT, 1959808 blocks [2/2] [UU] предлагаемые на выбор при инсталляции во многих которую Linux может без проблем читать и писать. дистрибутивах – ReiserFS и XFS. Первая использует Более поздняя файловая система NTFS, используемая md0 : active raid1 sda1[0] особый метод хранения файлов, повышающий эффек- в WindowsXP и Vista, в настоящее время допускает 486424000 blocks [2/1] [U_] тивность обработки большого числа маленьких фай- надежную запись, благодаря модулю FUSE ntfs-3g. unused devices: лов – например, вашей домашней директории со всеми Я делаю резервное копирование всей важной информации, но хочу по возможности спасти сервер,

108 Linux Format Октябрь 2007 Ответы

поскольку его установка была весьма специфическим но, но использующими три диска, один из которых и долгим процессом. Я новичок в мире администриро- ненадежен, поэтому повторите эти команды для md1, вания Linux и не знаю, с чего начать. sdb2 и sdc2, чтобы перенести второй массив на новый Генри Анджелес [Henry Angeles] диск. Теперь можно выключить компьютер и убрать Содержимое /proc/mdstat показывает, что неисправный диск, когда захотите, так как он уже не произошел сбой диска в массиве md0 используется. О (/dev/sdb1?). Ваша машина будет продолжать Разумеется, как и при любой критической операции работать с деградированным массивом, но с несколько над диском, прежде чем приступать к данной проце- сниженным быстродействием и без резерва на случай дуре, позаботьтесь о резервной копии Ваших данных. выхода из строя другого диска. Инструментов для тес- Старый жесткий диск можно проверить с помощью ути- тирования дисков довольно много, но самый надеж- литы smartmontools (http:// smartmontools.sourceforge. ный вариант – заменить диск и пересобрать дисковые net); она, вероятно, присутствует и в репозитории массивы. Конечно, автоматически будет заменен и вашего дистрибутива. К большинству дисков прила- /dev/sdb2, так что другой массив также потребует гаются диагностические инструменты, запускаемые с Перестроить загрузочное меню из YaST в SUSE до пересборки. К счастью, это задача простая и в значи- загрузочной дискеты, которая понадобится, если диск крайности просто. тельной степени автоматизированная, но потребует будет возвращаться по гарантии. Если в вашем ком- времени. Правда, после замены неисправного диска пьютере нет дисковода, большинство диагностических что если я сотру из Linux HD 1 (диск F в Windows), как вы сможете продолжить работу на компьютере, парал- программ можно запустить с загрузочного компакт- мне сейчас хочется сделать, при включении компьюте- лельно с восстановлением массивов, но при заметном диска Ultimate Boot CD (www.ultimatebootcd.com). НБ ра вообще не будет появляться меню, так что я полно- замедлении дисковой подсистемы. стью сбит с толку. Будет легче, если вы сможете добавить новый диск 5 Стартовая лихорадка Надеюсь, что вы сообщите мне, как удалить Linux до удаления старого, тогда можно будет сперва восста- Несколько месяцев назад я заменил свою полностью, чтобы я мог вернуться туда, где был перед новить md0, а затем переключить md1 на новый диск в Mandriva на SUSE 10.2 с вашего LXFDVD91. У установкой Mandriva. Дав мне при загрузке выбор меж- любой удобный момент. Если новые диски добавляют- В меня два внутренних жестких диска, оба разби- ду Win2000 и XP без необходимости держать включен- ся в вашу систему как /dev/sdc, подключите его и пере- ты на два раздела. Windows 2000 показывает их как C: ным внешний диск, вы получите мою признательность загрузитесь. Затем создайте на нем разделы так же, и D: на диске 0 и F: и G: на диске 1. SUSE установлен на и вернете мне хороший сон. как вы это делали на sda и sdb, установив тип разделов диске F:. Также у меня есть внешний диск, определяе- Джон Бивен [John Beaven] Linux Raid Autodetect. Теперь запустите эти команды мый как диск J:. Когда я устанавливал первый Linux, то, Меню загрузки, вероятно, заработало бы, с правами root, для удаления неисправного диска из к сожалению, подключил диск J:, и теперь, если я не если бы вы немного подождали: похоже, что массива и добавления нового: включаю его при загрузке, курсор не перемещается в О загрузчик Grub пытается читать отсутствую- mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1 нижние пункты загрузочного меню. щий диск, а для этой операции установлен тайм-аут. mdadm /dev/md0 --add /dev/sdc1 Я хотел бы удалить Linux из системы полностью и Чтобы это исправить, не нужно переустанавливать сис- Когда новый диск добавится в массив, RAID-драй- начать заново с другим, более емким, вторым жест- тему – просто измените настройки загрузчика. Это вер синхронизирует его с существующим диском. Это ким диском. Однако ни в ваших учебниках, ни в справке можно сделать из YaST. Загрузитесь при подключен- потребует времени; контролируйте прогресс работы по программного обеспечения Linux как-то не просматри- ном внешнем диске, затем отмонтируйте и отключите содержимому /proc/mdstat. По завершении процесса вается средств, с помощью которых можно вернуть- его или выключите питание диска. Запустите YaST, вы будете иметь оба массива работающими правиль- ся к моей простой Windows 2000 и HD0. Подозреваю, выберите System > Boot Loader > Boot Loader Installation

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

Какое мне дело до вирусов Windows десятков других почтовых программ, Есть ли вирусы для Linux? на Linux-машине? доступных для Linux. Если вы запускаете почтовый сервер, к Да, но они являются лишь доказательством которому подключаются клиенты Вы разве подразумеваете не вири? возможности их написания. В настоящий момент Windows, имеет смысл избавиться от Нет. Cлова «вирусняки», «вири» могут вредоносных вирусов для этой ОС нет. любых вирусов, прежде чем заняться быть подходящими множественным, но чем бы то ни было, имеющим отношение единственно правильное множественное Значит, беспокоиться не о чем? финансовую отчетность перед подачей к Windows. Большинство почтовых сер- от «вируса» – это «вирусы». Люди, поль- Вы защищены, но не в безопасности. Нет налоговой декларации? Вирус или троян веров можно настроить на фильтрацию зующиеся общественным транспортом вредоносных вирусов на момент написа- может использоваться как спам-бот и почты через clamav для удаления или не ездят ведь на буусах! ния статьи. Это не значит, что они не без прав администратора, а это может помещения в карантин подозреваемых появятся в будущем или в момент чтения заставить вашего интернет-провайдера на вирусы сообщений. вами этих строк. приостановить ваш доступ к Сети. В чем причина меньшей угрозы от Но ведь система прав доступа Linux ОК, вы меня застращали. Как же Linux-вирусов? не даст вирусу возможность причинить защитить мою систему? Численность. Число пользователей реальный вред? Существует несколько антивирусных Windows гораздо больше числа пользо- Распространенное заблуждение! программ для Linux. Самые популярные вателей Linux. Кроме того [в Linux], Конечно, если у вируса нет прав адми- из них – clamav (www.clamav.net) и F- используется больше различных про- нистратора, он не сможет удалить или Prot (www.f-prot.com). Все они находят грамм. Подавляющее большинство переписать системные файлы, но спро- вирусы и для Windows, и для Linux. пользователей Windows используют для сите себя: что для вас ценнее – операци- Если вы предпочитаете графический работы с почтой Outlook; нацельте на KlamAV – KDE-интерфейс к онная система, которую можно переус- интерфейс – KlamAV (http://klamav. него вирус, и жертвами падут большин- антивирусу clamav, предоставляющий тановить менее чем за час, или ваши sourceforge.net) предоставляет интер- ство пользователей Интернета. Linux- возможность ручной и личные данные? Что вы скорее готовы фейс KDE для clamav. пользователи могут выбирать из KMail, автоматической проверки файлов и потерять – пару библиотек или годовую Evolution, Thunderbird, Sylpheed, Mutt и почтовых сообщений.

Октябрь 2007 Linux Format 10 9 Ответы

и выберите Propose New Configuration из всплывающе- celticbhoy, с форумов LXF го меню в правом нижнем углу окна. Имеющиеся диски Раз Vista все еще работает, значит, раздел в (внешнего диска среди них теперь нет) будут проска- порядке. Похоже, вы изменили тип разде- нированы, и создастся новое меню для установленных О ла – вероятно, на Linux Swap – и очистили Windows и SUSE. Перейдите во вкладку Section флаг загрузки. В итоге Windows не может распознать Management, чтобы убедиться, что все сделано, как вы раздел, и начальный загрузчик думает, что загрузиться хотели, и нажмите кнопку Finish. отсюда нельзя. Используя любой редактор разделов, Если вы твердо решили удалить Linux с этих дисков, вы можете выбрать для него тип NTFS (07) и устано- выберите пункт Restore MBR of Hard Disk из этого же вить флаг загрузки. Я убедился, что с этим легко меню, и код загрузчика заменится на существовавший справляется cfdisk; вдобавок он есть на любом из до установки SUSE. Если это был загрузчик Windows, известных мне Live CD. Загрузитесь с Live-диска, все нормально, но если вы перешли из Mandriva пря- откройте терминал от root и запустите cfdisk: мо на SUSE, при этом восстановится загрузочный код cfdisk with: Mandriva, что вам совсем не нужно. Тогда вы должны cfdisk /dev/hda загрузиться с компакт-диска Windows в режиме вос- Сделав это, выберите раздел, нажмите t, чтобы становления и запустить fixmbr, который ликвидирует Выключение ненужных служб повышает задать тип, и выберите NTFS из списка вариантов; загрузчик Linux и заменит его загрузчиком Windows. безопасность, но вот брандмауэр как раз выключать затем нажмите b и сделайте его загрузочным. В заклю- В качестве альтернативы вы можете просто заме- не стоит! чение нажмите W (заглавное) для записи изменений нить второй диск (что, возможно, без вышеперечис- на диск. Можно сделать это и при помощи редакто- ленных действий нарушит порядок загрузки с жестко- несколько заслуживающих рассмотрения пакетов в ра с графическим интерфейсом, вроде GParted или го диска), загрузиться прямо с установочного диска репозитории Ubuntu, в том числе: Firewall Builder (www. qtparted, но я нашел, что cfdisk быстрее. Вам даже не SUSE, инсталлировать его, и пусть он создаст новое fwbuilder.org), Guarddog (www.simonzone.com/software/ нужно ждать загрузки рабочего стола, если ваш люби- загрузочное меню за вас, только не забудьте на сей раз guarddog) и Shoreline Firewall (www.shorewall.net). мый Live CD имеет опцию загрузки прямо в команд- отсоединить внешний диск. SUSE, как и все современ- Первый – это Qt-программа, хорошо вписывающаяся ную строку (пользователи Knoppix, например, могут ные дистрибутивы Linux, вполне способен обнаружи- в рабочий стол по умолчанию KDE; Guarddog являет- набрать knoppix 2 в строке загрузчика). НВ вать внешний диск при подключении его после уста- ся приложением GTK+. Они предлагают аналогичные новки операционной системы. НБ функции, но разные подходы. Shoreline Firewall – про- 8 USBить Samba грамма на основе скриптов, безусловно, трудная при Я установил небольшой сервер под Debian Etch, 6 Безопасный серфинг первой установке, но обеспечивающая большую гиб- в основном как файл-сервер, но потом приспо- Прорываюсь в Linux уже в течение нескольких кость. Любая из них способна защитить вашу систему, В собил его и для некоторых задач web. У меня месяцев. Я пробовал загружать дистрибутивы, поэтому стоит установить их и посмотреть, какая вам есть жесткий диск с USB, и я хочу использовать его как В но столкнулся с большим количеством техни- больше всего понравится. устройство хранения через Samba. Моя проблема ческого жаргона. А вот загрузил Ubuntu 7.04, и полю- Вы также должны уменьшить шансы «захватчиков» заключается в том, что как я его ни подключаю, он бил его. В моей голове до сих пор не укладывается вообще добраться до брандмауэра. Ваш маршрутиза- всегда монтируется с правами администратора. Если я факт, что это все бесплатно, так же, как и программное тор является первой линией обороны, так что отклю- устанавливаю точке монтирования права 0777, обеспечение, поставляемое с дистрибутивом, но я уве- чите те порты, которые вы не используете. Отключите user=guest и group=users и монтирую его как обычный рен, что привыкну к этому. также все неиспользуемые службы Ubuntu, в окне пользователь, права остаются прежними, но пользова- Так как я новичок, то должен не раз убедиться, что System > Services, но будьте осторожны: некоторые из тель и группа возвращаются на root. Поэтому я ничего мои действия безопасны, и я не открываю мой ПК для них необходимы для нормальной работы компьютера. не могу записать на диск. Если я монтирую его от поль- внешних хакеров. Что я должен предпринять для уста- Если вы не уверены, отключайте сервисы по одному и зователя root, то у меня нет проблем при локальном новки брандмауэра и антивируса? смотрите, что у вас получилось, чтобы в случае про- доступе, но в любой ситуации Samba не позволяет мне У меня установлена Ubuntu 7.04 в двойной загруз- блем можно было включить их обратно. на него писать. ке с Windows XP Home. На XP у меня F-Secure 2007 – Хотя Linux по своей сути безопаснее, чем Windows, Кто-то предположил, что это, возможно, из-за udev комбинация брандмауэра и антивируса. Я подключен к не нужно слепо на него полагаться – Linux-программы и что мне нужно было перешерстить его настройки, Интернету с использованием внешнего модема – мар- также могут иметь уязвимости. Они, как правило, опе- чтобы изменить разрешения при монтировании. А я не шрутизатора через сетевой кабель. ративно исправляются, так что регулярно обновляйте разбираюсь в udev и не знаю, с чего начать. Диск опре- Стив Холл [Steve Hall] свою систему. Четыре шага: блокировки на маршрути- деляется как sda с разделами sda1 и sda2. Вирусы, в общем-то, не проблема в Linux, но заторе, отключение ненужных служб, запуск брандма- Энди [Andy] все равно лучше предохраниться. Самая уэра и постоянное обновление ПО – означают, что вы Udev занимается только созданием узла О популярная антивирусная программа под можете спокойно пользоваться Интернетом, не под- устройства (/dev/sda1 или любого другого), а Linux – ClamAV (www.clamav.net), она включена в вергаясь опасности. НБ О не монтированием, так что вряд ли может Ubuntu, и ее можно установить через менеджер паке- быть виноват. Вполне возможно, что udev создает узел тов Synaptic. ClamAV хорошо распознает вирусы и 7 Подкачнули Vista с ограничительными правами, но это лишь остановит Windows, и Linux, поэтому, скомбинировав его с моду- Пытался создать раздел подкачки на старом монтирование устройства пользователями (не root) и лями расширений для самых популярных почтовых MP3-плейере, а случайно сделал файл подкач- не скажется на уже смонтированных файловых систе- программ, Вы можете быть уверены, что никакие вред- В ки на разделе с Vista. Я этот файл не подключал, мах. ные вложения не достигнут Windows через вашу почту а чтобы его сделать, использовал команду mkswap. Опция монтирования user не требует его имени – в Linux. Vista все еще работает, хотя приходится загружаться она просто позволяет любому пользователю монтиро- В Linux брандмауэр трактуется иначе, чем в через восстановительный раздел, и я догадываюсь, вать файловую систему, и не влияет на ее разрешения. Windows. Отсутствие шпионских программ и практи- что задел только начало диска. Можно ли «откатить» Решение вашей проблемы зависит от типа использу- ческая невозможность встраивания их в программы команду mkswap, чтобы исправить раздел с Vista? емой файловой системы. Если это одна из файловых с открытым исходным кодом означают, что основная Я проверил диск GParted, и он показал его как систем Linux, поддерживающая права пользователя, задача – это предотвращение вторжений. В Linux ПО диск подкачки. Fdisk показывает раздел как NTFS, достаточно установить владельца и права доступа для фильтрации сети встроено в ядро, а различные бранд- как и должно быть, но в загрузочном заголовке нет *. точки монтирования, но только после того, как файло- мауэры дают более или менее простые способы созда- Означает ли это, что я просто могу восстановить загру- вая система была смонтирована, в противном случае ния, проверки и применения правил фильтрации. Есть зочную информацию, и все заработает? вы установите параметры для точки монтирования, а

110 Linux Format Октябрь 2007 Ответы

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

Небезопасный FTP Мне нужно, чтобы сервер запус- к судебному иску против вас или tcp_wrappers=YES У меня внешний сервер, рабо- кался для местных сотрудников, а потере соединения с Интернетом. в /etc/vsftpd.conf. Затем, для обес- тающий как FTP для сотруд- отнюдь не со стороны. У меня есть Напомним, что это ваш сервер, и вы печения доступа из локальной сети, В ников компании, а также как кое-какие мысли, но они связаны несете ответственность за его содер- добавьте строку в /etc/hosts.allow: анонимный FTP-сервер для наших либо с изменением файлов hosts. жание. vsftpd: 192.168.1. клиентов. Еще недавно это был allow/hosts.deny, либо с использо- Предоставление анонимных зака- Заметьте: адрес пишется до пос- милый маленький сервер, но мы ванием трюков с xinetd. Хорошего чиваний и скачиваний ведет к потен- ледней точки, чтобы соответствовать обнаружили, что им злоупотребля- решения я не вижу. циальным неприятностям. Если все- целой подсети. Измените его на адрес ют сторонние пользователи помимо Сервер работает на CentOS 4.5, таки это необходимо делать, держите своей сети. Теперь добавте такие две наших клиентов, съедая пропускную используя vsftp, запущенный как области закачки отдельно от облас- строки в /etc/cron.d/vsftpd: способность нашей сети. автономный демон. Машина имеет ти скачивания, чтобы люди не могли 0 18 * * 1-5 root sed -i ‘/^vsftpd/d’ Проблем не бывает, если сер- только одну сетевую карту и IP-адрес скачать материалы, присланные ано- /etc/hosts.deny вер запускается после работы, не и видна только через этот адрес. нимно: они должны быть связаны с 0 8 * * 1-5 root echo “vsftpd: ALL” влияя на работу сотрудников, кото- Пит Дарст [Pete Durst] чьей-то учетной записью. Лучшее >>/etc/hosts.deny рые используют эту же сеть в течение То, чего вы хотите, можно решение – отключить анонимную и заставьте cron перегрузиться: дня. Поэтому я через задание cron добиться, сделав доступ- закачку и предоставить Вашим кли- killall -HUP cron останавливаю его утром и запускаю О ным публичный сервер ентам личные учетные записи FTP. после закрытия офиса. Проблемы только вне рабочего времени, но Если Вы действительно хотите Это приведет к запрету изменения с пропускной способностью сети это не идеальное решение. Разумно продолжать предоставлять неогра- hosts.deny для запрета всех адресов, исчезли, но возникла другая пробле- предположить, что те, кто злоупот- ниченный анонимный доступ в нера- кроме указанных в hosts.allow, меж- ма. Сотрудникам, которым необходи- ребляют сервером, не всегда выкла- бочее время, воспользуйтесь фай- ду 08.00 и 18.00 с понедельника по мо обновить файлы на FTP-сервере, дывают на нем юридически чистые лами hosts.allow и hosts.deny в /etc, пятницу и удаления блокировки в приходится делать это после работы. материалы, что может привести поместив любое другое время. МС

не для смонтированной файловой системы. необходимое условие, поскольку я хочу изучать его и В файловых системах Windows, в частности, FAT32, вылавливать ошибочно отброшенные сообщения). вы можете добавить параметр umask=002 в /etc/fstab, Если указать в procmailrc ! [email protected], то поч- чтобы сделать все файлы доступными для чтения и товую систему зацикливает от одного спам-сообще- записи пользователю и группе. Затем используйте ния, а журнал почтового сервера растет прямо на гла- опции uid и gid для установки владельца всех файлов зах. Если же написать procmailrc вида файловой системы. Здесь вы можете использовать MAILDIR=/home/fail числовые значения, или имена пользователя и груп- пы, например: :0fw /dev/sda1 /mnt/somewhere vfat umask=002,uid=guest,g | /usr/bin/spamc --username=fail Нужна помощь! id=users 0 0

НБ :0 Для наилучшего ответа на ваш вопрос нам * ^Subject:.*(SPAM|spam) нужно знать как можно больше подробностей. 9 Почтовая петля $MAILDIR/spam/ Детально опишите конфигурацию системы. При настройке связки Postfix+SpamAssassin+ то все работает почти как надо, но спам-сообщение Если вы получили сообщение об ошибке, ClamAV возникла сложность с перенаправлени- попадает в каталог spam с правами пользователя- приведите текст сообщения и точно опишите В ем спама на внутренний почтовый адрес (это респондента, а не fail, который должен его читать. вызвавшие его действия. Если у вас проблемы Подскажите, где ошибка? с оборудованием, то опишите его. Если Linux Артур уже запущен, то выполните в root-терминале Проблема в том, что когда вы перенаправляе- следующие команды и прикрепите к письму те письмо пользователю [email protected], файл system.txt: О оно снова попадает на обработку MTA. Procmail опять видит строчку SPAM в поле Subject, uname -a >system.txt передает письмо пользователю fail и так до бесконеч- lspci >>system.txt ности, а точнее – до предела полей Received в заголов- lspci -vv >>system.txt ке. Рецепт простой – настроить procmailrc так, чтобы все письма для пользователя fail уже не обрабатыва- Пожалуйста, помните, что сотрудники лись. Например, в начало procmailrc, до разбора строч- журнала НЕ являются авторами или ки * ^Subject:.*(SPAM|spam) можно вставить что-то разработчиками Linux, любых пакетов или вроде дистрибутивов. Зачастую люди, отвечающие за :0 приложения, выкладывают большую часть * ^[email protected] информации на web-сайты. Попробуйте /home/fail/.maildir/ Samba имеет множество настроек, но почитать документацию! первоочередная задача – гарантировать Должно сработать. ВИ возможность чтения каталогов, к которым предоставляется доступ.

Октябрь 2007 Linux Format 111 Ответы

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

10 Установить сервер Исходя из того, что Вы новичок и будете исполь- пакетов помогает в этом, но только если постоянно Я устанавливаю web/почтовый сервер. Что бы зовать сервер в коммерческих целях, настоятельно обновляется ПО, используется меню Software Install вы порекомендовали новичку как дружествен- рекомендую Вам рассмотреть возможность исполь- в административном интерфейсе, и у вас установлен В ный и безопасный Linux-дистрибутив и ПО для зования платной версии, хотя для пробы можно брандмауэр. Брандмауэр уже включен в установки и web и почтового сервера с простым интерфейсом для установить бесплатную версию. ClarkConnect пред- настраивается из браузера. Даже если вы не исполь- обмена файлами с Windows? Желательно что-нибудь лагается в версиях Community, Office и Enterprise. зуете сервер в качестве интернет-шлюза, разум- с подробным руководством пользователя, он будет Community Edition абсолютно бесплатна, а две дру- но защищать сервисы и данные в системе отдель- использоваться в небольшом офисе. гие имеют 30-дневный пробный период. В платных ным брандмауэром, в дополнение к имеющемуся на Алекс [Alex] версиях предоставляются дополнительные функции вашем шлюзе или маршрутизаторе. О боже, мне ясно одно: что бы я ни поре- и, самое главное, поддержка. Для решения вашей задачи пригодны и дистри- комендовал, это вызовет всплеск несогла- ClarkConnect требует подключения к серверу бутивы общего назначения, если выбрать установку О сия пользователей других дистрибутивов. клавиатуры и монитора только на время установ- серверных вместо настольных пакетов. Большинство Популярные дистрибутивы годятся и для настольно- ки и базовой начальной настройки, после чего все дистрибутивов включают прекрасную программу го использования, и для рабочих станций или серве- делается через web-интерфейс. Администрирование Webmin, позволяющую управлять серверами из бра- ров, но есть ряд мелких дистрибутивов, специально выполняется через защищенное SSL-соединение на узера, но для отдельного сервера, особенно если ваш созданных для задач, подобных вашим. Один из таких нестандартном порту, поэтому, зная IP-адрес серве- опыт ограничен, специализированный дистрибутив, дистрибутивов – ClarkConnect (www.clarkconnect.com). ра ClarkConnect, который вы увидите после входа в вероятно, наилучший выбор. ClarkConnect больше известен как интернет-шлюз и систему как root, можно использовать любой web- Хотя ClarkConnect не комплектуется печатны- содержит средства подключения к сети Интернет с браузер в сети для подключения к http://ip-адрес:81. ми руководствами, множество документации есть соответствующими фильтрами контента и контролем Установка Linux дает безопасность в том случае, на сайте: и подробное руководство пользователя, и доступа, но также может использоваться в качестве если вы ее обеспечите. Использование сервер-ориен- различные How To. Существуют также форумы для сервера интранет. тированных дистрибутивов с минимальным числом взаимопомощи. НБ LXF

Шаг за шагом: Знакомимся с ClarkConnect

1 Запускаем установщик 2 Шлюз или внутренний? 3 Выбор ПО После скачивания ISO-образа с сайта ClarkConnect может работать как интернет-шлюз Выберите нужные типы серверов. Выбирайте ClarkConnect и записи его на CD, загрузитесь или отдельный сервер в вашей сети. В обоих слу- только те, что нужны вам сейчас; если понадо- и начните процесс установки. чаях предлагается выбор серверов. бится, другие вы сможете установить через web- интерфейс.

4 Первый запуск 5 Простая настройка 6 Подробная документация Вот это вы увидите, войдя в ClarkConnect на сво- Сервера и все прочее настраивается дистанцион- На сайте ClarkConnect достаточно информации и ей машине, хотя легче управлять им дистанцион- но с помощью web-интерфейса, без подключе- справочных материалов. Большинство разделов но через браузер. ния к серверу клавиатуры или монитора. web-интерфейса имеют ссылки на соответствую- щие документы.

112 Linux Format Октябрь 2007

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

Пол Хадсон Отслеживая все последние LXF разработки в приложениях с HotPicks открытым кодом, наш Wiki On A Stick Zero Install Herrie JSCoverage Slingshot замредактора завел пару своих Hot Thunder & Lightning Segatex Bitswash Picks: он ведет проекты Fuzz Engine и Brain Party на SourceForge.

Wiki в вашем браузере Вы даже можете добавлять скрипты JavaScript к вашим страницам, чтобы получить новые функции – как пример, включена игра, показывающая, как это делать. Вы можете Hottest спросить: почему WOAS лучше, чем, допустим, Wiki on a Stick Pick Tomboy; но WOAS имеет ряд ключевых преиму- Версия v0.9.2B Сайт http://sourceforge.net/projects/stickwiki ществ. Она основана на браузерной техноло- гии, и вы можете работать со своими данными сторию можно разделить на две эпо- Магии подобно в любом поддерживаемом браузере, не будучи хи: до наклеек Post-it и после. Но Согласно третьему правилу предсказаний заложником Gnome/GTK-интерфейса Tomboy. Идаже маленькие желтые листочки Артура К. Кларка, любая достаточно передо- Кроме того, данные хранятся в JavaScript, а 3M не могут справиться с горами информа- вая технология неотличима от магии, и имен- значит, при желании очень легко написать свой ции, которые нам приходится перекапывать но так и выглядит WOAS – с трудом верится, На DVD код, чтобы побаловаться с ними. Наша люби- сегодня; поэтому мы представляем вам новое что такая функциональность уместилась на мая функция – AES-шифрование: нажмите на мощное средство: Wiki on а Stick (WOAS). простой web-странице. Причем именно так символ замка в правом верхнем углу каждой Всем известно, как работают Wiki-сайты: WOAS и работает: каждая страница закоди- страницы, чтобы зашифровать ее паролем; мгновенное редактирование страниц, упро- рована внутри HTML-файла и обвешана мно- WOAS даже показывает степень стойкости щенный синтаксис форматирования, пере- жеством сценариев JavaScript, помогающим пароля, когда вы его набираете. крестные ссылки в статьях, и прочее. Эту идею магии свершиться. Одно это само по себе Версия WOAS еще не достигла номера 1.0, WOAS реализует с помощью одного-един- очень впечатляет, но WOAS творит еще и такие то есть программа находится в активной раз- ственного HTML-файла. Вы загружаете его в чудеса, которые вам и не снились: поиск, работке. Даниэле К. [Daniele C.], руководитель любой браузер на ваш выбор и получаете пол- шифрование (!), пространства имен, печать проекта WOAS, сообщает: «Планируется вер- ностью сконфигурированный готовый Wiki. и даже вставка изображений – и все это как сия v0.9.4B, где добавятся другие функции – Все изменения сохраняются в этот файл, так стандарт. например, сохранение с накоплением (чтобы что вам остается просто свести к минимуму число обращений к диску) скопировать его на USB- и автосохранение через заданный промежуток брелок вместе с Portable «Поиск, шифрование, времени». Итак, WOAS еще похорошеет; но я Firefox, и ваши данные пространства имен, печать и особо предвкушаю реализацию другой идеи везде будут с вами. Даниэле – добавления импорта/экспорта XML: даже вставка изображений!» это здорово упростит доступ к данным.

Шаг за шагом: Осваиваем Wiki

Опустошим установки Добавим содержание Заполним ссылки WOAS имеет содержание по умолчанию, но если Нажмите на карандаш (вверху справа), чтобы Все созданные вами ссылки будут показаны вы пользовались wiki до этого, можете удалить добавить текст на первой странице. Разместите красным цветом, так как они не имеют его, просто нажав на ссылку «Очистить текст внутри [[ и ]], чтобы сделать ссылку, содержания по умолчанию. Нажмите на любую установки по умолчанию». например [[Hello]]. Затем щелкните на значке из них, чтобы создать новую страницу. диска для сохранения.

114 Linux Format Октябрь 2007 LXFHotPicks

Децентрализованный менеджер пакетов Zero Install Версия 0.29 Сайт www.0install.net

енеджеры пакетов в большин- ZII решает эту проблему путем превраще- стве своем достаточно «умны», ния программы в URL-адреса: при каждом М но всегда найдется какая-нибудь запуске приложения компьютер загружает программа, которую вы не сможете добыть XML-файл из Интернета и проверяет его на для своего дистрибутива. Можно бы ском- наличие обновлений относительно того, что пилировать из исходников, да ведь намуча- вы установили. Если ПО установлено вами ешься, отслеживая множество зависимос- или другим пользователем, оно запускается тей вручную! Так были придуманы пакеты как обычная программа, добавленная через Autopackage: предварительно скомпилиро- менеджер пакетов. А если ПО не установле- Пакеты ZII часто живает цифровые подписи для аутентифика- ванное, простое в установке программное но или доступен обновленный вариант, ZII строятся поверх ции программного обеспечения, а ZII обладает обеспечение, работающее под любым дист- автоматически загружает скомпилированный пакетов Autopackage, всеми этими функциями. «Запуск» URL может рибутивом Linux. пакет и устанавливает его, а затем запускает, поэтому с показаться странным, но это так невероятно Но и тут имеются проблемы, и тогда на как если бы программа была инсталлирована достаточно большим легко делается, что потом вы будете дивиться, количеством помощь приходит Zero Install Injector (ZII). заранее. Если Интернет у вас не подключен, как мы жили без него. Как говорит создатель программного К примеру, Autopackage дает большие воз- ZII просто запустит программу, не пытаясь ZII, «В Autopackage речь в основном идет о обеспечения можно можности: обычные (не супер-) пользова- установить соединение. работать легко. подготовке интегрированного дистрибутива, тели могут установить свое собственное ПО Вы можете подумать, что в Linux и так уже перемещаемых двоичных файлов, с такими (поместив его в свой домашний каталог), но хватает менеджеров пакетов, но ZII превосхо- инструментами, как apbuild, binreloc и relaytool. что произойдет, если программу попытаются дит их всех, вбирая лучшие черты и объеди- Zero Install не охватывает все эти моменты (мы установить два, три или более пользователей? няя их в одну функцию. APT заставляет вас просто предлагаем использовать инструмен- Ответ: ПО многократно скопируется в разные использовать файлы sources.list, Autopackage ты Autopackage), но предполагается, что у вас места на жестком диске, а это напрасный рас- не позволяет иметь несколько версий про- уже есть соответствующий двоичный архив, ход памяти. граммы на одном компьютере, Klik не поддер- готовый для распространения».

Консольный аудиоплейер Herrie Версия 1.8.1 Сайт www.herrie.info

се еще пользуетесь mpg123 для про- По умолчанию Herrie запускается с такими слушивания музыки? Позвольте LXF установками, что песни после воспроизведе- Впредставить вам кое-что поудобнее, ния удаляются из плей-листа, во избежание более подходящее для проигрывания плей- повторов. Если вас это не устраивает, прос- листов на вечеринках. Herrie – это медиа- то запустите Herrie с параметром -x, чтобы плейер, работающий из командной строки, перевести его в режим XMMS, и вы сможе- он позволяет легко находить и сортировать те использовать клавиши b и z для перехо- музыку в соответствии с вашими вкусами. да к последующему и к предыдущему тре- Его компиляция не очень-то легка, посколь- ку. (Регистр имеет значение, вы сразу это ку он проигрывает всевозможные звуковые заметите.) Приложения, лагает большим количеством клавиатурных форматы, которым требуются свои библио- работающие комбинаций для выполнения общих задач; теки. Если вы работаете в Ubuntu, то знайте, Простота эксплуатации из командной строки, некоторые из них отличаются в зависимости что мы добились лучших результатов, сперва Основной интерфейс Herrie разделен на две часто имеют от регистра. Например, r устанавливает режим установив зависимые пакеты: curl, libcurl3-dev, части: вверху вы видите композиции в плей- сложный интерфейс повтора, тогда как R добавляет функцию пользователя, libmodplug-dev, libncurses5-dev, libncursesw5- листе, а внизу – файловую систему, управлять рандомизации плей-листа (просто нажмите но Herrie стремится dev, libvorbis-dev, libsndfiledev, libmad0-dev, которой можно с помощью курсора. Чтобы “y” – «да» – по запросу). Кроме того, d удаляет к простоте libid3tag0-dev и libasound2-dev. У других дис- добавить песню или каталог в плей-лист, и удобству — песню из списка воспроизведения, а D удаляет трибутивов будут похожие имена пакетов, а просто нажмите a. и преуспевает в этом. все песни из плей-листа. Особо понравились может, даже библиотека XSPF – в Ubuntu ее Как любое порядочное приложение, рабо- нам функция поиска (наберите /, затем кри- нет. После установки библиотек мы выполни- тающее из командной строки, Herrie распо- терии поиска) и быстрая перемотка вперед- ли configure с флагом “no_xspf”, потому что назад (> и < соответственно), но, несомненно, эта библиотека не была установлена, а потом, «В Herrie, как в порядочном прило- лучшее свойство Herrie – то, что он почти не как обычно, выполнили make и make install от тратит ресурсы центрального процессора и имени суперпользователя, и Herrie был готов жении, работающем из командной оперативной памяти. Вы не найдете програм- к действию. строки, много горячих клавиш.» мы быстрее и легче этой.

Октябрь 2007 Linux Format 115 LXFHotPicks

Проверка Javascript JSCoverage Версия 0.2 Сайт www.siliconforks.com/jscoverage

рактика использования Wiki on a Как это работает Stick показывает, что большие при- JSCoverage – вполне стандартная двоичная Пложения JavaScript привлекают все программа (просто используйте ./configure, большее внимание. Фактически все кноп- make и make install для установки), но она ки «обновить-не-перегружая» на самых работает за счет вставки в JavaScript спе- популярных сайтах Web 2.0 работают на циального профилирующего кода, который JavaScript, а это означает, что крутая выде- затем отслеживается. Тестируя JSCoverage ленная линия высокоскоростного Интернета, перед включением его в HotPicks этого которой вы недавно обзавелись, уже насы- месяца, мы использовали JSHoldem (забав- щена тысячами строк кода JavaScript. Чтобы ный техасский вариант покера, см. HotPicks, пресечь раздувание объемов JS, разработ- LXF91). Для запуска программы применяется чики используют инструмент JSCoverage: он команда jscoverage input_dir output_dir, напри- следит за выполнением JavaScript-кода, а мер, jscoverage jsholdem jsholdem-profiled. Все затем сообщает, какие ветви кода исполь- файлы из каталога jsholdem cкопируются в зуются, так что вы точно знаете, что можно jsholdem-profiled (создаваемый автомати- подрезать. Он также полезен для выявления чески), а затем во все найденные сценарии случайных логических ошибок, где условное JavaScript будет добавлен специальный код. утверждение выполняется всегда (или никог- Естественно, следует использовать два раз- да), из-за путаницы в коде. личных каталога, потому что исходный код Все Обработав код, откройте ваш браузер и JavaScript модифицируется физически! неиспользуемые запустите file:///path/to/JSHoldem-profiled/ строки в вашем scoverage.html; вы увидите графический JavaScript-коде интерфейс JSCoverage. Введите путь к вашему отображаются основному HTML-файлу в поле URL, нажми- как ссылки — «Сделайте отдельный каталог для те кнопку Go, и он загрузиться в плавающее нажмите на одну окно. Повзаимодействуйте с JavaScript, сколь- результата, так как исходный код из них, и попадете прямо в нужную ко требуется, затем нажмите Summary, чтобы JavaScript будет модифицирован.» точку исходного узнать, какие именно строки были приведены кода. в действие. Анализ кода Работаем с JSCoverage Во вкладке Summary все неиспользованные строки кода будут показаны под заголовком Missing как ссылки, но для быстрого обзора смотрите Coverage percentage для каждого файла. Нажав на одну из ссылок под Missing, Браузер Это вид по умолчанию. вы перейдете к просмотру исходного кода, где Здесь можно запускать URL слева приписаны номера строк, а также коли- и взаимодействовать с вашим чество запусков каждой строки. приложением. Этот подсчет покажет вам, какие строки вообще не использовались (и можно заду- маться, не исключить ли их, или не нуждается Сводка ли ваш код в срочной переделке, чтобы они Обзор результатов, все-таки запускались в нужный момент), и вы показывающий, можете увидеть, какие ветви используются какая часть каждого скрипта чаще всего, а значит, являются первыми кан- была выполнена. дидатами на оптимизацию. Конечно, между количеством переходов к ветви и временем, Хорошо требуемым для ее исполнения, прямой свя- Зеленая цифра 8 означает, зи нет, но это все же некая подсказка, с чего что эта строка была запущена начать. 8 раз, и, возможно, ее стоит оптимизировать. Плохо Исходники Если вы серьезно занимаетесь JavaScript Красный 0 означает, что этот код Здесь можно видеть исходный и регулярно создаете скрипты на сотню-дру- вообще не запускался – код с показанным количеством гую строк, JSCoverage – для вас: это отличный нехороший признак обращений к строкам. инструмент углубленного анализа, способный для приложения. революционизировать отладку приложений.

116 Linux Format Октябрь 2007 LXFHotPicks

HotGames Развлекательные приложения 3D-имитатор Thunder & Lightning Версия 070710 Сайт http://tnlgame.net

гра Carrier Command была хорошим (define devices ‘(oss)) сочетанием воздушных, морских и Установив Автопакет, наберите tnl, чтобы И наземных боевых сражений; подоб- запустить игру. Обучающий режим поможет ных мы до сей поры не встречали. Thunder & взлететь, набрать высоту и приземлиться. Lightning (TnL), быстро развивающийся 3D- Думаете, просто? Мы сумели правильно имитатор с открытым исходным кодом, стре- приземлиться только с седьмой попытки, да мится перенять опыт Сarrier, но с обновлен- и то благодаря случайному везению! Жмите ной графикой и более агрессивным «искус- I, чтобы пропустить обучающий режим и ственным интеллектом». Все только начина- перейти прямо к игре; затем а, чтобы перей- Хотите бованная функция – многопользователь- ется, и вы иногда можете даже позлиться, со ти на ручной контроль, и 0 для перехода беспощадной ский режим. К сожалению, мне пока не хва- свистом проносясь по небу, но уже на данном к максимальной скорости – и вы в полете! пальбы? TnL тает ресурсов и знаний, чтобы его запустить. этапе разработки есть удачные достижения: Управление полетом состоит из движений осуществит вашу Помощь имеющих опыт в этой области при- установка, например, целиком идет через мышью (направление), стрельбы (левая мечту, и довольно шлась бы очень кстати!» реально! Autopackage, без всякой мороки. кнопка мыши – для стрельбы, правая – для Коль скоро ваша видеокарта поддержи- смены оружия) и клавиатуры, но все, что вам вает 3D, единственная потенциальная про- действительно понадобится – это клавиши блема – это OpenAL: если аудиокарта не сов- переключения скорости (1–0), посадочное «Миссии очень сложны, местима с ним, для отключения звука придет- шасси (L) и швартовочный крюк (K). Миссии ся потрудиться. После некоторых мучений, очень сложны, но и просто полетать вокруг и но и просто полетать – мы пришли к достаточно простому решению: пострелять по танкам и прочим целям тоже весьма забавно.» создайте файл .openalrc в вашем домашнем забавно. Создатель игры Йонас Эшенбург каталоге и вставьте следующее: [Jonas Eschenburg] говорит: «Самая востре-

Стрельба в космосе Slingshot Версия 0.8p Сайт www.slingshot-game.org

омните Gorrillas, старую MS DOS- жде чем они смогут выпалить в вас. Однако игрушку от IBM? Две огромных на траектории выстрела находятся планеты Пгориллы, стоя на башнях, кидались разных размеров, и их гравитация воздейс- друг в друга разрывными бананами, пока твует на луч, так что целиться нужно очень одна из них не погибала? Вам нужно было тщательно. Стрелка «вверх» добавляет выбрать силу и угол для броска, в надеж- мощи выстрелу; но, задав эту мощь с пере- де, что ваши бананы попадут в соперника бором, вы рискуете пробить свою мишень или, по крайней мере, взорвут его укры- насквозь, и луч вашего лазера вернется по Коллега LXF – вычитается «штраф», зависящий от мощи тие. Играть было довольно весело; Slingshot кругу на вас самих. журнал PC Format – выстрела, чтобы поощрить игроков исполь- добавляет новый блеск этой идее, делая ее Slingshot – не одно лишь уничтожение наслаждается игрой зовать более слабые выстрелы, искусно экс- покруче, чем раньше: Gorrillas вернулась, и друзей и коллег в звездной войне: очки так- с открытым плуатируя силы гравитации, с целью набрать на сей раз – с гравитацией! же выставляются за стиль и за скорость. То исходным кодом максимум очков. и элементом есть, к 1500 очкам за поражение цели может Понятно, что Slingshot – игра не для мыс- гравитационного прибавиться величина еще до 500 очков, лителей, но она доставляет массу удоволь- Стрельба бананами безумия. Игра Slingshot разворачивается в космосе, если вы попали с первых трех раз. Зато ствия от серий коротких очередей, особенно где два межпланетных корабля с мощны- если у вас живой противник. В версии 1.0 ми лазерными пушками жаждут уничтожить «Эксплуатировать силы обещан многопользовательский режим, и друг друга. Управление: стрелки курсора это было бы здорово. Но также предполага- для наведения и придания ударной силы, гравитации, с целью ется переписать код на C++, что уже кажется и пробел для залпа. Ваша миссия: засекать малость сомнительным! все, что шевелится, и палить по гадам, пре- набрать максимум очков.»

Октябрь 2007 Linux Format 117 LXFHotPicks

Инструменты SELinux Segatex Версия 3.04 Сайт www.sourceforge.net/projects/segatex

сем известно, что безопасность – дело работчика Qt и . После этого вы може- хорошее, и программное обеспечение, те просто использовать RPM для установки Вулучшающее безопасность без особых Segatex. При желании попробовать его на дру- для вас неудобств, является особенно ценным. гих дистрибутивах (SELinux можно использо- Для пользователей Fedora, SELinux – один вать под Debian, но «из коробки» он для этого из программных продуктов переднего края не сконфигурирован), нужно компилировать борьбы со злоумышленниками, но также и исходный код. Я запускал сборку на несколь- последнее слово в «непознаваемости» поль- ких дистрибутивах и каждый раз обнаруживал зовательских интерфейсов: она «просто рабо- ошибки компиляции, но их, как правило, было тает», и горе тем, кто пытается понять, как. легко исправить в Makefile, добавив это в GUI Segatex силу. В закладке File Context можно просмот- Однако если уж вы системный администратор, конец строки, отмеченной LIBS: использует цвет, реть и изменить регулярные выражения, кото- то обязаны понимать принципы ее работы. -lselinux -lboost_regex чтобы было легче рые SELinux использует для привязки контек- Представляем вам Segatex: это крошечная Запустив Segatex (вы должны быть супер- запомнить, какие ста к файлам, и сразу же увидеть результаты, программка, призванная облегчить редакти- пользователем), приступайте к редактирова- кнопки безопасно нажав на голубую ls- laZ кнопку. нажимать. Будьте рование политик SELinux и объединяющая нию файла my_policy, по нажатию оранжевой Имейте в виду, что SELinux – система осторожны! целый ряд других инструментов SELinux. кнопки. Изменения можно добавлять в ниж- очень сложная, и даже Segatex не отменяет ней части панели, а когда вы закончите, жмите необходимости понимать принципы ее рабо- Легче, но не легко на розовую кнопку, чтобы изменения вошли в ты. Более того, любые сделанные вами изме- Чтобы сделать SELinux простым в исполь- нения применяются к системе в целом, так зовании, требуется умеренной степени чудо, что зря по кнопкам не стукайте! И последнее: но Segatex, по крайней мере, делает его чуть «Segatex не отменяет по нажатию на желтую кнопку Autorelabel все более управляемым. В Fedora, единственном, необходимости понимать ваши файлы при перезагрузке будут марки- помимо RHEL, дистрибутиве, полезном для роваться заново, а это процесс длительный; Segatex, нужно установить библиотеки раз- работу SELinux.» лучше оставить эту кнопку в покое.

Клиент BitTorent Bitswash Версия 0.0.1 Сайт www.bitswash.org

ткрытый исходный код делает серь- ся загрузка. Используя официальный клиент езные заявки, и Bitswash вам это BitTorrent, я часто сталкивался с проблема- О докажет. Взгляните на номер вер- ми – он не дружил с моим брандмауэром; а сии: всего лишь 0.0.1. Тем не менее Bitswash – Bitswash автоматически выбирает нужные пор- сказочно быстрый BitTorrent-клиент со мно- ты, и сроду не беспокоил меня сообщениями. жеством функций прямо из коробки. Чтобы Интерфейс пользователя чрезвычайно прост: достичь такого уровня в первом релизе, в верхней половине – информация о про- Bitswash был построен на базе wxWidgets грессе закачки, нижняя – разбита на вкладки (libwxgtk2.8 -dev, если у вас Ubuntu), а также с информацией. Я думаю, вам больше всего Управление пределение можно даже выставить процен- библиотек C++ Boost (в частности, DateTime, понравится вкладка Peers, где Bitswash авто- вашими закачками товку. Однако есть пара подводных камней: Fileszstem, Serialiyation, Thread и Regex), но матически распознает географию IP-адресов под Linux никогда не рассчитывайте найти ссылки на Bitwave, не других зависимостей нет. Имея все это, вам и, где возможно, выставляет миниатюрные было столь простым. ожидайте, что заработает функция минимиза- нужно лишь выполнить ./configure, make и флажки стран, что довольно мило и показы- ции в системный лоток, и, безусловно, будьте make install, в чем вы не раскаетесь: Bitswash вает, как разросся охват BitTorrent. готовы к эпизодическим зависаниям програм- требует очень мало системных ресурсов и Как и полагается нормальному инстру- мы; но это не особая проблема, так как после обладает всеми преимуществами многих дру- менты обмена файлами, Bitswash позволяет перезапуска приложения все пересылки про- гих клиентов BitTorrent. оценивать скорость скачки и закачки в Kbps; должатся с того же места. при желании обеспечить справедливое рас- И ведь это только начало – это самый пер- Легкий и красивый вый альфа-релиз, а он уже выглядит круто. Bitswash показывает, сколько всего мож- Пока Bitswash остается быстрым и легким, его но сделать, не пожирая сотен мегабайт ОЗУ. «Bitswash распознает ждет яркое будущее – испытайте его! Для добавления торрента из URL достаточно страну IP-адреса и нажать Ctrl+U, затем ввести URL; он сразу же оперативно отслеживается, и начинает- показывает ее флаг.»

118 Linux Format Октябрь 2007 LXFHotPicks

Сканер Также выпущены WeedIt Новые и обновлённые программы, заслуживающие вашего внимания... Версия 2.0 Сайт http://adm1n.cjb.net/cw shUnit 2.0.3 Unit-тесты для оболочек еликолепная программа, помогающая WeedIt не особо сложен; если вы столкне- типа Bash http://forestent.com/projects/shunit2 уменьшить захламленность жесткого тесь с проблемой, попробуйте readdb (идет в Не получается диска: она сканирует папки на наличие комплекте с WeedIt). Чтобы собрать эту ути- В с определением Ultimate++ 707-dev1 Кросс- платформенный RAD для C++ дубликатов файлов, а затем сохраняет все литу, перейдите в каталог utils и запустите повторяющихся www.ultimatepp.org свои выводы в базу данных для последующей команду gcc -o readdb readdb.c. Затем запус- файлов? Попробуйте проверки. тите readdb ../weedit.dat (указав, где находится readdb, утилиту gtkpod 0.99.10 Поддержка iPod для GTK Для каждого обнаруженного файла WeedIt ваш файл .dat), и readdb распечатает все фай- WeedIt, и поймете, www.gtkpod.org подсчитывает хэш-сумму MD5, по простому лы в кэше, а также их суммы MD5. в чем проблема. Mesk 0.3.2 Аудиоплейер на языке Python математическому алгоритму, генерирующему http://mesk.nicfit.net уникальные (с высокой вероятностью) иденти- фикаторы данных. Эта хэш-сумма затем сохра- Taffy 0.57 Увлекательный язык скриптов, по типу Ruby няется и сравнивается с другими найденными http://freshmeat.net/projects/taffy-lang WeedIt хэш-суммами – именно так опреде- ляются дубликаты. Иногда бывают ложные EasyTAG 2.1.2 Легкий в использовании тревоги: WeedIt, похоже, не слишком хорошо редактор метаданных для музыкальных файлов http://easytag.sourceforge.net справляется с символическими ссылками, так что не спешите удалять все, что она объявит лишним! Чтобы установить WeedIt, извлеки- те ее из архива и запустите make в каталоге WeedIt. Для работы программы нужно указать ей каталог, где сканировать; команда weedit ~ просканирует ваш домашний каталог. При каж- дом нахождении дубликатов файлов они будут добавляться в кэш, и программа не будет воз- вращаться к ним снова. Если вы хотите начать с нуля, просто удалить файл кэша weedit.dat. Интерфейс EasyTAG требует привычки, но содержит множество информации.

pretendroot 0.9 Одурачьте вашу Календарь-планировщик файловую систему: пусть она думает, что вы суперпользователь ftp://ftp.uhulinux.hu/pub/sources/pretendroot Day Planner TnFOX 0.87 Инструментарий GUI для C++ и Python www.nedprod.com/TnFOX

Версия 0.7.1 Сайт www.day-planner.org Bacula 2.1.26 Резервное копирование, сохранение, восстановление – в одной отличие от больших приложений типа Day Planner, вы будете автоматически опове- посуде www.bacula.org Evolution, Day Planner не делает попы- щаться о предстоящих событиях и сможете Как и все хорошие ток отслеживать сообщения, интегри- экспортировать свой календарь в ICS-файл, MyRPM 4.36 Создание RPM без хлопот В приложения под Unix, http://code.google.com/p/myrpm роваться с вашим IM-клиентом, читать RSS- который легко синхронизируется с онлайн- Day Planner делает каналы и т.д. – это простой небольшой кален- календарями и даже с вашим телефоном, одну простую Crossroads Load Balancer 1.51 дарь с малым количеством зависимостей, с если он поддерживает этот стандарт. Вот и задачу, и делает Балансировка нагрузки для серверов http://crossroads.e-tunity.com ходу понятный всем знакомым с основными все: никаких лишних наворотов. LXF очень хорошо. интерфейсами Gnome. TEA for Linux 17.0.1 Текстовый редактор, Day Planner поставляется как уже ском- с упором на HTML пилированный .run-файл. Запустите sh http://tea-editor.sourceforge.net dayplanner-0.7.1.run, но не как суперпользова- тель: Day Planner автоматически устанавливает- ся в домашний каталог, и если вы будете уста- навливать его из-под root, то только root будет иметь к нему доступ! После установки должен появиться ярлык на рабочем столе, но у нас этого ни разу не получилось. Вместо этого, найдите папку .local в домашнем каталоге (по умолчанию она скрыта), а затем перейдите к .local/share/dayplanner и запустите dayplanner. При первом запуске событий в Day Planner TEA справляется с разметкой не содержится; введите их через меню Edit > Wikipedia и даже может преобразовать Add An Event или Ctrl+A. Day Planner позволяет текст в азбуку Морзе! задать тип добавляемого события. Запустив

Октябрь 2007 Linux Format 119 LXFDVD97 Не с одним, не с двумя, а с четырьмя дистрибутивами! Человек-оркестр В конце 1990-х, когда Linux столкнулся с са- ты дистрибутивов сильны как никогда. Многие мыми первыми проявлениями коммерциали- полагали, что коммерциализация Linux станет зации, сообщество Open Source хмурило бро- последним звонком для дистрибутивов, со- ви. Не испортится ли Linux из-за бизнеса? здаваемых малыми группами – у них просто Согласятся ли коммерческие предприятия на- не хватит ресурсов и рабочей силы для конку- править эту ОС на рискованные проекты? И ренции. Однако произошло все в точности на- нужны ли нам оплачиваемые программисты с оборот: корпорации-миллионеры плодят но- полной занятостью? Linux развивался и завое- вый код для проектов под GPL, а крошечные вывал уважение во всем мире; но некоторым дистрибутивы в состоянии сами вносить эти разработчикам по-прежнему казалось, что изменения. наша ОС должна основываться исключитель- Вот почему Slackware по-прежнему популя- но на усилиях сообщества. рен и силен сегодня. Хотя он почти полностью Майк Сондерс Прошло десять лет, и эти страхи преврати- создан одним-единственным человеком, любовно подбирает лись в воспоминания. В целом, такие ком- Патриком Фолькердингом [Patrick Volkerding], содержимое диска Linux пании, как Red Hat, Novell и IBM, придали все фанаты Slackware могут пожинать урожай Format, а также Linux новое ускорение, добавляя новые от трудов компаний Linux. Если Red Hat добав- поддерживает сайт www. функции и технологии, чтобы вывести ляет какую-то крутую функцию в GCC, для linuxformat.co.uk. ОС на уровень «продукта корпоратив- Slackware это тоже выгодно. Это ситуация, ного уровня». Лицензия GPL гаранти- когда выигрывают все, и (по крайней мере, на ровала, что никакие безответствен- данный момент) сообщество и коммерческий ные действия не повредят проекту и лагерь гармонично сосуществуют. Если, ко- что никакая компания не станет мо- нечно, исключить SCO... нопольным поставщиком Linux. [email protected] Но лучше всего то, что мелкие проек-

Шаг за шагом: Устанавливаем MOPS Linux 6.0

1 Загрузка 2 Приступаем Загрузите ваш ПК Войдите в систему Xxx 2006 Linux Format 12 0 с LXF DVD как root и введите в приводе, setup для запуска и появится этот программы экран. Нажмите установки. Если вам Enter для загрузки больше по душе ее ядра по умолчанию старый вариант, или введите одну используйте из предлагаемых setup.old. опций.

5 Форматиро- 6 Пакеты вание Выберите установку Выберите одну с набора CD/DVD, тип из предложенных инсталляции (ПК, файловых систем, сервер, базовая и программа система или полная отформатирует для инсталляция) и перед вас корневой раздел. вами появится это При необходимости меню. Затем укажите можете пропустить нужную группу и, при этот этап, выбрав необходимости, последнюю опцию отредактируйте в списке. список пакетов.

120 Linux Format Октябрь 2007 MOPSLinux 6.0 DVD

Дистрибутив Linux MOPSLinux 6.0 OPSLinux, разработка отечествен- с версии 6.0, в его состав входит собствен- ного НПО «Сеть», базируется на ная система управления пакетами – mpkg. В MSlackware – одном из самых чис- отличие от Slackware, весьма консерватив- тых дистрибутивов в мире. Начиная с само- ного в данном вопросе, mpkg идет в ногу го первого релиза в 1993 году, Slack (как со временем: здесь есть и контроль зави- его называют) приобрел верных поклон- симостей, и их автоматическое разрешение, ников, которые ценят его приверженность поддерживается работа со множественными философии KISS (Keep It Small and Simple – репозиториями – и все это при сохранении Оставаться Небольшим и Простым), которая совместимости с форматом .tgz, принятом в действует согласно своему названию: отверга- Slackware! Любителей собирать недостающее ет украшательские навороты, сохраняя струк- ПО из исходных текстов порадуют консольные туру дистрибутива простой для понимания. и графические утилиты для создания соб- Поэтому программы для MOPSLinux/ ственных пакетов. Slackware, как правило, идентичны с исход- Впрочем, одним mpkg дело не ограничива- пании Инфра-ресурс), Lazarus 0.9.22, Qt 4.3.1, Экран входа в ными версиями, т.е. с версиями оригинальных ется. Скажите, где вы видели Slackware с трех- PostgreSQL 8.2.4, система символьных вычис- систему выглядит разработчиков (или крайне близки к ним) – в мерным рабочим столом прямо из коробки? А лений Maxima с графическим интерфейсом стильно – но это еще не повод противоположность Ubuntu, Fedora, OpenSUSE здесь – пожалуйста: Beryl 0.2.1 встроен в сис- wxMaxima и редактором TeXmacs, а также использовать и их дружкам, где в пакеты добавляют заплат- тему, необходимо только доустановить драй- различные инструменты для работы с вирту- учетную запись root. ки ради включения новых функций и под- вера к вашей видеокарте из раздела Главное альными частными сетями (VPN): OpenVPN стройки программ к специфике дистрибутива. нашего DVD. 2.0.9, PPTP Client 1.7.1, Kvpnc 0.8.9. Конечно, иногда это и полезно, но если вы В отличие от оригинального Slackware, MOPSLinux – неплохой выбор для старых хотите быть уверены, что получили «чистый» который часто ругают за ограниченную под- машин, поскольку его текстовый инсталля- продукт от разработчика, да еще и с очень борку пакетов, MOPSLinux поставляется с куда тор нетребователен к памяти: чтобы превра- качественной русификацией и локалью UTF-8, более богатым набором ПО. В состав версии тить какой-нибудь Pentium-II в небольшой выбирайте MOPSLinux. 6.0, базирующейся на Slackware 12.0, входят: сервер, достаточно 128 МБ ОЗУ и 1 ГБ на Однако считать MOPSLinux русифициро- ядро 2.6.22.1, gcc 4.1.2, X.Org 7.3, KDE 3.5.7, диске. Однако для полной установки потре- ванным Slackware было бы ошибкой. Начиная OpenOffice.org 2.2.1 Professional (сборка ком- буется 7 ГБ.

3 Разметка 4 Меню Используйте стрел- В главном меню ки курсора для из- инсталлятора менения уже имею- выберите пункт под щихся разделов и/ номером 1, а затем или создания но- укажите раздел вых. Вам понадо- подкачки, бятся раздел Linux созданный на и раздел подкачки. предыдущем шаге. Запишите таблицу Проделайте то же разделов на диск и самое и для выходите. корневого раздела.

7 Установка 8 Окончание Проверьте Инсталлятор правильность скопирует файлы введенных данных и задаст вам еще и, если все выглядит несколько вопросов хорошо, смело по настройке, жмите Да, чтобы например, начать установку. предложит задать пароль администратора. После этого ПК будет перезагружен (не забудьте извлечь DVD) – и готово!

Октябрь 2007 Linux Format 12 1 DVD Zenwalk 4.6

Дистрибутив Linux Zenwalk 4.6 Core & Live анее известный как Minislack, Zenwalk (www.zenwalk.org) уже три года нахо- Исследуем рабочий стол Zenwalk Рдится в стадии серьезной разработки, основываясь на зрелом фундаменте Slackware Панель и помаленьку добавляя графический интер- Здесь находится панель фейс пользователя; на момент написания ста- задач, где можно Рабочее переключаться с одной тьи он занимает достойное уважения 15-е мес- пространство работающей программы Нажмите любой из то в рейтинге DistroWatch. на другую. четырех Разработка Zenwalk преследует три основ- квадратиков – и ные цели: быть современной, быстрой и раци- Меню перейдете на ональной, что очень напоминает основную Щелкните правой кнопкой другой виртуаль- идею Ubuntu с одной-двумя программами для мыши по рабочему столу, ный рабочий стол. каждой конкретной задачи. Slackware предо- чтобы вызвать меню ставит вам триллионы опций, а Zenwalk огра- программ Zenwalk. Thunar Это – файловый ничивается одним или двумя яркими примера- Док менеджер Xfce, ми каждого программного жанра. На этой панели можно заменивший Xffm, Ключевое слово здесь – производитель- размещать значки запуска который ность: рабочий стол Xfce означает значитель- программ и небольшие использовался в но меньшую тяжеловесность, чем исполь- апплеты. прошлых релизах. зование по умолчанию Gnome или KDE. Скомпилированный с оптимизациями для Pentium II, он отлично работает на современ- дистрибутив с набором консольных прило- зы дисков, которые нужно записать в загру- ном оборудовании, но также совместим и с жений; пригодится в качестве фундамента жаемом формате. Копировать файлы на CD 486. Системные требования ограничиваются для собственной разработки); версия Live, не надо; запишите их именно как образы. скромными 128 MБ ОЗУ и 2 ГБ на жестком работающая непосредственно с CD, и сервер- Например, при работе в K3b зайдите в меню диске. ная Server Edition. Редакции Standard и Server Tools и выберите ‘Burn CD Image...’ Имеются четыре редакции Zenwalk: стан- были у нас на диске два месяца назад, а сегод- После загрузки Zenwalk Live вы увиди- дартная Standard Edition; Core Edition (базовый ня мы хотим представить вашему вниманию те рабочий стол Xfce, основные элементы Core и Live. которого показаны на рисунке вверху. По Итак, Zenwalk – отличный, скоростной умолчанию вы входите в систему как поль- настольный дистрибутив с хорошим выбором зователь one; если вам зачем-либо потребу- самого свежего ПО. Рекомендуем его тем, кто ются права root, используйте пароль 'ZenLive' хочет приобщиться к подходу Slackware, но (регистр важен). Дистрибутив поддержива- ищет нечто попроще, а также тем, у кого есть ет множество загрузочных параметров (cheat безработные старые машины, которым не по codes) – подробности можно найти в руко- силам тяжесть Fedora. водстве пользователя, ярлык которого (User Zenwalk представлен на нашем дис- Guide) расположен прямо на рабочем столе. ке в форме ISO-образов. Зайдите в раздел Например, чтобы заставить Zenwalk говорить Дистрибутивы/Zenwalk нашего DVD, и вы уви- по-русски, достаточно нажать клавишу Tab дите там файлы c названиями zenwalk-core- при появлении экрана загрузчика и изменить ZenLive включает в себя подробное 4.6.iso и zenwalk-live-4.6.iso – это и есть обра- lang=en_US на lang=ru_RU. руководство пользователя. Шаг за шагом: Запускаем Zenwalk 4.6 Live

1 Прожиг 2 Загрузка диска Возьмите Запишите ISO-образ свежезаписанный CD-R Zenwalk Live раздела и загрузите компьютер Дистрибутивы на CD- с него. Опции загрузки R. Для этого можно по умолчанию должны использовать K3b быть нормальными, (в KDE) или но в случае проблем, GnomeBaker нажмите F2 на экране (в Gnome). Если вы загрузки, чтобы видеть умеете работать с ко- подробности мандной строкой, ис- происходящего; пользуйте cdrecord. полезные советы найдутся на форумах http://support.zenwalk.org.

122 Linux Format Октябрь 2007 ALT Linux 4.0 Personal Desktop DVD

Дистрибутив Linux ALT Linux 4.0 Personal Desktop

ывают дни, когда наш редакционный антами запуска осуществляется с помощью ящик просто раздувается от писем с графического меню. Установка ALT Linux Бпредложениями «выложить ALT на 4.0 Personal Desktop возможна не только диске ближайшего номера». Спешим обра- на выделенный компьютер, но и в качестве довать наших респондентов – ваши просьбы второй операционной системы на свободное были нами услышаны, и на второй стороне место раздела, не занятое файлами операци- DVD этого месяца с комфортом разместился онной системы Microsoft Windows. ALT Linux 4.0 Personal Desktop. Этот отечест- Для того, чтобы пользователь не запутал- венный дистрибутив предназначен для офис- ся в массе однотипных приложений, в дан- ного и домашнего применения, поэтому раз- ную операционную систему собраны толь- работчики постарались предоставить пользо- ко наиболее популярные пакеты, благодаря вателю возможность решать обычные задачи чему основное меню не перегружено и поз- в удобном окружении. Операционная система воляет легко ориентироваться среди разде- укомплектована пакетом офисных приложе- лов и программ. Оформление рабочего стола ний OpenOffice.org, позволяющим работать с выполнено в спокойном стиле; отдельное документами как в открытом формате ODF, спасибо можно сказать разработчикам за так и в формате Microsoft Office. Широко качественную подборку шрифтов. Для управ- ALTerator позволяет легко настроить основные параметры системы. представлены средства работы в Интернете, ления пакетами предусмотрена программа программы для работы с векторной и растро- Synaptic, автоматически разрешающая зави- Документация вой графикой, мультимедиа, словари и обу- симости. Отличительной чертой ALT Linux 4.0 чающие программы. Для запуска Windows- Personal Desktop является наличие проприе- Статьи в формате PDF приложений в среде Linux предлагается пакет тарных видеодрайверов, подключаемых уже Wine. Дистрибутив отличается невысокими на стадии установки операционной системы, В этом месяце предлагаем ваше- требованиями к оборудованию и облада- а также почти всех необходимых кодеков для му вниманию впечатляющую коллекцию Сравнений из преды- ет полноценной локализацией, значительно воспроизведения музыки и видео. дущих выпусков LXF, она помо- облегчающей освоение операционной систе- жет вам подобрать самые подхо- мы пользователями с малым опытом рабо- дящие программы для работы и ты на компьютере. В числе новинок можно отдыха. Зайдите в раздел отметить появление программы ALTerator, Журнал/PDF на DVD и загрузите Надоел Freshmeat ? Наши позволяющей осуществлять управление сис- index.html, где вы увидите 10 пол- PDF помогут подобрать темой и изменять большинство популярных ных статей в формате PDF* – их приложения получше. настроек в удобном графическом режиме. можно прочесть, используя Kpdf Также впервые на одном DVD-носителе объ- в KDE или Evince в Gnome. (Если единилось сразу три версии данного про- у вас не установлена программа пиляторов C/C++. В первом мы для чтения PDF, поищите в граммного продукта: помимо установочного рассматриваем пакеты-гиганты, менеджере пакетов Xpdf – это типа Eclipse и JBuilder, сравнивая комплекта на здесь представлен LiveCD и небольшая и быстрая програм- свободные IDE с их коммерчес- восстановительный диск. Выбор между вари- мка для чтения, имеющаяся в кими, закрытыми конкурентами. каждом дистрибутиве.) Наше Сравнение C/C++ – один из Для начала, web-браузеры: самых глубоких в техническом программы, приобщающие или отношении материалов: Бьяджо отвращающие вас от Интернета. Лучини [Biagio Lucini] подвергает Многие из нас, единожды выбрав GCC, ICC, Tendra и прочих бес- 3 Работа себе браузер, уже не меняют его, численным тестам. GCC является но ведь это – быстро развиваю- Подождите, пока за- фактическим стандартом компи- щая область, и всегда есть смысл пустится рабочий лятора для GNU/Linux, но означа- познакомиться с другими проек- стол Xfce и наслаж- ет ли это, что он – лучший? тами. Кроме того, хотя некото- дайтесь комфорт- Кроме того, у нас есть скрупу- рые браузеры, например, Firefox ной рабочей средой. лезные LXF-Сравнения файло- и Konqueror, отлично работают Меню для запуска вых менеджеров, движков для на современных машинах, иног- приложений доступ- блогов, DVD-плейеров, Live-дис- да нужно что-то менее требова- но по правому щел- трибутивов и X-терминалов. Если тельное (например, если вы за- чку мышью. вы любитель звездного неба, не ходите на сервер без Х). Поэтому пропустите наш тест астрономи- в нашем Сравнении нашлось ческих программ с открытым ко- место и для парочки текстовых дом, среди которых потрясаю- браузеров. щий исследователь вселенной Если вы программист, не про- Celestia. пустите обзоров IDE Java и ком- * Частично на английском языке.

Октябрь 2007 Linux Format 12 3 DVD Новые релизы

Прочее ПО Новые релизы

осле Ubuntu, вынесенного на облож- Dashboard Widgets из OS X и Vista Gadgets книги и т.п. Вообще говоря, он годится прак- ку журнала, поклонники KDE могут из Windows, Plasmo’иды KDE 4 – это неболь- тически для любого вида коллекции. Если вы П почувствовать себя обделенными. шие программки, которые можно скинуть на собираете, допустим, крышечки от йогурта, и Но не бойтесь: у вас тоже есть возможность рабочий стол, чтобы они показывали, напри- GCStar вам помог, пришлите снимок экрана на заглянуть в будущее через второй промежу- мер, прогноз погоды, биржевые котировки [email protected], самые забавные мы точный релиз грядущего KDE 4. На DVD про- или ссылки на словари. Пользователи KDE, опубликуем в следующем выпуске! Программа шлого месяца был Live-дистрибутив, загру- которые раньше баловались с SuperKaramba, написана на Perl, и вы можете установить ее, жавший KDE 4 Beta 1 – в нем хватало ошибок, найдут в них довольно большое сходство. распаковав файл gcstar-1.2.2.tar.gz и запустив и все же он давал неплохие шансы оценить, Еще одно крупное изменение – интеграция скрипт ‘install’ (от имени суперпользователя) в что нас ждет. В этом месяце мы предлагаем Системных Настроек [System Settings], заме- получившейся директории. полный исходный код ко второму бета-релизу, нивших старый добрый Центр Управления KDE Если вас одолел спам, зайдите в раздел наглядно показывающий, насколько разработ- [Control Center]. Пока они выглядят несколько Сервер поглядеть на Mail Avenger, почтовый чики KDE продвинулись вперед. голыми, но по завершении работ навигация сервер, гоняющий ваши сообщения по всевоз- Beta 2 распространяется в виде исходных в них будет легче (будем надеяться), чем в можным фильтрам, чтобы вычистить мусор. В текстов, так что вам придется самостоятель- KControl. сочетании с ClamAV, он также может удалять но собрать для него двоичные пакеты. Это Итак, если хотите увидеть все эти новшест- вирусы из электронной почты – для линуксо- довольно суровая задача; если раньше вы этим ва в действии, ныряйте в код и компилируйте. идов это, может, и не очень актуально, но все не занимались, возможно, стоит сперва потре- Рекомендуем запастись парочкой гигов сво- же полезно, если ваш почтовый сервер име- нироваться на программах поменьше с нашего бодного места на диске, поскольку в процес- ет дело с пользователями Windows. Также в диска (например, с XChat в разделе Интернет). се компиляции будут создаваться временные разделе Сервер есть Bftpd, полезный неболь- Освоившись с компиляцией исходного кода, файлы, и было бы неплохо создать вторую шой FTP-сервер, почти не нуждающийся в можете заняться и KDE 4, следуя руководству учетную запись пользователя, как описано настройке. Если вам надо скинуть файлы с build_instructions.html, которое поставляется в руководстве. Если вы этого не сделаете, одной машины на другую, но неохота тратить вместе с tar-архивом. Естественно, для этого настройки KDE 4 могут затереть ваши соб- вечность на настройку SSHD для SCP, эта про- вам понадобятся соответствующие инстру- ственные настройки KDE, и когда вы снова грамма легко и быстро вас выручит. менты – точные наименования зависят от вернетесь к KDE 3, начнется путаница. В зави- И, наконец, все программисты долж- дистрибутива, но вам потребуется компонент симости от скорости вашей машины, ком- ны познакомиться с Highlight в разделе G++ из GCC вместе с библиотекой и заголовоч- пиляция может занять несколько часов – но Разработка. Эта полезная утилита конверти- ными файлами Qt (см. раздел Разработка). вам незачем надзирать за всем процессом. рует исходный код аж из 120 языков в красоч- Найдите в менеджере пакетов GCC и устано- Можете выпить кофейку! ные страницы HTML, и даже имеет поддерж- вите также и его зависимости; затем следуйте ку Ассемблера x86. О большем и мечтать не руководству, при необходимости цепляя недо- Рождение звезды приходится! стающие зависимости. Краткий обзор прочих интересных программ Самое потрясающее обновление в KDE 4 – на диске: GCStar в разделе Рабочий стол – пре- это Plasma, новая оболочка рабочего сто- восходный менеджер коллекций, он поможет И напоследок… ла, активно использующая апплеты. Подобно вам организовать ваши видео, музыку, CD, Можно отлично развлечься с помощью SuperTuxKart в нашем разделе Игры. Это расширенная версия TuxKart (вдохновленная Super Mario Kart) с целой галереей персонажей, новыми игроками, трассами и программами AI – выглядит весьма презентабельно. Чтобы начать игру, скопируйте файл .tar.bz из дирек- тории игры в домашнюю директорию, затем откройте терминал и введите: tar xfvj supertuxkart-0.3-linuxi486.tar.bz2 cd supertuxkart-0.3-linuxi486/ ./run_game.sh В открывшейся директории прочитайте файл README, это инструкция по управлению. Поклонникам ролевых игр старой школы времен NES предлагается Monster – говорят, что на игровой процесс здесь уходит 5–10 часов от начала до конца. А если вы любите The Beautiful Game, дайте шанс Bygfoot – это имитатор футбола, у него как раз вышел релиз 2.2. LXF

Проложите путь, огибая банановые кожурки Doom™ в SuperTuxKart.

Организуйте свою коллекцию игр/книг/видео/марок/бабочек с помощью GCStar.

124 Linux Format Октябрь 2007 DVD

Информация о диске ЧТО-ТО ПОТЕРЯЛИ? Часто случается, что новые программы зависят от дру- гих программных продуктов, которые могут не вхо- дить в текущую версию вашего дистрибутива Linux. Мы стараемся предоставить вам как можно больше важных вспомогательных файлов. В боль- шинстве случаев, последние версии библиотек и другие пакеты мы включаем в каталог «Essentials» (Главное) на прилагаемом диске. Поэтому, если в вашей системе возникли проблемы с зависимостя- ми, следует заглянуть именно туда. ФОРМАТЫ ПАКЕТОВ Мы стараемся включать как можно больше раз- личных типов установочных пакетов: RPM, Deb или любые другие. Просим вас принять во внимание, что мы ограничены свободным пространством и доступными бинарными выпусками программ. По возможности, мы будем включать исходные тексты для любого пакета, чтобы вы смогли собрать его самостоятельно. ДОКУМЕНТАЦИЯ На диске вы сможете найти всю необходимую информацию о том, как устанавливать и использо-

ВНИМАТЕЛЬНО ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ DVD-ДИСК ! ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ ВНИМАТЕЛЬНО вать некоторые программы. Пожалуйста, не забы- вайте, что большинство программ поставляются вместе со своей документацией, поэтому дополни- тельные материалы и файлы находятся в соответ- ствующих директориях. ЧТО ЭТО ЗА ФАЙЛЫ? Если вы новичок в 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 – версия для разработчиков.

Если диск не читается... Это маловероятно, но если все же прилагаемый к журналу диск поврежден, пожалуйста, свяжитесь с нашей службой поддержки по электронной почте: [email protected]

Декабрь 2006 Linux Format 125 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

126 Linux Format Декабрь 2006 Содержание DVD

Содержание DVD

ЖУРНАЛ Answers ...... Файлы из раздела Ответы. Mono ...... Код примеров статьи. Java EE ...... Файлы к уроку Java. PDFs ...... Статьи предыдущих LXF Python...... Код из урока по Python Ника Вейча.

РАБОЧИЙ СТОЛ GCstar ...... Менеджер коллекций. GnuCash ...... Персональный финансовый менеджер. K3b ...... KDE-приложение для прожига CD/DVD. KDE ...... Среда рабочего стола. Kino ...... Цифровой редактор видео. MuseScore ...... Программа записи музыки для KDE (см. картинку). Parcelle ...... Менеджер буфера обмена. PyRenamer ...... Программа массового переименования файлов. Rubrica ...... Адресная книга. TEA ...... Супермощный текстовый редактор. themonospot ...... Анализатор видеофайлов. Ананас ...... Свободная учетная платформа.

РАЗРАБОТКА Про себя мурлыкаете мелодию? Запишите ее eyeD3 ...... Модуль Python с помощью MuseScore. для обработки тэгов ID3. Gaphor ...... Инструмент моделирования UML. Highlight ...... Программа форматирования исходного кода. Mono ...... Открытая реализация .NET MonoDevelop ...... Интегрированная среда разработки C#. Qt ...... Среда разработки приложений. HOTPICKS СЕРВЕР Bitswash ...... Кросс-платформенный Bftpd ...... Быстрый FTP-сервер. ДИСТРИБУТИВЫ клиент BitTorrent. ClamAV ...... Антивирусный набор инструментов. ALT Linux ...... Настольная ОС от российского Day Planner ...... Менеджер календаря. Dovecot ...... Надежный IMAP-сервер. производителя (сторона 2) Herrie ...... Музыкальный плейер GTKO...... Интерфейс базы данных Oracle. MOPS Linux ...... Отечественный дистрибутив командной строки. Mail Avenger ...... SMTP-демон против спама. на базе Slackware. JSCoverage ...... Программа проверки Zenwalk Live ...... Дружелюбная к пользователю работы JavaScript. ГЛАВНОЕ система на CD. Segatex ...... Инструмент SELinux. ATI driver ...... Графический драйвер. Slingshot ...... Космическая стрелялка. Bash ...... Оболочка командной строки. ИГРЫ Thunder and Cairo ...... Библиотека двумерной графики. Bygfoot ...... Имитатор футбола. Lightning ...... Трехмерный имитатор войнушки. CheckInstall ...... Программа создания Monster ...... RPG в классическом стиле. WeedIt ...... Сканер файлов-дубликатов. двоичных пакетов. Stax...... Головоломка Wiki on a Stick ...... Wiki в вашем браузере. Coreutils ...... Утилиты командной строки. с падающими блоками. Zero Install Injector ....Децентрализованный CSV ...... Индекс файлов диска. SuperTuxKart ...... Скоростные гонки клювоносых. менеджер пакетов. GLib ...... Низкоуровневая библиотека. TuxMathScrabble ...... Обучающая игра для детей. Glibc ...... Библиотека GNU C. СИСТЕМА Gtk ...... Инструментарий СПРАВКА Grsync...... Графический интерфейс пользовательского интерфейса. Answers ...... Решенные проблемы Linux. для rsync. HardInfo ...... Системная информация RUTE ...... Руководство Klogshow ...... Монитор файлов журналов. и сравнительный анализ. по администрированию Linux. memtester ...... Программа тестирования памяти. Jigdo ...... Создатель ISO-образов. RKHunter ...... Программа поиска руткитов. Kernel ...... Свежий релиз ядра Linux. Zsh ...... Мощная оболочка. ...... XML-анализатор и инструментарий. ncurses ...... Оконный инструментарий ИНТЕРНЕТ ...... текстового режима. ChatZilla...... Основанный на XUL клиент IRC. Nvidia driver ...... Графический драйвер. Irssi ...... Текстовый клиент IRC. Python...... Язык программирования. Konversation ...... Клиент IRC для KDE. RAWRITE ...... Запись образов на дискеты. Kopete ...... Интернет-пейджер KDE. SBM ...... The Smart Boot Manager. KVIrc ...... Клиент IRC на базе Qt. SDL ...... Библиотека мультимедиа. Lightning ...... Календарь Thunderbird. Pidgin ...... Мультипротокольный пейджер. Provider ...... Связь с календарем Google. SeaMonkey ...... Интернет-пакет. Sunbird ...... Календарь Mozilla. Sylpheed ...... Нетребовательный к ресурсам почтовый клиент. Антиквариат: ролевая игра старой школы XChat ...... Основанный на Gtk клиент IRC. в Monster.

Октябрь 2007 Linux Format 12 7 Reviews Xxx

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

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

РЕДАКЦИЯ РУССКОЯЗЫЧНОЙ ВЕРСИИ: ГЛАВНЫЙ РЕДАКТОР Валентин Синицын [email protected] Литературные редакторы Родион Водейко, Елена Толстякова, Иван Мищенко Переводчики Илья Аввакумов, Александр Бикмеев, Светлана Кривошеина, Александр Казанцев, Алексей Опарин, Валентин Развозжаев, Татьяна Цыганова, Юлия Шабунио Редактор диска Александр Кузьменков Допечатная подготовка Мария Пучкова, Родион Водейко Креативный директор в ноябре Станислав Медведев Технический директор Денис Филиппов Директор по рекламе Денис Игнатов +7 812 965 7236 [email protected] Заместитель генерального директора Софья Виниченко Генеральный директор Павел Фролов УЧРЕДИТЕЛИ частные лица Summer ИЗДАТЕЛИ Станислав Медведев, Виктор Федосеев, Павел Фролов

Отпечатано в типографии «Текст», ООО «ППК «Текст» 188680, Ленинградская область, Всеволожский район, Колтуши, д.32 Заказ _____ of Code Пре–пресс: d.r.i.v.e-group 2007 РЕДАКЦИЯ АНГЛОЯЗЫЧНОЙ ВЕРСИИ: Редактор Ник Вейч [Nick Veitch] [email protected] Очередной летний марафон от Google подошел к концу – самая Заместитель редактора Пол Хадсон [Paul Hudson] [email protected] Художественный редактор Эфрейн Эрнандес-Мендоса пора оценить, насколько успешным он вышел. [Efrain Hernandez-Mendoza] [email protected] Новостной редактор Майк Сондерс [Mike Saunders] [email protected] Редактор обзоров Грэм Моррисон [Graham Morrison] [email protected] Литературный редактор Мэтт Нейлон [Matt Nailon] [email protected] Ассистент по выпуску Шарлотта Мартин [Charlotte Martyn], Сара Гейнз [Sarah Gaines] Подготовка материалов Ладислав Боднар [Ladislav Bodnar], Нейл Ботвик [Neil Bothwick], Д-р Крис Браун KDE 4: мечта становится явью [Dr. Chris Brown], Энди Ченнел [Andy Channelle], Крис Хауэллз [Chris Howells], Энди Хадсон [Andy Hudson], Марко Фиоретти [Marco Fioretti], Йон Филлипс [Jon Phillips], Рэйчел Проберт [Rachel Probert], Евгений Балдин, Александр Бабаев, Андрей Самый горячий свободный проект приближается к релизу – Боровский, Михаил Журухин, Владимир Иванов, Андрей Паскаль, Галина Пожарина, Александр Поносов, Петр Семилетов, Сергей Супрунов, Алексей Федорчук, Виктор разберемся, что происходит в это время за кулисами. Федосеев, Александр Чернышов, Илья Шпаньков, Сергей Яремчук Художественные ассистенты: Ник Кокс [Nick Cox], Дэвид Диас [David Dyas], Дебби Воссер [Debbie Vosser], Сетнам Сингх [Sethnam Singh], Зиги Бейкер [Zigi Baker], Майк Бреннан [Mike Brennan] Фотографии: Ник Вейч [Nick Veitch] Иллюстрации: Нейл Бартлетт [Neil Bartlett], Пол Блечфорд [Paul Blachford], Крис Винн [Chris Winn] Держи это в тайне КОНТАКТНАЯ ИНФОРМАЦИЯ UK: Linux Format, 30 Mon mouth Street, Bath BA1 2BW Почему некоторые компании из мира Open Source Tel 01225 442244 Email: [email protected] РОССИЯ: придерживают кое-что закрытым. Санкт-Петербург: ул. Гончарная, 23, офис 54, телефон: +7 (812) 717-00-37 Email: [email protected], Web: www.linuxformat.ru Представительство в Москве: г. Москва, ул.Энергетическая, д. 14, корпус 5, строение 1. По вопросам сотрудничества, партнерства, оптовых закупок: +7 (495) 799-18-63 Дирекция московского офиса: +7 (495) 136-88-45 E-mail: [email protected] Сравнение: графические Авторские права: Статьи, переведенные из английского издания Linux Format, являются собственностью или лицензией Future Publishing Ltd (Future plc group company). Все права зарегистрированы. Никакая часть данного журнала не может быть повторно опубликована без письменного разрешения издателя. брандмауэры Все письма, независимо от способа отправки, считаются предназначенными для публикации, если иное не указано явно. Редакция оставляет за собой право корректировать присланные письма и материалы. Редакция Linux Format получает неэксклюзивное право на публикацию и лицензирование Настроить межсетевой экран непросто, но есть способ сделать всех присланных материалов, если не было оговорено иное. Linux Format стремится оставлять уведомление об авторских правах всюду, где это возможно. Свяжитесь с нами, если мы не упомянули вас как автора предложенных вами материалов, и мы постараемся исправить эту ошибку. работу легче. Редакция Linux Format не несет ответственности за опечатки. Все присланные материалы могут быть помещены на CD или DVD-диски, поставляемые вместе с журналом, если не было оговорено иное. Ограничение ответственности: используйте все советы на свой страх и риск. Ни при каких условиях редакция Linux Format не несет ответственность за повреждения или ущерб, нанесенные вашему компьютеру и переферии вследствие использования тех или иных советов. За содержание рекламных материалов редакция ответственности не несет. Linux-зарегистрированная торговая марка Линуса Торвальдса (Linus Torvalds). Название «GNU/Linux» заменяется на «Linux» в целях сокращения. Остальные торговые марки являются собственностью их законных владельцев. Linux Format является торговой маркой Future Publishing Ltd (Future plc group company). Содержание последующих выпусков может меняться без уведомления За информацией о журналах, издаваемых Future plc group company, обращайтесь http://www.futureplc.com BATH • LONDON • MILAN • © Linux Format 2005 NEW YORK • PARIS • 128 Linux© FutureFormat Publishing Xxx Ltd 2006 2005 SAN DIEGO •SAN FRANCISCO