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

Так видит журнал читатель, который забыл оформить подписку:

СЬ

ЛИ
ЛИ
ТЯ Е

Ж ПИ
ЗА ДНИ
НУ

РА КУ
ЛЫ ГО

ТИ РАС
КУ ВО

О
НИ НО

ТР
№11(36) ноябрь 2005

С
БЫ
подписной индекс 20780
КА

www.samag.ru

Поговорим через Интернет?

И
ЬГ
ЬД О
РА СКА
ТЕ
К

ИС НН
ЕН
УС

БО
НА ТПУ

ИЛ ДА
ТП

Расширяем права доступа

НЧ ЖИ
ВО

РА Е О

КО НЕО
АВ СЛ
Л

в Linux с помощью ACL


Л
ХА

ПО
УЕ

ЗА
Автоматизируем установку
драйверов в Windows
Так видит журнал читатель, оформивший подписку:
Ещё один способ
восстановить MBR
Тонкий клиент –
шаг к мэйнфреймам?
Разрабатываем
документацию в NPJ:
эффективно и удобно!
Используем возможности ftpd
Расширения РHP:
ПОДПИШИТЕСЬ И ЧИТАЙТЕ! пять шагов к написанию
№11(36) ноябрь 2005

Роспечать – 81655 Как сисадмины проводят


Пресса России – 87836 свободное время
Интер-почта – тел. (095) 500-00-60
оглавление
2 ТЕНДЕНЦИИ БЕЗОПАСНОСТЬ
ИНТЕРВЬЮ 60 Windows Script Host: проводим аудит
безопасности сети
5 MiniMo – минибраузер из семейства Чтобы не тратить массу времени на поиск в логах ин-
Mozilla формации о попытках несанкционированного доступа
Интервью с главой проекта MiniMo – Дугом Тернером. к ресурсам сети, используем сценарии WSH.
Антон Борисов Андрей Бирюков
a.borisov@tesv.tmb.ru mex_inet@rambler.ru

АДМИНИСТРИРОВАНИЕ 66 Проверяем защищенность сети и сервисов


сканером DragonSoft Secure Scanner
8 Поговорим через Интернет? Обзор сканера безопасности. Сергей Яремчук
Анализ наиболее популярных сетей интернет-теле- grinder@ua.fm
фонии. Михаил Платов
platov@cs.vsu.ru WEB-ПРОГРАММИРОВАНИЕ
16 FreeBSD tips: какими возможностями 68 Расширения РHP: пять шагов к написанию
обладает ftpd Как быстро разработать надежное расширение PHP.
Ftpd вполне пригоден для решения большинства типо- Александр Календарев
вых задач по обмену файлами. Сергей Супрунов akalend@mail.ru
amsand@rambler.ru
ПРОГРАММИРОВАНИЕ
20 Автоматизируем установку драйверов
в Windows 74 Редактор для создания скриптов:
С проблемой специальных драйверов мы сталкиваемся, Primal Script 4.0
когда оборудование выходит за стандартную архитекту- Рассматриваем недокументированные возможности
ру простеньких компьютеров. Алексей Барабанов редактора. Иван Коробко
alekseybb@mail.ru ikorobko@prosv.ru

26 GRUB на CD, ИТОГИ IT-ТУРНИРА


или Ещё один способ восстановить MBR
Восстанавливаем MBR минимальными средствами. 78 Сетевой проект для небольшой компании
Алексей Мичурин Сетевая инфраструктура предприятия, разработанная
alexey@office-a.mtu-net.ru командой-победительницей конкурса «Кубок сетевых
проектов Microsoft». Земскова Ольга
32 Тонкий клиент – шаг к мэйнфреймам? zo13@rol.ru
Сегодня снова экономически выгодно использовать Ширнин Олег
мэйнфреймы с подключением легких терминалов – oshirnin@yandex.ru
тонких клиентов. Антон Борисов Цюрюпа Егор
a.borisov@tesv.tmb.ru egts@land.ru

40 Разрабатываем документацию ХОББИ


с помощью NPJ: эффективно и удобно!
Обзор системы коллективной работы Net Project 82 Десять красок неба
Journal. Алексей Коршунов Чему посвящают свое свободное от работы время сис-
akeeper@akeeper.ru темные администраторы? Наталья Алексютина
info1@samag.ru
46 Развертываем сервер Subversion
на платформе FreeBSD РЕТРОСПЕКТИВА
Современная замена устаревшей системы CVS.
Андрей Шетухин 84 Alpha, или история одной архитектуры
shetuhin@corp.mail.ru Павел Болотов
Ольга Никулина walter@alasir.com
nikulina@yandex-team.ru
КНИЖНАЯ ПОЛКА
54 Расширяем права доступа в Linux
с помощью ACL 92 Обзор книжных новинок
ACL позволяет использовать более сложные модели Александр Байрак
доступа, чем традиционная реализация, применяемая x01mer@pisem.net
в Unix-системах. Сергей Яремчук
grinder@ua.fm 52, 53, 91 BUGTRAQ
Летим скорее
Лучше каждому Информация
Оформили на почту!
получать отдельный о подписке
подписку! экземпляр журнала на 94 стр.
Принес номер
Мужики, Почему я до сих пор на работу, И у меня А можно ещё Как же я без
Я забыл
где журнал этого не сделал?! «увели» почитать такая же беда успеть? любимого журнала?
подписаться!
взяли?

№11, ноябрь 2005 1


тенденции
Microsoft укрепляет ставленной информации; повышением ках организации портала «Сеть твор-
позиции в индустрии квалификации преподавателей и со- ческих учителей» (www.it-n.ru), ор-
IT-образования трудников сферы образования зани- ганизация всевозможных конкурсов
28 октября 2005 г. компания Microsoft мается Национальный фонд подготов- (см. http://www.it-university.ru/itproject)
провела первую ежегодную конфе- ки кадров, имеющей отдельное много- и многое другое. Спецификой почти
ренцию «Образование в XXI веке» миллионное финансирование. всех образовательных проектов явля-
для высшего руководства российс- ется исключительная направленность
ких вузов и органов управления об- Microsoft в образовании на технологии и продукты Microsoft.
разованием. Стратегическими пар- Ольга Дергунова представила по- Исключением из общей массы яв-
тнерами конференции выступили зицию и планы Microsoft на индуст- ляется совместный проект Microsoft
компании Hewlett-Packard и Intel. рию образования в России. 28 октяб- с факультетом «Бизнес-информати-
В конференции приняло участие ря 2004 года компания представи- ки» ГУ-ВШЭ, который направлен на
более 300 руководителей высших ла первый русифицированный про- создание нового подхода подготовки
учебных заведений, представителей дукт из линейки программ для обра- IT-специалистов в сфере высшего об-
региональных и федеральных органов зования – MS ClassServer 3.0. Сегодня, разования. Разработанная специаль-
управления образованием. Во время спустя всего один год, на отечествен- ность «Бизнес-информатика» имеет
пленарного заседания и пяти темати- ном рынке представлена целая серия преимущества с точки зрения препо-
ческих секций прозвучало более 30 до- программных средств и технологий, давания экономических дисциплин, но
кладов, посвященных вопросам ис- а президент российского отделения с точки зрения обучения IT она эклек-
пользования информационных техно- говорит уже о национальных приори- тично дублирует содержание сущест-
логий для поддержки образовательно- тетах в образовании глазами Microsoft. вующих инженерных специальностей.
го процесса, автоматизации админист- В рамках конференции был презенто- Это не позволяет рассматривать ее
ративных функций учебных заведений ван новый продукт Learning Essentials как серьезную альтернативу сущест-
и организации дистанционного обуче- для Microsoft Office, в состав которого вующим специальностям, по которым
ния на предприятиях. Особый интерес вошли ориентированные на обучение выпускаются тысячи лучших IT-кадров
вызвали доклады начальника управле- инструменты для учителей и учащихся. в десятках технических вузов.
ния Федерального агентства по обра- Следует отметить, что данный продукт
зованию РФ Алексея Карпова, прези- демонстрирует важнейшую тенденцию Опыт использования IT
дента Microsoft в России и СНГ Ольги развития офисных средств и их кон- в зарубежных вузах
Дергуновой, директора по IT Универси- вергенции, где функции различных Пол Хопкинс в своем докладе поде-
тета Ньюкастла Пола Хопкинса. приложений объединяются в единую лился опытом использования IT в од-
информационную панель с настраи- ном из ведущих вузов Великобрита-
Итоги пятилетки ваемыми меню и другими активными нии. В качестве ключевой концепции
информатизации образования элементами из разных программ. организации обучения была выделена
Алексей Карпов подвел итоги пяти- Также были представлены продук- задача перехода к новой, производс-
летки информатизации образования ты Learning Network Manager, Microsoft твенной парадигме учебного заведе-
по федеральной целевой программе Class Server 4.0, русская версия об- ния как провайдера образовательных
«Развитие единой образовательной разовательного портала Microsoft и научно-исследовательских услуг.
информационной среды 2001-2005». Learning Gateway (www.mlg-edu.ru) При таком подходе (близким по сво-
На средства бюджета, объемом более и пример организации информацион- им идеям к ITIL и CobiT) предоставле-
8.5 млрд. рублей, удалось: подключить ного портала вуза на базе технологий ние и обеспечение IT может также рас-
к Интернету или ведомственным сетям SharePoint Portal Server 2003. сматриваться как услуга, позволяю-
более 10% школ; увеличить количест- Помимо программных продуктов щая увеличить эффективность обуче-
во персональных компьютеров в шко- Microsoft предлагает целый ряд обра- ния и проведения научных работ. Пол
лах почти в 6 раз, достигнув цифры 80 зовательных проектов, направленных отметил, что, несмотря на необходи-
ПК на одного ученика; разработать 17 на поддержку преподавателей и сту- мость расчета себестоимости и оценки
образовательных порталов и повысить дентов: распространение лучших ме- возврата вложенных средств в обуче-
квалификацию более 50 тыс. препода- тодик преподавания IT-дисциплин ние, в настоящее время не существует
вателей. Для оценки эффективности (MSDN AA Curricula Repository), повы- полноценных пригодных к практичес-
расходования средств на образование шение знаний и навыков преподавате- кому использованию методик.
можно привести следующие факты: лей в области IT (Microsoft IT Academy), Общий объем финансирования,
в Москве и Санкт-Петербурге, где к Ин- тренинги в учебных центрах компаний- выделяемый университетом на IT, со-
тернету подключено более 80% домов, партнеров, междисциплинарный под- ставляет около 2% от общего бюдже-
проживает более 10% населения стра- ход к использованию IT в образовании та (около 10 миллионов $). Общий же
ны; согласно статистике только за 2003 на примере серии материалов для учи- бюджет вуза численностью 17000 сту-
год количество пользователей – свы- телей-предметников «Использование дентов соизмерим с объемом финан-
ше 13 миллионов; в этом году приня- Microsoft Office на уроках», программа сирования упомянутой выше пяти-
то решение о слиянии всех 17 порта- «Партнерство в образовании», подде- летней программы Минобрнауки РФ.
лов в один из-за малых объемов пред- ржка лучших преподавателей в рам- Схема выбора поставщиков IT-реше-

2
тенденции
ний для использования в вузе следую- Более подробную информацию ли об успешном завершении нагру-
щая: для основных, ядерных приложе- о докладах на конференции и програм- зочного тестирования продукта «Бит-
ний выбираются крупные поставщики мных продуктах Microsoft можно най- рикс: Управление сайтом 4.0». Этот
(Microsoft, SAP, Oracle); для ниши раз- ти по адресу http://www.microsoft.com/ программный продукт предназна-
вивающегося и специализированного Rus/Education. чен для создания, управления и раз-
программного обеспечения (например, вития веб-проектов и ориентирован
системы автоматизации составле- Андрей Филиппович на сегмент малого и среднего бизне-
ния расписания) выбираются лучшие са (SMB).
по результатам анализа; для исследо- Oracle выпускает В качестве тестовой системы был
вательских или маленьких локальных бесплатную редакцию выбран сервер начального уровня
задач выполняются собственные раз- СУБД «Kraftway GEG Express 100» с опера-
работки; для использования студента- Тридцать первого октября 2005 го- ционной системой Red Hat Enterprise
ми выбираются приложения, ориенти- да корпорация Oracle анонсировала Linux AC Release 3, а в качестве ба-
рованные на технологию тонкого кли- выход бета-версии новой редакции зы данных использовалась Oracle 10g
ента; при разработке сервисно-ори- Oracle Database 10g Express Edition Release 2 (Standard Edition One).
ентированной архитектуры (SOA) ис- (Oracle Database XE). Данная редак- Для тестирования были выбраны
пользуются открытые стандарты на ция СУБД распространяется бес- Oracle-версии продукта «Битрикс: Уп-
веб-сервисы. платно, и независимые разработчи- равление сайтом – «Старт» (включа-
При организации IT-инфраструкту- ки программного обеспечения мо- ющая в себя минимальный набор мо-
ры предпочтение отдается беспровод- гут абсолютно свободно распростра- дулей для управления корпоративны-
ной связи. Для удобства администри- нять и внедрять Oracle Database XE ми сайтами) и «Бизнес» (полнофунк-
рования в 90% случаев используется в составе своих решений. Новая ре- циональная версия продукта, предна-
унифицированное программное обес- дакция СУБД основывается на коде значенная для создания и управления
печение от Microsoft (Active Directory, Oracle Database 10g Release 2 и пол- корпоративными порталами, интернет-
XP, Exchange, SharePoint и др.). В ос- ностью совместима с семейством ком- магазинами, сайтами СМИ и другими
тавшихся 10% – используются техноло- мерческих СУБД Oracle Database 10g. интернет-проектами).
гии Apple и UNIX для изучения полигра- Oracle Database XE предоставляет В результате суточного тестирова-
фических систем и проведения некото- разработчикам тот же интерфейс SQL ния данных продуктов были получены
рых научных исследований. К важному и PL/SQL, что доступен и в старших ре- следующие результаты.
преимуществу такой организации до- дакциях, плюс интерфейс к ряду язы- Версия «Старт», включающая 4 мо-
кладчик также отнес удобство органи- ков программирования, включая Java, дуля, «выдержала» 1 117 956 уни-
зации вычислительных кластеров. .NET и PHP. кальных пользователей (3 879 336
Oracle Database XE доступна для 32- хитов), а состоящая из 18 модулей
Курьезы Microsoft разрядных платформ Linux и Windows, версия «Бизнес» – 465 160 уни-
В целом конференция вызвала боль- и на нее накладываются следующие кальных пользователей (1 614 103
шой интерес среди специалистов и бы- ограничения: хита).
ла проведена на высоком техническом Используется только один ЦП. Среднее время ожидания д ля
уровне, однако без курьезов не обош- Используется не более 1 Гб ОЗУ. «Старта» и «Бизнеса» составило
лось. Во время демонстрации реше- Допускается работа только одного 0,265 и 1,107 секунд соответственно.
ний Microsoft сначала не удалось вый- экземпляра БД. Количество же ответов, время ожи-
ти в Интернет для получения доступа Не более 4 Гб пользовательских дания которых от 3 до 7 секунд, со-
к Microsoft Learning Gateway, а затем данных на жестком диске. ставило 0,04% и 0,55% от общего
при попытке запуска системы Learning числа запросов.
Network Manager после перезагрузки Для зарегистрировавшихся на сай-
операционной системы всплыло со- те корпорация Oracle предоставляет Добиться столь высоких показа-
общение о необходимости активации бесплатный доступ к форуму, который телей удалось благодаря 2-уровне-
используемой копии Windows. Это со- сопровождают специалисты компа- вой конфигурации сервера («front-
бытие, произошедшее после слов Оль- нии. Скачать Oracle Database XE мож- end» (прокси-сервер nginx 0.1.44) +
ги Дергуновой о необходимости про- но по ссылке: www.oracle.com/database/ «back end» (apache 1.3.33 + php 4.3.11 +
ведения воспитательной работы сре- xe.html. e-accelerator 0.9.3)) и использованию
ди молодежи по использованию ли- в качестве базы данных Oracle 10g
цензионного программного обеспе- Андрей Маркелов Release 2. В то же время версия про-
чения, с одной стороны, вызвало бур- граммного продукта, использующая
ную радость большей части посетите- Завершено тестирование в качестве базы данных MySQL, проде-
лей конференции, а с другой – позво- нового программного монстрировала гораздо более скром-
лило осознать значимость того факта, продукта по созданию ные результаты – «всего» 30 000 уни-
что в России количество пиратских ко- веб-ресурсов кальных пользователей.
пий программного обеспечения снизи- Первого ноября 2005 года компании
лось с 99% до 87%. «Битрикс», «QSOFT» и ФОРС объяви- Николай Никульшин

№11, ноябрь 2005 3


тенденции
Unisys ставит на «зрелость» Open Source ставления для популяризации Linux. Финансовую подде-
Компания Unisys сообщила о том, что рассматривает про- ржку проекту оказали компании IBM, Novell, Philips, Red Hat
граммное обеспечение с открытым кодом как «ключевую и Sony.
область» для роста, и объявила о намерении продвиже- «Открытая совместная работа критична для создания
ния ОС Linux в крупные предприятия. По словам Питера инноваций, обеспечивающих глобальный экономический
Блэкмора, исполнительного вице-президента и президен- рост. Препятствия коллаборации для операционной сис-
та по мировым продажам в Unisys, Open Source уже являет- темы Linux подвергает серьезной опасности возможные
ся «созревшей технологией», готовой предоставить разум- инновации. Для поддержания развития инноваций в про-
ные и экономичные решения для многих заказчиков. Unisys граммном обеспечении для Linux должна быть установле-
уже занимается внедрением проектов с открытым кодом на новая модель управления интеллектуальной собствен-
в IT-структуры крупных компаний: «Сейчас Linux действи- ностью – вне зависимости от размера и типа бизнеса или
тельно пользуется спросом. Мы работаем с одним клиен- организации», – пояснил смысл создания OIN ее исполни-
том (европейским туристическим предприятием), для ко- тельный директор Джерри Розенталь.
торого обратились к услугам Open Source в масштабной
серверной среде. Мы можем доказать надежность и го- Novell меняет политику по GNOME и KDE
товность данного решения, а оно сохранит им 30 процен- для SUSE Linux
тов итоговых затрат». В начале ноября компания Novell объявила о смене стан-
дартной графической оболочки для SUSE Linux (и Novell
OpenSync и KDE готовят Linux Desktop) с KDE на GNOME, объявив о том, что от-
ПО синхронизации телефонов ныне поддержкой пакетов KDE будет заниматься проект
Энтузиасты из проектов OpenSync и KDE занимаются раз- OpenSUSE. Однако вскоре планы были несколько измене-
работкой библиотеки, с помощью которой можно будет ны: из-за широкого резонанса, что вызвало известие в со-
синхронизировать мобильный телефон, КПК, работающий обществе, и большого числа отзывов своих пользователей
под управлением Windows CE или Palm, со своим настоль- Novell уступила и сообщила, что в дальнейшем будет уде-
ным ПК под управлением ОС Linux. Код старых программ лять равное внимание поддержке KDE и GNOME в своих
синхронизации, среди которых пакеты KitchenSync, KSync, Linux-дистрибутивах.
Kandy, libksync, уже удален из KDE (все они будут отсутс-
твовать в следующем major-релизе KDE – 4.0). Появление Составил Дмитрий Шурупов
первой стабильной версии библиотеки OpenSync ожидает- по материалам www.nixp.ru
ся к началу 2006 года. Тогда же должна выйти и реализа-
ция для KDE. В ней будет представлена возможность син-
хронизировать данные устройств с такими программами,
как Kontact, Evolution, Palm Pilots, SyncML.

Lips займется стандартизацией Linux


в телефонах
PalmSource, Orange и другие компании объединили свои
усилия в стандартизации свободной операционной системы
Linux в среде мобильных телефонов. Главная задача нового
сформированного союза Linux Phone Standard (Lips) Forum –
унифицирование интерфейса ОС Linux для возможности ее
установки на различные модели телефонов. «Существует
потребность в альтернативе Microsoft и Symbian, – проком-
ментировал Джон Острем, член совета Lips, основатель
China Mobilesoft и научный лидер в PalmSource. – Мы заин-
тересованы в борьбе с разнородностью и в предоставлении
стандартной Linux-платформы, которая позволит быстрее
создавать Linux-телефоны по меньшей стоимости и с ог-
ромной интероперабельностью». Первая версия для про-
стейших телефонов, которая позволит совершать звонки
и запускать элементарные приложения, должна появить-
ся в первом квартале 2006 года, а сертифицировать плат-
форму планируется в 2007-м.

Новый альянс предоставит патенты


ОС Linux
10 ноября анонсировано формирование Open Invention
Network (OIN) – новой компании, которая займется покуп-
кой патентов с целью их дальнейшего бесплатного предо-

4
интервью

MiniMo – мини-браузер
из семейства Mozilla
Mozilla

Антон Борисов
Многим из вас приходилось работать с программными продуктами, в названии которых
присутствует слово Mozilla. В этом году, пожалуй, только ленивый не слышал о браузере
Mozilla FireFox. Однако главный герой сегодняшнего рассказа – браузер MiniMo, родословная
которого начинается с браузера Mozilla. Некоторые детали его разработки и концепцию
развития поведает Дуг Тернер (Doug Turner) – глава проекта.
Расска жите, как вы оказа лись ми. В определенный момент кому-то вильное направление, но одно ясно –
в Netscape Communications Inc., о ва- пришла в голову сумасшедшая идея от «безумной идеи» выиграли милли-
шей работе в этой компании, её ос- выпустить исходный код в публичный оны. «Освобождение ящерицы» в ито-
новных направлениях. доступ. В Netscape Communications мо- ге вылилось в лучший код, стало боль-
Я присоединился к команде Netscape им шефом был Крис Хофман. Он и сей- ше инноваций, и, наконец, война брау-
в 1996 году, для работы над клиен- час мой шеф в Mozilla Foundation. На- зеров вышла на новый виток.
том браузера под Mac-платформу. столько хороший, что у меня нет жела-
Поначалу было не очень интересно, ния мечтать о лучшем. Сколько людей занято в проекте
но это была работа на лучшую компа- MiniMo и кто вам помогает при раз-
нию, над лучшим продуктом того вре- Как бы вы охарактеризовали идею работке?
мени. Годом позже я стал работать выпуска исходного кода Netscape Что касается создания проекта MiniMo,
над вещами гораздо интереснее: се- в публичный доступ? С точки зре- то его родителями являются: Крис
тевое взаимодействие, многопоточ- ния того времени и с точки зрения Хофман, Дарин Фишер (Darin Fisher)
ность, xpcom, низкоуровневые подсис- реалий сегодняшнего дня. и я. Это было несколько лет назад. Да-
темы и над более сложными проблема- Я не был уверен вначале, что это пра- рин теперь работает в Google над дру-

№11, ноябрь 2005 5


интервью

Что представляет из себя ся Internet Explorer, то для мобильных уст- ся» («Make good software that people like to
MiniMo? ройств это далеко не так: здесь присутс- use, and the rest will take care of itself»).
После того как в январе 1998 года были твуют такие имена, как Opera, NetFront, Коллектив Mozilla Foundation сложил-
выпущены в свет исходные коды Netscape Obigo, Nokia Series 40/60 Browser, Openwave, ся в июле 2003 года в основном из быв-
Navigator [1], началась новая ветка в исто- Pocket Internet Explorer, NicheView, Picsel, ших участников корпорации Netscape [10].
рии развития браузеров. Одним из «побоч- RocketBrowser, Wapaka, Thunderhawk, Он разрабатывает не только MiniMo,
ных» эффектов стало появление MiniMo Skweezer, Andromeda и некоторые другие. но и такие продукты, как Mozilla FireFox,
(MiniMozilla) – мини-браузера для КПК и мо- Сфера применений пока, на мой взгляд, Mozilla Thunderbird, Mozilla SeaMonkey,
бильных устройств [2]. достаточно узкая – помимо непосредствен- и многие другие. Большинство из них, ко-
Что из себя представляет MiniMo? ного отображения веб-страниц и удобной нечно же, напрямую не связано с MiniMo,
Это в первую очередь исходный код бра- интеграции с Google Maps на этом функцио- но от каждого зависит общее развитие
узера Mozilla, который можно собрать нал и заканчивается. Технология MiniMozilla продукта.
для мобильной платформы, например, построена таким образом, что в принципе В частности, технологический темп для
для КПК iPAQ. Вполне очевидно, что полная можно отделить интерфейс пользователя развития MiniMo задает Дуг Тернер, Крис
функциональность настольной Mozilla для (UI) от ядра браузера Mozilla и построить Хофман координирует бизнес-планирова-
мобильных устройств не требуется. На пер- новые приложения под конкретные требо- ние. Официально Дуг Тернер начал рабо-
вый план выходит компактность браузера вания заказчика, но пока об этом мало что тать на Mozilla Foundation с декабря 2004 го-
и повышенные требования к распределе- слышно. Также мало слышно и об актив- да. Хотя послужной список данными пер-
нию памяти (в КПК количество ОЗУ все- ном использовании в MiniMo подключае- сонами не афишируется, но удалось уз-
таки отличается от настольных ПК). Вто- мых модулей. Впрочем, не буду заострять нать, что до прихода в Netscape в 1996 го-
рой немаловажный фактор – это умение внимание на том, чего пока нет. Отмечу, ду Дуг Тернер работал в компании Apple
отображать html-страницы для экранов что проект MiniMo идет вперед семимиль- Computer Inc.
КПК-устройств (разрешение в пределах ными шагами. И лозунгом развития Mozilla Первое упоминание об успешном пор-
160x240 пикселов или более; сейчас уже Foundation отчасти может служить фраза тировании MiniMo на КПК датируется 8 де-
типичны устройства с разрешением экра- Криса Хофмана (Chris Hofmann) – «Созда- кабря 2003 года, когда Дуг Тернер пишет
на 640х480 пикселов) [3]. Если для настоль- вайте хорошие продукты, которые приятны в своем блоге – о запуске Firebird на iPAQ
ных ПК доминирующим браузером являет- для использования, а остальное приложит- 5555 [4].

гими вещами, а Крис занят создани- изводит КПК и смартфоны для I-Mate, Что касается запуска MiniMo на Opie,
ем бизнес-связей в Mozilla Foundation. HP, Orange, Dell и др.), наш код рабо- то здесь потребуется переписать код
Над MiniMo CE активно работают 6 че- тает нормально. под QT. Как вы знаете, сейчас Mozilla
ловек, каждый в своем направлении. основана на GTK-коде, поэтому зако-
Мы также помогаем нескольким спе- Как вашей команде удается тести- номерно, что и MiniMo зависит от GTK.
циалистам, работающим над версией ровать MiniMo на всех линейках КПК, Портирование на QT-основу происхо-
Linux MiniMo. У нас большая команда скажем, и на семействах Windows дит (см. http://dot.kde.org/1094924433).
тестеров, людей, которые придумыва- Mobile и дистрибутивах Familiar Как только оно завершится, то появит-
ют новые классные идеи, и, конечно же, Linux? Какие виртуальные машины ся причина для перестраивания дере-
мы получаем отдачу от всего направ- вы используете? ва MiniMo, чтобы в дальнейшем выпус-
ления развития FireFox. Прямо сейчас Отличный вопрос. Многие разработ- кать исполняемые файлы и в форма-
Марсио Галлио (Marcio Gallio) и я за- чики других браузеров для мобильных те MiniMo/QT.
няты разработкой ядра MiniMo. Фигу- устройств используют эмулирующие
рально выражаясь, мы стоим на пле- приложения. Для нас это не актуаль- Я попробовал запустить MiniMo 0.07
чах таких гигантов, как Джонни Стен- но, т.к. мы используем ядро от FireFox, в Windows CE 2002 (WinCE 3.0), од-
бэк (Johnny Stenback), Дэвид Барон поэтому если какая-то функция рабо- нако все попытки оказались не-
(David Baron) и всех тех сотрудников, тает в FireFox, то она будет работать удачными. В чем может быть про-
которые двигают технологию Mozilla и в MiniMo. блема, в WinCE 3.0 или все-таки
вперед, т.к. MiniMo базируется в пер- Однако есть такие опции, кото- в MiniMo? Есть ли планы выпускать
вую очередь на коде Mozilla. рые отсутствуют в FireFox, напри- MiniMo в виде одного инсталлятора,
мер, рендеринг для малых экранов а не в виде архива файлов?
На каких аппаратных платформах (Small Screen Rendering). У меня есть Для использования в Windows CE 2002
MiniMo может работать сегодня? мысль написать такое расширение требуется перекомпиляция кода MiniMo
В основном это ARM и несколько x86- для FireFox, чтобы у пользователей ПК с использованием SDK от WinCE 2002.
устройств. Существует несколько спе- была возможность увидеть, как стра- Сейчас мы сфокусированы в основном
цифичных вопросов, но наш код очень ница отображается на устройствах на Windows CE 2003, так что и для бо-
удобен в портировании. На большинс- с экраном 240x360. Мы компилируем лее старой версии WinCE в скором вре-
тве устройств, что поставляет HTC код на настольных ПК и копируем его мени будет релиз. Что касается инс-
(тайваньская компания High Tech на КПК. Затем тестируем и делаем вы- талляторов, то для себя мы использу-
Computer Corporation [11], которая про- вод о функциональности. ем как коммерческие, так и собствен-

6
интервью
Какие планы развития MiniMo? И как сил бы развитие MiniMo, если на рын-
Дуг Тернер – соавтор первой антиспам происходит тестирование дополни- ке было что-то стоящее.
программы SpamBlaster, созданной в 1997 тельного функционала?
году. Сотруд ник компании Netscape Для MiniMo также существует план Насколько мне известно, с Nokia
Communications c 1996 года. Занимался развития [5]. Что же касается дополни- и с T-Mobile подписаны контракты
развитием объектной модели XPCOM, про- тельного функционала, то он, как пра- по поставке MiniMo вместе с их про-
работкой вопросов поддержки сети и пото- вило, появляется в качестве расши- дукцией. Насколько это верно?
ковых (thread) вопросов в браузерах серии рений к продукту. Например, Spatial У меня не входит в практику распро-
Netscape, а в последствии и в серии Mozilla. Navigation – это расширение, кото- страняться, кто собирается, а кто
В декабре 2004 года возглавил разработ- рое я написал для Pioneer Research. не собирается что-то поставлять, по-
ку браузера MiniMozilla в компании Mozilla Его цель – использовать клавиши вверх, ка не выпущен официальный пресс-
Foundation. вниз и т. д. для навигации по докумен- релиз. Так что, извините, говорить
ту (см. http://www.mozilla.org/access/ об этом преждевременно.
ные инсталляторы. Так что не волнуй- keyboard/snav). На сегодня это расшире-
тесь – MiniMo будет выпускаться и в ка- ние выглядит как опция, которую мож- Есть ли разработчики, которых
честве единого файла. но загрузить с http://addons.mozilla.org. вы могли бы отметить отдельно?
Как только расширение становится до- Мы сотрудничаем с компанией INdT
Для меня представляют интерес статочно востребованным, оно интег- (http://www.indt.org.br/indt), с коман-
русскоязычные ресурсы, поэтому рируется в дерево разработки. Одна- дой, которая работает над разными
я зашел на mail.ru и обратил внима- ко чтобы быть включенным, это конк- Open Source-проектами. В качестве
ние на то, что браузер автоматиче- ретное расширение проходит не толь- одного из таких проектов они выбра-
ски не распознает кодировку. ко через руки тестеров, но и через ру- ли MiniMo. Последние несколько ме-
Мы делаем достаточно широкие шаги ки тех, кто повседневно его использует, сяцев их внимание было сфокусиро-
вперед. Предлагаю использовать вер- т.е. знает расширение практически до вано на GTK-коде нашего кроссплат-
сию 0.08, ибо многие проблемы реша- мелочей. Поэтому относительно качес- форменного браузера. Также среди их
ются с выходом каждой новой версии. тва кода можете не волноваться. работ значится проект MaeMo – пор-
Некоторые вопросы, возникающие тирование на платформу Nokia 770
с перекодировками, связаны с тем, как Означает ли это, что практически (см. http://www.indt.org.br/maemo).
определять установленные на устрой- любое расширение, написанное для
стве шрифты и как проводить переко- FireFox, будет работать и с MiniMo? Ссылки:
дирование из национальных кодовых В общем-то, да. У нас было несколь- 1. http://en.wikipedia.org/wiki/Netscape.
страниц в юникод-представление. На- ко расширений для FireFox, которые 2. http://en.wikipedia.org/wiki/Minimo.
деюсь, в версии 0.10 многие из них бу- через несколько минут доработки за- 3. http://www.linuxdevices.com/articles/
дут решены. работали и с MiniMo. Расширения, AT7396996719.html.
стоящие упоминания, – это adblock 4. http://weblogs.mozillazine.org/dougt/
Действительно здорово осозна- и colorzilla. archives/004471.html – first announcement
вать, что исходный код для MiniMo of FireBird at IPAQ 5555.
и для Firefox почти один и тот же. Есть ли у вас планы по созданию 5. ht tp://w w w.linuxdevices.com /news /
Однако в ходе тестирования MiniMo прототипа для Symbian OS? NS8 91114 50 47.html – roadmap for
на различных версиях Windows CE Д.T.: Таких планов нет. Есть люди, ко- MiniMo.
я столкнулся с проблемой быст- торым нравится Symbian, и те, кото- 6. http://www.meer.net/~dougt/minimo_ce –
родействия. Если я сравню Pocket рые ненавидят его. Я действительно MiniMo WinCE builds – домашняя стра-
Internet Explorer (PIE) с MiniMo, не знаю, к кому я тяготею. Если смо- ница Дуга Тернера. Отсюда вы може-
то последний никак не кажется мне треть на API от Symbian и сравнивать те загрузить последние релизы MiniMo
быстрым. Есть ли какие-либо под- его с Linux, то, скорее всего, я принад- для платформы Windows CE.
вижки в улучшении данной про- лежу ко второму лагерю. 7. http://www.absoluteastronomy.com /
блемы? encyclopedia/m/mi/microbrowser.htm –
Д а , п р о и з в о д и т е л ь н о с т ь и м е е т С о гл а с н о о б з о р а м , в ы п ус к а е - классификация микробраузеров.
очень важное значение. Но срав- мым компанией Opera Software 8. Сравнить характеристики различных
нивать PIE с MiniMo недостаточно Inc., они не рассматривают MiniMo веб-браузеров можно пользуясь табли-
честно, т.к. PIE в действительнос- браузер в качестве конкурента, цей – http://www.absoluteastronomy.com/
ти не отображает многие сайты кор- т.к. Opera-Mini работает на других encyclopedia/c/co/comparison_of_web_
ректно, у него слабая реализация платформах (Symbian OS, Palm OS). browsers.htm.
JavaScript, и он не может выполнять Сможете ли вы утверждать, что ваш 9. http://davetitus.com/mozilla.
AJAX (http://developer.mozilla.org/en/ коллектив также не рассматривает 10. http://www.absoluteastronomy.com /
docs/AJAX). Впрочем, я не открещи- браузер от Opera в качестве конку- encyclopedia/m/mo/mozilla_foundation.
ваюсь от проблемы с быстродействи- рирующего продукта? html.
ем. Да, она существует, и мы ее посте- Мне бы не хотелось оценивать, кто ко- 11. http://en.wikipedia.org/wiki/High_Tech_
пенно решаем. му является конкурентом. Лично я бро- Computer_Corporation.

№11, ноябрь 2005 7


администрирование

Поговорим через Интернет?


Анализ наиболее популярных сетей
интернет-телефонии

Знаете ли вы, что с помощью компьютера можно не только работать с документами, играть,
обмениваться письмами, но еще и разговаривать? Сегодня, отбросив максимум рекламной
шелухи, мы рассмотрим достоинства и недостатки трех наиболее популярных клиентов
интернет-телефонии – Skype, Gizmo Project и Google Talk.

Михаил Платов
«А в чем, собственно, ринговых сетей, широко используемых П о д д е р ж к а р а з л и ч н ы х п л а т-
вопрос?» для обмена файлами (Napster, KaZaA, форм (Windows, Mac OS X, Linux,
За последние несколько месяцев ры- Gnutella и др.). С тех пор в течение поч- PocketPC).
нок компьютерной телефонии пере- ти трех лет сеть Skype активно разви- Наличие API для разработки собс-
жил несколько значительных событий. вается, а количество пользователей твенных расширений программы.
Наиболее интересными среди них яв- программы неуклонно продолжает рас- 27 различных языков в интерфей-
ляются запуск проекта Gizmo Project, ти. За первый год работы сеть набрала са клиента Skype.
а также открытие голосового сервиса свой первый миллион активных пользо-
компанией Google. Сразу после этого вателей, за второй год – еще два, сей- Как работает Skype
в сети появились многочисленные ста- час их количество медленно, но вер- Для того чтобы понять техническую
тьи, рассказывающие о преимущест- но приближается к отметке в 5 милли- часть, обратимся к рис. 1.
вах новых сетей перед старыми кон- онов… Последним значимым этапом Сеть состоит из программных кли-
курентами. Как ни странно, сколь-ни- в истории Skype стало слияние с извес- ентов Skype, работающих на компью-
будь единого мнения о том, какая же тными и популярными сервисами элек- терах пользователей. В зависимости
сеть на данный момент является луч- тронной коммерции e-bay и PayPal [1]. от условий работы один и тот же кли-
шей, представлено не было. Более то- Что же лежит в основе успеха Skype? ент может выступать либо как «обыч-
го, мнения различных обозревателей Для ответа на этот вопрос достаточно ный узел», либо как «суперузел» се-
зачастую оказывались диаметрально посмотреть на список основных воз- ти [2]. У последних есть по меньшей
противоположными. Для внесения яс- можностей программы: мере два характерных признака:
ности в этот вопрос было произведе- Передача речи, мгновенных сооб- Они всегда имеют реальный интер-
но небольшое исследование, с резуль- щений и файлов. нет-адрес.
татами которого вы сможете ознако- Высокое качество речи. Они принимают непосредственное
миться в этой статье. Итак, кандидат Проведение конференций. участие в поддержке работы сети
№1 – Skype. Связь с традиционной телефон- Skype.
ной сетью (через сервисы SkypeIn
Skype, «Let the whole и SkypeOut). Собственно, благодаря наличию
world talk for free» Дополнительные возможности (ин- «суперузлов» Skype и относят к де-
В недалеком 2003 году, основате- теграция с MS Outlook, Firefox, ра- централизованным сетям. Поиск або-
ли сети KaZaA Николас Зенстром бота с сетями wi-fi хот-спотов, воз- нентов, отслеживание их текущего со-
и Янус Фрис создали революционную можности «корпоративного» управ- стояния (активен/не активен), обмен
для своего времени программу для ин- ления счетами и др.). мгновенными сообщениями и файла-
тернет-телефонии с совершенно непо- Шифрация всех передаваемых дан- ми – все это производится с участи-
нятным названием – Skype. Ее изюмин- ных (алгоритмы AES, RC4). ем «супер узлов». Впрочем, их самой
ка заключалась в том, что для переда- Отличная работа из-за NAT и бранд- важной функцией является то, что каж-
чи «голоса» использовались идеи пи- мауэров. дый из них может выступать посред-

8
администрирование
ником при передаче голосового тра- нивались качество
фика между другими клиентами се- передаваемой ре-
ти Skype, находящимися за сервера- чи, а также величи-
ми NAT (см. вариант «3» на рис. 1). на задержки. С по-
Теоретически подход Skype позволя- м о щ ью Et he rnet-
ет бороться абсолютно со всеми ви- снифера опреде-
дами NAT (см. врезку «NAT и STUN»), лялись характер-
правда, к сожалению, борьба эта ве- ные особенности
дется руками ничего не подозреваю- реализации рабо-
щих абонентов (ведь физически «су- ты клиентов из-за
перузлы» находятся на компьютерах NAT (используемые
самых обычных пользователей сети). протоколы, IP-ад-
Так, один день работы Skype в режиме реса узлов, участ-
«суперузла» может стоить владельцу вующих в переда-
Рисунок 1. Структура сети Skype
компьютера до 800 Мб трафика других че голосового тра-
пользователей Skype [3]. Ситуация усу- фика). Вариант, при котором оба клиента
губляется тем, что на данный момент При тестировании проверялось непосредственно подключены к Ин-
не существует официального способа качество работы в следующих сце- тернет при тестировании не рассмат-
запретить клиенту Skype становиться нариях: ривался. Такая схема подключения яв-
«суперузлом». Конечно же, можно схит- Разговор между двумя абонентами, ляется достаточно редкой. Все же ча-
рить и поместить свой компьютер за находящимися за одним и тем же ще такие люди работают либо из-за
NAT, но в таком случае вы лишь обос- NAT-сервером (внутри организа- сервера NAT, либо через прокси-сер-
трите проблему качества речи в сети, ции или локальной сети). вер (локальные и корпоративные се-
переложив ее решение на плечи дру- Разговор между абонентом находя- ти) и очень редко напрямую (как пра-
гих пользователей Skype. щимся в Интернет (dial-up-подклю- вило, это удел конечных пользовате-
чение), и абонентом за динамичес- лей, часто dial-up). К тому же прове-
Личное знакомство ким NAT (разговор между пользо- дение всех вариантов тестов с реаль-
Итак, идем на http://www.skype.net и за- вателями Интернета, подключен- ными интернет-адресами в моем слу-
гружаем Windows-версию клиента ными к одному и тому же провай- чае было несколько затруднительным.
Skype (на момент написания статьи – деру). Отчаиваться по этому поводу не стоит,
версия 1.3.0.66). Владельцам модемов Разговор между двумя абонента- результаты тестов в данном сценарии
придется подождать загрузки 7-мега- ми (dial-up и LAN), находящимися более чем предсказуемы.
байтного файла установки. После ин- за различными несимметричными
сталляции запустим программу и за- NAT-серверами (разговор между Тестирование Skype
регистрируем себе уникальное имя пользователями Интернета, под- Первый же тест преподнес сюрприз –
в сети Skype. ключенными к различным провай- даже находясь в одной локальной се-
Интерфейс программы достаточно дерам). ти, клиенты Skype умудрялись обме-
прост и понятен (см. рис. 2). нивались данными через «суперузел»
Первое, что мы сделаем, – найдем в Швейцарии, подключенный к Интер-
человека, с которым будем общать- нету с помощью беспроводной тех-
ся (можно искать по skype-именам нологии 802.11. (провайдер Monsoon
или просто найти пользователей в ре- Networks). Думаю здесь комментарии
жиме Skype-me, желающих поболтать), излишни.
и добавим его в список контактов. Пос- При тестировании по второй схе-
ле этого, нажав на зеленую кнопку вни- ме поведение клиента полностью со-
зу экрана, мы начнем звонить. В мо- ответствовало ожидаемому – данные
ем случае вызов проходил достаточно передавались напрямую между учас-
долго – около 10 сек. Кроме того, когда тниками (см. вариант «2» на рис. 1).
у вызываемого абонента было запуще- Субъективно качество речи было луч-
но несколько skype-клиентов на раз- ше, чем при разговоре по обычному те-
ных компьютерах (для Skype такая си- лефону, но все-таки хуже, чем у конку-
туация допускается), звонок иногда до- рентов (см. ниже).
ходил только до одного из них. Третья схема (см. «3», рис. 1) пол-
ностью повторила результаты первой,
Методика тестирования разве что география в этот раз бы-
Для каждой из рассматриваемых се- ла другой – Великобритания, Япония
годня программ проводился опреде- и США. Качество речи сильно меня-
ленный набор испытаний. В процес- лось от звонка к звонку – от полной
се каждого теста субъективно оце- Рисунок 2. Интерфейс skype-клиента невозможности разговора, до ред-

№11, ноябрь 2005 9


администрирование
ких пропаданий речи, види- ные голосовые звонки або-
мо, при разговорах выбира- нентам д ругих SIP- с етей
лись различные «суперузлы». (несколько VoIP-сетей уни-
Объяснить причину такого по- верситетов, VoIP-сети проек-
ведения достаточно сложно – та SipBroker по всему миру).
протокол закрыт и зашифро- Кроме того, относительно
ван, а сама Skype не спешит просто должна достигаться
раскрывать миру особеннос- и организация связи с обыч-
ти объектов своей интеллек- ными телефонными сетями,
Рисунок 3. Структура сети SipPhone
туальной собственности. за что еще раз скажем спа-
Итак, давайте посмотрим, что же сибо протоколу SIP.
Чем плох Skype? может Gizmo: Для передачи мгновенных сообще-
Самым большим «злом» Skype явля- Передача голоса и мгновенных со- ний используется открытый протокол
ется то, что он использует ресурсы общений. XMPP, на основе которого работают
компьютеров своих пользователей Связь с традиционной телефон- сети Jabber. На данный момент Gizmo
для нужд всей сети в целом. ной сетью через службы Call In Project является участником IM-конфе-
В результате, некоторые образо- и Call Out. дерации [4], что автоматически озна-
вательные учреждения США и Европы Связь с абонентами Gizmo через чает обмен сообщениями с абонента-
официально запретили своим работни- выделенные городские номера до- ми других jabber-сетей.
кам и студентам использовать Skype. ступа (набор добавочного SIP-но-
В основе программы лежат закры- мера). Визуальная «примерка»
тые протоколы. Никто до конца точ- Проведение конференций, в том Основным сайтом проекта является
но не знает, что на самом деле делает числе и с абонентами ТФОП. http://www.gizmoproject.com. Именно
Skype, какие данные и куда он может Бесплатная голосовая почта. оттуда, из раздела Download, я и за-
передавать (посредством тех же «су- Возможность записи разговоров. грузил последнюю версию клиента
перузлов»). Исходный код клиента так- Отображение участников разгово- (1.1 на момент написания статьи). Раз-
же закрыт, поэтому нам остается лишь ра на карте мира. мер дистрибутива для Windows-плат-
«верить», что он не содержит Spyware Использование эмотиконов и зву- формы – чуть более 9 Мб.
или других подобных средств. ковых вставок. Интерфейс клиента достаточно удо-
Из-за использования закрытого Поддержка открытых стандартов бен и интуитивно понятен (см. рис. 4).
протокола интеграция Skype с други- (SIP, Jabber). В о с н о в е л еж и т с тан д ар т н а я
ми сетями на данный момент крайне Связь с другими VoIP-сетями, ис- для всех IM-клиентов идея «списков
затруднительна. Впрочем, судя по су- пользующими SIP. друзей» (buddy list). Имеется поиск, за-
ществованию SkypeOut, это не означа- Возможность работы с использо- писная книжка и история совершенных
ет, что интеграция невозможна в при- ванием аппаратных SIP-шлюзов звонков. Последняя централизованно
нципе, ее нет скорее по политическим и IP-телефонов. хранится на сервере и доступна с лю-
причинам. бого компьютера (у Skype история хра-
Большая часть выпускаемого се- В отличие от Skype, архитекту- нится локально). Голосовая почта ре-
годня оборудования для Skype (так на- ра сети SipPhone более традиционна ализована просто – все оставленные
зываемые skype-телефоны), работа- (см. рис. 3). сообщения в виде wav-файлов (к со-
ет только вместе со skype-клиентом В центре сети находятся серве- жалению, ничем не сжатых) отсыла-
на компьютере пользователя. Таким ры сети SipPhohe.
образом, достаточно сложно исполь- Благодаря исполь-
зовать skype без компьютера. зованию открытых
протоколов в сети
Gizmo Project возможна работа
Автором и владельцем этого проек- не только клиентов
та является Майкл Робертсон, из- Gizmo Project, но и
вестный миру такими брендами как любых других, под-
mp3.com и Linspire (в прошлом – держивающих про-
Lindows). В 2003 году Майкл основал токол SIP, в том чис-
компанию SipPhone, задачей которой ле и аппаратных
было создание сети IP-телефонии на (список рекомен-
базе протокола SIP. В середине 2005 дуемого оборудова-
года состоялся анонс бета-версии про- ния можно найти на
граммного клиента для этой сети – сайте проекта.
Gizmo Project, который многие неза- Всем участни-
медлительно назвали первым реаль- кам сети SipPhone
ным конкурентом Skype. доступны бесплат- Рисунок 4. Интерфейс Gizmo Project

10
администрирование
ются на указанный в систе- го, но интенсивного тестиро-
ме e-mail. вания Call Out качество речи
Таким образом, сообще- было несколько хуже, чем при
ния голосовой почты также внутрисетевых звонках. При-
можно централизованно хра- чиной этому, судя по всему,
нить на любом почтовом сер- являлось транскодирование.
вере. В параметрах настрой- Дело в том, что подавляю-
ки Gizmo можно указать вто- щее большинство оборудо-
рой e-mail адрес, на который вания операторов не подде-
будут отсылаться уведомле- рживает даже открытый ко-
ния о пришедших голосовых дек iLBC, не говоря уже о ком-
сообщениях (так предлагает- мерческом ISAC и его собра-
ся реализовывать SMS-опо- тьях из пакета GIPS. Поэто-
вещения). При желании мож- му звонки перед терминаци-
Рисунок 5. Отображение положения участников разговора
но настроить безусловную на карте мира ей скорее всего подвергаются
переадресацию входящих транскодированию на одном
звонков на другой номер, в том чис- места – реализованные возможности из серверов SipPhone, которое и при-
ле и номер ТФОП (в этом случае або- STUN оптимальны с точки зрения сов- водит к некоторому ухудшению качес-
нент будет оплачивать все переадре- местимости с другими устройствами тва речи. С другой стороны, благодаря
суемые звонки по соответствующему сети. Впрочем, это вовсе не означает, транскодированию даже пользователи
тарифу для Call Out). что специальные расширения функци- с низкоскоростными интернет-канала-
Другой приятной особенностью ональности для лучшей совместной ми могут делать call-out-звонки с при-
Gizmo является отображение учас- работы Gizmo из-за NAT невозможны емлемым качеством.
тников разговора на карте мира в принципе… Для услуг междугородной и меж-
(см. рис. 5). Для этого использует- дународной телефонии SipPhone,
ся интерфейс системы Google Maps. Групповое использование как и другие подобного рода компании,
К слову реализация этой возможности Одним из таких «расширений» мож- скорее всего использует возможнос-
тоже имеет мелкие недостатки. Так при но считать службу Bonjour. Послед- ти крупных операторов IP-телефонии.
совершении звонков через Call Out на няя является реализацией открыто- Как правило, последние для передачи
карте вместо расположения вызыва- го протокола IETF Zeroconf и активно голоса используют выделенные сети
емого абонента (которое достаточно используется в MacOS X для простой IP MPLS, поэтому проблем с ухудше-
точно можно определить по номеру работы с сервисами в локальной сети нием качества на их участке не воз-
телефона) показывалась точка в США (сетевые настройки компьютеров, ра- никает и наибольшее влияние все-та-
(предположительно точка установки бота с файлами и принтерами, обмен ки оказывает состояние интернет-ка-
шлюза, соединяющего SipPhone c тра- музыкой и картинками). С помощью нала между клиентом и сервером
диционными сетями). этой службы клиенты Gizmo Project SipPhone. На данный момент серверов
могут напрямую передавать голосо- SipPhone, работающих за пределами
Работа с NAT вой трафик при звонках в рамках од- США, обнаружено не было – при раз-
В этом пункте Gizmo Project продол- ной подсети. говорах голосовые пакеты всегда пе-
жает следовать идее максимально- Некоторые пользователи сообща- редавались через единственный сер-
го использования уже существующих ли о проблемах в работе управляе- вер, расположенный в США. (Справед-
и проверенных технологий. При рабо- мого оборудования D-Link, возникаю- ливости ради нужно отметить, что при
те с клиентами, находящимися за NAT, щих после установки Bonjour (вместе прочих равных условиях качество речи
используется открытый протокол с Gizmo Project или Apple iTunes) [5], по- в Gizmo при проведении тестирования
STUN. Правда, как показало практи- этому если возможность прямых раз- из-за NAT было лучше, чем у Skype, ис-
ческое исследование поведения теку- говоров в локальной сети вам не нуж- пользующего для транзита «суперуз-
щей версии Gizmo, возможности STUN на, а потенциально «проблемное» обо- лы» в Японии, Европе и США.)
реализованы далеко не полностью – рудование имеется просто деинстал-
только для передачи данных между лируйте эту службу с помощью про- А все ли хорошо
клиентом за NAT и интернет-сервером граммы TurnOffBonjour.exe, входящей в американском королевстве…
сети SipPhone. В этом случае на качес- в стандартную инсталляцию Gizmo. К сожалению, при работе с Gizmo
тво речи значительное влияние будет не обошлось и без большой ложки де-
оказывать взаимное расположение Особенности терминации гтя. Во-первых, программа действи-
клиента и сервера. Последний, к сло- Для тестирования услуги звонков тельно является бета-версией (а мес-
ву, находится в США. на обычные телефоны все вновь ре- тами даже и альфа), особенно в пла-
Если же вспомнить, что в сети гистрирующиеся пользователи полу- не стабильности. Так, клиент несколь-
SipPhone помимо клиентов Gizmo так- чают на счет 35 центов. Стоимость ко раз произвольно завершал свою ра-
же работают обычные шлюзы и IP-те- звонка в Россию – 7 центов, тарифика- боту (особенно часто при попытке от-
лефоны, то все сразу встает на свои ция – поминутная. В процессе коротко- правки IM-сообщений на русском язы-

№11, ноябрь 2005 11


администрирование
ке), причем перед повторным запус- руется обмен сообщениями с други-
ком часто требовалось вручную за- ми jabber-серверами в рамках проек-
вершить процесс gizmo.exe. Неболь- та IM Federation [7]. Передача речи на
шой осадок оставила функция отоб- данный момент возможна только меж-
ражения звонков на карте при вызовах ду родными клиентами Google Talk.
в ТФОП. В некоторых специфичных ус- В будущих версиях заявлена под-
ловиях клиент просто не мог подклю- держка протокола SIP. Помимо этого
читься к сети. Однако с учетом того, Google также обещает открыть сооб-
что программа активно развивается ществу детали использования XMPP
и все еще имеет официальный статус для передачи голоса в Google Talk [8].
«бета», можно надеяться, что в скором
времени эти и другие недочеты будут Работа с NAT
успешно устранены.. При работе с клиентами, находящи-
мися за NAT, Gtalk также использу-
Google Talk ет STUN. Качество реализации STUN
24 августа 2005 года состоялся офи- от Google впечатляет – во всех рас-
циальный анонс еще одной голосо- сматриваемых сегодня схемах с NAT
вой службы, на этот раз от компании Gtalk всегда удавалось передавать
Google, известной миру своей одно- Рисунок 6. Интерфейс Google Talk голосовые данные напрямую между
именной поисковой системой. Назва- почтовый адрес не является адресом участниками. Как вы помните, Skype
ние простое – Google Talk или сокра- почтовой системы Google, то вам будет в этом случае использовал «суперу-
щенно – Gtalk. предложено пригласить этого пользо- зел», а Gizmo – специализированный
Основные возможности: вателя в Gmail прямо из Google Talk. сервер в США. Субъективная оцен-
Передача голоса и мгновенных со- С пользователями, имеющими статус ка качества речи лишь подтвердила
общений. «Available», можно общаться. При голо- объективные данные – среди всех рас-
Отображение качества разговора совых сеансах качество речи в реаль- смотренных участников наилучшее ка-
в реальном времени. ном времени отображается индикато- чество речи было у Google Talk.
Уведомления о непрочитанных ром верхней панели, причем достаточ-
письмах в почтовом ящике. но корректно. Связь с телефонными сетями
Быстрое открытие ящика Gmail. Интерфейс клиента вылизан до ме- В настоящее время официально та-
лочей. Приятные меню, автодополне- кой услуги нет. Информации о ее воз-
Как видим, список невелик, но да- ния при вводе адресов, моменталь- можном появлении также нет. Однако
вайте воздержимся от поспешных вы- ное открытие ящика Gmail (без ввода изучение сигнальных сообщений, пе-
водов, ведь, как известно, больше пароля), удобные уведомления о но- редаваемых между сервером и клиен-
не значит лучше… вой почте, ненавязчивое звуковое со- тами Gogle Talk, обернулось несколь-
провождение – и все это при размере ко неожиданным сюрпризом – поми-
Знакомство дистрибутива в 900 Кб! За интерфейс мо декларирования поддержки коде-
Первой приятной особенностью про- Google Talk без разговоров получает ков GIPS и двух стандартных вариаций
граммы стал ее размер – всего лишь свои заслуженные 5 баллов. G711 в сообщениях также присутство-
900 Кб. вала следующая запись:
Для работы с Google Talk понадоби- Протоколы, диалекты… <payload-type xmlns=http://www.google.com/session/phone
лась учетная запись почтовой системы С технической точки зрения выбор id="4" name="G723"/>

Google Mail. Для получения последней Google особенно интересен. Если Таким образом, возможно, уже сей-
нужно попросить любого знакомого Skype использует собственный за- час в клиенте Google Talk есть подде-
с почтой Gmail прислать вам пригла- крытый протокол, а Gizmo Project – ржка популярного в мире IP-телефо-
шение. К сожалению, других офици- стандартный для IP-телефонии SIP, нии кодека G723! С точки зрения здра-
альных способов регистрации в Gmail то в основе Gtalk лежит протокол вого смысла это может означать од-
для людей, проживающих за предела- Jabber/XMPP, широко используемый но – интеграция с телефонными сетя-
ми США, на данный момент нет. Open Source-сообществом для пере- ми не за горами. Причем благодаря то-
После получения приглашения дачи мгновенных сообщений. Благода- му, что поддержка кодека есть непос-
и успешной регистрации можно войти ря этому совместно с Google Talk гипо- редственно в клиенте, отпадает не-
в Gtalk. Интерфейс программы типичен тетически можно использовать абсо- обходимость в перекодировании ре-
для Google – просто, удобно и в то же лютно любой Jabber-клиент. Список га- чи, что для конечных пользователей
время красиво (см. рис. 6). рантированно работающих альтерна- должно отразиться в более высоком
Имеется традиционный список тив можно найти на соответствующем качестве речи при разговорах с або-
контактов, для его наполнения можно разделе сайта google [6]. Клиенты бу- нентами телефонных сетей. Главное,
использовать адресную книгу Gmail дут работать с сервером Google, поэ- чтобы версия в клиенте Google оказа-
или просто ввести e-mail нужного че- тому создавать учетную запись в Gmail лась совместимой с тем, что называ-
ловека в поле поиска. Если введенный все равно придется. В будущем плани- ется G723.1 у телефонистов…

12
администрирование

NAT и STUN нию, возникают проблемы. Так, при уста- только в том случае, если узел за NAT
На сегодняшний день подавляющее чис- новке соединения с помощью SIP участни- сам предварительно посылал им какие-
ло компьютеров подключено к Интерне- ки диалога внутри SIP-сообщений указы- либо пакеты.
ту с использованием протокола четвер- вают IP-адреса и номера портов, которые Динамический NAT, ограниченный
той версии протокола IP. Одной из извест- будут использоваться для передачи RTP- по IP-адресам и портам. То же, что
ных проблем этой версии является нехват- пакетов. Если NAT-сервер не занимается и предыдущее, только ограничения за-
ка адресного пространства. Так, для адре- анализом содержимого пакетов на уров- даны более жестко: узел в Интернет мо-
сации в IPv4 используется 32 разряда, что не протокола (а именно так все известные жет отсылать пакеты только с того пор-
позволяет обращаться к 4 294 967 296 ус- реализации и поступают), то RTP-пакеты та, на который он предварительно что-
тройств. Для Интернет на стадии его за- просто не дойдут до адресата, ведь в SIP- то получил от узла из-за NAT.
рождения (20 лет назад) эта цифра ка- сообщениях будут указаны внутренние Симметричный NAT – все пакеты от
залось огромной. С позиции настоящего немаршрутизируемые адреса участни- внутреннего IP-адреса и порта к вне-
времени эта цифра уже не кажется столь ков. Для решения этой проблемы исполь- шнему IP-адресу и порту преобразуют-
большой, напротив, многие говорят о гря- зуется протокол STUN – Simple Traversal of ся в один и тот же IP-адрес и порт NAT-
дущей нехватке IP-адресов, особенно ког- UDP through NAT [9]. Его основная идея за- сервера. Отличие заключается в том,
да начнут появляться бытовые устройства ключается в том, чтобы дать возможность что при обращении к различным вне-
(телефоны, холодильники и другие предме- клиенту определить, что он находится за шним IP-адресам порты на NAT-серве-
ты бытовой техники), подключенные к Ин- NAT, а также сообщить ему IP-адрес и но- ре тоже будут изменяться. Таким обра-
тернету. Сейчас же для «экономии» час- мер порта, которые получатся после транс- зом, только один интернет-узел может
то используется механизм NAT – Network ляции внутреннего адреса сервером NAT. посылать пакеты узлу, находящемуся
Address Translation. Общую идею NAT мож- Имея эту информацию, клиент сможет сам за NAT-сервером.
но описать так: преобразование адресов правильно указать в SIP-сообщениях вне-
одной сети в адреса другой сети. В наибо- шний адрес и номер порта для передачи Для первых трех типов NAT можно с ус-
лее популярном частном случае (подклю- RTP-данных на сервере NAT. пехом использовать внешний STUN-сер-
чение локальной сети к Интернету) это бу- С точки зрения STUN выделяются 4 ос- вер, а вот для четвертого типа этот метод
дет трансляция внутренних адресов ло- новных типа реализации NAT-серверов: уже не поможет – номера портов, назнача-
кальной сети (10.0.0.0/8, 172.16.0.0/12, Динамический неограниченный NAT. емые для пакетов к STUN-серверу и второ-
192.168.0.0/16) в один внешний интернет- В этом случае все запросы от опреде- му участнику разговора, будут разными.
адрес, полученный от провайдера. Обраба- ленного внутреннего IP-адреса и пор- Единственным возможным здесь вариан-
тывая пакеты, NAT-сервер будет просто за- та отображаются на один и тот же вне- том является интеграция функциональнос-
менять «локальные» адреса клиентов сво- шний IP-адрес и порт. Кроме того, раз- ти STUN-сервера в прокси-сервер голосо-
им интернет-адресом, а при получении от- личные узлы Интернета могут послать вого трафика. В этом случае номера пор-
ветных данных из Интернета будет прово- пакеты узлу за NAT, отправляя их на со- тов будет возможно определить, и соеди-
дить обратное преобразование. При этом ответствующий порт NAT-сервера. нение будет установлено. Вам это еще ни-
для служб, работающих на уровне IP, ника- Динамический NAT, ограниченный чего не напоминает? Правильно! Именно
ких проблем не возникает – NAT прозрач- по IP-адресам. То же, что и предыду- так и работает механизм «суперузлов» сети
но меняет заголовки IP-пакетов. С прото- щее, за исключением того, что вне- Skype, позволяющий успешно работать да-
колами более высокого уровня, к сожале- шние узлы могут посылать пакеты же из-за симметричного сервера NAT.

Чего в Gtalk нет вать таковыми контакты Gmail мож- ализована не вся желаемая функцио-
Оценивать функциональность Google но лишь с очень большой натяжкой), нальность.
Talk достаточно сложно. Если в ряду крайне ограниченны возможности по-
его конкурентов рассматривать Skype иска абонентов (глобального катало- Российский путь
и Gizmo Project, то, безусловно, наибо- га нет, только личная адресная кни- Некоторое представление о том, как
лее существенным недостатком будет га из Gmail). развивается интернет-телефония в ми-
отсутствие связи с традиционной те- ре, мы получили, но что происходит
лефонной сетью. Если же конкурента- Статус и стабильность у нас? Говоря об интернет-телефонии
ми будут «мессенджеры» от Microsoft, На данный момент сервис Gtalk офи- в России, можно упомянуть, как мини-
AOL и Yahoo, то в сравнении с ними уже циально находится в стадии Beta. Од- мум, два проекта – Mail.Ru Agent и сеть
имеющиеся на данный момент воз- нако, как показало непродолжитель- sipnet.ru.
можности передачи голоса будут бо- ное, но достаточно интенсивное тес-
лее чем достаточны. тирование, детище Google на данный Mail.ru Agent
Что же касается других полез- момент более чем стабильно – за все Детальное изучение MRA показа-
ных, но пока отсутствующих функций, время испытаний не возникло ни од- ло, что он скорее является очеред-
то в Gtalk на данный момент нет аудио- ной ошибки. ным ICQ-клоном, ориентированным
и видеоконференций, нельзя исполь- Таким образом, приставка beta в первую очередь на обмен мгновен-
зовать эмотиконы, практически отсутс- в названии данной программы скорее ными сообщениями. Голосовые функ-
твуют профили пользователей (назы- означает то, что пока в программе ре- ции номинально имеются, но качество

№11, ноябрь 2005 13


администрирование

«Sound by Global IP Sound» шее, по сравнению с конкурентами, качес- Как результат, при нехватке пропуск-
Такую фразу можно встретить в описании тво передачи речи». ной способности качество речи у вто-
большинства рассмотренных сегодня сис- А теперь, как говорится, вопрос на за- рого клиента будет лучше.
тем (кроме сети Тарио и агента Mail.Ru). Не- сыпку – если все рассмотренные сегод- Благодаря выбору более оптимального
которые пояснения по поводу смысла этой ня сети для передачи речи используют маршрута удалось найти такой путь до-
фразы можно найти на сайте [10]. Соглас- один и тот же набор кодеков от GIPS (а су- ставки пакетов, что задержка и процент
но размещенной там информации, предме- дя по официально доступной информа- потерь оказались меньше, чем у конку-
том деятельности компании Global IP Sound ции, так оно и есть), то почему же так от- рентов.
является разработка и лицензирование личается качество передачи речи в раз-
речевых кодеков IP-телефонии, обладаю- личных сетях? Первый случай скорее является край-
щих высоким качеством речи и более ус- Можно привести два варианта ответа ностью, и его суть кратко можно выразить
тойчивых к потерям IP-пакетов. Наиболее на этот вопрос: так – «ошибка проектировщиков и про-
известным кодеком этой компании яв- Используются различные алгоритмы граммистов».
ляется iLBC – Internet Low Bitrate Codec выбора конкретного кодека из паке- Второй вариант, при прочих равных ус-
(см. [11]), описание алгоритма работы ко- та, предоставляемого GIPS. Реаль- ловиях, может оказывать очень сильное
торого можно найти в RFC-3951. Другими, но это может означать следующее – влияние на качество. Так, разговаривать
но уже закрытыми, кодеками GIPS являют- там, где одна программа выбирает, через неизвестный узел в Японии или бес-
ся – iSAC, Enhanced G711, iPCM-wb. Более например, iLBC с размером потока проводного клиента в Швейцарии (Skype),
подробное описание их особенностей мож- 13.3 кБит/с, другая благодаря исполь- как правило, оказывалось хуже, чем через
но найти в [12], кратко информацию, при- зованию более совершенных методов выделенный сервер в США (Gizmo). Луч-
водимую в данном документе, можно вы- определения имеющейся пропускной шее же качество достигалось при переда-
разить так: «Закрытые кодеки при опре- способности выбрала менее требова- че данных напрямую между участниками
деленных условиях могут обеспечить луч- тельный ISAC с битрейтом 10 кБит/с. разговора (Google Talk).

их практической реализации (по срав- Работа с NAT ля он запросто может поставить в ту-
нению с тем же GTalk) оставляет же- Как видно из названия, сеть использу- пик – «интуитивного понимания» нет.
лать лучшего. Оценку голосовых воз- ет протокол SIP. Вариант борьбы с NAT Прежде чем что-либо сделать, реко-
можностей, к сожалению, произвес- стандартен – STUN. Сеть предостав- мендуется обязательно ознакомиться
ти не удалось – при нахождении або- ляет свой сервер (stun.sipnet.ru), кли- с соответствующим разделом встро-
нентов за NAT слышимость была ну- ентская часть протокола присутству- енной системы помощи. Кроме того,
левой. ет во всех популярных SIP-клиентах. часть настроек учетной записи доступ-
С технической точки зрения MRA По информации с официального сай- на в свойствах учетной записи сервера
использует собственный бинарный та, реализация STUN в sipnet.ru поз- CommuniGate PRO. Описание этих на-
протокол (на вид достаточно ICQ- воляет работать даже из-за симмет- строек приводится уже в другом мес-
подобный), что ограничивает круг ричного NAT, хотя на практике устано- те. Другими словами, в плане «друже-
его применения только абонентами вить соединение из-за NAT при помо- любного» интерфейса spinet еще есть
mail.ru. щи клиента x-lite мне не удалось. (хо- чему поучиться…
тя Gtalk, Skype и Gizmo соединялись Второй вариант использует те же
Sipnet.ru без проблем). узлы сети Tario, но уже для вызова або-
А вот этот проект, как оказалось, име- нентов sipnet. Позвонив на номер узла
ет самое что ни на есть непосредствен- Связь с телефонными сетями Tario в вашем городе и набрав добавоч-
ное отношение к теме нашего сегод- Связь с телефонными сетями возмож- ный SIP-номер абонента, вы можете
няшнего разговора. Сеть sipnet в неко- на в двух вариантах: позвонить любому пользователю сети
тором смысле можно считать россий- Звонки абонентов sipnet в ТФОП. sipnet. Если же абонент занят или не-
ским аналогом SipPhone. Так, с 27 ок- Звонки из ТФОП абонентам spinet. доступен, вы можете оставить ему со-
тября каждый желающий может бес- общение голосовой почты (для реали-
платно подключиться к сети sipnet.ru, Для «приземления» звонков в те- зации этой возможности используется
заполнив небольшую форму на веб- лефонные сети используется платфор- платформа CommuniGate PRO). Спи-
сайте. Собственного программного ма Tario Softswitch. Одной из ее осо- сок городов и номеров телефонов уз-
клиента (как Gizmo Project у sipphone), бенностей является то, что абоненты лов доступа на данный момент приво-
у sipnet нет, вместо это предлагается сами могут выбирать конкретные уз- дится только в личном кабинете або-
использовать бесплатные версии про- лы, через которые будут совершаться нента sipnet. Звонок на узел Тарио та-
грамм, поддерживающих протокол SIP их звонки (до появления sipnet эта воз- рифицируется как звонок на обычный
(CounterPath x-lite, Microsoft Messenger можность была доступна только опера- городской телефон.
и др). Также можно использовать ап- торам, работающим с Tario). Специа-
паратные голосовые шлюзы, причем листам интерфейс-платформы более Качество речи
юридическим лицам Sipnet готов пре- чем понятен (ведь для них это и дела- К сети могут подключаться любые SIP-
доставить их бесплатно. лось), а вот начинающего пользовате- совместимые клиенты. На официаль-

14
администрирование
Таблица 1. Сводная таблица возможностей Нет четкой политики относитель-
Возможности Skype Gizmo Project (Beta) Google Talk (Beta) Sipnet.ru* но использования мгновенных со-
Связь с телефонными сетями Да Да Да Да общений.
Возможность проведения
Да Да Нет Нет Общие недочеты в реализации
конференций
служб (неполная локализация), от-
Мгновенные сообщения Да Да Да Нет
Да, за дополнительную
сутствие https в личном кабинете,
Голосовая почта Да, бесплатно Нет Да, бесплатно
плату нетипичный интерфейс форума.
Дополнительные услуги Да, средствами
Да, за дополнительную
(переадресация, автоответчик Да Нет платформы
и т. д.)
плату
CommuniGate PRO Вместо выводов
Передача файлов Да Нет Нет Нет В заключение подведем краткий итог.
Возможность работы с другими
Нет Да Нет Да Самое большое преимущество Skype –
сетями
количество пользователей. Согласи-
Шифрация трафика Да Нет Нет Нет
тесь, довольно сложно использовать
Субъективная оценка работы
4 3 5 2
с NAT (максимум – 5 баллов) Gizmo, если все знакомые в Skype,
«Прямые звонки» между
Нет Да, с помощью Bonjour Да, с помощью STUN Неизвестно а если вспомнить, что Skype еще и за-
абонентами локальной сети
крыт, то надеяться на «мягкую» миг-
Да, с использованием Да, с помощью самой Да, с использованием
Возможность записи разговоров
средств 3-х фирм программы средств 3-х фирм
Нет
рацию и вовсе не приходится. Если же
Набор речевых кодеков
Да Да Да Нет
раньше вы и ваши друзья не пользо-
от Global IP Sound
вались интернет-телефонией, посмот-
Используемый протокол Собственный SIP XMPP SIP
рите на Gizmo Project или Google Talk.
Возможность контроля качества Номинально присутствует, Есть, работает
речи в реальном времени
Нет
но работает некорректно достаточно корректно
Нет
С помощью первого можно звонить
Отображение собеседников
Нет Да Нет Нет
на обычные телефоны, второй же мо-
на карте
жет прийтись по вкусу тем, кто допол-
Возможность расширения
функциональности
Да, через API Нет Нет Нет нительно хочет сменить (или получить)
Размер дистрибутива 7,2 Мб 9,3 Мб 960 Кб Неприменимо e-mail. Владельцам широкополосного
Потребление памяти при работе 18,4 Мб 14 Мб 2,6 Мб Неприменимо подключения к Интернету (128 кбит/с
Windows, MacOS X,
Windows 2000/XP, и выше) можно посмотреть в сторону
Поддерживаемые платформы MacOS X, Linspire Windows 2000/XP Неприменимо
Linux, Pocket PC sipnet, особенно если вам часто прихо-
Статус Release Beta Beta Неприменимо дится звонить, а в плане мгновенных
* Приводятся возможности только для сети Sipnet.ru. Sipnet – это не клиент, а открытая сеть и некоторые пункты к нему (как к сети) сообщений устраивает и ICQ.
не применимы
Более подробное сравнение воз-
ном сайте имеются инструкции по на- нации), но, насколько мне известно, та- можностей всех рассмотренных се-
стройке Microsoft Windows Messenger кого сервиса у sipnet.ru пока нет. годня клиентов можно найти в Таб-
и CounterPath X-lite. При работе с этими лице 1.
программами скорее всего придется Краткий итог
использовать самые неэкономичные Основные плюсы sipnet.ru: Литература и ссылки:
кодеки G711A и G711U (MS Messenger Бесплатные внутрисетевые звонки 1. http://investor.ebay.com/event.cfm.
других и не знает, а все остальное, и голосовая почта. 2. Salman A Baset, Henning Schulzrinne, An
что входит в x-lite, на практике не под- Дешевые междугородные и между- Analysis of the Skype Peer-to-Peer Internet
держивается терминирующими шлю- народные звонки. Telephony Protocol, September 2005.
зами провайдеров). Возможность звонков абонентам 3. http://www.connect.ru/article.asp?id=4997.
Как мы помним из [11], для такой сети sipnet через выделенные го- 4. http://www.imfederation.com.
связи нам понадобится канал свя- родские номера. 5. http://www.voipuser.org/forum_topic_
зи около 80 кБит/c в каждую сторону Возможность пополнения счета че- 2567.html.
(пользователям dial-up можно не бес- рез российские системы интернет- 6. http://www.google.com/talk/otherclients.
покоиться). расчетов. html.
Если же взять SIP-клиент или аппа- Дополнительные возможности (на- 7. http://www.imfederation.com.
ратный шлюз с поддержкой G723 или стройки маршрутизации, заказ 8. http://www.google.com/talk/developer.
G729, то можно без проблем пользо- звонков). html#protocols.
ваться междугородной связью, а вот Возможности группового исполь- 9. Rosenberg J, STUN – Simple Traversal
при разговорах с другими абонента- зования. of User Datagram Protocol (UDP) Through
ми сети трудности останутся – из-за ог- Network Address Translators (NATs),
раничений нашего канала мы не смо- Основные минусы sipnet.ru RFC3489, march 2003.
жем говорить с пользователями x-lite Нет удобного и интуитивно понят- 10. http://www.globalipsound.com.
и MS Messenger. ного интерфейса пользователя. 11. Платов М. Что важно знать об IP-теле-
В принципе эта проблема могла бы Нет четких правил относительно фонии. – Журнал «Системный адми-
решаться использованием централи- используемых кодеков. нистратор», №5, май 2005 г. – 20-25 c.
зованного перекодирования (как это, Сложности в работе dial-up-клиен- 12. Global IP Sound GIPS Codecs – http://www.
например, делает sipphone при терми- тов. globalipsound.com/datasheets/Codecs.pdf.

№11, ноябрь 2005 15


администрирование

FreeBSD tips: какими возможностями


обладает ftpd

Сергей Супрунов
Протокол FTP предназначен для передачи файлов по сети. Существует множество очень
функциональных ftp-серверов, однако для использования в «личных» целях, как правило,
вполне достаточно возможностей входящей в состав FreeBSD программы ftpd.

П
рограмма ftpd представляет собой достаточно прос- Протоколом определены два режима взаимодействия:
той ftp-сервер. В отличие от таких инструментов, активный и пассивный, понимание которых крайне важно
как ProFTPd, PureFTPd и других, ftpd не имеет раз- в случае использования в сети брандмауэров.
витых средств конфигурирования, работы с правами до-
ступа и т. д. Однако если вы не собираетесь строить пуб- Активный режим работы FTP
личный ftp-сервер, то его возможностей вам вполне хва- В активном режиме процесс установления соединения
тит для организации «бытовых» функций, таких как обмен между сервером и клиентом выглядит следующим об-
файлами между сервером и вашей рабочей машиной, на- разом:
пример, для размещения HTML-страниц на веб-сервере Клиент с непривилегированного порта (с номером боль-
или настройки простейшего резервирования. ше 1024) отправляет запрос на порт 21 сервера (порт уп-
равления).
Начнем с теории После процедуры авторизации (команды USER и PASS)
Для начала давайте коротко ознакомимся с самим прото- клиент начинает прослушивать порт N и отправляет
колом FTP. Он описывается довольно объемным докумен- на сервер команду PORT, сообщающую ему, какой имен-
том RFC 959 и определен только для транспортного прото- но порт открыт.
кола TCP; UDP-реализации, в отличие от TFTP, нет. Сервер, получив команду PORT, устанавливает соеди-
Характерной отличительной особенностью FTP от дру- нение с указанным портом N со своего порта 20. Это со-
гих протоколов является то, что он для своей работы за- единение используется для передачи данных.
действует два порта – порт данных и порт управления.
Порт управления используется для установления соеди- Посмотрим, как это происходит на практике. Для эму-
нения между клиентом и сервером, для управления режи- ляции работы управляющего соединения вполне подой-
мами работы и т. д. дет стандартная утилита telnet. Чтобы посмотреть, как ра-
В то время как порт данных служит для передачи запра- ботает порт данных, воспользуемся небольшой програм-
шиваемой информации. мкой на Python:

16
администрирование
#!/usr/local/bin/python Теперь по команде LIST, запрашивающей список фай-
# lystener – скрипт для прослушивания указанного порта
лов в текущем каталоге, сервер устанавливает соедине-
import sys, socket ние с указанным портом (со стороны сервера используется
host = str(sys.argv[1]) порт 20) и передает запрошенные данные, которые и фикси-
рует наш сценарий. После выполнения команды соединение
port = int(sys.argv[2])
по порту данных разрывается, но управляющее соединение
s = socket.socket() сохраняется, пока не будет подана команда QUIT.
s.bind((host, port))
s.listen(1) Как видите, активный режим удобен для администра-
m = s.accept() тора сервера, поскольку при этом задействуются только
print 'Connected on', m[1]
порты 20 и 21 (причем инициализация соединения – только
while(1): на 21 порту), а остальные можно смело закрыть брандмау-
rsv = str(m[0].recv(256))
print rsv эром. С другой стороны, для клиента этот режим крайне не-
if rsv == '': приятен, так как вынуждает держать открытыми непривиле-
print 'No data more. Connection is closed.'
break; гированные порты. Поскольку общепринятой практикой яв-
ляется запрет любых входящих соединений на клиентские
m[0].close()
s.close() машины (а в случае работы через NAT вообще требуется
выполнять «проброс» внешних соединений до клиента либо
Этот скрипт будет прослушивать соединение на ука- организовывать работу в режиме прокси-сервера), то в этом
занном в параметрах командной строки порту и выводить плане более удобным является пассивный режим.
на экран всю полученную через созданный сокет инфор-
мацию. Пассивный режим работы FTP
Откроем две терминальные сессии, которые услов- В этом случае все соединения инициируются клиентом,
но назовем cmd (порт управления, обмен данными пока- что позволяет обойти ограничения, налагаемые обычно
зан зеленым шрифтом) и data (порт данных, соответству- брандмауэром и серверами NAT. Процесс организации со-
ющие строки – серые). Ввод пользователя выделен крас- единения теперь выглядит следующим образом:
ным шрифтом. На приведенном ниже листинге строки обо- Клиент с непривилегированного порта (с номером боль-
их терминалов показаны вперемежку, отображая хроноло- ше 1024) отправляет запрос на порт 21 сервера (порт уп-
гию их работы: равления).
После процедуры авторизации (команды USER и PASS)
cmd: serg$ telnet localhost 21
cmd: Trying 127.0.0.1...
клиент отправляет на сервер команду PASV, информи-
cmd: Connected to localhost. рующую о том, что он намерен работать в пассивном
cmd: Escape character is '^]'. режиме.
cmd: 220 myserver.ru FTP server (Version 6.00LS) ready.
cmd: USER username Сервер открывает непривилегированный порт и сооб-
cmd: 331 Password required for username. щает его номер клиенту.
cmd: PASS userpasswd
cmd: 230 User username logged in, access restrictions apply.
Клиент со своего порта N инициирует соединение на ука-
data: serg$ ./lystener localhost 25623 занный сервером порт, который и используется для об-
cmd: PORT 127,0,0,1,100,23 мена данными.
cmd: 200 PORT command successful.
cmd: LIST
cmd: 150 Opening ASCII mode data connection for '/bin/ls'. Чтобы смоделировать работу FTP-клиента в пассивном
data: Connected on ('127.0.0.1', 20)
режиме достаточно двух telnet-сессий:
data: total 8
data: drwxr-xr-x 2 0 0 512 Jun 4 2001 bin
data: drwxr-xr-x 2 1012 0 512 Sep 21 07:44 downdata cmd: serg$ telnet localhost 21
data: drwxr-xr-x 2 1012 0 512 Nov 12 2004 mankit cmd: Trying 127.0.0.1...
data: drwxr-xr-x 2 1012 0 512 Aug 26 04:58 updata cmd: Connected to localhost.
data: cmd: Escape character is '^]'.
data: cmd: 220 myserver.ru FTP server (Version 6.00LS) ready.
data: No data more. Connection is closed. cmd: USER username
cmd: 226 Transfer complete. cmd: 331 Password required for username.
cmd: QUIT cmd: PASS userpasswd
cmd: 221 Goodbye. cmd: 230 User username logged in, access restrictions apply.
cmd: Connection closed by foreign host. cmd: PASV
cmd: 227 Entering Passive Mode (127,0,0,1,245,5)
data: serg$ telnet localhost 62725
Итак, сначала мы устанавливаем соединение с пор- data: Trying 127.0.0.1...
том 21 сервера, проходим процедуру аутентификации. За- data: Connected to localhost.
тем запускаем во втором терминале наш скрипт lystener на data:
cmd:
Escape character is '^]'.
LIST
порту 25623 хоста localhost. Теперь даем серверу команду cmd: 150 Opening ASCII mode data connection for '/bin/ls'.
PORT, сообщая, на каком именно порту мы ждем соедине- data: total 8
data: drwxr-xr-x 2 0 0 512 Jun 4 2001 bin
ния. Обратите внимание на синтаксис команды: в качест- data: drwxr-xr-x 2 1012 0 512 Sep 21 07:44 downdata
ве аргументов указываются шесть октетов (первые четыре data: drwxr-xr-x 2 1012 0 512 Nov 12 2004 mankit
соответствуют IP-адресу хоста, последующие два – стар- data:
data:
drwxr-xr-x 2 1012 0 512 Aug 26 04:58 updata
Connection closed by foreign host.
ший и младший байты номера порта). В нашем случае порт cmd: 226 Transfer complete.
данных – 100*256 + 23 = 25623. cmd: QUIT

№11, ноябрь 2005 17


администрирование
cmd: 221 Goodbye. Если по соображениям безопасности вы не используете
cmd: Connection closed by foreign host. inetd, а также если FTP-доступ к вашему серверу выполня-
ется достаточно часто, то выгоднее запустить ftpd в режи-
На этот раз оба соединения устанавливаются со сторо- ме демона (с ключом -D). В этом случае сервер будет пос-
ны клиента. Порт, на котором следует открывать соедине- тоянно находиться в памяти.
ние для передачи данных, сервер указывает в ответ на ко- В стартовых сценариях FreeBSD не предусмотрено за-
манду PASV (в данном случае 245*256 + 5 = 62725). пуска ftpd в режиме демона, но нужный скрипт несложно
Однако на сервере при этом должны быть разрешены написать самостоятельно. Поместите в каталог /etc/rc.d та-
соединения на непривилегированные порты, что не поз- кой файл ftpd:
воляет достаточно жестко ограничивать доступ. Как вы,
должно быть, заметили, в пассивном режиме 20 порт не ис- #!/bin/sh
#
пользуется. # PROVIDE: ftpd
# REQUIRE: DAEMON LOGIN
# KEYWORD: shutdown
Расширенные режимы
В дополнение к описанным выше, документ RFC 2428 оп- . /etc/rc.subr
ределяет так называемые расширенные режимы, которые name="ftpd"
позволяют работать в сетях IPv6. В расширенных режимах rcvar=`set _ rcvar`
command="/usr/libexec/${name}"
вместо команд PORT и PASV используются EPRT и EPSV
соответственно. Синтаксис EPRT следующий: load _ rc _ config $name
ftpd _ flags="-D ${ftpd _ flags}"
run _ rc _ command "$1"
EPRT |протокол|адрес|порт|
Не забудьте сделать его исполнимым (chmod a+x ftpd).
Здесь «протокол» может иметь значение 1 (IPv4) или Чтобы этот сценарий мог запускать сервер ftpd, в файл
2 (IPv6), «адрес» – IP-адрес, синтаксис которого должен /etc/rc.conf нужно добавить следующие строки:
соответствовать используемому семейству протоколов,
«порт» – номер порта. ftpd _ enable="YES"
ftpd _ flags="-E"
Команда EPSV может в качестве параметра прини-
мать 1 или 2 (указывает семейство протоколов, которое Вторая строка необязательна и задает дополнитель-
поддерживает клиент). Кроме того, специальная коман- ные параметры запуска (ключ -D будет добавлен приве-
да EPSV ALL информирует сервер о том, что в дальней- денным выше сценарием автоматически). Теперь ftpd бу-
шем будет использоваться только команда EPSV, и все дет автоматически стартовать при загрузке операционной
остальные команды на установление соединения следу- системы. Кроме того, вы можете вручную запускать и ос-
ет отбрасывать. танавливать его:

Что поддерживает ftpd # /etc/rc.d/ftpd start


# /etc/rc.d/ftpd stop
Сервер ftpd, входящий в состав FreeBSD, по умолчанию мо-
жет обслуживать как активные, так и пассивные соедине- Теперь ftpd будет вести себя так же, как и любой дру-
ния (в том числе и расширенные), режим работы для конк- гой сервис.
ретного сеанса определяется клиентом. Работать ftpd мо- Поговорим о его работе и настройке.
жет как в режиме демона (постоянно присутствует в памя-
ти и самостоятельно обслуживает соединения на 21 порт), Как работает ftpd
так и в сотрудничестве с супердемоном inetd, который осу- Сервер ftpd поддерживает авторизованный и анонимный
ществляет вызов сервера при получении входящего соеди- доступ. В любом случае в начале каждого сеанса прово-
нения на порту 21. дится аутентификация пользователя, после чего пользо-
Если доступ на ваш сервер по FTP требуется доволь- ватель авторизуется для работы в соответствие со следу-
но редко, то более удобным выглядит использование inetd ющими условиями:
для запуска сервера (если, конечно, этот демон у вас ис- Если пользователь имеет пустой пароль, либо его обо-
пользуется). В этом случае не придется держать в памяти лочка по умолчанию отсутствует в /etc/shells, либо его имя
сервер ftpd постоянно – он будет загружаться лишь для об- (или наименование группы, членом которой он являет-
служивания конкретного соединения. ся) указано в файле /etc/ftpusers, то соединение разры-
Типичная строка запуска в /etc/inetd.conf выглядит сле- вается – такому пользователю запрещен доступ по ftp.
дующим образом: Когда имя пользователя или его группа указаны в фай-
ле /etc/ftpchroot, то разрешается ограниченный доступ
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l – пользователь может работать только в пределах свое-
го домашнего каталога.
Снимите с нее комментарий, пошлите сигнал HUP про- В случае, когда в качестве имени указано ftp или
цессу inetd, и вы получите работающий ftp-сервер, настроен- anonymous, соединение рассматривается как аноним-
ный по умолчанию. О том, что это за настройки и как их мож- ное (подробнее об анонимном доступе рассказано в сле-
но изменить, мы поговорим в следующем разделе. дующем подразделе).

18
администрирование
Если же ни одно из приведенных выше условий не вы- командной строки. Если вы запускаете ftpd из inetd, добавьте
полнено, то в случае указания правильного пароля поль- нужные параметры в соответствующей строке файла inetd.
зователь получает ftp-доступ ко всей файловой систе- conf (по умолчанию там записан только ключ -l). Если же
ме согласно имеющимся у него правам. предпочтете воспользоваться приведенным выше сцена-
рием для запуска ftpd в режиме демона, то дополнительные
Анонимный доступ ключи можно указать в файле rc.conf, в строке ftpd_flags.
Чтобы разрешить анонимный доступ по FTP, вам потребу- Некоторые ключи, которые могут быть полезны:
ется вручную создать системного пользователя с именем -D: запускать ftpd в режиме демона.
ftp. У этого пользователя должна быть «легальная» оболоч- -a <адрес>: в режиме демона принимать соединения
ка (одна из указанных в /etc/shells), и он должен иметь до- только на указанный IP-адрес.
машний каталог, в котором и будут размещаться файлы, до- -d: включить режим отладки (подробная информация о ра-
ступные анонимному пользователю. Также у него не может боте будет выдаваться серверу syslog как LOG_FTP).
быть пустого пароля. По умолчанию, анонимный пользова- -h: не выводить информацию о системе в сообщениях
тель не может модифицировать или удалять существующие сервера.
файлы. Разрешено только создавать новые при условии, -l: протоколировать все сессии (обычно используется
что пользователь ftp будет иметь достаточно прав на запись. /var/log/xferlog).
Дополнительно регулировать доступ к каталогам и фай- -A: разрешить только анонимный доступ.
лам (например, полностью запретить запись в определен- -M: запретить анонимным пользователям создавать пап-
ную папку) можно силами операционной системы, выстав- ки.
ляя соответствующие права пользователю ftp. В частнос- -m: разрешить анонимным пользователям модифици-
ти, рекомендуется запрещать для пользователя ftp запись ровать существующие файлы (если для этого достаточ-
в его домашний каталог, чтобы исключить возможность пе- но системных прав).
реполнения раздела, на котором он размещен. -o, -O: разрешить только запись на сервер всем пользо-
вателям (-o) или только анонимному пользователю (-O).
Ограниченный доступ В частности, таким образом можно организовать сбор
В том случае, если имя пользователя присутствует в фай- с удаленных серверов файлов резервных копий, чтение
ле /etc/ftpchroot, то соответствующий процесс запускает- которых пользователями не предусмотрено.
ся в chroot-окружении, ограничивая пользователю доступ -r: перевести сервер в режим «только для чтения». Лю-
только его домашним каталогом (или тем, который указан бая модификация размещенных данных будет запре-
во втором поле файла ftpchroot). При необходимости орга- щена.
низовать такую работу для большого числа пользовате-
лей (например, дать всем абонентам доступ для обновле- Дополнительную информацию всегда можно найти
ния своих домашних веб-страничек), в ftpchroot можно ука- на странице руководства man ftpd(8).
зать общую для них группу, предварив ее имя символом @.
Во втором поле дополнительно может быть указан ката- Заключение
лог, который следует использовать в качестве корневого Как видите, ftpd вполне пригоден для решения большинства
для соответствующего пользователя или группы. Вот при- типовых задач по обмену файлами. Если ваши потребности
мер такого файла: не выходят за пределы его возможностей, то вряд ли имеет
смысл обременять систему установкой дополнительных па-
vasya кетов. Однако если вам требуется создать «промышленный»
petya /var/db/petya
@dialup FTP-сервер, позволяющий более гибко управлять правами
доступа, пользователями, параметрами передачи файлов,
Теперь Вася и все пользователи группы dialup смогут то воспользуйтесь более серьезным решением.
работать только в пределах своих домашних каталогов, а
для Пети в качестве рабочей будет определена указанная
папка /var/db/petya. С помощью разделителя /./ можно ука-
зать каталог, отличающийся от корневого, который ста-
нет текущим:

serg /home/serg/./public _ html

В данном случае для пользователя serg доступ будет


ограничен каталогом /home/serg, но в качестве текущего
при входе на сервер установится /home/serg/public_html.

Как подстроить ftpd под собственные


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

№11, ноябрь 2005 19


администрирование

Автоматизируем установку драйверов


в Windows

Алексей Барабанов
Автоматизация установки MS Windows до предела сокращает вмешательство оператора.
Можно сказать, что практически исключает. Но при встрече с нестандартным оборудованием
преимущество оборачивается непреодолимой, на первый взгляд, преградой.

В
серии статей на тему автоматизации работ в сре- системе устройства и нажать нужную клавишу. Тогда сис-
де MS Windows, опубликованных в нашем журнале тема остановит процесс установки и «попросит» устано-
[1, 2, 3, 4], не затронуты вопросы автоматической вить дискету с драйверами (рис. 2).
установки драйверов. В большинстве случаев это не ме- Увы, такой дискеты нет в дистрибутиве эмулятора, и ис-
шает работе, так как используемая операционная систе- пользование SCSI-диска не рекомендовано для виртуаль-
ма славится тем, что имеет в своем дистрибутиве очень ных машин MS Windows XP. Хотя, сам драйвер присутствует
широкий набор драйверов. И традиционно каждый изго- в составе VMWare Tools. Тогда подготовим дискету вручную.
товитель нового устройства стремится, чтобы его драйвер Сначала вставим чистый диск и сформатируем его:
был представлен в дистрибутиве MS Windows. А если по-
падается «несчастливое» устройство, которое там отсутс- # fdformat /dev/fd0
твует, то драйвер можно поставить и после, хотя это и пе- Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
реведет установку из статуса автоматической в рукотвор- Formatting ... done
Verifying ... done
ную. Но, увы, дело оборачивается полным крахом, если
в качестве «незнакомого» для этой чудной ОС выступает # mkdosfs /dev/fd0
устройство, на которое далее предполагается установка, mkdosfs 2.10 (22 Sep 2003)
Device mounted using subfs, please do not access it while creating filesystem
то есть дисковый накопитель или его контроллер.
Далее всё будем рассматривать на примере созданно- # umount /dev/fd0
# mkdosfs /dev/fd0
го ранее, как указано в перечисленных выше статьях, дис-
трибутивного диска MS Windows XP Professional для авто- mkdosfs 2.10 (22 Sep 2003)

матической установки, запускаемой в виртуальной маши- # mount /dev/fd0


не VMWare. Но все сделанные выводы и рассмотренные
приемы справедливы и для других архитектур. Например, Теперь примонтируем диск с VMWare Tools и скопируем
для широко распространенных компьютеров на основе в корень чистого диска файлы с драйверами:
схемных решений для процессоров AMD.
Итак, в дистрибутиве MS Windows XP отсутствует # mount -t iso9660 -o ro,loop ↵
/usr/lib/vmware/isoimages/windows.iso /mnt
драйвер контроллера BusLogic SCSI, и если в настройках # cp -v /mnt/program\ files/VMware/VMware\ ↵
VMWare выбрать в качестве дискового устройства SCSI- Tools/Drivers/scsi/win2k/* /media/floppy
диск, то попытка поставить ОС в среде такой виртуальной `/mnt/program
`/mnt/program
files/VMware/VMware
files/VMware/VMware
Tools/Drivers/scsi/win2k/disk.tag' -> `/media/floppy/disk.tag'
Tools/Drivers/scsi/win2k/txtsetup.oem' -> `/media/floppy/txtsetup.oem'
машины завершится неудачей (рис. 1), так как именно кон- `/mnt/program
`/mnt/program
files/VMware/VMware
files/VMware/VMware
Tools/Drivers/scsi/win2k/vmscsi.cat' -> `/media/floppy/vmscsi.cat'
Tools/Drivers/scsi/win2k/vmscsi.inf' -> `/media/floppy/vmscsi.inf'

троллер BusLogic эмулируется в VMWare. `/mnt/program files/VMware/VMware Tools/Drivers/scsi/win2k/vmscsi.sys' -> `/media/floppy/vmscsi.sys'

Иначе говоря, система не нашла, куда ставиться. Но есть # umount /dev/fd0


штатный ход – в процессе установки подгрузить драйвера.
Для этого надо «поймать» на экране установки предложе- Полученный диск можно использовать при установке
ние нажать <F6> как указание о применении незнакомого MS Windows. Вставим его в привод в ответ на приглаше-

20
администрирование
ние и нажмем «S», как требуется. Система прочтет содер-
жимое диска и предложит подтвердить выбор (рис. 3) на-
жатием «Enter».
Далее система предложит добавить еще какие-нибудь
устройства (рис. 4), на что в нашем случае ответим отка-
зом опять же путем нажатия «Enter».
К сожалению, все перечисленные действия не приве-
дут к успеху. Поскольку в использованном диске автома-
тической установки нет возможности указать иное уст-
ройство загрузки дистрибутивных файлов, чем CD-ROM
и в ответ на запрос, где искать использованный драйвер
vmscsi.sys (рис. 5), приходится или прекращать установку Рисунок 1. Не найдено ни одного дискового устройства
вообще, или, понадеявшись на «авось», пропускать копи-
рование этого файла.
И так как теперь для работы второй фазы установки сис-
темы нужны еще и использованные драйвера SCSI, то не-
удачный финал предопределен (рис. 6).
Ничего не остается, как обратиться к источникам [5, 6, 7].
Здесь можно и закончить нашу историю, мол, читайте и воп-
лощайте. Но, к сожалению, информация с [5] весьма скуд-
на, с [6] противоречива и местами ошибочна, а с [7] откро-
венно наивна, как всякий дословный перевод техническо-
го источника. Хотя, безусловно, если нужно узнать и по-
нять все, то и прочесть кроме этой статьи придется также
все перечисленное.

Добавляем драйверы
устройств загрузки
Итак, проблема заключена в том, что установщик ОС дол- Рисунок 2. Запрос дискеты с драйверами
жен использовать драйвера применяемых дисковых ус-
тройств в процессе установки и далее. В данном случае
все нужные файлы содержатся в /mnt/program\ files/VMware/
VMware\ Tools/Drivers/scsi/win2k. Обычно драйвера постав-
ляются в виде исполняемого бинарного файла с суффик-
сом sys, далее обязательно есть файл с описанием и суф-
фиксом inf, и возможно еще некоторые файлы. Но все они
должны быть упомянуты в строках inf-файла обычно в сек-
ции [SourceDiskFiles]. Иногда все это еще и сопровождается
файлом с цифровой подписью – файл с суффиксом cat.
Точно следуя первой части рецепта с [8], внесем необхо-
димые изменения в файл TXTSETUP.SIF. Нахождение это-
го файла и все сопутствующие проблемы сборки готового
диска с ним уже обсуждались в [1,2,3,4] и здесь мы не бу-
дем еще раз это рассматривать. Вот модификация в фор-
мате, пригодном для автоматического патчирования:
Рисунок 3. Выбор драйвера с дискеты
# diff -Naur TXTSETUP.SIF.orig TXTSETUP.SIF +
*PNP0300 = "i8042prt",{4D36E96B-E325-11CE-BFC1-08002BE10318}
--- TXTSETUP.SIF.orig 2005-10-27 10:15:56.000000000 +0400 *PNP0301 = "i8042prt",{4D36E96B-E325-11CE-BFC1-08002BE10318}
+++ TXTSETUP.SIF 2005-10-29 21:32:40.000000000 +0400 *PNP0302 = "i8042prt",{4D36E96B-E325-11CE-BFC1-08002BE10318}
@@ -206,6 +206,9 @@ @@ -19281,6 +19286,7 @@
isapnp.sys = 1,,,,,,3 _ ,4,1,,,1,4 dac2w2k = dac2w2k.sys,4

+vmscsi.sys = 1,,,,,, _ x,4,1,,,1,4 +vmscsi = vmscsi.sys,4


+
+ [BootBusExtenders.Load]
ksecdd.sys = 100,,,,,, _ 5,4,0,0,,1,4 @@ -21639,6 +21645,7 @@
mountmgr.sys = 100,,,,,,3 _ ,4,0,0,,1,4 perc2 = "Dell PERC 2|3 RAID-╙╝╜БЮ╝╚╚╔Ю"
mrxdav.sys = 100,,,,,,,4,0,0 perc2gat = "Dell PERC 2/3 RAID-╙╝╜БЮ╝╚╚╔Ю (Gatling)"
@@ -18836,6 +18839,8 @@
*PNP0E02 = "pcmcia" +vmscsi = "VMware SCSI Controller"
*PNP0700 = "fdc"
[BootBusExtenders]
+PCI\VEN _ 104B&DEV _ 1040 = "vmscsi" pci = "└Ю═╘╒╔Ю Х╗╜К PCI",files.pci,pci

№11, ноябрь 2005 21


администрирование
мат. Сам файл vmscsi.sys (или файлы, если их много) на-
до просто скопировать в неизменном виде в директорию
i386 дистрибутивного диска и именно там будет его ис-
кать установщик.
Затем добавляем строку в секцию [HardwareIdsDatabase].
В этой секции описывается соответствие номеров уст-
ройств PCI и их драйверов. В нашем случае будет так PCI\
VEN_104B&DEV_1040 = «vmscsi». Т.е. указывается код
производителя, код устройства и имя файла с драйвером.
Как только установщик обнаруживает некое PCI-устройс-
тво, он ищет по этим кодам драйвер, ему соответствующий,
и затем грузит его, как описано чуть выше. Значения этих
констант можно взять из соответствующего этому драйве-
ру файла INF.
Ну и наконец надо связать с этим драйвером некую стро-
Рисунок 4. Запрос дополнительных драйверов ку комментария, что и делается путем добавления строки
в секцию [SCSI]: vmscsi = «VMWare SCSI Controller». Содер-
жание строки не имеет никакого принципиального значе-
ния для работы системы, но отсутствие ее вовсе недопус-
тимо и приводит завершению установки из-за отсутствия
параметра, описывающего драйвер.
Всего перечисленного должно быть достаточно по логи-
ке. Но только не в MS Windows. В этой чудной системе на-
до еще и специально указать в секции [SCSI.load] загруз-
ку нужного драйвера vmscsi = vmscsi.sys,4 из указанного
места в указанном формате, который далее будет связан
с соответствующим ему PCI-устройством и описание кото-
рого будет взято из соответствующей строки... Уф! Вот те-
Рисунок 5. Vmscsi.sys не найден на источнике установки перь все: файл драйвера скопирован куда надо, файл ука-
заний установщику «что делать», модифицирован как на-
до. Можно собирать диск и устанавливать систему. Сбор-
ка производится, как было описано в [1, 2, 3, 4]. После ус-
тановки обнаруживаем, что драйвер благополучно загру-
жен в систему (рис. 7).
Заметим, никаких дополнительных манипуляций с раз-
мещением таких файлов в директориях Drivers и подобное,
что предлагается в [6, 7, 8], делать не надо. В этом вопро-
се указанные источники заблуждаются.
Рисунок 6. «Голубая смерть»
Точно таким же образом можно на этапе загрузки под-
Здесь добавления вносятся в три секции файла ключить и все остальные драйверы дисковых устройств. Ес-
TXTSETUP.SIF. ли один и тот же драйвер используется для нескольких воз-
Во-первых, в секции [SourceDisksFiles] описываем файл можных PCI устройств, например viamraid, то надо для каж-
(или файлы, если их много), который оригинально размеща- дого набора PCI индексов записать отдельную строку в сек-
ется в директории i386 дистрибутивного диска. Но, как ви- ции [HardwareIdsDatabase], например так:
дите, формат строки немного отличается от предложен-
ного в [8]. Полностью все опции управления описаны в [9]. PCI\VEN _ 1106&DEV _ 3249 = "viamraid"
PCI\VEN _ 1106&DEV _ 3149 = "viamraid"
И здесь обнаруживается лишнее действие – сжатие фай- PCI\VEN _ 1106&DEV _ 3164 = "viamraid"
ла утилитой makecab.exe. Поскольку у нас вся сборка про-
изводится в среде GNU Linux, то ради экономии полутора Если же производитель устройств с разными PCI-ин-
десятков килобайт не будем портить чистоту среды и запус- дексами сотворил драйвера с одинаковыми именами (фир-
кать MS Windows, только чтобы воспользоваться отсутству- ма Intel очень такое любит), то ничего не мешает эти драй-
ющей в Linux утилитой makecab. И всего-то, что придется вера переименовать как угодно и соответственно изме-
сделать – поменять «3_» в строке описания на «_x». Полу- нить все аналогичные строки в TXTSETUP.SIF. Например,
чилось vmscsi.sys = 1,,,,,,_x,4,1,,,1,4. Число пробелов вокруг для драйвера BusLogic из VMWare Tools название файла
знака «=» не принципиально, а вот число запятых – очень можно поменять на vmscsi1.sys без какого-либо ущерба
даже. Вообще, похоже на колдовское заклинание. Главное, работоспособности.
не сбиться ни в одном знаке, а то вместо «грозы» выйдет Политика подключения драйверов должна быть макси-
«коза», а может, что и похуже. Но смысл этой строки по- мально объемлющей. То есть можно включить в загрузку
нятен. Здесь описываются файл с драйвером и его фор- все возможные драйверы, какие найдутся в коллекции со-

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

Добавляем драйверы устройств


через OemPnPDriversPatch
Как видно все на том же рис. 7 в виртуальном компьюте-
ре присутствует устройство, драйвер для которого не был
найден, это устройство SVGA, вместо которого использо-
ван драйвер VGA общего назначения. И устройство, драй-
вер которого определен в нашем случае недостаточно вер-
но, это драйвер сетевой карты. Использован присутству-
ющий в MS Windows драйвер AMD PCNET, в то время как
в VMWare есть собственный драйвер сетевой карты.
Все драйвера, которые предназначены для использо-
вания с виртуальным оборудованием VMWare, можно най- Рисунок 7. Vmscsi.sys установлен в систему
ти в примонтированном образе VMWare Tools, а именно
в /mnt/program\ files/VMWare/VMWare\ Tools/Drivers. Драй-
вера, подходящие для использования с MS Windows XP, со-
держатся внутри поддиректорий win2k или winnt2k. Возь-
мем все, кроме уже использованного драйвера scsi, и ско-
пируем в директорию дистрибутива $OEM$/$1/Drivers/Very_
looooong_filename. Такое имя выберем для того, чтобы до-
казать, что источники [6, 7] не правы, ограничивая имена
внутри дистрибутивного диска правилом 8.3. В процессе ус-
тановки содержимое дистрибутива, включая Drivers/Very_
looooong_filename, будет перенесено на загрузочный диск.
Для того чтобы использовать эти данные в настройке сис-
темы запишем (или раскомментируем) специальные стро-
ки в WINNT.SIF в секции [Unattended]:

OemPnPDriversPath="Drivers\Very _ looooong _ filename"


DriverSigningPolicy=Ignore Рисунок 8. Устанавливаем дополнительные драйверы
Первая строка укажет путь поиска файлов, а вторая поз- ции [Display] файла WINNT.SIF. Все перечисленные драй-
волит проигнорировать несоответствие подписей драйве- веры вместе со всеми необходимыми файлами были ско-
ров доверенным сертификатам, размещенным в дистри- пированы из директории C:\Drivers\Very_looooong_filename
бутиве. В целевой директории должны собраться следу- внутрь установочной директории MS Windows XP, что вид-
ющие файлы: но на рис. 8 в окошке поиска. Здесь можно сделать вывод,
что директорию с драйверами можно в конце установки уда-
# ls -l /uawsp2/\$OEM\$/\$1/Drivers/Very _ looooong _ filename лять, так же как и директорию с дистрибутивами устанав-
total 204 ливаемых программ в секции [GuiRunOnce]:
drwxr-xr-x 2 root root 4096 Oct 29 17:48 .
drwxr-xr-x 3 root root 4096 Oct 29 17:48 .. # grep -n rmdir WINNT.SIF
-r--r--r-- 1 root root 1929 Mar 23 2005 vmmemctl.inf
-r--r--r-- 1 root root 5452 Mar 23 2005 vmmemctl.sys 539:"%windir%\system32\cmd.exe /c rmdir ↵
-r--r--r-- 1 root root 7890 Mar 23 2005 vmmouse.cat %systemdrive%\InstData /s /q"
-r--r--r-- 1 root root 1312 Mar 23 2005 vmmouse.inf 540:"%windir%\system32\cmd.exe /c rmdir ↵
-r--r--r-- 1 root root 3904 Mar 23 2005 vmmouse.sys %systemdrive%\Drivers /s /q"
-r--r--r-- 1 root root 7900 Mar 23 2005 vmware-nic.cat
-r--r--r-- 1 root root 3561 Mar 23 2005 vmware-nic.inf
-r--r--r-- 1 root root 79584 Mar 23 2005 А вот парочка драйверов vmmemctl.sys и vmmouse.sys
vmx_fb.dll
-r--r--r-- 1 root root 2400 Mar 23 2005 так и не нашла себе применения. И поэтому осталась толь-
vmx_mode.dll
-r--r--r-- 1 root root 9044 Mar 23 2005
ко в C:\Drivers\Very_looooong_filename.
vmx_svga.cat
-r--r--r-- 1 root root 2396 Mar 23 2005 vmx_svga.inf
-r--r--r-- 1 root root 14912 Mar 23 2005 Еще одно интересное наблюдение было сделано в [10].
vmx_svga.sys
-r--r--r-- 1 root root 7860 Mar 23 2005 Установщик не ищет драйвера и их INF-файлы во вложен-
vmxnet.cat
-r--r--r-- 1 root root 3567 Mar 23 2005 vmxnet.inf
-r--r--r-- 1 root root 22528 Mar 23 2005 ных директориях от указанной в OemPnPDriversPath, но ес-
vmxnet.sys
ли записать несколько путей через точку с запятой, то они
После установки наблюдаем следующую картину будут обрабатываться в порядке сортировки имен. То есть
(рис. 8). если некоторые драйвера, например чипсета, требуется
Автоматически были установлены драйверы SCSI, SVGA установить первыми, то директорию с ними надо назвать
(и теперь экран настроен в разрешение 800х600), специаль- именем с использованием символов с меньшими номера-
ный драйвер сетевой карты, то есть так как задано в сек- ми в кодировке.

№11, ноябрь 2005 23


администрирование
вочного диска. Все нужные драйверы и сопровождающие
их файлы следует разместить внутри директории $OEM$\
Drivers. Причем внутри дерева вложенных директорий лю-
бой глубины. Можно выбирать любые мнемонические име-
на и группировать драйверы хоть по производителям, хоть
по классу устройств.
Если для работы был использован диск, подготовлен-
ный в [1, 2, 3, 4], то должно получиться примерно следу-
ющее:

# ls -l /uawsp2/\$OEM\$
total 180
drwxr-xr-x 4 root root 4096 Mar 22 2005 $$
drwxr-xr-x 6 root root 4096 Oct 31 00:11 $1
drwxr-xr-x 5 root root 4096 Oct 30 22:21 .
drwxr-xr-x 5 root root 4096 Apr 21 2005 ..
-rw-r--r-- 1 root root 118272 Dec 31 2002 AutoIt3.exe
-rw-r--r-- 1 root root 27 Mar 28 2005 Cmdlines.txt
Рисунок 9. Установка драйвера vmmouse drwxr-xr-x 3 root root 4096 Oct 30 22:21 Drivers
-rw-r--r-- 1 root root 264 Oct 5 22:51 Drivers.au3
В формате WINNT.SIF используется 8-битная кодиров- -rw-r--r-- 1 root root 20992 Dec 31 2002 SetupCopyOEMInf.exe
-rw-r--r-- 1 root root 3584 Dec 31 2002 WatchDriverSigningPolicy.exe
ка. Для России это cp866. Хотя достаточно добавить циф- -rw-r--r-- 1 root root 113 Mar 28 2005 mkusers.cmd
ровой префикс к имени директории с драйверами, посколь-
ку порядок цифр в всех кодировках совпадает. По мнению Как уже было сказано, в Drivers кладутся нужные драй-
авторов [10], логика работы системы такова: так как драй- веры. AutoIt3.exe – это интерпретатор скрипта Drivers.au3:
вера чипсета необходимы для работы многих других ус-
тройств, то установка в первую очередь зависимых уст- # cat /heap2/unattended-win/uawsp2/\$OEM\$/Drivers.au3
ройств не произойдет должным образом, если еще не ус- ProcessSetPriority("setup.exe",0)
тановлены драйвера основных. Run(@ScriptDir & "\WatchDriverSigningPolicy.exe")
ProcessWait("WatchDriverSigningPolicy.exe")
Но проблема с неустановленными драйверами vmmemctl. RunWait(@ScriptDir & "\SetupCopyOEMInf.exe Drivers")
sys и vmmouse.sys таким путем не решается. Так как эти ProcessClose("WatchDriverSigningPolicy.exe")
ProcessSetPriority("setup.exe",2)
драйвера проиграли конкуренцию в PnP тем, которых пред-
почел PnP-резолвер, использовавший информацию из INF- А SetupCopyOEMInf.exe и WatchDriverSigningPolicy.exe –
файлов. И эти драйвера приходится добавлять вручную че- это простенькие программки, первая из которых выполня-
рез «Мастер обновления оборудования». Выбираем «Уста- ет соответствующий системный вызов [14], а вторая избав-
новку из указанного места» и режим «Не выполнять поиск. ляет от диалога с вопросом о доверии поставщику в слу-
Я сам выберу нужный драйвер» (см. рис. 9). чае нахождения неподписанных драйверов.
Получается, что драйвер манипулятора мышь изVMWare Для запуска указанных программ используется следую-
не был установлен, но прошел этап регистрации. Иначе го- щая последовательность строк, записываемых в WINNT.SIF
воря, логика работы системы иная, чем это предполагают в секции [GuiUnattended]:
авторы [10]. Система регистрирует все драйвера. И как
только после установки некоторых из них появится воз- DetachedProgram="%windir%\system32\cmd.exe"
Arguments="/Q /C FOR /F %I IN (%SystemRoot%\SYSTEM32\ ↵
можность установки зависимых, то это произойдет да- $WINNT$.INF) DO (FOR %J IN (%I$OEM$) DO (IF EXIST %J ↵
же, если в последовательности сортировки имя директо- start /min /D%J Autoit3.exe Drivers.au3)))"
рии с главными драйверами получило очередность пос-
ле директории с зависимыми. Удивительно, что фантазия Этот набор символов, который можно детально ра-
с цифровыми префиксами повторяется из рецепта в ре- зобрать с помощью [15], приводит к запуску скрипта
цепт на [6] и [7]. Drivers.au3 в фазе T-39 [3] процесса установки. После че-
Тем не менее метод регистрации всех драйверов зара- го все драйверы с установочного диска регистрируются в
нее без учета их так называемой очередности был успеш- базе драйверов и далее участвуют в установке. Именно
но реализован. «участвуют»! То есть и этот метод не приводит к гаранти-
руемой установке конкурентных драйверов. Иначе говоря,
Добавляем драйверы устройств установка идет все также на основании информации из INF-
через DetachedProgram файлов. Единственное преимущество в том, что драйверы
Существует еще один способ подгрузить в автоматическом размещаются на CD в произвольной структуре директорий
режиме драйверы в устанавливаемую систему. В секции и в процессе установки не копируются на диск вовсе.
[GuiUnattended] можно указать опцию DetachedProgram [11], Не стоит забывать, что хотя все драйверы регистрируют-
в которой описать программу, запускаемую параллельно ся в системной базе, но те, что не подключаются в процес-
с выполнением основной программы setup.exe. Этот метод се установки, остаются на дистрибутивном диске. И именно
установки драйверов подробно описан в [12]. Там же приве- там система далее ожидает их найти. То есть для VMWare та-
дена ссылка на архив необходимых программ [13]. Его на- ким местом будет «D:\$OEM$\Drivers\...». Значит, если далее
до загрузить и распаковать в директорию $OEM$ устано- предполагается проблемный драйвер установить вручную,

24
администрирование
то потребуется или оставить дистрибутивный диск в лотке составу используемого оборудования. Ну а поскольку все
дисковода, или позаботиться об обязательном подключе- работы по созданию такого диска выполнялись в среде GNU
нии компьютера к сети. Поэтому предлагается композит- Linux, то после приобретения нового и неизвестного ком-
ный вариант, описанный далее. пьютера нужно лишь попросить установить диск с драйве-
рами от него в локальный привод компьютера с GNU Linux,
Практические выводы затем в сеансе удаленного подключения через SSH доба-
Как уже было сказано выше, с проблемой специальных вить новые драйвера в рабочую директорию для создания
драйверов приходится сталкиваться лишь только оборудо- загрузочного CD и записать новую версию диска автома-
вание выйдет за стандартную Intel-архитектуру простень- тической установки для этой локальной сети с учетом но-
ких компьютеров общего применения. Можно подготовить- вого компьютера. Вот и все! Далее все операции автомати-
ся заранее, а можно принять меры сразу же после получе- зированы, как описано в [3, 4]. И ваше удаленное админис-
ния нового оборудования. трирование станет безграничным настолько, что его мож-
Первым делом надо взять диск с драйверами, постав- но будет осуществлять даже с пляжа Мондраго на остро-
ляемый с оборудованием, и найти там драйверы дисковых ве Майорка через GPRS-роуминг с мобильного телефона
устройств и контроллеров. Их следует устанавливать ме- с Nokia 6670. Правда, придется купить к телефону беспро-
тодом, описанным в разделе «Добавляем драйверы уст- водную клавиатуру, но... это уже детали!
ройств загрузки». Все файлы *.sys копируются в $OEM$,
и, пользуясь информацией из соответствующих *.inf, вно- Литература и ссылки:
сятся модификации в TXTSETUP.SIF. Здесь еще одна под- 1. Барабанов А. Автоматизация MS Windows, или Autoit как меч-
сказка. Все, кто внимательно читал, должны были уже дога- та эникейщика. Часть 1. – Журнал «Системный администра-
даться, что установщик ОС считывает файл TXTSETUP.SIF тор», №4, апрель 2005 г. – 11-15 с.
целиком и анализирует его. Другими словами, нет необхо- 2. Барабанов А. «Автоматизация MS Windows, или Autoit как меч-
димости выискивать в этом полумегабайтном файле тре- та эникейщика. Часть 2. – Журнал «Системный администра-
буемые секции и добавлять в них строчки, как предлагает- тор», №5, май 2005 г. – 54-58 с.
ся в [6, 7]. Достаточно просто дописать к файлу новые сек- 3. Барабанов А. «Автоматизация MS Windows, или Autoit как меч-
ции с нужными ключами. Система сама во всем разберет- та эникейщика. Часть 3. – Журнал «Системный администра-
ся и соединит все одноименные секции в одну. Драйверы тор», №6, июнь 2005 г. – 25-31 с.
остальных периферийных устройств, видеоадаптеры, се- 4. Барабанов А. «Автоматизация MS Windows, или Autoit как меч-
тевые карты, модемы и прочее копируются вместе со все- та эникейщика. Часть 4. – Журнал «Системный администра-
ми сопутствующими файлами внутрь директории с любым тор», №7, июль 2005 г. – 46-47 с.
мнемоническим именем, располагаемой в $OEM$\Drivers 5. Оригинальная информация по созданию дисков автомати-
так, как описано в разделе «Добавление драйверов уст- ческой установки MS Windows – http://www.microsoft.com/
ройств через DetachedProgram». И соответственно моди- resources/documentation/WindowsServ/2003/all/techref/en-us/
фицируется WINNT.SIF для запуска установочного скрип- Default.asp?url=/Resources/Documentation/windowsserv/2003/
та Drivers.au3, который также вместе со всеми прилагае- all/techref/en-us/W2K3TR_unatt_how.asp?frame=true&hidetoc=
мыми программами помещается в $OEM$. true.
Узнать заранее, какие драйверы будут проигнориро- 6. Сайт с источником знаний и откровений по автоматизации ус-
ваны в процессе автоматической установки, невозмож- тановки MS Windows – http://unattended.msfn.org.
но, и поэтому на начальном этапе подготовку установоч- 7. Русский перевод и адаптация информации с unattended.msfn.
ного диска можно было бы считать завершенной. Если org – http://oszone.net/display.php?id=2747.
после инсталляции ОС на жесткий диск компьютера выяс- 8. Перевод статьи об интеграции дисковых драйверов – http://
нится, что некоторые особенно нужные драйверы не бы- oszone.net/display.php?id=2782.
ли установлены, то их следует далее устанавливать так, 9. Перевод статьи о параметрах [SourceDisksFiles] – http://oszone.
как описано в разделе «Добавление драйверов устройств net/display.php?id=3123.
через OemPnPDriversPatch», но при этом запретить уда- 10. Перевод статьи об установке через WINNT.SIF – http://oszone.
ление директории с драйверами из WINNT.SIF в секции net/display.php?id=2781.
[GuiRunOnce]. Тогда нужные драйверы зарегистрируются 11. Описание опций WINNT.SIF в секции GuiUnattended – http://
и далее можно будет их доставить прямо с жесткого дис- www.microsoft.com/technet/prodtechnol/windowsserver2003/
ка компьютера в сеансе удаленного подключения к рабо- library/TechRef/755f8019-165a-4a50-802d-d1b116e91e7a.mspx.
чему столу. И здесь снова подсказка. Поскольку есть ка- 12. Drivers from CD (AutoIt method) – http://www.msfn.org/board/index.
тегория устройств, которые подключаются динамически, – php?showtopic=51406.
модемы, сканеры, принтеры, и драйвера таких устройств 13. Архив DriversAutoit.zip – http://www.msfn.org/board/index.php?
могут быть затребованы работающей системой в процес- act=Attach&type=post&id=9070.
се эксплуатации, то их тоже следует разместить в неуда- 14. Описание SetupCopyOEMInf – http://msdn.microsoft.com/library/
ляемой директории $OEM$\$1\Drivers. Будучи зарегистри- default.asp?url=/library/en-us/setupapi/setup/setupcopyoeminf.
рованными, эти драйверы установятся при первом исполь- asp.
зовании подключаемого устройства. 15. Справочник по опциям командной строки MS Windows XP –
Таким образом, в каждой локальной сети должен нахо- http://www.microsoft.com/resources/documentation/windows/xp/
диться установочный диск, модифицированный согласно all/proddocs/en-us/if.mspx.

№11, ноябрь 2005 25


администрирование

GRUB на CD, или Ещё один способ


восстановить MBR

Алексей Мичурин
Потеря MBR – наверное, самая досадная потеря. Порча считанных байт полностью
парализует абсолютно исправную систему. Если вы активно экспериментируете с
операционными системами, то знакомы с такой ситуацией не понаслышке. Существует
простое и универсальное решение на основе GRUB, способное спасти ситуацию минимальными
средствами и силами.

М
ы обсудим пути решения про- Первое, что загружает BIOS с жёс- и исключения (например, Boot Easy –
блем, возникающих при за- ткого диска, – это MBR, самый пер- стандартный загрузчик для FreeBSD).
грузке системы. Поэтому спер- вый сектор диска. В MBR содержатся Загрузочная запись партиции
ва вкратце рассмотрим этот процесс. таблица разделов диска и небольшая обычно составляет один сектор –
программа, которой и передаёт управ- 512 байт (однако и тут есть исключе-
Процесс загрузки ление BIOS. ния, например, QNX). Нередко этот за-
Начнем с основных этапов загрузки Этот загрузчик анализирует табли- грузчик уже «умеет» работать с файло-
операционных систем на платформе цу разделов и считывает загрузочный вой системой, он в состоянии подгру-
PC, разберёмся, какие возможны от- раздел одной из партиций. Обычно вы- зить собственные модули и способен
казы и как их избежать. бирается активная партиция, хотя есть загрузить ядро или другую программу,

26
администрирование
осуществляющую настрой- няли настройки, удалили или
ку и запуск ядра (например, переместили какие-то файлы,
loader во FreeBSD). установили новую версию ПО
На рис. 1 показаны схе- и не обновили загрузочные
мы загрузки трёх ОС. Изоб- записи, произвели тонкую на-
ражённая структура диска стройку файловой системы,
предельно проста: нет расши- изменив её параметры.
ренной партиции, нет разде- Причины можно перечис-
лов подкачки и прочих дета- лять бесконечно. Для разных
лей. Имеется только три пар- ОС они специфичны и зависят
тиции, на каждой из которых не только от возможностей
установлена своя ОС. загрузчика, но и от особен-
Windows/DOS загружает- ностей файловой системы.
ся согласно описанной схеме.
MBR-код считывает загруз- Другие отказы
чик с партиции, а тот считы- Некоторые системы (напри-
вает и запускает программу- мер, FreeBSD) используют
загрузчик ядра. дополнительные фазы за-
Linux загружается по такой грузки. На этих фазах тоже
же схеме. Заметьте, в MBR могут возникнуть проблемы.
и в загрузочной области пар- Но из своего опыта могу ска-
тиции могут быть разные за- зать, что чаще всего страда-
грузчики. Так в MBR может Рисунок 1. Схема загрузки. На диске три раздела, в которых ют ранние фазы, которые де-
установлены Windows, Linux и FreeBSD
находиться Boot Easy, а для лят между собой разные ОС.
загрузки ядра при этом будет исполь- свой собственный загрузчик, который Экзотические промежуточные за-
зоваться LILO, хотя в пакет LILO, ко- в состоянии загрузить только её. грузчики как раз мало кому известны,
нечно, входит собственный MBR-за- Ск ла д ыв аетс я з нако ма я мно - и их практически никто «не трогает».
грузчик. гим ситуация: чтобы загрузить Linux Когда отработали все загрузочные
Загрузка FreeBSD идёт по чуть бо- (или другую, отличную от Windows ОС), секторы, могут возникнуть проблемы
лее сложной схеме. Согласно стандар- вам надо восстановить LILO (или дру- с ядром. В этой статье мы не будем де-
тной процедуре, MBR-код (в терминах гой, отличный от Windows-загрузчи- тально рассматривать эти вопросы, со-
FreeBSD «boot0») загружает boot1-код ка), а чтобы восстановить LILO – за- средоточившись только на процессе
из партиции. Но во FreeBSD предус- грузить Linux. загрузки. А проблемы ядра отнесём
мотрено разбиение партиции на под- Вторая часто встречающаяся си- к разряду проблем ОС.
разделы (в терминах FreeBSD парти- туация: вы решили усовершенство-
ция называется «слайс», а подпарти- вать загрузчик, но забыли включить Live CD: он ли нам нужен?
ция – «партиция»). Поэтому процесс в нём жизненно важную функцию. Итак, ваша ОС цела, но загрузчик ис-
повторяется в уменьшенном масшта- Например, вы могли нас траи- порчен, и загрузиться вы не можете.
бе: загрузчик boot1 считывает и запус- вать стандартный загрузчик FreeBSD Вам требуется восстановить загруз-
кает код boot2 из подпартиции. Boot2 (с помощью команды boot0cfg) и за- чик. Решение «всё переустановить»
загружает программу loader, которая быть включить поддержку больших не подходит, ведь при этом вы поте-
конфигурирует и запускает ядро. винчестеров (ключ -o packet), которая ряете данные.
Как видите, за исключением неко- по умолчанию отключена. После пере- Первое, что приходит на ум, – вос-
торых деталей, процедуры загрузки са- загрузки вы обнаружите, что или ниче- пользоваться загрузочным диском. Ес-
мых разных ОС весьма схожи. И сбои го не загружается, или доступна только ли у вас имеется «спасательный» CD
в процессе загрузки часто имеют оди- ОС из первой партиции. А это, скорее от вашей ОС, то скорее всего он вам
наковую природу. всего, Windows, которая никак не помо- поможет. После загрузки можно смон-
жет вам исправить ситуацию. тировать партицию с «потерянной» ОС
Возможные сбои и выполнить команду chroot. После это-
при загрузке Второй шаг загрузки го вы окажетесь в привычной среде.
Систематизировать сбои проще все- Следующий этап более «интеллекту- К сожалению, этот приём может
го по фазам загрузки, на которых они ален», и здесь могут случиться самые не сработать. Чаще всего, магическо-
случаются. разные поломки. го диска просто не оказывается под ру-
Этот загрузчик уже считывает дан- кой в нужный момент. Для комфорт-
Первый шаг загрузки ные, расположенные в файловой сис- ной работы вам скорее всего придёт-
С утратой главного загрузчика (MBR) теме (он может «знать» физическое ся скорректировать переменные ок-
сталкиваются все, кто устанавливает расположение данных или с файла- ружения PATH, PAGER, EDITOR, LANG
Windows. Эта ОС не предоставляет ни- ми), поэтому он может потерять рабо- и другие. Могут понадобиться и другие
какого выбора и всегда устанавливает тоспособность из-за того, что вы поме- (порой неожиданные и не очевидные)

№11, ноябрь 2005 27


администрирование
настройки. Кроме того, возможен конфликт между ядром, default 0
timeout 300
загруженным с CD и ПО, принадлежащем вашей ОС. Ве- color light-green/black black/green
роятность такого конфликта не велика, но она тем боль-
# FreeBSD
ше, чем более творчески вы подходили к системе, само- title FreeBSD /dev/ad0s1a
стоятельно собирали ПО, корректировали исходные коды, root (hd0,0,a)
kernel /boot/loader
устанавливали новые версии ядра и прочее. title FreeBSD /dev/ad0s2a
Можно воспользоваться не «спасательным» диском, root (hd0,1,a)
kernel /boot/loader
а просто Live-дистрибутивом. Но и этот подход не гаранти- title FreeBSD /dev/ad0s3a
рует стопроцентный успех. root (hd0,2,a)
kernel /boot/loader
Во-первых, не все Live-дистрибутивы содержат средства title FreeBSD /dev/ad0s4a
восстановления загрузочных записей. Во-вторых, средс- root (hd0,3,a)
kernel /boot/loader
тва могут быть, но не те или не той версии. В-третьих, мо-
гут даже совпасть версии, но вам бы хотелось восстано- # Linux
title Linux (/boot/vmlinuz) /dev/hda1
вить именно свой загрузчик, так любовно скомпилирован- root (hd0,0)
ный с уникальным набором опций. В-четвёртых, устанав- kernel /boot/vmlinuz root=/dev/hda1
title Linux (/boot/vmlinuz) /dev/hda2
ливая загрузчик с CD, надо детальнейшим образом настро- root (hd0,1)
ить его, чтобы он загружал необходимые файлы не с того kernel /boot/vmlinuz root=/dev/hda2
title Linux (/boot/vmlinuz) /dev/hda3
диска, с которого его устанавливают (так по умолчанию root (hd0,2)
настраивается большинство загрузчиков), а с указанного. kernel /boot/vmlinuz root=/dev/hda3
title Linux (/boot/vmlinuz) /dev/hda4
Не все загрузчики вообще допускают подобную настройку. root (hd0,3)
Кроме того, надо учитывать, что сталкиваться с такого ро- kernel /boot/vmlinuz root=/dev/hda4
да ситуациями приходится не часто, и, скорее всего, при- # Windows
дётся внимательно изучить документацию. Напомню так- title Windows
же, что при использовании Live-CD у вас не будет выбора, rootnoverify (hd0,0)
chainloader +1
и все манипуляции вы будете производить не в «привыч- makeactive
ной обстановке», а в среде Live-дистрибутива, скорее все- # halt/reboot
го, в условиях некоторого (или острого) дефицита средств title REBOOT
и возможностей. reboot
title HALT
Здесь-то и возникает мысль: «вот бы на минуточку пог- halt
рузиться в мой Linux/FreeBSD/что-то ещё; минуты бы хвати-
ло, чтобы исправить все проблемы в лучшем виде». Имен- Я не буду здесь даже пытаться пересказать докумен-
но это и поможет сделать GRUBable CD. тацию на GRUB. Ограничусь только краткими коммента-
Слово «GRUBable», как вы, наверное, уже догада- риями.
лись, является производным от «bootable». Но обычный Самые первые директивы задают глобальные парамет-
bootable-CD содержит ОС, способную работать автоном- ры: default – секция, загружаемая по прошествии тайм-ау-
но, а GRUBable-CD содержит мощный загрузчик GRUB, та; timeout – тайм-аут в секундах (его в данном случае луч-
способный загружать любую ОС, но на самом CD ника- ше сделать побольше, чтобы было время сориентировать-
кая ОС не установлена. (Слово «GRUBable» придумал ав- ся); color – цвета, их можно было оставить «умолчательны-
тор, нигде ранее он не встречал ни такого слова, ни описа- ми», но лично мне нравится зелёный. Кроме того, исполь-
ния подобного подхода.) GRUBable CD может взять на се- зование необычного цвета позволит вам быстро сориенти-
бя все функции первого и второго загрузчиков и загру- роваться, если вы загрузитесь с компакт-диска по ошибке
зить именно вашу ОС, даже если все boot-сектора были или случайно.
повреждены. Секция «FreeBSD» состоит из четырёх блоков, каждый
Конечно, отсутствие на диске ОС нельзя отнести к чис- из которых позволяет загрузить ОС с одной из четырёх
лу преимуществ предлагаемого решения, но зато создать партиций (это придаст нашему диску некоторую универ-
GRUBable CD можно за считанные минуты, а пользы он мо- сальность). Директива title задаёт заголовок, который бу-
жет принести даже больше, чем иной Live-CD. дет фигурировать в меню. Root задаёт корневое устройс-
тво. GRUB нумерует устройства от нуля и партиции тоже
Создаём GRUBable CD за пять минут от нуля(!). Команда kernel загружает и выполняет загруз-
Чтобы установить GRUB на CD, нужно совсем немного. Пер- чик ядра FreeBSD.
вым делом раздобудьте бинарный дистрибутив GRUB. Ско- Аналогично построена и секция «Linux». Здесь тоже
рее всего, он уже есть или на вашем диске, или среди дис- имеется четыре подобные записи. Следует сделать толь-
трибутивов. (Как скомпилировать GRUB самостоятельно, ко одну оговорку относительно директивы kernel. В Linux
мы ещё обсудим.) Найдите в нём файл-образ stage2_eltorito. нет чёткого места в файловой системе для ядра. В старых
Всё, больше от GRUB вам ничего не понадобится. дистрибутивах ядро находилось в корне файловой систе-
мы /vmlinuz. Именно на это ориентировались создатели до-
Создаём конфигурационный файл кументации на GRUB. Но сейчас, как мне кажется, ядро ча-
Теперь создадим файл-меню. Предлагаю рассмотреть сле- ще хранится в директории /boot. Имя vmlinuz тоже уходит
дующий вариант: в прошлое. Сейчас можно встретить имя bzImage и дру-

28
администрирование
гие. Все эти обстоятельства следует зование команды initrd. Ядра NetBSD Опция -R подключает расширение
учесть при создании конфигурацион- и OpenBSD не распознаются, если они Rock Ridge.
ного файла. В тексте title лучше оста- скомпилированы не как a.out, а как ELF. Опция -jcharset эквивалентна паре
вить напоминание, где GRUB будет ис- Чтобы загрузить ELF-ядро, его тип сле- опций -J и -input-charset. Первая –
кать ядро. Так вы избежите многих не- дует указывать явно: включает использование Joliet-
доразумений и неожиданностей. записей, хранящих имена фай-
Секция «Windows» устроена иначе. kernel --type=netbsd /boot/netbsd-elf лов и директорий в Unicode, а вто-
Это связано с тем, что в данном слу- рая – задаёт исходную кодировку
чае GRUB может взять на себя только QNX отличается двухкилобайтным для корректного преобразования
функции первого загрузчика (MBR). загрузчиком, поэтому аргумент коман- в Unicode. Эти опции всем хорошо
Командой rootnoverify мы устанавли- ды chainloader должен быть скоррек- знакомы.
ваем корневое устройство, но не мон- тирован: Опция -b указывает имя файла-об-
тируем его. Далее загружаем первый раза загрузчика (все пути указыва-
сектор (команда chainloader), в кото- chainloader +4 ются относительно корня файловой
ром и содержится загрузчик. И в за- системы компакт-диска).
ключение делаем партицию актив- Одним словом, заглянуть в доку- Опция -c задаёт имя служебного
ной (makeactive), DOS/Windows к это- ментацию никогда не помешает. файла, который будет создан са-
му не равнодушен. мой mkisofs. Он в какой-то степени
Вообще-то по такой же схеме мож- Создаём ISO-образ выполняет роль первого загрузчи-
но загружать и другие ОС. Например, Давайте создадим временную дирек- ка. Эту опцию можно и не исполь-
загрузить FreeBSD, заменив только торию и назовём её для определён- зовать, тогда файл будет создан
первый загрузчик, можно так: ности iso. В ней мы подготовим дере- в корне файловой системы.
во каталогов, подлежащее переносу Опция -no-emul-boot говорит о том,
title FreeBSD на CD. Нам понадобится два файла: что при загрузке не надо эмулиро-
rootnoverify (hd0,0)
chainloader +1 iso/boot/grub/menu.lst – конфигураци- вать дисковод. Существуют про-
онный файл, который мы только что со- цедуры загрузки, при которых
После выполнения этих команд здали, и iso/boot/grub/stage2_eltorito – CD-ROM рассматривается как дис-
GRUB передаст управление boot1-про- файл из дистрибутива GRUB. В при- ковод «A:», что позволяет старым
цедуре, и загрузка пойдёт по естест- нципе, файл stage2_eltorito можно бы- загрузчикам чувствовать себя
венному для FreeBSD сценарию. ло бы поместить и в любое другое мес- как дома. У нас другой случай.
Чаще всего такие приёмы не оправ- то файловой системы, но вот файл Опция -boot-load-size указывает
даны, и лучше использовать все име- menu.lst должен находиться именно длину загрузчика, вернее, части
ющиеся возможности GRUB, но быва- в директории /boot/grub/. загрузчика, которую следует счи-
ют и исключения. Например, вы може- Кроме того, на этом диске можно тать в память.
те обновить Windows на машине с дву- сохранить резервную копию критичных Опция -boot-info-table говорит
мя ОС: Windows и Linux. При этом об- данных. Вернее, целесообразнее пос- о том, что в образе загрузчика
новлении теряется только MBR-запись, тупать наоборот: делать Backup-дис- (у нас это файл stage2_eltorito) сле-
но основной код LILO, находящийся за ки «загрузочными». Это потребует рас- дует разместить служебную таб-
пределами MBR, цел. Зачастую LILO хода лишних 100 килобайт (что не су- лицу. Поэтому файл и изменяется
выполняет довольно сложные функции, щественно даже для CD, не говоря уж при создании образа. Надо ска-
например, подгружает initrd (с этим мо- о DVD), но значительно повысит цен- зать, что при таком наборе опций
жет справиться и GRUB). Возможно, ность такой резервной копии. эта опция совершенно не обяза-
LILO запускает ядро с опциями, кото- Теперь создаём ISO-образ: тельна – таблица всё равно была
рые вы просто забыли, или вам просто бы создана.
лень их снова набирать. Одним словом, mkisofs -R \ Последняя опция -o указывает имя
-jcharset koi8-r \
вы потеряли MBR, но хотите запустить -b boot/grub/stage2 _ eltorito \ iso-файла.
LILO, а не просто «сырое» ядро. Здесь- -c boot/boot.catalog \
-no-emul-boot \
то вам и пригодится указанная возмож- -boot-load-size 4 \ Итак, образ boot.iso готов.
ность, надо только правильно указать -boot-info-table \
-o boot.iso \
партицию: iso Записываем CD и загружаемся
с него
title LILO on hda2 Обратите внимание, файл stage2_ Записать полученный образ на CD
rootnoverify (hd0,1)
chainloader +1 eltorito должен быть доступен для за- можно любым, привычным для вас,
писи, а утилита mkisofs этой доступнос- способом.
Если вы планируете загружать тью непременно воспользуется и слег- Под Linux:
другие ОС, то рекомендую обратить- ка его изменит(!). Позаботьтесь о ре-
ся к документации на GRUB. Практи- зервной копии этого файла. cdrecord -dev=0,1,0 -data boot.iso
чески любая ОС имеет собственную Давайте рассмотрим опции по по-
специфику. Linux допускает исполь- рядку. Или под FreeBSD:

№11, ноябрь 2005 29


администрирование

Рисунок 2. Меню GRUB Рисунок 3. Результат выполнения команды help в командной


строке GRUB
burncd -v -f /dev/acd0 data boot.iso fixate строки в рамках одной статьи просто невозможно. Да это
и не нужно. Список команд вы можете получить, набрав
Можно воспользоваться и любыми Windows-утилитами. help (см. рис. 3).
Теперь при загрузке с этого диска вы увидите меню Подробную справку по любой команде можно получить,
(см. рис. 2). набрав: «help команда».
Вы можете выбрать нужный пункт и загрузиться или вос- Большинство команд покажутся знакомыми и понятны-
пользоваться дополнительными возможностями, доступны- ми пользователям UNIX. За подробной информацией обра-
ми, как вы видите, по клавишам «e» (редактирование ме- щайтесь к документации.
ню) и «c» (командная строка).
Что можно усовершенствовать
Дополнительные возможности Наш первый GRUBable CD мы создали практически без
GRUB-диск предоставляет гораздо больше возможностей, усилий. А что, если подойти к вопросу немного более твор-
чем просто выбор одного из пунктов меню. Нажав кноп- чески?
ку «c», вы попадаете в командную строку, откуда можете
сами вводить любые команды. Скажем, если у вас в ме- Размещаем файлы по своему усмотрению
ню не предусмотрена загрузка ядра /boot/bzImage-myone, Кому-то может не понравиться фиксированность путей
то вы можете ввести соответствующие команды и загру- и захочется разместить файлы по собственному усмот-
жать именно это ядро. Не забудьте только ввести в заклю- рению.
чение команду boot. При работе с меню GRUB добавляет её Добиться большей компактности и гибкости можно,
автоматически, но с консоли её следует вводить вручную. вкомпиллировав конфигурационный файл в тело stage2_
То же самое можно сделать, перейдя в режим редактиро- eltorito. Эта возможность появилась в GRUB ещё в 2002 го-
вания меню (клавиша «e») и скорректировав аргумент ко- ду, и в данном случае она как нельзя кстати. Файл с меню
манды kernel. Режим редактирования позволяет не только всё равно нельзя будет отредактировать на компакт-дис-
изменять, но и добавлять/удалять команды. ке, а значит, вы не теряете никаких возможностей, «зашив»
Кроме того, если вы использовали GRUB ранее (до ава- меню в тело загрузчика. Тем более что вы всегда сможете
рии), вы можете загрузить файл-меню, хранящийся у вас выйти из встроенного меню и воспользоваться всеми пре-
на диске. Для этого достаточно ввести команду (в режиме имуществами командной строки. Зато теперь вы сможете
командной строки) следующего вида: размещать файлы на диске как вам заблагорассудится.
Взять исходные коды GRUB можно на официальной
configfile (hd0,2)/boot/grub/menu.lst странице проекта http://www.gnu.org/software/grub/grub.html.
На момент написания статьи самой свежей была версия
После этого вы окажетесь в привычном меню. 0.97, о ней и пойдёт речь.
Особо следует отметить, что командная строка GRUB Собирать GRUB я бы посоветовал под обычным пользо-
оснащена прекрасным механизмом автодополнения. Если вателем, чтобы подстраховаться от неожиданностей и оши-
вы напишете только первую букву этой команды и нажмёте бок. GRUB очень неприхотлив и собирается практически
клавишу «Tab», то GRUB выдаст вам подсказку: любыми средствами. Так, например, в INSTALL написано,
что для сборки нужен GNU make, но у меня GRUB прекрас-
Possible commands are: cat chainloader cmp color configfile
но собрался и обычным make (под FreeBSD).
Если вы добавите теперь ещё две буквы («о» и «n») и сно- Процедура сборки стандартная: скачиваем, разархиви-
ва нажмёте «Tab», то GRUB дополнит строчку до «configfile» руем, конфигурируем:
автоматически. Автодополнение работает с дисками, ката-
логами и файлами, что очень удобно. ./configure \
--prefix=$HOME/GRUB \
Командная строка GRUB предоставляет широчайший --enable-preset-menu=menu.lst
набор возможностей. GRUB позволяет работать с файло-
выми системами, искать файлы (команда find), просмат- Здесь я указал два ключа: первый предписывает произ-
ривать их содержимое (cat). Он имеет средства диагнос- водить установку в домашний каталог, второй – вкомпил-
тики оборудования, «ручной» детализации параметров лировать указанное меню.
дисков и многие другие. Описать все средства командной Затем выполняем make и make install.

30
администрирование
Теперь полученный файл stage2_eltorito (он лежит в ди- но – от CD или локального диска до NFS или удалённого
ректории $HOME/GRUB/lib/grub/i386-unknown) является TFTP-сервера.
полностью самодостаточным. Его можно положить в лю- Но следует помнить, что, увеличив функциональность
бое место файловой системы компакт диска; файл menu.lst нашего CD, мы снизили его универсальность. Восполь-
больше не требуется. зоваться новой функцией можно только при совпадении
Такое решение, безусловно, привлекает компактностью версий ядра. Иначе ядро-варяг, загруженное с CD, может
и изяществом. Тем более что, из встроенного меню всегда не воспринять модули, хранящиеся на диске и рассчитан-
можно выйти, выполнить любые команды или даже загру- ные на другое ядро. Даже при полном совпадении версий
зить другое меню. Но я бы советовал держать на диске до- (но не сборок) недоразумение могут вызвать некоторые
кументацию к GRUB. Можно сохранить на диске ещё и ко- действия rc-скриптов (скажем, попытки поднять сетевые
пию вкомпиллированного меню, хотя, как вы видели, пун- интерфейсы, поддержка которых не предусмотрена CD-яд-
кты меню всегда можно просмотреть и отредактировать ром). Но в целом это довольно жизнеспособная схема.
по клавише «e». Понятно, что следующим шагом после переноса яд-
ра на CD будет перенос на CD init, rc-скриптов, а следова-
Сохраняем образы загрузчиков на CD тельно, и корневой файловой системы. Но тогда мы полу-
Вы видели, что при загрузке DOS мы просто считывали чим Live-CD со всеми его преимуществами и недостатка-
первый сектор DOS-партиции. GRUB, по понятным причи- ми, а мы договорились не рассматривать вопросы созда-
нам, не умеет загружать ядро DOS и Windows и делегирует ния загрузочных CD.
эти функции «родному» загрузчику. Так же обстоят дела и
с некоторыми другими ОС, например, с QNX. Перспективы GRUB
Если испортится загрузчик, расположенный в партиции, Напомню, что GRUB снабжён доброй сотней мегабайт до-
то загрузка ОС станет невозможна. Так ли это? Не совсем. кументации. За рамками нашего рассмотрения остались
Вы можете создать образ загрузочных сек