3

êËÚÏ ÊËÁÌË ëéÑÖêÜÄçàÖ Минувшая весна и начало лета оказались бо- гатыми на события в мире IT и Open Source. В апреле в Москве успешно прошел Open Notes Source Forum Russia. Его посетили с доклада- 4 Новости сообщества Open Source ми такие гуру как Джон «Мэддог» Холл и Лари Уолл, в непринужденной атмосфере кулуаров Success story общались преподаватели и их студенты, разра- 10 Новая жизнь старых компьютеров Настройка бездисковых станций под управлением LTSP ботчики и бизнесмены. Знаковым выглядит участие в конференции членов Правительства Desktop РФ, и хочется верить, что наше государство 18 Системный осмотр Сравнительный обзор современных дистрибутивов будет уделять больше внимания проектам с открытым кодом, как, например, Куба или 24 Домашняя видеостудия в Южная Корея. Если вы не смогли посетить Обзор программ для цифровой обработки видео в Linux форум, то в нашем календаре событий сможе- 30 …плюс телефонизация всей Linux те узнать о запланированных мероприятиях, Практические советы и полезные утилиты для работы с сотовыми телефонами в той или иной степени касающихся Linux. Совершенно неожиданным для публики стало 33 Клеим панораму Работа с панорамными фотографиями в программе hugin заявление Apple о переходе на платформу Intel. Какой шаг предпримет теперь Линус Тор- 36 Плагиномания вальдс? Как вы помните, недавно он мигриро- Улучшение и Thunderbird с помощью плагинов вал на Macintosh. Было это недальновидным 41 Контора пишет… считает и рисует поступком, или перспективы в этом направле- Новые возможности OpenOffice.org. 2.0 нии еще есть? Ведь и вышедший 13 мая дис- 46 На ринге легковесы трибутив Fedora Core 4 тоже поддерживает Небольшие по объему оконные менеджеры на любой вкус процессоры PowerPC. Впрочем, для большин- ства из нас установка Linux на Macintosh всего Advanced лишь интересная теоретическая возможность, 56 Linux? Вам какой? Ядро Linux: особенности веток, рекомендации по выбору а вот узнать о производительности, удобствах и недостатках популярных дистрибутивов было 62 Оконный дуэт бы интересно. Составить собственное мнение Работа с X-серверами для Windows о Mandrake, Fedora Core, Slackware и Gentoo 66 Системный анабиоз вам поможет статья «Системный осмотр». «Усыпление» компьютера с помощью swsusp2 Компания Google не перестает удивлять своей 68 Раздолье в серверном заповеднике креативностью. Тем, кто этого еще не сделал, Виртуальные серверы — лаборатория администратора настоятельно рекомендую заглянуть на стра- ницу maps.google.com и получить фантастиче- 73 Udev в разрезе скую возможность заглянуть в любую точку Преимущества технологии для подключения устройств земного шара. Но это еще не все, Google от- Coding крыла программу поощрения студентов, пи- 76 Анютины грезы шущих ПО с открытым кодом, — Summer of Блеск и нищета среды разработки Anjuta Code. Программированию в этом номере по- 78 Полное затмение священы целых три материала, рассказываю- Платформа для Java-разработчиков и не только щих о средах разработки (Anjuta и Eclipse) и 82 Рабочая лошадка администратора практическом кодинге на языке Python. Решение практических задач с помощью Python На диске вы найдете набор программ для ра- боты, программирования и отдыха. Мы поста- Practice рались приложить все необходимые для уста- 88 Фактический материал Полезные советы по решению проблем и тюнингу системы новки библиотеки, а также, где это было воз- можно, исходные коды. Review Оставайтесь всегда на острие событий, а мы 94 Обзор интересных программ поможем вам в этом! 96 Новинки книжного рынка Денис Михайлов, выпускающий редактор

1/2005 LINUX| CHIP 4 notes ÌÓ‚ÓÒÚË ÒÓÓ·˘ÂÒÚ‚‡ Open Source

ÇÒ ÎÛ˜¯Â — ‰ÂÚflÏ! Novell Ë Immunix «Образование для всех». «Свободный и коммуникационные, но и специфи- Компания Novell приобрела Immunix обмен идеями и знаниями». «Повыше- ческие приложения, отбираемые по Inc., известную своими приложениями ние значения коммуникации между критериям педагогики и эргономики, по безопасности для Linux и системой людьми». Тези- для поддержки AppArmor. Финансовая сторона сделки сы? Нет, руко- процесса обуче- не разглашается, но уже стало известно водство к дейст- ния. Добавьте о запуске нового продукта, получивше- вию. Так запе- сюда исходни- го в названии соответствующую при- чатлели для себя ки, романтику ставку — Novell AppArmor. Он при- эти положения совместной зван защитить саму ОС Linux и ее OFSET (органи- разработки — приложения от внешних и внутренних зация по разра- и детям! Дис- атак, вирусов и программ-злоумыш- ботке свободного трибутив ленников. ПО для образова- выполнен в ния и обучения) ставшем уже и ЮНЕСКО привычным в октябре виде LiveCD 2003 года. (основан на Несомненные достоинства открытого KNOPPIX/Debian), что создает допол- подхода к разработке софта нашли себя нительные удобства при использовании там, где и должны быть реализованы в школе, освобождая учителей от необ- по своему определению. Результат не ходимости тратить время на установку заставил себя долго ждать — первенцем и настройку системы. За организацию стал Freeduc-cd 1.4, а недавно появи- рабочего места отвечает элегантный лась уже и версия 1.5. Главный адресат Xfce, в качестве файлового менеджера Freeduc — средняя школа. Основная используется ROX-Filer, в комплект идея — организовать эффективную сис- входят также два диска с исходными тему образования на основе свободного кодами ПО. ПО: школе нужны не только офисные www.ofset.org/freeduc-cd Linux ̇ äÛ·Â ê‡Á‰ÂÎflÈ Ë ‚·ÒÚ‚ÛÈ! Недавно правительство Кубы решило Активности некоторых компаний мож- ской конференции разработчиков и отказаться от продуктов Microsoft в но позавидовать. Nokia продолжает пользователей GNOME (GUADEC) пользу Linux. Факторов, определяю- удивлять нас: едва успев представить в Штутгарте. Интерфейс Nokia 770 щих этот выбор, немало: безопасность, в Нью-Йорке на LinuxWorld Summit Internet Tablet основан на среде Hildon открытость, возможность участвовать интернет-планшет Nokia 770 Internet Application Framework, базирующейся в разработке необходимого ПО и даже Tablet, компания объявила о желании на технологиях GNOME. Сам интернет- политические соображения. Послед- вложить средства, вырученные от про- планшет имеет 4,13-дюймовый экран с ние, видимо, сыграли немаловажную дажи 500 моделей новых устройств, в разрешением 800x480 точек (65 536 цве- роль в принятии такого решения. GNOME Foundation, что стало прият- тов), включает экранную клавиатуру, Чрезвычайно привлекательной в отно- ным сюрпризом на очередной европей- работает с рукописным вводом, поддер- шении принципов государственной бе- живает масштабирование и полноэкран- зопасности остается идея использовать ный режим работы. Напомним, что собственный национальный дистрибу- чуть раньше Nokia решила передать в тив, чего можно добиться с помощью потенциальное использование около Linux. К тому же это предотвращает четырех тысяч патентов в ядре Linux. отток финансовых средств из страны, При этом, правда, компания не отка- создает благоприятные условия для залась от своей позиции, лоббирующей работы талантливой молодежи, а ко- ужесточение патентного законодатель- нечный продукт вполне может стать ства в Европе. предметом национальной гордости. www.nokia.com; http://2005.guadec.org www.linuxinsider.com

CHIP| LINUX 2/2005 Ó·ÁÓ˚, ÒÓ·˚ÚËfl 5

ÇÒÚÓÂÌÌ˚ Linux-¯ÂÌËfl: ÔËÏÂ˚ ÛÒÔÂı‡ äÎflÚ‚‡ ÉËÔÔÓÍ‡Ú‡ ARTS — многоцелевая дистанционная вых военно-воздушных и наземных систе- Министерство здравоохранения и со- транспортная система, построенная на мах. «Этот контракт отражает знаменатель- циальных служб США с одной стороны технологиях ОС реального времени ный этап не только для нашей компании, и Novell с другой подписали соглашение LynxOS и управляемая специальным уз- но и для всего движения встраиваемого о неограниченном использовании про- лом контроля. Применяемая в условиях ПО открытого стандарта», — подчеркива- дуктов компании в системе здраво- повышенного риска, она позволяет пол- ют представители LynuxWorks. охранения США. Соглашение является ностью контролировать работу машины www.lynuxworks.com составной частью инициативы по стиму- на безопасном расстоянии. Подобные лированию закупок и распространению спецсредства активно используются при корпоративного программного обеспе- борьбе с пожарами и последствиями чения, поддерживающей программу стихийных бедствий. Система уже имеет президента США по перестройке феде- успешный опыт применения в операциях рального правительства. Результатом по разминированию в Афганистане. соглашения становится значительное LynxOS также выбрана для применения снижение расходов и облегчение закупок в Future Combat Systems (FCS, Боевые си- ПО. С учетом охвата еще и националь- стемы будущего) армейской программы ных институтов здравоохранения Novell Integrated Computer System. Продукт от получает около 100 тысяч пользователей. LynuxWorks будет использоваться в сете- http://linux.slashdot.org

ì‚ÂÚ˛‡ ̇ ÚÂÏÛ Linux рованную систему управления, вынуж- нечного пользователя — Mezzo, вопло- дающую предлагать для установки са- щение «Законов разработки интерфейса» модостаточные пакеты, содержащие все Джейсона Списака на рабочем столе необходимые для работы приложения пользователя. Отвергнув традиционный библиотеки и файлы. Этим дело не ог- принцип «рабочий стол — это папка», раничивается. Symphony предоставляет привычную систему панелей и выпадаю- возможность ваять шедевры графических щих меню, Mezzo предлагает решение, интерфейсов с помощью программного при котором в углах рабочего стола раз- окружения Orchestra так же легко, как мещаются элементы быстрого доступа к разработчики пишут обычно скрипты полноэкранным меню настроек системы, Симбиоз KNOPPIX/Debian дал толчок Perl CGI. Мало того, вы не найдете здесь приложениям, домашним директориям построению новых дистрибутивов, поз- ни KDE, ни GNOME, ни даже Xfce — и корзине. При этом никакого скроллин- воляя разработчикам воплощать самые отказавшись от их использования, раз- га — все масштабируется автоматически. смелые замыслы, но идею этого дис- работчики Symphony пошли навстречу Удобство работы с настройками самой трибутива можно в некотором смысле владельцам маломощных компьютеров. системы обеспечивается прямым досту- назвать и радикальной. Создатели Применяется простой FVWM, что позво- пом к ним — никаких лишних движений, Symphony решили в корне пересмотреть ляет относительно легко согласовать и никакого Drag&Drop. Дистрибутив рас- глобальный аспект построения — зави- общую концепцию построения системы считан на домашних пользователей и симости пакетов, представив авторам на Orchestra/Perl. Наконец, главная изю- мелких бизнесменов, текущее состоя- стороннего ПО полностью стандартизи- минка дистрибутива с точки зрения ко- ние – пререлиз www.symphonyos.com

2/2005 LINUX| CHIP 6 notes ÌÓ‚ÓÒÚË ÒÓÓ·˘ÂÒÚ‚‡ Open Source

Fedora — ‡Á, ‰‚‡, ÚË... Linux ̇ ˚ÌÍ ÅÑ Четыре. Под именем Stentz вышел чет- Менеджер входа в систему — GDM 2.6. Рост числа корпоративных баз данных, ра- вертый дистрибутив Fedora Core. Каж- Улучшенный SELinux, теперь покрыва- ботающих на платформе открытой ОС, про- дый из предыдущих в свое время стано- ющий еще 80 новых демонов. Eclipse должается. Как сообщает исследователь- вился настоящим событием в мире 3.1M6 – полнофункциональная среда ский центр Gartner, число лицензий для Linux. Что на этот раз? В первую оче- разработки на Java, Java-компилятор таких систем управления реляционными редь, и сами разработчики обращают на GCJ и новые возможности технологий базами данных, собранных под Linux, как это внимание, – новое руководство по Java. Теперь в Fedora Core вы не найдете Sybase, IBM DB2 и Oracle, отражается сего- установке, одинаково полезное и для ни Abiword, ни Gnumeric, ни даже дня в сумме $654,8 млн. Хотя общий рост, начинающих, и для опытных пользова- KOffice. В составе дистрибутива нет так- по оценкам Gartner, за истекший год и до- телей. И далее по же exim, XFce 4, стиг 118% на 7,7-миллиардном рынке, порядку — ядро Xemacs, xmms. стоит отметить, что исследовательский 2.6.11. Fedora ста- Все это можно центр не брал в расчет открытые продук- ла первым дис- получить с по- ты, такие как MySQL, Firebird и PostgreSQL. трибутивом, со- мощью yum из www.networkworld.com бранным с помо- Fedora Extras. щью четвертого Такое решение компилятора было принято Linux ̇ PlayStation 3 GNU C (GCC), исходя из прин- Sony предполагает возможность постав- включенного ципа комплек- ки готовящейся к выходу новой при- в систему по тации Core по ставки, имеющей дополнительный умолчанию. Ра- возможности жесткий диск с предустановленной ОС бочее окружение — GNOME 2.10 (см. единственными и самыми достойными Linux. Этот шаг должен, по мнению статью «Праздник в подземном царстве» представителями приложений одного компании, наконец убедить обществен- предыдущего номера). KDE 3.4.0 — еще функционального класса. Так, место ность в том, что устройство все же имеет «дышащая краской сборочного цеха». офисных приложений занимает полное право называться компьютером. OpenOffice.org 1.9.104 – один из рели- OpenOffice.org, агента доставки почто- www.anandtech.com зов, предваряющих выход окончатель- вых сообщений — Postfix, возможности ной версии 2.0. Xen 2 – средство виртуа- Xfce с лихвой покрывают GNOME лизации, позволяющее запускать одно- и KDE, Xemacs — Emacs, а xmms — временно несколько операционных сис- Rhythmbox. Такое решение, с другой тем. Кластерная файловая система — стороны, позволило вместить Fedora GFS 6.1-0.pre22. Универсальный про- Core 4 на обычный комплект из четырех смотрщик документов — Evince 0.2.1. компакт-дисков.

èÂÓ·‡ÊÂÌË ASPLinux Разработчики отечественного дистрибутива состав вошли ядро 2.6.11, свежая версия такого решения сыграла практика другого ASPLinux идут навстречу пожеланиям поль- X.org X11 6.8.2, интегрированная среда ведущего отечественного разработчика, ALT зователей и предлагают обновление для GNOME 2.10.1, графическая среда Xfce Linux, регулярно выпускающего срезы ре- ASPLinux 10 на двух компакт-дисках. В его 4.2.1, обозреватель Firefox 1.0.4 и почто- позитория (банка пакетов) «Сизиф» на вый клиент Thunderbird 1.0.2, эмулятор DVD, содержащие самое свежее ПО для сво- wine 20050524, антивирус СlamAV 0.85 его дистрибутива. Несмотря на то что «Си- и его графическая оболочка Klamav, гра- зиф» напрямую не предназначен для об- фический редактор GIMP 2.2.6 — всего новления системы, это не мешает самым 740 бинарных пакетов. смелым пользователям устанавливать и Видимо, можно ожидать, что такая практи- использовать новые версии приложений. ка станет традиционной, а пользователи, Если отправной точкой для «Сизифа» явля- вне зависимости от имеющегося доступа ется разработка, то для предлагаемого в Интернет, смогут и впредь получать об- ASPLinux комплекта в роли нее выступают новления в наиболее приемлемой для себя непосредственно обновление и, как следст- форме. Возможно, свою роль в принятии вие, стабильность. www.asplinux.ru

CHIP| LINUX 2/2005 Ó·ÁÓ˚, ÒÓ·˚ÚËfl 7

óÂÂÁ ÚÂÌËË Í Á‚ÂÁ‰‡Ï Под специально созданной лицензией Common Development and Distribution Licence (CDDL) компания Sun открыла исходники своей ОС Solaris 10 и официально сообщила об этом в виде старта проекта OpenSolaris. Скачать исходники можно с официальной страницы нового проекта, собрать — с помощью gcc или Sun Compiler. Кроме того, любой желающий сегодня может ознако- миться с LiveCD, основанным на OpenSolaris Schillix, с которым можно работать как в обычном LiveCD-режиме, так и установив на жесткий диск или USB-флеш. Незадолго до этого события масла в огонь подлила NVIDIA, выпустив свежий драйвер для OpenSolaris с поддержкой OpenGL 2.0, Xinerama и собственной системы на- строек. Перед объявлением о запуске проекта произошло еще одно интересное событие. Ватикан в выборе коммуникационных техно- логий остановился именно на Solaris и Java Enterprise System от Sun. Сдается, одно только название уже в определенной степени предопределило судьбу этого продукта. http://opensolaris.org

ÅÛ‰Û˘Â ÒÓÚÓ‚ÓÈ Ò‚flÁË Ë Linux Исследования ABI говорят об ис- ко промежуточный шаг, предтеча ключительной перспективности со- полноценного VoWiFi-решения. юза Linux со стандартами голосовой Соответствующие телефоны под Wi-Fi-связи (VoWiFi). «VoWiFi — бу- управлением Linux уже производят дущее мобильной телефонии», — Siemens и NexGen, а универсаль- говорится в большом докладе, ные аппараты Mobile/VoWiFi где в расчет были взяты не только представлены компаниями NEC сами технологии и компании, их (на фото справа — модель n900iL) представляющие, но и показатели и Panasonic. прогнозов рынка до 2010 года. В свою очередь, такие компании Глава ABI Research Филип Солис как Motorola и Fujitsu оснащают пишет, что и внедряемая компани- аналогичные продукты решени- ей British Telecom технология ями, основанными на Windows- Bluephone, выбравшая интерфейс разработках. Bluetooth для сервиса VoIP, — толь- www.abiresearch.com

é˜Â‰ÌÓ ÔËÓ·ÂÚÂÌË Mandriva Не успели остыть страсти вокруг при- партнерства с азиатскими производи- ловиями которого согласилась Lycoris, обретения теперь уже бывшего телями оборудования — такими как начинается разработка нового продук- Mandrakesoft Connectiva и смены его Dialogue и MoBits. Интерес Mandriva та, неким образом сводящего Mandriva имени, как общественности было объ- к этой компании подогрет изначальной Discovery и Desktop/LX в одной точке, явлено о новой сделке: Mandriva при- ориентированностью дистрибутивов судя по всему, единого дистрибутива, и обретает значительную часть компании Mandrake на дружелюбность к пользо- эта работа уже началась. По догово- Lycoris. Последняя известна как круп- вателю через предоставление качест- ренности сторон, основатель Lycoris нейший сборщик дистрибутивов для венной desktop-системы. Поиск благо- Джозеф Чик возглавляет работу по ин- домашнего использования в Северной приятных возможностей для ускорения теграции в Mandriva Club уникальных Америке Desktop/LX и начинатель на процесса разработки таких решений функций Iris Software Gallery и объе- массовом рынке ОС Linux в Tablet совершенно естественным образом динению собственных наработок Edition и Pocket PC Edition. Успехи подвел Mandriva к заинтересованности Desktop/LX с технологиями Mandriva. Lycoris отразились в установлении в покупке Lycoris. Согласно плану, с ус- www.mandriva.com

2/2005 LINUX| CHIP 8 notes ÌÓ‚ÓÒÚË ÒÓÓ·˘ÂÒÚ‚‡ Open Source

Firefox — ÔÓ‰ÛÍÚ „Ó‰‡ Ç ÛʸÂ! По версии PC World, продуктом 2005 го- Использование решений, основанных Проект ITTIA db.* выдержал конку- да назван браузер Mozilla Firefox, кото- на Linux, продолжает наступление ши- ренцию со стороны других альтернатив рый оказался на самой вершине списка роким фронтом на рынок встраивае- благодаря низкой требовательности 100 лучших продуктов текущего года из мых систем. Производитель армейской к системным ресурсам, оптимальной мира компьютерной индустрии. В число тяжелой колесной техники Oshkosh производительности и открытости, что отмеченных вошли также дистрибутив объявил об оснащении шасси Oshkosh сказалось на конечной стоимости всего Ubuntu Linux 5.04, поисковые движки A3 HEMTT, системы тактического раз- решения, позволившего сэкономить A9 и Google, почтовый клиент Mozilla вертывания, встраиваемой операцион- сотни тысяч долларов. Thunderbird и онлайн-энциклопедия ной системой Linux, работающей на http://linuxdevices.com Wikipedia. PC World особенно выделяет процессоре ARM 9E в связке с базой тот факт, что из 100 победителей 23 данных db.* от ITTIA. Это первый имеют самую привлекательную цену — подобный опыт в работе компании, они свободны. www.pcworld.com решение в пользу Linux было принято безоговорочно: присущая этой ОС стабильность вкупе с отсутствием нужды в дополнительных лицензион- ных отчислениях стали главными фак- торами, повлиявшими на этот выбор.

çÓ‚˚È ÓÙËÒÌ˚È Òڇ̉‡Ú OASIS официально объявила о принятии программного обеспечения. В Microsoft за стандарт Open Document Format for уже отреагировали на это событие: сна- Office Applications версии 1.0, или про- чала было объявлено о том, что новые сто OpenDocument. Пользователям оста- XML-форматы для следующего офисно- ется попросту дождаться выхода релиза го пакета будут свободными от лицен- ÇÓθÌÓÏÛ — ‚ÓÎfl! OpenOffice.org 2.0, чтобы познакомить- зионных отчислений, а затем поступило На прошедшем в Новом Орлеане саммите ся с новым форматом или воспользо- и беспрецедентное приглашение к кон- Red Hat представитель компании Марк ваться свежим KOffice 1.4. структивному диалогу Майкла Тиманна, Веббинк довел до сведения обществен- OpenDocument представляет собой сво- президента Open Source Initiative, быв- ности решение о передаче управления и бодный, открытый формат, основанный шего главного инженера Red Hat, а ны- полного владения проектом Fedora орга- на XML, и имеет неоспоримое удобство не специалиста по связям с Open Source низации Fedora Foundation, создаваемой в использовании — переносимость в Red Hat Inc. в настоящее время. Fedora, таким обра- и независимость от производителя www.oasis-open.org зом, получает полную свободу, а Red Hat демонстрирует очередной пример, до- стойный украсить страницы любого учебника по менеджменту. Естественно, Qt — ̇˜‡ÎÓ ˝ÍÒÔ‡ÌÒËË? «молодая поросль» не оставлена на про- Компанией Trolltech выпущена новая ной разработки. Разработка ПО для не- извол судьбы: Red Hat берет на себя и версия популярной среды разработки скольких платформ становится очень отеческую заботу, и материнское внима- кросс-платформенных приложений – важной, и Qt позволяет создавать вы- ние — спонсорство и участие в работе Qt 4. Добавлена возможность интеграции сокопроизводительные приложения, над Fedora. www.redhat.com с Microsoft Visual Studio .NET, а которые работают почти повсеместно. двойное лицензирование для Наша цель с релизом Qt 4 — распро- Windows не оставит в стороне и странить возможности Qt на большее апологетов Open Source. Пре- число приложений: от графиче- зидент Trolltech Эйрик Чам- ских программ для настольных бенг заявил: «Qt 4 — самая важная из ПК до требовательных к ресурсам при- всех когда-либо выпущенных версий Qt, ложений и серверного ПО, работающего придающая продукту статус всеобъемлю- с базами данных». щей структуры для кросс-платформен- www.trolltech.com

CHIP| LINUX 2/2005 10 success story ËÌÚÂÂÒÌÓ ¯ÂÌËÂ

Александр Куприн çÓ‚‡fl ÊËÁ̸ ÒÚ‡˚ı ÍÓÏÔ¸˛ÚÂÓ‚

Не спешите разбирать свой компьютер на запчасти. Работать с современным программным обеспечением можно и на стареньком Pentium I, и даже на древней «четверке». Звучит заманчиво? Тогда читайте дальше.

В свое время мне уже приходилось писать небольшую статью | Преимущества терминал-серверных о настройке класса бездисковых станций под управлением технологий в Linux | LTSP (см. в Интернете статью «В бой идут одни «старики»). Очевидное достоинство, на которое в первую очередь всегда Сейчас, спустя три года, проект дорос до версии 4.1.1, появи- обращают внимание, обсуждая перспективность данной тех- лись новые возможности и особенности, поэтому есть смысл нологии, — это использование бездисковых станций в каче- рассказать о них и заодно поделиться опытом практического стве терминалов, что снижает аппаратные требования и, как внедрения подобной технологии. Так получилось, что в на- следствие, затраты на приобретение и последующую эксплу- стоящий момент я работаю системным администратором и атацию оборудования. Несомненно, это так, но, говоря об преподаю в Луганском политехническом колледже (ЛПК) на этом, многие очень часто забывают о дополнительных пре- Украине, поэтому работа терминал-сервера была обкатана на имуществах. Во-первых, это централизованное хранение одной из самых «неблагонадежных» и «беспокойных» групп пользовательских данных и обслуживание всего одного эк- пользователей — студентах. Однако это ни в коей мере не оз- земпляра операционной системы, под управлением которой начает, что данный материал не будет представлять интереса работает сервер (поддержка в состоянии готовности парка для домашних или бизнес-пользователей. В нашем колледже рабочих станций с установленной операционной системой – в качестве платформы для терминал-сервера используется это кошмар наяву для системного администратора). Следую- ALT Linux Master 2.4. щий плюс заключается в том, что, как правило, бездисковые

CHIP| LINUX 2/2005 ·ÂÁ‰ËÒÍÓ‚˚ Òڇ̈ËË 11

станции не требуют постоянной модернизации. Подтверж- дением этого может служить тот факт, что для полноценной работы X-терминалов достаточно даже мощностей персо- нальных компьютеров десятилетней давности. Конечно, слож- но предсказать, что будет через десять лет в IT-индустрии, поэтому подобный довод может звучать не совсем убедитель- но, но то, что при помощи данной технологии парку устарев- ших компьютеров можно дать вторую жизнь, остается фак- том, не подлежащим сомнению. Не самый последний по важ- ности довод в пользу терминал-серверных (здесь и далее ТС) решений на базе Linux — это стоимость, а точнее ее отсут- ствие (не будем обсуждать тот факт, что специалисту, кото- рый все это настраивает, необходимо заплатить — хотя бы по той простой причине, что системному администратору, занимающемуся установкой и настройкой MS Windows, то- же приходится платить). Цена ТС-решений, предлагаемых, в частности, компаниями Microsoft или Citrix на базе опера- ционной системы MS Windows, заставит не один раз поду- ÇÚÓÓÈ ÍÛÒ ËÁÛ˜‡ÂÚ Ì‡ Ô‡ÍÚËÍ ÓÒÌÓ‚˚ ‚·-‡ÁÏÂÚÍË мать, прежде чем решиться на такой шаг. И еще один немало- важный плюс — это бесшумность. О чем идет речь? Для без- 3 tftp – сервер, использующий упрощенный протокол пере- дисковых станций можно использовать такие компьютеры, сылки файлов. Поддерживает передачу файлов без предвари- системные блоки которых выпускаются в формате micro- тельной аутентификации. Как правило, работает под управле- ATX, с применением пассивного охлаждения процессора (на- нием суперсервера xinetd. В нашем случае используется на на- пример, VIA Eden, www.via-c3.ru). Добавьте к этому отсутст- чальном этапе для загрузки образа ядра на рабочую станцию. вие жесткого диска, и вы получите рабочее место с мини- 3 nfs – сервер, обеспечивающий доступ к удаленным файло- мальным уровнем шума. вым системам Unix. Каталоги, экспортируемые таким образом, монтируются к корню файловой системы, формируемой на | Основные принципы бездисковой станции. функционирования | 3 X11 (или X-сервер) – сервер, играющий роль графической Классический ТС с удаленной загрузкой представляет собой подсистемы в Unix. В нашем случае настраивается таким обра- набор нескольких стандартных для Linux сервисов: зом, чтобы «слушать» пакеты TCP/IP. Как правило, такая воз- 3 dhcp – сервер, использующий протокол, который обеспечива- можность отключена в целях безопасности. ет автоматическую настройку параметров TCP/IP для сетевых 3 xfs – сервер шрифтов. Как правило, использование сервера клиентов: IP-адрес, маску подсети, IP-адреса шлюза по умолча- шрифтов является опциональным, и его можно не применять, нию и DNS-сервера, плюс, что важно в нашем случае, опции за- предоставив доступ к шрифтам через NFS. грузки ядра по сети, а также параметры корневой файловой сис- Более детально ознакомиться с алгоритмом загрузки бездиско- темы, монтируемой по сети при помощи NFS-протокола. вой станции можно по адресу http://ltsp.ru/documentation/ltsp- 3.0-ru/chapter1.html. Несмотря на то что это перевод докумен- тации по проекту LTSP версии 3, данное описание не потеряло своей актуальности и для версии 4.1.1 | Необходимые сервисы и пакеты | Прежде чем перейти к установке LTSP, необходимо устано- вить службы, которые будет использовать ТС. Не считая собственно «иксов», вам необходимо выбрать графический менеджер для доступа в систему: kdm, gdm, wdm или xdm, а также несколько сетевых служб: xinetd, tftp-сервер, nfs- сервер, portmap и dhcp-сервер. В примерах к этой статье ис- пользуются следующие параметры:

| Общие данные | 3 IP-адрес DNS-сервера: 192.168.0.1 3 IP-адрес шлюза по умолчанию: 192.168.0.1 í‡Í ‚˚„Îfl‰ËÚ ÔÓˆÂÒÒ Á‡„ÛÁÍË fl‰‡ ˜ÂÂÁ tftp-ÔÓÚÓÍÓÎ 3 Маска подсети: 255.255.255.0 3 Имя домена: home.lg

2/2005 LINUX| CHIP 12 success story ËÌÚÂÂÒÌÓ ¯ÂÌËÂ

Ç Í‡˜ÂÒÚ‚Â bootprom ‰Îfl ÒÂÚ‚ÓÈ Ô·Ú˚ RTL-8139C ·˚· ËÒÔÓθÁÓ‚‡Ì‡ ÏËÍÓÒıÂχ 27SF010

| Терминал-сервер | 3 Имя: p3.home.lg 3 IP-адрес: 192.168.0.1 àÌÚÂÙÂÈÒ ÛÚËÎËÚ˚ ltspcfg ÔÓÒÚ Ë ÔÓÌflÚÂÌ

| Бездисковая станция | Если вы забыли установить один из пакетов или включить 3 Имя: vm.home.lg его, таблица сообщит вам об этом. Последняя часть показы- 3 IP-адрес: 192.168.0.3 вает, сконфигурированы ли файлы, необходимые для рабо- ты LTSP. В любом случае здесь невозможно что-то изменить, | Установка LTSP | для этого необходимо вернуться на шаг назад и выбрать Установка производится при помощи утилиты ltspadmin, пункт «Configure the services manually». Рассмотрим подроб- входящей в состав пакета ltsp-utils (www.ltsp.org/ltsp-utils-0.11- но каждый из пунктов. 0.noarch.rpm). ltspadmin – утилита, написанная на основе Perl, которая выполняет закачку и инсталляцию пакетов, а также | Runlevel | предварительную настройку служб, необходимых для работы ТС. Уровень работы системы. Для терминал-сервера необходим В том случае, если LTSP устанавливается на компьютере впервые пятый уровень. (естественно, все действия выполняется с правами администра- тора), то при выборе первого пункта меню «Install/Update...» вам | Interface selection | будет предложено выполнить предварительную настройку: ука- Выбор сетевого интерфейса. На самом деле этот параметр ис- зать источник пакетов, путь для установки дерева каталогов, пользуется при формировании конфигурационного файла содержащего файлы, необходимые для работы бездисковой lts.conf: его значение указывается в ключах SERVER, XSERVER станции, параметры прокси-сервера (опционально) и выбрать и т. п. Если в системе присутствует один сетевой интерфейс, то группы пакетов. параметр настроен по умолчанию. К вопросу о выборе источника пакетов – вы можете самосто- ятельно скачать пакеты (http://ltsp.mirrors.tds.net/pub/ltsp/ltsp- | DHCP configuration | 4.1/) и указать в ltspadmin (см. пункт «Configure the installer Здесь формируется файл dhcpd.conf. Имейте в виду, что ltspcfg options») путь к ним. Либо можете скачать ISO-образ (http://ltsp. формирует файл dhcpd.conf в каталоге /etc. В то время как в mirrors.tds.net/pub/ltsp/isos/), содержащий необходимые пакеты ALT Linux Master 2.4 (и не только в нем) данный конфигураци- и подмонтировать его следующей командой: онный файл хранится в /etc/dhcp. Поэтому можете создать для mount -o loop ltsp-4.1.1-1.iso /mnt/disk него символическую ссылку: В этом случае обратите внимание на формат пути в настрой- ln -s /etc/dhcpd.conf /etc/dhcp/dhcpd.conf ках ltspadmin, он выглядит следующим образом: file://mnt/disk. Либо можете скопировать созданный файл в этот каталог. Бо- лее правильным будет второй вариант — по той простой причи- | Настройка при помощи ltspcfg | не, что данный файл приходится дорабатывать вручную. Ниже Для первичной (без ручной доводки никак не обойтись) на- приводится пример dhcpd.conf, который описывает параметры стройки служб мы можем воспользоваться утилитой ltspcfg, загрузки для двух бездисковых станций: которая запускается отдельно или из ltspadmin (см. пункт ddns-update-style none; «Configure LTSP»). В первую очередь нас интересует пункт default-lease-time 21600; «Show the status of all services». Окно разделено на три части. max-lease-time 21600; Первая показывает список сетевых интерфейсов. Если их option subnet-mask 255.255.255.0; несколько, то необходимо выбрать тот, который будет ис- option broadcast-address 192.168.0.255; пользовать ТС. Следующая таблица включает список серви- option routers 192.168.0.1; сов, необходимых для работы терминал-сервера. Обратите option domain-name-servers 192.168.0.1; внимание на колонки «Installed», «Enabled» и «Running». option domain-name "home.lg";

CHIP| LINUX 2/2005 ·ÂÁ‰ËÒÍÓ‚˚ Òڇ̈ËË 13

option root-path "192.168.0.1:/opt/ltsp/i386"; «no». Однако файл требует доработки: дело в том, что в ALM option option-128 code 128 = string; 2.4 tftp-сервер использует в качестве домашнего каталога option option-129 code 129 = text; /var/lib/tftpboot, в то время как инсталлятор LTSP копирует option space PXE; образы ядра в подкаталог /tftpboot. Есть два выхода из подоб- option PXE.mtftp-ip code 1 = ip-address; ной ситуации. Первый — отредактировать ключ server_args в option PXE.mtftp-cport code 2 = unsigned integer 16; файле /etc/xinetd.d/tftp: option PXE.mtftp-sport code 3 = unsigned integer 16; server_args = -u tftp -s /tftpboot option PXE.mtftp-tmout code 4 = unsigned integer 8; Второй — скопировать в /var/lib/tptpboot содержимое /tftp- option PXE.mtftp-delay code 5 = unsigned integer 8; boot и создать символическую ссылку на него: option PXE.discovery-control code 6 = unsigned integer 8; cp -pvR /tftpboot/* /var/lib/tftpboot option PXE.discovery-mcast-addr code 7 = ip-address; rm -rf /tftpboot subnet 192.168.0.0 netmask 255.255.255.0 { ln -s /var/lib/tftpboot /tftpboot use-host-decl-names on; Рекомендуем воспользоваться вторым способом. Кроме этого option log-servers 192.168.0.1; по умолчанию tftp-сервер будет принимать запросы только с ло- host vm { кального интерфейса (см. /etc/xinetd.conf параметр only_from). hardware ethernet 00:0C:29:3F:D2:0F; Для того чтобы снять это ограничение, необходимо в /etc/ fixed-address 192.168.0.3; xinetd.d/tftp добавить строку «only_from += 192.168.0.0/24». В ре- if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { зультате /etc/xinetd.d/tftp примет следующий вид: filename "/lts/pxe/pcnet32.zpxe"; service tftp option vendor-class-identifier "PXEClient"; { vendor-option-space PXE; disable = no option PXE.mtftp-ip 0.0.0.0; socket_type = dgram next-server 192.168.0.1; wait = yes } user = root else if substring (option vendor-class-identifier, 0, 9) = server = /usr/sbin/in.tftpd "Etherboot" { server_args = -u tftp -s /var/lib/tftpboot filename "/lts/vmlinuz-2.4.26-ltsp-3"; only_from += 192.168.0.0/24 option vendor-encapsulated-options } 3c:09:45:74:68:65:72:62:6f:6f:74:ff; option vendor-class-identifier "Etherboot"; | Portmapper configuration | next-server 192.168.0.1; Настройка сервиса portmap сводится к его включению. То же } самое можно сделать при помощи утилиты chkconfig: } chkconfig --add portmap } В нашем случае это сетевые параметры виртуальной ма- | NFS configuration | шины, созданной в VMware для проверки работоспособности Как и предыдущий, данный пункт предназначен исключитель- LTSP (MAC-адрес ищите в файле с расширением .vmx, пара- но для включения nfs-сервера. метр ethernet0.generatedAddress). Виртуальная машина с име- нем vm использует для загрузки протокол PXE. Обратите вни- мание на второй параметр filename – в нем указывается имя файла, содержащего образ ядра. В данном случае это ядро 2.4.26. Если хотите, можете изменить его на 2.6.9. Если исполь- зуется сетевая плата, работающая на ISA-шине, для ее успеш- ной инициализации необходимо указать имя драйвера и номер порта ввода-вывода, например: host ws001 { hardware ethernet 00:20:FE:00:D3:1C; fixed-address 192.168.0.100; filename "/lts/vmlinuz-2.4.26-ltsp-3"; option option-128 e4:45:74:68:00:00; option option-129 "NIC=ne IO=0x300"; } | TFTP configuration | Настройка tftp-сервера ограничивается тем, что в файле VMware ‚ ‰ÂÈÒÚ‚ËË: X-ÚÂÏË̇Π„ÓÚÓ‚ Í ‡·ÓÚ /etc/xinetd.d/tftp в параметре disable указывается значение

2/2005 LINUX| CHIP 14 success story ËÌÚÂÂÒÌÓ ¯ÂÌËÂ

Либо, если в локальной сети работает DNS-сервер, то мож- но не указывать имя/IP-адрес бездисковых станций, а пропи- сать их в прямой и обратной зонах DNS. Это необходимо сде- лать, иначе по NFS не будет монтироваться файловая система. В колледже для этого используется DNS-сервер, работа- ющий на отдельной машине, и был случай, когда терминал- сервер был включен раньше компьютера, на котором работа- ет DNS-сервер. В результате загрузка бездисковых станций останавливалась на попытке смонтировать через NFS корень файловой системы.

| Create /etc/hosts.allow entries | Чтобы ограничить доступ к сетевым ресурсам, воспользуйтесь этим пунктом. Он создаст записи следующего вида: bootpd: 0.0.0.0 in.tftpd: 192.168.0. portmap: 192.168.0. Первая разрешит dhcp-серверу получать пакеты из любого источника. Две другие ограничат прием пакетов для tftp и äÓÏÔ¸˛ÚÂ-‚ÂÚÂ‡Ì «·ÂÎÓÈ» Ò·ÓÍË, ÛÒÔ¯ÌÓ ÒÔ‡‚Îfl˛˘ËÈÒfl portmap только из подсети 192.168.0.0/24. Ò ÌÓ‚ÓÈ Óθ˛ X-ÚÂÏË̇· | Create /etc/exports entries | Этот пункт настраивает nfs-сервер. Он прописывает в | XDMCP configuration | /etc/exports каталоги, которые будут доступны через NFS: В этом пункте вы активируете протокол XDMCP, который ис- /opt/ltsp 192.168.0.0/255.255.255.0(ro,no_root_squash,sync) пользуется для удаленного подключения к X-серверу. В зависи- /var/opt/ltsp/swapfiles мости от того, какой именно графический менеджер активен 192.168.0.0/255.255.255.0(rw,no_root_squash,async) (kdm, gdm и т. п.), изменяется и соответствующий конфигура- Первый параметр описывает корень файловой системы, ционный файл (/etc/X11/kdm/kdmrc, /etc/X11/gdm/gdm.conf монтируемой через NFS. Второй — каталог, где будут хранить- и т. д.). Обратите внимание, что активный графический менед- ся SWAP-файлы. Использование своппинга по сети необходи- жер для входа в систему определяется в файле /etc/sysconfig/ мо в том случае, если объем оперативной памяти на рабочей desktop одним из следующих ключевых слов: KDE, GNOME, станции будет меньше 16 Мбайт. WindowMaker, AnotherLevel. К сожалению, в ALM 2.4 эту операцию придется выполнить | Create lts.conf file | вручную. В качестве примера рассмотрим, как это сделать Этот пункт создает в /opt/ltsp/i386/etc файл lts.conf, в котором для gdm. Во-первых, припишите в /etc/sysconfig/desktop слово описываются параметры рабочих станций. По умолчанию он GNOME (естественно пакет gdm должен быть уже установлен в содержит следующую информацию: системе). Затем откройте файл /etc/X11/gdm/gdm.conf, найди- [Default] те в нем секцию [xdmcp] и исправьте опцию «Enable», указав в SERVER = 192.168.0.1 качестве параметра True (то же самое можно сделать, запустив XSERVER = auto утилиту gdmconfig). Следующим шагом необходимо разрешить X_MOUSE_PROTOCOL = "PS/2" X-серверу «слушать» TCP-запросы. Для этого отредактируйте X_MOUSE_DEVICE = "/dev/psaux" файл /etc/X11/xinit/xserverrc, убрав ключ -nolisten tcp. После X_MOUSE_RESOLUTION = 400 этого перезапустите сервис dm. X_MOUSE_BUTTONS = 3 USE_XFS = N | Create /etc/hosts entries | SCREEN_01 = startx Этот пункт сгенерирует в файле /etc/hosts 253 записи примерно Это секция, параметры которой используются по умолчанию. следующего вида: Если параметры отдельных серверов (xfs, telnet и т. п.) в настройках 192.168.0.2 ws002.ltsp ws002 не указаны явно, то они берутся из SERVER. Значение «auto» в Конечно, так много нам не надо, проще прописать вручную XSERVER указывает на то, что X-сервер, запускаемый на рабочей необходимые записи. Согласно сетевым параметрам, указанным станции, должен автоматически определить видеоплату. Параметр выше в качестве примера, файл должен выглядеть таким образом: SCREEN_01 указывает, что именно должно быть запущено на 127.0.0.1 localhost.localdomain localhost первой консоли. В нашем случае это X-сервер. Список того, что 192.168.0.1 p3.home.lg p3 можно запустить на стороне бездисковой станции, вы найдете в 192.168.0.3 vm.home.lg vm /opt/ltsp/i386/screen.d. При первоначальной настройке рекоменду-

CHIP| LINUX 2/2005 ·ÂÁ‰ËÒÍÓ‚˚ Òڇ̈ËË 15

ется изменить параметр SCREEN_01 так, чтобы иметь возмож- 6:off ность запускать текстовую оболочку. Для этого необходимо создать # chkconfig --list tftp секцию с названием узла и добавить в него следующую строку: tftp on [vm] Затем перезапускаем его: SCREEN_01 = shell # service xinetd restart Естественно, что значения, указанные для конкретных ма- Stopping xinetd service: [ DONE ] шин, будут перекрывать значения по умолчанию. Starting xinetd service: [ DONE ] Теперь необходимо проверить работу tftp-сервера. Запускаем | Проверка сервисов | tftp-клиент и пробуем получить файл: Любая сверхзадача (а настройку терминал-сервера можно $ tftp localhost смело отнести к такому классу задач) решается путем ее раз- tftp> verbose деления на составные части. В нашем случае для начала необ- Verbose mode on ходимо проверить работу отдельных служб и только после tftp> get /lts/vmlinuz-2.4.26-ltsp-3 этого переходить к удаленной загрузке. getting from localhost.localdomain:/lts/vmlinuz-2.4.26-ltsp-3 to vmlinuz-2.4.26-ltsp-3 [netascii] | tftp-сервер | Received 1975410 bytes in -3.3 seconds [-4752666 bit/s] Проверяем, стартует ли суперсервер xinetd, управляющий до- Если файл не закачивается, нужно проверить, запущен ли ступом к tftp при загрузке системы, и включен ли tftp: tftp-сервер (он «слушает» запросы на 69-м порту): # chkconfig --list xinetd # netstat --inet -pan | grep ":69" xinetd 0:off 1:off 2:off 3:on 4:on 5:on udp 0 0 0.0.0.0:69 0.0.0.0:* 3342/xinetd Если сервис запущен, проверьте правильность указания подсе- Отладка LTSP тей в опции only_from, а также пути в server_args и права на файлы, которые вы пытаетесь скачать. Причем отладку рекомендуется àÒÔÓθÁÓ‚‡ÌË ‚ËÚۇθÌÓÈ Ï‡¯ËÌ˚ проводить при отключенном брандмауэре! Чтобы облегчить предвари- зультате скрипт прекращает тельную настройку ТС, реко- работу. Есть два способа из- | dhcp-сервер | мендуется использовать эму- бавиться от этого. Первый Как и в предыдущем случае, проверку работы dhcp-сервера было лятор ПК для платформы x86 (неправильный) — закоммен- бы правильно начать с утилиты chkconfig и его перезапуска. Затем VMware (http://download3. тировать строку номер 7879, необходимо убедиться в том, что он «слушает» сетевые запросы: vmware.com/software/wkst/ содержащую вызов функции # netstat --inet -pan | grep "dhcpd" VMware-workstation-5.0.0- configureDesktopFiles. Второй udp 0 0 0.0.0.0:67 0.0.0.0:* 1660/dhcpd 13124.i386.rpm). Продукт (правильный) – добавить в raw 0 0 0.0.0.0:1 0.0.0.0:* 7 коммерческий, но компания- начало файла /etc/vmware/ 1660/dhcpd разработчик предоставляет locations строку вида: возможность получить answer ICONDIR На этом пока все. пробный ключ на 30 дней /usr/share/pixmaps (www.vmware.com/vmware- После этого запуск vmware- | nfs-сервер и portmap | store/newstore/wkst_eval_reg config.pl проходит без про- Проверьте, стартуют ли сервисы при загрузке системы, и ister.jsp). К приятным нео- блем. Из сетевых настроек перезапустите их. Чтобы убедиться в работоспособности жиданностям следует отнести нас интересует возможность nfs-сервера, необязательно использовать netstat – запустите тот факт, что пользователь использования виртуального утилиту exportfs, чтобы убедиться в том, что сервер экспор- имеет возможность получать сетевого интерфейса типа тирует файловую систему: новый пробный ключ. Прав- bridged. В этом случае госте- # exportfs да, при этом ему необходимо вая операционная система в регистрационной форме будет «разделять» реально /var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0 указать новый электронный существующую сетевую кар- /opt/ltsp 192.168.0.0/255.255.255.0 адрес. Установка проблем не ту с хост-машиной (компью- вызывает, единственный мо- тер, под управлением кото- | syslogd | мент, на который необходи- рого работает VMware). И еще один важный момент: чтобы иметь возможность полу- мо обратить внимание, это Стоит учесть, что если на ва- чать сообщения о работе системных служб на бездисковых изменения в работе конфигу- шем ПК отсутствует сетевая станциях, необходимо на сервере изменить настройки службы рирующего скрипта vmware- плата, то воспользоваться syslogd, добавив в /etc/sysconfig/syslogd ключ -r: config.pl, который не может виртуальным сетевым ин- SYSLOGD_OPTIONS = '-u syslogd -j /var/resolv -r' обнаружить переменную терфейсом типа bridged не среды ICONDIR в ALT Linux удастся. В этом случае лучше Master 2.4, содержащую путь использовать интерфейс | Первая проверка | к каталогу с иконками. В ре- типа host-only. Итак, пришло время воспользоваться VMware. Сначала необ- ходимо создать виртуальную машину с объемом ОЗУ не менее

2/2005 LINUX| CHIP 16 success story ËÌÚÂÂÒÌÓ ¯ÂÌËÂ

| Переходя от виртуальных машин к реальным | Поговорим об особенностях настройки реально существующих компьютеров. Так как половина компьютерного парка коллед- жа (не забыли, о чем шла речь во вступлении?) составляют Pentium и Pentium II, то для экспериментов пришлось изъять именно такой ПК для личного использования. Им оказался компьютер фирмы Dell (корпус desktop), процессор Pentium II 233 МГц с пассивным охлаждением, объемом ОЗУ 32 Мбайт, из которых 2 отводятся для интегрированной видеоплаты S3 TrioV64+, и 17-дюймовым монитором. На борту имеется инте- грированный звук, а также чип Crystal 4236. Сетевая плата на базе чипсета RTL 8139C, 10/100 Мбит/с. Во-первых, пришлось скачать с сайта http://rom-o-matic.net образ для загрузки с дис- кеты (.zdsk) и записать его на флоппи-диск. Во-вторых, опи- сать отдельную секцию в dhcpd.conf с правильным MAC-адре- çÂÚ, Û ‚‡Ò Ì ‰‚ÓËÚÒfl ‚ „·Á‡ı — ÔÓÒÚÓ Ú‡Í ‚˚„Îfl‰ËÚ ‡·ÓÚ‡ сом (и не забыть перезапустить dhcp-сервер): VNC-ÒÂ‚Â‡ host ak { hardware ethernet 00:02:44:64:E7:04; 32 Мбайт (с большим объемом ОЗУ создавать смысла нет). fixed-address 192.168.0.4; Эмуляция жесткого диска и CD-привода не обязательна. Глав- filename "/lts/vmlinuz-2.4.26-ltsp-3"; ное — не забудьте создать сетевой интерфейс. В BIOS нужно } указать загрузку с сетевого интерфейса. После этого необходимо описать дополнительную секцию в Вернемся к примеру файла dhcpd.conf. Обратите внимание lts.conf, где указать параметры, которые будут отличаться от на строку «filename "/lts/pxe/pcnet32.zpxe";». Она указывает на принятых по умолчанию: файл, содержащий код Etherboot. Фактически протокол PXE [ak] выполняет роль поставщика кода Etherboot на ПК. Где можно XSERVER = s3 взять такой код для сетевой платы? На сайте http://rom-o- X_MOUSE_PROTOCOL = "IMPS/2" matic.net. Только лучше выбрать версию 5.2.6, так как код из 5.4.0 X_MOUSE_DEVICE = "/dev/psaux" для сетевой платы, эмулируемой VMware, не будет работать. Вам X_MODE_0 = 1024x768 78.75 1024 1040 1136 1312 768 769 необходимо выбрать NIC/ROM pcnet32:lancepci и формат .zpxe. 772 800 +hsync +vsync Полученный файл скопируйте в каталог /var/lib/tftpboot/pxe под Первый параметр указывает драйвер видеоплаты. Два следую- именем pcnet32.zpxe. щих — X_MOUSE и X_MODE_0 — описывают параметры разре- Пора включать питание на виртуальной машине. Если вы шения экрана, используемые по умолчанию (1024x768, 85 Гц). все сделали верно, то код Etherboot начнет загрузку образа В дальнейшем, когда работа терминала будет отлажена, ядра и загрузит shell. можно будет записать код в bootprom (подробная информация Если загрузка прошла успешно, при запуске «иксов» (startx) на сайте www.remoteboot.ru). вы увидите приглашение в систему. Но этого может не проис- ходит по трем основным причинам. Первая – X-сервер в авто- | Доступ к локальным устройствам | матическом режиме не может определить видеоплату. Наиболее простой способ организации доступа к локальным В качестве внешних признаков этого вы увидите мигание экра- дискам на терминале — использование Samba-сервера сов- на и постоянный перезапуск «иксов». В этом случае попробуй- местно с supermount на стороне терминала и поддержка те указать в lts.conf драйвер. Например, так: монтирования smb-ресурсов на стороне сервера. Для по- XSERVER=s3 следнего требуется пакет samba-. Что необходимо сде- Причина вторая – X-сервер на стороне ТС «не слушает» за- лать? Рассмотрим все на примере организации доступа к просы. Проверить это можно при помощи netstat: флоппи-приводу. Во-первых, необходимо скачать и устано- netstat --inet -pan | grep 6000 вить исправленную версию скриптов hotplug и rc.localdev Причина третья — вы забыли включить поддержку XDMCP (http://wiki.ltsp.org/twiki/pub/Ltsp/LocalMedia/localdev-4.1.1- в оконном менеджере. r1.tgz, см. файл README). Во-вторых, в lts.conf необходимо Кроме того, может быть еще одна причина появления серо- указать строку LOCAL_DEVICE_01 = /dev/fd0:floppy. Данный го экрана – лимит XDMCP-сессий. Такая ошибка появляется, параметр описывает имя устройства и его псевдоним. Если как правило, в процессе эксплуатации, когда количество ма- теперь перезагрузить терминал, то в /tmp (речь идет о ката- шин возрастает. По умолчанию в gdm этот параметр равен 16. логе терминала) будет создан подкаталог /drives, в котором Для его изменения пропишите в секции [xdmcp] строку располагаются точки монтирования для локальных уст- MaxSessions и укажите количество сессий. ройств. В нашем случае это floppy. При этом на терминале

CHIP| LINUX 2/2005 ·ÂÁ‰ËÒÍÓ‚˚ Òڇ̈ËË 17

запущен сервер Samba и доступна одна сетевая папка, /tmp/drives. Уже в таком состоянии можно получить доступ к дисководу от имени пользователя nobody. Для этого мож- но, например, запустить и указать строку вида smb://vm.home.lg/drives/ (для этого понадобится пакет kde- base-kio-samba) либо смонтировать данный ресурс при по- мощи утилиты smbmount: smbmount //vm.home.lg/drives ~/smb -o user=nobody Ресурс http://wiki.ltsp.org/twiki/bin/view/Ltsp/LocalMedia É‡ÙËÍ ÒÂÚ‚ÓÈ Á‡„ÛÁÍË ÔË Ó‰ÌÓ‚ÂÏÂÌÌÓÈ ‡·ÓÚ ‰‚Â̇‰ˆ‡ÚË предлагает пойти чуть дальше и использовать скрипты, кото- ÔÓθÁÓ‚‡ÚÂÎÂÈ ‚ Ò‰ OpenOffice рые бы при авторизации пользователя в системе монтировали ресурсы самостоятельно и размонтировали их при выходе из нологию, заключается не в том, возможно ли это техничес- системы. Скрипты LDA-setup.sh и LDA-shutdown.sh (ссылки ки. В первую очередь необходимо решить, а есть ли адек- найдете на веб-странице) скопируйте в /usr/local/bin. Теперь ватная замена ПО, которое использовалось до этого. Если необходимо настроить графический менеджер входа в систему. рассматривать бездисковые станции как рабочее место, где Рассмотрим, что необходимо сделать, на примере gdm. Пропи- задействован стандартный офисный набор (офисный пакет, шите в /etc/X11/gdm/PostLogin/Default следующие строки: набор программ для работы в Интернете и т. п.), то проблем PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin:$PATH: никаких нет. Но есть программа, которая чаще других упо- /bin:/usr/bin" минается как причина невозможности смены платформы /usr/local/bin/LDA-setup.sh MS Windows на Linux, – 1С. Версии 1С для Linux нет. Скрипты, располагающиеся в каталоге /etc/X11/gdm/ Но кажется, в этом году намечается прорыв, который поз- PostLogin/, запускаются после авторизации пользователя в си- волит решить данную проблему. Компания «Этерсофт» стеме. Вызов LDA-shutdown.sh пропишите в /etc/X11/gdm/ (www.etersoft.ru) разработала патч для WINE (программа, PostSession/Default. Теперь в домашнем каталоге пользователя позволяющая запускать Windows-приложения в среде появится подкаталог drives, содержащий все подмонтирован- Linux), который дает возможность использовать программу ные ресурсы. «1С: Предприятие 7.7» (www.etersoft.ru/content/view/59/). Но есть одна ошибка, которая все портит. Она кроется в Следует отметить, что патч не бесплатный, но в любом слу- supermount. Когда локальные ресурсы монтируются к /tmp/ чае его стоимость окупается за счет экономии средств при drives, то поначалу размер каталогов равен 0 (даже если диск использовании Linux. | вставлен), и это приводит к тому, что Samba показывает на подмонтированном ресурсе файлы нулевого размера. Но на Решение проблем самом деле это подкаталоги! Совет, который предлагается на http://wiki.ltsp.org заключается в следующем: необходимо за- ê‡ÒÍ·‰Í‡ Í·‚ˇÚÛ˚ пускать ls -l /tmp/drives/*. Но он не решает проблему, если Проблем при настройке не файле для XFree86-3.3.6 дискету вытащить и вставить новую. Выход, который предла- так уж много. Чаще всего /opt/ltsp/i386/etc/build_x3_ гаем мы, более простой: перед тем как обращаться к катало- ошибки возникают из-за cfg (строки 92–97). гам, необходимо воспользоваться утилитой touch. Проще невнимательности при на- После этого допишите в всего будет «повесить» на кнопку для перехода к устройствам стройке. Но на одной про- lts.conf (либо в секции следующие команды: блеме остановимся подробно. [Default], либо в секции, cd ~/drives Дело в том, что разработчи- описывающей какую-либо touch * ки LTSP забыли добавить конкретную машину) сле- в проект поддержку не- дующие строки: «Прикосновение» к точкам монтирования приведет к тому, скольких раскладок кла- XKBLAYOUT = us,ru(winkeys) что размер каталогов изменится и все заработает. Почти... За виатуры. Чтобы восполнить XKBOPTIONS = grp:ctrl_shift_ исключением поддержки кириллицы в именах файлов. Для этот пробел, необходимо toggle этого необходимо модифицировать скрипт rc.localdev, добавив модифицировать файл XKBMODEL = pc105 в описание конфигурационного файла Samba строки, указыва- /opt/ltsp/i386/etc/ Этот пример описывает кон- ющие необходимую кодировку: build_x4_cfg, добавив в сек- фигурацию для клавиатуры dos charset = CP866 цию (строки 123–129), опи- на 105 клавиш (наиболее unix charset = KOI8-R сывающую настройки клави- распространенная модель display charset = KOI8-R атуры, опцию XKBOPTIONS: на рынке) и раскладки на Option "XkbOptions" два языка, переключаемые "${XKBOPTIONS:- при помощи клавиш | Заключение | "grp:ctrl_shift_toggle"}" «Ctrl+Shift». Для XFree86- Подведем итоги. Использование ТС на базе Linux — это не То же самое необходимо сде- 3.3.6 XKBLAYOUT принимает научная фантастика или мечта энтузиастов, это реальность. лать и в конфигурационном просто значение ru. Основной вопрос, связанный с переходом на подобную тех-

2/2005 LINUX| CHIP 18 desktop ˝ÍÒÔÂËÏÂÌÚ˚

Денис Колисниченко ëËÒÚÂÏÌ˚È ÓÒÏÓÚ

Раньше достать какой-либо дистрибутив Linux было довольно сложно. На прилавках их не было, продавцы компакт-дисков зачастую вообще не знали, что это такое, а онлайн-магазинов в то время просто не существовало. Поэтому приходилось или закачивать дистрибутив из Интернета или заказывать его «где-то там», а потом и ждать целый месяц или даже больше. Сейчас Linux-дефицита уже нет — заходи в интернет- магазин и выбирай. Только что выбрать?

Действительно, от разнообразия разбегаются глаза. Некото- Mandrake с самого начала делала упор на начинающих пользо- рых начинающих пользователей вводят в заблуждение вателей, и ее дистрибутивы всегда были более дружественны- названия дистрибутивов, например Linux XP. Вот они его и ми, нежели Red Hat: несколько иной набор программ, более покупают, а потом полностью разочаровываются в Linux. Не удобные средства конфигурирования, больше тем рабочего скажу, что упомянутый дистрибутив очень плохой, но у нео- стола и т. д. Сейчас о степени «дружелюбия» мне судить доволь- пытного пользователя будет меньше проблем с полной, а не но сложно, поскольку, во-первых, после нескольких лет работы облегченной версией какого-нибудь «серьезного» дистрибу- с обоими дистрибутивами большинство операций выполняют- тива, например Linux Mandrake или Fedora Core. ся на автомате, а во-вторых, в последнее время компания Red В этом небольшом обзоре я попытаюсь облегчить вашу зада- Hat создает дистрибутивы, ничем не уступающие, на мой чу и расскажу о наиболее интересных дистрибутивах — Linux взгляд, по этому критерию продукции Mandrake. В любом слу- Mandrake 10.1, Fedora Core 3, Slackware 10.1 и Gentoo 2004.3 чае я постараюсь быть объективным, чтобы у вас не сложилось XOR. Почему именно о них? Так уж исторически сложилось, неправильное мнение о том или ином дистрибутиве. что изначально было два семейства Linux (разделение связано с Еще раз отмечу, что смотреть на дистрибутив в этой статье разной системой инициализации и произошло оно еще до по- мы будем глазами начинающего пользователя, поэтому не явления самой ОС — во времена развития Unix). Дистрибутив удивляйтесь, если я не буду приводить рекомендации по ис- компании Red Hat — это наиболее яркий представитель перво- правлению той или иной ошибки: начинающий пользователь го семейства, а Slackware — второго. Fedora Core — прямой на- не знает, как ее исправить. Во время установки и работы с си- следник Red Hat Linux, поэтому со Slackware и Fedora Core, я стемой будут проводиться небольшие тесты, а именно: сколь- думаю, все ясно. Дистрибутив Linux Mandrake является полно- ко времени занимает процесс установки, загрузка системы, стью (ну, скажем, на 99%) совместимым с Red Hat. Компания копирование файла и т. д. Время будет измеряться не какой-

CHIP| LINUX 2/2005 Ò‡‚ÌÂÌË ÒÓ‚ÂÏÂÌÌ˚ı ‰ËÒÚË·ÛÚË‚Ó‚ 19

нибудь программой, а обычным секундомером, встроенным в Параметры загрузки я выбрал по умолчанию, чтобы не тра- мобильный телефон, — это же домашние условия. Все дис- тить дополнительное время на их установку. трибутивы тестировались на следующей конфигурации ПК: Следующий шаг — выбор программного обеспечения. Duron 1,6 ГГц, 256 Мбайт памяти, винчестер 40 Гбайт, видео- Я ведь начинающий пользователь, поэтому не знаю, что для плата GeForce FX 128 Мбайт. чего используется. Просто оставляю все как есть. Как поль- Итак, начнем наш обзор с классики — Fedora Core. зователь понимающий, хочу заметить, что FC3 по умолча- нию использует среду GNOME, а KDE вообще даже не ре- | Fedora Core 3 | комендуется устанавливать. | Установка | Появляется окно «Запуск процесса установки ...», и я пере- Дистрибутив Fedora Core 3 поставляется на четырех компакт- запускаю секундомер. До этого весь подготовительный этап дисках, но программа установки, если не отмечать какие- занял 7 минут и 31 секунду. нибудь дополнительные пакеты, а оставить все как есть, тре- Началось копирование пакетов на жесткий диск. Таймер бует только первые три. программы-инсталлятора при копировании бессовестно врал: Как обычно, загружаемся с компакт-диска, нажимаем показывал 15 минут до вставки второго диска, а потом стал по- «Enter» для начала установки и одновременно запускаем секун- казывать 10, хотя прошло уже явно больше пяти минут. Чет- домер. Программа установки спросила меня, хочу ли я протес- вертый диск в моем случае (все пакеты — по умолчанию) не тировать установочные диски. Как начинающий и ничего не понадобился. Установка (до появления окна перезагрузки понимающий в установке Linux пользователь я согласился. Да, компьютера) заняла 15 минут и 38 секунд. в принципе и не хотелось лишиться нормально работающего и После первой перезагрузки система попросила указать не- уже установленного Linux Mandrake, в случае если что-то не которые параметры (дату/время, настройки дисплея), доба- скопируется, ведь FC3 должен быть установлен на его место. вить новых пользователей, настроить звуковую плату и т. д. Во время установки я не отходил от компьютера, чтобы опе- Сразу скажу, моя встроенная звуковая плата отказалась рабо- ративно отвечать на запросы программы-инсталлятора. Про- тать. Она была опознана, но звука при воспроизведении семп- верка первого диска не заняла много времени, а от проверки ла я так и не услышал. На время оставил все как есть. остальных я отказался, нажав кнопку «Continue». Программа установки очень удобна и проста — даже у начи- | Вторая перезагрузка | нающего пользователя с ней не будет проблем. Я выбирал «Вы- Сразу перезагружаю систему. Включаю секундомер (с момента борочную установку» и «Ручное разбиение дисков». Неопыт- начала загрузки ядра). Запуск системы (до окна ввода имени ным пользователям я настоятельно рекомендую сделать то же пользователя и пароля) занял на моей машине всего 1 минуту и самое. Ведь если выбрать другой тип установки, разделы вашего 8 секунд. Запуск GNOME занял еще 7 секунд. винчестера будут переразбиты, что приведет к потере всех дан- Начинаю работать с системой. GNOME версии 2.8.0 мне ных. Далее у меня случится небольшая погрешность в измере- очень понравился. Первым делом я попытался выяснить, что ниях — ведь на моей машине уже есть созданные Linux-разделы, же все-таки случилось с моей звуковой платой. Поскольку я я только изменил тип файловой системы с ext2 на ext3 и выбрал начинающий пользователь, на ум мне не пришло ничего кро- их форматирование. Если у вас до этого не была установлена ме проверки уровня громкости. Оказалось, что устройства Linux, понадобится дополнительное время на создание новых выключены, поэтому я и не слышал звук! Включаю, устанав- разделов и изменение границ уже имеющихся. ливаю максимальную громкость. Запускаю проигрыватель

àÌÚÛËÚË‚ÌÓ ÔÓÌflÚÌ˚È ËÌÒÚ‡ÎÎflÚÓ Fedora Core 3 ëڇ̉‡ÚÌ˚È ‰Îfl GNOME ·‡ÛÁÂ Ù‡ÈÎÓ‚ — Nautilus

2/2005 LINUX| CHIP 20 desktop ˝ÍÒÔÂËÏÂÌÚ˚

компакт-дисков и вставляю Extra CD. GNOME предложил | Тесты | мне или открыть диск (чтобы просмотреть дорожку данных), Переходим к самому интересному — тестам. Они будут следу- или же воспроизвести (аудиодорожки). Мелочь, а приятно. ющими: тест чтения блока данных с помощью hdparm, тест на Выбираю воспроизведение. Все равно звука нет. В общем, время копирования большого файла с раздела FAT32 в раздел звуковую плату я на время оставил в покое и решил посмот- ext3 и копирование этого же файла из одного раздела ext3 в реть, что же нового появилось в системе. другой раздел ext3. Хотел запустить привычный Midnight Во время исследования я обнаружил, что файловые систе- Commander, но не нашел его и попытался установить с помо- мы Windows (а у меня четыре Windows-раздела) не подмонти- щью утилиты «Управление пакетами». Она мне не понрави- рованы. Сделать это вручную особого труда не составляет, но лась — отлично подходит лишь для начинающего пользовате- что если человек впервые видит Linux и еле справился с уста- ля, который и сам не знает, что он хочет установить. Мне же новкой ОС, он ведь не знает, что есть команда mount! Но это лучше было ввести имя пакета и установить его. К сожалению, уже другой вопрос — как говорится, RTFM перед установкой. в этой программе такой возможности не было. Посмотрим, сколько места осталось после установки систе- Тратить время на установку MC я не стал, а решил воспользо- мы. Это можно выяснить с помощью программы df. Я устанав- ваться браузером файлов. Может, это и правильно, ведь начина- ливал систему на раздел /dev/hda5, а раздел /dev/hda6 исполь- ющий пользователь будет использовать именно его, а не какой-то зовал для каталога /home. Сама система (/dev/hda5) заняла MC, который даже не устанавливается по умолчанию. 2 446 188 блоков по 1 кбайт — всего 2389 Мбайт. На разделе У нас есть уже все необходимые программы для проведе- /dev/hda6 место практически не использовалось, поскольку ния тестов. Начнем по порядку — с hdparm. Запускаю «Тер- при установке я не создавал пользователей. минал» (находится в группе «Система» меню приложений). Результат чтения блока размером 174 Мбайт за 3,02 секунды | Программное обеспечение | довольно неплохой — это около 57,68 Мбайт/с. По умолчанию устанавливается не все программное обеспече- Теперь буду копировать файл размером ровно 700 Мбайт. ние, а только самое необходимое. Очень понравился удобный Это фильм, который мне так и не удалось просмотреть. Полу- просмотрщик изображений Photo Tool. чил следующие результаты: Также порадовал обновленный GIMP 2.0.5 (хотя я использо- 3 копирование с раздела FAT32 (/dev/hda10) на раздел ext3 вал его только для снятия скриншотов), его интерфейс стал бо- (/dev/hda6) — 2 мин 32 с; лее красивым и удобным. 3 копирование с раздела ext3 (/dev/hda6) на раздел ext3 Хочу просмотреть видео, пусть и без звука. Запускаю Helix (/dev/hda5) — 1 мин. 4 с. Player — именно этот проигрыватель используется в FC3 для Как видите, с «родными» разделами FC3 работает в два раза просмотра видео. Открываю файл, который без проблем вос- быстрее. Файловая система ext3 использовалась только потому, производился в MDK и который был у меня до этого установ- что при нормальной установке она предлагается по умолчанию. лен, и вижу следующее: «The player does not have the capabilities Ее и выберет начинающий пользователь — он же и не подозре- to play back this content». Больше комментариев нет. вает о наличии других файловых систем. Далее все как обычно — OpenOffice, Project Planner, диаграм- Все, обзор FC3 на этом заканчивается, и я решил выключить мы DIA, утилиты настройки системы. Стоп! Кажется, в группе компьютер. При выключении вижу картину из серии «Не ждали»: «Интернет» есть что-то новенькое — Firefox Web Browser. Толь- Power down ко почему-то он на английском. Исследовав опции, я так и не acpi_power_off called нашел выбора языка интерфейса — скорее всего, для его руси- И все. Так машина простояла минут пять, пока я вручную не фикации нужно дополнительно установить какой-то пакет. Ну выключил питание. Сразу вспомнил времена Windows 95: ничего, все равно бороздить просторы Интернета я в нем не бу- «А теперь питание компьютера можно отключить... вручную». ду — скоро установлю другой дистрибутив. | Диагноз | Я так и не понял, для кого разрабатывался этот дистрибутив — Преимущества Недостатки для начинающих или продвинутых пользователей? Если для на- Дружественный интерфейс Проблемы с определением чинающих, о чем свидетельствует дружественный интерфейс GNOME 2.8.0 звуковой платы GNOME, то почему так много недоработок, с которыми этот са- Хороший выбор ПО Не хватает видеокодеков мый начинающий пользователь не в состоянии справиться. Не- Удобная программа установки Проблемы с выключением питания работающая звуковая плата (у меня довольно распространенная Новые версии GNOME и KDE По умолчанию не устанавливаются модель, поэтому такая неисправность будет наблюдаться у мно- некоторые привычные программы гих пользователей), ошибки при воспроизведении видео (очень По умолчанию не монтируются актуальная задача для домашнего компьютера), неподключен- файловые системы Windows Требуют самостоятельной ные файловые системы, вдобавок ошибка при выключении пи- донастройки после установки тания — и это при том, что я поработал с системой всего лишь Программное обеспечение Ядро версии 2.6.9, GNOME 2.8.0, час. Поработай я больше, даже не могу предположить, сколько KDE 3.3.0, OpenOffice 1.1.2, GIMP 2.0.5, загрузчик GRUB недоработок я бы в ней нашел. Если же дистрибутив разрабаты-

CHIP| LINUX 2/2005 Ò‡‚ÌÂÌË ÒÓ‚ÂÏÂÌÌ˚ı ‰ËÒÚË·ÛÚË‚Ó‚ 21

вался для продвинутых пользователей, почему нет привыч- ных им программ (того же MC)? В любом случае я бы не ре- комендовал этот дистрибутив начинающим. Сначала нужно поучиться на более легком в освоении продукте, у которого все работает с самого начала, а затем переходить на Fedora Core 3, если, конечно, захочется. | Slackware | Вторым дистрибутивом я решил выбрать Slackware. Просто хо- телось на него посмотреть: ведь до этого я видел его в работе только несколько раз. А тут еще и последняя на данный момент версия — 10.1. Дистрибутив поставляется на двух дисках.

| Установка | Как обычно, загружаюсь с первого компакт-диска. Вижу эк- ран приветствия: ꇷӘËÈ ÒÚÓÎ KDE 3.3 ‚ Slackware Welcome to Slackware version 10.1 (Linux kernel 2.4.29) Что? Неужели последний дистрибутив от Slackware основан «FORMAT», в котором нужно выбрать, какие Linux-разделы на старом ядре? Возможно, разработчики посчитали, что новое форматировать, а также файловую систему. По умолчанию им не нужно. предлагается Reiser FS, но для чистоты эксперимента я выбрал Знакомая загрузка ядра предыдущей версии. Программа ext3. Программа установки работает только на английском язы- установки предложила выбрать раскладку клавиатуры, отлич- ке, поэтому, если вы его не знаете, лучше попытаться устано- ную от US: вить другой дистрибутив. Enter 1 to select a keyboard map Затем программа спросила, хочу ли я добавить найденные Неужели установка системы будет происходить в текстовом Windows-разделы в /etc/fstab. Соглашаюсь и добавляю два из режиме, да еще и без меню? Нет, меню все-таки появилось, но четырех разделов — для экономии времени. После этого выби- текстовое. Меню выбора раскладки клавиатуры содержит раю «Slackware CD or DVD», а также опцию «auto» для автома- список файлов раскладок безо всякого описания. Догадай- тического определения диска. тесь, мол, сами. Выбираю qwerty/ru.map и нажимаю «Enter». Какие пакеты устанавливать? Отмечаю «full», то есть установ- Честно говоря, текстовая программа установки выглядит как- ку всех пакетов, чтобы не терять время на их выбор. До этого весь то архаично. Такое впечатление, что устанавливается одна из подготовительный процесс занял 6 минут и 6 секунд. У вас, ско- первых версий Red Hat. Уже в Red Hat 6.0 программа установ- рее всего, этот показать будет другим. А если у вас еще и нет ки была намного удобнее, хотя тоже работала в текстовом ре- Linux-разделов, можно смело увеличить это время в два раза. жиме. Затем система предложила ввести пароль пользователя Время копирования пакетов с двух компакт-дисков заняло root. На данный момент пароля нет, поэтому можно просто 13 минут и 10 секунд. После копирования пакетов программа нажать «Enter», что я и сделал. Система сообщила, что для из- установки настраивает шрифты, документацию и выполняет менения таблицы разделов можно ввести команду fdisk. Мне другие действия. На все про все ушло 53 секунды. повезло — Linux-разделы у меня уже есть, а начинающему Вот мы и добрались до самого интересного. Программа уста- пользователю лучше вообще отложить эту затею и попросить новки не знает, откуда брать ядро. Она предлагает несколько кого-нибудь более знающего переразбить жесткий диск. Толь- вариантов — bootdisk, Slackware CD и др. Причем первый — по ко на использование текстовой версии fdisk может уйти минут умолчанию. Я его и выбрал, просто механически так получи- пять — это при условии, если знаешь, что делаешь. К тому же лось. Программа попросила вставить загрузочную дискету в fdisk не умеет изменять размеры разделов так, чтобы не унич- дисковод /dev/fd0. У меня не только нет этой дискеты, но и са- тожить всю информацию. Поэтому лучше использовать для этой цели какую-нибудь другую программу, например Partition Magic для Windows. Если вы все-таки хотите исполь- Преимущества Недостатки зовать fdisk, рекомендую на сайте dkws.narod.ru найти статью, Дружественный Неудобная текстовая англоязычная в которой я подробно описываю процесс работы с этой про- интерфейс KDE 3.3 программа установки граммой (http://dkws.narod.ru/linux/many_os.html). Высокая производительность Нет поддержки русского языка файловой системы Для начала установки нужно ввести команду setup. Появля- Быстрая загрузка системы Отсутствует пакет OpenOffice ется меню программы установки. «KEYMAP» я уже выбрал, по- Нет удобного средства разбиения этому отмечаю второй пункт — «ADDSWAP». Он позволяет ус- диска — вместо него используется тановить раздел подкачки для системы. У меня он уже создан, текстовая программа fdisk поэтому программа запросила разрешения только активизиро- Программное обеспечение Ядро версии 2.4.29, GNOME 2.6.2, вать этот раздел. После этого появилось текстовое окошко KDE 3.3, GIMP 2.2.3, загрузчик LILO

2/2005 LINUX| CHIP 22 desktop ˝ÍÒÔÂËÏÂÌÚ˚

мого дисковода. Отказаться — никак. Пришлось, не долго ду- 3 копирование с раздела FAT32 на раздел ext3 — 1 мин. 12 с; мая, нажать «Reset» и повторить весь процесс заново. Правиль- 3 копирование с раздела ext3 на раздел ext3 — 31 с. ный вариант — Slackware CD. Затем выдается список ядер. Вот вам и ядро 2.4. Slackware в два раза быстрее работает с Я выбрал ядро, которое использовалось при установке: файлами, чем Fedora Core. Файловая система одна и та же — /cdrom/kernel/bare.i/bzImage ext3. Уже и не знаю, куда отнести версию ядра 2.4 — к преиму- Следующий этап просто анекдотический. Программа хо- ществам или недостаткам. Никуда не буду относить. Пусть это чет создать загрузочный диск, который она запрашивала на будет особенностью данного дистрибутива. предыдущем этапе. Я отказался от этой возможности. После этого я также отказался и от использования HOTPLUG-уст- | Диагноз | ройств. Для экономии времени. Неудобная текстовая англоязычная программа установки сразу Настройку загрузчика LILO я производил вручную. Не пола- отпугнет начинающих пользователей. Отсутствие OpenOffice и гаясь на интеллектуальные возможности программы, я выбрал поддержки русского языка явно пошло не на пользу дистрибу- expert и ввел все параметры вручную. LILO установил в MBR. тиву. Зато это компенсируется скоростью работы файловой си- Затем добавил две записи: Linux (/dev/hda5) и Win (/dev/hda1). стемы и более быстрым запуском системы: 44 секунды против Обычно эти параметры указываются автоматически — но это в 1 минуты и 15 секунд у FC3. Этот дистрибутив можно пореко- нормальных программах установки... Для инсталляции LILO мендовать квалифицированным пользователям, знающим толк выбрал команду меню «Install LILO». в Linux, уж они-то смогут довести его до ума. После этого нужно указать различные параметры системы — тип мыши, параметры сети (я их не устанавливал), выбор запуска- | Gentoo | емых сервисов (оставил как есть). Потом программа спросила, хо- Данный дистрибутив несколько отличается от всех других, рас- чу ли я добавить свои собственные консольные шрифты. А откуда смотренных в этом обзоре. Он предназначен для очень подго- они у меня? Ясно, что я отказался от этого. Затем — параметры товленных пользователей, которые хотят собрать дистрибутив времени (UTC или не UTC, выбор региона, я выбрал Europe/Kiev). «под себя». Новичку здесь делать нечего. После установки времени нужно выбрать оконный менед- В моем распоряжении был дистрибутив Gentoo 2004.3 XOR жер по умолчанию. Программа предложила KDE, я согласился. (ядро 2.6.9). Загрузка производилась с Gentoo LiveCD. По- Последний этап — ввод пароля root. Все. Нажимаю заветную скольку на винчестер я этот дистрибутив не устанавливал, опи- комбинацию «Ctrl+Alt+Delete», и система перезагружается. С мо- шу только тесты загрузки и файловой системы: мента выбора ядра до перезагрузки прошло 4 минуты и 51 секунда. 3 загрузка операционной системы (без X Window) — 37 с; Загружаюсь. Система встретила меня голой консолью. Вво- 3 копирование файла размером 700 Мбайт с раздела FAT32 на жу имя пользователя root и свой пароль. Для запуска X Window ext3 — 1 мин. 28 с; (и KDE) нужно ввести startx. Некоторые пользователи Linux, 3 такой же файл с раздела ext3 на раздел ext3 — 47 с; даже те, которые уже использовали эту ОС, не подозревают о 3 Hdparm: 174 Мбайт было прочитано за 3,03 с; скорость чте- существовании подобной команды. ния — 57,47 Мбайт/с.

| Вторая перезагрузка | | Linux Mandrake 10.1 | Я перезагружаю систему, чтобы вычислить время второй за- Этот дистрибутив я специально устанавливал последним: до грузки. Оно составило 22 секунды до появления приглашения этого на моем домашнем компьютере был установлен именно ввести имя пользователя и пароль и еще 22 секунды на запуск он. Как обычно, начнем с инсталляции системы. X Window и KDE. Итого 44 секунды. После установки на разде- ле объемом 3 Гбайт осталось 473 Мбайт свободного места. | Установка | Как и Fedora Core 3, Mandrake поставляется на четырех ком- | Программное обеспечение | пакт-дисках. Все они нужны при установке — даже если не от- В этом дистрибутиве используется новая версия KDE — 3.3.3, и еще более новая, чем в FC3, версия GIMP — 2.2.3. KDE русифицировать никак не удалось. Я установил все па- Преимущества Недостатки кеты, а из доступных языков был только английский. И кому Простая и быстрая установка Особых недостатков нет, если не нужен такой дистрибутив? считать немного устаревшие Существенным недостатком, на мой взгляд, является отсут- версии GNOME и GIMP ствие пакета OpenOffice. Вместо него установлен KOffice 1.3.4. Хороший выбор ПО После установки система полностью готова к работе | Тесты | и не требует донастройки А вот тут началось самое интересное. Результат hdparm такой Нет проблем ни со звуком, же, как и у FC3. 174 Мбайт скопировались за 3,01 с — на 0,01 с ни с видеокодеками быстрее, чем у FC3. При копировании того же самого фильма Программное обеспечение Ядро версии 2.6.3, GNOME 2.4.1, размером 700 Мбайт я получил следующие результаты: KDE 3.2, OpenOffice 1.1.0, GIMP 1.2.5, загрузчик GRUB

CHIP| LINUX 2/2005 Ò‡‚ÌÂÌË ÒÓ‚ÂÏÂÌÌ˚ı ‰ËÒÚË·ÛÚË‚Ó‚ 23

| Тесты | Дополнительно описывать тесты я не буду, приведу уже готовые результаты: 3 Hdparm: 174 Мбайт прочитано за 3,02 с; скорость чтения — 57,55 Мбайт/с; 3 копирование файла размером 700 Мбайт с раздела FAT32 на раздел ext3 — 1 мин. 26 с; 3 копирование файла размером 700 Мбайт с раздела ext3 на раздел ext3 — 36 с.

| Диагноз | Linux Mandrake — отличный дистрибутив для начинающих. После установки пользователь получает «готовую к употреб- лению» систему. Все, что ему нужно настроить, — это сеть и подключение к Интернету. Никаких особых проблем ни при ꇷӘËÈ ÒÚÓÎ KDE ‚ Mandrake установке, ни при работе с дистрибутивом не возникло.

мечать дополнительные пакеты. Программа установки понят- | Подытожим... | на и новичку, с ней практически не бывает проблем — это я В этой статье мы рассмотрели четыре дистрибутива: Fedora знаю точно, потому что устанавливал данный дистрибутив не Core 3, Slackware 10, Gentoo 2004.3 XOR и Linux Mandrake 10.1. раз, причем на разные компьютеры. Оптимальным выбором для начинающего Linux-пользова- Весь подготовительный процесс в моем случае (напомню, теля становится Linux Mandrake. На втором месте — Fedora что я не создавал разделы — они уже были созданы) занял Core 3. Если же первым дистрибутивом начинающего линук- всего 2 минуты и 1 секунду. На копирование пакетов, выбран- соида станет Slackware, то, боюсь, что это будет его последний ных по умолчанию, понадобилось 7 минут и 2 секунды. дистрибутив: он отпугнет даже самых смелых. Если Fedora Указание дополнительных параметров (я оставил все по Core 3 и требует дополнительной настройки, то во всяком слу- умолчанию, только добавил одного пользователя) заняло чае не такой, какая нужна Slackware. Последний больше по- 1 минуту и 12 секунд. Итого установка системы заняла 10 ми- дойдет для Unix-пользователя, который всю жизнь прорабо- нут и 15 секунд. тал с BSD-системами, а теперь хочет перейти на Linux (впро- После перезагрузки приятно обнаружить, что звуковая пла- чем, такие пользователи — большая редкость). Gentoo — это та работает, консоль полностью русифицирована, все выбор профессионалов, новичок просто не поймет, что там Windows-разделы подмонтированы (причем подмонтированы нужно делать, и у него вполне резонно возникнет вопрос: «А правильно — с русскими буквами проблем нет), да и выключа- зачем, собственно, я купил этот дистрибутив?» ется компьютер без всяких осложнений. Что касается производительности, то самым нерастороп- ным оказался дистрибутив FC3. Даже не могу понять, почему, | Вторая перезагрузка | неужели из-за GNOME 2.8? Ведь результат копирования фай- На вторую загрузку (с запуском X Window и автоматическим ла, показанный в Gentoo, приблизительно такой же, как и ре- входом пользователя) понадобилось 42 секунды. После уста- зультат MDK. А версия ядра у Gentoo и FC3 одна и та же. MDK новки на разделе объемом 3 Гбайт осталось свободным показал второй результат после Slackware. Возможно, сказался 2,1 Гбайт дискового пространства. необычный подход разработчиков Slackware — предыдущая версия ядра и последние версии программного обеспечения | Программное обеспечение | (KDE 3.3). Gentoo в плане производительности показал тоже На четырех компакт-дисках Linux Mandrake вы найдете все очень хорошие результаты — ведь загрузка самого дистрибути- необходимое программное обеспечение — от офисных прило- ва производилась с LiveCD. | жений до простых игрушек. Для меня наиболее важны офис- ный пакет OpenOffice 1.1.0 и графический редактор GIMP 1.2.5. Версия GIMP не очень свежая, но это поправимо — все- гда можно загрузить новую. В качестве оконной среды по умолчанию используется

KDE 3.2 — довольно удачная и быстрая версия. Fedora Core 3 Linux Mandrake Slackware Gentoo Ядро 2.6.9 2.6.3 2.4.29 2.6.9 С воспроизведением видеофайлов нет никаких проблем — Общее время установки (мин.:с) 23:09 10:15 20:09 – (LiveCD) все фильмы, имеющиеся у меня на Windows-разделах, были Общее время загрузки 1:15 0:42 0:44 0:37 (LiveCD) воспроизведены проигрывателем Totem — даже те, для ко- Скорость чтения, Мбайт/с 57,68 57,55 57,68 57,47 торых я в Windows выкачивал из Интернета дополни- FAT32 p ext3 2:32 1:26 1:12 1:28 p тельные кодеки. Ext3 ext3 1:04 0:36 0:31 0:47

2/2005 LINUX| CHIP 24 desktop ÏÛθÚËωˇ

Петр Семилетов ÑÓχ¯Ìflfl ‚ˉÂÓÒÚÛ‰Ëfl

Мы не будем касаться темы профессиональной работы с видео и апеллировать к продуктам вроде Avid, сравнивая их с программами для Linux. У нас более приземленные цели — осветить спектр софта, предназначенного для сугубо бытовой работы с видео в Linux.

Разумеется, это не означает, что никто из мира профессио- же система лучше для работы с видео — Windows или Linux? нального видео не использует Linux: есть люди, которые И сам себе отвечал: конечно же, без сомнения, Windows! Хотя создают в Linux видеоролики, а уж о том, что голливудские он признался, что специально вопрос не изучал, только слы- студии зачастую делают постобработку картин или рендеринг шал об одной программе захвата видео под Linux и милостиво 3D-графики именно в Linux, писали уже многие IТ-издания. предположил о существовании еще нескольких. Взять хотя бы новый мультфильм «Мадагаскар». Мы не будем говорить, какая платформа лучше, а какая ху- Для начала определим темы, которые собираемся рассмотреть. же, поскольку какие-то операции удобно делать в одной сис- Во-первых, это захват видео с внешнего источника. Во-вторых, теме, а какие-то — в другой. конвертирование видео из одного формата в другой. В-третьих, Многие пользователи, имеющие дело с обработкой видео, нарезка видеоматериала. И в-четвертых — монтаж видео. предпочитают платформу Windows и примерно следующий Эта статья окажется полезной, если вы: набор софта: bTv (прием/запись ТВ-сигнала), VirtualDub 3 собираетесь конвертировать свои видеоматериалы с кассет либо NunDub (захват видео, первичная обработка, конвер- в цифровой формат, а также принимать и записывать телеви- тирование) и Adobe Premiere либо Pinacle (монтаж). Из этого зионный сигнал через карту тюнера; комплекта бесплатны разве что Virtual Dub и NunDub. А если 3 имеете некоторое количество отснятого домашнего видео добавить к этому разные дополнительные программы- (пусть даже сделанного обычным цифровым фотоаппаратом) и конвертеры и кодеки, цена программного обеспечения пере- хотите хорошо смонтировать его для показа друзьям; валит за несколько тысяч долларов. 3 желаете конвертировать видео из одного формата в другой В мире Linux уже сложилась традиция некоммерческого (например, из DVD в MPEG-4) и подыскиваете для этого оп- ПО, поэтому платить вам придется разве что за Интернет, ес- тимальный набор программ; ли нужной программы или библиотеки не окажется в вашем 3 занимаетесь на дому созданием коммерческих видеороликов; дистрибутиве Linux. Среди других преимуществ Linux — ста- 3 хотите просто иметь представление о возможностях Linux бильность самой системы и возможности файловых систем как платформы для обработки видео. (можно использовать очень быструю ReiserFS). Ссылки на Знание — отличная штука, с которой невозможно попасть программы мы будем давать в тех случаях, если утилиты поль- впросак. Не так давно на одном уважаемом сайте была опуб- зуются не столь широким спросом и их нет в стандартном на- ликована большая статья, где автор задавался вопросом: какая боре ведущих дистрибутивов Linux.

CHIP| LINUX 2/2005 ˆËÙÓ‚‡fl Ó·‡·ÓÚ͇ ‚ˉÂÓ ‚ Linux 25

| Захват видео | (по сути, аналог DivX 5), FFMPEG — Mpeg1Video (увы, при В современных дистрибутивах получение данных с цифровой выборе этого режима XdTV аварийно завершала работу), камеры или фотоаппарата доведено до полного автоматизма. FFMPEG — Huffyuv (сжатие без потерь) и XviD (еще один Например, в Mandriva и Fedora/Red Hat используется про- MPEG-4-совместимый кодек). граммная связка HAL + Gnome volume manager. Подключаете Частое употребление слова FFMPEG в названиях режимов видеокамеру или фотоаппарат к USB-порту, и в зависимости от указывает на то, что для сжатия в упомянутые форматы ис- специфики подсоединенного устройства система выполняет пользуется одноименный кодек, который надо установить до- действие. Она может предложить вам импортировать с камеры полнительно (благо это не сложнее установки любой другой фотографии и клипы, автоматически запустив программу программы в Linux). FFMPEG предоставляет не один, а целый FLPhoto или GTKam. К примеру, дешевый цифровой фотоап- набор кодеков — этим и объясняется его вездесущность. парат от Mustek просто монтируется к файловой системе, и со- Внимание! До начала сборки FFMPEG из исходника надо держимое его памяти доступно из каталога /mnt/removable1. включить опцию «enabled-shared», чтобы создать разделяе- Для импорта видео с камер, подключаемых через интерфейс мые библиотеки. Вот все необходимые для этого команды: FireWire, можно использовать ставшую почти стандартной ути- ./configure --enabled-shared литу Kino. Кстати, Kino позволит выполнять и некоторые опе- make рации линейного видеомонтажа. make install Если же надо записать видео с видеомагнитофона либо теле- ldconfig визионного канала, то одной из самых удобных программ для Последняя команда нужна для того, чтобы на всякий случай этого является XdTV (http://xawdecode.sourceforge.net). обновить кеш библиотек. Для нормальной работы XdTV у вас в компьютере должна Если у вас большой винчестер и важно качество изображения, быть установлена карта ТВ-тюнера, которая поддерживается наилучшим вариантом будет выбор захвата видео вообще без Linux. XdTV может принимать сигнал как с обычной ТВ-антенны сжатия, а уже потом вы сможете обработать полученный файл ка- (или кабельного ТВ), так и с подключенного через композитный кой-нибудь утилитой вроде Mencoder (о ней речь пойдет ниже). разъем устройства, либо через гнездо S-Video. Кроме того, в XdTV ТВ-программы можно записывать прямо в MPEG-4, если ре- встроен программный приемник телетекста — AleTV. сурсы вашего компьютера позволяют осуществлять сжатие в ре- К числу полезных функций XdTV можно отнести мозаичный альном времени. Заметим, что включенная функция сглажива- браузер каналов (в отдельное окно выводятся уменьшенные кад- ния при определенной конфигурации может пожирать довольно ры с каждого канала для наглядности переключения между много ресурсов процессора. Если компьютер слабый, можно ними), редактор каналов с возможностью назначения каналам включить запись, а само окно XdTV свернуть — расход вычисли- горячих клавиш, секция настройки графических параметров тельных ресурсов при этом значительно снижается. А при записи (яркость, контрастность и т. д.), функции сглаживания гребенки, с видеомагнитофона имеет смысл установить разрешение по- запись определенного канала в заданное время. больше и оцифровать без сжатия (при наличии огромного жест- Для Linux существует достаточно большое количество та- кого диска) или в режиме «Huffyuv», а уже после обрабатывать и ких программ-тюнеров, однако не все они, в отличие от сжимать c помощью какой-нибудь другой программы. Что каса- XdTV, умеют записывать видео в файлы. XdTV поддерживает ется битрейта видео в MPEG-4, то для ТВ подойдет от 900 до 1000, несколько режимов: несжатое видео; FFMPEG — MPEG-4 для сигнала с видеомагнитофона можно поставить выше. Звук в XdTV записывается с MP3-сжатием либо без него. Для этого используется кодек LAME (http://sourceforge.net/proj- ects/lame/), который, как и в случае с FFMPEG, устанавливает- ся отдельно. Настраивая кодек в соответствующем окне XdTV, лучше не включать переменный битрейт (VBR — Variable). Оптимальным решением будет выбор CBR (Constant) — посто- янного битрейта. В случае использования переменного могут возникнуть проблемы синхронизации видео и аудио при после- дующем редактировании записанного файла (например, если вы захотите вырезать из фильма рекламу). В заключение стоит отметить, что программу XdTV лучше (и проще) установить из исходника. Проще потому, что навер- няка можно удовлетворить ее зависимости от разных библио- тек. А лучше по той причине, что на этапе конфигурации ис- ходника будет включен флаг оптимизации под ваш процессор. | Обработка | XdTV: ÚÂ΂ËÁÓ Ë ‚ˉÂÓχ„ÌËÚÓÙÓÌ Ì‡ ‡·Ó˜ÂÏ ÒÚÓΠИмея на руках оцифрованный видеоматериал, можем присту- пать к его обработке. Собственно, этому и будет посвящена ос-

2/2005 LINUX| CHIP 26 desktop ÏÛθÚËωˇ

Available codecs: copy — frame copy, without re-encoding. Doesn't work with filters. frameno — special audio-only file for 3-pass encoding, see DOCS. raw — uncompressed video. Use fourcc option to set format explicitly. nuv — nuppel video lavc — libavcodec codecs — best quality! vfw — VfW DLLs, currently only AVID is supported. qtvideo — QuickTime DLLs, currently only SVQ1/3 are supported. xvid — XviD encoding Обратите внимание на кодек copy. Используя его, вы скопи- руете в новый файл видео в том же формате, что и оригинал. При кодировании с помощью Mencoder надо выбирать кодек для видео и кодек для звука. Формат командной строки упро- щенно таков: mencoder -ovc кодек_видео -oac кодек_звука исходный_файл -o файл результата Можно выбрать подходящие кодеки, причем как для видео, так и звука, и задать их параметры. Для сжатия в MPEG-4-совме- Kmenc: ̇ÒÚÓÈÍË ÍÓ‰Â͇ ‰Îfl ‚ˉÂÓ стимое видео мы рекомендуем использовать LAVC — тот же FFMPEG, набор доброй дюжины кодеков, в том числе MPEG-4, тавшаяся часть статьи. Обработку условно разделим на базовую MJPEG, WMV версий 1 и 2, MPEG-1, MPEG-2 и Huffyuv. (конвертирование в другие форматы, нарезка и так далее) и Вот простой пример, в котором мы конвертируем файл продвинутую (видеомонтаж). out.avi (предположим, что он сжат в MPEG-4) кодеком Пожалуй, нельзя найти лучшей утилиты для конвертиро- MPEG-2 и выводим результат в файл out.mpg: вания, чем Mencoder — родного брата популярнейшего пле- mencoder out.avi -oac copy -ovc lavc -lavcopts ера Mplayer, поставляемого с ним в одном архиве. Mplayer и vcodec=mpeg2video -o out.mpg Mencoder входят в состав практически любого популярного Как видите, сначала мы пишем, что видеокодером у нас бу- дистрибутива Linux. Mencoder — чисто консольная утилита, дет служить LAVC: -ovc lavc. Затем передаем LAVC опции, ука- поэтому любителям графического интерфейса придется обза- зывающие на использование видеокодека mpeg2video: вестись таковым от сторонних разработчиков. Например, -lavcopts vcodec=mpeg2video очень хороши в этом плане KMenc15 (http://kmenc15.source- Приведем более сложный пример, в котором фильм с DVD forge.net) и AcidRip (http://untrepid.com/acidrip/). Однако конвертируется в MPEG-4: имеет смысл освоить всю эту магию командной строки, изу- mencoder dvd://2 -oac mp3lame -ovc lavc -lavcopts чить сотни параметров Mencoder и ощутить себя действи- vcodec=mpeg4:vbitrate=1000:vqmin=2:vqmax=25:vhq:v4mv:trell: тельно всемогущим. Ведь только посредством командной autoaspect -vf scale=512:384 -lameopts cbr:br=128:aq=0 строки можно выжать из Mencoder максимум возможностей -o my_movie.avi и сделать с видео именно то, что вам нужно. Кроме того, гра- Как уже говорилось, имеет смысл почитать документацию к фические интерфейсы к Mencoder зачастую не поспевают за Mencoder — правда, русская версия руководства переведена развитием своего консольного симбионита и не предоставля- лишь частично, и раздел о кодировании видео как раз не пере- ют интерфейс к его новым настройкам. веден. Поэтому учите английский. В отличие от Windows-программ VirtualDub и NunDub, На самом деле в приведенном выше примере ничего слож- Mencoder не нуждается во внешних кодеках, а таскает кодеки ного нет. Мы выбираем в качестве аудиокодера mp3lame, а вместе с собой, на пару с Mplayer. Список форматов, с которы- для видео — опять-таки lavc. Для последнего задаем опции ми умеет работать Mencoder, столь внушителен, что можно с параметром -lavcopts: встроенный кодек — MPEG-4, битрейт уверенностью утверждать: нет такого используемого в настоя- видео — 1000, минимальные и максимальные значения кван- щее время формата видео, который бы не распознавался с по- тайзера — 2 и 25 соответственно. Важен параметр vhq — он мощью Mencoder (за исключением некоторых особо закры- указывает на то, что сжатие производится с высоким качест- тых). Форматов же, в которые он может конвертировать видео, вом, не в реальном времени, что позволяет избежать всевоз- несколько меньше, но все равно достаточно. Их список можно можных артефактов вроде выпадения кадров. Параметром получить, задав в консоли команду: -vf scale=512:384 мы применяем фильтр для видео, задавая mencoder -ovc help фильму другое разрешение — 512:384. Аналогично для LAME В зависимости от имеющейся конфигурации Mencoder вы мы тоже передаем опции параметром -lameopts — это получите список кодеков. У нас, например, на консоль выво- cbr:br=128 (постоянный битрейт 128) и aq=0 (наилучшее ка- дится такой результат: чество обработки).

CHIP| LINUX 2/2005 ˆËÙÓ‚‡fl Ó·‡·ÓÚ͇ ‚ˉÂÓ ‚ Linux 27

Итак, при использовании Mencoder помимо кодеков можно файл. Этот режим называется copy. Далее идет PCM — аналог применять также фильтры, среди которых масштабирование и WAV-файла, то есть звук без компрессии. При кодировании в изменение размеров, размывание, переворот, отзеркаливание, MP3LAME используется установленный отдельно кодек LAME. улучшение резкости и многое другое. Другой пример — конвер- И, наконец, LAVC — универсальный FFMPEG, который умеет тирование видео CD в MPEG-4. Это совсем просто: работать и со звуком. В частности, FFMPEG поддерживает AC3, mencoder vcd:// -ovc lavc -lavcopts vcodec=mpeg4 -oac copy IMA Adaptive PCM, MPEG Layer 2 и MPEG Layer 3. Одним сло- -o out.avi вом, LAME не совсем обязателен, поскольку есть FFMPEG. Источник видео читается с устройства vcd, звук копируется в оригинальном формате, для видео ставим кодек lavc/mpeg4. | Работа с Avidemux 2 | В результате получаем файл out.avi. Рассмотрим еще одну утилиту — Avidemux 2 (http://avidemux. Еще одна интересная возможность Mencoder — разбиение berlios.de). Ее можно соотнести с такой программой для большого файла на два. Проще показать это на примере. У нас Windows как VirualDub — правда, она не столь зависима от ус- есть файл movie.avi объемом 1,5 Гбайт. Мы хотим разделить его тановленных в системе кодеков/библиотек, хотя и может ис- на два AVI-файла, чтобы записать каждый на болванку. Эти ча- пользовать внешние библиотеки LAME, MAD, XviD, сти мы поместим в файлы part1.avi и part2.avi. Оригинал будет OggVorbis и другие. Сама же Avidemux 2 поставляется с неза- разрезан в месте, заданном временем 1 час 13 минут 14 секунд. менимым Lavc/FFMPEG, поэтому даже без помощи извне Вначале получим первую часть — part1.avi: может выполнять полезные задачи. mencoder -ovc copy -oac copy -endpos 1:13:14 -o part1.avi Например, в Avidemux 2 удобно вырезать рекламу из запи- movie.avi санных с телевизора фильмов. В программе есть два маркера, А теперь вторую — part2.avi: обозначенные на панели инструментов буквами A и B. Пере- mencoder -ovc copy -oac copy -ss 1:13:14 -o part2.avi movie.avi матываете фильм к месту, где начинается реклама, и ставите Как видите, мы ничего не конвертируем — просто использу- там маркер A. Затем отматываете к концу рекламы и обозна- ем кодеки copy для звука и видео. Но в первом случае, для part1, чаете это место отметкой B, нажимаете кнопку «Delete» — и мы установили временной предел, до которого копируется так с каждой рекламой. Впоследствии нужно сохранить ре- фильм: -endpos 1:13:14. Затем, для вывода в файл part2, мы на- зультат в новый файл. чинаем копировать фильм c временной позиции 1:13:14 — зада- Общий метод работы с Avidemux 2 таков: вы загружаете ви- ется это параметром -ss 1:13:14. деофайл, редактируете его, выбираете (если нужно) другие ко- Однако не надо сбрасывать со счетов и Mplayer. Его тоже деры для сжатия видео и звука, а затем сохраняете. В процессе можно использовать для конвертирования видео в последова- сохранения происходит кодирование, если таковое выбрано. тельность отдельных файлов-изображений, по одному файлу Кодеки для видео и звука выбираются нажатием на кнопки на кадр. Вот как можно перегнать фильм movie.avi в огромное «V Codec» и «A Codec» соответственно. Но чтобы избранные количество пронумерованных PNG-файлов: кодеки применились, не забудьте включить кнопки «V Process» mplayer -vo png movie.avi и «A Process», при этом, если вы не хотите использовать другой Аналогично можем вывести фильм в форматы TGA и JPEG: кодек для звука или видео, просто не включайте. mplayer -vo tga movie.avi Эти же кнопки влияют и на применение к результирующе- mplayer -vo jpg movie.avi му файлу различных эффектов. Эффекты и их настройки Что до звука, то Mencoder может кодировать его в нескольких скрываются под кнопками «V Filter» и «A Filter». Всего видео- форматах (кстати, полный их список можно получить, набрав в фильтров несколько десятков, среди которых, кроме подав- консоли команду mencoder -oac help). Самый простой из них — ления шумов, наведения резкости, сглаживания и изменения обычное копирование исходного звукового потока в новый размеров, есть и более нестандартные вещи, такие как

åÌÓ„Ë ÓÔÂ‡ˆËË ÏÓÊÌÓ ‚˚ÔÓÎÌflÚ¸ ÔflÏÓ èÓ„‡Ïχ Avidemux 2 ÔÓÁ‚ÓÎflÂÚ åÂÌ˛ acidrip ·Ó„‡ÚÓ Ì‡ÒÚÓÈ͇ÏË ‚ „·‚ÌÓÏ ÓÍÌ Avidemux 2 „Ë·ÍÓ ‚˚·Ë‡Ú¸ ̇ÒÚÓÈÍË ÍÓ‰Â͇

2/2005 LINUX| CHIP 28 desktop ÏÛθÚËωˇ

Subtitle, который позволяет отрендерить субтитры прямо в Cinelerra: ẨÂËÌ„ ‚ фильм. Выбирается внешний файл с субтитрами, а также его ‰Û„ÓÈ ÙÓÏ‡Ú кодировка, шрифт субтитров, размер и цвет. Этим функциональность Avidemux 2 не ограничивается. Хо- тите экспортировать во внешний файл звуковую дорожку фильма? Выделяете нужный фрагмент маркерами (или не вы- деляете, если нужен звук из всего фильма) и применяете пункт меню «Audio p Save audio». Нужно заменить звуковую дорожку? Проще простого — подгружаете внешний звуковой файл с ней (от WAV до MP3 и AC3) из меню «Audio» и сохраняете фильм. В итоге старая звуковая дорожка будет заменена на новую, из файла. Можно добавить к фильму и вторую звуковую дорожку — через меню ᇷ‡‚Ì˚ «Audio p Second audio track». ËÍÓÌÍË ‚ ÓÍÌ Замечание о звуке. Если вы редактируете фильм, сжатый в ÂÒÛÒÓ‚ MPEG-4, а звуковая дорожка к нему имеет переменный бит- Cinelerra рейт, то для звука придется составить временную карту. Делает- ся это с помощью пункта меню «Audio p Build VBR time map». Итак, подведем итог работе с Avidemux 2. Это очень удоб- ная программа для редактирования видео с хорошо подобран- ным набором встроенных инструментов и функций. Кроме того, в ней можно осуществлять базовый монтаж. Но могут возникнуть некоторые трудности с установкой из исходника. Например, в дистрибутиве Mandriva 2005 LE удалось собрать (и то после ручной правки конфигурационных файлов) QuickTime 4 Linux, микшерные утилиты Mix2000 и Mix2005. Ус- Avidemux 2 версии 2.0.26, хотя есть и более свежий релиз. тановка Cinelerra может потребовать некоторых усилий. Есть Тематически мы подобрались к завершающей части обра- два варианта: собирать продукт из исходника либо инсталли- ботки видео, а именно нелинейному монтажу. ровать пакет. После установки PRM-пакета (командой rpm -i - -force --nodeps пришлось сделать символическую ссылку на од- | Монтаж | ну библиотеку, которая в Mandriva называлась иначе, нежели в Слово-то какое важное — монтаж! Сразу мысленно представ- Fedora, для которой и был собран пакет. Вообще, предпочти- ляются доменные печи, заводские громадины корпусов… тельнее исходники, однако Cinelerra — продукт большой, и ар- Программы для нелинейного монтажа видео обычно имеют хив с исходниками больше пакета в несколько раз. такой же колоссальный размах. Требования к аппаратуре у Cinelerra довольно высокие (но Сама по себе эта область достаточно специфична, не востре- меньше, чем у Windows-версий продуктов Avid). Для станции бована массами, и в близких к анархии условиях Linux пока не по обработке видео это: двойной Opteron 2,4 ГГц с 4 Гбайт па- получила должного распространения. Коммерческие продукты мяти, а для узла кластера рендеринга (Cinelerra поддерживает для видеомонтажа выпускаются в основном для Mac и Windows распределенный рендеринг по сети) — одинарный Athlon и имеют заоблачные цены (впрочем, студии могут себе такое 2,4 ГГц и 512 Мбайт памяти. Впрочем, на одном мощном про- позволить). Однако есть альтернатива. цессоре Cinelerra работает тоже хорошо без всяких кластеров. Если нужна простая в использовании утилита для линейно- Между прочим, как вы заметили, в отличие от Windows- го монтажа вроде Windows Movie Maker, то в Linux вам подой- продуктов для обработки звука, Cinelerra (как и автор этой дет продукт, носящий многозначительное имя Kino. Для более статьи) отдает предпочтение процессорам AMD. Более того, серьезного дела, нелинейного монтажа, понадобится Cinelerra разработчики утверждают, что на 64-битной системе Cinelerra (http://heroinewarrior.com/cinelerra.php3). работает более стабильно, чем на 32-битной. Что до видеоплаты, то, не следуя примеру той же коммер- | Работа с Cinelerra | ческой продукции для Windows, Cinelerra в этом плане осо- Создание Cinelerra окутано тайной. Над этим продуктом тру- бых требований не предъявляет — не потребуется даже под- дится группа разработчиков, называющая себя Heroine Virtual держка OpenGL. Собственно, Cinelerra требовательна только Ltd. Все они работают в крупных компаниях, руководству кото- к трем вещам — скорости процессора, оперативной памяти и рых не нравится, когда сотрудники делают что-то на стороне. месту на жестком диске. Поэтому программисты Cinelerra вынуждены скрываться от Интерфейс Cinelerra основан на особом, разработанном в рам- публики за вывеской виртуальной компании Heroine Virtual ках проекта, движке, который больше подходит для нужд созда- Ltd. Помимо Cinelerra они ведут еще несколько проектов, отно- телей Cinelerra, чем GTK и Qt. Кстати, вы уже могли столкнуться сящихся к мультимедиа: плеер XMovie, библиотеки Libmpeg3 и с ним в продукте Broadcast2000 — предшественнике Cinelerra.

CHIP| LINUX 2/2005 ˆËÙÓ‚‡fl Ó·‡·ÓÚ͇ ‚ˉÂÓ ‚ Linux 29

Cinelerra — продукт нестабильный, так что запасайтесь терпени- же индексный файл, но уже особого (впрочем, довольно про- ем и почаще сохраняйтесь. Не стоит думать, что Cinelerra не при- стого) формата. Утилиту для создания таких файлов можно ска- годна для серьезной работы: есть люди, которые профессиональ- чать по адресу http://malefico3d.com.ar/tutor/img2list-en.html, но, на заказ, делают в Cinelerra клипы и рекламные ролики. или же самостоятельно написать простейший скрипт. Из видео- Однако сразу освоить Cinelerra не удастся. Это продукт, тре- форматов Cinelerra понимает также несжатый QuickTime. бующий чтения документации и, как показывает опыт, общения Что касается звука, Cinelerra может работать с форматами с другими пользователями. Навыки работы с Adobe Premiere вам WAV, PCM и AIFF, а также AC3 audio, OggVorbis и MP3. В по- мало пригодятся. В Cinelerra все совсем по-другому — иногда следнем случае файлы с переменным битрейтом будут помехой удобно, а иногда странно. Например, вы не можете просто так (хотя они нормально воспроизводятся), поэтому лучше либо загрузить файлы, сжатые в MPEG-1 или MPEG-2. Вернее, мо- проиндексировать их, либо заблаговременно перегнать в WAV. жете, но тогда Cinelerra прочтет только небольшой фрагмент Собственный формат «проектных» файлов Cinelerra — XML. из такого файла. А чтобы подгрузить его целиком, надо снача- Программа никуда не копирует используемые клипы и семплы, ла создать индексный файл. Делается это при помощи утили- а в XML-файлах хранит ссылки на эти материалы. ты mpeg3toc, входящей в состав Cinelerra. Она предназначена Интерфейс у Cinelerra состоит из четырех основных отде- для запуска из консоли и требует указания полного пути к ленных друг от друга окон. «Resources» — своеобразная пали- имени MPEG-файла. Например, индексный файл index13.toc тра, в которой доступны клипы, медийные файлы, эффекты и из фильма movie13.mpg получаем следующим образом: переходы. «Viewer» — просмотрщик выбранного видеоклипа, mpeg3toc /mnt/videos/test/movie13.mpg index13.toc используется также для точной нарезки видео. «Program» — Затем в Cinelerra загружаем не movie13.mpg, а именно со- поле, в котором происходит монтаж звука и видео. Вам до- ответствующий фильму индексный файл — в нашем случае ступно практически неограниченное число дорожек. это index13.toc. Cinelerra позволят применять к ним эффекты (как видео, так Для DVD индексировать надо не VOB-файлы, а IFO: и звуковые). Каждая видеодорожка оснащена огибающими vts_01_0.ifo и подобные. А видео MPEG-4 индексировать не затемнения (fade), наплыва и так далее, то есть параметры нужно, оно и так загружается нормально. этих эффектов можно регулировать динамически на протя- Cinelerra умеет также загружать (и экспортировать) последо- жении отрезка времени. Аналог окна «Program» в Adobe вательности изображений-кадров в форматах PNG, TIFF, TGA Premiere называется «Timeline». и JPEG. Однако если вы захотите загрузить в монтаж не один та- В поле «Program» можно выделить фрагмент и сохранить кой файл, а сразу много, то столкнетесь с еще одной особенно- его в окно «Resource» как клип — разумеется, виртуально, без стью Cinelerra — умением загружать по несколько файлов одно- физического переноса медиаданных. временно. Чтобы обойти эту преграду, надо использовать опять Наконец, еще одно окно — «Compositor». В нем отображается видео, посылаемое на выход из «Program» (с применением эф- На заметку домашнему видеоредактору фектов), и панель инструментов здесь почти такая же — чтобы удобнее было делать монтаж, имея перед глазами не длинную èβÒ˚ Ë ÏËÌÛÒ˚ Cinelerra полоску, разбитую на кадры, а полноразмерное изображение. Сначала о плохом. Нестабиль- мозаики, где каждый кусочек ность этой программы стала можно в любой момент без | Несколько слов напоследок | уже привычным явлением. хлопот переставить. Мы рассказали о некотором наборе софта, который кажется Но работать все-таки можно. Теперь о хорошем. Требова- нам оптимальным для работы с видео на платформе Linux. Второй несколько раздража- ния Cinelerra к аппаратуре Очевидно, что Linux предоставляет достаточно средств для ющий фактор — невозмож- не столь жестки, как у ее полноценной обработки видео, и, что очень важно, стои- ность просто взять мышью ку- аналогов для систем Windows мость этих средств по сути равна нулю. Что до функциональ- сочек видео и перенести его и Mac OS. Функций у Cinelerra ности, в плане кодеков и кодировщиков софт под Linux дает в другое место. Не умеет пока достаточно, чтобы вполне фору прочему программному обеспечению (за исключением этого Cinelerra. Вы можете ко- профессионально смонтиро- пировать фрагменты в произ- вать клип или даже фильм. разве что многоплатформенного). По части нелинейного вольные места, смещать нача- Если вы видели последний монтажа видео Linux все же отстает. Увы, крупные компании, ло фрагмента относительно фильм Ингмара Бергмана производящие ПО для нелинейного монтажа, пока мало об- места его отображения, до- «Сарабанда», то не могли не ращают внимание на Linux. бавлять пустоту перед фраг- заметить, насколько просто Однако ситуация начинает понемногу исправляться. ментом, но взять и перемес- и естественно выполнен там К примеру, появилась Linux-версия редактора Main Actor тить — ни за что. Работа в монтаж. То же самое можно (www.mainactor.com). Возможно, глядя на это, начнут подтя- Cinelerra больше похожа на сделать и в Cinelerra, хотя ее гиваться и другие — сначала в области домашнего видеомон- склеивание видео из кусоч- «выразительной мощности» тажа, а потом уже портируют своих гигантов. Впрочем, тогда ков, в то время как подход хватит и для быстрых, насы- Adobe Premiere — это, образ- щенных эффектами музы- им придется вступить в острую борьбу за пользователей но выражаясь, составление кальных видеоклипов. Cinelerra, Pitivi и других программ, и еще неизвестно, нужны ли будут к тому времени коммерческие аналоги. |

2/2005 LINUX| CHIP 30 desktop Ô‡ÍÚ˘ÂÒ͇fl ‡·ÓÚ‡

Дмитрий Моисеев …ÔÎ˛Ò ÚÂÎÂÙÓÌËÁ‡ˆËfl ‚ÒÂÈ Linux

Сотовые телефоны уже давно стали неотъемлемым атрибутом нашей жизни. Но фирмы-разработчики просто игнорируют существование альтернативных операционных систем. Они не выпускают программное обеспечение под Linux и не дают спецификаций.

Исключением является только фирма Nokia, которая выпус- #yum install ppp тила свой SDK для разработки Java Midlets. Ситуация же Также необходимо собрать нужные модули ядра (в большин- складывается следующим образом: человек, купивший себе стве систем они собраны по умолчанию) для поддержки ppp: сотовый телефон, либо пользуется софтом под Windows, либо Device drivers p Networking Support p PPP (point to point pro- пишет свою программу для конкретной модели аппарата. tocol) support В этой статье мы дадим несколько советов по использованию мобильных телефонов в связке с Linux и порекомендуем не- | Настройка Bluetooth | которые интересные программные продукты. Для использования GPRS через Bluetooth необходимо устано- вить следующие пакеты: | Использование GPRS | #yum libbluez bluez-sdp bluez-pan bluez-hciemu bluez-utils GPRS — это технология пакетной передачи данных по радио- Для поддержки bluez (официального стека протоколов каналу. Телефон здесь выступает в роли обычного модема, под- Bluetooth ветки ядра 2.6) мы должны включить несколько моду- держивающего многие AT-команды. Следовательно, проблем лей ядра. В /etc/modules.conf нужно добавить строки, которые с настройкой GPRS не должно быть ни у каких сотовых аппа- подключат модули поддержки Bluetooth: ратов. Работать можно как через дата-кабель, так и через ин- alias net-pf-31 bluez фракрасный порт или Bluetooth. alias tty-ldisc-15 hci_uart alias bt-proto-0 l2cap | Настройка ядра | alias bt-proto-2 sco Для нормальной работы с GPRS мы должны установить пакеты alias bt-proto-3 rfcomm протокола ppp (point to point): alias bt-proto-5 bnep

CHIP| LINUX 2/2005 ÏÓ·ËθÌ˚ ÚÂÎÂÙÓÌ˚ 31

| Настройка IrDA | Для связи с телефоном использовалcя Tekram IrMate 210B dongle. Чтобы он корректно работал, необходимо настроить ядро, включив в него следующие модули: Device Drivers ---> Networking support -> <*> IrDA (infrared) subsystem support ---> <*> IrCOMM protocol Infrared-port device drivers ---> <*> IrTTY (uses Linux serial driver) [*] Serial dongle support <*> Tekram IrMate 210B dongle Также необходимо установить пакет irda-utils: #yum irda-utils После этого запускаем команду /usr/sbin/irattach /dev/ttyS0 -d äÓÌÒÓθ̇fl ÔÓ„‡Ïχ gammu ӷ·‰‡ÂÚ Ó„ÓÏÌ˚ÏË ‚ÓÁÏÓÊÌÓÒÚflÏË tekram -s. Программа должна указать, что на COM-порту 1 на- ходится инфракрасный датчик фирмы Tekram. В итоге получа- Теперь внесем в /etc/bluetooth/hcid.conf следующие строки: ем устройство под названием /dev/ircomm0. options { autoinit yes; | Настройка связи через security user; USB/COM-кабель | pairing multi; Если вы счастливый обладатель кабеля, подключающегося к pin_helper /usr/bin/bluepin; //программа выдает PIN-код COM-порту, то никакой дополнительной настройки вам про- телефону по запросу изводить не надо, достаточно далее использовать устройство } /dev/ttyS0(serial port 0). device { В том случае, если вы работаете с USB-кабелем, система name "workstation"; hotplug, скорее всего, сама найдет нужный модуль и создаст class 0x3e0100; устройство /dev/ttyUSB0 или /dev/tts/USB0. Если по каким- iscan disable; //устройство не видно при сканировании то причинам этого не произошло, вам придется попробовать pscan enable; //с устройством можно устанавливать связь самостоятельно собрать все необходимые модули из раздела lm accept,master; конфигурации ядра «Device Drivers p Usb Support p USB lp rswitch,hold,sniff,park; Serial Converter support». auth enable; encrypt enable; //соединение шифруется | Настройка PPP | } Настройка демона PPP одинакова для всех видов подключения. Также нужна программа, которая по запросу выдавала бы Мы продемонстрируем ее на примере подключения к сети «Би- PIN-код телефону. Для этого директива pin_helper в разделе лайн» через IrDA. Для этого создадим файл /etc/ppp/peers/beeline: «Options» должна выглядеть следующим образом: pin_helper /etc/bluetooth/bluepin; После этого мы можем протестировать работу Bluetooth. При правильных настройках получится следующий вывод: #hcitool scan Scanning ... 00:12:62:0F:4E:2F Nokia 6230 Теперь проверим наличие DUN-сервиса для дозвона по GPRS через Bluetooth: #sdptool search DUN После этого создадим устройство: #rfcomm bind 0 00:12:62:0F:4E:2F 1 Мы только что подключили устройство 0 к bluetooth-устройству 00:12:62:0F:4E:2F на первый канал. В том случае, если вы не используете devfs или udev, файлы /dev/rfcomm* могут отсут- ствовать. Поэтому нам потребуется их создать с помощью вот такой команды: #mknod /dev/rfcomm0 c 216 0 Wammu — „‡Ù˘ÂÒ͇fl Ó·ÓÎӘ͇ Í ÔÓ„‡ÏÏ gammu На этом этап конфигурирования Bluetooth закончен.

2/2005 LINUX| CHIP 32 desktop Ô‡ÍÚ˘ÂÒ͇fl ‡·ÓÚ‡

[gammu] port = /dev/ircomm0 connection = irda Для соединения через Bluetooth конфигурационный файл будет выглядеть так: [gammu] device = 00:12:62:0F:4E:2F connection = bluephonet Функций у программы огромное количество: получение и отправка SMS и MMS, бэкап содержимого телефона, работа с записной книжкой, файловой системой телефона (загрузка картинок, мелодий и игр), календарем, проведение тестов, ре- дактирование FM-станций. Также с ее помощью можно выяс- нить код защиты телефона. Более подробно о большинстве функций вы можете узнать, набрав команду: gammu -help Nokia Developer Suite — ÔÓ„‡Ïχ, ӷ΄˜‡˛˘‡fl ‡Á‡·ÓÚÍÛ К gammu существует графический интерфейс — Wammu. Он Java Midlets позволяет читать SMS, работать с записной книжкой, редактиро- вать календарь. К сожалению, больше никаких функций gammu /dev/ircomm0 57600 noauth defaultroute usepeerdns updetach в нем не реализовано, и в настоящее время проект не развивается. persist noipdefault lock connect 'chat -v -f /etc/ppp/beeline' | Программирование для сотовых | novjccomp nopcomp noaccomp noipdefault nodeflate novj nobsd- Компания Nokia, понимая перспективность Linux как плат- comp формы, выпустила Nokia Delopment Kit. Эта среда может быть В случае подключения через Bluetooth /dev/ircomm0 нужно интегрирована с Borland Jbuilder, либо Sun JavaOne, либо суще- заменить на /dev/rfcomm0, а при работе с кабелем использовать ствовать отдельным пакетом. Она включает в себя эмулятор со- устройство /dev/ttyUSB0. После этого создадим chat-файл товых телефонов Nokia серий 40 и 60 и редактор MIDI-файлов. /etc/ppp/beeline: Также в ней имеются примеры Midlets, которые помогут начи- TIMEOUT 45 нающему программисту создавать собственные утилиты для ABORT "NO CARRIER" работы с сотовыми телефонами. | ABORT ERROR "" 'ATE1' Программное обеспечение OK AT+CGDCONT=1,"IP","internet.beeline.ru" OK ATD*99***1# èÓÎÂÁÌ˚ ÛÚËÎËÚ˚ CONNECT c Кроме упомянутых выше су- 3 gSCMxx. Графическая обо- В файл /etc/ppp/pap-secrets добавляем следующую строку: ществует еще много специфи- лочка для SCMxx. beeline ppp0 "beeline" ческих утилит для разных мо- 3 obexFTP. Аналог SieFs. Рабо- После этого достаточно набрать pppd call beeline, и мы в сети. делей телефонов. Расскажем тает через IrDA, Bluetooth. вкратце о некоторых из них. 3 Smscmd. Программа позво- | Работа с телефоном | ляет использовать телефон с Для работы с сотовыми телефонами под Linux написано ве- Siemens поддержкой SMS как консоль 3 SieFs. Виртуальная файло- ликое множество различных программ. Единственный их ог- *nix-систем. Работает в связке вая система для доступа к па- с SCMxx. ромный минус в том, что они создаются под конкретного мяти мобильного телефона производителя сотовых телефонов (а зачастую даже под кон- Siemens. Позволяет работать Motorola кретную модель). Ситуация усугубляется отсутствием единых с телефоном как с дискетой. 3 Moto4Lin. Файловый менед- стандартов. Единственная программа, которая способна 3 FlasherFlash для Linux. жер для Motorola p2k. работать с большим количеством самых разнообразных моде- Вытаскивает/заливает full- 3 MIDlet loader. Загрузчик лей телефонов, — это gammu. Список в той или иной степе- flash, eeprom. Поддерживает Java Midlets на телефон. ни поддерживаемых ею сотовых аппаратов достаточно велик. патчи V-Klay. 3 В первую очередь программа создавалась для работы с теле- SCMxx. Консольная программа Samsung для работы с телефонами 3 фонами фирмы Nokia, поэтому может полностью заменить Samsung SGH-V200 photo Siemens. Позволяет загру- utility. Программа, способная собой утилиту Nokia PC Suite. жать/удалять мелодии, логотип, «вытаскивать» фотографии Для настройки программы требуется создать файл gammurc записи адресной книги, а также из аппарата Samsung SGH- в домашней директории. Для соединения по инфракрасному отправлять и получать SMS. V200. порту в него надо вписать следующие строки:

CHIP| LINUX 2/2005 desktop „‡ÙË͇ ‡·ÓÚ‡ Ò Ô‡ÌÓ‡ÏÌ˚ÏË ÙÓÚÓ„‡ÙËflÏË 33

Александр Прокудин äÎÂËÏ Ô‡ÌÓ‡ÏÛ

Забираясь вверх по склону Ай-петринской яйлы, вы и подозревать не могли, что всего через каких-то пять метров окажетесь на вершине скалы, за которой начинается море. При виде восхитительного пейзажа пальцы сами собой начинают судорожно давить на кнопку спуска затвора оказавшейся как раз под рукой камеры. Но по возвращении домой выясняется, что сделанные снимки, какими бы резкими они ни были, не отражают целиком всю полноту картины, которую вам довелось увидеть. У вас словно украли часть пейзажа.

В принципе так и есть: соотношение сторон на фотоснимках не выглядела перекошенной. Этот принцип действует и в програм- соответствует размеру поля, воспринимаемого зрением. По сути, ме hugin, на примере которой мы и расскажем вам о том, как в фотографии оказываются прилично обрезанными справа и слева. GNU/Linux самостоятельно склеить панорамы. Вообще-то, Существует два способа решить эту проблему. Первый заключа- hugin — это графический интерфейс к серии программ ется в том, чтобы осуществлять съемку широкоугольным объек- Panorama tools (подробнее об этой серии можно узнать по ад- тивом, а затем в цифровой копии на компьютере отрезать лишнее ресу: www.path.unimelb.edu.au/~dersch/). Помимо пакетов с сверху и снизу. Но этот вариант далеко не идеален, поэтому мы исходным кодом (http://hugin.sourceforge.net) встречаются рассмотрим гораздо более перспективный метод — панораму. также бинарные пакеты для разных дистрибутивов. Принцип ее создания чрезвычайно прост. Вы делаете один кадр, затем поворачиваете камеру вправо или влево — чтобы | Начало работы | осталась часть пейзажа из предыдущего кадра, и делаете следу- Запустите программу и добавьте в проект фотографии в таком по- ющий снимок. Затем еще раз поворачиваете камеру — и так до рядке, чтобы первой была крайняя слева, а последней – крайняя тех пор, пока не добьетесь нужного результата. справа. Затем перейдите с вкладки «Фотографии» на «Контроль- Кроме того, панораму можно снимать в два-три ряда, а еще ные точки». В левой части откройте изображение с номером «0», лучше — вертикальными кадрами. Правда, во втором случае в правой — с номером «1». Это будет первая пара фотографий. штатив становится скорее помехой. Желательно, чтобы при На фотографии «0» укажите курсором в виде окружности мак- съемке панорамы оптическая ось имела строго горизонтальное симально контрастный фрагмент снимка — например, какой- направление, а экспозиция была заблокирована. нибудь резкий выступ скалы на фоне моря. Подождите, пока Сделав серию таких снимков, их останется склеить на ком- программа пройдется по парной фотографии «1», чтобы найти пьютере. Храбрые сердцем обладатели свободного времени могут на ней аналогичный фрагмент. Когда точка будет определена делать это и вручную. Всего-то надо добавить один снимок к дру- правильно, щелкните мышью внизу по кнопке «Добавить». Если гому новым слоем, сделать оба слоя полупрозрачными, а затем, вы всецело доверяете программе, просто выставьте справа фла- перемещая их относительно друг друга и вращая вокруг своей жок «Сразу добавлять точку». Добавив четыре пары контрольных оси, подогнать до полного совпадения и отрезать лишнее. Опыт- точек, кликните по кнопке со стрелкой, указывающей направо, ные же люди для этого используют специальные программы. чтобы перейти к следующей паре фотографий, и повторите опи- санную выше процедуру еще раз. | Практичное решение | Как только с добавлением минимального количества кон- Принцип действия почти всех программ для создания панорам трольных точек для всех пар будет покончено, переключитесь весьма прост. Программе нужно показать одинаковые фраг- на вкладку «Оптимизатор». Здесь необходимо выбрать способ, менты на двух снимках. Из них она формирует контрольные при помощи которого программа совместит изображения по точки, по которым затем и склеивает две фотографии. Обычно контрольным точкам так, чтобы исключить появление швов. рекомендуется указывать не меньше четырех пар контрольных Что касается способов, то они отличаются друг от друга лишь точек для каждой пары изображений, с тем чтобы панорама не типом дополнительной коррекции. Например, если злой рок

2/2005 LINUX| CHIP 34 desktop „‡ÙË͇

É‡Ù˘ÂÒÍËÈ ËÌÚÂÙÂÈÒ Í Ò‰ÒÚ‚‡Ï ÒÓÁ‰‡ÌËfl Ô‡ÌÓ‡Ï ÑÓ·‡‚¸Ú ‚Ò ÌÂÓ·ıÓ‰ËÏ˚ ËÁÓ·‡ÊÂÌËfl

настиг вас в момент съемки на коротком конце зума панорамы forge.net и компилировать отдельно. При желании эту програм- близко находящихся объектов, выберите способ оптимизации му можно запускать из командной строки, но в нашем случае «Позиции с учетом бочки (y,p,r,b)». Программа сама тихо и мир- она попросту должна быть скомпилирована и установлена пе- но уберет «бочку», заботливо «сколоченную» вашими руками. ред запуском процесса сшивки панорамы. Остается добавить, Пройдя этап оптимизации, переключитесь на последнюю что при использовании Enblend на вкладке «Сшиватель» нужно вкладку «Сшиватель» и выберите, в файл какого формата и с указать значение растушевки равным нулю. Все готово? Тогда какими параметрами вы хотите записать панораму. Можно щелкайте по кнопке «Сшить!» и ждите результата. указать тип панорамы (прямоугольная, цилиндрическая), рассчитать поле обзора, количество пикселей по горизонтали | Кадрирование | и вертикали, указать параметры постобработки – например, По результатам сшивки панорамы вам однозначно захочется ка- изменение экспозиции или гаммы. дрировать полученное изображение, чтобы избавиться от не- ровных краев. В GNU/Linux вашим инструментом с большой | Корректировка изображения | долей вероятности окажется GIMP, который до серии версий Теперь остается разобраться с еще одним непростым моментом. 2.5-2.6 работать с 16 битами на канал не будет. Потеря части цве- Мы живем в мире, где все постоянно движется: деревья от вет- товой информации будет заметно ощутима в том случае, если вы ра, облака по небу, собачки, человечки... Пока вы меняли ракурс на всех стадиях подготовки панорамы предполагаете работать с съемки, облачко переместилось и солнце выглянуло, следова- 16-битными TIFF (а значит, и снимать в RAW). Как только в тельно, освещение поменялось, а значит где-то трава стала свет- производственной цепочке появляется JPEG, битность на ка- лее, другое облачко — белее, ну и так далее. На панораме такая нал автоматически, независимо от инструмента обработки, по- смена освещения будет выглядеть так, как будто кто-то осветлил нижается до восьми — таковы ограничения формата JPEG. ее по вертикали в несколько полос, причем границы между эти- Поскольку разглядывать панорамы с экрана имеет смысл в слу- ми полосами будут видны невооруженным глазом. чае, если у вас 23-дюймовый широкоформатный Apple Cinema, Для того чтобы сгладить этот эффект, hugin после склеива- следующим шагом после сшивания будет запись файла на CD, ко- ния проходится по результату программой enblend, делающей торый впоследствии отправится в фотолабораторию, сотрудники границы склеенных снимков плавно перетекающими друг в которой, в свою очередь, тоже при любом удобном случае пома- друга. Enblend можно скачать по ссылке http://enblend.source- шут рукой вашему 16-битному снимку и сделают его 8-битным.

é·ÓÁ̇˜¸Ú ÍÓÌÚÓθÌ˚ ÚÓ˜ÍË éÔÚËÏËÁËÛÈÚ ËÁÓ·‡ÊÂÌËÂ

CHIP| LINUX 2/2005 ‡·ÓÚ‡ Ò Ô‡ÌÓ‡ÏÌ˚ÏË ÙÓÚÓ„‡ÙËflÏË 35

éÔ‰ÂÎÂÌË ԇ‡ÏÂÚÓ‚ ү˂‡ÌËfl è‰‚‡ËÚÂθÌ˚È ÔÓÒÏÓÚ ÂÁÛθڇÚÓ‚

Итого, если 16-битная обработка для вас принципиально уже) не подходят. Скопируйте файл stitch_0.9.5.py в каталог важна (а ей все-таки не стоит пренебрегать), рекомендуем ис- ~/.gimp-2.2/plug-ins/. После перезапуска GIMP вы найдете пользовать свободный Cinepaint доступный по ссылке это расширение в меню «Расширение p Утилиты» основно- http://cinepaint.sf.net; коммерческий, с закрытым кодом го окна GIMP. К файлу сценария прилагается очень внятно Pixel32 (www.kanzelsberger.com, цена — от $32 до $100) или по- написанная документация в формате PDF. Но поскольку корно ждать интеграции GIMP с GEGL, теперь уже точно на- принцип действия тот же самый, зарываться в нее с головой меченной на осень 2005 года. Пользователи GIMP 2.3-2.4 мо- вам не придется. Только не забудьте пройтись по конечному гут заметно упростить себе жизнь, попросив у сотрудников файлу программой enblend. лаборатории ICC-профиль их принтера и подключив его че- Во-вторых, есть приложение autopano-sift, доступное по рез вкладку «Управление цветом» («Color management») в ди- ссылке http://user.cs.tu-berlin.de/~nowozin/autopano-sift/. алоге настройки приложения. Оно написано на Mono/C# и предназначено для автомати- ческого определения контрольных точек, а также прекрасно | Другие варианты решения | интегрируется с hugin. По сути, autopano-sift выглядит как И последнее. GNU/Linux не была бы такой популярной опе- один большой мастер создания панорам и рекомендуется рационной системой, если бы на каждый vim не приходился новичкам и тем, кто не хочет вручную указывать hugin кон- свой Emacs. В случае с панорамами также всегда найдутся трольные точки. Полученный в результате работы програм- иные варианты решения задачи. мы PTO-файл можно открыть как проектный файл hugin. Во-первых, существует модуль для GIMP под названием Напоследок хочется все-таки посоветовать еще раз как Panorama stitch. Он работает при условии, что этот графиче- следует обдумать вопрос инвестиций в штатив. Нет ничего ский редактор собран с поддержкой расширений на Python. обиднее шевеленки в интересном кадре. | Проверить это просто: посмотрите в меню окна GIMP с лю- бым изображением. Если увидите там Python-Fu — значит Советы и примечания все в порядке. Если нет – просто пересоберите GIMP с клю- чом --enable-python. Имейте в виду, что для Panorama stitch ä ‚ÓÔÓÒÛ Ó ÔÓËÁ‚Ó‰ËÚÂθÌÓÒÚË нужен GIMP версий 2.2.x. Любые версии ниже 2.2, а также Если панорама клеится из не- ше просто уйти пить чай, что- новые (от 2.3.0 и выше) для этого расширения пока (или скольких файлов в формате бы не слышать надрывное JPEG, когда размер каждого жужжание жесткого диска. из них при всем желании ни- Тем, кто пользуется цифровы- как не больше 3 Мбайт, то ми зеркальными камерами со на время сшивки можно спо- сменной оптикой, будет инте- койно переключиться на со- ресно поковыряться во вклад- седний виртуальный рабочий ке «Камера и объективы», где стол и проверить почту или можно указать массу парамет- убить пару монстров (если ров для текущего объектива успеете). На скорости рабо- вроде угла обзора, фокусного ты почтового клиента или расстояния при съемке, кроп- качестве прорисовки юнитов фактора и пр. Hugin умеет неприятеля это сильно не читать такие данные из EXIF- отразится. А вот если вы тегов ваших фотографий. Это скормили hugin десяток в конечном итоге позволяет полноразмерных 16-битных добиться более естественного 燷≇ÂÏ ÂÁÛÎ¸Ú‡Ú ‚ GIMP файлов в формате TIFF, луч- вида панорамы.

2/2005 LINUX| CHIP 36 desktop àÌÚÂÌÂÚ

Юрий Меркулов è·„ËÌÓχÌËfl

Конец 2004 года принес нам два долгожданных события в мире Linux и свободного ПО в целом — выход финальных версий Mozilla Firefox (9 ноября) и Mozilla Thunderbird (5 декабря). По прошествии полугода уже можно говорить, что этот браузер стал одним из самых успешных проектов Open Source за всю историю.

Классическая Mozilla — интегрированный пакет для работы в Mozilla. Совместную жизнь интегрированного пакета и его мо- Интернете, с честью исполнивший свою роль в истории. Сами лодых отпрысков резонно стараются не допускать. разработчики не переставали говорить, что это не более чем Концепция продуктов Mozilla.org гармонично вписывается новый движок, торопливо завернутый в газетную бумагу ин- в общую структуру Linux: они гибко конфигурируются, мас- терфейса Netscape 4, плюс поддержка вкладок. Словно рожде- штабируются и похожи на конструкторы, где каждый пользова- ственский пирог, Mozilla была нарезана на кусочки независи- тель может сотворить собственное неповторимое лицо и функ- мых приложений: браузер Firefox, почтовый клиент циональный набор программы. Базовые дистрибутивы Firefox Thunderbird, редактор веб-страниц NVU, календарь-плани- и Thunderbird не отягощены массой специфических функций, ровщик Sunbird и IRC-клиент Chatzilla (доступен как расшире- их реализация лежит на совести сторонних производителей — ние). Популярность Firefox постоянно растет, версии 1.0.х за- авторов расширений. Кроме того, правкой текстовых конфигу- гружены более 50 млн раз, программа становится серьезным рационных файлов можно также достичь заветной цели. Ос- игроком на рынке браузеров. В Финляндии доля Firefox пере- новные конкуренты Firefox и Thunderbird представляют собой валила за критическую отметку в 30%, после которой продукт монолитные продукты с традиционным подходом к конфигу- перестал восприниматься как альтернатива. Другие страны рированию через пункт меню «Настройка» или ему подобный. также с завидным постоянством жонглируют двузначными Если в вашем дистрибутиве не оказалось Firefox и числами, когда дело касается процентного соотношения при- Thunderbird, их всегда можно загрузить из Интернета. Рус- сутствия этого браузера на рынке. Весьма любопытным фак- ские версии программ находятся на сайте Mozilla.ru Team. том в связи с этим является то, что сама Microsoft, долгие годы Переведенные на русский язык расширения находятся на фо- утверждавшая, что Internet Explorer устраивает каждого, и не руме http://forum.mozilla.ru в разделах «Расширения» для желающая дальше развивать свой браузер, опомнилась и взя- каждой программы. лась за разработку новой, седьмой по счету версии. | Строительные кирпичики | | Браузер-конструктор | Описывать базовые возможности браузера и почтового кли- Не так давно Mozilla.org официально перестала поддерживать ента, рассказывать о миграционных проблемах, советовать, развитие интегрированного пакета Mozilla Suite, полностью со- с чего начать, можно где угодно, только не в печатном изда- средоточив усилия на развитии двух приложений — Firefox и нии, посвященном Linux. «RTFM», как говорят на форумах. Thunderbird. Остальные приложения развиваются сторонними Все это можно найти на русском языке в разделе «ЧаВо» сай- компаниями. Например, HTML-редактор NVU поддерживает- та www.mozilla.ru. ся силами компании Linspire, выпускающей одноименный дис- Гораздо интереснее поговорить о многочисленных расши- трибутив Linux-based. На эти события следует закономерная рениях, раскрывающих истинную мощь продуктов Mozilla.org. реакция создателей дистрибутивов Linux — в их детища теперь Установка расширений в Firefox и Thunderbird немного отли- включаются Firefox, Thunderbird и NVU вместо старой доброй чается. В Firefox выберите меню «Файл p Открыть файл» и за-

CHIP| LINUX 2/2005 Firefox Ë Thunderbird 37

тем в окне «Типы файлов» отметьте нижний пункт «Все фай- лы». Теперь откройте файл с расширением и перезапустите браузер. В Thunderbird эта процедура выполняется гораздо проще: «Инструменты p Расширения», затем нажмите внизу окна кнопку «Установить». Расширения могут выполнять самые различные функции — управлять вкладками, добавлять кнопки/меню на панели, уп- равлять загрузкой файлов, фильтровать рекламу, служить хоро- шим помощником в резервном копировании данных, а также осуществлять множество мелких сервисных функций. Расши- рений существует великое множество, и разобраться с нуля во всем этом красочном калейдоскопе становится весьма сложно. Понимая, что новичкам будет довольно сложно освоить всю ветку форума «Расширения», Mozilla.ru Team регулярно выпус- кает Extension Pack — большой набор расширений для Firefox, объединенный общим удобным инсталлятором. Загрузить его Mozilla.ru „ÛÎflÌÓ ‚˚ÔÛÒ͇ÂÚ Ò‡Ï˚ ‡ÍÚۇθÌ˚ Ô·„ËÌ˚ можно также из раздела расширений http://forum.mozilla.ru. Í Firefox ‚ ‚ˉ ӉÌÓ„Ó Ô‡ÍÂÚ‡ Файл называется extpack-<номер версии>.xpi. Сначала поговорим о наиболее интересных расширениях. Настроить расширение можно вручную или воспользоваться готовыми фильтрами. Загрузите какую-нибудь страницу, най- | Scrapbook | дите на ней элементы рекламного характера. В контекстном Firefox имеет очень неприятную особенность — с его помощью меню есть пункт «AdBlock изображение». Если вы его выбере- невозможно открывать HTML-страницы с локального диска, те, то изображение пропадет со страницы и в будущем никогда если в пути/имени присутствуют символы кириллицы. Отчасти не будет загружаться. Всякий раз вручную убирать рекламу на эта ошибка браузера сыграла немалую роль в росте популярно- каждой странице — дело хлопотное и не совсем благодарное. сти расширения Scrapbook, позволяющего каталогизировать Гораздо эффективнее прописывать не полностью адреса, ваши страницы на локальном диске, помещая их в веб-альбом, а только ключевые слова, которые встречаются в рекламе. На- который отображается на боковой панели браузера. В контек- пример, «banner». Пропишите его качестве фильтра, и любая стное меню браузера добавляются новые пункты, связанные с картинка с этим словом в адресе загружаться не будет. сохранением страниц, — «Сохранить» и далее по контексту. Но можно пойти еще дальше, так как расширение поддер- Эти пункты легко отличить от других, так как им присваивают- живает импорт фильтров из текстовых файлов. Выберите «Ин- ся разноцветные значки. Например, для сохранения HTML- струменты p Реклама (AdBlock) p Свойства». В открывшемся страницы — оранжевый, для сохранения файла — зеленый и т. окне выберите «Настройки AdBlock p Импорт фильтров». Те- д. Сохранять можно не только HTML-страницы целиком, но и перь просто укажите текстовый файл, в котором хранится мас- кусочки страниц — текст, файлы, графику, выделенные фраг- сив подстрок, и фильтры окажутся в настройках расширения. менты. Расширение имеет встроенный HTML-редактор, поз- + Возможность стопроцентной фильтрации рекламы. воляющий из уже сохраненных страниц вырезать лишние кус- – Отсутствие каких-либо фильтров по умолчанию. ки — баннеры, меню, графику и т. д. + Элегантное, удобное средство сохранения и управления страни- | Tabbrowser Extensions | цами на локальном диске, имеющее множество сервисных функций. TBE — одно из самых известных расширений для Firefox и – В случае использования другого браузера извлечение данных из Mozilla. У многих оно входит в «джентльменский набор» и веб-альбома представляет собой долгую и нудную работу, так как сразу после установки Firefox (Mozilla) автоматически ста- физически заголовки страниц на диске являются лишь цифровыми вится TBE. Одно время даже выходила специальная модифи- идентификаторами. кация Firefox под названием BlackDiamond, фактически | Adblock | представляющая собой Firefox + TBE + небольшой тюнинг в При веб-серфинге многочисленная реклама чаще всего представ- виде измененных настроек по умолчанию. О TBE постоянно лена баннерами, кнопками, роликами. Она раздражает, расходу- ведутся споры, но одно отрицать нельзя — это самое извест- ет трафик, и ее желательно как-нибудь скрыть, не загружать на ное расширение в мире Mozilla. ваш компьютер, экономя нервы и драгоценное время. Можно Существует мнение, что TBE замедляет работу браузера. указать Firefox загружать изображения только с оригинального Это не совсем так. TBE замедляет скорость загрузки браузера, сайта, но это не решает проблему в полной мере. Для стопроцент- так как в память загружается довольно много дополнительно- ной блокировки рекламы создано расширение AdBlock. В качест- го кода. На работу движка Gecko ни одно расширение не мо- ве настроек расширения заносятся некоторые подстроки. Если в жет влиять принципиально. адресе (ссылке) встретится какая-либо подстрока из настроек, за- Расширение устанавливается так же, как и все остальные, грузка любой информации с этого сайта будет запрещена. каких-то своих особенностей у него нет. После перезагрузки

2/2005 LINUX| CHIP 38 desktop àÌÚÂÌÂÚ

браузера будет предложен выбор: «Обычные настройки» или «Облегченные настройки». Особого значения это не имеет, так как эти настройки отличаются несколькими второстепенными пунктами, к тому же их всегда можно будет поменять позже. Посмотрите на панель меню. У вас появился пункт «Вкладки». В нем собраны все функции TBE (не настройки, а именно функ- ции), которые дублируются правой кнопкой мыши на панели вкладок. Так что, когда все устаканится — то есть TBE будет иде- ально настроено под вас, — этот пункт можно будет скрыть встроенными средствами. Кроме того, в списке возможных кно- пок для панели инструментов появятся три новые: «Список вкла- док», «Загрузить набор вкладок» и «Недавно закрытые вкладки». Настройки вызываются из меню «Вкладки p Настройки Tabbrowser Extensions». Если меню «Вкладки» скрыто, наст- ройки можно вызвать стандартными средствами — через ме- неджер расширений. Tabbrowser Extensions ‰‡ÂÚ ÔÓÎÌ˚È ÍÓÌÚÓθ ̇‰ Á‡Í·‰Í‡ÏË, Настройки представлены стандартными раскрывающимися ÔÓÁ‚ÓÎflfl ‰‡Ê ÓÚÏÂÌËÚ¸ Á‡Í˚ÚË ÒÚ‡Ìˈ˚ списками (как, например, в «Настройке своего рабочего стола» KDE). Разобраться в огромном количестве пунктов меню, как | Flashgot | ни странно, довольно просто, так как все настройки интуитив- В Linux на сегодняшний день поддерживается лишь одна про- но понятны и тесно связаны между собой. грамма — это Downloader for X, которую можно загрузить по Все остальные расширения для работы с вкладками в Firefox адресу www.krasu.ru/soft/chuchelo, тем более что она входит во лишь частично повторяют функциональный набор TBE. По- многие дистрибутивы Linux. этому подробное описание данного расширения позволяет в После установки расширения в контекстном меню Firefox полной мере представить все разнообразие настроек вкладок. появляется несколько новых пунктов: «Загрузить с помощью + «Все в одном». TBE заменяет множество других расширений, а Flashgot», «Загрузить все с помощью Flashgot», «Создать гале- также обладает несколькими уникальными функциями, которые рею». Первый пункт наиболее часто используется, он просто до сих пор не реализованы ни в одном другом расширении, а кроме передает адрес в качестве аргумента менеджеру загрузок, кото- того, имеет удобный выверенный интерфейс, работает как в рый принимается за работу. Второй пункт меню передает все Firefox, так и в Mozilla. ссылки со страницы в качестве аргумента. А третий позволяет – Очень тяжелое расширение. Много повторяющихся настроек. создавать галереи из изображений текущей страницы. TBE отключает некоторые стандартные настройки и конфлик- + Удобный инструмент для интеграции внешнего менеджера за- тует с расширениями, имеющими аналогичные функции. Файлы грузок. конфигурации засоряются множеством настроек, причем после – Поддержка только Downloader for X в Linux, то есть отсутст- удаления TBE дополнительные строки остаются. Очень чувстви- вие альтернативы при выборе менеджера загрузок. тельно к версии браузера: чуть более новая или старая версия (сборка) — и TBE не работает или работает с многочисленными | Bookmarks Backup | ошибками. Поэтому перед его установкой обязательно проверяй- Среди программ, создающих резервные копии пользователь- те, подходит ли версия TBE вашей версии браузера. ских данных, стоит выделить данное расширение как наибо- лее простое и стабильное. Несмотря на скромное название, Дополнительные расширения оно умеет создавать резервные копии практически всех поль- зовательских данных. Исключение составляют лишь расши- èÓÔÛË ËÁ ‡Ò¯ËÂÌËÈ рения, которые в случае краха профиля браузера все равно Помимо уникальных расшире- ную книжку со вкладками. придется переставить (но настраивать их не требуется — на- ний для браузера и почтового Расширения на сегодняшний стройки расширений также сохраняются). По умолчанию клиента существует группа день исчисляются сотнями, и расширение создает резервные копии внутри профиля (о том, универсальных расширений, уже сейчас можно смело сде- что это такое и где он расположен, будет сказано позже), но работающая в обоих типах лать вывод, что их возмож- разумнее держать копии в более безопасном, произвольном программ. Например, Mouse ности у Firefox и Thunderbird месте. В каталоге резервных копий создаются подкаталоги с Gestures включает поддержку практически безграничны. именами дней недели, в которых уже находятся пользова- «мышиных» жестов в Firefox Одних только игр для Firefox тельские данные. Из этого можно сделать вывод, что расши- и Thunderbird (впервые бы- написано уже с десяток. На- ли представлены широкой пример, Cards — большой рение хранит копии за последние семь дней. В случае краха публике в Opera), QuickNote набор пасьянсов, мечта лю- профиля браузера (причин для этого может быть множество) добавляет удобную запис- бой секретарши. нужно просто переписать содержимое последнего по дате ре- зервного каталога в каталог профиля.

CHIP| LINUX 2/2005 Firefox Ë Thunderbird 39

èÓ͇ ‚ Linux c Firefox ÏÓÊÂÚ ‡·ÓÚ‡Ú¸ ÚÓθÍÓ Ó‰ËÌ ÏẨÊÂ Bookmarks Backup ÔÓÏÓÊÂÚ ·˚ÒÚÓ ÔÂÂÌÂÒÚË Ì‡ ‰Û„ÓÈ ÍÓÏ- Á‡Í‡˜ÂÍ — Downloader 4 X Ô¸˛ÚÂ ̇ÒÚÓÈÍË, Á‡Í·‰ÍË Ë ËÒÚÓ˲ ·‡ÛÁÂ‡

+ Простой удобный инструмент для резервирования пользова- + Элегантный способ выделиться, «бесплатно» оживить свои тельских данных. письма. – Невозможность резервного копирования установленных рас- – Расширение в большей степени создано для баловства и имеет ширений. проблемы с работой в Thunderbird 1.0. Теперь перейдем к расширениям почтового клиента Thunderbird. | Quote Colors | Настройка и раскраска цитирования всеми цветами видимого | Outbox | диапазона. Можно менять оттенок фона и цвет шрифта в зави- Простое расширение, которому давно уже пора поселиться в симости от уровня цитирования, а также толщину и стиль ли- базовой сборке Thunderbird. Дело в том, что у почтового кли- ний цитирования, их местоположение (слева, справа, сверху, ента нет на панели инструментов кнопку, выполняющую функ- снизу — причем линии можно комбинировать: если, например, цию отправки сообщений из папки «Исходящие», а во время выбраны все четыре пункта, то получается рамка). составления сообщения вы не найдете кнопку «Отправить поз- + Очень красиво раскрашивает и оформляет письма, наглядно же». Это очень неудобно, приходится каждый раз обращаться к отображает цитаты. меню, что занимает немало времени даже при средних объемах – Давно не обновляется. корреспонденции. Outbox добавляет эти кнопки на панели. Кроме того, вместо двух кнопок «Получить сообщения» и «От- | Quick Text | править сообщения» можно разместить одну «Отправить/полу- С этим расширением в Thunderbird можно создавать до деся- чить сообщения», что, согласитесь, намного удобнее. ти макросов — клавиатурных сокращений, которые будут + Добавляет жизненно необходимые функции. превращаться в слова или фразы. В макросах можно исполь- – Претензия к разработчикам Thunderbird: давно пора включить зовать переменные. это расширение в базовый дистрибутив. + Помогает при постоянном наборе сообщений, где встречаются одни и те же термины, особенно если для их набора требуется пе- | Tagzilla | реключать раскладку клавиатуры. Расширение совершенно иного плана, позволяющее встав- – Всего лишь десять макросов, только «Alt»+<цифра>. лять в письма случайные подписи. Для своей работы оно тре- бует библиотеку jslib, которая ставится так же, как и расшире- | Конфигурирование вручную | ние (http://jslib.mozdev.org). В настройках вы указываете Настройка продуктов Mozilla.org под себя не ограничивается неизменную часть подписи, а также файл, из которого будут одними лишь расширениями. Существует также возможность браться строки для случайного выбора. Чаще всего в качестве правки текстовых конфигурационных файлов, которые распо- таких строк выступают известные афоризмы или просто лагаются внутри профиля. Таких файлов три: смешные фразы. После этого можно указать, автоматически 3 user.js — в корневом каталоге профиля; или вручную расширение будет ставить подпись и открывать 3 userChrome.css — в подкаталоге /chrome; ли при этом окно расширения, чтобы иметь возможность 3 userContent.css — в подкаталоге /chrome. ручного выбора строки из базы. Из дополнительных возмож- Профили программ расположены в домашнем каталоге: ностей стоит отметить функцию извлечения строк из писем и 3 Firefox — /.mozilla/firefox/<имя профиля>; помещения их в файл вашей базы. 3 Thunderbird — /.thunderbird/<имя профиля>.

2/2005 LINUX| CHIP 40 desktop àÌÚÂÌÂÚ

К версии 1.5 осенью программы обзаведутся многоязыч- ными инсталляторами, новым встроенным менеджером загрузок (Firefox). Появится возможность перетаскивать мышкой панели инструментов — как, например, во всех про- граммах рабочей среды KDE. К версии 2.0 в конце года планируется внести встроенную поддержку переназначения горячих клавиш, новую систему разграничения прав, новый менеджер паролей. В Firefox появятся встроенные сервисы для глобального поиска, из- менится работа с закладками и вкладками. Будет налажено взаимодействие с проектом Lightning для интеграции кален- даря с Thunderbird. Ни Mozilla.org, ни конкуренты не спят: параллельно разви- ваются программы из состава KDE — браузер Konqueror и поч- товый клиент Kmail, платный интегрированный пакет Opera, Tagzilla ÓÊË‚ËÚ ‚‡¯Â ÔËÒ¸ÏÓ, ‚ÒÚ‡‚Îflfl ‚ ÌÂ„Ó ÒÎÛ˜‡ÈÌ˚ ÔÓ‰- программы из лагеря GNOME — Epiphany и Evolution. Каждая ÔËÒË, ‡ÙÓËÁÏ˚ ËÎË ÒϯÌ˚ Ù‡Á˚ из них имеет свои особенности и круг сторонников, что в мире Linux давно уже стало обычным явлением. Но лишь программы В user.js устанавливаются разные свойства браузера. Mozilla.org принесли в Linux воистину массовый, популярный Часть из них описана на сайте http://mozdev.org. Все значе- набор инструментов для работы в Интернете. Не стоит также ния переменных могут быть изменены и через about:config в забывать и о том, что Mozilla.org создает кросс-платформенные строке ввода адреса. Есть только маленькая тонкость. Ког- приложения. Windows, Linux, Mac OS — везде вы увидите одни да вы создадите новый профиль или переустановите Firefox и те же Firefox и Thunderbird, а это значит, что, освоив их в од- или Thunderbird, вам будет необходимо заново вводить все ной ОС, вы без труда сможете выполнять те же самые задачи и эти значения. При использовании user.js достаточно будет в другой. Учитывая, что основное пополнение сообщества всего лишь перенести этот файл. пользователей Linux происходит за счет миграции с других си- В userChrome.css вы можете редактировать отображение стем, отсутствие необходимости в изучении нового ПО для ра- основных элементов браузера, стили, создать свой собствен- боты в Интернете становится неплохим козырем. В этом свете ный стиль Firefox и Thunderbird. Обратите внимание, что Firefox и Thunderbird являются универсальными и надежными файл userChrome.css не существует по умолчанию. После ус- проводниками в бескрайний мир Глобальной сети. | тановки Firefox/Thunderbird вы найдете userChrome-exam- ple.css, содержащий примеры некоторых настроек, который Безопасность можно переименовать в userChrome.css. Он предназначен для переопределения стилей страниц, которые загружаются ÖÒÚ¸ ÎË ‰˚˚ ‚ Firefox? в ваш браузер. Файл userContent.css также не существует по Как и предсказывали недоб- с заражением компьютеров умолчанию (вместо него userContent-example.css). рожелатели, как только весть с установленной на них опе- Множество примеров настроек текстовых конфигураци- о Firefox разнеслась по всему рационной системой Windows онных файлов можно найти в разделе «ЧаВо» на сайте миру и он поселился на мил- через почтовый клиент www.mozilla.ru. лионах жестких дисков поль- Outlook Express и браузер зователей Сети, так сразу в Internet Explorer — наиболее | Перспективы развития | нем стали находиться одна яркий тому пример. Но, к сча- за другой уязвимости. стью, пока неизвестны ре- Все это множество расширений и настроек демонстрирует гиб- Тут следует сделать одну ого- альные случаи заражения кость и мощь продуктов, созданных Mozilla.org. На дворе 2005 ворку. Само по себе обнару- компьютеров через уязвимо- год, уже с успехом были выпущены финальные версии продук- жение уязвимости — это не сти в Firefox и Thunderbird. тов, и встает закономерный вопрос: а что же будет дальше? Ос- более чем антиреклама для Так вот, возвращаясь к основ- новные планы разработчиков простираются к версии 2.0. программного продукта, бью- ной теме, стоит отметить тот К выходу версии 1.1 летом у Firefox и Thunderbird будет щая в случае с Firefox по его факт, что эти дыры пока носят поновому организовано меню настроек, в нем появятся имиджу «самого безопасного лишь теоретический характер, вкладки. Кроме того, будут усовершенствованы система об- браузера». Вторым этапом в и дальше «лабораторий» про- новления программ и менеджер расширений. В Thunderbird подобных ситуациях принято блема не распространяется. считать написание и исполь- Программисты Mozilla.org появится проверка орфографии на лету — с подчеркивани- зование программ, которые оперативно латают найденные ем красной волнистой чертой слов с ошибками, как во мно- эти уязвимости используют бреши, выпуская новые вер- гих текстовых процессорах. Станет возможным обновление в деструктивных целях. Мас- сии в рамках стабильной вет- myspell до версии, присутствующей в текущем вариан- совые эпидемии, связанные ви разработки. те OpenOffice.

CHIP| LINUX 2/2005 desktop ÓÙËÒÌ˚Â ÔËÎÓÊÂÌËfl ÌÓ‚˚Â ‚ÓÁÏÓÊÌÓÒÚË OpenOffice.org 2.0 41

Юрий Меркулов äÓÌÚÓ‡ Ô˯ÂÚ… Ò˜ËÚ‡ÂÚ Ë ËÒÛÂÚ

Linux долгое время росла сиротой — в ней не было достойного офисного пакета. Равно как поезд не может ехать без рельс, так и жизнь на десктопе немыслима без хорошего офисного пакета. Свято место пусто не бывает, и на эту роль был приглашен пакет OpenOffice.org.

| Первый взгляд | пакета, так что даже в таком, казалось бы, пустяковом вопро- Сегодня стабильная ветка развития OpenOffice.org располага- се работа ведется фундаментально и сообща. Если использу- ет уже четвертым релизом 1.1.4. Но на подходе совершенно ется QuickStart, то приложения буквально выстреливают на новый продукт — OpenOffice.org 2.0. Пока выпущена только рабочий стол, задержка практически не ощутима на глаз. бета-версия, но по ней уже можно оценить функциональ- OpenOffice.org 1.1.х не обеспечивал такой скорости загрузки, ность предлагаемого продукта. а на слабых машинах польза от QuickStart вообще сводилась к Версию OpenOffice.org 2.0 можно назвать колоссальным нулю. OpenOffice.org 2.0 проворно открывает небольшие до- скачком вперед по сравнению с веткой 1.1. Это становится кументы в «родном» формате, но по-прежнему невыносимо заметно с первых секунд, когда вы запускаете установку долго обрабатывает большие и сложные документы Microsoft офисного пакета. Сразу же открывается просторный полигон Office. Значительно быстрее стали открываться новые окна и выбора компонентов для установки. Мгновенно бросаются в закрываться документы, невооруженным глазом заметно уве- глаза позитивные изменения: офисный пакет обзавелся про- личение скорости работы интерфейса. граммой для работы с базами данных, которая раньше была только в Star Office, средствами синхронизации с карманны- | Интерфейс | ми ПК и другими мелкими вспомогательными утилитами. Внешний вид OpenOffice.org преобразился до неузнаваемости — После установки можно заметить, что у всех программ сме- ему мог бы позавидовать любой здравомыслящий хамелеон. нились значки, так же как и у документов для каждого из Подобно этому уникальному живому существу, OpenOffice.org компонентов офиса. 2.0 умело маскируется в той среде, в которую его установили. В Windows XP с включенной стилизацией окон OpenOffice.org | Скорость | 2.0 не отличить от Microsoft Office 2003 благодаря аналогич- OpenOffice.org 2.0 загружается немного быстрее предыдуще- ным графическим «выпуклостям» панелей инструментов. го релиза, демонстрируя симпатичную заставку. На сайте Классическая схема Windows XP придает OpenOffice.org 2.0 http://oosurvey.gratismania.ro/polls/ проходило открытое голо- такой же классический вид. В KDE наш хамелеон прикидыва- сование по поводу выбора лучшей заставки для новой версии ется приложением QT, а в GNOME блистательно играет роль

2/2005 LINUX| CHIP 42 desktop ÓÙËÒÌ˚Â ÔËÎÓÊÂÌËfl

OpenOffice.org 2.0 ‚ÒÚ˜‡ÂÚ çÓ‚˚È ‰ËÁ‡ÈÌ ËÍÓÌÓÍ Ì‡Ò ÌÓ‚˚Ï ÎÓ„ÓÚËÔÓÏ ‰Ó‚ÓθÌÓ ÒËÏÔ‡Ú˘Ì˚È

Gtk2-приложения. Но все же OpenOffice.org 2.0 по-прежнему не использует ни Gtk2, ни QT. Замолвим словечко о панелях инструментов, которые те- перь можно «таскать» за левые края по всему рабочему экра- éÚÔ‡‚ËÚ¸ ÔÓ˜ÚÛ ÚÂÔÂ¸ ÏÓÊÌÓ ËÁ β·Ó„Ó ÔËÎÓÊÂÌËfl Ô‡ÍÂÚ‡ ну приложения, как это принято делать в KDE или Microsoft Office. Если раньше, к примеру, при работе с таблицей ниж- Поддержку же OpenDocument в своих продуктах может осу- няя строка панели «Форматирование» заменялась «Табли- ществить каждый, так как формат имеет открытые специфи- цей», то сейчас новая панель по умолчанию появляется в ви- кации. Физически он обладает той же XML-структуру, что и де дополнительного окошка, которое можно прикрепить в OpenOffice.org 1.0 (sxw, sxc и т. д.). Мы попробовали сохра- произвольном месте. Закончили работу с таблицей, нет на- нить с десяток текстовых документов и таблиц в новом фор- добности лицезреть ее панель — она автоматически скрыва- мате и заметили, что файлы документов получаются на ется. По умолчанию теперь нет боковой панели инструмен- 5–10% объемнее, чем в OpenOffice.org 1.0. Это не страшно, тов. Часть ее функций перекочевала в верхние панели, а часть если учесть, что документы Microsoft Office в 5–10 раз больше стала пунктами меню программы. Настройка панелей теперь расходуют дисковую память. не вызывается правой кнопкой мыши, а находится в меню Документы Word и Excel открываются без проблем, но, как «Tools p Customize p Menus». На первый взгляд, это откат на- уже говорилось выше, очень медленно. 10-мегабайтный файл зад. Но процедура настройки стала намного проще: все икон- DOC с таблицами и картинками загружался около 20 секунд ки представлены в списках, достаточно только выбрать необ- на Barton 2500+ с объемом оперативной памяти 1 Гбайт. Че- ходимые. В OpenOffice.org 1.1.x далеко не все функции были стно говоря, мы уже начали думать, что офис завис, так по умолчанию укомплектованы значками, приходилось вруч- как после пяти секунд работы индикация многозначительно ную создавать новые элементы панели инструментов. замерла. Но если раньше даже такие нервные ожидания не гарантировали отсутствия катастрофической потери форма- | Совместимость | тирования в документах, то теперь наконец-то все MSO- Несомненно стоит отметить, что в OpenOffice.org 2.0 теперь документы открылись в приемлемом виде. Где-то чуть-чуть появилась поддержка OASIS OpenDocument XML format, ко- съезжали картинки, где-то таблица выехала на сантиметр за торый недавно был утвержден в качестве стандарта Европей- поля, но ничего непоправимого не произошло. Совмести- ской комиссией. Конечно, никто не собирается законода- мость с MSO улучшилась. Очень хочется верить в то, что и у тельно обязывать использовать OpenDocument как формат вас также не возникнет серьезных проблем с открытием доку- официального документооборота, в отличие, например, от ментов MSO, ведь даже разные версии этого офиса порой не- чертежей: для себя можно рисовать как угодно, а в работе все- корректно открывают собственные документы. таки лучше придерживаться стандартов. Но здоровая тен- денция налицо: мир старается уйти от закрытого, кишащего | Конвергенция приложений | вирусами (слово «небезопасный» не отражает и сотой доли В любые документы OpenOffice.org 2.0 теперь можно встав- проблем) формата, используемого в Microsoft Office. Первые лять не только графику, но и звуки, видео. В офисный пакет ласточки вспорхнули еще в прошлом году, когда одна из встроен собственный медиаплеер для проигрывания контен- крупнейших отечественных компаний, Сбербанк России, та не выходя из программы. Реальную ощутимую пользу от полностью запретила использование формата DOC в офици- этого нововведения получит OpenOffice Impress, так как пре- альном документообороте, внедрив открытый, безопасный, зентации теперь могут превращаться во что угодно — от про- но уже устаревший RTF. Формат OpenOffice.org 1.0 не являет- смотра годового отчета компании по выпуску смычков под ся открытым, несмотря на свободный статус программы. Раз- Лунную сонату Бетховена до презентации новой модели авто- работчики так и не создали отдельную документированную мобиля под фильм «Такси». библиотеку, используя которую, можно было бы в любой про- Одним кликом теперь можно послать документ по почте — грамме открывать документы формата. В связи с тем что на панели красуется кнопка с изображением летящего кон- OpenOffice.org 2.0 переориентируется на OpenDocument, верта. Из меню «File» предлагается широкий выбор действий: ждать энтузиазма в продвижении старого формата не стоит. послать просто как документ, как PDF-вложение, как HTML-

CHIP| LINUX 2/2005 ÌÓ‚˚Â ‚ÓÁÏÓÊÌÓÒÚË OpenOffice.org 2.0 43

ä‡ÒË‚Ó ÓÙÓÏËÚ¸ ‰ÓÍÛÏÂÌÚ ÚÂÔÂ¸ ÏÓÊÌÓ Ë ‚ ÔÓ„‡ÏÏ Writer èÓ ÒÚÂÔÂÌË ËÌÚ„‡ˆËË OpenOffice.org Ì ÛÒÚÛÔ‡ÂÚ MS Office

страницу. В меню «Tools» появился заботливый Wizard, кото- здавать собственные оригинальные стили. Также применение рый поможет новичкам отослать письмо с текущим докумен- стилей теперь допускается назначать на горячие клавиши. том. Не спешите падать со стула от смеха и умиления: письмо История последних открытых документов теперь по умол- может быть как электронным, так и бумажным. Во втором чанию хранит 10 записей, а в заголовке окна всегда пишется случае Wizard поможет быстро и грамотно создать как само реальное имя файла, а не строка «Title» из свойств документа. письмо, так и конверт к нему, в котором вы собираетесь по- слать подготовленный документ. Адрес берется из адресной | OpenOffice.org Writer | книги, которая также является частью OpenOffice.org 2.0. Самым востребованным приложением в офисном мире все- Кроме того, новая версия имеет встроенную систему защиты гда был и остается текстовый редактор. Более половины документов цифровой подписью. документооборота (служебные записки, приказы, письма) Улучшился экспорт в широко известный формат PDF. осуществляется с его помощью, единственным же «конку- В свете того что большинство документации в качестве ко- рентом» можно считать электронные таблицы (накладные, нечного формата использует именно этот формат, можно авансовые отчеты, штатные расписания, сметы). предположить, что OpenOffice.org 2.0 удастся немного потес- В меню данной программы также произошли своеобраз- нить легендарный TeX (LaTeX). Поддержка PDF появилась в ные изменения — появился отдельный пункт «Table», отве- уже с OpenOffice.org 1.1, однако в новой версии предлагаются чающий за работу таблиц, и теперь она стала поистине более широкие настройки экспорта этого формата — вплоть впечатляющей. Но основным новшеством второй версии до указания процента сжатия. Кроме того, есть возможность можно смело назвать возможность создавать таблицы внут- создавать PDF-документы с гиперссылками, которые могут ри уже существующих, причем с неограниченным уровнем указывать как на локальные страницы в документе, так и на вложения. Кнопка создания таблицы находится прямо на ресурсы в Интернете. Экспорт в PDF в OpenOffice.org 2.0 панели. Пользователю больше не нужно тянуться в левый предоставляет новые настройки сжатия JPEG-файлов. В пре- край экрана, нажимать на кнопку «Вставить» и лишь затем дыдущих версиях пользователь мог выбирать только между выбирать пункт «Таблица». Еще одна полезная функция — тремя ступенями DCT-сжатия, теперь же появился выбор это возможность создания таблиц непосредственно из текс- между DCT- или LZW-сжатием без потерь. та. Для этого нужно лишь выделить текст и выбрать в меню В OpenOffice.org 2.0 имеется обновленный каталог графи- функцию «Text to table», и текст окажется внутри автомати- ческих фигур — Custom Shapes, во многом аналогичный ката- чески созданной таблицы. Возможна и обратная функция. логу Auto Shapes из пакета Microsoft Office. Огромный выбор Вы выделяете в существующей таблице произвольное коли- фигур производит сильное впечатление, а рисование слож- чество текста, затем выбираете пункт «Table to text», и этот ных схем перестало быть неразрешимой проблемой. Внутри текст форматируется в чистом виде. Ячейки можно отделять каталога графических фигур несложно найти FontWork символами табуляции, абзацами, а также независимыми ко- Gallery — аналог WordArt. По своим возможностям утилиты лонками — как вам больше нравится. приблизительно одинаковы, но FontWork Gallery можно ис- Под барабанную дробь следует произносить такое улучшение пользовать в любом типе документа OpenOffice.org. OpenOffice.org Writer как возможность вычисления в таблицах. Отныне все делается значительно проще: можно мышью После нажатия клавиши «F2» появляется строка, как в таблич- выделить часть текста и перетащить на окно выбора стилей. ном процессоре, где можно назначать любые, даже самые за- После этого программа предложит сохранить текущий стиль мысловатые формулы. Вычисления могут производиться между как новый. Таким элегантным способом вы можете легко со- соседними таблицами в пределах одного документа (файла).

2/2005 LINUX| CHIP 44 desktop ÓÙËÒÌ˚Â ÔËÎÓÊÂÌËfl

ëÓÁ‰‡ÌË ڇ·Îˈ˚ ËÁ ÚÂÍÒÚ‡ ‚ ‡Ï͇ı ‰‡ÍÚÓ‡ Writer àÌ͇ÔÒÛÎflˆËfl Ú‡·Îˈ˚ ‚ ÚÂÍÒÚÓ‚˚È ‰‡ÍÚÓ

Форматирование таблиц также стало выполнять намного ствия не сказываются на отфильтрованных рядах, действуя проще. Появились новые опции и кнопки на панели для вы- как выделение нескольких ячеек без этих рядов: равнивания, а существующие еще с давних времен теперь не 3 удаление содержимого ячеек; запрятаны в глубоких подменю, а вызываются прямо с пане- 3 удаление рядов (удаление отдельных ячеек выключено); ли инструментов, из «Table» или контекстного меню. Есть 3 изменение формата ячеек, включая стили. также отдельные кнопки для выделения строк и столбцов Кардинальные изменения произошли в работе с примечани- таблиц, заливки и отдельных ячеек текстурами. В таблицах ями. В новом Calc открылись богатые возможности формати- теперь можно оперировать сразу несколькими ячейками рования примечаний: (такая возможность пригодится при редактировании боль- 3 окно можно двигать, менять размер; ших документов). Направление текста указывается для каж- 3 текст можно произвольно форматировать, применять стан- дой ячейки отдельно и по умолчанию совпадает с тем, что дартные атрибуты; присутствует на странице. 3 стрелку и линию можно также гибко настраивать; Расширена статистика документа. Она теперь может пока- 3 можно менять цвет фона, делать его градиентным или зали- зывать общее количество слов, символов и т. д., в том числе и тым текстурой. для выделенного текста. Наконец-то на панели появилась Текст в таблицах можно теперь писать справа налево, что кнопка предварительного просмотра страницы. Почему это не делает возможным использование программы для составле- было сделано до сих пор — не понятно. Специальная вставка ния документов на азиатских языках. вызывается сочетанием клавиш «Ctrl+Shift+V». С помощью комбинации «Ctrl+стрелка вверх» и «Ctrl+ | OpenOffice.org Impress | стрелка вниз» можно двигать параграфы в документе. У программы полностью сменился движок, что позволяет ис- В документах, открытых только для чтения, доступно ко- пользовать в презентациях множество ранее недоступных эф- пирование информации в буфер обмена. фектов. Для повышения совместимости между Impress и Microsoft PowerPoint расстояние между строками больше не | OpenOffice.org Calc | зависит от используемого шрифта. В программе OpenOffice.org Calc появилась возможность вставлять таблицы из внешних файлов через пункт «Insert p | OpenOffice.org Draw | Sheet from file». Таблице может содержать до 65 536 строк вме- Панель инструментов рисования полностью переделана, для сто 32 000. Это сделано для совместимости с Microsoft Excel. того чтобы обеспечить работу с новыми видами фигур: «Basic», Ячейки таблиц теперь могут иметь диагональные бордюры. «Block Arrow», «Symbol», «Flowchart» и «Stars & Banners». Эта функция вызывается из меню «Format p Cells p Borders». Геометрию фигур в «Custom Shapes» можно гибко редакти- Теперь в левом окошке можно выбрать диагональные линии. ровать и преобразовывать в трехмерный формат, а также ис- Тот, кто когда-нибудь составлял турнирные таблицы, оценит пользовать в утилите Fontwork для рисования потрясающе эту возможность: диагональное форматирование образует по- красивых надписей (говоря языком GIMP — эмблем). лосу, которая простирается от левого верхнего до правого нижнего угла. Ведь никто же не будет играть сам с собой — | OpenOffice.org Base | поэтому ячейки зачеркивают одной диагональной чертой. В этом новом отдельном приложении вы можете создавать Когда ячейки отфильтрованы с помощью AutoFilter, формы, рапорты, таблицы. Все базы данных хранятся в одном Standard Filter или Advanced Filter, ниже перечисленные дей- файле с общим форматом данных. Драйверы OpenOffice.org

CHIP| LINUX 2/2005 ÌÓ‚˚Â ‚ÓÁÏÓÊÌÓÒÚË OpenOffice.org 2.0 45

Команда разработчиков OpenOffice.org состоит всего из 50 человек, а как много они сделали и продолжают делать. Все- го два года труда было потрачено на разработку новой версии, а продукт словно перешел из 9 класса школы сразу в аспиран- туру. Гигантская фирма Microsoft струдом поспевает за неболь- шой группой людей, с честью выполняющих свою работу. Нет, нельзя сказать, что OpenOffice.org опережает Microsoft Office в развитии, но факт максимального сближения их функцио- нальных возможностей, несомненно, очевиден. Наше мнение такое, что лентяям и консервативным людям лучше работать с Microsoft Office. Пока еще рано с кровью отрывать людей от насиженных мест — благодарности можно и не дождаться. Но наличие множества уникальных функций, поддержка OpenDocument, бесплатность, кросс-платформенность, ис- тинная интеграция компонентов — все это крутится перед èËÏÂ ‰Ë‡„Ó̇θÌÓ„Ó ÙÓχÚËÓ‚‡ÌËfl носом чертовски сладким пряником. Из-за абсолютно неза- щищенной реализации макросов документы MSO являются 2.0 позволяют запускать цифровые, строчные, а также функ- сегодня основным рассадником вирусов на предприятиях. ции «дата-время», описанные в SQL92 для dBase, flatfile и А зачем вам это надо? Linux — лучший антивирус, это понят- электронных таблиц. но, но есть менее радикальное антивирусное средство — Для создания новых баз данных в OpenOffice.org Base со- OpenOffice.org, тем более что одно другому не мешает. здана мощная система различных Wizard, что позволит даже Если же вы уже давно работаете в Linux, смеем предполо- далеким от тонкостей работы с базами данных людям быстро жить, что OpenOffice.org вы видели, знаете и как минимум освоиться в новом приложении. используете наряду с KOffice или GNOME Office. Тогда добро пожаловать в новый формат OpenDocument, заряженный | Итоги | полнофункциональным офисным пакетом для избранных, Время показывает, что единственным серьезным конкурен- видящих мир в стиле Матрицы, и домохозяек, роняющих сле- том Microsoft Office в течение последних лет является только зу счастья при виде симпатичных Wizard. | OpenOffice.org. В первую очередь это обусловлено тем, что в OpenOffice.org уже давно имеется приемлемая поддержка История создания OpenOffice.org форматов MSO, а значит возможна безболезненная миграция пользователей. Сегодня, хотя это и юмор, можно сказать, что ÑÓÓ„ÓÈ ÛÒÔÂı‡ MS Office тоже стал кросс-платформенным приложением — OpenOffice.org был зачат в многие языки мира, избавил- настолько здорово он заводится в Linux из-под CrossOver недрах немецкой фирмы Star ся от неудачного десктопа, Office 4.0! Но если серьезно, реальным плюсом OpenOffice.org Division, назывался в ту пору в котором присутствовала является то, что на фоне роста популярности Linux этот Star Office и носил статус free- своя панель задач и аналог офисный пакет стал мостиком, связывающим две абсолютно ware. Когда пакет достиг вер- кнопки «Пуск». Русскоязыч- разные операционные системы. На рынке программ для ра- сии 5.1, его популярностью ные пользователи почувство- боты в Интернете таким связующим звеном являются, заинтересовалась небезызве- вали себя в своей тарелке, пожалуй, продукты Mozilla.org. стная фирма Sun, разработчик когда за дело взялась фирма языка программирования ALT Linux, которая не только Налицо тенденция к упрощению делопроизводства, мно- Java. Sun купила Star Division перевела интерфейс офисно- гие новые функции ориентированы на облегчение трудоем- и начала сама распространять го пакета, но и разработала ких операций и оказание помощи в освоении продукта новы- Star Office 5.2, но уже на русские словари для провер- ми пользователями. В очередной раз разработчики уделили платной основе. В то же вре- ки орфографии и расстановки много внимания совместимости. OpenOffice.org 1.0 обзавелся мя Sun открыла его исходные переносов. В 2002 году вы- поддержкой MSO 97 и выше, в OpenOffice.org 1.1 эта под- тексты и основала проект шел Star Office 6.0, который держка улучшилась, к тому же добавился экспорт в PDF, а OpenOffice.org — бесплатный отличался большим количе- версия 2.0 несет очередное улучшение совместимости с MSO, офис на основе Star Office ством приложений и широ- экспорта в PDF, а также поддержку нового, утвержденного 5.2. OpenOffice.org стал быст- ким набором вспомогатель- ро развиваться, меньше чем ных инструментов. В 2003 Европейской комиссией, стандарта OpenDocument. за год обзавелся полной году вышел Star Office 7.0, поддержкой документов MS а OpenOffice.org 1.1 был Windows Linux Office 97 и выше (до этого признан лучшим офисным OpenOffice.org 1.1.4 58 Мбайт 76 Мбайт была поддержка только MS пакетом года на Open Choice Office 95), был переведен на Awards 2003. OpenOffice.org 2.0 79 Мбайт 105 Мбайт

2/2005 LINUX| CHIP 46 desktop „‡Ù˘ÂÒÍË ËÌÚÂÙÂÈÒ˚ ç‡ ËÌ„Â Илья Александров ΄ÍÓ‚ÂÒ˚ Одной из причин, по которой пользователи переходят с Windows на Linux, является возможность выбора графической оболочки. Мощные и много- функциональные KDE и GNOME, безусловно, хороши, однако многих не устраивает их большой размер и невысокая скорость работы. Но мир свободного ПО не ограничивается этими двумя графическими средами. В этой статье речь пойдет как раз об альтернативах KDE и GNOME.

| Xfce | окон для *nix. При первом запуске пользователя встретит Xfce открывает наш обзор не случайно, так как не относится к девственно чистый рабочий стол с запущенным на нем пе- оконным менеджерам типа Window Maker и Fluxbox — это реключателем виртуальных экранов и Xfce main panel — именно окружение рабочего стола, как KDE и GNOME. Не главной панелью, расположенной по центру экрана. После бойтесь, скачивать монстра объемом 300 Гбайт не придется, клика левой кнопкой мыши на рабочем столе появится ме- Xfce с плагинами занимает около 18–23 Мбайт в архиве. Ис- ню, из которого можно будет запустить терминал, восполь- ходники и скомпилированные пакеты (кому как удобно) нахо- зоваться главным меню KDE или GNOME для запуска про- дятся на официальном сайте проекта: www.xfce.org. Последняя грамм, настроить Xfce с помощью пункта «Settings», а также версия программы на момент написания статьи была 4.2.2. выключить или перезагрузить компьютер. Клик правой Прежде чем приступать к инсталляции Xfce, стоит убедиться в кнопкой мыши выведет список всех запущенных на теку- наличии необходимых библиотек и модулей в системе. Вот что щем виртуальном экране программ. Управлять размерами нам понадобится: pkgconfig, библиотека GTK версии 2.2 и стар- окон можно посредством колесика мыши. ше, libxml2 и libdb. Также необходимы librsvg и libstartup-notifi- На главной панели находятся пункты меню, где сгруппиро- cation. Все это можно загрузить прямо с сайта разработчика. ваны различные утилиты. Например, в пункте «xterm» можно Для установки менеджера в систему никакой ручной прав- обнаружить несколько терминалов, в «Netscape» находятся бра- ки конфигурационных файлов не требуется, достаточно ввес- узеры и почтовые клиенты, а в «xedit» расположен набор текс- ти в консоли xfce_setup, и при перезагрузке X-сервера вы товых редакторов. В любой пункт меню можно добавить свое увидите новый интерфейс. Вернуть старую конфигурацию приложение, выбрав из раскрывающегося диалога «add icon». можно командой xfce_remove. Программы в Xfce можно запускать в определенной части экра- Первое, что бросается в глаза при старте Xfce, — это ско- на, что довольно удобно при работе с большим количеством рость загрузки. The Cholesterol Free Desktop Environment приложений. Например, набрав команду GIMP -geometry (именно так звучит полное название оконного менеджера) +50+50, вы увидите растровый редактор посередине экрана. является производительным и нетребовательным к ресур- А команда Gkrellm -xrm "*Desk:3" запустит Gkrellm на третьем сам окружением, не похожим ни на один другой диспетчер виртуальном рабочем столе.

CHIP| LINUX 2/2005 Ó·ÁÓ ÓÍÓÌÌ˚ı ÏẨÊÂÓ‚ 47

åÛθÚËωˇ ‚ Xfce: XMMS Ë Mplayer ç‡ÒÚÓÈ͇ ÏẨÊÂ‡ ÓÍÓÌ Xfce

Ознакомившись в общих чертах с оконным менеджером, бу- поиска и удобством в работе. Могильщиком Мidnight Сommander дет благоразумно заняться его настройкой. он, конечно, не станет, но своих пользователей найдет.

| Файловый менеджер Xffm | | Графическая настройка Xfce | Одной из главных изюминок Xfce является собственный фай- Вся настройка Xfce может быть осуществлена через графиче- ловый менеджер — Xffm, поэтому о нем следует рассказать от- ский интерфейс, что является существенным плюсом для дельно. Щелкнув в его окне по выделенному документу правой многих пользователей. Для запуска программы-конфигура- кнопкой, вы увидите объемное меню пунктов из 15-17. Оно тора надо кликнуть по кнопке «Settings» на главной панели. позволит вам открыть файл в новом окне, создать, удалить, пе- Перед вами откроется окно с несколькими пунктами. Начнем реименовать файлы и каталоги, просмотреть свойства сфоку- с файлового менеджера. Программа для настройки Xffm сированного элемента, найти документы и многое другое. представляет собой окно, разделенное на две части — «Пара- Копировать файлы удобнее всего перетаскиванием объекта из метр» и «Значение». одного окна Xffm в другое (количество открытых окон не огра- Напротив «TERM» пропишите терминал, который исполь- ничено). Тут же можно найти утилиту для запуска программ, зуется в вашей системе, например gnome-terminal. Параметр вызывающую панель для ввода пути к приложению. Если вы «XFFM_HOME» нужен для определения вашей домашней ди- хотите, чтобы файловый менеджер при старте начинал, допус- ректории, путь к которой и требуется ввести. тим, с директории /tmp/src, введите в консоли команду: В правом нижнем углу файлового менеджера присутствует стро- xffm /tmp/src ка состояния, где выводится информация о директории, в которой В общем, с Xffm разобраться несложно. Менеджер радует высо- находится пользователь, выделенном файле и состоянии корзины. кой скоростью, отличной функциональностью, мощной системой Когда эта информация не помещается в строку, менеджеру прихо- дится увеличивать размеры окна, что довольно неудобно. Для «XFFM_STATUS_LINE_LENGTH» установите значе- Продуктивная работа ние 48. Теперь на экран будут выводиться лишь первые 48 сим- ÉÓfl˜Ë Í·‚Ë¯Ë Xffm волов сообщения, поэтому деформации окна не произойдет. «XFFM_MAX_PREVIEW_SIZE» устанавливает максимальный «Alt+A» — выбор всех файлов в данном каталоге размер картинок, изображения которых будут демонстриро- «Alt+Shift+A» — отмена выбора всего «Alt+D» — создание копии выделенного файла ваться прямо в окне файлового менеджера. Если изображение «Alt+Shift+D» — убрать/показать скрытые файлы превышает допустимый размер, то оно показано не будет. «Alt+E» — очистка корзины «SMB_USER» — здесь введите имя пользователя и пароль «Alt+F» — поиск в данном каталоге Samba в таком формате: user%password (если, конечно, пользу- «Alt+H» — перемещение в домашнюю директорию етесь этой программой). Напротив «SMB_CODESET» нужно «Alt+I» — информация о выделенном файле ввести кодировку, используемую для отображения ресурсов «Alt+K» — создание нового файла компьютеров вашей локальной сети, например: ISO-8859-1. «Alt+N» — создание новой директории Если активировать опцию «XFFM_APPEND_FILES» значе- «Alt+Q» — выход из программы нием «ON», файлы в папках будут располагаться по дате по- «Alt+R» — переименование выделенного файла «Alt+W» — закрытие текущего окна следнего изменения. «Ctrl+X» — удаление выбранных файлов Параметры «XFFM_HIDE_BOOK», «XFFM_HIDE_LOCAL», «XFFM_HIDE_NETWORK», «XFFM_HIDE_APPS», «XFFM_

2/2005 LINUX| CHIP 48 desktop „‡Ù˘ÂÒÍË ËÌÚÂÙÂÈÒ˚

ç‡ÒÚÓÈ͇ Xfce „‡Ù˘ÂÒÍËÏË ÛÚËÎËÚ‡ÏË ì‰Ó·ÒÚ‚Ó Ë ÙÛÌ͈ËÓ̇θÌÓÒÚ¸ Ì ‚ Û˘Â· ÔÓËÁ‚Ó‰ËÚÂθÌÓÒÚË

HIDE_FIND», «XFFM_HIDE_TRASH», «XFFM_HIDE_ После настройки файлового менеджера можно заняться клави- FSTAB» можно включить, установив значение «ON». По умол- атурой. В настройках ввода активируйте опцию «Повторять». чанию они выключены. Активированные опции будут удалены Благодаря ей можно не нажимать несколько раз на клавишу, а из главного меню соответствующими пунктами: просто удерживать ее. Задержку и скорость повтора стоит де- 3 «Book» — в этом меню следуют поместить наиболее часто ис- лать короткими, иначе возникнут определенные неудобства. пользуемые программы, что-то вроде панели быстрого запуска; Можно установить мигание курсора, а также его скорость. Ну а 3 «Local» — пункт для перемещения по дереву каталогов, по для фанатов Emacs разработчики даже предусмотрели соответ- умолчанию начинается с домашней директории; ствующую схему клавиатуры с командами и горячими клави- 3 «Network» — здесь находится все, что связано с Samba и ло- шами этого текстового редактора. кальными сетями; Наиболее важным с точки зрения удобства является пункт 3 «Apps» — приложения, расположенные на главной панели; «Менеджер окон». Здесь можно выбрать стиль оформления здесь можно создавать меню, выносить новые ярлыки про- окон и шрифт, выровнять текст заголовка. Кнопки «Закрыть», грамм на панель; «Свернуть», «Развернуть» допустимо расположить хоть в цент- 3 «Find» — программа для поиска; ре, хоть справа панели заголовка, причем каждую кнопку мож- 3 «Trash» — корзина; но поместить отдельно от остальных. Правда, лучше оставить 3 «Fstab» — утилита для работы со сменными носителями, ав- параметры по умолчанию, иначе долго придется привыкать к томатически монтирующая CD-ROM и флоппи-дисковод. новому расположению.

Продвинутые настройки Xfce ꉇÍÚËÓ‚‡ÌË ÍÓÌÙË„Û‡ˆËÓÌÌÓ„Ó Ù‡È· Графические средства конфи- какого руководства и инфор- konqueror гурирования, безусловно, хо- мации в мануалах о файлах на- sn="1">xffm //команда запуска роши. Но всем настоящим строек нет. Поэтому разбирать- //команда, которая будет Konqueror File юниксоидам уже давно извест- ся приходится интуитивно, ана- выполнена при клике по яр- Manager //всплыва- но, что наиболее гибко наст- лизируя синтаксис документа. лыку этого пункта меню. ющая подсказка роить программу можно лишь Тем не менее некоторые фай- В данном случае — Xffm //здесь все аналогично правкой файлов конфигура- лы могут серьезно облегчить //файловые менед- ции. К тому же при грамотном пользователю жизнь. Напри- жеры Nautilus использовании это на порядок мер, управлять главной па- //всплывающая nautilus использовали формат XML для редактированием файла Nautilus File создания файлов конфигура- ~/.xfce4/xfce4rc. Пункты //включаем в меню Manager ции. Наверное, это удобно для меню начинаются после тега дополнительные программы графических утилит конфигу- . //новая программа //закрытие тегов рирования, но вот для ручной //создаем новый Konqueror обязательно для языка XML правки не очень желательно. пункт меню //название Усугубляет ситуацию то, что ни-

CHIP| LINUX 2/2005 Ó·ÁÓ ÓÍÓÌÌ˚ı ÏẨÊÂÓ‚ 49

äÚÓ Ò͇Á‡Î, ˜ÚÓ Í‡ÒË‚ÓÈ Ó·ÓÎÓ˜ÍÓÈ ÏÓÊÂÚ ·˚Ú¸ ÚÓθÍÓ KDE? Xfce Ò ÚÂÏÓÈ «Mac OS»

Окно получает фокус либо при щелчке по нему мышью, ли- ков, установите ее расположение. Кстати, главную панель Xfce бо просто при наведении курсора. Есть возможность автомати- можно поместить даже в центре экрана, не говоря уже о пози- чески активировать вновь созданные окна, установить задерж- циях сверху и по краю. Есть также возможность сделать панель ку перед поднятием активированного окна над другими. автоматически скрываемой, она будет появляться лишь при Очень интересная функция — прилипание окон к краям эк- наведении на нее курсора. рана и другим окнам. Это позволяет удобно упорядочить про- Еще один важный пункт в менеджере настроек — «Панель за- граммы на рабочем столе. дач». Здесь можно установить расположение и размер панели Есть опции, реализующие переключение между рабочими задач, поместить на нее пейджер, виртуальные экраны и сис- столами при достижении курсора мыши края экрана и переме- темный лоток. Интерфейс панели задач конфигурируется до- щении окна приложения за экран. В настройках можно ука- полнительным пунктом — «Панель значков». зать, будет ли при операциях перемещения и изменения раз- В разделе «Пользовательский интерфейс» можно выбрать мера демонстрироваться все окно или только его контур. тему оформления рабочего стола, палитру, шрифт, которые бу- Четвертый пункт в менеджере настроек носит имя «Мышь». дут использоваться во всех приложениях Xfce. Нетрудно догадаться, какое устройство здесь конфигурирует- Пункт «Поля рабочего места» определяет размер разверну- ся. Можно установить схему кнопок для левшей или правшей, того окна. Здесь надо установить отступы от края экрана в пик- указать ускорение мыши и скорость двойного щелчка. Мы ре- селях, за которые не будет выходить окно приложения. комендуем поставить большую скорость мыши при высоких В пункте «Рабочие области» введите число виртуальных разрешениях, и меньшую — при низких. рабочих столов и их названия. Теперь настроим пункт «Панель Xfce». Выберите размер па- Последний пункт в менеджере настроек — «Фон рабочего нели, ориентацию (вертикальная/горизонтальная), тему знач- стола». В этом разделе выберите изображение для фона и раз- личные эффекты к нему.

| Плагины Xfce | Xfce имеет очень гибкую систему плагинов, что обеспечивает высокую функциональность этой среды. Рассмотрим плаги- ны, которые были скачаны вместе с оконным менеджером, то есть самые распространенные. Всего их намного больше. 3 Xfclock — программа, включающая в себя часы, календарь, а также небольшой органайзер с ежедневником. Настройки лежат в файле /home/user_name/.xfce/xfclockrc. Нужно его немного подправить: #использование нормальных шрифтов [Colors] iso8859-15 #отображение календаря и диалогов меню èÓڇΠwww.xfce.org DisplayCalendar DisplayMenuBar

2/2005 LINUX| CHIP 50 desktop „‡Ù˘ÂÒÍË ËÌÚÂÙÂÈÒ˚

Fluxbox: ÒÍÓÏÌÓ, ÌÓ ÒÓ ‚ÍÛÒÓÏ Fluxbox Ò ÚÂÏÓÈ «Matrix»

#скрытие отображения плохо нарисованных часов Теперь пора подобрать шрифт для отображения названий HideAnalogClock рабочих столов: #выделение праздников на календаре *xfpager.font iso8859-15 DisplayHoly_days Далее следует прописать название и количество рабочих #включение отображения секунд в часах пространств: DisplaySeconds *xfpager.label 1 Multimedia 3 Xfbdmgr — небольшой плагин, позволяющий выбирать вид *xfpager.label 2 Office фона при запуске. Присутствует смена обоев через определен- *xfpager.label 3 Internet ные промежутки времени. 3 Xfplay — консольный проигрыватель аудио. Неплохой, но 3 Xfglob — найдется все! Очень хорошая локальная система по- ведь уже есть mpg123. иска, позволяющая искать по самым разным параметрам — на- 3 Xfprint — c переходом на Xfce не стоит отказываться от прин- чиная от расширений файлов и кончая датой изменения. тера, Xfprint поможет вам настроить печать (HP DeskJet 610c 3 Xfhelp — справку в Xfce должен прочесть каждый пользова- пятилетней давности распознавался без проблем). тель этой графической оболочки. Здесь представлено доста- 3 Xfsamba — этот плагин является клиентом Samba, которую точно грамотное руководство. создали, чтобы связываться с компьютерами, работающими 3 Xfmountdev — утилита для автоматического монтирования под Windows. дискет и CD/DVD. 3 Xfskin — красота спасет мир, а Xfskin украсит ваш десктоп ин- 3 Xfmouse — манипулятор ввода типа «мышь». Это важнейшее тересными шрифтами, иконками и звуками. устройство при работе с компьютером. Стоит ли говорить, что 3 Xfsound — если у вас были проблемы со звуком, забудьте оно должно работать хорошо? А с этим плагином вы можете с о них, с установкой этого плагина они благополучно исчезли. максимальным удобством настроить вашу мышь. 3 Xfbd — утилита для смены фона рабочего стола. 3 Xfpager — замечательный переключатель виртуальных рабочих столов. Учитывая то, что им пользуются все приверженцы Xfce, рассмотрим утилиту подробнее. Перед запуском добавьте в файл .xfwmrc, который находится в домашней директории, следующее: AddToFunc "InitFunction" + "I" Module xfpager Запускается программа командой xfpager Х, где X — число виртуальных рабочих столов. Для более удобной работы с Xfpager нужно отредактировать вышеупомянутый .xfwmrc. Так, чтобы разместить окна программы внизу, справа от глав- ной панели, нужно добавить в него строку: *xfpager.geometry 63x5+637х616 Xfpager — панель, состоящая из окошек, представляющих собой уменьшенные копии виртуальных рабочих столов. Раз- мер каждого окошка можно сделать равным 60х60 пикселей следующим образом: èÓ‡·ÓÚ‡‚ Ò Fluxbox, ‚˚ Ì ÒÏÓÊÂÚ Ô‰ÒÚ‡‚ËÚ¸ Ò· Linux ·ÂÁ ÌÂ„Ó *xfpager.icongeometry 60х60

CHIP| LINUX 2/2005 Ó·ÁÓ ÓÍÓÌÌ˚ı ÏẨÊÂÓ‚ 51

ꉇÍÚËÓ‚‡ÌË ÏÂÌ˛ Fluxbox KDE-ÔËÎÓÊÂÌËfl ÔÂÍ‡ÒÌÓ ˜Û‚ÒÚ‚Û˛Ú Ò·fl ‚Ó Fluxbox

3 Xfumed — редактор меню. Графических утилит для настройки у Fluxbox практичес- 3 Xfce-battery — утилита для контроля уровня заряда батарей ки нет — придется заниматься редактированием файлов в ноутбуках. конфигурации. Все настроечные файлы лежат в каталоге Рассказать обо всех плагинах не представляется возмож- /home/user_name/.fluxbox. ным в свете их огромного количества и ограниченного объе- Наверняка у каждого появится желание изменить меню и ма статьи. Предоставим читателю возможность самому озна- добавить туда свои программы. Для этого надо отредактировать комиться с ними. /.fluxbox/menu. Ниже приведена часть этого файла:

| Fluxbox | Вход в систему О следующем оконном менеджере речь пойдет отдельно. Fluxbox является самой популярной из «легких» графических ç‡ÒÚÓÈ͇ KDM оболочек. Что же так привлекает пользователей во Fluxbox? Для загрузки графического ин- www.kde.org. Запустив терми- Этот менеджер унаследовал только лучшее от своего предше- терфейса есть два пути: либо нал, повысьте свои привилегии ственника — Blackbox, но при этом оброс дополнительными после входа в систему давать до суперпользователя коман- возможностями, такими как поддержка приложений KDE и в консоли команду startx, ко- дой SU и запустите kcontrol. GNOME, аплетов рабочего стола (dockapp) Window Maker, к торая запустит оконный ме- В разделе «System» выберете неджер, либо использовать «Login manager», после чего тому же оконный менеджер обладает довольно приятным ин- Х-клиент. Если у вас установ- откроется окно конфигуриро- терфейсом. Устанавливать Fluxbox лучше всего из исходни- лен только один оконный ме- вания KDM. Нужно добавить ков, которые можно скачать с сайта fluxbox.sourceforge.net, неджер, лучше остановиться различные оконные менедже- благо архив с программой весит меньше одного мегабайта. на первом варианте. Просто ры в меню, чтобы при входе Так как вам нужна поддержка программ для дистрибутивов впишите в файл ~/.xinitrc можно было выбрать, какой KDE и GNOME, скрипту configure при установке надо пере- строчку: exec wm, где вместо из них использовать. дать следующие параметры: wm — имя вашего диспетчера Для этого откройте пункт # ./configure --enable-kde --enable-gnome окон. Если же вы используете «Sessions» и кликните по кноп- После запуска Fluxbox вы увидите пустой рабочий стол и несколько графических окру- ке «New type». В появившемся жений или вам просто не хо- окне надо ввести имя диспет- панель задач с часами и переключателем виртуальных рабо- чется каждый раз вводить чера окон. Добавьте таким об- чих столов внизу экрана. Несмотря на минимализм, оконный команду startx, лучше исполь- разом все графические среды менеджер довольно красив, впечатление усиливается боль- зовать графический клиент вашей системы. После того как шим количеством тем. Дополнительные темы можно скачать входа в систему. На сегодняш- закончите, нажмите на кнопку на сайте themes.freashmeat.net. ний день наиболее распрост- «Apply» внизу окна. Благодаря простому оформлению окон и отсутствию не- ранены три X-клиента: про- Нужно выполнить несколько нужных функций Fluxbox является одним из самых быстрых ект GNOME gdm, KDM для KDE команд: графических окружений. Еще одна интересная возможность — и XDM от разработчиков rc-update add xfs default закладки, которые позволяют удобно разместить окна про- X-Window. Мы же рассмотрим rc-update add xfs default только KDM как функциональ- Теперь осталось добавить грамм на рабочем пространстве. Несколько программ можно ный и легкий в настройке. в файл /etc/rc.conf строку объединить в одну группу, например, если у вас запущено три KDM можно установить вместе DISPLAYMANAGER="kdm", терминала, их лучше сгруппировать и переключаться между с KDE или скачать отдельно с и можно приступать к работе. ними по необходимости.

2/2005 LINUX| CHIP 52 desktop „‡Ù˘ÂÒÍË ËÌÚÂÙÂÈÒ˚

í‡Í‡fl ÔÓ„‡Ïχ Í‡Í Scribus Á‡„ÛʇÂÚÒfl ‚ Fluxbox Ï„ÌÓ‚ÂÌÌÓ IceWM — ÏÓ˘Ì‡fl Ë Û‰Ó·Ì‡fl „‡Ù˘ÂÒ͇fl Ò‰‡

[begin] (Fluxbox 0.9.13) Для этого нужно отредактировать файл ~/.fluxbox/ titlebar: [exec] (xterm) {xterm -fg white -bg black -rightbar -fn 9x15 - Right: sticky maximize geometry 100x40} Left: close minimize [exec] (kmail) {kmail} Как легко можно догадаться, теперь кнопки «Закрыть» и [submenu] (Browsers) «Свернуть» располагаются слева в заголовке окна, а не [exec] (links) {links} справа, как обычно. Но наибольшее значение имеет файл [exec] (mozilla) {mozilla} ~/.fluxbox/init, являющийся главным файлом конфигура- [end] ции. Здесь можно выбрать стили оконного менеджера. По [submenu] (Internet) умолчанию они хранятся в /usr/local/share/fluxbox/styles, но [exec] (ICQ) {centericq} для удобства их лучше скопировать в ~/.fluxbox. Теперь нуж- [exec] (IRC) {bitchx} но прописать пути к файлам настроек: [end] session.styleFile: /home/yumi/.fluxbox/styles/asket //путь Файл начинается со слова begin в квадратных скобках и с но- к стилю мера версии Fluxbox — в круглых. Для того чтобы создать в меню session.keyFile: /home/yumi/.fluxbox/keys //конфигурация пункт, вызывающий определенное приложение, его надо ввести горячих клавиш ключевым словом [exec]. Далее в круглых скобках нужно пропи- session.titlebarFile: /home/yumi/.fluxbox/titlebar //конфигу- сать название программы, каким оно будет в меню, а в фигур- рация заголовка окна ных — команду, которая запустит приложение. Например, для session.menuFile: /home/yumi/.fluxbox/menu //конфигурация вызова почтового клиента kmail нужно прописать пункт: меню [exec] (kmail) {kmail} Можно изменить имена рабочих столов в панели задач: Для создания подразделов существует ключевое слово [sub- session.screen0.workspaceNames: one-net,two-work,three-multimedia menu], после которого в круглых скобках вводится имя подме- После «Names» вводите названия через запятую. Если необ- ню. После строки [submenu] (name_submenu) можно прописы- ходимо, чтобы на панели помимо времени отображалась и да- вать пункты запуска программ. Если помимо Fluxbox вы часто та, добавьте строчку: используете другой оконный менеджер, например KDE, до- session.screen0.strftimeFormat: %k: %M %p%d/%m/%y бавьте строчку [restart] (Start KDE) {KDE}. Не нравятся закладки? Отключить их можно так: Теперь можно быстро переключаться между двумя графичес- session.tabs: false кими средами. Fluxbox поддерживает горячие клавиши. Различ- Для того чтобы вместе с оконным менеджером автома- ные комбинации можно прописать в ~/.fluxbox/keys. Например: тически запускались некоторые программы, имеет смысл от- Mod1 F1 :Workspace1 редактировать ~/.xinitrc. Откройте этот файл текстовым Mod1 F2 :Workspace2 редактором и добавьте сначала exec fluxbox, а затем все ос- Mod1 P :ExecCommand xmms тальные приложения, которые должны запускаться вместе Здесь Mod1 — это клавиша «Alt». Первые два сочетания кла- с оконным менеджером. Имя каждой программы должно виш нужны для перемещения между виртуальными рабочими быть на отдельной строчке, в конце которой присутствует столами, а третье запустит XMMS. Естественно, вместо проиг- знак амперсанда (&). Например: рывателя музыки может выступить любое приложение. exec fluxbox Во Fluxbox расположение кнопок «Развернуть», «Свернуть», xterm & «Закрыть», находящихся в заголовке окна, можно поменять. xmms &

CHIP| LINUX 2/2005 Ó·ÁÓ ÓÍÓÌÌ˚ı ÏẨÊÂÓ‚ 53

IceWM ‚ıÓ‰ËÚ ‚ ÒÓÒÚ‡‚ Ô‡ÍÚ˘ÂÒÍË ‚ÒÂı ‰ËÒÚË·ÛÚË‚Ó‚ IceWM — ‡·ÓÚ‡ ‚ Á̇ÍÓÏÓÈ Ó·ÒÚ‡ÌÓ‚ÍÂ

Есть и другие способы добавить программу в автозапуск, gkrellm -w). Что ж, теперь вы знаете достаточно для комфорт- но этот является самым быстрым. ной работы в оконном менеджере Fluxbox. Для установки фона во Fluxbox удобно пользоваться ути- литой fbsetbg, которая идет вместе с оконным менеджером по | IceWM | умолчанию. Для установки изображения в качестве полно- Графическая среда IceWM была разработана не так давно, но экранного фона введите команду fbsetbg -f /tmp/image.jpeg. на сегодняшний день входит в состав практически всех изве- Если нужно, чтобы программа отображалась на всех рабочих стных дистрибутивов. Такая популярность обусловлена глав- пространствах, запускайте ее с параметром -w. (например: ным образом внешним видом диспетчера окон, который мо- жет имитировать стандартный интерфейс Windows, OS/2, Enlightment Mac OS. Знакомая панель задач, иконки приложений для быстрого запуска, меню «Пуск» — все это делает IceWM луч- éÍÓÌÌ˚È ÏẨÊÂ ‰Îfl ˝ÒÚÂÚÓ‚ шим выбором для новичков. Впрочем, производительность и Еще один оконный менеджер, тель виртуальных столов, на мощность в конфигурировании оценят по достоинству и о котором хотелось бы расска- котором изображены умень- профессионалы UNIX. Минимальные системные требова- зать, — Enlightment. Скачать шенные снимки того, что про- ния — Pentium 166 МГц и 16 Мбайт оперативной памяти, что его можно на сайте enlight- исходит на других рабочих наверняка обрадует владельцев старых компьютеров. Офи- ment.org. Первое, что бросает- пространствах. Проект имеет циальный сайт IceWM — icewm.sourceforge.net, там можно ся в глаза, — потрясающая свой терминал Eterm, хорошо найти дистрибутив программы и различную документацию. красота WM. Он обладает ог- конфигурируемый и поддер- ромным количеством классных живающий псевдопрозрач- При компиляции из исходных текстов надо добавить не- тем, сложным оформлением ность. Enlightment легко ло- сколько опций конфигурирования: окон, поддерживает сглажива- кализуется, не имеет проблем #./configure --with-imlib=/usr/bin --with-gnome-menus=/usr/bin - ние шрифтов TrueType, вклю- с русскими кодировками и -enable-shaped-decorations --enable-gradients --enable-antialiasing чает в себя море спецэффек- шрифтами. Почему же эта сре- -enable-xfreetype тов (анимация, звуки). Работа- да так слабо распространена, Опция --with-imlib=/usr/bin позволяет использовать в каче- ет он на всех UNIX-системах, если она такая хорошая? Глав- стве иконок рисунки любых форматов, нужно только указать и не только: Linux, BSD, Solaris, ная причина в том, что для месторасположение файла imlib-config. HP, Irix, AIX. Разработчиками оконного менеджера Благодаря ключу --with-gnome-menus=/usr/bin IceWM им- написаны библиотеки, исполь- Enlightment слишком тяжел, зуемые в работе другими ме- к тому же довольно сильно портирует в себя меню GNOME. К сожалению, с KDE такое неджерами окон. Есть хорошая тормозит. А люди переходят провернуть не удастся, только с GNOME. Остальные опции графическая программа кон- с GNOME и KDE во многом ради нужны для придания менеджеру более симпатичного вида. На- фигурации WM. В состав скорости. К тому же анимация, страивается IceWM правкой конфигурационных файлов, лежа- Enlightment входит звуковой многочисленные эффекты — щих в каталоге /usr/local/lib/X11/icewm, который для удобства демон ESD, смешивающий через пару часов работы все можно скопировать в домашнюю директорию. Всего файлов аудиопотоки и позволяющий это начинает раздражать. пять: menu, toolbar, winoptions, keys и preferences. Начнем с ре- проигрывать звуки самого Но если покопаться в настрой- дактирования меню, за которое отвечает файл menu. Для ввода оконного менеджера, смотря ках и удалить ненужные функ- пункта, запускающего программу, надо прописать ключевое при этом фильм или слушая ции, WM вполне подойдет для музыку. Имеется переключа- постоянного использования. слово «prog», затем ввести название приложения, каким оно бу- дет в меню, путь к иконке и исполняемому файлу. Например:

2/2005 LINUX| CHIP 54 desktop „‡Ù˘ÂÒÍË ËÌÚÂÙÂÈÒ˚

ìÚËÎËÚ‡ top ÔÓÏÓÊÂÚ ÛÁ̇ڸ Ú·ӂ‡ÚÂθÌÓÒÚ¸ IceWM Í ÂÒÛÒ‡Ï é‰ÌÓ ËÁ Ò‡Ï˚ı Í‡ÒË‚˚ı ÓÍÛÊÂÌËÈ — Enlightment

prog "Mplayer" /usr/share/icons/mini/mplayer.xpm ключатель между виртуальными рабочими пространствами /usr/bin/mplayer TaskBarShowClock = 1 //показывать часы Для создания подраздела в меню используйте параметр TaskBarShowCPUStatus = 0 //отмена показа состояния menu, после которого в фигурных скобках вводите нужные загрузки процессора на панели задач программы: UseMouseWheel = 1 //поддержка колесика мыши menu "Multimedia" /usr/share/icons/mini/multimedia.xpm MultiClickTime = 300 //время в миллисекундах, требуемое {prog "mp3blaster" /usr/share/icons/mini/mp3.xpm для распознавания двойного клика мыши /usr/bin/mp3blaster ClockFontName = "iso8859-15" //шрифт для отображения prog "XawTV" /usr/share/icons/mini/xawtv.xpm /use/bin/xawtv часов prog "Mplayer" /usr/share/icons/mini/mplayer.xpm DesktopBackgroundImage = "/home/image/fon.xmp" //рисунок /usr/bin/mplayer для фона рабочего стола prog "XMMS" /usr/share/icons/mini/xmms.xpm WorkspaceNames= "NET", "Multimedia", "games" //названия /usr/local/bin/xmms рабочих столов } Theme = "/usr/local/X11/icewm/default.theme" //путь Чтобы добавить новую программу на панель быстрого запу- к используемой теме ска, надо изменить содержимое /usr/local/lib/X11/icewm/tool- Все параметры перечислить невозможно, поэтому лучше bar. Синтаксис аналогичен файлу menu: всего ознакомится с man-страницами. prog "SIM" /usr/share/icons/mini/sim.xpm /usr/bin/sim Файл winoptions нужен для настройки окон конкретных IceWM поддерживает горячие клавиши. Для установки новой приложений. В IceWM каждое окно программы имеет свой комбинации надо подправить файл keys. Формат такой: key «со- класс и свое имя. Эти значения можно узнать с помощью ути- четание+клавиш» команда. Например, чтобы запустить xterm од- литы xprop, которую вы найдете на официальном сайте IceWM. новременным нажатием клавиш «Alt» и «Shift», нужно прописать: Строки в файле winoptions должны быть такого вида: key "Alt+shift" xterm класс_окна.имя_окна.параметр: значение Наибольшее количество настроек находится в файле prefe- Как определить имя и класс, нам уже известно. Вот некото- rences. Тут можно настроить шрифты, внешний вид, поддержку рые параметры окна: мультимедийных кнопок клавиатуры и мыши, количество вирту- 3 Icon — иконки приложения; альных рабочих столов и многое другое — всего около 180 пунктов. 3 Workspace — рабочий стол, где должно быть запущено окно Файл представляет собой список параметров, которые име- программы; ют либо значение 1 (разрешены), либо 2 (запрещены). Ниже 3 Geometry — местоположение окна на рабочем столе; приведена часть файла preferences с комментариями. 3 Dborder — отключение рамки у окна; QuickSwitch = 1 //разрешить переключение между окнами по 3 IgnoreTaskBar — окно не появится на панели задач. «Alt+Tab» Например: ManualPlacement = 0 //отмена ручного размещения окна на Navigator.Netscape.workspace: 1 рабочем столе Для IceWM существуют специальные утилиты конфигури- TaskBarAtTop = 1 //расположение панели задач вверху экрана рования. С сайта icewm.sourceforge.net скачайте утилиту icepref. TaskBarAutoHide = 0 //отключение автоматического скрытия Она написана на Python и требует наличия в системе интерпре- панели задач татора. Еще одна программа, призванная облегчить жизнь TaskBarShowWorkspaces = 1 //показать на панели задач пере- пользователям IceWM, — IceWMConf. Она доступна на сайте

CHIP| LINUX 2/2005 Ó·ÁÓ ÓÍÓÌÌ˚ı ÏẨÊÂÓ‚ 55

table Actions Lock: control right doubleClk Reload: middle doubleClk Drag: left hold EndDrag: left singleClk Execute[0]: left doubleClk Execute[1]: right doubleClk end Далее нужно создать директорию ~/ .idesktop. В ней будут находиться иконки и файлы конфигурации. Допустим, вам ну- жен ярлык программы GNUcash на рабочем столе. Сначала нужно создать файл gnucash.lnk в директории ~/ .idesktop: # touch /home/user_name/.idesktop/gnucash.lnk Теперь в файл gnucash.lnk добавьте следующие строчки: table Icon ÇÒ ÓÔËÒ˚‚‡ÂÏ˚ ‚ Òڇڸ ÔÓ„‡ÏÏ˚ ‰ÓÒÚÛÔÌ˚ ‰Îfl Ò͇˜Ë‚‡- Caption: GNUcash //название программы ÌËfl Ë Ì‡ freahmeat.net Command: gnucash //команда, которая будет выполнена при клике по ярлыку icewm.tux.nu/tools/icewm-conf/Download. Обе утилиты не иде- Icon: /home/user_name/.idesktop/cash.png //путь к изображе- альны, но помогут избавиться от большего количества ручной нию, которое используется как иконка работы типа составления меню и выбора стиля. end IceWM — очень хороший менеджер окон, оставивший при- Сделайте это со всеми программами, ярлыки которых вы хо- ятное впечатление. Его можно порекомендовать пользовате- тели бы видеть на рабочем столе. Теперь нужно запустить лям, требовательным к производительности, но не желающим IDesk: nohup idesk > /dev/null & расставаться с функциональностью. После этого в .ideskrc вместо параметра false напротив Locked введите «true». | Иконки на рабочем столе | Осталось добавить IDesk в автозагрузку: Если раньше вы работали с KDE или GNOME, то наверняка не rc-update add idesk default можете представить себе рабочий стол без ярлыков программ. Теперь иконки опять присутствуют на вашем рабочем столе! Но описываемые в этой статье оконные менеджеры не поддер- живают иконки на рабочем столе. Так что же делать? Нужно ис- | Эпилог | пользовать специальное ПО. Лучшая программа такого рода — На этом мы заканчиваем обзор менеджеров окон для Linux. Но- IDesk, которую можно скачать с сайта idesk.sourceforge.net. вичкам, недавно пришедшим из мира Windows, следует обратить После установки программы создайте в домашней директории внимание на IceWM, интерфейс которого схож с внешним видом файл .ideskrc, в котором пропишите следующее: операционной системы от Microsoft. Аскетам, для которых глав- table Config ное — минимализм и скорость работы, стоит остановить выбор FontName: verdana на Fluxbox. Ну а тем, кто предпочитает мощные и многофункци- FontSize: 12 ональные системы, сам бог велел ставить Xfce. В общем, выби- FontColor: #ffffff райте тот, который будет вам по душе. Удачи в работе с Linux! | Locked: false Transparency: 100 Дополнительная информация Shadow: true ShadowColor: #000000 èÓÎÂÁÌ˚ ÒÒ˚ÎÍË ShadowX: 1 http://xfree86.org.ru — официальный русскоязычный сайт ShadowY: 2 графического сервера XFree86; Bold: false http://freshmeat.net/dockapp — докаппы для Fluxbox и других ClickDelay: 300 менеджеров экранов; IconSnap: true http://bensinclair.com/dockapp — еще один сайт с докаппами; SnapWidth: 55 http://themes.org — темы для всех диспетчеров окон; SnapHeight: 100 http://themes.freshmeat.net — самая большая коллекция тем SnapOrigin: BottomLeft в Интернете; http://fluxbox.sourceforge.net — официальный сайт Fluxbox; SnapShadow: true www.xfce.org — официальный сайт Xfce; SnapShadowTrans: 200 http://icewm.sourceforge.net — официальный сайт IceWM; CaptionOnHover: false www.enlightment.org — официальный сайт enlightment. end

2/2005 LINUX| CHIP 56 advanced ÚÂÓËfl

Роман Химов Linux? Ç‡Ï Í‡ÍÓÈ?

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

Что такое Linux? Внимательный читатель правильно (и на- | Официальное ядро Linux | верняка с улыбкой) вспомнит, что на самом деле Linux — это Во-первых, сразу же проясним, что значит «официальное яд- ядро, и не более того. Важная, но все же лишь деталь в слож- ро Linux». Сам Линус Торвальдс говорил, что официального ном механизме полноценной операционной системы. А уж ядра Linux не существует, есть лишь различные ветви, веду- дистрибутивы — это дело десятое. Нынешние пользователи щиеся разными разработчиками; просто так сложилось, что дистрибутивов GNU/Linux редко задумываются о том, какое ветвь основателя системы пользуется наибольшим доверием ядро установлено в их системе, а также что его можно и нуж- у пользователей. Что ж, это так, но именно его ветвь все-таки но обновлять, конфигурировать и компилировать. Это в це- зачастую называется официальной, и именно от нее отталки- лом хороший признак того, что Linux действительно честно ваются все параллельные. Официальное ядро Linux всегда до- отрабатывает слоган «Just works» в большинстве конфигура- ступно во всех разновидностях на http://kernel.org, но к этому ций, заботливо подобранных для пользователей разработчи- мы еще вернемся, а сейчас перейдем к сборке. ками дистрибутивов. Однако не всех и не всегда удовлетворя- ют стандартные конфигурации ядер. Например, нынче стало | Сборка | модно компилировать ядра для PC-платформы вообще без Итак, вы скачали около 40 Мбайт исходных кодов официаль- поддержки шины ISA. Кто-то предъявляет повышенные тре- ного ядра актуальной версии. Что с ними делать? Нет никаких бования к безопасности, и ему нужны самые последние ис- ограничений по тому, куда вы будете распаковывать ядро и где правления. Ну а кто-то хочет проникнуться тем самым духом вы его будете конфигурировать и компилировать, но в целом fun, окружающим Linux, и опробовать какие-либо новшест- его все-таки принято располагать в каталоге /usr/src/linux- ва, которых нет ни в одном дистрибутиве и которые доступны uname -r. Принцип понятен, uname -r — команда, выдающая только тем, кто не боится скомпилировать ядро со своей (что полную версию текущего ядра. Это значит, что ядро версии на самом деле еще более страшно) конфигурацией. Поэтому 2.6.12 будет логично поместить в каталог /usr/src/linux-2.6.12, начнем мы, собственно, с описания процесса сборки и сопут- поскольку многие сторонние скрипты-помощники ориенти- ствующих ему действий. рованы именно на такое расположение.

CHIP| LINUX 2/2005 ÓÒÓ·ÂÌÌÓÒÚË ‚ÂÚ‚ÂÈ fl‰‡ 57

Теперь ядро необходимо сконфигурировать. Это делается янно переустанавливать LILO просто-напросто неудобно, да и командами make config, make menuconfig или make xconfig. параметры командной строки у GRUB довольно мощные. Все они, по сути, идентичны, только представлены в разных Хочется сказать пару слов о самих патчах. Как правило, это обличиях. Первую команду вводить не рекомендуем, иначе один файл, упакованный чем-нибудь наподобие bzip2, приме- через час-другой у вас покраснеют и остекленеют глаза, а няющийся с помощью команды patch -p1 в каталоге исход- окружающие подумают, что вы сходите с ума (проверено на ников. Обычно легко сделать что-то подобное: личном опыте). Все эти неприятности могут случиться из-за bzcat bla-bla.patch.bz2 | patch -p1 того, что опций конфигурирования у ядра тьма тьмущая, После такого некраткого ликбеза мы переходим к самому а make config работает очень просто — последовательно тре- интересному — рассмотрению конкретных версий ядра бует у вас вразумительного ответа по каждой опции в виде Linux. Так уж получается, что этот обзор во многом является «да/нет/модуль». Это долгий, требующий внимания про- парадом разработчиков Linux, поскольку у каждой ветки есть цесс, поэтому лучше пользоваться make menuconfig и make главный разработчик, и он же, как правило, является основ- xconfig. Первая программа состоит из текстовых меню, по ным, если и не кодером, то, по крайней мере, «приемщиком» которым можно гораздо проще ориентироваться и значи- патчей для своей ветки. тельно быстрее сконфигурировать ядро, а последняя, соот- ветственно, представляет собой полностью графический | 2.6.x | конфигуратор. По умолчанию он использует Qt, но можно Конечно же, логично начать с самого главного, а конкретно — набрать make gconfig, и конфигуратор будет собран для с ветки Линуса Торвальдса. Мы не случайно говорили о том, GTK. Полагаем, должно быть очевидно, что для этого по- что это всего лишь одна из веток ядра, и «официального» ядра требуются заголовочные файлы Qt или GTK, впрочем, для Linux как такового не существует. Тем не менее все ориентиру- ncurses (используемого в menuconfig) они тоже нужны (все ются на ветку Линуса, и она определенно главная в ядре, поэто- конфигураторы собираются в системе при запуске). му ее принято называть «официальной». Про нее, пожалуй, Давать советы по конфигурации — дело неблагодарное, много не скажешь, кроме разве того, что ветка 2.6.x значитель- так что лучше будет найти информацию по этой теме в Сети но отличается по модели разработки от 2.4.x — в ней допус- и просто уяснить разницу между статической компиляцией, каются значительно большие изменения без старта нестабиль- компиляцией модуля и некомпилированием модуля или ной ветки 2.7. Это способствует ее быстрому развитию и функции вообще. Вся конфигурация ядра будет сохранена в обновлению, а также позволяет производить полезные измене- один-единственный файл config в каталоге с ядром. Его по- ния, что очень хорошо, но в то же время, по общему призна- лезно куда-нибудь скопировать, чтобы иметь впоследствии нию, ветка 2.6 в целом не такая стабильная, какой была 2.4. Ко- стартовую точку для любых дальнейших конфигураций: нечно же, эти релизы можно найти на http://kernel.org обычно его кладут в каталог /boot рядом с уже скомпилиро- ванным ядром в виде файла «config-версия-ядра». Кстати, | 2.4.x | позже, при обновлении ядра и наличии отлаженной конфи- Несмотря на то что ветка 2.4.x уже давно не является основной, гурации, вписать эту самую конфигурацию в новое ядро она по-прежнему поддерживается. Более того, некоторые дис- очень легко — копируете тот самый config и набираете «make трибутивы (к примеру, Slackware 10.1 и многие Live CD) ис- oldconfig». Вас спросят только о новых опциях (если они бу- пользуют в качестве основы именно ее. Поэтому нелишним дут), и вы будете готовы к компиляции. будет сказать, что эту ветку нынче ведет Марсело Тосатти, и в Компиляция тривиальна — make, и все дела! В случае с вет- последнее время объем патчей для нее все уменьшается. В ос- кой 2.4 чуть сложнее — make bzImage и make modules. Далее новном туда переносятся исправления обнаруженных ошибок, можно созерцать процесс компиляции. В нем красиво показы- однако иногда проскакивают обновления драйверов. Марсело вается сборка ядра, иногда некрасиво проскакивают многочис- также выпускает -pre-версии и -rc-версии следующих релизов. ленные «warning» (в последних версиях их всего около 200 штук Между ними есть одно важное различие: -pre — это ранние вер- в конфигурации «yes» для всего, однако большей их части мож- сии, еще не до конца протестированные, и в дальнейшем в них но не придавать значения). По окончании этого процесса стоит могут вноситься некие серьезные изменения. Версии -rc уже установить модули ядра (если, конечно, они присутствуют в ва- значительно стабильнее. Более того, начиная с первой версии шей конфигурации) по команде make modules_install. Все моду- идет чистая стабилизация ядра, то есть принимаются только ли при этом аккуратно поместятся в директории /lib/modules/. исправления различных ошибок. Как правило, последний кан- Наконец, следует установить само ядро с помощью make install дидат в релиз после некоторого тестирования становится фи- или же скопировать его вместе с файлом System.map (его необ- нальным релизом без каких-либо изменений в коде. ходимо переименовать в «System.map-версия-ядра») вручную из 2.4.х — это одна из основных веток, так что за ней тоже сле- директории arch/i386/boot/bzImage в /boot. дует идти на http://kernel.org После этого конфигурируем загрузчик. Эта процедура зави- сит от того, что вы используете в вашей системе — GRUB или | 2.4.x-hf | LILO, и ее мы описывать не будем (читайте — man grub, man Также стоит сказать сразу про единственное, на наш взгляд, lilo). Мы настоятельно рекомендуем GRUB, поскольку посто- заслуживающее внимания ответвление 2.4 — патчи -hf (hot-

2/2005 LINUX| CHIP 58 advanced ÚÂÓËfl

fix) от Вилли Торрью. Хотя называть их ответвлением не сов- ботан и облагорожен Петром Баудисом. Новые версии -git ав- сем корректно, все патчи, появляющиеся в -hf , попадают в томатом появляются каждый день, так что их очень удобно следующий релиз 2.4.x. В этой ветке собираются исправления тестировать (особенно выяснять, какой патч вызвал пробле- серьезных ошибок и безопасности, которые с ее помощью му), однако использовать на постоянной основе не стоит, ес- становятся доступны раньше, чем выход следующего релиза ли, конечно, на это нет особых причин. 2.4.x. Следовательно, это однозначно полезные патчи. Не- Кстати говоря, нынче очень многие ветки ведутся с помощью лишним будет убедиться в их наличии для того ядра, которое git, и особо заинтересованным будет полезно почитать документ вы захотите поставить. Патчи находятся по адресу: Джеффа Гаржика о работе с git: http://lkml.org/lkml/2005/5/26/11. http://linux.exosec.net/kernel/2.4-hf/. Эту ветку Линуса, равно как и 2.6.x.y, а также релизы -rc и -pre, тоже можно найти на http://kernel.org. Долго искать не | 2.6.x.y | придется — ссылка на эту ветку расположена прямо на пер- Теперь вернемся к 2.6 и обозначим еще одну довольно новую, вой странице сайта. но тоже очень важную ветку. Как я уже говорил, 2.6 в целом не так стабильна, как 2.4, и Линус решил, было, изменить | 2.6.x-mm | схему наименования релизов, для того чтобы их больше тес- От относительной стабильности давайте перейдем в полную тировали и, соответственно, чтобы ветка была более стабиль- нестабильность — ветку Эндрю Мортона -mm. Она включает ной. От изначальной идеи Линуса отговорили (в подробности в себя все возможные патчи, которые только существуют в вдаваться не будем, но, на наш взгляд, справедливо), но пред- природе. Конечно, не совсем все, но, по замечанию Линуса, ложили создать дополнительную ветвь -stable, которую мы она содержит «wild and wacky patches» — там они «варятся», теперь знаем как 2.6.x.y. Линус согласился, однако спросил, тестируются и потом плавно переходят в основную ветку Ли- где же найти таких «suckers», которые будут ее вести? Но они нуса. Сегодня очень многое попадает к Линусу именно через нашлись: Грег Кроа-Хартман и Крис Райт добровольно запо- фильтр -mm. Посему ветка экспериментальная (запросто мо- лучили это почетное звание и, судя по ветке 2.6.11.y, делают жет не скомпилироваться, хотя с i386 такое случается ред- свою работу очень хорошо. ко). Тестировать ее удобно, но на постоянное использование В ветке -stable появляются только те патчи, которые помога- должны быть веские причины. ют решать конкретные проблемы пользователей. В ней нет ни- Впрочем, одна уже поддержка файловой системы Reiser4 и каких обновлений, новой функциональности, и все изменения, технологии FUSE (подробности см. в специальной врезке) — помимо исправления какой-либо конкретной ошибки, должны вполне достаточные причины. удовлетворять еще одному важному требованию — простоте. Например, автор этой статьи использует эту ветку посто- Фактически это тот же «must have», что и -hf для ветки 2.4. янно — как раз ради Reiser4 и FUSE, примеряя к своему буду- щему LFS (Linux from Scratch). Также в ней сегодня можно | 2.6.x-pre, 2.6.x-rc | обнаружить массу других интересных вещей, но в основном Помимо этого стоит упомянуть -pre-, а также -rc-версии вет- они касаются удобств и новшеств для самих разработчиков (а ки Линуса. Как уже упоминалось выше, Марсело Тосатти как хорошо работать с inotify!). В целом эту ветку можно по- строго разграничивает -pre и -rc, однако этого нет в ветке рекомендовать отчаянным гикам, не боящимся проблем, но Линуса. В последнее время версии -pre вообще стали появ- желающим держаться действительно на острие прогресса, а ляться довольно редко, а кандидаты в релиз начали реально также что-либо потестировать. стабилизироваться только к третьей-четвертой версии. В об- Патчи этой ветки доступны в двух видах: цельный «мега- щем, получается, что сегодня -rc стоит использовать разве патч» — один файл, где все лежит вместе; или россыпь патчей, что в тестовых целях, а также тогда, когда они становятся входящих в -mm, в одном архиве. Последний удобен для ин- действительно надежными. Этот момент определяет сам Ли- дивидуального тестирования и/или применения. То есть, если нус, и на правильных сайтах об этом всегда сообщается. Вер- вам нужна поддержка Reiser4, но не хочется экспериментиро- сии хороши, если требуется функциональность, появившаяся вать с остальными -mm-патчами — пожалуйста, выкачивайте совсем недавно, или какое-либо исправление драйвера, к их либо отдельно (доступно для каждого релиза в отдель- тому же, конечно, их достаточно удобно тестировать. ном каталоге) и применяйте, либо берите весь архив и до- ставайте необходимое. Скачать патчи можно по адресу | 2.6.x{-pre,-rc,}-git | http://kernel.org/ patchtypes/mm.html. Также, что касается официальной ветки, сейчас доступны еще и версии -git. Они накладываются на -pre или -rc (а если | 2.6.x-mm-jedi | таковых еще не было, то на последнее официальное ядро) Кстати говоря, к ветке Эндрю Мортона существует еще один на- и содержат в себе снимок разрабатываемого Линусом ядра. бор патчей -jedi. Его ведет Френк Дэнис, и, как ни странно, для Git — название нового инструмента управления исходниками принципиально нестабильного -mm это нечто вроде -stable (точнее, основы этого инструмента — хранилища) для Linux, для ветки Линуса: здесь собираются исправления различных пришедшего на смену BitKeeper. Git изначально был написан ошибок, которые, как это часто бывает, появляются в самый Линусом Торвальдсом, а затем в значительной степени дора- момент релиза. Обычно имеет смысл посмотреть, есть ли пат-

CHIP| LINUX 2/2005 ÓÒÓ·ÂÌÌÓÒÚË ‚ÂÚ‚ÂÈ fl‰‡ 59

чи -jedi для последнего релиза -mm, если вы хотите его опро- ций, таких как встраиваемые системы, старые 386-е и нала- бовать. Заодно получите устрашающее название версии ядра. донные компьютеры. На наш взгляд, это прекрасный хакер- Например, не так давно пришлось работать с ядром 2.6.12- ский патч, которому место в официальной ветке (хотя бы ча- rc2-mm2-jedi1. стично, что касается структуры). Архив патчей находится на сервере ftp://ftp.c9x.org/ Он открывает множество недоступных параметров кон- pub/linux-kernel. фигурации (хотя, конечно, никто не мешает править их в исходниках и без этого патча, но надо знать, где и как): под- | Подсистемы 2.6.x | держка AIO (асинхронный ввод/вывод), файловой системы Идем далее и переходим уже к значительно менее популяр- sysfs (исключительно полезная вещь), системного вызова ным веткам. В первую очередь надо отметить многочислен- SYSENTER (аппаратная особенность процессоров Pentium ные ветки разработчиков каких-либо подсистем Linux. Это II и старше, значительно ускоряющая вызов функций яд- ACPI, IEEE1394, I2C, USB, IA64 и многие другие. Соответст- ра), ptrace (контроль выполнения потока), утилиты dnotify вующие патчи, очевидно, будут касаться конкретных подсис- (извещение пользователей об изменениях в файловой сис- тем и иногда будут необходимы. Не раз приходилось видеть теме), vm86 (читайте — эмуляция DOS). А ведь если выклю- сообщения о том, что какое-нибудь железо работает только чить поддержку режима vm86 для процессоров IA32, то при наличии последнего патча, например IEEE1394, но эти можно сэкономить целых 6 кбайт памяти!!! Еще в нем же патчи довольно скоро перейдут в ветку Линуса, к тому же по- представлено несколько инструментов, интересных разра- стоянно подбираются Эндрю Мортоном в свою ветку. ботчикам ядра. Мэтт Мэколл, который, собственно, и ведет Основной «точкой сбора» подсистем на сегодня, наверное, эту ветку, утверждает, что минимальное ядро -tiny способно можно назвать http://kernel.org/git/, однако некоторые под- запуститься даже на машине с 2 Мбайт памяти. системы ведутся отдельно, например SCSI: www.parisc- Многие из открывающихся параметров эксперименталь- linux.org/cgi-bin/gitweb.pl. ны, так что играться с ними надо аккуратнее, но у меня это ядро работало на машине assam, и делало это вполне неплохо. | 2.6.x-ck | Чего-либо сверхъестественного не замечено, но, полагаю, Переходим к менее «официальным» веткам. Тут сразу же сто- для слабых компьютеров оно может быть полезно (кстати, ит упомянуть австралийского доктора-анестезиолога Кона Коливаса и его ветку -ck. В нее включены патчи к диспетче- Перспективные технологии рам процессора и ввода/вывода, кроме того, обещается улуч- шенная отзывчивость системы. Ветка сама по себе стабиль- çÓ‚˚ ‚ÂflÌËfl — ÛÊ Ò„ӉÌfl ная (и, кстати, включает в себя патчи 2.6.x.y целиком), не- Reiser4 (http://namesys.com) вать. Звучит, возможно, смотря на то, что сам Кон рекомендует употребить немного не просто с легкостью выиг- сложно, но на самом деле все коньяка перед загрузкой такого ядра. Это ядро я также посто- рывает множество тестов про- довольно просто — файловая изводительности, это еще и система, какая бы она ни бы- янно использую для другой своей машины (старенький очень интересная файловая ла, в FUSE работает в пользо- Celeron 488 + 128 Мбайт памяти, далее фигурирует как система с точки зрения архи- вательском пространстве, то assam), планирую перевести на него еще одну машину, как тектуры. Можно даже сказать, есть для ее работы не нужно только доберусь) и чисто субъективно с этим ядром при па- что это не файловая система, накладывать патчи на ядро, раллельной компиляции меньше дергается музыка. Патчи а система хранения объек- монтировать от root или что- можно найти по адресу http://ck.kolivas.org/patches/2.6 тов — разница огромная. На либо подобное. Именно по- деле Reiser4 лишь организует этому с помощью FUSE сейчас | 2.6.x-ac | взаимодействие плагинов, ко- реализуются самые разные Стоит отметить ветку Алана Кокса — -ac. В нее входят исправ- торые и представляют каким- и самые смелые проекты, либо образом данные, преоб- касающееся ФС, например ления ошибок плюс дополнения, в основном, касающиеся разовывают их в те или иные SSHFS — файловая система драйверов. Особенно заметны в ней, пожалуй, патчи подсисте- объекты. Даже сам файл, как SSH. Не поняли, как это? мы IDE — у Алана есть серьезные претензии к сегодняшнему структура и каталог — всего А знаете про sftp? Вот это — ведущему разработчику IDE, Бартоломею Золнеркевичу. Это лишь плагины в Reiser4. В по- то же самое, только все фай- ядро также знакомо пользователям Fedora Core и RHEL, так как дробности вдаваться не буду, лы вы будете видеть в своем по умолчанию там используется именно оно. Веб-сайт — так как все это заслуживает привычном пространстве http://kernel.org/patchtypes/ac.html. Также ветку 2.6.х-ac можно отдельной статьи. имен, где вам удобно. Точно найти на kernel.org, правда, иногда kernel.org запаздывает. Скажем еще и про FUSE так же можно работать с архи- (http://fuse.sourceforge.net/). вами.tar.gz и .tar.bz2 или с | 2.6.x-tiny | Эта технология реализует FTP-соединениями, а также поддержку файловых систем шифровать файлы с помощью Существует еще одна интересная ветка -tiny. Она нацелена на в пользовательском прост- EncFS. Монтируем куда удобно уменьшение занимаемого ядром дискового пространства и, ранстве и позволяет пользо- и получаем доступ. Удобно? самое главное, памяти. Также в ней содержатся некоторые вателю без проблем монтиро- Конечно. функции, полезные для ограниченных в ресурсах конфигура-

2/2005 LINUX| CHIP 60 advanced ÚÂÓËfl

такое ядро по умолчанию собирается с опцией -Os GCC). Патчи можно скачать на сайте http://redhat.com/ Данная ветка представлена в Интернете на странице ~mingo/realtime-preempt. http://selenic.com/tiny. | 2.6.x-vm | | 2.6.x-kj | Название -vm не совсем официальное, однако именно оно Упомянем также ветку -kj (kernel janitors — дворники ядра), было предложено для ветки, ведомой Риком ван Риелом. она интересна разве что как средство смягчения приступов Появилась эта ветвь с подачи Ника Пиггина, который за- альтруизма и хороша для начинающих хакеров ядра. Собст- метил, что используемый ныне в Linux алгоритм замеще- венно, она и создается начинающими хакерами под руковод- ния страниц виртуальной памяти — весьма популярный ством более опытных товарищей. В ней происходит вычище- LRU, уже порядком устарел и на современных конфигу- ние ядра от всевозможных остатков старых API, проводятся рациях работает далеко не оптимально. Соответственно, некие мелкие оптимизации, исправляются очевидные ошибки Рик взялся и уже реализовал замену LRU — алгоритм и прочее в том же духе. Как уже говорилось, она создается на- CART. На сегодня в этой ветке еще не было официальных чинающими хакерами — понятно, что они лишь изучают раз- релизов, но предварительные версии доступны по адресу личные подсистемы/API ядра и по этому поводу очень часто www.surriel.com/patches/nonresident. Wiki-страничка ветки: просматривают исходники, а попутно делают и что-то полез- http://wiki.linux-mm.org/wiki/AdvancedPageReplacement. Мне ное. Приветствуется всяческое тестирование этой ветки, но тем временем остается только заметить, что по еще не выяснен- обычно внутреннее тестирование в ней хорошее, да и патчи не ной причине я этот патч не опробовал — серьезное упущение, очень серьезные, поэтому изменения из нее довольно быстро буду наверстывать. Патч, конечно, экспериментальный, так попадают в ветку -mm, а затем и к Линусу — в основное ядро. что будьте осторожны. Подробную информацию об этой ветке можно найти на Полагаю, впрочем, что после стабилизации этот патч до- сайте http://janitor.kernelnewbies.org. вольно быстро войдет в -mm и далее в ветку Линуса. | 2.6.x-RT | | Stay tuned | Еще одним из интереснейших на сегодняшний день патчей яв- На самом деле веток ядра Linux существует гораздо больше, а ляется расширение реального времени для Linux от Инго Мол- уж количество патчей к ядру, витающих по просторам Сети, нара. Этот патч содержит изменения, позволяющие использо- вовсе не поддается исчислению, но это уже совсем частные вать Linux в системах мягкого и жесткого реального времени случаи. Оставаться в курсе выхода новых версий разных веток (конечно, с некоторыми допущениями, все же основа Linux и все Linux можно подписавшись на LKML (Linux Kernel Mailing драйверы совсем не реального времени, и с этим приходится счи- List). Для этого достаточно отправить письмо с темой «sub- таться), что в первую очередь ценно для различных встроенных scribe linux-kernel» по адресу [email protected], од- применений, но также уже используется и на других системах. нако надо быть готовым к трафику порядка 300 писем в день. Например, с этими патчами работают те, кто профессионально Можно еще заглядывать на http://kerneltrap.org (там англий- связан со звуком (пользователям Jack настоятельно рекоменду- ский язык и периодически пропускаются релизы, хотя есть ется), потому что латентность, а точнее непредсказуемость, в масса различной интересной информации), либо обратиться обычном ядре Linux сильно мешает нормальной работе. к странице http://osrc.info. На сегодняшний день часть патчей из этой ветки уже инте- Ну а если вам стало интересно, что еще происходит вокруг и грирована в официальное ядро — именно оттуда растет вы- внутри ядра (а это иногда просто необходимо, чтобы понять, тесняемое ядро (опция сборки ядра — CONFIG_PREEMPT) зачем существует тот или иной патч, что означает тот или в текущих версиях ядра, а также огромное количество ис- иной новый пункт в конфигурации и какое новое правлений для многопроцессорных машин: введение вытес- оборудование поддерживается или будет поддерживаться), няемого ядра позволило обнаружить массу неявных гонок и стоит начать изучение с сайта http://kernelnewbies.org/. Зна- блокировок в ядре. Для конечного пользователя в целом этот комьтесь с Linux! патч может быть интересен, поскольку снижение латентно- На прощание можно порекомендовать поэксперименти- сти и стабильность интересна всем, даже несмотря на то, что ровать с ядрами — получите массу удовольствия, узнаете большая часть этих изменений не будет видна глазу. Я так- много нового, сможете поддерживать ядро в актуальном со- же пробовал это ядро на машине assam и не могу сказать, стоянии (а это значит, что количество дырок в ядре будет что обнаружил какую-то большую разницу в скорости ре- стремиться к минимуму). Особенно же порекомендую тести- акции. Правда, с аудио- и видеоконтентом мне работать не ровать различные -rc- и -pre-версии — этого сегодняшнему приходится, и оценить все его прелести довольно трудно. По- ядру действительно не хватает, размеры патчей все растут, и этому пришлось вернуть на место -ck с включенным CON- управляться с ними разработчикам все сложнее, так что вспо- FIG_PREEMPT. минайте дух братства свободного сообщества, тестируйте Сейчас ведутся дискуссии о том, стоит ли включать этот патч и не стесняйтесь писать разработчикам о проблемах. Файл в официальное ядро, и, вполне возможно, он войдет через не- MAINTAINERS в корне дерева исходников Linux предназна- которое время в ветвь Эндрю Мортона. чен именно для таких случаев. Успехов в ядерном синтезе! |

CHIP| LINUX 2/2005 events ͇ÎẨ‡¸ ÒÓ·˚ÚËÈ 61

Неделя Linux в Обнинске ALT Linux и Институт логики проводят вторую конференцию разработчиков LinuxWorld Russia свободных программ на реке Протве. Цель Крупнейшая выставка и конференция, посвя- мероприятия — наладить личные контакты щенная решениям, основанным на Linux между специалистами, обсудить перспективы и Open Source. Ежегодно проходит в 15 странах развития свободного программного обеспече- мира, в этом году — впервые в России. Вы- ния, инициировать новые проекты. ставка ориентирована на бизнес-аудиторию. Когда: 25-27 июля Когда: 7-9 сентября Где: г. Обнинск, Калужская область Где: г. Москва, Гостиный Двор на Ильинке Информация: Информация: www.linuxworldexpo.ru www.altlinux.ru/index.php?module=conf2

Летняя школа Linux Проводится в рамках «Недели Linux» ком- панией ALT Linux совместно с интернет- университетом Intuit.ru. Цель — изучение Ежегодный фестиваль Linux основ и вопросы преподавания ОС Linux. в Калужской области Будут рассмотрены аспекты обучения по лек- Слет любителей Linux и Open Source. циям учебного курса «Операционная система В программе предусмотрены следующие Linux», вопросы инструментария (подготовка мероприятия: круглые столы по различным и использование площадки) и специфика ис- тематикам, проживание в палатках, пользования Linux (легальность, взаимодейст- активный отдых, конкурсы. вие с сообществом, источники информации). Когда: с 30 июля по 1 августа Когда: 25-27 июля Где: г. Балабаново, Калужская область Где: г. Обнинск, Калужская область Информация: http://lrn.ru Информация: www.intuit.ru/shop/product.xhtml?id=2493377

Первая международная конференция Wikimania 2005 Благоприятная возможность для встречи с со- обществом Wikimedia и разработчиками Wiki, которые ставят во главу угла принципы свобо- Linux Land на Softool'2005 ды распространения и доступности знаний. Экспозиция нескольких разработчиков Цель мероприятия — позволить людям, рабо- на основе Open Source. тающим над различными Wiki-проектами, уз- Когда: с 27 сентября по 1 октября нать больше друг о друге и наладить контакты. Где: г. Москва, ВВЦ Когда: 4-8 августа Информация: www.softool.ru Где: г. Франкфурт-на-Майне, Германия Информация: http://wikimania.wikimedia.org

2/2005 LINUX| CHIP 62 advanced Ô‡ÍÚ˘ÂÒ͇fl ‡·ÓÚ‡ éÍÓÌÌ˚È ‰Û˝ÚАртур Крюков Существующее на сегодняшний день ПО под Linux пока не может удовлетворить все запросы пользователей, например, в части различных CAD и программ для бухгалтерии. С другой стороны, эта ОС очень сильна в плане защищенности при работе в сети. Воспользоваться этими преимуществами и при этом продолжать продуктивную работу помогут уникальные возможности системы X Window.

Идею этой статьи мне подсказал один слушатель, присутствую- | Об используемых технологиях | щий на моих курсах по Linux. Как человеку, работающему с Linux В Unix в качестве графической оболочки применяется система продолжительное время, эта мысль вряд ли пришла бы в мне го- X Window, имеющая множество различных реализаций — ком- лову. Я долго думал, а зачем ЭТО надо? Но прошло немного вре- мерческих и не совсем. Если говорить о мире Linux, то на дан- мени, и я начал понимать, что предложение было все же доста- ный момент в основном используются XFree86 и X.Org. Первая точно интересным и надо обязательно рассмотреть его. система из-за проблем с лицензированием стандартно не по- С чего все начиналось? После изучения темы, посвящен- ставляется с некоторыми современными дистрибутивами ной системе X Window и возможности запуска X-клиентов и Linux, поэтому используется X.Org. X-серверов на разных машинах в сети, был задан вопрос: X Window построена по принципу клиент-сервер. Но сразу «А можно ли сделать так, чтобы все критические с точки зре- хочу предупредить, что принцип взаимоотношений клиента и ния безопасности приложения работали на Linux, а отобра- сервера в X Window поставлен с ног на голову, и поэтому с жали свой вывод на Windows-машинах?» первого раза не все понимают, как это работает. Обычно сер- Первое, что мне пришло в голову: «А зачем, если вас так вером или серверным приложением считается какой-либо волнует безопасность, устанавливать Windows? Linux как рабо- софт, реализующий хранение информации или вычисление чая станция — вполне приемлемое и безопасное решение». На какой-нибудь сложной математической задачи. Клиент в что слушатель выдвинул аргумент: у него в основном работают обычном понимании — это программа, позволяющая управ- дизайнеры, которым требуется специфичный софт, отсутству- лять информацией или получать доступ к ней. ющий в Linux. Проблемы возникают в основном с программа- В X Window сервер содержит драйверы видеоплаты, клавиа- ми, позволяющими осуществлять доступ в Интернет (почто- туры, мыши и других устройств ввода и позволяет программам- вые клиенты, браузеры и т. п.), причем установка антивирусов клиентам рисовать на экране монитора. Таким образом, на ма- и обновление самой системы не очень помогают. Поэтому, шине пользователя работает именно X-сервер. Клиент же, в когда он увидел на курсах, как приложение в Linux может фи- свою очередь, отображает на нем данные. X-клиент и сервер зически работать на одной машине, а отображать данные на могут общаться через сетевое соединение и, следовательно, фи- другой, причем без потери качества изображения и снижения зически располагаться на разных машинах. скорости работы, ему захотелось узнать, существует ли воз- Система X Window подразумевает возможность использо- можность отображать данные программ, работающих в Linux, вания специальных устройств — X-терминалов. На них рабо- на Windows-машинах. Если да, значит все программы, сопри- тает только одна программа — Х-сервер. Такие терминалы касающиеся со «злым и ужасным» Интернетом, будут работать могут выпускаться как отдельные устройства, но в Х-терми- на Linux — в среде, где они не так сильно подвержены вирусам нал можно превратить и любой компьютер, даже не очень и прочим возможностям взлома. И даже если их поломают, это новый. Программы-клиенты могут отображать данные, в том повлияет только на Linux-машину, Windows-клиенты останут- числе и на сервере, работающем на Х-терминале. Это значит, ся нетронутыми. Все файлы, которые клиенты будут получать что на рабочее место можно не устанавливать полноценный из Интернета, также станут сохраняться на Linux-машине и компьютер, а только Х-терминал (концепция так называе- никуда за ее пределы не выйдут, а на Windows-машине будут мых «тонких клиентов»). Существуют программы, эмулиру- только окна соответствующих программ. ющие работу Х-терминала в Windows.

CHIP| LINUX 2/2005 ‚Á‡ËÏÓ‰ÂÈÒÚ‚ËÂ Ò Windows 63

Теперь об окнах в X Window. Для их отрисовки использует- | WeirdX (www.jcraft.com/weirdx) | ся специальное программное обеспечение — оконный мене- Компания JCraft специализируется на написании программ с джер (Window Manager). Как будут выглядеть окна и как они использованием технологии Java в области коммуникаций. будут себя вести, зависит от него. Оконный менеджер — это Большая часть программного обеспечения распространяется тоже фактически X-клиент, то есть для отображения окон он под лицензией GNU GPL, в том числе и сервер WeirdX. Кроме посылает данные на Х-сервер. WeirdX компания распространяет еще один сервер, но под ком- И еще одна немаловажная программа, которая может ис- мерческой лицензией — WiredX. пользоваться в X Window, — менеджер дисплеев (Display WeirdX реализует все возможности стандартного X-сервера. Manager). После включения Х-терминал по протоколу С ним поставляется набор утилит, расширяющих возможности XDMCP (X Display Manager Connect Protocol) подключается к X-сервера: JSch организует передачу данных по защищенному серверу, где работает менеджер дисплеев. Последний позво- каналу; JRexec – rexec-клиент и другие. ляет пользователю полноценно входить в систему на Linux- машине после запуска оконного менеджера. | X-Deep/32 (www.pexus.com) | Хочется сразу предупредить, что протокол, используемый К сожалению, на сайте производителя не указаны особенно- для связи Х-сервера с Х-клиентами, потребляет достаточно сти данного Х-сервера. Заявлено лишь о полной совместимо- много ресурсов сети, кроме того, все данные, передаваемые сти с релизом X11R6.5.1. по этому протоколу, не шифруются. Поэтому X Window реко- мендуется применять только в пределах локальной сети. Пе- | Подготовка Linux-машины | редавать данные через Интернет возможно, но крайне не же- Для того чтобы Х-серверы могли взаимодействовать с Linux- лательно. Если содержимое зашифровать при помощи Ipsec машиной, на ней следует: или любых других протоколов, объем передаваемых данных 3 завести учетные записи пользователей; все равно будет слишком велик. Так что, если возникнет не- 3 если планируется использовать полноценный вход в систему обходимость отображать рабочие столы компьютеров, распо- (а-ля X-терминал), необходимо соответствующим образом на- ложенных в различных частях Интернета, обратите внимание строить менеджер дисплеев. на Real VNC — эта система оптимизирована как раз под такие При добавлении учетной записи пользователя необходимо задачи (www.realvnc.com). помнить, что у него обязательно должны быть домашняя ди- ректория и реальный shell. | Бесплатные X-серверы для Windows | С менеджерами дисплеев немного сложнее, с Linux могут Итак, осталось найти программы, реализующие работу поставляться три менеджера — xdm, gdm (GNOME) и kdm X-сервера в Windows. Обращение к www.google.com с запро- (KDE). Каждый из них настраивается различными способами. сом «X Window server Windows» выдало в ответ много инфор- Мы будем использовать kdm. мации, но самая интересная страница находится по адресу Для конфигурации kdm необходимо: www.nixp.ru/rlfaq/rulinux.faq-6.html. Там, в разделе «6.9 Где най- 3 Найти файл kdmrc. В различных дистрибутивах он может на- ти X Server для Windows?», перечисляются восемь серверов. ходиться в разных директориях. Например, в Slackware Linux — Правда, из всего списка только один оказался бесплатным — это директория /opt/kde/share/config/kdm, в Red Hat Linux — Cygwin/X. Неужели все так плохо? Все серверы коммерческие? директория /etc/X11/xdm. Оказалось, что не все. После некоторых поисков был найден 3 В файле kdmrc найти секцию [Xdmcp] и установить пара- еще один бесплатный, написанный на Java, — WeirdX. Мне по- метр Enable=true. казалось, что этого мало, и, еще немного поигравшись с Google, я обнаружил -сервер X-Deep/32. Давайте рассмотрим эти три программы более подробно.

| Cygwin/X (http://x.cygwin.com) | Широко известная компания Cygwin разрабатывает библио- теку cygwin1.dll, в которой эмулируется Linux API, а также портирует на Windows набор популярных GNU-утилит. Пред- лагаемые утилиты (gcc, ld и т. д.) распространяются по лицен- зии GNU GPL, однако библиотека cygwin1.dll имеет свою собственную лицензию (не GPL), позволяющую использо- вать ее в коммерческом программном обеспечении. Cygwin/X — это порт X Window System на различные вер- сии ОС Windows, начиная с Windows 95 и заканчивая Windows Server 2003. Cygwin/X содержит X-сервер, библиотеку X, не- сколько полезных скриптов и набор стандартных Х-клиентов, «å‡Ú¯͇» ËÁ ‡·Ó˜Ëı ÒÚÓÎÓ‚ — ÏẨÊÂ ‰ËÒÔ΂ + Cygwin таких как xterm, xhost, xclock и другие.

2/2005 LINUX| CHIP 64 advanced Ô‡ÍÚ˘ÂÒ͇fl ‡·ÓÚ‡

Ç˚·Ó ÒÂÚÂ‚Ó„Ó ËÌÚÂÙÂÈÒ‡ èÓ‰Íβ˜ÂÌËÂ Í X-ÒÂÒÒËË

программы XWin.exe в ее командной строке. Для удобства по- ставляется специальный файл startxwin.bat. Если при установке в качестве основной директории была выбрана C:/cygwin, то файл startxwin.bat будет находиться в ди- ректории C:/cygwin/usr/X11R6/bin. В нем необходимо найти строку run XWin -multiwindow -clipboard -silent-dump-error, в á‡ÔÛÒÍ ·‡ÛÁÂ‡ ‚ ÒÓ·ÒÚ‚ÂÌÌÓÏ ÓÍÓÌÌÓÏ ÏẨÊÂ Cygwin конце которой дописать -xkbrules xorg -xkbmodel pc104 -xkblay- out «us,ru» -xkbvariant winkeys -xkboptions «grp:alt_shift_toggle». 3 В той же директории, где расположен kdmrc, находится Добавленные параметры позволяют использовать русскую файл Xaccess. В нем описываются Х-терминалы, с которых клавиатуру и по своему значению полностью совпадают возможно подключение к менеджеру дисплеев. Чтобы разре- с аналогичными параметрами конфигурационного файла шить подключаться всем, необходимо написать символ «*» в Х-сервера xorg.conf в Linux. любой пустой строке. 3 В файле /etc/X11/xdm/xdm-config, в начале самой послед- | Работа с Сygwin/X | ней строки, содержащей параметр DisplayManager.requestPort, После установки программы на рабочем столе создается яр- следует поставить символ «!». Это заставит менеджер диспле- лык Cygwin. Если его запустить, активируется командная ев открыть для прослушивания порт 177/udp и принимать по оболочка bash, и вы получаете знакомую командную строку нему запросы от Х-терминалов. Linux. При помощи нее можно запустить Х-сервер в режи- 3 Если на сервере с Linux не настроена система X Window, то ме Х-терминала: X -query 192.168.1.3. Вместо IP-адреса есть не предполагается работать в графическом режиме, ре- 192.168.1.3 следует указать IP-адрес компьютера, на котором комендуется в файле /etc/X11/xdm/Xservers поставить символ работает менеджер дисплеев kdm. На экране должно появить- комментария «#» в начале строки :0 local /usr/X11R6/bin/X. ся приглашение входа в Linux-систему. Тогда при запуске менеджера дисплеев не будет запускаться После входа в систему запускается оконный менеджер, и локальный Х-сервер. вы начинаете работать на Linux-машине с отображением дан- 3 Если менеджер не был запущен, сделайте это сами с помо- ных в Windows. щью команды kdm. В противном случае заставьте его перечи- Конечно, при использовании такого метода работы на сер- тать свой конфигурационный файл — killall -HUP kdm. вере происходит большой расход ресурсов. Я лично не пробо- 3 Убедитесь, что kdm открыл на прослушивание 177-й порт — вал большое количество клиентов, но машина dual Pentium III netstat -nlp | grep :177. 800 МГц с 1,5 Гбайт оперативной памяти свободно обслужива- ла 10 рабочих мест, и это при том, что в качестве оконного ме- | Установка и конфигурация Сygwin/X | неджера выступал далеко не самый «легкий» KDE. Прежде всего, скачайте с сайта разработчиков программу Сygwin/X позволяет использовать другой режим работы, установки setup.exe. Затем можно выбрать, установить ли когда на Windows-машине запускается Х-сервер, собствен- программу прямо из Интернета, только скачать ее или взять ный оконный менеджер и эмулятор терминала. В этом слу- заранее скачанную программу из директории. Далее следу- чае для запуска используется файл startxwin.bat. Благодаря ет выбрать папку, куда она будет установлена и тип текс- параметру -multiwindow, который передается при запуске товых файлов — Unix или DOS. Затем в предложенном XWin.exe, каждое приложение будет запускаться в своем списке FTP-серверов необходимо найти ближайший к собственном окне. вам сервер. Попытка выбрать сервер в зоне .RU не увенча- При использовании startxwin.bat не происходит подключе- лась успехом, поэтому придется пользоваться услугами за- ния Х-сервера как Х-терминала, и поэтому на Linux-машине рубежных серверов. нет необходимости настраивать менеджер дисплеев. Запустите установочную программу и выберите желаемые После запуска startxwin.bat появляется окно эмулятора тер- пакеты. Также не забудьте в разделе «Net» включить установ- минала. В первую очередь в этом окне необходимо разрешить ку openssh и openssl. удаленным программам отображать данные на Х-сервере, ра- После установки Сygwin/X необходимо настроить. Конфи- ботающем в Windows. Для этих целей воспользуйтесь програм- гурационные параметры передаются Gygwin/X при запуске мой xhost: xhost +192.168.1.3. Вместо показанного в примере

CHIP| LINUX 2/2005 ‚Á‡ËÏÓ‰ÂÈÒÚ‚ËÂ Ò Windows 65

è˄·¯ÂÌË Инсталляция представляет собой обычную процедуру ус- ‚ıÓ‰‡ ‚ ÒËÒÚÂÏÛ тановки программы Windows. После установки были обнару- Ò ËÒÔÓθÁÓ‚‡ÌË- жены документация по продукту и две программы — Х-сервер ÂÏ X-ÚÂÏË̇· и X Client Launcher. После запуска появляется диалоговое окно, предлагающее выбрать сетевой интерфейс, на котором Х-сервер будет «слу- шать» запросы. Затем программа сама пытается найти доступ- ные в сети менеджеры дисплеев. После обнаружения выводит- ся список таких серверов. С первой попытки подключиться к менеджеру дисплеев не IP-адреса следует использовать IP-адрес машины Linux, на ко- удалось — в сети необходимо настроить корректное преобразо- торой будут запускаться программы. вание имен. Но после запуска X-Deep/32 можно открыть окно Зайти на Linux-машину можно при помощи программы ssh: настроек и там явным образом указать Linux-машину, к кото- ssh [email protected]. Вместо указанных в примере пользователя рой следует подключаться. и IP-адреса следует использовать логин пользователя на Linux- При всей простоте установки и настройки Х-сервер показал машине и, соответственно, ее IP-адрес. себя не с лучшей стороны в плане быстродействия. Cygwin/X Теперь необходимо сделать так, чтобы программы, запуска- работает гораздо быстрее. Встроенная в X-Deep/32 возмож- емые на Linux, отображали свои данные в окне Windows. Один ность удаленного запуска программ базируется на rsh и rexec. из вариантов решения — использование переменной среды ок- Ни один здравомыслящий администратор эти программы ис- ружения DISPLAY: export DISPLAY=192.168.1.2:0.0. Вместо пользовать не будет. Так что в случае X-Deep/32 остается толь- IP-адреса, показанного в примере, следует использовать IP-ад- ко режим эмуляции Х-терминала, что не всегда удобно. рес компьютера, на котором работает Х-сервер. Программы за- пускаются обычным образом. | Итоги | В результате проверки трех бесплатных Х-серверов под | Установка и настройка WeirdX | Windows, по моему мнению, наиболее приемлемым является Сервер поставляется в виде архива ZIP, который достаточно реализация от Cygwin. Несмотря на то что Х-сервер требует ус- распаковать в любую директорию. Перед запуском сервера в тановки почти всей базовой среды запуска, работает он просто систему необходимо установить виртуальную машину Java как великолепно. И это не удивительно, ведь он представляет со- минимум версии 1.1. бой стандартную реализацию сервера X.Org, собранную в среде В директории, куда был распакован архив, появится папка cygwin. Соответственно, для конфигурации сервера использу- config, в которой будет находиться всего один конфигурацион- ются те же приемы, что и в Linux. ный файл — props. Все параметры сервера задаются именно в Про WeirdX ничего хорошего сказать, увы, нельзя. Во-первых, этом файле. он жутко «тормозил». Во-вторых, для запуска приложений тре- Во-первых, в файле props следует найти параметр буется дополнительная программа, при помощи которой можно weirdx.display.acl и определить, кому можно отображать дан- подключиться к Linux-машине. В общем, медлительность Java ные на этом Х-сервере. Например: +192.168.1.3 или просто сказывается при написании приложений пользователя. символ «+», если доступ разрешен всем. X-Deep/32 мог бы стать чемпионом, если бы в нем была нор- Запуск сервера лучше производить при помощи специально- мально реализована возможность запуска программ — или хотя бы го пакетного файла, расположенного в директории misc, — встроенный ssh-клиент для удаленного логина на Linux-машину. weirdx-Java2.bat. После запуска Х-сервера необходимо зайти на Возможно, существуют и другие бесплатные реализации Linux-сервер при помощи любой программы, поддерживаю- Х-серверов для Windows. Хочется надеяться, что платные вариан- щей протокол ssh (например, PuTTY). Как и в случае с ты будут демонстрировать большую скорость работы и легкость Cygwin/X, необходимо определить переменную DISPLAY и за- конфигурирования, ведь не зря их продают за деньги (цены ко- пускать программы. леблются от $40 до $300 за рабочее место). Но лично я считаю, что При работе WeirdX очень сильно притормаживал (сказа- держать рабочие места под управлением Windows, для того чтобы лось использование Java), и при отрисовке на экране появля- несколько человек могли запускать специфичные для этой ОС лись черные полосы. В общем, качество данного продукта программы, — это неудобно. Проще выделить один терминаль- сильно разочаровало. Поэтому я даже не буду приводить ный сервер под управлением Windows 2000, на котором будут ус- скриншоты, демонстрирующие его работу. тановлены программы типа 1C, системы CAD и прочие. А на ра- бочих местах лучше всего использовать бездисковые рабочие | Установка и настройка X-Deep/32 | станции под управлением Linux и запускать на них терминаль- На сайте X-Deep/32 не было обнаружено никакой документа- ный клиент для Windows — rdesktop (www.rdesktop.org). | ции по программе кроме FAQ. Установочный файл занимает Выражаем благодарность Центру компьютерного обучения почти 16 Мбайт. Необходимый объем свободного дискового «Специалист» при МГТУ им. Н. Э. Баумана за помощь пространства — 43 Мбайт . в подготовке материала

2/2005 LINUX| CHIP 66 advanced ‡‰ÏËÌËÒÚËÓ‚‡ÌËÂ

Константин Лепихов ëËÒÚÂÏÌ˚È ‡Ì‡·ËÓÁ Многие пользователи уже давно знают про одну из интересных особенностей стандарта ACPI (acpi.sourceforge.net) — так называемые sleep states, или «состояния сна». Они описывают различные режимы энергосбережения, в которые можно переводить ACPI-совместимый компьютер. Кроме обычных и оставшихся со времен APM, вроде отключения дисков или перевода устройств в режим «полусна», есть несколько новых и самых интересных: это ACPI S3 (или suspend-to-ram) и ACPI S4 (или suspend-to-disk). Как правило, еще в ходу сокращения STR для S3 и hibernate для S4. Мы рассмотрим эти состояния более подробно.

| STR, или suspend-to-ram | грузку с нуля. Здорово, скажете вы, но причем тут Linux? А вот Это состояние, при котором все компоненты компьютера пере- причем: в ней тоже это есть. Поддержка sleep states была добав- водятся в режим максимально низкого энергопотребления (либо лена в ядро 2.4 и серьезно улучшена в версии 2.6. Теперь там вообще отключаются), но питание для оперативной памяти тоже поддерживаются спящие режимы, причем в несколько сохраняется — таким образом, не происходит ее разрядка, и со- более полном варианте. держимое остается прежним. При включении компьютер делает лишь только повторную инициализацию отключенных или Расширенное использование «усыпленных» устройств, не производя полной загрузки системы. éÒÓ·˚Â ‚ÓÁÏÓÊÌÓÒÚË | S4, или suspend-to-disk aka hibernate | Существует специальный /proc/software_suspend2, скрипт, облегчающий под- выполнить какие-то дейст- Самый интересный режим, позволяющий «заморозить» со- готовку компьютера к «усып- вия перед засыпанием/после стояние всей системы, сохранить его на диск и полностью от- лению». Он находится на пробуждения и т. д. Вместе ключить компьютер. Этот режим, который, в отличие от сайте swsusp2, называется с этим скриптом можно ис- STR, все-таки зависит от состояния электросети, позволяет просто и незатейливо hiber- пользовать популярную про- «спать» компьютеру сколь угодно долго — до тех пор, пока nate и представляет собой грамму acpid, которая умеет диск не развалится. набор функций и полезных обрабатывать действия на- Вернемся к пользователям Windows, они знают этот режим трюков. Например, с его по- жатия кнопок на корпусе под названием hibernate, вариации которого можно изменять мощью можно вызвать про- (или датчика закрытия крыш- либо из BIOS (для STR), либо через средства управления самой грамму для восстановления ки у ноутбука). В общем, видеорежима после пробуж- hibernate — очень полезная Windows. Как правило, востребовано все это на переносных дения, настроить параметры во всех отношениях програм- компьютерах: вроде как выключил и забыл, потом пришел до- сохранения через привыч- ма, которая рекомендована мой и продолжил работу с того места, где закончил в офисе. ные названия опций, а не че- каждому, кто будет пользо- Но и для обычных домашних пользователей это полезно — ведь рез echo «видеорежим» > ваться swsusp/swsusp2. на «засыпание» тратится гораздо меньше времени, чем на за-

CHIP| LINUX 2/2005 ‡Î¸ÚÂ̇ÚË‚‡ hibernate 67

| Swsusp, или первая волна | Для начала немного скучной теории: чтобы компьютер смог сделать S4, необходимо каким-то образом записать «заморо- женное» состояние на диск. У Windows и большинства ноутбу- ков с этим проблем нет — нужна всего лишь «правильная» BIOS, умеющая делать запись на специальный раздел диска (как правило, его нельзя увидеть из Windows) и корректно вы- ключать всю систему «по приказу» из Windows. Для Linux подобный механизм работает плохо — во-первых, «неправильных» BIOS все-таки больше, да и знает он про Linux немного. Поэтому максимум, на что можно рассчитывать, — это вполне корректное выключение/усыпление устройств, и не более того. А все остальные задачи придется решать программно и сво- ими силами. Прибавьте к этому обилие компонентов ядра, изна- чально не спроектированных на «усыпление», драйверы уст- ройств, в которых отсутствует поддержка восстановления после ê‡Á΢Ì˚ ‚‡ˇÌÚ˚ Á‡ÒÚ‡‚ÓÍ ‚Ó ‚ÂÏfl «Á‡Ò˚Ô‡ÌËfl» «просыпания», и т. д. В общем, картина не совсем приятная. Часть этих проблем может решить созданный механизм под на- вателя» подверглись серьезной доработке: было затронуто са- званием Swap Suspend, или swsusp, который позволяет выполнять мо ядро (в частности, планировщик процессов и различные большинство операций (остановка всех выполняемых процессов ключевые компоненты), код многочисленных драйверов (ви- ядра, запись состояния регистров процессора, перевод драйверов деоадаптеры, сетевые платы, устройства мультимедиа и т. д.). в энергосберегающий режим), а также записывать «заморожен- Появилась возможность сжимать образ памяти перед сохра- ный» образ в раздел, предназначенный для своппинга (или под- нением, подгонять его под размер свободного места на диске качки — говоря языком пользователя Windows). К сожалению, (в документации к swsusp2 этот процесс называется поедани- первые версии swsusp работали крайне нестабильно: это было ем памяти), стало возможным использовать различные пла- связано с плохим тестированием (просто не было достаточной гины для режимов сохранения (swapwriter, filewriter), появи- аппаратной базы), да и пользователи особого интереса не испы- лась поддержка bootsplash (крутящийся на экране во время тывали, потому что пользователи могут появиться только у ста- «засыпания» пингвин на сноуборде — это гораздо интерес- бильно работающего решения. нее, чем синий экран Windows). И самое главное — можно «усыплять» не только ноутбуки, но и серьезные серверы, так | Swsusp2, или революционный метод как теперь поддерживаются SMP и HIGHMEM (то есть коли- запуска вашего компьютера | чество памяти превышает 1 Гбайт)! Есть патчи для поддержки К счастью, добрые люди не дали умереть swsusp, и появился PPC и x86-64, но пока они не признаны очень стабильными. форк от основного swsusp под названием Software Suspend 2, На сегодняшний день осталось еще много недостатков в ра- или swsusp2 (www.suspend2.net). Адрес Wiki по swsusp2 — боте swsusp2, но большинство из их можно решить — напри- http://wiki.suspend2.net. Все части оригинального «заморажи- мер, не пользоваться закрытыми коммерческими драйверами (для видеоплат ATI или NVIDIA) или выбирать компоненты Варианты использования от более-менее известных производителей, так как гораздо äÓ„‰‡ ‰ÓÓ„‡ ͇ʉ‡fl ÒÂÍÛ̉‡ больше шансов, что, например, «кривая» BIOS быстрее ис- правит ASUS, чем Elitegroup. 3 Сервер приложений с кри- STR или S4. Ставите swsusp2 тичным временем доступа и «усыпляете» его, когда | Заключение | и важными данными. Вдруг хотите, так как swsusp2 Если вы заинтригованы и решили проверить, как работает вам понадобилось срочно ос- больше зависит от ядра, тановить сервер, и у вас нет а не от версии BIOS. swsusp2 на вашем компьютере с дистрибутивом Linux, к тому времени на его нормальное 3 Нужно срочно заменить же этот дистрибутив — от ALT Linux (например, Master-2.4), завершение (например, ос- вышедший из строя компо- то вам крупно повезло. Так как для него ничего дополни- талось 30 секунд до оконча- нент (например, сетевую тельно собирать или скачивать не надо, достаточно поставить тельной разрядки UPS). плату), а у вас сервер с кри- из backports специальное ядро (из серии -wks26) и сам скрипт Без проблем — «усыпляете» тичным временем доступа управления hibernate. Если в вашем дистрибутиве таких сервер, выключаете его, по- (предположим, там распо- возможностей нет, обратитесь к документации на сайте том снова включаете, когда ложен хостинг или почта). swsusp2 или расположенному там же списку рассылки для неприятности позади, и сер- «Усыпляете» его, заменяете пользователей. А если вы разработчик и желаете помочь про- вер снова работает! сетевую плату, и, если вы все 3 У вас старый ноутбук, у сделали быстро, никто ниче- екту своими патчами или отчетами о замеченных ошибках, которого никогда не будет го и не заметит. присоединяйтесь к обществу создателей swsusp2. В любом слу- чае вы поможете и себе, и другим. |

2/2005 LINUX| CHIP 68 advanced ‡‰ÏËÌËÒÚËÓ‚‡ÌËÂ

Константин Лепихов ê‡Á‰Óθ ‚ ÒÂ‚ÂÌÓÏ Á‡Ôӂ‰ÌËÍÂ

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

| Что это и кто это? | было названо VServer (изначально оно носило имя Virtual На сегодняшний день существует много технологий, позволя- Private Server, но когда так стали называть другой проект, было ющих сделать жизнь администраторов спокойнее. Это и изоля- принято решение о переименовании). По сути, это сервер вну- ция сервисов (chroot), и защита от переполнений буфера (owl три сервера — со своими ресурсами, сетевыми интерфейсами, или grsecurity), и разграничение привилегий (например, LIDS памятью, ограничениями и пользователями. При этом серверы или RSBAC). Но согласитесь, было бы все же лучше, если бы не видят и не влияют друг на друга. Свежую версию VServer некоторые небезопасные сервисы можно было физически пе- можно найти в Интернете по адресу www.linux-vserver.org. ренести на другой сервер (например, сервисы баз данных, раз- Кому, кроме администраторов, это решение может приго- личные IM-сервисы и т. д.). «Как, — скажете вы, — у нас уже диться? Говоря словами авторов, «всем, кому нужно управлять есть один сервер, самый мощный и лучший, зачем нам еще?» сервером». Вот несколько примеров, показывающих, в каких Хорошо бы сделать так, чтобы на базе одного физического сер- областях это применимо: вера можно было создать несколько виртуальных и на каждый 3 Хостинг. Полностью независимый от ограничений провайде- из них установить свой дистрибутив и настроить его по вкусу. ра хостинг (то есть несколько отдельных виртуальных серверов Видимо, подобные мысли не давали покоя программисту и в пределах одного физического). администратору Жаку Глина, и он придумал решение, которое 3 Эксперименты с программным обеспечением. Согласитесь,

CHIP| LINUX 2/2005 ̇ÒÚÓÈ͇ VServer 69

не совсем правильно производить отладку или разработку про- тории уровнем ниже, повторяя chroot() снова и снова. Вы, граммного обеспечения на рабочей системе, а вот делать это на наверное, уже догадались, к чему шло все это вступление: ос- отдельной машине было бы вполне логично. новная идея технологии VServer — системные вызовы, позво- 3 Образовательные цели. Например, каждому студенту можно ляющие полностью изолировать запуск и исполнение про- дать свой сервер, с которым он сможет делать все, что захочет. цессов в определенных местах внутри сервера. Можно даже дать ему пароль root. Виртуальный сервер изолирован в четырех областях: 3 Изолированные серверы. Например, если нужно работать с 3 Файловая система. Каждый VServer «посажен» в отдельную каким-то приложением и необходим полный контроль за его директорию главного сервера и не может «убежать» из из нее. действиями. Это ограничение реализовано через вызов chroot(), имеющийся 3 «Сервер-приманка» (honeypot). Незаменимая вещь для защи- в любой Unix-совместимой системе. ты и исследования сети. 3 Процессы. VServer может видеть только те процессы, кото- 3 Поддержка работы нескольких версий серверов и возмож- рые находятся в одинаковом с ним контексте безопасности. ность их независимого включения и отключения. Даже сервер с контекстом root может видеть только свои про- Кстати, и кошмар, связанный с резервным копированием, цессы (это сделано для того, чтобы он был более безопасным может уйти в прошлое, ведь теперь сервер — это всего лишь ка- в использовании). Для просмотра всех процессов на всех вир- талог на диске, который можно скопировать когда и куда угод- туальных серверах существует специальный механизм (кон- но. А основная система — всего лишь минимальный набор па- текст с номером 1). кетов и ядро с vs-патчем. В системах промышленного уровня 3 Сеть. Каждый VServer имеет уникальные имя и IP-адрес, ко- раздел с виртуальными серверами может храниться на LVM, торые могут быть использованы сервером для сетевых соедине- который находится поверх DRBD и т. д. Если вы используете ний и ответов на запросы. Кроме того, это ограничение неза- файловую систему xfs, можно делать «снимки» раздела и сохра- метно для VServer. нять их на устройстве для резервной записи — в общем, есть 3 Суперпользователи и их возможности. Суперпользователь, где разгуляться фантазии настоящего администратора. В слу- работающий с VServer, имеет меньше привилегий по сравнени- чае хостинга есть тоже одно неоспоримое преимущество — ре- ем с тем, который работает в обычной системе Linux. Напри- альный биллинг, который можно гибко настраивать в пределах мер, он не может настраивать и отключать сетевые интерфейсы одной системы (ведь у каждого сервера только один IP, и его и многие параметры системы, а также подсоединять или отсое- невозможно поменять или подделать). динять файловые системы, работать с блочными устройствами и т. д. Грубо говоря, суперпользователь VServer имеет полный | Архитектура VServer | доступ только к тому, что в нем есть, а именно — к файлам и Linux VServer состоит из двух частей: процессам, и большего ему не дано. 3 Патч к стандартному ядру Linux. Он добавляет поддержку контекстов безопасности, воплощающих основную идею | Взаимодействие между процессами VServer. Они позволяют изолировать каждый VServer внутри (System V IPC) | основной системы и исключить их взаимное влияние друг на Все внутренние IPC-ресурсы изолированы от IPC-ресурсов друга. Процесс, выполняющийся в рамках определенного других VServer. Для выбора необходимого в качестве ключа контекста, может видеть лишь такие же процессы и исполь- используется номер контекста безопасности каждого VServer. зовать только IP-адрес, присвоенный данному контексту. Процессам запрещено создавать устройства и открывать пря- мой доступ к ним (при этом данные ограничения действуют даже для суперпользователя). 3 VServers Tools. Набор программ для создания и управления виртуальными серверами. В основном все они написаны на языке командной оболочки, что позволяет их легко модифи- цировать под свои нужды. В том числе в VServers Tools вклю- чена и программа VServer, позволяющая запускать, останавли- вать и заходить в виртуальный сервер. | Изолированные области | Все системы на базе Linux или Unix имеют специальный вы- зов — chroot(). Он требуется в том случае, если нужно «поса- дить» процесс в отдельную директорию. После этого процесс, для которого был сделан chroot(), будет считать, что директо- рия, в которой он находится, является корневым каталогом. ꇷÓÚ‡ ÛÚËÎËÚ˚ vserver-stats: ÒÚ‡ÚËÒÚË͇ ‡ÍÚË‚Ì˚ı ‚ËÚۇθÌ˚ı Вызов chroot() нельзя отменить. Единственное, что остается ÒÂ‚ÂÓ‚; ̇ Á‡‰ÌÂÏ Ô·Ì ssh-ÒÂÒÒËfl Ò Ó‰ÌËÏ ËÁ VServer делать процессу в этой ситуации, — это отправляться в дирек-

2/2005 LINUX| CHIP 70 advanced ‡‰ÏËÌËÒÚËÓ‚‡ÌËÂ

суперпользователя. Процесс с его правами, запущенный вну- три виртуального окружения, к примеру, может открыть порт перед 1024, но окажется не в состоянии отключить или пере- настроить параметры сетевого интерфейса. Рассмотрите внимательно файл /usr/include/linux/capability.h — и вы уви- дите, что это вполне реально. Для VServer было придумано несколько новых возможнос- тей: например, new_s_context, позволяющая создать новый контекст, а также set_ipv4root, способствующая «привязке» всех процессов внутри контекста к одному IP-адресу. Кстати, все эти ограничения распространяются и на потомков про- цессов. Однако новые возможности нельзя отключить обыч- ным способом, то есть мы «посадили» VServer в chroot/s_con- ëÔËÒÓÍ ÔÓˆÂÒÒÓ‚ ̇ «Ó‰ËÚÂθÒÍÓÈ» ÒËÒÚÂÏ ‚ÏÂÒÚ text/ipv4root, но «убежать» его процессы оттуда уже не смогут. Ò Á‡ÔÛ˘ÂÌÌ˚ÏË ÔÓˆÂÒÒ‡ÏË Ì‡ VServer Таким образом, используя существующие и новые системы возможностей, мы можем сделать для VServer некую среду, Это позволяет создать удобную и гибкую среду для работы где root будет ограничен в своих правах и не сможет влиять на виртуального сервера. И каждая из перечисленных возмож- работу основного сервера. ностей может быть использована независимо от других. Для работы с системой возможностей в состав vserver-utils входят утилиты reducecap и chcontext. Мы продемонстриру- | Безопасность | ем, как функционируют они и работает сама система возмож- Даже если вами было создано окружение, в котором процес- ностей, на конкретном примере. сы ограничены лишь собственным виртуальным миром и об- щаются с сетью только через выделенный IP-адрес, вы долж- | Работаем с контекстами | ны сделать так, чтобы и ущерб, который могут вам причинить Утилита chcontext позволяет зайти в определенный контекст эти процессы, был минимальным. Для этого нужно создать безопасности, выделенный для VServer, и запустить программу, виртуальные среды и дать им ограниченные привилегии root. указанную в качестве аргумента, с правами, ограниченными Как же можно ограничить процессы с правами root, которые этим контекстом. Таким образом, эта программа уже не сможет обладают таким контролем над системой (например, могут видеть процессы, запущенные на основном сервере. просто перезагрузить компьютер)? Введите систему возмож- Например, запустим два окна с приложением (пусть это бу- ностей (capabilities). Идея не нова, но мы считаем, что очень дет xterm), с одинаковыми ID пользователя. многие пользователи никогда не слышали о существовании В первом окне зададим команду: подобной системы. xterm В старые времена систем Unix/Linux пользователь root Во втором окне выполним chcontext, запускающую ко- (обладающий идентификатором 0) имел возможность де- мандную оболочку. Затем попробуем ввести pstree и обнару- лать такие вещи, о которых другие пользователи даже не жим, что видно нам совсем немногое. Потом попробуем могли и мечтать. Весь доступ к ядру, системным вызовам «убить» xterm, находящуюся в первом окне, и убедимся, что или просто некоторым ресурсам прекращался, если иден- этого сделать нельзя. Теперь выходим из оболочки и возвра- тификатор пользователя (или процесса, запущенного этим щаемся к привычным возможностям. пользователем) не был равен нулю. Для того чтобы процесс Во втором окне укажем следующее: с ID 0 мог хоть немного понизить привилегии, существовал /usr/sbin/chcontext /bin/sh только один путь — менять идентификатор на отличный от pstree нуля. Одним словом, либо все, либо ничего. И вот тут-то и killall xterm появилась система возможностей. exit Таким же образом можно порождать внутри контекстов другие | Система возможностей | контексты, которые будут к тому же изолированы друг от друга. Сегодня все, что отличает root от других пользователей, — это набор возможностей. Пользователь root обладает всеми воз- | Понижаем возможности | можностями, а другие — нет; ID 0 больше уже ничего не зна- Утилита reducecap позволяет ограничить количество возмож- чит — просто красивая цифра. На данный момент насчиты- ностей процесса и его субпроцессов. Даже программа setuid вается около 30 возможностей. Можно сделать так, чтобы не сможет увеличить число возможностей, ограниченное с процесс утратил какие-либо возможности навсегда и они к помощью reducecap. нему больше никогда не вернулись. Рассмотрим это ниже на конкретном примере: Возможности позволяют уменьшить силу root — и это # Мы сейчас не с правами root именно то, что нужно, если вы хотите создать собственного # Посмотрим текущий потолок возможностей

CHIP| LINUX 2/2005 ̇ÒÚÓÈ͇ VServer 71

cat /proc/self/status (номер контекста, IP-адрес, включенные возможности), # Строка capBset показывает в основном 1 а второй — порядок действий, выполняемых на этапе запус- /usr/sbin/reducecap --secure /bin/sh ка/остановки. Для удобства обслуживания нескольких вирту- cat /proc/self/status альных серверов существует скрипт init.d, позволяющий про- # capBset теперь показывает гораздо больше 0 изводить их запуск или остановку выборочно. Существуют # capEff теперь вся из 0, то есть у нас нет больше никаких еще и утилиты для унификации содержимого VServer, про- привилегий смотра процессов, остановки/перезагрузки, а также многие # теперь попробуем стать root другие. Все они входят в состав util-vserver или могут быть на- su писаны самостоятельно, поскольку в основном это скрипты cat /proc/self/status на языке командной оболочки. # caEff содержит теперь гораздо меньше 0 # но попробуем проверить, root ли мы на самом деле | Совместимость с другими tail /var/log/messages security-патчами | # это мы можем Предположим, вы создали виртуальный сервер и убедились, /sbin/ifconfig eth0 что он работает, но все же чего-то не хватает. Все правильно, /sbin/ifconfig eth0 down полной уверенности не бывает. Ведь вы оградили себя систе- # а это уже нет, таким образом, мы потеряли свои возможности мой привилегий, возможностей, заперли всех в контексты, # супермена но забыли самое главное — защиту «родительской» системы exit от самой себя и собственных ошибок. Переполнение буфера, ненадежные права доступа, низкое качество кода выполняе- | Работаем с VServer | мых программ и ошибки ядра — все это осталось по-прежнему Итак, после небольшого вступления попробуем поработать с с вами: общие меры по защите никто не отменял. Обычно VServer. Для этого понадобится дистрибутив Linux (на базе применяют патчи к ядру, исправляющие его код и добавляю- RPM или APT), ядро с vs-патчем и набор vserver-utils. щие улучшения, связанные с безопасностью (например, патч В дистрибутиве ALT Linux это может выглядеть таким образом: Openwall для ядер 2.4 и патч PaX для ядер 2.6). Также необ- # ставим ядро с поддержкой VServer ходимо соблюдать общие принципы безопасного админист- $ apt-get install kernel-image-vs-smp рирования — запрещать то, что не разрешено, и не включать # ставим утилиты для работы с VServer то, что не нужно. $ apt-get install util-vserver Теперь создадим наш маленький VServer: | Аналоги и аналогии | $ vserver build Если вы хотите объяснить собеседнику что-то, о чем он не В данном случае — это произвольное имя виртуаль- имеет совсем никакого представления, вы наверняка прибе- ного сервера. гаете к аналогиям. При описании VServer тоже сложно удер- Далее утилита VServer создает структуру будущего виртуаль- жаться от этого метода повествования. Кажется, все, о чем ного сервера на базе текущего дистрибутива основного сервера. здесь идет речь, вы уже где-то видели или слышали. Да, об- Теперь зайдем в наш новый виртуальный сервер: щие идеи витают в воздухе, поэтому неудивительно, что они $ vserver enter приходят в головы разных людей почти одновременно. Мы Здесь — также произвольное имя виртуального сервера. После выполнения этой операции получаем стандартное Накладываем ограничения приглашение командной оболочки, как будто бы мы зашли на этот сервер с клавиатуры. Редактируем конфигурацию по ä‚ÓÚ˚ Ë ÎËÏËÚ˚ вкусу, не упуская из вида тот факт, что теперь у нас один На сегодняшний день для для каждого сервера в от- IP-адрес — и все службы, работающие на этом сервере, долж- VServer есть несколько пат- дельности (при этом внутри ны быть привязаны только к нему. чей (некоторые из них уже VServer дисковое простран- Теперь запускаем наш VServer: вошли в нестабильную вер- ство будет ограничено $ vserver start сию VServer для ядра 2.6), данной квотой). Можно ог- И снова — произвольное имя виртуального сервера. позволяющих лимитировать раничивать количество за- Теперь этот сервер доступен другим и может отвечать на за- ресурсы, которые потреб- пущенных процессов внутри просы извне (например, если запущен ssh, мы можем управ- ляются, во-первых, самим VServer, задавать глобаль- сервером, а во-вторых, ный nice-уровень для всех лять им по ssh). Если возникнет необходимость остановить пользователем внутри него. процессов и т. д. Кроме того, этот сервер, нужно просто набрать следующее: Например, столь популяр- есть возможность управлять vserver stop ные дисковые квоты можно доступом к каталогу /proc, В процессе создания VServer одноименная утилита запи- использовать и внутри что делает работу основного сывает в каталог /etc/vservers его конфигурацию, которая со- VServer, а также задавать их сервера более безопасной. стоит из двух файлов: первый описывает общие параметры

2/2005 LINUX| CHIP 72 advanced ‡‰ÏËÌËÒÚËÓ‚‡ÌËÂ

же попытаемся понять, на что похож VServer, попутно расска- | VPS — Virtual Private Servers | зывая об аналогичных технологиях. Коммерческий проект, представляющий собой ответвление VServer, целиком и полностью предназначенный для организа- | Виртуальные машины | ции хостинга на базе VPS. Ресурсы, ориентированные на хос- В чем-то VServer является виртуальной машиной, но у него тинг с помощью VServer: OpenVPS (www.openvps.org) и FreeVPS нет типичных недостатков, присущих любым виртуальным (www.freevps.com). машинам или эмуляторам: 3 Скорость работы. VServer действительно работает с той же | Xen — The Xen virtual machine monitor | скоростью, что и обычный железный сервер, так как в дан- По сути, это микроядро для Linux, позволяющее запускать яд- ном случае ничто не эмулируется и не «подделывается». То ра других ОС. Поддерживаются изоляция, ограничения и уп- есть, он требует не больше ресурсов, чем, скажем, VMWare равление ресурсами. Довольно интересный и многообещаю- или qemu. С другой стороны, в VServer не существует такого щий проект (вполне годится в качестве замены Win4Lin или понятия как блочное устройство, но имеются раздел, память VMWare ESX/GSX, так как имеет опыт успешной эксплуата- и процессор с сетевым интерфейсом: процессам обычно ции Windows в среде Xen). Подробная информация размещена большего и не требуется. на сайте www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html. 3 Архитектура. Это слабое место VServer. Нет возможности ус- тановить Windows или FreeBSD — вы ограничены архитекту- | RAD GNU/Linux | рой, поддерживаемой «родительской» системой. Впрочем, не Проект, поддерживаемый Петром Савельевым, целью которого стоит забывать, что это не эмулятор. является создание дистрибутива для маршрутизаторов — про- 3 Ядро. В VServer существует единое ядро для всех. Это обсто- стого в настройке и чем-то похожего на системы Cisco. RAD ятельство можно рассматривать и как удобство (согласитесь, GNU/Linux является хорошим примером применения ALT лучше менять ядро одновременно на всех серверах сразу, чем Linux Sisyphus для разработки дистрибутивов. В системе ис- переставлять на каждом отдельно), и как недостаток (по пользуется технология VServer. Сайт: www.radlinux.org. сравнению, скажем, с UML или Xen, о которых речь пойдет немного ниже). | Заключение | 3 Управление памятью и ресурсами. В Xen можно назначить В завершение хотелось бы привести цитату разработчиков на каждую машину даже свой планировщик, а в VServer один VServer, чтобы лучше понять, как они представляют себе бу- имеется лишь один планировщик. В тестируемой ветке для дущее этой технологии. ядра версии 2.6 встречаются идеи того, как это можно сделать «Идея виртуального сервера интересна, поскольку позво- и для VServer. ляет достичь более высокого уровня безопасности и сокра- 3 Расширенный мониторинг процессов и потребляемых ресур- тить количество административных задач, необходимых для сов. Находится в стадии активной разработки, и скоро эти его обслуживания — например, обычных операций, таких как функции можно будет использовать в полной мере. резервное копирование и обмен данными. Службы вроде мо- ниторинга можно настроить лишь единожды (так как физи- | Проекты, похожие на VServer | ческий сервер всего один). | VE — Virtual Evironment | Сервер на базе Linux может одновременно выполнять мно- Еще в 2001 году существовал интересный проект Virtual жество задач с высоким уровнем надежности и доступности. Evironment, впоследствии переименованный в Virtuozo. Разра- В процессе развертывания обычного сервера, как правило, батывала его компания SWSoft (та самая, которая подарила многие сталкиваются со стандартной проблемой, когда запу- нам ASPLinux). Потом проект как-то тихо перестал развивать- скаются и устанавливаются различные сервисы и службы, ся — вполне возможно, его вытеснил User Mode Linux. Архив многие из которых не используются или используются редко. VE или Virtuozo (aspcomplete/) можно найти в Интернете на В процессе работы конфигурация многих таких служб теряет- странице Пола Слейдена, посвященной VServer и размещен- ся или забывается, и многие тайны настройки бывают утраче- ной по адресу www.paul.sladen.org/vserver. ны (вроде как настроил и забыл). Поэтому при переезде на новый сервер всегда что-либо теряется (иногда что-то очень | UML — User Mode Linux | важное — например, почтовый ящик начальника). VServer ре- Интересный проект, интересная идея. Можно запускать соб- шает эту проблему: вы делаете установку только один раз, а в ственные ядро и систему в рамках основной системы, пере- дальнейшем работаете только с каталогом этого сервера, ко- гружать и отлаживать это самое ядро и многое другое. Еще до торый можно легко скопировать и перенести на любое новое появления непосредственно VServer данный проект часто место — от обычного раздела на жестком диске до LVM- использовался в образовательных целях, а также находил страйпа на внешнем FC дисковом массиве». применение в сфере хостинга и отладки программного обес- Учитывая все выше изложенное, вывод напрашивается печения. Фантазия ограничена только Linux. Подробную ин- сам собой: VServer — наиболее удобный и предпочтитель- формацию по данному вопросу можно найти в Сети по следу- ный метод установки и использования сервера на базе опе- ющему адресу: http://user-mode-linux.sourceforge.net. рационной системы Linux. |

CHIP| LINUX 2/2005 advanced ÚÂıÌÓÎÓ„ËË ‡Î¸ÚÂ̇ÚË‚‡ ÛÒÚÓÈÒÚ‚‡Ï /dev 73

Роман Химов Udev ‚ ‡ÁÂÁÂ

Структура устаревшей devfs, с точки зрения разработчиков, слишком громоздкая, запутанная и не очень удобная. Поэтому вполне логично, что на смену этой технологии пришла новая — udev. Как она работает и что дает конечному пользователю — об этом вы узнаете в этой статье.

| Проблемы /dev и devfs | ядра? Его дело как раз в номерах major/minor, эти термины во- Концепция devfs, динамически создающей файлы виртуальных обще оттуда и идут, имена ему совершенно безразличны. И, устройств, для своего времени выглядела очень привлекательно, кстати, зачем нам, пользователям, знать номера major/minor? однако практическая реализация была не очень удачной и в ко- Страшная картина вокруг, казалось бы, простой вещи — нечном итоге завела эту технологию в тупик. Если вы заглянете названий устройств, не так ли? Не совсем, конечно, так. На- в статичную /dev, то увидите там около 18 000 файлов (с подка- пример, для серверов это, в общем-то, не играет никакой ро- талогами) — ну и где же там, к примеру, флеш-драйв? А еще, вам ли — конфигурация там одна и меняется крайне редко, там не кажется, что это довольно много, у вас ведь нет 18 000 физи- главное — чтобы действительно работало. Но мы-то с вами ческих/логических устройств? Или, наоборот, мало, если вы хо- обычные пользователи настольного Linux и хотим простых и тите построить систему с 10 000 SCSI-дисков! Наверное, было понятных удобств. Неужели все эти проблемы не разрешимы? бы хорошо, если бы в /dev находилось только то, что реально присутствует в системе. Действительно, это очень здорово, и это | Решение для /dev | есть, например, в FreeBSD — файлы устройств создаются дина- Давайте сначала посмотрим на еще одно новшество ядер 2.6.x — мически, /dev становится вполне читаемой как для пользовате- файловую систему sysfs. Туда экспортируется не просто масса, а ля, так и для программ. Аналогичная подсистема — devfs — есть прямо-таки тонны информации об устройствах — расположе- и в Linux, казалось бы, какие еще проблемы?! ние на шинах, атрибуты вроде названий, классов устройств, се- Однако они есть. Во-первых, devfs реально утяжеляет и рийных номеров и т. д., а также номера major и minor. То есть, усложняет ядро Linux, а это не любят ни разработчики, ни оказывается, об устройствах мы легко все можем узнать и из пользователи. А как быть с тем, что ее давно никто не хочет пользовательского пространства! Теперь вспомним еще одну поддерживать (кстати, за все время существования в ядре она интересную вещь — механизм hotplug, которым ядра оснаща- пребывала либо в состоянии EXPERIMENTAL — 2.4.x, либо ются еще начиная с ветки 2.4.x. В /proc/sys/kernel/hotplug мож- OBSOLETE — 2.6.x? А это еще что такое: devfs, оказывается, не но посмотреть/изменить путь к одной маленькой, но очень совместима с LSB, когда почти все (по крайней мере из тех, важной программе, как минимум для настольной Linux-маши- что на виду) дистрибутивы стараются обеспечить совмести- ны. Эта программа будет получать от ядра события, которые мость с этим стандартом! Идем дальше — вернемся к внешним как раз касаются изменений в аппаратных конфигурациях. Тем USB-устройствам хранения данных: покуда у вас одно такое самым мы и приходим к тому, что на самом деле вся информа- устройство, все очень просто, /dev/sda* дает нам все, что надо, ция, необходимая и даже избыточная для формирования /dev, но если у вас их два? Вас никогда не смущал тот факт, что при- уже давным-давно есть в пользовательском пространстве! За- ходится запоминать, в каком порядке вы подключали флеш- чем тогда терзать ядро невнятными подсистемами вроде devfs? накопители и внешние винчестеры, чтобы знать, что есть Действительно незачем, знакомьтесь, наш герой — udev. Он /dev/sda, а что /dev/sdb, /dev/sdc и т. д.? А с принтерами путать- органично сочетает возможности вышеописанных особенно- ся не приходилось? Плюс ко всему, чисто с точки зрения архи- стей ядра Linux и дает нам то, что мы так хотели, — динамич- тектуры, разве заниматься именованием устройств — это дело ный /dev! Кстати, а как он это делает?

2/2005 LINUX| CHIP 74 advanced ÚÂıÌÓÎÓ„ËË

| Как это работает | | Конфигурация | Давайте проследим путь с самого начала — от ядра. Ядро видит Udev имеет основной конфигурационный файл /etc/udev/ появление нового устройства и запускает то, что мы прописали udev.conf, в котором задается расположение каталога уст- ему в /proc/sys/kernel/hotplug, передавая через переменные ок- ройств udev_root (а ведь можно попробовать сделать так, что- ружения все, что требуется hotplug для успешного выполнения бы это был не /dev!); местоположение базы данных udev своих функций. Это $ACTION, показывающий, что же случи- (udev_db); каталог с правилами udev (udev_rules); каталог с лось: добавили, удалили устройство или что-либо еще; $SUB- файлами, описывающими права пользователей на устройства SYSTEM, несущий в себе информацию о том, какая подсисте- (udev_permissions), права по умолчанию (default_mode), а так- ма сгенерировала событие; $DEVPATH, содержащий очень же маленький параметр, включающий/выключающий логи- важную вещь — путь к каталогу устройства в /sys; интересный рование событий udev (udev_log). параметр $SEQNUM — номер события, позволяющий упоря- Все, что касается интересных моментов udev, вынесено в дочить их и обрабатывать по очереди (события же могут достав- каталог правил. Это стандартный /etc/udev/rules.d, хотя встре- ляться непоследовательно), а также некоторые другие парамет- чаются вариации. А там чаще всего вы обнаружите один файл ры, специфичные уже для конкретных подсистем. с интересным названием 50-udev.rules. Наверняка кто-то уже Дело hotplug — загрузить нужные модули устройств, выпол- понял, что 50 — это неспроста, и будет прав: udev обрабатыва- нить, возможно, их настройку и сообщить о событии udev. Сам по ет файлы правил (которые, кстати, должны обязательно окан- себе hotplug сегодня выполнен как солидный и весьма запутан- чиваться на .rules) в лексикографическом порядке, то есть в ный набор shell-скриптов. Однако Грег Кроа-Хартман, его автор, том, который для нас вполне привычен и, как только находит уже работает на hotplug-ng, выполненном на C, поскольку, хоть подходящее правило для произошедшего события, останавли- это и нормальный объем для shell-скриптов, он все же заторма- вается. Соответственно, вряд ли стоит запускать руки в стан- живает загрузку системы, когда «симулянт событий» coldplug ге- дартный файл правил, можно просто создать какой-нибудь нерирует массу псевдособытий, но это к слову. 10-vasya.rules и описывать свои правила там: меньше вероят- Вернемся к udev, застав его в момент получения события от ность испортить стандартные правила. hotplug. Стоп, какой такой udev получил событие от hotplug и Файл состоит из ключей, а ключи разделяются запятыми. как? Сам по себе udev тоже раскладывается на составные части в С помощью идентификационных ключей мы выделяем устройст- виде приложений udevsend и udev, а также демона udevd. Зачем ва, обязанные подчиняться этому правилу, а с помощью назнача- потребовался демон? Вспомним, события могут приходить в hot- ющих указываем, что с ними надо делать в /dev; любое правило plug не в том порядке, в каком они реально происходили, — это должно иметь как минимум один ключ каждого типа. явно требует кого-то, кто бы следил за порядком событий, по- Ниже приводится список идентификационных ключей. скольку, если событие remove придет перед add, наверное, что-то 3 BUS — шина, к которой подключено устройство, например здесь не так, но что с этим делать udev? Вот и получается, что PCI, USB или SCSI. udevd упорядочивает приходящие запросы так, чтобы они обра- 3 KERNEL — имя устройства, данное ядром. батывались строго по мере появления. 3 ID — ID устройства на шине; например, для PCI это будет но- Кто-то уже наверняка догадался, что udevsend здесь является мер шины, а для USB — ID устройства. связующим звеном, именно его вызывает hotplug (передавая 3 PLACE определяет место в топологии шины, например физи- параметры через переменные окружения), а udevsend уже знает, ческий порт, в который включено USB-устройство. как доставить событие udevd. Зачем же тогда приложение udev? 3 SYSFS_имя-файла, или SYSFS{имя-файла}, — проверка уст- Все дело в том, что непосредственную работу по созданию фай- ройства по любому атрибуту из тех, что видны в /sys: это могут лов устройств выполняет именно оно, udevd не занимается быть метки, вендоры, серийные номера, объемы и многое другое. этим напрямую — его дело следить за порядком. Вот так, через Таких параметров в одном правиле можно задать до пяти штук. hotplug, udevsend, udevd и udev, мы приходим к самому нату- 3 PROGRAM — еще одна мощная возможность — вызов внеш- ральному динамическому /dev! ней программы и проверка результата. Ну и что, разве мы не видели этого в devfs, к тому же без лиш- них приложений/демонов? Да, но не в таком виде. Одна из самых впечатляющих возможностей данного подхода — реализация аб- солютно любой схемы именования устройств, ведь теперь она никак не навязывается нам ядром, и мы знаем все о наших уст- ройствах! Хотите назвать ваш флеш-драйв /dev/my-dear-flash — пожалуйста! Все это потому, что Грег Кроа-Хартман, который и реализовал тот udev, что мы знаем (а ведь возможны и другие ре- ализации, например его можно тесно совместить с hotplug в ка- кой-нибудь маленький бинарный файл на C — это подойдет для встраиваемых систем), делал его с прицелом на настольные применения и максимальную гибкость в конфигурации. А что у ó‡ÒÚ¸ ÒÚÛÍÚÛ˚ /dev нас с конфигурацией? Давайте посмотрим.

CHIP| LINUX 2/2005 ‡Î¸ÚÂ̇ÚË‚‡ ÛÒÚÓÈÒÚ‚‡Ï /dev 75

3 RESULT: как раз через этот ключ можно сверять результат SYSFS{vendor}="TOSHIBA", SYSFS{model}="MK6021GAS", (возвращенную строку) вызова программы. Он должен следо- NAME="toshiba-drive" вать за вызовом PROGRAM. Подобным образом представляется в /sys маленький внеш- Для успешного срабатывания правила необходимо, чтобы ний USB-винчестер 2,5", этим правилом мы его отлавливаем и совпали все идентификационные ключи для рассматриваемого даем имя «toshiba-drive». Что интересно — хотя у нас не было устройства. возможности проверить, но это же правило должно, по идее, Ключи целей: отловить этот винчестер даже тогда, когда мы его подключим 3 NAME: задает имя создаваемого файла устройства. по FireWire — совершенно другой шине! После этого, вполне 3 SYMLINK: создает символическую ссылку на созданный естественно, можно прописать где-нибудь в fstab простое и файл устройства. удобное для себя место монтирования этого конкретного дис- 3 OWNER, GROUP, MODE — стандартные владелец, группа и ка — он уже не потеряется среди множества других. режим доступа к устройству соответственно. Маленькое замечание, прежде чем вы начнете наводить по- В правилах можно применять подстановки в стиле printf: рядок в своем /dev: для того чтобы изменения в правилах всту- 3 %n — номер, который дается устройству ядром; к примеру, пили в силу, необходимо запустить программу udevstart, кото- для «sda3» это будет 3; рая заполняет /dev с нуля теми устройствами, которые найдет в 3 %k — предлагаемое ядром имя устройства (в примере, /sys. Еще одна интересная утилита-компаньон /dev, о которой указанном выше — «sda3»); хотелось бы упомянуть, — udevinfo. Она позволяет получить 3 %M – major-номер устройства; различную информацию из базы данных udev и sysfs. А протес- 3 %m — minor-номер устройства; тировать правила udev вы сможете с помощью утилиты udevtest. 3 %b — ID устройства на шине; 3 %c — результат выполнения программы, заданной через ключ | Не только динамический /dev | PROGRAM; можно выбрать определенную часть этого резуль- Ну что ж, мы получили то, что хотели? Несомненно. Но udev тата, если они разделены пробелами, это делается через %c{N}, приносит еще одно изменение — /etc/dev.d/. Там хранятся где N — номер части, а с помощью %c{N+} можно выбрать со- ссылки на те программы, которым udev будет передавать управ- держимое строки от начала N-го слова до конца строки; ление уже после того, как создаст/удалит файл устройства. То 3 %s{имя-файла} — содержимое атрибута из /sys; есть, цепочка продолжает развиваться, и мы можем аккуратно 3 %e — выдает минимальное целое N, если устройство с таким заскриптовать что-нибудь, например, насчет конфигурации се- именем уже существует, после чего результирующее имя уже не бу- ти, после того как у нас появится или будет удалено какое- дет совпадать с другим устройством; полезно при расстановке сим- нибудь беспроводное устройство, или монтируется диск, для волических ссылок с целью обеспечения совместимости, а также которого мы уже так заботливо определили однозначное имя в нумерации устройств одного типа из разных подсистем ядра; /dev. Именно через помощника в dev.d мы можем известить де- 3 %% — символ «%». мона HAL, который дальше уже сможет рассказать в деталях о Кроме того, различные поля поддерживают шаблоны имен в событии другим приложениям вашей свободной настольной стиле shell, то есть стандартные «*», «?» и «[]». Не многовато ли? среды. Имеет dev.d также и свою структуру, но за этим лучше Нормально, и сейчас вы в этом убедитесь сами. обратиться к оригинальной документации udev на английском Итак, посмотрим на простейшее правило udev: языке, которая входит в состав пакета udev, расположенного на KERNEL="fd[0-9]*", NAME="floppy/%n", SYMLINK="%k" сайте www.kernel.org/pub/linux/utils/kernel/hotplug/. Смело ка- Это тривиальное правило работает для флоппи-дисков, чайте свежую версию (а заодно обновите hotplug) и заглядывай- которым ядро как раз и предлагает имя fd{номер}, оно созда- те в каталог docs. Впрочем, возможно, вы предпочитаете инст- ет реальный файл устройства в каталоге (/dev/)floppy/ с про- рументы своего дистрибутива. стым числовым именем, а также символическую ссылку на Теперь, наверное, ни у кого не вызывает удивления то, что него в виде привычного fd{номер}. Скучно? Конечно же, но udev был очень хорошо принят разработчиками дистрибути- давайте посмотрим дальше: вов — переход на него состоялся быстро даже среди тех, кто KERNEL="[hs]d[a-z]", PROGRAM="name_cdrom.pl %M %m", пытался использовать devfs, поскольку количество успешно NAME="%c{1}", SYMLINK="cdrom" преодолеваемых им проблем и качество их решения просто Этот пример приводил сам Грег Кроа-Хартман, самое боль- великолепны. Кстати, что касается devfs, то все тот же Грег шое его достоинство в скрипте name_cdrom.pl, который спер- Кроа-Хартман уже смастерил патчи, удаляющие ее из ядра. ва определяет, является ли то устройство, которое ему дали, К тому моменту, когда вы будете читать эти строки, devfs, ско- CD-ROM, а потом запрашивает по сети базу данных CDDB в рее всего, уже не будет являться частью ядра. Кстати, как уже поисках соответствующих аудиодиску исполнителя и названия говорилось, нам не нужны major/minor, одним из предложе- альбома, после чего возвращает все это, а мы создаем файл ус- ний Грега для Linux 2.7 (если эта ветка будет открыта) являет- тройства с таким именем (исполнитель-название) и ссылку ся последовательное или даже случайное выделение этих но- cdrom на него! Впечатляет, не так ли? Этот маленький скрипт меров для устройств — это проще и эффективнее, ведь теперь входит в стандартную поставку udev — можете посмотреть са- у нас есть инструмент, который уже готов с этим работать: ми. А вот еще один пример, уже более близкий к жизни: свободный десктоп становится все лучше и удобнее. |

2/2005 LINUX| CHIP 76 coding ‡Á‡·ÓÚ͇

Алексей Русаков ÄÌ˛ÚËÌ˚ „ÂÁ˚

Новое средство разработки с романтичным названием быстро набирает популярность. Работать с такой программой приятно двойне: она создана из любви к свободе и свободная по любви.

| Что в имени тебе ее | разработки (чтобы через три года ее не пришлось переписы- Название сразу привлекает русского человека — нечасто вать снова). Была использована популярная идея вынести встретишь программу, носящую русское и к тому женское все, что только можно, в подключаемые модули. Подключа- имя, да еще в уменьшительно-ласкательной форме. Известно, емым (формально) стал даже редактор. Многое из того, что что автор этой среды разработки живет в Индии и что про- было в старой версии, попало в новую без существенных из- грамму он назвал в честь своей девушки (откуда она родом, менений. Вообще, с точки зрения функциональности новая Интернет умалчивает). На сегодня это все, что можно найти в версия не слишком отличается от старой. Поэтому сначала разделе FAQ на сайте www.anjuta.org. А когда-то там же на пер- мы расскажем о старой версии, тем более что Anjuta 2 пока вой странице можно было прочесть романтическую историю о еще не совсем доведена до ума. том, с чего все начиналось: они не смогли встретиться в день ее рождения, молодой человек очень переживал из-за этого и | То, что есть | решил написать среду разработки для GNOME (тогда еще Пожалуй, сразу стоит сказать, что Anjuta 1.2 — это полноцен- версии 1.4), назвав ее именем любимой. Девушка была потря- ная IDE, в которой, по крайней мере формально, есть все сена, хотя потребовалось время, чтобы объяснить ей, о чем ожидаемые компоненты: навигация по проекту, CVS, отлад- речь, и осенью прошлого года они поженились. Такая вот кра- чик. Рамки статьи не позволяют подробно остановиться на сивая сказка наяву. Теоретически вскоре после свадьбы долж- каждой части IDE, да это и не нужно: интерфейс в целом тра- на была выйти новая мажорная версия среды разработки, но диционный и не удивляет пользователя. Поэтому в основном реальность внесла свои коррективы, и Anjuta 2 увидела свет мы будем говорить о специфике и чертах, характерных имен- лишь весной этого года — и лучше бы разработчики подожда- но для Anjuta. ли еще несколько месяцев. Среда разработки целенаправленно писалась для про- граммирования под GTK+ и GNOME. Из этого следуют | Межсезонье | как библиотечные зависимости самой «Анюты», так и ее На сегодня есть две версии Anjuta — 1.2 и 2.0. Версия 1.2 ста- инструментарий. В частности, Anjuta 1.2 ориентирована на бильна, ее недостатки более или менее известны, локализованы Autoconf/Automake (проекты на обычных Makefile тоже (переведены на русский) и прикрыты фиговыми листочками поддерживаются, но, разумеется, настройки проектов там, где нужно. Версия 2.0 — новая, красивая, перспективная, Automake к ним не применимы), есть мастера/друиды для но имеет кучу ошибок и недоработок, а некоторые огрехи вид- соответствующих проектов (GNOME, GTK+). Для созда- ны практически невооруженным глазом. ния графического интерфейса предлагается, естественно, Основной задачей нового проекта стало улучшение про- Glade, а для помощи по библиотечным функциям исполь- граммного кода и тщательное проектирование ядра среды зуется DevHelp, основанный на GtkDoc.

CHIP| LINUX 2/2005 Anjuta 77

Другая характерная особенность Anjuta 1.2 — нетребова- тельность к ресурсам машины. Сам Наба Кумар (тот самый молодой человек, ныне счастливый муж) описывал Anjuta 1.2 как оболочку для уже существующих различных инструмен- тов (по большей части консольных). Конечно, по системным требованиям это не KWrite или GEdit, но все же и не монст- ры типа Eclipse или KDevelop, которые могут потребовать ãÓ„ÓÚËÔ Anjuta ëÔ·¯-ÒÍËÌ Anjuta 150 Мбайт виртуальной памяти. Среда разработки в целом толерантна к различным языкам бавился богатый программный интерфейс, который, по за- программирования; выражается это в подсветке синтаксиса мыслу разработчиков, и составляет главную ценность. Ос- для довольно большого набора языков, умении запускать нуж- новная функциональность новой «Анюты» разбросана по ный компилятор/интерпретатор для каждого файла и автодо- различным модулям-плагинам, а ядро среды разработки — полнении, работающем беспорядочно (наподобие «Ctrl+N» и каркас, в который эти модули вставляются. «Ctrl+P» в Vim), зато везде. А вот средства навигации по про- Уже сейчас модулей довольно много. Впрочем, пока они екту не рассчитаны на что-либо отличное от C/C++. все написаны самими разработчиками и по большей части са- Самая ценная вещь в Anjuta 1.2, которая, к счастью, оста- моочевидны (например, Project Manager или редактор). лась и в новой версии, — встраивание в среду внешних инст- В Anjuta 2 имеется поддержка Subversion (конечно, в виде мо- рументов (пункт «Tools» в меню «Options»). Мало того что вы дуля), которой не было в старой версии среды; модуль для можете передавать значения различных переменных, свя- CVS тоже есть. По разным меню пункты распределять больше занных с текущим документом, выделением в файле, проек- нельзя, зато появились новые возможности по перенаправле- том и т. д., как аргументами, так и через стандартный ввод; нию стандартных потоков. Довольно интересным может можно еще указать, в каком меню будет находиться пункт для стать, по крайней мере со временем, модуль работы со спис- данного инструмента, какой у этого пункта будет значок и ка- ком «TODO» на базе gTodo (к сожалению, на данный момент кой комбинацией клавиш его вызывать. Стандартный вывод пока еще нет автоматического добавления задачи в список, и stderr внешней программы можно также перенаправить не если в коде написать слово «TODO»). только в окно сообщений, но и, например, заменить им те- К сожалению, весьма достойный список фич — это не кущее выделение в открытом файле. Нетрудно создать впе- все. Графический интерфейс к сборке проектов теперь обес- чатление, что инструмент компилирован в «Анюту», а не печивается отдельным проектом gnome-build, находящимся подключен впоследствии — прекрасная реализация пресло- на ранней стадии развития и поддерживающим пока лишь вутого Unix-way. проекты Automake. В результате толерантности к языкам как не бывало — от нее осталась только подсветка синтаксиса | То, что будет | (она обеспечивается редактором). Хуже того, даже проекты Что же может нам предложить новая версия по сравнению со Automake вам не удастся настроить: окно свойств для них к старой? Во-первых, более гибким и мощным стал интерфейс выходу версии 2.0 так и не реализовано. Плагин для Glade среды разработки. Причем к улучшенному графическому до- находится в полуразобранном состоянии. Не сохраняются расположение панелей и подключенные плагины. Встраи- ваемый терминал приводит к краху всей «Анюты» почти при любом изменении его размеров (справедливости ради стоит сказать, что это одно из немногих действий, обрушивающих среду разработки). Хочется верить, что где-нибудь через полгода новая «Анюта» дорастет до того, чтобы ей можно было пользоваться в повседневной деятельности. Но пока этот продукт еще слишком сырой. | Итоги | Если вам нужна простая среда разработки без каких-то изыс- ков, попробуйте Anjuta 1.2. Основные ее достоинства — низ- кие системные требования, простой интерфейс, мощный механизм подключения внешних программ. Старая версия неплохо подходит и для проектов «из одного файла», и для достаточно крупных разработок. Лучше всего Anjuta 1.2 про- являет себя в проектах GTK и GNOME среднего размера. Что касается новой версии, то на данный момент мы не ре- ì‰Ó·Ì˚È Ë ‰Ó‚ÓθÌÓ ÔË‚˚˜Ì˚È ËÌÚÂÙÂÈÒ ÔÓ„‡ÏÏ˚ Anjuta комендуем ее использовать, если только вы не собираетесь принимать участие в ее разработке. |

2/2005 LINUX| CHIP 78 coding ‡Á‡·ÓÚ͇

Алексей Русаков èÓÎÌÓ Á‡ÚÏÂÌËÂ

В начале лета известная компания Macromedia объявила о своих планах присоединиться к Eclipse Foundation и разработке собственной версии IDE на базе Eclipse — Zorn. Список этой организации насчитывает около 100 членов, среди которых встречаются весьма громкие имена. Попробуем разобраться, чем же так привлекательна эта платформа.

| Немного истории | тель графических интерфейсов (для Java). В процессе со- Eclipse — это попытка создать некую обобщенную среду раз- здания находятся средства для веб-программирования (Web работки. Проект зародился в недрах компании IBM, которая Tools) и разработки на Python, а также некоторые другие про- в 2001 году открыла его исходный код для широкой публи- екты. Помимо eclipsе.org есть сайты http://eclipseplugincen- ки, одновременно создав организацию Eclipse.org. В разное tral.com и http://eclipse-plugins.info, содержащие информа- время нее вступали Borland, QNX, Red Hat, Fujitsu, Oracle, цию о многочисленных плагинах для Eclipse. SAP, Ericsson и многие другие компании. Постепенно проект становился все более независимым от IBM, а в прошлом году | Внешний вид | стал «самостоятельной» некоммерческой организацией (не- Основная часть кода Eclipse написана на Java. Пользова- смотря на то, что активным центром разработки Eclipse по- тельский интерфейс построен на основе библиотеки SWT прежнему остается IBM). (Standard Widget Toolkit), сочетающей Java и C++. Стоит от- В основе Eclipse лежит так называемая платформа (Eclipse метить, что это не самостоятельная графическая библиотека, Platform). Сама по себе она практически бесполезна и пре- а кросс-платформенная оболочка для графических библио- доставляет лишь необходимый каркас. Остальные проекты тек. Под Linux SWT использует библиотеку Gtk+ ; внешний работают поверх нее и являются различными средствами раз- вид Eclipse при этом соответствует выбранной теме Gtk+. Ис- работки и дополнениями (плагины) к ним и самой платфор- пользование C++ в критичных к производительности местах ме. Среди них выделяются два основных проекта, номера позволило избежать медлительности, которой обычно грешат версий которых совпадают с номерами версий платформы: программы, написанные на Java. Увы, объем занимаемой это средства разработки на Java (Java Development Tools, JDT) Eclipse оперативной памяти сопоставим с крупным Java-при- и специализированная среда для разработки программ ложением: если у вас меньше 512 Мбайт, работать будет не под платформу Eclipse (Plugin Development Environment). слишком комфортно. Кроме этого имеются средства разработки на C/C++ (C/C++ Интерфейс Eclipse простым не назовешь. В чем-то это след- Development Tools, CDT), редактор UML-диаграмм, построи- ствие обобщенности платформы, в чем-то сказывается принад-

CHIP| LINUX 2/2005 Eclipse 79

лежность к IBM. Немного облегчает жизнь хорошая докумен- чительно лучше всех остальных). Мы постараемся побольше тация к JDT, в том числе введение в работу c Eclipse. Есть доку- рассказать о C и C++, так как это самые распространенные ментация и для средств разработки на C/C++, но она заметно языки в мире Open Source. хуже. К сожалению, и сам интерфейс Eclipse, и документация Поэтому начнем с CDT, то есть C/C++ Development Tools. на русский язык не переведены. Желающие могут заняться Для C и C++ существует по два типа проектов – Standard Make и переводом, но учтите, что объем строк для перевода только Managed Make. Если вы выбрали Standard Make, то Makefile CDT – 600 кбайт, то есть примерно 400 страниц текста. будете писать сами, а среда лишь запустит Make, когда пона- Eclipse – одна из самых функционально насыщенных сред добится (вместо Make можно указать и другую программу). разработки, как закрытых, так и открытых. По этой причине В проекте типа Managed Make среда берет на себя хлопоты по со- мы очень кратко остановимся на важных, на наш взгляд, мо- зданию Makefile, но и в этом случае остается возможность допи- ментах в работе с этой средой, а детальное исследование ее сывания правил сборки вручную. Eclipse различает C и C++, возможностей оставим читателю. особенно это касается проектов Managed Make, поэтому следите Для новичка самым непривычным в интерфейсе Eclipse за тем, из какого языка вы выбираете тип проекта. будет, пожалуй, понятие перспективы (perspective). Она, в В CDT полностью отсутствуют средства создания графиче- свою очередь, представляет собой набор и расположение па- ских интерфейсов. Можно использовать любимый Glade или нелей интерфейса – «видов» (views). Например, существуют QtDesigner, но интеграции построителя GUI в среду разра- отдельные перспективы для разработки на Java и C++, очень ботки, увы, нет никакой. Нет в Eclipse и явной поддержки похожие друг на друга (вы можете вести разработку на двух GNU Autotools, хотя это, вобщем-то, и не мешает работать языках в рамках одного проекта, по необходимости переклю- над использующими их проектами. чаясь между перспективами). Есть перспектива для отладки, В остальном поддержка C и C++ реализована на уровне. в которой набор видов сильно отличается от аналогичного Eclipse знает о шаблонах и пространствах имен C++, кор- набора для разработки, а также перспектива для работы с си- ректно работает с заголовочными файлами стандартной биб- стемой управления версиями и другие. лиотеки, не имеющими расширения. Есть так называемые Две перспективы могут не иметь абсолютно ничего обще- индексаторы (indexers), которые по своему назначению при- го между собой кроме открытых окон редактора. Открытые мерно соответствуют CTags (собственно, один из индексато- окна не меняются при смене перспективы. Иногда, как в слу- ров в новой версии CDT как раз использует CTags). Элемен- чае переключения между разработкой и отладкой, это может ты навигации показываются в двух списках — C/C++ Projects быть весьма уместно. В иных случаях, например при перехо- (с группировкой по проектам и файлам проектов) и Outline де из C++ в Java, остающиеся открытыми окна с текстом на (только то, что в текущем файле). Немного неудобно то, что C++ могут раздражать. нет общего списка. С навигацией по проекту все в порядке; для быстрого перехода можно использовать как клавиатуру, | Работа с проектами | так и контекстное меню, причем искать можно как объявле- Несмотря на обобщенность Eclipse, языков, на которых в ния/определения, так и применения в тексте программы. этой среде можно нормально вести разработку, всего три: это В число элементов навигации входят и макросы. Java, C и C++ (как вы уже поняли, Java поддерживается зна- Перейдем к Java Development Tools (JDT). Здесь всего один тип проекта, для сборки которого используется Ant. Редакти- ровать правила Ant вручную, как и в проекте Managed Make из CDT, можно, но обычно не нужно. Построитель графиче- ского интерфейса под названием Visual Editor, привязан- ный к JDT, можно скачать с сайта обновлений и дополнений (update.eclipse.org) в виде плагина, после чего начать констру- ировать графические интерфейсы, использующие библиоте- ку SWT. В JDT вместо индексатора используются встроенные средства виртуальной машины, позволяющие получать спис- ки пакетов/классов/членов. К началу июня в JDT уже по- явилась достаточно внятная поддержка обобщенных типов (generics) и некоторых других возможностей из J2SE 5.0. В Eclipse есть отдельная перспектива, не зависящая от язы- ка программирования, для работы с CVS. Для набирающей популярность системы управления версиями Subversion ана- логичная перспектива имеется в составе плагина, который можно скачать с сайта разработчиков Subversion. Здесь под- держивается максимум возможностей, включая аннотиро- ç‡ÔËÒ‡ÌË ‡θÌÓÈ ÔÓ„‡ÏÏ˚ ‚ Eclipse вание исходников, сравнение различных редакций файлов, манипуляции с тегами и прочее. Создавая новые проекты,

2/2005 LINUX| CHIP 80 coding ‡Á‡·ÓÚ͇

éÚ·‰Í‡ Ë ÓÚÎÓ‚ ӯ˷ÓÍ

можно наполнять их кодом, выгружая исходные тексты с ука- Автоматического форматирования кода в CDT нет – только занного CVS-репозитория. автоотступы. В JDT есть не только автоматическое форматиро- Причем, для того чтобы знать, в каком состоянии относи- вание, которое в версии 3.1 можно настроить вплоть до мелочей, тельно CVS находится тот или иной файл, в другую перспек- но и весьма приличные возможности переработки кода. Да и в тиву переключаться не нужно. В любой момент информация целом редактор JDT более проработан и содержит массу прият- о CVS-статусе файла показывается в каком угодно навигато- ных и полезных опций, хотя, чтобы их использовать, нередко ре проектов в виде маленького значка в углу иконки самого приходится запоминать многочисленные комбинации клавиш и файла. Точно таким же образом можно узнавать и о том, в ка- копаться в огромном окне настроек. ких файлах были ошибки и предупреждения при сборке или Автодополнение и подсказки о параметрах (calltips) работа- проходе индексатора. ют во всех трех языках. После автодополнения имени функции или метода автоматически добавятся скобки, между которыми | Редактирование исходных текстов | будет помещен курсор. Еще более мощным средством помощи Редакторы в CDT и JDT похожи, хотя избранность Java нали- при наборе являются шаблоны кода. Используются они следу- цо и здесь. Возможно, редакторы – это одна из самых силь- ющим образом. Например, всем программистам на C известно ных частей Eclipse по сравнению с другими средами разра- обычное употребление функции malloc: ботки. Кроме уже традиционных складок (folds), подсветки type *var = (type *)malloc(n*sizeof(type)); синтаксиса и автоотступов разработчики добавили две по- При наличии подходящего шаблона эта строка получается своему уникальные вещи. Первая из них – это пометка из- так: набираем название шаблона (прямо в тексте), вызываем менений рядом с номерами строк, причем, что действительно автодополнение (по умолчанию – «Ctrl+Space»), которое полезно, изменения могут вычисляться не только по сравне- разворачивает название шаблона в сам шаблон строки и ста- нию с последним сохраненным текстом, но и с версией этого вит курсор на будущее имя типа в начале строки. Затем наби- файла в CVS. Вторая же приятная особенность заключается раем имя типа (причем это происходит одновременно в трех в том, что рядом с вертикальной полосой прокрутки было местах – взамен каждого из слов type), нажимаем «Tab», вво- выделено пустое место, поперечные полоски на котором дим имя переменной, еще раз «Tab», затем выражение, кото- указывают, в какой части файла индексатором и/или компи- рое в нашем примере заменено на «n». Еще одно нажатие лятором выдавались ошибки или предупреждения. Если «Tab» переносит нас в конец строки, и можно писать текст щелкнуть мышью по поперечной полоске, курсор попадет дальше. При этом значения приведения типа и sizeof будут непосредственно на проблемную строку. подставлены автоматически.

CHIP| LINUX 2/2005 Eclipse 81

В Eclipse «из коробки» шаблона для malloc, правда, нет, за- Что касается отладки, то здесь CDT вовсю использует воз- то есть шаблоны для основных синтаксических конструкций можности отладчика GDB. Фактически CDT – это графи- и кое-что на тему printf. Написать свои шаблоны проще про- ческая оболочка для GDB, имеющая довольно широкие стого, с их помощью можно быстро создавать функции и возможности, хотя визуализации расположения структур в классы, не затрачивая время на перемещения и набор повто- памяти наподобие той, что сделана в другой известной графи- ряющихся фрагментов. ческой оболочке для GDB – DDD, здесь нет. Это немало, но и В такой монументальной среде разработки как-то неловко не так уж много, к тому же все-таки хотелось бы иметь профи- отдельно говорить о подсветке синтаксиса. Однако с подсвет- лировщик и отладчик памяти (например, в виде обертки для кой синтаксиса в Eclipse все хорошо до тех пор, пока вы рабо- valgrind). У JDT есть свой отладчик, использующий ту же пер- таете с Java, C/C++ и файлами описания сборки (для Ant и спективу, что и отладчик CDT; таким образом, присутствует Make). Подсветки даже самого обыкновенного HTML у вас возможность вести отладку кода на обоих языках практически не будет, если вы не поставите нужный плагин. Стабильные в одинаковом интерфейсе. плагины, дающие подсветку синтаксиса для большого коли- чества языков, пока отсутствуют. К счастью, для частных слу- | Интеграция со средой пользователя | чаев наподобие тех же HTML/XML/CSS решение уже есть в Ни одна среда разработки не может содержать всех средств, ко- виде плагина под названием Black-sun (его можно найти на торые могут понадобиться программисту. Eclipse позволяет не- сайте проекта). Этот плагин вдобавок улучшает подсветку посредственно из среды разработки запускать внешние про- синтаксиса для Makefile. граммы для обработки кода или выполнения других сопутству- Еще одна слабая сторона редактора – это закладки (book- ющих действий. В аргументах для внешних программ можно marks). Несмотря на поддержку такой функции, пользоваться указывать различные переменные, связанные с текущим фай- ею не слишком удобно. Эту проблему можно успешно решить, лом, проектом или Eclipse в целом. Один из примеров уже упо- установив плагин Quickmarks. минался выше: поскольку нативной поддержки Autotools в CDT не предусмотрено, можно указать все необходимое в виде | Сборка и отладка | внешних приложений, а Eclipse обновит нужные виды, когда Начнем с того, что и в JDT, и в CDT можно найти синтакси- приложения завершатся. ческие ошибки без запуска компиляции. Упрощенная про- Еще одна форма интеграции в пользовательскую среду верка синтаксиса ведется индексатором, который в состоя- состоит в том, что, поскольку Eclipse не в состоянии открыть, нии найти такие ошибки, как необъявленная переменная или например, файлы редактора диаграмм Dia, было бы неплохо, неправильно написанное имя класса. JDT еще и поможет чтобы этот редактор запускался автоматически при попытке сразу исправить ошибку (например, объявить необъявлен- открыть подобные файлы. Для этого придется немного порабо- ную переменную; для отсутствующего метода создать заглуш- тать вручную, а именно в разделе «General» в настройках впи- ку) посредством нажатия «Ctrl+1». сать нужные маски файлов и пути к открывающим их програм- Для компиляции в CDT используется GCC; в проектах мам. Получать MIME-типы из среды пользователя Eclipse пока Standard Make можно задействовать и другой компилятор бла- не научилась, и есть опасение, что вряд ли научится – кросс- годаря полной свободе в написании Makefile. В случае с JDT платформенность дает о себе знать. также можно выбрать виртуальную машину Java и, соответ- ственно, компилятор. | Резюме | Все ошибки и предупреждения компилятора собраны на Все-таки можно говорить о том, что на Eclipse неизгладимый отпе- отдельной панели, которая называется «Problems». Прямо из чаток наложило IBM-происхождение. Она, как почтенный мейн- нее с помощью двойного клика мышью можно попасть в фрейм IBM S/370, велика в размерах, довольно сложна в освоении строку кода, на которую ссылается то или иное сообщение. и необычайно эффективна для решения ряда задач. Eclipse не Например, в JDT нажатие комбинации клавиш «Ctrl+1» ра- слишком дружит с популярными в Linux инструментами, такими ботает в том случае, если для строки есть возможность авто- как Autotools, Glade, valgrind. Основная ориентация на Java тоже не матического исправления. способствует популярности в стане Open Source. Вероятно, дело в том, что главная целевая аудитория Eclipse – разработчики крупно- На заметку го коммерческого софта, а не энтузиасты. Но тогда вообще неясно, почему нет оболочки для valgrind. ã˛·ÓÔ˚ÚÌ˚È Ù‡ÍÚ В любом случае, если вы собираетесь писать консольные Не совсем понятно, откуда го, у Sun есть своя среда программы или демоны на C/C++ и не боитесь сложностей появилось название Eclipse разработки для Java, по- освоения среды разработки, обязательно попробуйте Eclipse: (в переводе с английского явившаяся еще до Eclipse. средства управления проектами, редактор исходного кода и «затмение»). Но обратите Но разработчиков, исполь- отладчик в CDT — просто превосходные! Если же вы пишете внимание, что в eclipse.org зующих Eclipse, больше. программы на Java, то и так наверняка давно знаете, что никогда не входила и не вхо- Похоже, IBM действительно Eclipse – самая популярная и одна из лучших сред разработ- дит компания Sun. Более то- удалось затмить солнце. ки для этого языка. |

2/2005 LINUX| CHIP 82 coding Ô‡ÍÚ˘ÂÒ͇fl ‡·ÓÚ‡

Сергей Супрунов ꇷӘ‡fl ÎÓ¯‡‰Í‡ ‡‰ÏËÌËÒÚ‡ÚÓ‡

Язык программирования Python в последнее время становится все более популярным. Он по умолчанию включается в большинство дистрибутивов Linux, его можно установить на FreeBSD (кстати говоря, Perl с некоторых пор также не является частью системы, так что и в этом плане он уравнен в правах с Python). Многие сторонние программы наряду с поддержкой Perl обеспечивают и работу с Python (например, модуль mod_python к Apache, язык PL/pySQL в PostgreSQL).

Поднимать вечный спор «Perl vs Python» не будем: с обеих команду на следующую; однако это ухудшает читаемость кода и сторон можно привести массу доводов как «за», так и «про- настоятельно не рекомендуется). Все строки одного блока тив». На наш взгляд, здесь решающим фактором при выборе (цикла, подпрограммы, ветвления и т. д.) должны быть выров- будет, скажем, психологическая совместимость языка и про- нены на одинаковое количество пробельных символов (пробе- граммиста. Например, некоторым Python пришелся по душе лами или табуляцией). Например: из-за строгого синтаксиса и очень удобной концепции по- for file in dir: вторного использования кода. print file В данной статье мы рассмотрим несколько примеров исполь- print ‘------‘ зования Python для решения задач администрирования систем print file Unix (все примеры оттачивались на FreeBSD, но и на Linux В данном фрагменте телом цикла for являются первые две должны работать не хуже). Предполагается, что большинство строки print (заданы с отступом относительно оператора for). пользователей хотя бы в общих чертах знакомы с синтаксисом Последняя строка будет исполнена после выхода из цикла, по- Python. Если вы не относитесь к их числу, переходите к следую- скольку она уже не имеет отступа. щему разделу, в котором коротко описаны основные моменты, Как вы, должно быть, заметили, команды не нужно завер- необходимые для чтения представленного в статье кода. шать символом «;» (он должен указываться только при разме- щении нескольких команд в одной строке). Поскольку перевод | Несколько вводных замечаний | строки рассматривается как конец команды, для ее переноса Напомним основные моменты синтаксиса языка Python. символ конца строки должен экранироваться: Прежде всего, блоки кода в нем выделяются не операторными print a, b, c, d, e, скобками, как в C или Perl, а отступами. Каждая команда запи- f, g, h сывается на одной строке (в принципе синтаксис позволяет Строку внутри кавычек можно переносить без экранирова- объединять несколько команд в одну строку или переносить ния, поскольку в этом случае перевод строки считается принад-

CHIP| LINUX 2/2005 ÔËÏÂ˚ ÒÍËÔÚÓ‚ ̇ Python 83

лежащим строковой константе (обязательно убедитесь, что def indir(curdir): этот символ не исказит отображение строки). global space В Python идея повторного использования кода заложена в dir = glob('*') основу синтаксиса. Если вы когда-либо писали какую-то функ- for file in dir: цию (или получили готовую), то ее очень легко подключить к ext = os.path.splitext(file)[1][1:] любому другому сценарию с помощью оператора import: if os.path.isdir(file): import sys if DEBUG: print '%s---> %s' % (' ' * space, file) from Tkinter import * os.chdir(file) В первой строке мы подключаем модуль sys, включенный в space += 1 стандартную библиотеку Python. Во второй импортируются все indir(file) функции модуля Tkinter. Причем в качестве модуля может рас- space -= 1 сматриваться любой файл, содержащий код Python. Отличие os.chdir('..') этих способов заключается в том, что при «простом» импорте if DEBUG: print '%s<--- %s' % (' ' * space, file) для всех функций подгружаемого модуля создается свое прост- elif exts.__contains__(ext): ранство имен, и при обращении к той или иной функции (или try: переменной) следует указывать имя модуля (см. примеры ни- text = orig = open(file, 'r').read() же). А конструкция «from import » добавляет импортируемые функции в пространство for word in old: имен выполняемого сценария, что позволяет обращаться к text = text.replace(old[i], new[i]) функции без указания имени модуля. Естественно, импортиру- i += 1 емое таким образом имя не должно конфликтовать с уже име- if orig != text: ющимися. Кроме того, во втором случае вместо символа «*» open(file, 'w').write(text) можно явно перечислить функции, которые должны быть до- if DEBUG: print '%s+ %s...' % \ ступны в разрабатываемом сценарии. (' ' * space, file) Комментарии, как и в Perl, начинаются с символа «#». else: Теперь рассмотрим несколько примеров решения различных if DEBUG: print '%s= %s...' % \ задач администрирования. (' ' * space, file) except: | Автоматическое print 'I/O ERROR while %s processing' % file редактирование файлов | def Usage(): | Исходные условия | print 'Usage: fe.py startdir' Имеется древовидная структура каталогов, содержащая тексто- print вые файлы. Для определенности будем считать, что такой струк- space = 0 турой является дерево веб-сайта некоторой компании (простые if len(sys.argv) != 2: HTML-файлы). Пусть по ряду причин компания сменила на- Usage() звание с Indians на Cowboys, что отразилось и на доменном име- else: ни сайта — вместо www.indians.com будет www.cowboys.ru. startdir = sys.argv[1] if DEBUG: print 'Start with %s' % startdir | Задача | os.chdir(startdir) Реализовать автоматическую корректировку всех HTML- indir(startdir) файлов, заменив все названия и доменные имена новыми Самая первая строка указывает операционной системе (ес- значениями. Будем считать, что регистр символов везде со- ли речь идет о Unix) путь к командному интерпретатору блюдается безукоризненно, то есть нигде в тексте не встреча- Python. Приведенный путь характерен для FreeBSD, в Linux ется написание типа InDiAnS. это обычно /usr/bin/python. В Windows она воспринимается как обычный комментарий. | Решение | Здесь нам понадобились модули os и sys, а также функция Сначала приведем полностью итоговый сценарий, учитывая его «glob» из одноименного модуля. Все модули входят в стан- небольшой размер. Необходимые пояснения размещены ниже. дартную поставку Python, искать их нигде не нужно. Задаем #!/usr/local/bin/python список обрабатываемых расширений (переменная exts) и два import os, sys списка заменяемых значений — в первом старые строки, ко- from glob import glob торые должны быть заменены, во втором — новые (оба спис- exts = ['html', 'htm'] ка должны строго соответствовать друг другу). old = ['Indians', 'indians.com'] Установка значения «1» переменной DEBUG позволит по- new = ['Cowboys', 'cowboys.ru'] лучать в окне терминала подробные сообщения о процессе DEBUG = 1 исполнения сценария.

2/2005 LINUX| CHIP 84 coding Ô‡ÍÚ˘ÂÒ͇fl ‡·ÓÚ‡

Далее следует определение функции «indir» (оператор def). на две части — все, что стоит до расширения (до последней точ- К ней мы вернемся немного позже, пока лишь отметим, что к ки), и само расширение. Значения возвращаются в виде спи- ней принадлежат все строки, имеющие отступ. сок, в котором нас интересует второй элемент. Рассматривая Функция «Usage» выводит на экран сообщение о синтак- функцию os.path.splitext(file) как переменную-список (ее ре- сисе запуска сценария. зультат и будет занесен во временную переменную), мы приме- Последние строки сценария выполняют следующие дейст- няем к ней обычную процедуру извлечения элемента по индек- вия: переменная space инициализируется значением «0» (она су. Таким образом, конструкция os.path.splitext(file)[1] будет будет нужна в функции «indir»); проверяется количество пере- представлять собой внутреннюю переменную, содержащую данных сценарию аргументов, и если оно не равно двум (имя расширение файла. Однако в эту строку попадает и ведущая самого сценария и один параметр), то вызывается функция точка, то есть ее содержимое на данном этапе выглядит как «Usage». То, что передано в командной строке, можно получить .html, и эту точку следует убрать. из специального списка argv модуля sys. Переменная sys.argv[0] В Python символьная строка может рассматриваться как хранит имя запущенного сценария, поэтому первый аргумент список букв (выполните в интерфейсе интерпретатора команду имеет индекс 1. Если длина списка sys.argv равна двум, считы- for a in ‘qwerty’: print a, чтобы убедиться в этом). Для списков вается аргумент, переданный в командной строке (мы будем существует особая операция — срез. Например, чтобы получить передавать в сценарий имя каталога, являющегося корнем об- список, содержащий элементы с третьего по пятый некоторого рабатываемого дерева). Далее выводится отладочное сообще- существующего списка, можно выполнить следующее: ние; работа операторов if и print, как нам кажется, понятна без Sublist = list[3:6] комментариев. Разве что следует обратить внимание на исполь- Таким образом, указывается диапазон индексов, причем эле- зование знакомест при выводе текстовой строки: в самой стро- мент, имеющий индекс, указанный вторым, в результирующий ке место, куда должно быть выведено значение строковой пере- список не включается (то есть sublist будет содержать элементы менной, отмечается конструкцией %s, при обработке вместо 3, 4 и 5). Если опущен первый из индексов, подразумевается нее подставляется конкретное значение соответствующей пе- «с начала списка», если опущен второй — «до конца списка». Те- ременной — одной из перечисленных после символа «%». перь становится понятной и последняя запись разбираемой Функция «chdir» модуля os делает текущим указанный ка- строки: в переменную ext записывается не вся строка расшире- талог, а последней строкой вызывается функция «indir», кото- ния, а подстрока, начиная со второго символа и до конца. Как рая и будет выполнять основную работу. видите, интерпретатор Python позволяет осуществлять довольно В функции «indir» мы сначала объявляем глобальную пере- сложную обработку без явного указания переменных. менную. Без такого объявления space будет считаться локаль- Вернемся к рассмотрению функции «indir». Если очередной ной и не примет во внимание значение, установленное вне элемент из переменной dir представляет собой имя каталога функции. Назначение переменной space рассмотрим не- (проверяется функцией «isdir» модуля os.path), то выполняется сколькими абзацами ниже. переход в этот каталог, рекурсивный вызов «indir» и возвраще- Функция «glob» модуля glob (поскольку она была импорти- ние в родительский каталог после завершения обработки. рована в пространство имен нашего сценария, то при обра- Следует чуть более подробно остановиться на записи «’ ‘ * щении к ней имя модуля не указывается) возвращает список space», которая является переменной для заполнения первого имен файлов и каталогов, найденных в текущей папке и соот- знакоместа в отладочных сообщениях. Оператор «*» для строк ветствующих указанному шаблону. В данном случае мы ис- означает «повторить указанное количество раз». Глобальная пе- пользуем шаблон «*», поскольку имена подкаталогов могут ременная space как раз эти «разы» и содержит, увеличиваясь быть любыми. Обратите внимание, что в Unix DOT-файлы при входе в подкаталог и уменьшаясь при возврате из него на (имена которых начинаются с точки, включая каталоги . и ..) один. В результате вывод на экран представлен «лесенкой», от- не соответствуют шаблону «*» (чтобы убедиться в этом, набе- ражающей вложенность каталогов. рите «echo *» в командной строке), поэтому дополнительных Если очередной элемент является регулярным файлом (ко- мер по исключению зацикливания на родительском каталоге нечно, есть еще и символьные ссылки, файлы-«дырки» раз- предпринимать не требуется. личных устройств и т. д., но в данном примере мы про это «за- Таким образом, переменная dir теперь содержит список всех будем»), то проверяем его расширение (часть elif оператора файлов и каталогов, находящихся в текущей папке. if). Здесь удобно использовать внутреннюю функцию «__con- Цикл for в Python позволяет простым и естественным обра- tains__», которая применена к списку и возвращает «истину», зом проходить по всем элементам списка. В нашем случае тело если список содержит элемент, равный ее аргументу. Таким цикла будет выполнено для каждого имени файла или каталога образом, дальнейшей обработке будут подвергаться только из dir. Текущий элемент заносится в переменную file. файлы, расширения которых упоминаются в списке exts, за- Следующая строка, призванная дать нам расширение обра- данном в начале сценария. батываемого файла, выглядит не совсем понятно: Собственно обработка файла достаточно проста: его содер- ext = os.path.splitext(file)[1][1:] жимое считывается в переменную text (копия — в переменную Здесь функция «splitext», находящаяся в подмодуле path мо- orig; Python допускает множественное присваивание), к кото- дуля os, разбивает полное имя файла, переданное как параметр, рой в цикле применяется метод replace для каждой пары значе-

CHIP| LINUX 2/2005 ÔËÏÂ˚ ÒÍËÔÚÓ‚ ̇ Python 85

ний. Запись в файл выполняется только в том случае, если из- while 1: мененный текст (text) отличается от orig. Но поскольку опера- line = fd.readline() ции с файлами небезопасны (может оказаться недостаточно if not line: прав на чтение или запись), их целесообразно выполнять внут- break ри оператора «try .. except ..»: если при выполнении команд бло- fields = line.split(' ') ка try возникнет ошибка, управление будет передано на блок if fields[5] == '"GET' and fields[8] == '200': except, и выполнение сценария продолжится. url = fields[6] Обратите также внимание, что при работе с файлом нигде не if url.find('?') != -1: указывается его десткриптор. То есть мы используем тот же при- url = url[:url.index('?')] ем, что и ранее при отделении расширения от имени файла — traf = int(fields[9]) неявные переменные. В классическом варианте чтение из фай- else: ла выглядело бы следующим образом: continue fd = open(file, 'r') if stat.has_key(url): text = fd.read() stat[url] += traf fd.close() cnts[url] += 1 Кстати, поскольку неявная переменная-дескриптор сущест- else: вует только внутри данной команды, то при переходе на следу- stat[url] = traf ющую файл будет автоматически закрыт, поэтому функцию cnts[url] = 1 «close()» вызывать не обязательно, чем мы и воспользовались. fd.close() На выводе рассмотренного сценария символом «+» будут statkeys = stat.keys() отмечены файлы, в которых были сделаны корректировки, statkeys.sort() «=» — которые оставлены без изменений. Скорость работы totaltrf = 0 оказалась достаточно приличной — в дереве общим объемом totalcnt = 0 около 5 Мбайт (235 файлов, подлежащих обработке) тройная print '-' * 60 замена была выполнена за пару секунд. print '%-25s %12s %12s' % ('Страница', 'Обращений', 'Тра- фик') | Анализ лог-файлов Apache | print '-' * 60 | Исходные условия | for key in statkeys: Имеется веб-сервер Apache, ведущий лог-файл (для определен- print '%-25s %12d %12d' % (key, cnts[key], stat[key]) ности — /var/log/httpd-access.log) посещения страниц вида: totaltrf += stat[key] x.x.x.x — - [16/Jun/2005:07:06:44 +0400] "GET /city/city.htm totalcnt += cnts[key] HTTP/1.0" 304 — "-" "ConveraCrawler/0.8 print '-' * 60 (+http://www.authoritativeweb.com/crawl)" print '%-25s %12d %12d' % ('Total:', totalcnt, totaltrf) y.y.y.y — - [16/Jun/2005:07:33:11 +0400] "GET /map.html print '-' * 60 HTTP/1.0" 200 3960 "-" "Googlebot/2.1 Вторая строка сценария указывает используемую кодиров- (+http://www.google.com/bot.html)" ку, что необходимо, так как в данном примере используются символы, выходящие за рамки стандарта ASCII-128. Если ко- | Задача | дировку не указать, то сценарий станет работать, но каждый Получить статистику посещений каждой из страниц, а также раз будет выводиться предупреждение. рассчитать общий объем отданных клиентам страниц. Итак, открываем файл, в цикле считываем его построчно посредством метода readline(). Как только будет прочитана | Решение | пустая строка — выходим из цикла. Каждую строку разбива- Первая строка приведенного выше примера лог-файла соответ- ем на составляющие, используя в качестве разделителя про- ствует ответу с кодом 304 (Not Modified) и интереса для нас не бел (метод split). Если строка содержит на шестой позиции представляет (если, конечно, не потребуется собирать статис- символы «”GET», а на девятой — «200» (нужный нам код от- тику и по таким ответам). В данном примере учитывать следует вета), то записываем в переменные седьмое поле, содержащее только ответы с кодом 200 (страница отдана клиенту). URL запрошенной страницы, и десятое, в котором указано Код сценария в данном случае заметно проще, но тоже име- количество переданных байт. ет ряд особенностей: При обработке строки URL используется уже знакомый #!/usr/local/bin/python нам срез, чтобы отбросить все, что находится после символа # -*- coding: koi8_r -*- «?», то есть получить просто имя страницы без параметров, fd = open('/var/log/httpd-access.log', 'r') которые передаются на сервер. Позицию знака «?» возвра- stat = {} щает функция «index», а чтобы не возникало ошибки при от- cnts = {} сутствии его в строке, предварительно проверяем его наличие line = 'not empty' функцией «find».

2/2005 LINUX| CHIP 86 coding Ô‡ÍÚ˘ÂÒ͇fl ‡·ÓÚ‡

Немного подробнее остановимся на переменных stat и cnts. received = int(reply[3].split(' ')[3]) Это ассоциативные массивы, хранящие пары «ключ-значение». if received == 0: В роли ключа будет выступать имя страницы, а в роли значе- tolog('%2d | %7s | %7s' % (received, '-', '-'), host) ния — трафик и количество обращений. tomail('No ping to %s' % host) Метод keys, примененный к ассоциативному массиву, возвра- else: щает список ключей; метод sort осуществляет сортировку списка. stat = reply[4].split(' ')[3].split('/') Далее в цикле по всем элементам в statkeys результат выво- average = float(stat[1]) дится на экран и попутно вычисляются суммарные значения stddev = float(stat[3]) числа обращений и трафика. tolog('%2d | %7.3f | %7.3f' % (received, average, stddev), Обратите внимание на цифры в конструкциях %s и %d — host) они указывают число символов, которое будет занимать пере- pingchannel() менная. По умолчанию выравнивание осуществляется по pingchannel('samag.ru') правому краю с помощью пробелов. Минус перед числом за- pingchannel('cam12.noping.ru') ставляет осуществлять выравнивание влево. Большинство используемых здесь команд применялись ра- По результатам работы будет выведена таблица с указанием нее. Поясним лишь конструкцию host=defaulthost в определе- количества обращений к каждой странице и объема трафика. нии функции «pingchannel». Такая запись позволяет определить Обработка лог-файла размером 17,5 Мбайт на Celeron 466 значение аргумента по умолчанию — если функция вызывается (128 Мбайт памяти) занимает около 10 секунд. с аргументом (последние две строки), то применяется передан- ное значение. Если же аргумент при вызове функции опущен, | Сбор статистики работы то он принимает значение, указанное после знака равенства. канала Интернета | Подробности работы использованных в сценарии системных | Задача | утилит (mail, logger, ping) смотрите на соответствующих страни- Каждые 15 минут требуется проверять работоспособность канала цах справочного руководства вашей операционной системы. путем отсылки десяти пакетов размером 1400 байт. Статистику В результате работы рассмотренного сценария в систем- (количество принятых пакетов, среднее время переноса и сред- ный журнал (согласно настройкам syslog) будут помещаться нюю девиацию stddev) будем записывать в лог-файле, а при от- следующие строки: сутствии соединения — отправлять письмо администратору. Jun 17 16:07:06 host serg: ping ya.ru: 10 | 34.307 | 0.529 Jun 17 16:07:08 host serg: ping samag.ru: 9 | 11.772 | 0.058 | Решение | Jun 17 16:07:21 host serg: ping cam12.noping.ru: 0 | — | Цель данного примера — показать приемы взаимодействия Если с какого-то из тестируемых узлов не будет получено ни Python с операционной системой. Для проверки работы канала одного ответа, администратору на электронный ящик будет от- будет использоваться системная утилита ping, отправка уведом- правлено сообщение об этом: ления будет осуществляться с помощью команды mail, а логи No ping to cam12.noping.ru будут записываться с помощью программы logger. Данный сценарий можно периодически запускать по cron, Для взаимодействия с программами операционной системы и в итоге будет накапливаться статистика качества работы ка- используются две функции модуля os — «popen» и «system». налов. Лог-файл можно обрабатывать также сценарием на Первая из них открывает канал с указанной в качестве аргумен- Python, основные принципы такой обработки были рассмот- та программой, что позволяет считать ее вывод с помощью ме- рены в примере 2. тода readlines (или любого другого, который лучше подходит в той или иной ситуации). Функция «system» просто выполняет | Заключение | указанную команду и восстанавливает лишь код возврата. Приведенные выше примеры показывают, что Python может с Код сценария представлен ниже: успехом применяться для решения самого широкого круга задач #!/usr/local/bin/python администрирования. Он удобен для работы с файлами, хорошо import os обрабатывает текстовые документы (хотя в этом он несколько pingcmd = '/sbin/ping -q -c 10 -s 1400 ' уступает мощи и гибкости Perl), предоставляет необходимые defaulthost = 'ya.ru' средства для взаимодействия с операционной системой. loggercmd = '/usr/bin/logger' Благодаря концепции повторного использования кода через mailcmd = '/usr/bin/mail -s \'Ping notification\'' некоторое время нарабатывается целая «библиотека» различ- admin = '[email protected]' ных функций (например, функцию «pingchannel» из третьего def tolog(msg, host): примера можно будет в дальнейшем использовать и в других os.system(loggercmd + ' "ping ' + host + ': ' + msg + '"') сценариях, нуждающихся в проверке работоспособности кана- def tomail(msg): ла), и программировать становится все проще. А строгий син- os.system('echo ' + msg + '|' + mailcmd + ' ' + admin) таксис дает гарантию того, что через несколько лет вы сами def pingchannel(host=defaulthost): (или пришедший вам на смену системный администратор) reply = os.popen(pingcmd + host).readlines() сможете без труда разобраться в вашем сценарии. |

CHIP| LINUX 2/2005 88 practice ÓÚ‚ÂÚ˚ ̇ ‚ÓÔÓÒ˚ î‡ÍÚ˘ÂÒÍËÈ Ï‡ÚÂË‡Î В любой даже самой отточенной системе всегда Обе среды довольно удобны, но, скорее всего, есть резерв для совершенствования. Этот раздел вам наверняка чего-то не хватает. Возможно, поможет вам сделать работу в Linux удобной и это какое-то действие в пункте меню, которое продуктивной, возможно, здесь вы найдете вы часто выполняете вручную и хотели бы решение какой-либо программной или аппаратной автоматизировать этот процесс, или упаковка проблемы. Начнем с советов по работе с файла каким-то специфическим архиватором, графическими средами GNOME и KDE. или изменение прав доступа к нему.

KDE Вообще, в качестве значения данного $ sudo cp make_exe_desktop параметра можно указать любой MIME- /usr/share/apps/conqueror/servicemenus/ Создание собственных тип, например: Для записи в этот каталог нужны права су- действий в сервисном меню ServiceTypes=audio/x-mp3 перпользователя, поэтому, чтобы выпол- Давайте создадим дополнительную ко- Если требуется выполнить какое-то дей- нить команду cp, понадобится команда манду, которая делает файл исполни- ствие для всех типов файлов кроме каких- sudo, которая и обеспечит нужные полно- мым. (Как говорится, был обычный то определенных, используется параметр мочия (вам нужно будет ввести пароль файл, а стал программой.) Это действие ExcludeServiceTypes. Например, если вы пользователя root). Если же вы не админи- может оказаться очень полезным, если определяете действие архивирования, то стратор системы и хотите добавить коман- вы часто пишете сценарии bash. Ведь должны указать сервисные типы — все ду в меню только локального пользовате- сценарий bash — это обычный тексто- файлы, но исключить архивы: ля, скопируйте файл make_exe_desktop в вый файл, созданный в текстовом ре- ServiceTypes=all/allfiles каталог ~/.kde/share/apps/conqueror/ser- дакторе. Чтобы он запускался, нужно ExcludeServiceTypes=application/ vicemenus/: сделать его исполнимым. Данный совет x-zip,kdedevice/* $ cp make_exe_desktop посвящается любителям все делать Параметр Actions определяет действия, ~/.kde/share/apps/conqueror/service- мышкой — тем, кому лень вводить ко- описанные в файле. В данном случае опи- menus/ манду вида «chmod +x имя_файла». сано только одно из них — MakeExe, опре- Результат вашей работы появится в пара- Итак, в любимом текстовом редакторе деленное в секции [Desktop Action метре Actions сервисного меню KDE. создайте файл следующего содержания: MakeExe]. Параметр Name — это надпись, [Desktop Entry] которую вы найдете в сервисном меню ServiceTypes=all/allfiles KDE. Это общая надпись, которую увидит ServiceType=application/x-shellscript пользователь, ее желательно писать на ан- Actions=MakeExe глийском языке. Параметр Name[ru] — [Desktop Action MakeExe] это тоже надпись, описывающая действие, Name=Make executable но на русском языке. Пользователь увидит Name[ru]=Сделать файл исполнимым ее, если у него KDE на русском языке. ëÓÁ‰‡ÌË ÒÂ‚ËÒÌÓ„Ó ÏÂÌ˛ Exec=chmod +x %f Параметр Exec — это команда, которая бу- Icon=kfm дет выполнена, а %f — параметр, опреде- GNOME Рассмотрим первую секцию. Первая ляющий имя файла, по которому вы опция задает тип файлов, для которых щелкнули правой кнопкой; нужное имя Меню «Сценарии» можно выполнить указанное действие. будет подставлено вместо %f. Меню «Сценарии» аналогично меню В данном случае оно доступно для всех Созданный файл сохраните под именем «Действия» в KDE. Идентичен и прин- файлов (allfiles). Если нужно выполнить make_exe.desktop. цип работы. Мы определяем команды, какое-то действие для каталога, то па- Как видите, в этом нет ничего сложного. которые будут выполнены при выборе раметр ServiceTypes должен принять Осталось только сохранить файл в нужном того или иного пункта меню. Только ес- значение inode/directory: каталоге — servicemenus. Он находится в ли в случае с KDE файл меню имел опре- ServiceTypes=inode/directory каталоге /usr/share/apps/conqueror/: деленный формат, то для GNOME файл

CHIP| LINUX 2/2005 Ô‡ÍÚ˘ÂÒÍË ÒÓ‚ÂÚ˚ 89

меню — это обычный bash-сценарий. ture" | cut -d . -f 1` kstart --alldesktops konqueror Хорошо это или плохо, зависит от степе- $convertprg "$pic- Чтобы запустить все тот же Konqueror ни вашего знакомства с bash. ture" "$newfile".gif и развернуть его во весь экран, исполь- Если вы знаете его хорошо, то сможе- fi зуется опция fullscreen: те создавать очень сложные сценарии, shift kstart --fullscreen konqueror позволяющие автоматизировать ог- done И, наконец, для запуска на всех рабо- ромное количество рутинной работы. Данный сценарий выполняет конвер- чих столах приложения noatun в режи- Действия вашего сценария не будут тирование изображения в формат GIF. ме OnTop (всегда поверх всех окон) ис- ограничены форматом файла, как в В качестве программы-конвертера ис- пользуется такая команда: KDE. Ведь, по сути, в KDE для выпол- пользуется convert. kstart --alldesktops --ontop noatun нения действия мы можем определить Файл, по которому пользователь щелк- только простые команды. Если нужно нул правой кнопкой мыши, передается GNOME использовать то же разветвление (if … нашему сценарию как первый параметр: then), все равно придется писать сце- picture=$1 Автоматическая нарий на bash, а из меню KDE вызы- При написании сценариев действий смена обоев вать не какую-то программу, а именно вы можете использовать следующие Наверное, многие из нас видели про- созданный вами сценарий. переменные окружения, которые уста- грамму Webshots Desktop. Жаль, что Если же вы не очень хорошо знакомы с навливаются средой GNOME. она работает только под Windows. Хо- bash, рекомендуем его выучить, а пока вы 3 NAUTILUS_SCRIPT_SELECTED_ телось бы, чтобы у нее была Linux- будете это делать, лучше создавать до- FILE_PATHS — имена всех выбранных версия. Но пока ее нет, мы попробуем полнительные пункты меню в KDE. файлов (в случае если вы выбрали груп- написать ее аналог. Идея создания пункта меню достаточ- пу файлов, а затем — созданное вами Для тех, что не знает, что это за про- но проста. Вы пишете bash-сценарий и действие) будут разделены символом грамма, вкратце расскажем, как она ра- помещаете его в каталог ~/gnome2/nau- новой строки (\n). Данная переменная ботает. Существует каталог с обоями ра- tilus-scripts/. В нем же можно создавать работает только с локальными файла- бочего стола — /home/den/Wallpapers/. подкаталоги — они будут отображаться ми. Если вы выберете файлы, напри- Каждый раз при запуске GNOME ме- как дополнительные меню. На скрин- мер, в каталоге FTP-сервера, то эта пе- нять обои вручную неудобно. Нужно шоте видно, что в каталоге nautilus- ременная устанавливаться не будет. автоматизировать эту рутинную про- scripts был создан подкаталог Convert, а 3 NAUTILUS_SCRIPT_SELECTED_ цедуру, и в этом нам поможет следую- в нем — файл Convert2Gif. Думаем, с URIS — эта переменная как раз пред- щий сценарий: этим все ясно. Теперь рассмотрим при- назначена для работы с удаленными #!/bin/bash мер самого сценария: файлами и содержит URI файлов, раз- export DIR='/home/den/Wallpapers/' #!/bin/bash деленных символом новой строки. export NUMBER=$RANDOM convertprg=`which convert` 3 NAUTILUS_SCRIPT_WINDOW_ export TOTAL=0 while [ $# -gt 0 ]; do GEOMETRY — данная переменная со- for f in `ls $DIR` picture=$1 держит геометрию (позицию и размер) do filetype=`file $picture | cut -d ' ' текущего окна Nautilus. let "TOTAL += 1" -f 3` done if [ $filetype = "image" ] KDE let "NUMBER %= TOTAL" then export CURRENT=0 newfile=`echo "$pic- Программа kstart for f in `ls $DIR` Программа kstart позволяет управлять do запуском приложения в графической if [ $CURRENT = $NUMBER среде KDE. Рассмотрим несколько ] примеров ее использования (подроб- then ное описание этой программы вы най- /usr/bin/gconftool-2 - дете в справочном руководстве). t string -s /desktop/gnome/back- Для того чтобы запустить приложение ground/picture_filename $DIR/$f Konqueror на втором виртуальном ра- break бочем столе, достаточно выполнить fi следующую команду: let "CURRENT += 1" kstart --desktop 2 konqueror done Программу также можно запустить Особо вникать в этот сценарий не åÂÌ˛ «ëˆÂ̇ËË» ‚ GNOME сразу на всех рабочих столах, для этого нужно. Достаточно понять, что он с используется опция alldesktops: помощью команды gconftool-2 уста-

2/2005 LINUX| CHIP 90 practice ÓÚ‚ÂÚ˚ ̇ ‚ÓÔÓÒ˚

import, которая является частью пакета Второй способ — указать геометрию окна: ImageMagic (этот пакет должен быть у $ sleep 5; import -geometry геометрия вас установлен). Рассмотрим следую- screen.png щую команду: Вычислить координаты и геометрию $ sleep 5; import -window root позволяет команда xwininfo. screen.png После запуска программы XWinInfo Ее можно ввести или в X-терминале, указатель мыши поменяет свой вид со или в окне запуска программы KDE стрелки на крестик. Вы должны вы- (для вызова окна нажмите сочетание брать окно, о котором хотите получить клавиш «Alt+F2»). Данная строка на информацию, после чего программа Ä‚ÚÓÁ‡ÔÛÒÍ GNOME самом деле состоит из двух команд — вам их предоставит. Геометрия окна sleep и import. Команда sleep генериру- выводится почти в самом конце, по- навливает файл обоев, который выби- ет необходимую задержку в секундах. этому на рисунке она не видна. рается случайным образом в первой Думаем, пяти секунд хватит, чтобы И, наконец, рассмотрим третий, са- части сценария из каталога, заданного вы смогли привести экран в надлежа- мый простой способ сделать снимок переменной $DIR. щий вид: запустить или активировать определенного окна: Сохраните этот файл под именем нужное окно, выбрать подходящий $ import window.png change_wp и сделайте его исполнимым: пункт меню и т. д. Команда sleep не понадобится, по- $ chmod +x change_wp Команда import будет выполнена сра- скольку программа import предоставит Для изменения обоев вам достаточно зу после обработки sleep, то есть спу- вам возможность выбрать нужное ок- выполнить следующую команду (обои стя пять секунд. Она делает снимок но: указатель мыши изменится на кре- будут изменены мгновенно): корневого окна, то есть всего экрана, стик, как и в случае с программой ./change_wp и записывает его в файл screen.png. import. Щелкните по нужному окну, и А теперь, собственно, займемся автома- Формат PNG наиболее оптимален буквально через полсекунды в файл тизацией, ведь вы же не будете вводить для создания снимка экрана. Если window.png будет записан его образ. эту команду каждый раз при запуске вам нужен другой формат, например Программа import довольно гибкая, GNOME. Тут можно поступить двумя JPG, просто измените расширение рекомендуем прочитать ее man — вы способами: или поместить вызов этого результирующего файла: найдете там много интересного. сценария в таблицу crontab (должен $ sleep 5; import -window root А что если вам нужно сделать снимок быть запущен демон crond), или доба- screen.jpg текстовой программы, а не графичес- вить команду вызова этого сценария в Но не всегда нужен снимок всего эк- кого окна? Проще всего запустить ее в автозапуск непосредственно GNOME. рана, в большинстве случаев необхо- X-терминале, а затем снимать окно Crond предлагает больше возможнос- димо лишь какое-то конкретное окно. X-терминала, как показано выше. Ес- тей. Например, вы можете установить Запускать потом приложение GIMP и ли обрамление окна X-терминала вам смену обоев каждый час. А в другом вырезать нужное окно из общей «фо- не нужно, его можно вырезать с помо- случае обои будут меняться только при тографии» не очень удобно — проще щью GIMP. перезагрузке, то есть всякий раз, когда с самого начала сделать снимок опре- вы регистрируетесь в GNOME. деленного окна. ĉÏËÌËÒÚËÓ‚‡ÌË Первый способ — указать координаты É‡ÙË͇ окна, например: Клонирование системы $ sleep 5; import -crop 400x300 Клонирование — это очень полезный Снимок экрана screen.png процесс. Предположим, вы только что из командной строки установили Linux на один компьютер в Снимок экрана (или какого-то окна) интернет-зале. Потом посмотрели во- можно сделать многими программами: круг и осознали, что вам предстоит по- например, очень хороша KSnapshot, вторить этот процесс минимум еще на входящая в состав KDE. Также снимок пяти-семи машинах. Вот тут как раз и экрана можно сделать и с помощью целесообразно использовать клониро- GIMP. Но иногда эти программы не вание — создание точной (побитной) доступны — например, у вас вообще не копии исходного носителя. В этом установлен KDE, а использовать случае в качестве носителя будет вы- GIMP для снимка экрана/окна, мягко ступать корневая файловая система говоря, нерационально. èÓ„‡Ïχ XWinInfo. ùÚÓÚ ÒÌËÏÓÍ Linux. Клонированная копия называ- Сделать снимок экрана можно очень ется образом. Мы попробуем сделать Ò‰ÂÎ‡Ì c ÔÓÏÓ˘¸˛ ÍÓχ̉˚ import легко и быстро с помощью утилиты точную копию, а потом развернуть ее

CHIP| LINUX 2/2005 Ô‡ÍÚ˘ÂÒÍË ÒÓ‚ÂÚ˚ 91

на других компьютерах в зале. Надеем- age. Практически во всех новых дис- dd — теперь их аргументы поменялись ся, вы понимаете, что такая операция трибутивах он уже откомпилирован. местами): пройдет корректно, если у всех ком- # modprobe usb_storage # dd if=/foo/image.bin of=/dev/hda1 пьютеров будет одинаковая конфигу- # mount /dev/sda1 /mnt/image Сейчас нам нужно изменить корне- рация. В случае с интернет-залом Первая команда загружает модуль (если вую файловую систему, чтобы попасть обычно так оно и есть. Конечно, мож- он еще не загружен), а вторая монтирует «внутрь» развернутого образа: но развернуть образ и на компьютере, устройство /dev/sda1 (это и есть внеш- # mkdir /install конфигурация которого отличается от ний винчестер) к каталогу /mnt/image. # mount /dev/hda1 /install исходного, но потом он может потре- Все, что осталось сделать, — это смонти- # chroot /install /bin/bash бовать дополнительной настройки — ровать корневую файловую систему в Первая команда создает каталог install, вплоть до перекомпиляции ядра. А на режиме «Только чтение» и создать образ: вторая монтирует «подопытный» все это уйдет намного больше време- # sync раздел к этому каталогу, а третья изме- ни, чем на установку системы с нуля, # mount -o remount,ro / няет корневую файловую систему. которая на современных компьютерах Создаем образ /mnt/image/image.bin Теперь корнем стал каталог install, а в занимает не более получаса. раздела /dev/hda1: качестве командной оболочки исполь- Не подумайте, что клонирование по- # dd if=/dev/hda1 зуется директория /bin/bash. Все, что лезно только тогда, когда у вас много of=/mnt/image/image.bin нам осталось сделать, — это перезапи- одинаковых компьютеров. Его целесо- Подробно описывать утилиту dd мы не сать загрузчик. Если вы используете образно использовать, даже если у вас станем — это очень хорошо сделано в LILO, введите следующую команду: всего один компьютер. Например, вы справочной системе. Скажем только, # lilo можете сделать образ домашней систе- что кроме dd есть еще и утилита dd_res- А если GRUB — то такую: мы. Если что-то вдруг слетит, вы легко cue, которая при клонировании пропу- # grub-install /dev/hda и быстро восстановите исходное со- скает плохие секторы. Теперь перезагрузите компьютер (ко- стояние системы простым развертыва- Теперь рассмотрим, каким образом манда reboot) — ваша система успешно нием образа. Или если у вас что-то можно восстановить систему. Для это- клонирована/восстановлена! случилось с сервером, можно очень го вам понадобится загрузочный диск быстро «понять» его — ведь на развер- Linux. Подойдет первый диск любого ĉÏËÌËÒÚËÓ‚‡ÌË тывание образа нужно гораздо меньше дистрибутива (при условии, что он за- времени, чем на установку и настрой- грузочный) — Mandrake, Red Hat; Простое резервное ку системы. Время простоя в этом слу- можно также использовать Knoppix копирование по сети чае будет минимальным. CD или Gentoo LiveCD. Предположим, что вы — сетевой админи- Итак, приступим непосредственно к Если вы используете не LiveCD, а про- стратор. В ваши обязанности входит так- клонированию. Перезагрузитесь в од- стой загрузочный диск, для перехода в же и резервное копирование пользова- нопользовательском режиме. Для это- консоль нажмите «Ctrl+Alt+F2». Теперь тельских данных, то есть каталогов /home го нужно использовать параметр single подмонтируем внешний винчестер: с каждого компьютера сети. Подходить к ядра Linux. Введите команду mount, # mkdir /image каждому компьютеру — не хочется, по- чтобы узнать, какой раздел содержит # modprobe usb_storage этому лучше автоматизировать процесс. корневую файловую систему: # mount /dev/sda1 /image Скопировать каталог /home/den, распо- /dev/hda1 on / type ext3 (rw,noatime) Выше приведенные команды (при усло- ложенный на компьютере denis, можно с none on /proc type proc (rw) вии, что второй жесткий диск подключен помощью этой команды: none on /sys type sysfs (rw) как Primary Slave) будут выглядеть так: scp -r backup-den denis:/home/den Корневая файловая система расположе- # mkdir /image Параметр -r означает, что будут копиро- на в разделе /dev/hda1. Создадим каталог # mount /dev/hdb1 /image ваться также и подкаталоги удаленного /mnt/image — он нам скоро понадобится: Теперь вам нужно создать разделы на каталога. Часть команды backup-den — # mkdir /mnt/image новом винчестере. Это можно сделать с это имя каталога, куда будет записана К этому каталогу нужно подмонтиро- помощью утилиты fdisk или программы резервная копия; Denis — имя компью- вать носитель, на который будет запи- установки — как вам удобнее. Если же тера (можно использовать IP-адрес, на- сываться образ. Понятно, что в дирек- вы восстанавливаете систему после пример, 192.168.1.5); /home/den — это торию /dev/hda1 записать образ вы не сбоя, ничего создавать не нужно — все удаленный каталог. сможете, поскольку образ именно это- уже есть. Не забудьте только создать Что же за команда scp? Она расшифровы- го раздела и собираетесь сейчас делать. раздел подкачки (тип раздела /dev/hda2 вается secure copy. Для ее работы нужно, Носителем может быть другой жесткий должен быть Linux swap): чтобы на компьютере Denis был запущен диск. Мы же будем использовать внеш- # mkswap /dev/hda2 демон sshd. В свою очередь, sshd спросит ний USB-винчестер. Для его подклю- Далее развернем образ (обратите вни- вас о пароле и имени пользователя — и вы чения нужно загрузить модуль usb_stor- мание на параметры if и of программы должны ответить на этот вопрос.

2/2005 LINUX| CHIP 92 practice ÓÚ‚ÂÚ˚ ̇ ‚ÓÔÓÒ˚

í˛ÌËÌ„ # echo "0" > /proc/sys/net/ipv4/tcp_sack тод оптимален для сервера баз данных, но # echo "0" > не для пользовательского компьютера. Па- Повышаем производитель- /proc/sys/net/ipv4/tcp_timestamps раметр ядра — elevator = deadline. ность системы Если результат вас не устроит, значение У каждого алгоритма есть преимущества и Для повышения производительности параметров можно вернуть («1»). недостатки. Но только два алгоритма под- системы вам не понадобится переком- А теперь приступим к самому важному. ходят для обычного домашнего компьюте- пилировать ядро. Данный совет рассчи- У вас есть отличный шанс существенно ра (рабочей станции) — второй и третий. тан только на версию ядра 2.6. повысить производительность системы. В Интернете вы можете найти данные о Оптимизацию производительности нач- Каждой программе, работающей под том, что для настольного компьютера бо- нем с установки оптимальных для нас па- Linux, время от времени необходим до- лее подходит второй алгоритм. Решать вам раметров виртуальной памяти. ступ к диску. Ядро Linux определяет, ког- — все познается в сравнении, тем более, В псевдофайле /proc/sys/vm/swappiness да именно программа получит доступ к что вы ничем не рискуете. Для применения содержится коэффициент подкачки. Что диску. Часть ядра, отвечающая за это, на- нового алгоритма достаточно указать опре- это такое? Предположим, что вы рабо- зывается планировщиком ввода/вывода. деленный параметр ядра и немного пора- таете с несколькими (или даже одним) Есть четыре алгоритма его работы. ботать с системой — если не понравится, довольно громоздкими приложениями и 3 Режим по умолчанию (noop) — вряд ли всегда можно попробовать другой вариант. нечасто переключаетесь между ними. он подойдет для обычного пользователя, Вам не нужно перекомпилировать ядро — Возможно, вы дизайнер — с утра вы за- несмотря на то, что используется по умол- необходимо просто пару раз перезагрузить пускаете GIMP и не выходите из него чанию. Рассматривать его мы не будем. компьютер. Если вы подберете нужный ал- до самого вечера. Также утром вы запус- 3 Упреждающее планирование (Anti-cipa- горитм, тогда вам понадобится перезапи- каете xmms — как работать без музыки? tory Scheduling) — при чтении программой сать загрузчик (в случае с LILO). Изредка, скажем раз пять-семь за день, данных с диска ядро пытается предугадать, Для выбора нужного режима перезагрузи- вам нужно переключаться между GIMP какие данные программа будет читать при те компьютер и при запуске ядра Linux и xmms, чтобы выбрать новый каталог следующей операции. Кроме всего проче- передайте ему один из указанных выше или новую песню. го эффективность этого алгоритма сильно параметров. Например, для выбора уп- Если вы установите большое значение ко- зависит от логики программы. Параметр реждающего планирования нужно пере- эффициента подкачки, например 90 или ядра — elevator = as. дать ядру параметр elevator = as: даже 100 (максимальное), то переключение 3 «Справедливая» очередь (Complete linux elevator=as между этими приложениями будет проис- Fairness Queuing) — равные права для всех Предположим, что вам больше всего по- ходить довольно медленно, но зато произ- программ. Ядро равномерно планирует нравился именно этот параметр. Теперь водительность основного приложения (то операции ввода/вывода для каждого при- его нужно «утвердить» в файле конфигу- есть GIMP) заметно улучшится. ложения, здесь нет каких-либо программ, рации загрузчика. Если вы используете Если вы целый день работаете с неболь- которые могут монополизировать доступ LILO, откройте файл /etc/lilo.conf и най- шими программками и часто переключа- к диску. Если несколько программ одно- дите в нем строку: етесь между ними, вам лучше установить временно запросят доступ к диску, все они append = "<параметры ядра>" коэффициент в районе 20 или 30. получат ответ. Данный метод во многих Добавьте в эту строку параметр linux ele- Поэкспериментируйте с различными пара- случаях позволяет повысить производи- vator = as: метрами и выберите оптимальный для се- тельность системы, а в некоторых, наобо- append = "elevator = as (и другие бя. Вывести значение файла /proc/sys/vm/ рот, снижает общую производительность параметры)" swappiness можно с помощью команды: — все зависит от конкретной ситуации. Например, файл может выглядеть так: # cat /proc/sys/vm/swappiness Параметр ядра — elevator = cfq. image = /boot/vmlinuz-2.6.9 Значение по умолчанию — 70. Возможно, 3 Deadline-планирование, или планирова- label = Linux вам больше подойдет именно такое. ние крайних сроков (Deadline Queuing) — root = /dev/hda1 Установить значение (в данном случае 20) все приложения, запросившие доступ к append = "elevator = as video = можно с помощью команды: диску, ставятся в очередь. Из очереди из- vesafb:ywrap,mtrr,1024x768-16@75" # echo "20" > /proc/sys/vm/swappiness влекается одна программа, которая и по- Сохраните файл и перезапишите загруз- Все действия должны осуществляться лучает практически монопольный доступ чик командой lilo. только с правами суперпользователя (root). к диску. Пока эта программа работает, все Если у вас загрузчик GRUB, перезапись Теперь займемся повышением произво- остальные ожидают очереди. По истече- не обязательна. Нужно только отредакти- дительности сети. Если у вас обычный нии определенного времени планировщик ровать файл /boot/grub/grub.conf: домашний компьютер, подключенный к переводит эту программу в состояние ожи- title My Default Linux Интернету по *DSL или Ethernet, имеет дания и переключается на другую — следу- root (hd1,0) смысл попробовать выключить некото- ющую по очереди. Теперь вторая програм- kernel /boot/vmlinuz-2.6.9 ro root = рые параметры, это можно сделать сле- ма получает безраздельный доступ к диску. /dev/hda1 elevator = as дующими командами: Потом третья, четвертая и т. д. Данный ме- ...

CHIP| LINUX 2/2005 94 review cÓÙÚ-Ó·ÁÓ

С чего начиналось ваше знакомство с командной оболочкой? Команды, Advanced Bash Scripting Guide опции, аргументы... Сколько это про- должалось? Ровно до тех пор, пока вы печатному объему в 646 листов, пре- Лицензия: GPL не услышали о возможности изба- доставляет исчерпывающие сведения Домашняя страница: виться хотя бы от части этой рутины о скриптах в bash, содержит более www.tldp.org/LDP/abs с помощью скриптов. Как водится, 300 щедро прокомментированных при любом начинании необходима примеров их использования и множе- консультация по работе со сценария- ство таблиц. Кроме того, вы получите ми командной оболочки. Обратитесь и настоящее введение в базовую тех- к Advanced Bash Scripting Guide. Это нику программирования. объемное руководство соответствует Язык интерфейса: английский

iPod-Linux Installer

Обладатели плееров iPod теперь в моно с частотой до 96 кГц, про- могут установить Linux на любимое смотр графических файлов (вклю- устройство. Для этого необходимо чая JPEG, GIF и BMP) в двухбитном подключить iPod к Macintosh через режиме, игры Othello, Pong, Tetris, FireWire, свериться со списком Asteroids и Minesweeper, калькуля- поддерживаемых устройств на тор, календарь... Беспокоитесь за странице iPod Linux Project, ска- оригинальную прошивку? А она чать iPod-Linux Installer, примон- осталась. Выбираете «Меню p тировать устройство, выбрать Проигрывание/пауза» и попадаете «iTunes p Preferences p iPod», в привычный интерфейс iPod. включить использование диска Естественно, не стоит рассматри- и запустить программу установки. вать эту заметку как руководство После перезагрузки iPod при появ- к незамедлительному действию, лении логотипа Apple стоит лишь помните — осторожность никогда удержать кнопку «Назад», и снова не повредит. появится приветствие знакомого Язык интерфейса: английский улыбающегося Tux. Вместе с про- Лицензия: GPL шивкой вы получите целый ряд Домашняя страница: новых возможностей: запись аудио www.ipodlinux.org

мыши за пределы окна автоматиче- gno3dtet ски устанавливается пауза. Игра не рассчитана на поддержку аппаратно- Gnome 3D Tetris — оригинальное ре- го ускорения и написана с помощью шение хорошо известного тетриса, Gtk+, поддержка OpenGL пока толь- где надо укладывать падающие фигу- ко в планах, однако это не мешает ры в трехмерном пространстве. Здесь ей уже сегодня выглядеть вполне до- можно настроить абсолютно все — стойно. Попробуйте — оторваться от от глубины, ширины и длины поля этого мощного логического симуля- до звукового сопровождения событий тора порой очень трудно. игры. Кроме того, есть возможность Язык интерфейса: английский выбора степени сложности по типам Лицензия: GPL фигур. При потере окном приложе- Домашняя страница: ния фокуса от простого перемещения http://gno3dtet.eseb.net

CHIP| LINUX 2/2005 cÓÙÚ-Ó·ÁÓ 95

Запустите Konqueror, введите в строке нужные данные в директорию /data (му- навигации burn:/ и просто скопируйте зыкальные композиции — в Audio CD), KIO_burn нажмите «Burn Disc». Вот и все, что от вас требуется. Программа KIO_burn не ная с 3.3.2, aKode из пакета kdemultime- была задумана специально для Konqueror dia, естественно, понадобятся cdrecord и и фактически совместима с любым при- mkisofs, а также Taglib, libaudiofile и ложением KDE, способным работать с си- DVD+RW-tools. Возможно использование стемой ioslave. Konqueror — самый про- библиотек k3b для определения уст- стой для этого путь, отсюда и особые от- ройств записи CD и DVD. ношения KIO_burn с этим файловым ме- Язык интерфейса: русский неджером. Для успешной установки и ра- Лицензия: GPL боты программы необходимо: конечно, Домашняя страница: KDE — автор рекомендует версии начи- www-users.york.ac.uk/~jrht100/burn

Новый интегрированный пакет KOffice 1.4 воплощает самые современные тех- KOffice1.4 нологические решения, позволяющие эффективно справляться с различными долгожданный OpenSource-конкурент как календарь. KChart оснащен новым, офисными задачами. В первую очередь MS Access, Filemaker и Oracle Forms. существенно усовершенствованным стоит отметить, что теперь пользователь Интересно, что версия Kexi, включен- редактором данных, линейной/лога- имеет пакет приложений, поддержива- ная в состав KOffice, по функциональ- рифмической шкалой, имеет поддерж- ющих новый открытый офисный фор- ности несколько уступает той, которая ку печати и осуществляет экспорт мат OpenDocument. Вопреки самым доступна в отдельном исполнении. в PNG и SVG. KPresenter может отныне смелым утверждениям, команда разра- Графический редактор Krita имеет обрабатывать не только слайды, но и ботчиков решила не торопиться с пол- широкие возможности — от простого мастер-листы. В KWord пересмотрен ным переходом на этот формат — пока редактирования фото до создания ори- фильтр импорта документов Word фильтрам не хватает уверенности в ра- гинальной графики. Это первый пуб- Perfect, а модуль проверки орфогра- боте и функциональности, «родным» личный релиз, с которого начинается фии стал значительно быстрее. Также остается собственный формат KOffice, долгая дорога нового приложения для доступно автозавершение вводимого а полный переход на новый формат художников — по крайней мере, так текста, исполненное в виде всплыва- состоится уже в следующем релизе. обозначили перспективу развития ющей подсказки. В Kivio улучшена Состав KOffice 1.4 претерпел некото- Krita разработчики, и конкуренция The поддержка шаблонов. Не забыли и рые изменения по программному со- GIMP/Photoshop их нисколько не сму- о «косметике» — например, KOffice держанию — в него включены новые щает. Уже сейчас Krita имеет собствен- Workspace имеет новую панель приложения Kexi и Krita. ный набор инструментов, расширяе- значков, кнопку «Закрыть», как в Kexi — интегрированное окружение мую гибкую систему управления цве- Konqueror, а кроме того, поддержи- для создания и управления базами тами, основанную на lcms, читает вает вкладки. данных. Разработка и включение та- большое число известных графических Язык интерфейса: русский кого приложения в состав KOffice мо- форматов, включая файлы GIMP и Лицензия: GPL тивированы отсутствием средств быст- Photoshop, позволяет использовать Домашняя страница: www.koffice.org рой разработки приложений, Rapid палитры, кисти, шаблоны, градиенты Application Development (RAD) для баз GIMP и многое другое. данных, достаточно мощных, недоро- Улучшение нового офисного пакета гих, ведомых открытыми стандартами можно выявить не только по включен- и переносимых на различные про- ным в его состав отдельным приложе- граммные и аппаратные платформы. ниям, положительные изменения кос- На сегодня Kexi полноценно поддер- нулись продукта в целом. Полностью живает SQLite, PostgreSQL и MySQL. переписан фильтр Excel — как след- В будущем наладится поддержка и ствие, импорт файлов Microsoft Excel других систем, включая интерфейс выглядит очень достойно. Кроме того, ODBC. Kexi может рассматриваться как в KSpread теперь есть такой модуль

Сергей Мороз

2/2005 LINUX| CHIP 96 review Ó·ÁÓ ÍÌË„

Основное внимание в книге уделяется настройке сервера на совместимых с Red Linux-ÒÂ‚Â Ò‚ÓËÏË Û͇ÏË Hat дистрибутивах. Однако цель описать какой-то конкретный дистрибутив из- Кроме описания ус- автор уделяет вопросам маршрутизации начально не ставилась. Ведь книга на- тановки самой Linux во и защиты сервера. зывается «Linux-сервер», а не «Сервер второй главе также рассказывается о В четвертой части представлены сетевые Red Hat». Почему именно Red Hat? По- работе с пакетами в Linux. проекты: сервер времени, кластер на ба- тому что большинство популярных на Вторая часть издания повествует о зе PVM, а также описано создание вирту- наших просторах дистрибутивов все- возможностях операционной системы: альной частной сети (VPN) под Linux. таки в большей или меньшей степени яв- рассматриваются файловая система, Информационная безопасность — это ляются производными от Red Hat и пол- работа с учетными записями, а также отдельный вопрос, которому посвящена ностью или частично с ним совместимы. настройка сети — от локальной до DSL- вся пятая часть книги. Здесь повеству- С другой стороны, если описать в книге соединения. Причем в последней гла- ется о IPChains, IPTables, системе LIDS, только Red Hat, она окажется бесполез- ве автор пытается объять необъятное: антивирусной защите сервера и сети, ной для пользователей, у которых уста- здесь представлены не только последние работе с RAID-массивами, создании ре- новлен другой дистрибутив, например версии дистрибутивов, но и описаны зервных копий и дерева chroot. тот же ALT Linux или Mandrake. отличия настройки сети на переходных В оставшихся двух частях вы найдете Первая часть этого издания представ- и самых старых версиях, где вообще нет практические примеры по настройке ляет собой введение в Linux. Первая никаких конфигураторов и все прихо- серверов, а также описание синтаксиса глава — это своеобразный курс молодого дится делать вручную. командной оболочки bash. Без знания бойца. В ней вы найдете информацию Третья часть книги посвящена настрой- bash не обойдется ни один администра- о сетях, протоколе TCP/IP, IP-адресах, ке основных программ-серверов: пакет тор. В этих же частях подробно описана масках и всем том, что просто обязан Samba, DHCP-сервер, программы учета и компиляция ядра. знать каждый администратор. анализа трафика (MRTG и LAN Billing), Таким образом, в представленной книге Вторая глава посвящена установке SSH-сервер, DNS-сервер (BIND), FTP- найдутся материалы, интересные как на- Linux. В ней рассматриваются три ос- сервер (wuftp и ProFTP), веб-сервер чинающим пользователям, так и опыт- новных дистрибутива, которые взяты Apache, SMTP/POP-сервер (Sendmail), ным администраторам. за основу при написании этой книги: сервер новостей INN, прокси-сервер Колисниченко Д. Н. Linux-сервер своими Red Hat 9, Fedora Core 3 и Mandrake 10. SQUID и SOCKS5. Отдельное внимание руками. — 3-е изд. — СПб., 2005

таблицы Gnumeric, издательская система Scribus и прочее. ë‡ÏÓÛ˜ËÚÂθ Linux В следующей части описана работа с мультимедиаданными — от создания картинок до прожига CD. Очень подробно рассказано Еще одна книга Дениса Колисниченко попала в наш о работе с программами GIMP и MainActor. Первая, как вы знаете, обзор не случайно. Если рассмотренное выше изда- является отличным графическим редактором, вполне заменяю- ние больше ориентировано на создание и поддержку щим Photoshop в домашних условиях. А MainActor подходит для Linux на сервере, то этот самоучитель посвящен домашнему ис- любительского видеомонтажа в Linux. Кроме всего прочего в пользованию этой операционной системы. этой части описана настройка ТВ-тюнера под управлением Linux. Как обычно, в самом начале описывается установка системы. Особое внимание в книге уделено настройке сети и подключению В отличие от «Linux-сервера» в «Самоучителе Linux» описывается к Интернету. Ведь что нужно домашнему пользователю? По боль- установка других дистрибутивов — Red Hat Linux, ASP Linux и шому счету, три вещи, не считая игрушек: средство для набора Fedora Core. Последний дистрибутив описан довольно подробно, в и форматирования текстов, программа для воспроизведения му- том числе уделено внимание решению различных проблем, кото- зыки и видео и, конечно же, Интернет. В данной книге вы обя- рые то и дело возникают при его установке, а также описан про- зательно найдете все, что вам нужно для комфортной работы, цесс обновления Red Hat 7/8/9 до FC. Далее от инструкций по уста- в том числе и информацию по настройке сети на разных дистри- новке системы автор переходит непосредственно к описанию осо- бутивах, таких как ALT Linux, а также различные способы под- бенностей работы с файловой системой, KDE, GNOME. ключения к Интернету — через сеть, модем или DSL-соединение. Вторая часть книги посвящена работе с офисными пакетами В заключение можно сказать, что данная книга идеально подой- OpenOffice и KOffice. Причем описание не сводится просто к тра- дет начинающему пользователю и станет хорошим помощником диционному сравнению типа «это — аналог Word, а это — аналог в освоении Linux. Excel». Ознакомившись с материалами этой части, вы действи- Колисниченко Д. Н. Самоучитель Linux. Установка, настройка, тельно научитесь работать с OpenOffice и KOffice. Кроме этого использование. — 3-е изд., переработанное и дополненное. — рассматриваются и другие офисные программы — электронные СПб., 2004. — 656 с.

CHIP| LINUX 2/2005 Ó·ÁÓ ÍÌË„ 97

Это скорее идеологическая и занимательная книга, чем учебник. Одно название чего стоит: шутка ли, рассказы- éÔÂ‡ˆËÓÌ̇fl ÒËÒÚÂχ Unix вать обо всех Unix-подобных системах скопом. В книге много внимания уделяется придуманной автором кон- говоря уже о коварных ловушках. Даже когда повество- цепции различения «проективных» (основанных на вание само идет к тому, чтобы упомянуть подводные граб- предварительной настройке человеком проектах будущей сис- ли, автор останавливается, откашливается и продолжает темы) и «процедурных» (основанных на выполнении челове- уже с другого места. Даже команда [, в описании автора ком требуемых процедур в заранее заданной системе) методов. (стр. 168) выглядит как образец логичности и беспроблемности Идея, что Unix — система «проективная», проходит красной (но мы-то знаем, что худшее уродство надо еще поискать). нитью через все разделы книги. Автор рассматривает сложные Итого, в книге описывается какая-то странная система, отлича- и проблемные аспекты Unix-подобных систем и показывает, ющаяся стройностью, логичностью и непротиворечивостью, как их можно решить с помощью «проективного» подхода. внимательно спроектированная и аккуратно реализованная. Итак, читать данную книгу можно даже не имея под рукой Словом, описан какой-то анти-юникс. Реальный же юникс спро- компьютера: литературный стиль и жизненные примеры спо- ектирован не был — он мутировал из запускалки Space Travel собствуют хорошему усвоению. Другой вариант — читать по до современного своего состояния в очень жестких и недруже- чуть-чуть, раз в неделю, посвящая остальное время практиче- любных условиях, в которых речь шла не о красоте и идеологи- ской работе с Unix-системой и изучению документации. ческой стройности, а банальном выживании. Соответственно, Цитата из LJ Даниила Борисовича Гинсбурга получился покрытый шрамами и редкой шерстью пятилапое су- (www.livejournal.com/users/dbg/20539.html): щество с двумя сердцами и тремя желудками, очень живучее, «Автор очень старательно и аккуратно обходит любой намек на но совершенно безалаберное. За это мы его и любим». возможное наличие в системе нелогичностей и странностей, не Курячий Г.В. Операционная система UNIX. Курс лекций. — М., 2004

Книга «Операционная система Linux» написана в жанре «Linux для самых ма- éÔÂ‡ˆËÓÌ̇fl ÒËÒÚÂχ Linux леньких». Слово «маленькие» здесь не стоит понимать как «идиоты», «домохо- свободно ориентироваться ка обзорные, они описывают современ- зяйки» или «лилипуты». Авторы, напро- во вселенной Linux. ное состояние дел с программным обес- тив, считают, что «ребенок — это мало Авторы не стали использо- печением (это чуть ли не самая большая информированный взрослый», поэтому вать популярный нынче стиль «Синхро- лекция в книге), бегло рассказывают о эта книга так похожа на учебник, не фазотрон для чайников» и подошли к серверных возможностях Linux, истории хватает только задач и упражнений. изучению Linux, традиционно ориенти- ее создания и аспектах лицензирования. Впрочем, внутри самого текста имеется руясь на Unix. Изложение начинается с Книга, конечно, адресована новичкам. изрядное число примеров, которые, описания терминального сеанса, ко- Она явно рассчитана на использование кстати, даются от лица двух вымышлен- мандной строки, работы с процессами и в лекционном режиме (два часа в неде- ных персонажей — Мефодия Кашина правами доступа. От обработки текстов лю), так как количество информации в (новичка) и Льва Гуревича (опытного и настройки собственного окружения каждой главе довольно велико и требует линуксоида). Предполагается, что за пользователя авторы переходят к наст- непременного закрепления материала время работы с учебником (курс рассчи- ройке системы в целом, работе с пакета- посредством практических занятий. тан на полгода, а если «расходовать эко- ми, сетью, устройствами графической Курячий Г. В., Маслинский К. А. Операци- номно», то и на год) Мефодий станет подсистемы. Последние лекции учебни- онная система Linux. — М.: 2005

тор проблемного семинара «UNИX». С 2002 гий: свободное программное обеспечение, é· ‡‚ÚÓ‡ı года — сотрудник компании ALT Linux, где за- языки разметки и структура документа, авто- Курячий Георгий Владимирович нимает попеременно различные должности. матизация издательского процесса. В 1992 году закончил факультет вычислитель- ной математики и кибернетики (ВМиК) Маслинский Кирилл Александрович Колисниченко Денис Николаевич Московского государственного университета. В 2002 году закончил филологический Проживает в Кировограде (Украина), учится Работал в компьютерной скорой помощи, факультет Санкт-Петербургского государст- на кафедре информатики физико-математи- преподавал информатику в вечерней матема- венного университета. Работал в области из- ческого факультета Кировоградского госу- тической школе при ВМиК МГУ. В настоя- дательского дела. На данный момент занима- дарственного педагогического университета. щее время — консультант факультета по ется подготовкой и выпуском технической В настоящее время работает программистом вопросам системного администрирования, документации в компании ALT Linux. Инте- и системным администратором на частном читает спецкурс по Unix-системам, организа- ресы в области информационных техноло- предприятии «Ник-МТД».

2/2005 LINUX| CHIP