Академический Документы
Профессиональный Документы
Культура Документы
ЛИ
С
ЛИ
ТЯ Е
Ж ПИ
ЗА ДНИ
НУ
РА КУ
ЛЫ ГО
ТИ РАС
К У ВО
РО
№11(72) ноябрь 2008
НИ НО
СТ
БЫ
подписной индекс 20780
КА
www.samag.ru
Телефония для эпохи Web 2.0
ИС НН
ЕН
РА СК
ТЕ
Службы доменов Active Directory
УС
ИЛ ДА
У
ТП
НА П
Л ОТ
НЧ ЖИ
ВО
КО НЕО
Л
АВ ОС
ХА
УЕ
ЗА
Оптимизация сетевой печати
П
рошел еще один месяц напряженной работы редакции, и мы с удо-
вольствием представляем Вашему вниманию плод нашего труда –
ноябрьский выпуск журнала «Системный администратор».
Алексей Коршунов
тенденции
Азиатские гиганты поддержали Android в России: отечественной компании ALT Linux и французс-
Если в начале октября крупнейший японский оператор NTT кой Mandriva. Окончательное решение руководство фонда
DoCoMo сообщал о намерении выпустить Android-смартфон примет в конце этого или начале следующего года.
для своей страны, то теперь с подобными заявлениями вы-
ступили Lenovo и China Mobile, а чуть позже и ASUSTeK. На Linux-десктопах нельзя заработать?
Так, генеральный менеджер департамента комму- Марк Шаттлворт (Mark Shuttleworth), основатель проекта
никаций Lenovo Mobile на мероприятии P&T/Expo Comm Ubuntu и исполнительный директор компании Canonical,
China 2008, проходившем в Пекине с 21 по 25 октября, со- строящей свой бизнес вокруг этого популярного Linux-дист-
общил, что его компания собирается выпустить смарт- рибутива, сделал довольно неожиданное для многих заяв-
фон под управлением Android в феврале-марте 2009 года. ление. На вопрос о том, можно ли заработать с Linux на на-
Для этого Lenovo объединяет усилия с China Mobile, круп- стольных ПК, он ответил следующее: «Не думаю, что кто-
нейшим сотовым оператором в Китае и мире. либо может заработать на Linux-десктопах». Это заявление
Вскоре стало известно о том, что подобная инициа- вызвало немалое удивление у Open Source-энтузиастов хо-
тива зреет и в недрах тайваньской компании ASUSTeK тя бы потому, что Шаттлворт создал проект одного из на-
Computer, которая пообещала выпустить свой смартфон иболее популярных на сегодняшний день Linux-дистрибу-
с Android в первой половине 2009 года. Вероятно, снача- тивов, который хорошо известен своей изначальной на-
ла Asus будет продавать устройства с Android под своим правленностью на применение именно на десктопах. Шат-
брендом на родном для себя тайваньском рынке, а уже по- тлворт сказал даже больше: в Canonical всегда рассматри-
том представит «зарубежные» модели для всего мира. Ин- вали десктоп как продукт с «нулевым доходом». После это-
тересно, что Asus пока не удалось добиться мирового ус- го он пояснил свою мысль: «Я никогда не видел, чтобы ра-
пеха со своими смартфонами на базе Windows Mobile, за- ботала идея продажи упакованных и готовых к использо-
то дешевые мини-компьютеры Asus Eee PC стали настоя- ванию пакетов из свободного программного обеспечения.
щим хитом. Судя по всему, теперь, с платформой Android, Единственный способ создать бизнес вокруг программно-
в Asus намерены повторить этот успех и на рынке смарт- го обеспечения – услуги». Свои слова глава Canonical под-
фонов, выпустив портативные, дешевые и многофункцио- твердил и на примере Microsoft: ни для кого давно не секрет,
нальные Linux-устройства. что и этот гигант софтверной индустрии переходит к серви-
сам как основному источнику доходов.
МИД Германии: Open Source
использовать выгоднее Подготовил Дмитрий Шурупов
по материалам www.nixp.ru
Рольф Шустер (Rolf Schuster), немецкий дипломат и в прош-
лом глава ИТ-отдела Министерства иностранных дел Гер-
мании, заявил, что обслуживание десктопов с програм-
мным обеспечением с открытым кодом (Open Source) об-
ходится гораздо дешевле, чем в случае с проприетарным
ПО. Об этом он сообщил на конференции Open Source World
в Малаге (Испания).
МИД Германии переводит около 11 тысяч десктопов
на GNU/Linux и Open Source. По словам Шустера, этот шаг
позволяет добиться существенной экономии по сравнению
с другими министерствами: «В МИД десктопы функциони-
руют в очень удаленных и малодоступных местах. Но на об-
служивание каждого десктопа мы тратим всего 1000 евро
в год. Это гораздо дешевле, если сравнивать с другими
министерствами, где средние ежегодные расходы за деск-
топ составляют более 3000 евро». Завершение миграции
Министерства на GNU/Linux и другое ПО с открытым ко-
дом ожидается к лету 2009 года. На данный момент пере-
ход осуществлен более чем в половине посольств и пред-
ставительств (всего их – 230). Во время миграции возни-
кают и некоторые сложности: «Переход осуществляется
не без проблем. Например, наши разработчики не знают
японского языка, поэтому не понимают местных сложнос-
тей, и нам пришлось найти специалиста в Японии, чтобы он
помог разобраться с шрифтами в OpenOffice.org».
Почти одновременно с этим стало известно, что на GNU/
Linux и другое ПО с открытым кодом переходит и отечес-
твенная организация – Фонд социального страхования
Российской Федерации. В ФСС тестируют дистрибутивы
двух Linux-производителей, продвигающих свои решения
Три
а л
а н н ые п
ь! Б араб
т дц а л ос ь
н н а с та
р ? ! Оди а ч и т, о
н
щ и й ша , а э то з
След
ую
у р н а ла
м ер ж
и 11 н о
од . о м е ра.
р е д в ам
о о д ин к э т о го н
Пе ь вс е г к о д из
ч и т ат ь в ам
полу с тр и р о в
зД В А »
а р е г и
и й п р и
0 8 год.
б у д ьте з д м и нс к 1 2 з а 20
Не за р ы ш е «А
№ 1 0 , 11, ша
з ы г л о в ы г р ы
т и я в ро з ж у р на п а х роз
час
Для у бятся код
ыи
р в ы х эта А»
о ву х пе и з ДВ э та п,
д д р й
по на а с т и ев н с к ий п т т р ети
м е т уч « А д м и
ж и д ае у м е ни е
к то пр и Р А З »и о д о в, о то л ько
, з к ится
Всех ский при е ш е с ть д о б
д м ин р у е т вс а м п о на
« А с тр и о мв
р е г и т о р
и за т и я в ко
ча с
д ля у гр ы ша н а с айте
д ат ь. ат ы розы к о в ан ы
ж
р е зульт т о п убли г од а.
то буд у 200 8
и н а ем, ч АЗ » бр я
Напо
м
й П риз Р ru 27 ноя
д м и нски .s a m ag.
«А а w ww
а л
ж ур н
Приз
нск ий
ми
Ад РАЗ»
П р из «
м и н с к ий атор
Ад н и к
К о мму к ур с ы
б н ы е р од ук ты с е р в ер ы
че еп е
У граммны ыделенны
ро в
П туальные
ир
В В А»
« Д
й П р из
нс к и
А д м и
н и к атор
К о мму к ур с ы
б н ы е р од ук ты с е р в ер ы
че еп е
У граммны ыделенны
ро в
П туальные
ир
В РИ»
з «Т
к и й При
нс
Адми тбук
оу ы
Н бные курс родукты
У че м н ы еп
г р ам
р о
П
улся…
Лед трон
Более подробную информацию о сроках и правилах проведения розыгрышей призов смотрите на сайте журнала – www.samag.ru
репортаж
Н
а мероприятие были пригла- n OLPT (Skype Databases) таблицы можности для горизонтального масш-
шены разработчики компании с несколькими миллиардами запи- табирования системы. PL/Proxy име-
Skype (http://skype.com), про- сей в каждой. ет простой синтаксис и вообще досто-
филь деятельности которой пояснять ин отдельного рассмотрения, которое,
не надо (когда попросили поднять руки Основной упор был сделан на опи- я надесь, ещё появится на страницах
тех, кто не использует продукты Skype, сание применения инструментов для журнала.
из аудитории откликнулись всего два- работы с PostgreSQL, разработанных Следующий подарок PostgreSQL-
три человека). программистами компании и опубли- сообществу от Skype называется
Надо сказать, что хоть разработ- кованных под открытой лицензией. SkyTool. Это пакет утилит, предна-
чики были из близкой Эстонии и не- Прежде всего это pgBouncer – значенных для упорядочивания дос-
которые из них изучали русский язык простой и легковесный менеджер со- тупа, репликации и восстановления
в школе, «нелёгкие» годы в Евросо- единений (точнее, Connection pooler) данных.
юзе дали о себе знать. Полноценные для PostgreSQL. К его достоинствам Прежде всего это PgQ – инстру-
доклады и общение с ними были воз- относится несколько режимов работы мент для создания очередей запро-
можны только на английском. К счас- с соединениями, гибкое управление сов, Londiste – движок для master-slave
тью, Иван Золотухин (Postgresmen), вы- «самостоятельностью» соединения, репликации PostgreSQL, написанный
ступил в роли переводчика. низкое потребление памяти и возмож- на языке Python, DBScript framework –
С первым докладом, «Архитектура ность работы с разными хостами. среда для управления базой дан-
распределённой базы данных Skype», Далее был представлен PL/Proxy – ных и Walmgr – скрипт для «горяче-
выступил Аско Оя (Asko Oja), веду- язык для прозрачного удалённого вы- го» развёртывания сервера из бэкапа
щий эксперт по базам данных компа- зова процедур, позволяющий, напри- на основе трансфера логов или под-
нии Skype. мер, вызывать произвольную функцию ключения резервного сервера.
Представляя архитектуру Skype на любом узле кластера БД. Второй доклад представил техни-
Databases (см. рисунок), Оя подчерк- Тут следует заметить, что дос- ческий директор сети myYearbook.com
нул её масштабы: туп к управлению данными в Skype (социальная сеть, третья по величине
n более 100 СУБД-серверов; Databases осуществляется исключи- в США), Гевин Рой (Gavin Roy). Он пред-
n более 200 баз данных; тельно посредством вызова хранимых ставил интересный рассказ о развитии
n более 10 000 тысяч транзакций процедур, что при использовании дан- и поэтапном масштабировании своей
в секунду; ного инструмента даёт отличные воз- системы, использующей PostgreSQL
в качестве серверов баз данных.
Б ы л о и н т е р е с н ы м и к ул у а р -
ное общение. Достаточно сказать,
что на встрече присутствовали такие
известные персоналии PostgreSQL-
сообщества России, как Олег Барту-
нов, Федор Сигаев, Алексей Борзов
и другие. Skype, кроме Аско Оя пред-
ставлял также инженер Марко Креэн
(Marko Kreen), являющийся соавтором
таких проектов, как Skytools, plProxy,
pgBouncer.
Хочется поблагодарить Николая
Самохвалова и Ивана Золотухина
за организацию встречи.
Реклама
администрирование
Александр Емельянов
Именно так теперь называется обновленная служба каталогов производства компании
Microsoft. Сама серверная операционная система, на которой базируется данная технология,
уже преподнесла немало приятных сюрпризов конечному потребителю. Посмотрим, чем может
порадовать администраторов новая Active Directory.
Э
то уже третья «редакция» служ- же повысить уровень безопасности. n специальный тип установки кон-
бы каталогов со времен ее пер- Претерпело изменения меню управле- троллера домена только для чте-
вого появления в Windows 2000. ния ролями сервера, что позволит ад- ния (RODC, Read-Only Domain
И, забегая вперед, нужно сказать, что министратору создать единый центр Controller);
основной упор специалисты Microsoft управления как самим сервером, так и n новые политики паролей и блоки-
сделали на то, чтобы упростить управ- сервисами, которые он будет предо- ровки учетных записей;
ление службами доменов AD (AD DS, ставлять. Из новшеств служб доменов n улучшения в групповых полити-
Active Directory Domain Services), а так- можно отметить: ках.
администрирование
Об этих и других нововведениях пойдет речь в статье n службы сертификации Active Directory (AD CS, Active
далее. Directory Certificate Services) – это служба сертифика-
тов, которая позволяет создавать и управлять сертифи-
Не просто служба… катами открытых ключей для приложений, поддержива-
С выходом новой серверной операционной системы назва- ющих технологию открытого ключа; AD CS поддержи-
ние Active Directory представляет некую общность служб вают криптографический интерфейс нового поколения
для управления доступом и проверки подлинности учетных CNG, который пришел на смену CryptoAPI, старые ал-
записей. Если смотреть шире, то совокупность этих техно- горитмы шифрования данных поддерживаются с помо-
логий занимает центральное место в концепции, которой щью поставщиков служб сертификации.
Microsoft уделяла основное внимание со времен выхода
Windows 2000. Речь идет об управлении идентификацией Все эти службы управляются при помощи новой консо-
и правами доступа (IDA, Identification and Access). Основные ли диспетчера серверов Windows Server 2008, которая яв-
постулаты – гибкость и удобство управления инфраструк- ляется единым центром управления как операционной сис-
турой предприятия и обеспечение максимального уровня темой, так и сетевыми сервисами.
безопасности. В основе обновленной службы каталогов ле- В дополнение нужно заметить, что при использовании
жат 5 основных компонентов, с которыми администраторы специального варианта установки Server Core администра-
знакомы со времен выхода Windows Server 2003 R2: тору будут доступны для развертывания только две из вы-
n службы доменов Active Directory – это старая служ- шеперечисленных служб: AD DS и AD LDS.
ба каталогов на новый лад, она позволяет обеспечи-
вать аутентификацию пользователей и компьютеров, Новый мастер установки служб доменов
используя единую базу данных, а также протоколы бе- Как театр начинается с вешалки, так и контроллер домена
зопасности; предоставляет гибкие механизмы управле- начинает жизнь с мастера DCPROMO. Инженеры Microsoft
ния как отдельными пользователями и группами, так и учли опыт обращений пользователей (читать «администра-
целыми подразделениями при помощи групповых по- торов») в службу технической поддержки, после чего пере-
литик; писали DCPROMO заново и представили свету новый мас-
n службы Active Directory облегченного доступа к ка- тер установки служб доменов. Все новшества в целом на-
талогам (AD LDS, Active Directory Lightweight Directory правлены на предотвращение ошибок, которые могут воз-
Services) – это бывший вариант установки службы ка- никнуть в процессе установки контроллера. Это и ошибки
талогов, называемый AD AM (Active Directory Application
Mode); его особенность состоит в том, что вы можете
развернуть службу каталогов без создания доменной
инфраструктуры, то есть фактически получаете LDAP-
сервер для работы с приложениями, которые ориенти-
рованы на работу с каталогами; также есть возможность
спокойно развернуть несколько экземпляров AD LDS
на одном сервере, и каждый будет иметь свою собст-
венную схему;
n службы управления правами Active Directory (AD
RMS, Active Directory Rights Management Services) –
бывший сервер управления правами; AD RMS позволя-
ют управлять правами доступа к данным приложений,
которые поддерживают эту технологию; используя AD
RMS, организации могут создавать шаблоны для обес-
печения конфиденциальности финансовых докумен-
тов, сообщений электронной почты и т. д.; в отличие от
Windows Server 2003 R2 управление AD RMS происхо-
дит при помощи консоли MMC, помимо этого, при уп-
равлении AD RMS снижается вероятность ошибок при
настройке из-за разбиения задач на 3 категории: обя-
зательные, рекомендованные и необязательные;
n службы федерации Active Directory (AD FS, Active
Directory Federation Services) – во многом за счет ин-
теграции служб федерации с AD RMS имеется возмож-
ность создавать безопасную среду работы для клиен-
тов, находящихся вне корпоративной сети, без созда-
ния дополнительных учетных данных, а использование
приложений с поддержкой RMS позволяет детально кон-
тролировать работу удаленных пользователей с внут-
рикорпоративными документами;
10
администрирование
Для системы DNS появилась возможность создания зоны отдельный домен, так как они могли быть применены толь-
только для чтения на контроллере RODC. Динамическая ре- ко к уровню домена.
гистрация записи компьютера в такой зоне невозможна, вза- В AD DS появились подробные политики паролей, кото-
мен этого на DNS-сервер с возможностью записи посылает- рые можно применять как к отдельным учетным записям,
ся запрос на регистрацию, и уже после репликации проис- так и к группам. Хотя специалисты рекомендуют пользо-
ходит обновление зоны в филиальном сервере DNS. ваться группами для распределения этих политик, чтобы
Для развертывания контроллера RODC необходимо упростить дальнейшее администрирование.
иметь в домене хотя бы один основной (то есть в режи- Рассмотрим процесс создания и привязки политик паро-
ме чтение/запись) контроллер домена под управлением лей, а также некоторые атрибуты, связанные с ними. Спе-
Windows Server 2008. Плюс к этому домен должен находить- циального графического средства для создания и управ-
ся на уровне не ниже Windows Server 2003 (смотри врезку ления такими политиками нет, вместо этого можно исполь-
«Функциональные уровни домена и леса»). Понятно, что и зовать программу ADSIEdit либо другие программы, кото-
сам RODC должен работать под управлением серверной ОС рые позволят управлять объектами схемы AD (об одной
последней версии. Использование RODC в варианте уста- из них будет сказано ниже). Итак, для создания полити-
новки Server Core дает возможность держать в удаленном ки нужно создать объект msDS-PasswordSettings или PSO
филиале безопасный сервер, имеющий небольшие требо- (Password Settings Object) в контейнере Password Settings
вания по производительности. Container в узле System Container вашего домена. Далее
вам будет предложено ввести значения обязательных ат-
Новые политики паролей рибутов данного объекта. Для понимания, какие политики
Очень часто на технических форумах можно было встре- паролей сможет применять администратор, рассмотрим
тить вопросы, касающиеся политик паролей и блокировки некоторые атрибуты:
учетной записи. Проблема состояла в том, что многие ад- n msDS-PasswordSettingsPrecedence – здесь содержит-
министраторы не могли понять, как при помощи групповых ся некоторый номер, определяющий приоритет дейст-
политик назначить ограничения параметров паролей для вия настроек, если для одного объекта применяется не-
отдельных групп или организационных единиц. Такая воз- сколько;
можность до выхода Windows Server 2008 отсутствовала, и, n msDS-PasswordComplexityEnabled – определяет, дол-
если было необходимо выделить группу со специфичными жен ли пароль отвечать требованиям сложности (значе-
настройками для политик паролей, нужно было создавать ние по умолчанию для домена True);
Реклама
12
bugtraq
Оптимизация сетевой
печати
Иван Коробко
Любой сервер печати должен обеспечивать быструю и надежную печать. Для достижения
поставленной цели займемся оптимизацией драйверов.
14
администрирование
В
крупных сетях используются PS или PCL Эмуляция PS – не самый лучший
так называемые серверы печа- В настоящее время активно использу- выход, поскольку значительно падает
ти (print server), которые пред- ется два типа драйверов: скорость печати. Однако большинс-
ставляют собой компьютеры под уп- n PCL (Printer Command Language) – тво лазерных принтеров, например
равлением операционной системы разработан компанией HP. HP1200, поддерживают PS.
семейства Windows Server 2K, на ко- n PS (Post Script) – создан Джоном
торых установлено до нескольких де- Уорноком и Чаком Гешке из Adobe PPD-файл
сятков принтеров. в начале 80-х годов. PPD-файл (см. рис. 1) представля-
Во время настройки таких серве- ет собой текстовый файл, который
ров системные администраторы ис- Принципиальная разница между можно открыть обычным блокнотом
пытывают проблемы, связанные с не- PCL и PS заключается в том, что по- (notepad.exe). Этот файл является, если
устойчивой работой драйверов. Боль- мимо растровых шрифтов (True Type так можно выразиться, переводчиком,
шинство администраторов решает эту и Open Type), PS также поддержива- который делает понятным для принте-
проблему подбором стабильно работа- ет векторные шрифты (Post Script), ра язык PostScript.
ющего драйвера с удовлетворитель- что позволяет успешно использовать Во время установки драйверов PPD-
ной производительностью. их в полиграфии, обеспечивая высо- файлы копируются в папку %WinDir%\
В большинстве случаев таким кое качество продукции. system32\spool\drivers\w32x86\3. Об-
драйвером оказывается PS-драйвер Кроме того, PS выгодно отличает- ратите внимание на последний подка-
или, как его еще называют, PostScript- ся от PCL следующим: талог. В зависимости от версии PS он
драйвер. Однако не все они отличают- n увеличение скорости и надежнос- может изменяться. Поскольку в насто-
ся надежной работой. ти печати; ящее время используется PS версии 3,
Многочисленные эксперименты n поддержка большого количества то название подкаталога соответству-
показали, что на стабильность рабо- шрифтов разных типов; ющее – 3 (см. рис. 1).
ты драйвера сильно влияет его графи- n кэширование шрифтов и изобра-
ческое оформление: в inf-файле, отве- жения; Структура
чающем за установку драйвера, осу- n поддержка цветоделения в самом PostScript‑драйвера
ществляется установка дополнитель- контроллере; Большая ошибка считать, что PostScript-
ных компонентов. Удалив из INF-фай- n получение высокого качества драйвер для каждого принтера свой.
ла все лишнее, можно получить ста- печати при использовании вектор- Он один – стандартный, универсаль-
бильно работающий драйвер, причем ной графики и векторных шриф- ный. Его достаточно один раз устано-
без потери функционала, например, тов. вить в операционной системе и исполь-
возможности двухсторонней печати зовать для всех принтеров, назначая
при ее аппаратной поддержке. Основным недостатком PS-драй- только PPD-файл.
Объединение множества inf-фай- веров является необходимость их ап- У читателя возникнет закономер-
лов в один дает возможность объеди- паратной поддержки печатающим ус- ный вопрос: в чем же разница в прин-
нить несколько драйверов в один – уни- тройством, что сказывается на цене терах? Ответ очень прост: в PPD-фай-
версальный. принтера. лах.
Рисунок 1. PPD-файлы
16
администрирование
темы имеют фиксированные идентификаторы безопас-
ности. Например, папка «Мой компьютер» на любом ком-
пьютере имеет идентификатор {20D04FE0-3AEA-1069-
A2D8‑08002B30309D}. Существует также GUID, которые
генерируются случайным образом на основе текущего
времени.
Таким образом, суммируя полученную информацию
и учитывая, что необходимо создать INF-файл для уста-
новки принтера, получаем следующий раздел [Version]
(см. листинг 3). Поскольку создается универсальный драй-
вер, то все файлы будут располагаться в одном каталоге
с INF-файлом, а из CAT-файла будут заимствованы лишь
некоторые файлы. Поэтому параметр CatalogFile не исполь-
зуется в листинге 3.
Раздел [Manufacturer]
В разделе [Manufacturer] назначается производитель уст-
ройства, отображаемый при установке драйвера (см. рис. 2).
Название производителя может быть произвольным: рус-
ским или английским. Для того чтобы устанавливаемый
драйвер было легко найти, рекомендуется его поместить
в начало списка, использовав в качестве первого символа
спецзнак – звездочку или восклицательный знак. При сор-
тировке все русские названия идут после английских.
Существует два способа присвоения значений: с помо-
щью подстановки и без нее. На рис. 2 проиллюстрирован
второй способ. Способ с подстановкой рассмотрен далее.
Определив название производителей, необходимо оп- Рисунок 3. Присвоение значений методом подстановки
ределить список оборудования. Для этого необходимо соз-
дать одноименный раздел [infotec], в котором будут созда- где file-list-section название секции. По умолчанию –
ны ключи и соответствующие им значения. DefaultDestDir; dir и subdir папки, в которые необходимо ско-
Имя ключа совпадает с названием оборудования, а зна- пировать данные.
чение состоит из нескольких частей, которые между со- В случае с принтером, PostScript драйвер копирует-
бой разделены запятыми. Первая часть – название разде- ся в папку %WinDIR%\System32\spool\drivers\w32x86\3\
ла, в котором будут указаны инсталлируемые файлы. Вто- для 32‑биной оперционной системы и PostScript 3, которой
рой – уникальный идентификатор устройства, который на- соответствует 66000 (см. листинг 4).
значается производителем.
Листинг 4. Раздел [DestinationDirs]
Раздел [Strings] [DestinationDirs]
В этом разделе, который обычно расположен в конце фай- DefaultDestDir=66000
ла, назначаются константы. Название ключа – перемен-
ная, которая будет фигурировать в файле. Значение клю-
ча – соответственно, – подставляемое значение (см. рис. 3). Раздел [SourceDisksNames]
В приведенном примере параметра BrandName присваива- Название раздела [SourceDisksNames] является общим
ется значение Lexmark. для всех типов операционных систем. В случае создания
одного INF-файла для разных операционных систем, в за-
Раздел [DestinationDirs] висимости от ее типа, название раздела может меняться:
В этом разделе присутствуют ключи, в которых описыва- n [SourceDisksNames.x86] – платформа Intel 80x86,
ется местоположение драйвера на локальном компьютере. 32‑bit;
Шаблон ключа следующий: n [SourceDisksNames.ia64] – платформа x86, 64-bit;
n [SourceDisksNames.amd64] – архитектура процессора,
file-list-section = dir[,subdir] разработаная AMD, 64-bit.
[SourceDisksFiles]
HP1200.ppd = 1
В этом разделе располагаются ключи, построенные Все эти файлы можно найти в любом PS-драйвере. Они
по следующему шаблону: находятся в CAT-файле, описанном в параметре CatalogFile
Для Windows 2000: раздела [Version].
diskid = disk-description[,[tag-or-cab-file], ↵
[unused,path][,flags]]
INF-файл для HP1200 PS
Теперь, когда описаны все необходимые ингредиенты
Для Windows XP и старше: INF‑файла, рассмотрим файл инсталлятора Post Script драй-
веров для принтера HP-1200.
diskid = disk-description[,[tag-or-cab-file], ↵
[unused,path],[flags][,tag-file]]
Создание TCP/IP-порта
где disk-description (обязательный параметр) – описание Для установки сетевого принтера необходимо создать TCP/
диска. Описание остальных параметров выходит за рам- IP-порт и подключить к нему сетевой принтер. Все дейст-
ки этой статьи. вия осуществляются на выделенном сервере. Кроме того,
Полное описание всех параметров приведено на офи- к USB-принтеру должен быть подключен Jet Direct, позво-
циальном сайте компании Microsoft [3]. ляющий его подключить к сети с настроенным интерфей-
Для обеспечения работоспособности драйвера в раз- сом и известным IP-адресом, который необходим для соз-
деле [SourceDisksNames] необходимо создать всего один дания TCP/IP-порта.
ключ (см. листинг. 5). Для создания сетевого порта на сервере, к которому
будет подключен принтер, существует два способа. Если
Листинг 5. Раздел [SourceDisksNames]
[SourceDisksNames]
1 = "HP",,,""
Раздел [SourceDisksFiles]
В этом разделе перечисляются все файлы дистрибутива,
за исключением CAT-файла.
Шаблон ключа в разделе [SourceDisksFiles]:
где:
n filename – имя файла (обязательный параметр);
n diskid – идентификатор диска (любое число);
n subdir – подкаталог, в котором находится файл в дист-
рибутиве;
n size – его размер. Рисунок 5. Создание TCP/IP-порта
18
администрирование
необходимо создать несколько пор-
тов одновременно, то рекомендует-
ся войти в свойства сервера печати
и создать пул портов. Для этого не-
обходимо войти в папку «Принтеры»,
расположенную в панели управления
выбрать «Файл → Свойства сервера».
В появившемся диалоговом окне не-
обходимо перейти во вкладку порты
и нажмите кнопку «Добавить порт…»
(см. рис. 4), в выведенном окне требу-
ется выбрать тип порта: в данном слу-
чае – «Standard TCP/IP port».
Для создания порта необходи-
мо нажать на кнопку «Новый порт…».
В появившемся диалоговом окне, не-
обходимо указать IP-адрес нового пор-
та. Имя порта назначается автомати-
чески. Им является IP-адрес с префик-
сом «IP_». Назначаемое имя админист-
ратор может изменить по своему ус- Рисунок 6. Запуск мастера установки принтеров
мотрению (см. рис. 5).
ров мастеру необходимо указать местоположение INF-фай-
Установка принтера на сервере ла. По идентификаторам Class и ClassGuid (см. таблицу)
Для создания принтера на сервере необходимо запустить в разделе [Version], система определяет, что этот файл – ин-
«Мастер установки принтеров». Для этого необходимо в пап- сталлятор драйвера принтера. Если INF-файл создан кор-
ке «Принтеры и факсы», расположенные в «Пуск → Нас- ректно, то на экране появляется диалоговое окно, содер-
тройка → Панель Управления», нажать на кнопку установ- жащее список оборудования.
ка принтера (см. рис. 6). Замечание:
Работа мастера состоит из нескольких шагов. На пер- n Во время работы мастера администратор не увидит раз-
вом шаге необходимо указать порт, к которому будет при- дел, созданный в разделе [Manufacture]. Она будет вид-
соединен принтер. Как уже отмечалось, для реализации на только при повторной установке драйверов (рис. 2
сетевой печати требуется выбрать TCP/IP-порт. Создание и рис. 3).
порта описано в разделе «Создание TCP/IP-порта». n Необходимо наличие ключа Provider с произвольным
На втором шаге мастера начинается процесс установки значением в разделе [Version]. При отсутствии это-
драйвера. Для удобства восприятия приведем блок-схему го параметра во время установки возникает ошибка
работы этого мастера (см. рис. 7). Для установки драйве- (см. рис. 8); драйверы не устанавливаются.
[Manufacturer]
%Company%=firm
[firm]
"Hewlett-Packard 1200" = HP1200.PPD,HP1200_PS_PPD
"Hewlett-Packard 4100" = HP4100.PPD,HP4100_PS_PPD
"Hewlett-Packard 2727" = HP2727.PPD,HP2727_PS_PPD
[HP1200.PPD]
CopyFiles=@HP1200.PPD,PSCRIPT_NT ; PPD-файл.
DataSection=PSCRIPT_DATA ; раздел PSCRIPT
DataFile=HP1200.PPD
Include=NTPRINT.INF ; инсталляция NTPRINT.INF.
Needs=PSCRIPT.OEM ; инсталляция PSCRIPT.
[HP4100.PPD]
CopyFiles=@HP4100.PPD,PSCRIPT_NT
DataSection=PSCRIPT_DATA
DataFile=HP4100.PPD
Include=NTPRINT.INF
Needs=PSCRIPT.OEM
[HP2727.PPD]
CopyFiles=@HP2727.PPD,PSCRIPT_NT
DataSection=PSCRIPT_DATA
DataFile=HP2727.PPD Рисунок 9. Предоставление сетевого доступа к сетевому
принтеру
20
bugtraq
Сергей Супрунов
Системы управления содержимым (content management system, CMS) с каждым днём
приобретают всё большую популярность. Оно и понятно – интернет-сайты из категории
«творчества» постепенно переходят в «бизнес», и поэтому значительное место начинают
занимать не только вопросы эффективности их разработки, но и последующего
сопровождения.
Н
а рынке уже присутствует до- шей стране, пожалуй, наиболее из- кации веб-разработчика или време-
вольно большое число CMS вестны продукты «1С-Битрикс» (http:// ни на изучение всех их возможностей.
с богатым набором возмож- www.1c‑bitrix.ru). Да и вопросы сопровождения могут
ностей. Среди открытых решений Однако всё это могучие системы, требовать не меньшего внимания.
с разу же вс поминаютс я Joomla! позволяющие создавать сайты поч- Однако иногда такие возможности
(http://www.joomla.org) и Drupal (http:// ти любой сложности и, как следствие, оказываются избыточными, и для за-
drupal.org), из коммерческих в на- требующие определённой квалифи- дачи создания простейшего сайта (па-
22
администрирование
ра новостей в неделю, контактная информация, несколько поставив x11-fonts/freefont-ttf, или просто «натаскать» шриф-
статей-инструкций) хочется найти что-нибудь «поскромнее». ты в систему вручную из «открытых источников»). Путь к ка-
Одну из таких CMS – Skeletonz – мы и рассмотрим. талогу со шрифтами, а также шрифт по умолчанию нужно
будет затем указать в настройках плагина.
Первое знакомство Теперь дело, собственно, за Skeletonz. Поскольку данная
Skeletonz – это одна из несложных и не особо известных CMS написана на языке Python, установка заметно упро-
систем управления содержимым сайтов (CMS), написанная щается (а заодно снижается и число возможных проблем),
на языке Python и использующая для хранения информа- поскольку этапы компиляции и инсталляции будут отсутс-
ции СУБД MySQL. Первоначально основанная на веб-фрей- твовать: скачиваем архив с исходным кодом, распаковыва-
мворке CherryPy (http://www.cherrypy.org) и ORM-библио- ем в рабочий каталог, выполняем правку конфигурацион-
теке SQLObject (http://www.sqlobject.org), в настоящее вре- ного файла general_config.py, и можно запускать:
мя Skeletonz развивается с акцентом на простоту и быст-
родействие. $ fetch http://orangoo.com/skeletonz/uploads/ ↵
skeletonz_beta.zip
В основе последней версии Skeletonz (которая всё ни-
как не выйдет в релиз, оставаясь в beta-статусе) лежит на- skeletonz_beta.zip 100% of 753 kB 96 kBps
24
администрирование
сможете скачать себе архивную копию и сохранить дет просто скопировать в site_plugins (вручную; интерфейс
в надёжном месте. для добавления плагинов не предусмотрен).
n Просмотреть информацию о системных настройках Есть и один довольно неприятный момент – Skeletonz
(Site manager). Здесь же размещена полезная кнопка – выставляет адресом страницы её наименование, то есть
Terminate server, которая позволяет «культурно» оста- если создать страницу «Вопросы и ответы», то URL будет
новить сервер, а не «грохать» его командой kill (правда, выглядеть как «http://mysite.ru/Вопросы и ответы». Вроде бы
при запуске через nohup она не работает, так что в этом даже хорошо, но в некоторых браузерах в строке адреса
случае придётся-таки использовать kill). будет красоваться «http://mysite.ru/%D0%92%D0%BE%D0%
n Просмотреть синтаксис использования различных BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D0%
плагинов, а некоторые из них и понастраивать (Plugin BE%D1%82%D0%B2% D0%B5%D1%82%D1%8B/».Так что
manager). хоть победа Юникода и неизбежна, но борьба будет дол-
n Наконец, выбрать одну из тем для сайта (Template гой и кровопролитной. Пока же в качестве обходного ма-
manager). К всеобщему сожалению, только выбрать – невра «прокатывает» следующий приём (правда, нет ни-
создавать и устанавливать придётся вручную. каких гарантий, что данная «фича» сохранится в будущих
версиях): всем вновь создаваемым страницам задавайте
Профессионалу «развернуться», конечно, негде, зато имена в латинице и без пробелов (так, как вам хотелось бы
новичок точно не заблудится.
Реклама
Наполнение сайта
Здесь в принципе всё просто – в режиме администрато-
ра (или под именем пользователя, которому делегирова-
ны права на редактирование данной страницы) заходим
на сайт и пользуемся доступными здесь «органами уп-
равления».
«Типовая» иерархия Skeletonz предусматривает нали-
чие двух уровней навигации: главное меню и (опциональ-
но) локальное меню страницы (Page tabs). Каждая ссылка
меню ведёт на определённую страницу. Содержимое стра-
ницы создаётся вручную, используя несложный синтаксис:
скажем, «%(b)text%» означает выделение текста text полу-
жирным шрифтом, «h1.» с последующим текстом – заго-
ловок первого уровня, и т. п. Чтобы посмотреть все воз-
можности, щёлкните кнопку Syntax help. При необходи-
мости никто не запрещает прибегать к HTML-синтаксису
(например, именно так придётся делать таблицы). Некото-
рые сложные элементы (скажем, те же меню) вставляются
как «плагины» (выглядят такие вставки следующим обра-
зом – [pagetabs=news]). Если что-то забыли, можно щёлк-
нуть на значке Add plugin syntax и выбрать нужный плагин
из списка (там же будет подсказка по параметрам).
Немного странно работает вставка изображений. Вам
нужно будет в режиме редактирования контента добавить
вызов плагина: [image=img2], где img2 – некоторое условное
наименование рисунка. Теперь, сохранив страницу, вы по-
лучите на месте изображения иконку-ссылку, позволяю-
щую загрузить файл. После загрузки изображение займёт
своё законное место, а управлять файлом можно будет че-
рез панель управления, раздел Upload manager.
Среди остальных плагинов: блоги, лента новостей (прав-
да, RSS-возможности оказываются практически неработос-
пособны из-за жёсткой привязки к iso-8859-1; править это
придётся в исходниках – amilib/PyRSS2Gen.py, dynamic_dirs/
rss/news_section_news.xml и ряде других файлов), некая па-
родия на wiki, подсветка текста и прочая «мелочёвка». Нель-
зя сказать, что все они близки к совершенству, но обеспе-
чить основную функциональность могут. Подгонка дизайна
обычно сводится к правке соответствующих классов в CSS-
файле шаблона. Для добавления нового плагина (если та-
кой посчастливится найти) каталог с его кодом нужно бу-
26
администрирование
Lustre FS.
Настраиваем и используем
кластерную систему
в промышленных масштабах
Часть 1
Виталий Банковский
Наши постоянные читатели уже заметили, что редакция периодически публикует статьи,
связанные с кластерными технологиями. Представляем очередную повесть об использовании
кластерной файловой системы Lustre FS.
У
же прошли те времена, когда сай- при столь высокой конкуренции даже построить устойчивый сервис, должен
тов было мало и пользователи пятиминутный сбой в работе сервиса начать с ее основ – отказоустойчивой
были согласны ждать, пока «упав- вызывает отток пользователей к кон- файловой системы. Про одну такую
ший» сайт «подымется». В Интернете куренту. Поэтому каждый, кто хочет файловую систему и пойдет речь.
система для совместного исполь- Google FS Google, Inc Доступна как часть –
Google API
зования хранилищ Storage Area
Network (SAN). Элементом хране-
ния является блок файловой сис- Этот комплекс предполагался для Когда клиент пытается получить
темы. Для исключения конфликтов построения отказоустойчивого храни- доступ к файлу, он обращается к серве-
при доступе к файлам использует- лища статистического контента для ру MDS за получением ссылки на OSS,
ся распределенный блокировщик веб-сайта. Максимальная скорость где хранится сам файл, и в дальней-
доступа Distributed Lock Manager отдачи такого комплекса достига- шем взаимодействует уже с конкрет-
(DLM). Из-за этого у GFS очень низ- ла 1 gbps, но при при повышении на- ным сервером OSS.
кая масштабируемость и низкая грузки начали сказываться недостат- Когда клиент пытается изменить
производительность при большом ки Distributed Lock Manager, так как пе- файловую систему (например, запись
количестве обращений серверов- ред открытием файла сервер должен файла), то он делегирует эту операцию
клиентов. опросить все серверы для блокиров- серверу MDS. Таким образом мы по-
n LustreFS. Высоконадежная файло- ки какого-то блока файловой системы лучаем практически линейное масш-
вая система с двумя подсистема- и получить подтверждение, что блок табирование (особенно в режиме чте-
ми – сервер метаданных для хра- свободен. В связи с низкой произво- ния), в отличие от блочных кластерных
нения информации о файлах и сер- дительностью я продолжил иссле- систем, таких как GFS, где клиент дол-
вер для хранения самих данных. дование кластерных файловых сис- жен получить разрешение от всех сер-
Используется в больших вычисли- тем и остановился на файловой сис- веров на модификацию блоков, прина-
тельных центрах. Пятнадцать су- теме Lustre. длежащих какому-то файлу.
перкомпьютеров из мирового top30, Это также обеспечивает целост-
включая Blue Gene/L, использу- Обзор структуры ность данных, так как модификацию
ют именно эту файловую систе- файловой системы Lustre данных производит только сервер
му. Элементом хранения является Файловая система Lustre (далее – MDS, а не несколько клиентов, кото-
файл, в отличие от файловой сис- Lustre) состоит из следующих под- рые потенциально могут неправильно
темы GFS. систем: работать с файловой системой.
n GlusterFS. На данный момент на- n Сервер метаданных (MetaData
ходится в активной разработке Server (MDS)), который хранит Установка
и не рассматривается как пригод- имена файлов и каталогов и их В свой работе я использую CentOS, по-
ная для использования в промыш- права. этому описание процедуры установки
ленных масштабах. n Серверы для хранения самих и настройки будет ориентировано на
n Google FS. Высоконадежная фай- данных (Object Storage Servers этот дистрибутив.
ловая система, устойчивая к сбо- (OSSes)). Общий объем доступно- Сначала нужно получить по адре-
ям. Но доступна только для исполь- го пространства Lustre вычисляет- су http://www.sun.com/software/products/
зования в приложениях, написан- ся как сумма пространств на этих lustre/get.jsp следующие компоненты:
ных с помощью инструментария серверах. n ядро Linux с специальными патча-
Google API. n Клиенты. Серверы, которые име- ми для Lustre;
ют доступ к файловой системе n сами исходники Lustre.
Немного истории из личного опы- Lustre.
та по использованию кластерных фай- Я использовал ядро версии
ловых систем. MDS, OSSes и клиенты могут распо- 2.6.16.54 и версию 1.6.5 Lustre, кото-
Автор этих строк успешно устано- лагаться как и на одном сервере, так и рые были доступны по вышеуказанно-
вил и запустил в работу комплекс с ис- на разных серверах. Для взаимодейс- му адресу на момент установки.
пользованием GFS, который включал твия Lustre поддерживает различные
в себя: протоколы, включая Infiniband, TCP/IP Настройка и установка ядра
n HP StorageWorks 1000 как Storage поверх Ethernet, Myrinet и Quadrics. Linux
Attached Network (SAN); OSS поддерживает файловую сис- Здесь процедура настройки, компи-
n пять серверов с операционной сис- тему (на данный момент – ext3, в бу- ляции и установки ядра не отличается
темой Linux; дущем – ZFS) для хранения локаль- от типичных, за исключением следую-
n коммутатор FiberChannel для под- ных данных, которая экспортирует- щих параметров настроек ядра:
ключения серверов и вышеуказан- ся в кластер для операций чтения/за- n должна быть включена поддержка
ного SAN. писи. Quote, ext3;
28
администрирование
На OSS1 выполняем следующие шаги:
где:
n параметр webstorage – имя файловой системы;
n параметр mds.domain.com – адрес сервера MDS (обя-
зательно, чтобы все серверы кластера могли получить
IP по этому имени через DNS или путем прописывания
записей в /etc/hosts) или можно использовать IP-адрес
сервера MDS;
n устройство /dev/sdb – место для хранения самих дан-
ных.
Виктор Карабедянц
В свете выхода Microsoft Hyper-V компания VMware идет на беспрецедентный шаг, делая
бесплатной систему виртуализации уровня предприятия – Esxi. Давайте разберемся,
что скрывается под этим названием.
30
администрирование
от «старшего брата». Без большой со-
ставляющей Linux-консоли он занима- Что не вошло в Free License Esxi? VMware Distributed Resource Scheduler
ет 32 Мб. Подробнее обо всех отличи- Технологии VMware Infrastructure (DRS) позволяет динамически распре-
ях Esx и Esxi можно узнать из офици- VMotion – технология, которая позво- делять ресурсы между виртуальны-
альной документации [1]. ляет в реальном времени перемещать ми машинами по заданным правилам.
виртуальные машины с одного Esx-сер- Можно организовать дополнительную
Функционал вера на другой, при этом виртуальная мощность путем переноса работаю-
бесплатной версии машина всегда находится в состоянии щих и критически загруженных вирту-
Опишу, какие технологии все-таки онлайн. Виртуальные машины должны альных машин на другой физический
поддерживает Free License Esxi: храниться на дисковом массиве, кото- сервер, используя VMware VMotion.
n VMFS – файловая система, разра- рый видят оба Esx-сервера. Vmotion ле- Средство централизованного обновле-
ботанная компанией VMware спе- жит в основе таких технологий как DPM, ния Update Manager позволяет упрос-
циально для работы виртуальных DRS, Storage Vmotion, High Availability. тить и автоматизировать обновление
машин. Подробнее об этой фай- Storage Vmotion позволяет обойти огра- Esx-серверов.
ловой системе можно прочитать ничения с единым хранилищем для вир- High Availability отслеживает состояние
в официальной документации [2]. туальных машин. Машины могут быть виртуальных машин и в случае сбоя ап-
n Virtual SMP – обеспечивает под- перемещены между хранилищами дан- паратного обеспечения включает их
держку многопроцессорности ных без выключения. на других серверах по заданным пра-
в виртуальных машинах. У хостов Esx Server появилась воз- вилам.
n Core hypervisor functionality – можность экономии электроэнергии Consolidated Backup – встроенное сред-
собственно сам гипервизор. при падении загрузки виртуального ство бэкапа виртуальных машин.
центра обработки данных для серверов Агент Virtual Center. Virtual Center – не-
Устанавливаем Esxi VMware Esx. Это достигается за счет отъемлемая часть Virtual Infrastructure
Перейдем к установке Esxi. Для этого использования функций распреде- от VMware. С помощью Virtual Center
нам понадобится установочный дис- ленного управления питанием VMware можно управлять всеми хостами из од-
трибутив, его можно найти по ссыл- Distributed Power Management, которые ной консоли. Без Virtual Center невоз-
ке [3]. Регистрация на сайте бесплат- позволяют автоматически включать можна ни одна из перечисленных тех-
ная. После регистрации и загрузки серверы Esx при возрастании нагрузки нологий. Продукт требует установки
Esxi на регистрационный адрес будет и при падении переводить хосты в ре- на отдельный сервер, при этом исполь-
автоматически доставлена ссылка жим Standby. зует базу MS SQL.
на ключ, который в дальнейшем пона-
добится. Записываем образ на диск, вставляем в CD/DVD- После установки клиента запускаем приложение и вхо-
привод и загружаем сервер. Полный список поддерживае- дим под учетной записью root, используя пароль, который
мого оборудования можно найти по ссылке [4]. мы вводили на этапе конфигурирования (см. рис. 2).
После загрузки и инициализации оборудования получа- Мы попадаем в консоль управления Esxi. Первое, что мы
ем простенькое меню – понятно, что о красивой графике сделаем, это введем наш лицензионный ключ: как вы ви-
речь не идет. Начнем установку, нажав клавишу <Enter>. дите, без ключа у нас есть всего 60 дней на использова-
Читаем условия лицензии и подтверждаем, нажав кла- ние продукта.
вишу <F11>. Далее нам предлагают выбрать жесткий диск, Переходим на вкладку Configuration, выбираем «License
на который мы можем установить Esxi. Source → Edit…» Переходим по ссылке, которую мы полу-
Выбираем диск, нажимаем <F11> для установки. Вся чили на этапе загрузки инсталляционного дистрибутива,
инсталляция по времени не занимает и 5 минут; после ус- и вводим полученный ключ (см. рис. 3).
тановки необходимо перезагрузить сервер.
Сервер загрузился, необходимо произвести минималь-
ные настройки (см. рис. 1). Установим пароль суперполь-
зователя root и настроим сеть управления: configure root
password и configure management network соответственно.
Производим настройки IP, шлюз, имя хоста и DNS.
После настройки сервер предложит перезапустить
management network для применения настроек. После пе-
резапуска мы с помощью браузера можем перейти по ссыл-
ке http://имя_или_адрес_нашего_Esxi.
Устанавливаем клиент,
настраиваем сервер
В отличие от старшего брата, у Esxi нет консоли управле-
ния через web. Для управления сервером нам необходимо
установить клиент VMware Infrastructure Client, ссылка на ко-
торый находится на странице приглашения. Рисунок 1. Меню настроек
32
администрирование
unsupported (символов не видно), вводим пароль root и по-
падаем в консоль. Теперь нам необходимо сделать доступ
через ssh, для этого редактируем файл /etc/inetd.conf:
#vi /etc/inetd.conf
Бэкап? Заключение
Бэкап Esxi – это сомнительное мероприятие: установка Мы рассмотрели основные настройки Esxi, использова-
5 минут и настройка 10, все машины лежат на диске. Де- ние которого даст вам возможность виртуализации уровня
лать или не делать бэкап? Выбор за вами. Если не хотите предприятия. В следующей статье рассмотрим, как на ос-
в критический момент заниматься настройкой сети и уста- нове Esxi построить отказоустойчивый кластер.
навливать пароли, то создаем бэкап. Для этого нам пона-
добится VMware Infrastructure Remote CLI, найти его мож- 1. ht tp: // kb.vmware.com /selfser vice/microsites /search.do?
но по ссылке [6]. Качаем и устанавливаем. Далее запус- language=en_US&cmd=displayKC&externalId=1006543.
каем скрипт, который по умолчанию находится по адресу 2. http://www.vmware.com/ru/products/vi/esx/vmfs_features.html.
C:\Program Files\VMware\VMware VI Remote CLI\bin: 3. https://www.vmware.com/tryvmware/login.php?eval=esxi&t=1.
4. http://www.vmware.com/resources/techresources/1032.
vicfg-cfgbackup.pl --server <server_name> ↵ 5. http://www.vmware.com/pdf/GuestOS_guide.pdf.
-s <backup_file_name> для создания бэкапа
vicfg-cfgbackup.pl --server <server_name> ↵ 6. http://www.vmware.com/download/vi/drivers_tools.html.
-l <backup_file_name> для восстановления
Андрей Маркелов
Дистрибутив Fedora использует для установки весьма мощную и многофункциональную
программу Anaconda, поддерживающую различные режимы работы и сценарии инсталляции.
Вместе с рядом других технологий, в частности Spacewalk-сервером, вы можете значительно
облегчить процесс развертывания и обслуживания вашей Linux-инфраструктуры.
О
днако сегодня мы оставим шательство человека подразуме- n DHCP-сервер. Предоставляет кли-
Spacewalk-сервер в стороне вает загрузку первой стадии инс- ентам сетевые настройки и указы-
и рассмотрим, как можно авто- таллятора по сети. Большинство вает место, где будут располагать-
матизировать самую начальную ста- выпущенных за последние два-три ся файлы, необходимые для за-
дию жизненного цикла серверов/ра- года сетевых карт и BIOS материн- грузки с использованием Pre-Boot
бочих станций – их развертывание. ских плат поддерживают эту функ- Execution Environment.
При этом в процессе установки мы пос- цию. Как правило, загрузка по сети n TFTP-сервер. Там мы и располо-
тараемся обойтись без вмешательства начинается, если на жестком диске жим все необходимые для нача-
оператора при помощи так называемо- отсутствует загрузчик, при старте ла инсталляции файлы. Нужно за-
го сервера сетевой установки. Для ор- нажата клавиша <F12> или в BIOS метить, что мы можем одновре-
ганизации такого сервера мы исполь- выбран соответствующий пункт менно поддерживать несколько
зуем следующие технологии: меню. Первый вариант – отсутс- вариантов дистрибутива, напри-
n P X E ( P r e - B o o t E x e c u t i o n твие загрузчика на жестком дис- мер, Fedora 9 и Red Hat Enterprise
Environment). Минимальное вме- ке – нас вполне устраивает. Linux 5.
34
администрирование
n Kickstart-файлы. Для каждого из дистрибутивов мож-
но предусмотреть несколько вариантов установки, ко-
торые и будут задаваться при помощи kickstart-файлов.
Kickstart-файл должен быть доступен по сети при помо-
щи одного из протоколов: http/https, NFS, FTP. Необходи-
мый kickstart-файл можно указывать и вручную, но, пос-
кольку мы хотим максимально автоматизировать раз-
вертывание операционной системы, то нужно предус-
мотреть возможность автоматического выбора. Реали-
зовать это можно следующими способами:
При помощи DHCP-сервера в зависимости от MAC-
адреса клиента.
При помощи настроек PXE (конфигурационных фай- Рисунок 1. Утилита system-config-netboot
лов первой стадии загрузчика – pxelinux.0) в зависи-
мости от MAC- или IP-адреса, полученного с DHCP- Далее копируем загрузчик в корневую директорию tftp-
сервера. В последнем случае может понадобиться сервера:
резервирование IP-адресов на DHCP-сервере.
При помощи Spacewalk-сервера. Мы не будем рас- # cp $(rpm -ql syslinux | grep pxelinux.0) ↵
/var/lib/tftpboot/
сматривать данный вариант, но заметьте, что в за-
висимости от того, в какой из диапазонов IP-адресов Создадим сервер инсталляции для двух дистрибутивов.
попадает клиент, Spacewalk-сервер может выдавать В качестве примера возьмем Fedora 9 и Red Hat Enterprise
свой kickstart-файл. При этом его содержимое будет Linux 5.1, но пойдет и любой другой дистрибутив, использу-
создаваться «на лету» из базы данных, а на DHCP- ющий Anaconda. Скопируем в /tftpboot ядро и initrd-образы
сервере или при помощи настроек pxelinux.0 можно обоих дистрибутивов, которые расположены в директории
будет всегда задавать одно и то же месторасполо- /images/pxeboot/ установочного диска. Предположим, оба
жение этого «динамического» kickstart-файла. ISO-образа дистрибутивов смонтированы в /mnt/loop/:
n Сетевой репозиторий. Файлы дистрибутива, доступ-
ные по http, NFS, FTP или по всем трем протоколам. Быс- # mkdir /var/lib/tftpboot/{fedora9,rhel51}
# cp /mnt/loop/RHEL_5.1/images/pxeboot/* ↵
трее всего установка будет производиться при выборе /var/lib/tftpboot/rhel51/
метода установки по NFS. Медленнее всего – по http. # cp /mnt/loop/Fedora9/images/pxeboot/* ↵
/var/lib/tftpboot/fedora9/
Теперь попробуем собрать все компоненты вмес- Поскольку у нас два варианта дистрибутивов, предоста-
те. Не буду подробно объяснять ключи командной строки вим оператору возможность выбора. Пусть в качестве ин-
или подробности работы протоколов – ответы на эти вопро- формации наш загрузчик выводит на экран возможные ва-
сы можно найти в обширной документации, включая офи- рианты. Создадим текстовый файл /var/lib/tftpboot/boot.msg
циальную от Red Hat. Приведу рецепт решения конкретной примерно следующего содержания:
задачи. Также обратите внимание на утилиту system-config- --------------------------
netboot, которая может упростить некоторые шаги. Однако MY SETUP MENU FOR PXE BOOT
в учебных целях не будем пользоваться GUI. Подробно ис- --------------------------
filename "pxelinux.0";
next-server 192.168.0.100;
Рисунок 3. Процесс загрузки PXE
36
администрирование
Сергей Яремчук
Несмотря на обилие различных технологий борьбы со спамом, последний до сих пор
составляет львиную долю почтового трафика. В 2005 году на рассмотрение IETF в качестве
стандарта аутентификации отправителя был предложен еще один стандарт DomainKeys
Identified Mail (DKIM), разработчики которого предлагают свой способ решения этой задачи.
С
егодняшние антиспам-решения ленные ресурсы. Именно поэтому на- в Kaspersky Security Bulletin 2007, доля
проверяют сообщение на всем ибольший интерес всегда представ- спама в почтовом трафике в среднем
пути его следования, начиная ляли технологии, позволяющие отсе- составила 79% [5]. Отслеживать «бе-
с проверки легитимности пользова- ивать нежелательные сообщения в са- лые» и «черные» адреса и домены не-
теля на этапе отправки, заканчивая мом начале пути. Предложено несколь- просто, к тому же нередки случаи за-
фильтрами, встроенными в почтовый ко методов – аутентификация пользо- несения в balcklist нормальных адре-
клиент. Кроме достоинств каждый ме- вателя перед отправкой сообщения, сов. Количество серверов, использу-
тод имеет и свои недостатки, часто ме- рекомендованная в RFC 2505, цвет- ющих технологии SPF и SenderID, со-
шающие его полноценному исполь- ные списки [1, 2], а также подтверж- ставляет лишь каплю в море, поэтому
зованию. О различных решениях уже дение прав отправителя – SenderID они часто используются только с од-
не раз говорилось на страницах жур- (RFC 4407, поддерживается Microsoft) ной целью – «обелить» отправителя.
нала, потому заострять внимание на и SPF (RFC 4408, OpenSource) [3]. Ка- Вместо блокировки адреса, не про-
них не буду. залось бы, каждая в отдельности мог- шедшего проверку, ему просто начис-
На дальнейшую обработку приня- ла бы решить проблему спама, но, как ляют штрафные балы.
того к доставке SMTP-сервером спам- видно, в реальности это далеко не так. Но если посмотреть на путь со-
сообщения будут затрачены опреде- По информации, опубликованной общения со стороны пользователей,
38
администрирование
ких-либо служб, ключ берется напря-
мую из DNS-записи и не должен под-
тверждаться третьей стороной. Орга-
низация, использующая DKIM, полно-
стью несет ответственность за работу
своего сервера, подпись лишь означа-
ет то, что кто-то отвечает за конкрет-
ное сообщение.
Разработчики утверждают, что тех-
нология на данном этапе относит-
ся скорее к дополнительным. Нали-
чие подписи в сообщении ни к чему
не обязывает принимающую сторону,
не обеспечивает защиту после про-
верки подписи и не может никак пов-
лиять при повторной передаче сооб-
щения, если отправитель и получатель
изменились.
Поэтому RFC рекомендует сообще-
ния с серверов, не поддерживающих
DKIM, обрабатывать обычным обра-
зом. Учитывая малый процент внедре-
ния, это вполне логично, а значит пись-
ма со спамом также смогут проходить Рисунок 2. Ответ на тестовое сообщение
эту проверку и без других технологий
борьбы со спамом не обойтись. Ни- ко часть сообщения, доступную на мо- сей – это дополнительная нагрузка на
кто не мешает спамеру создать свои мент подписания. Идеальный случай – сервер, как передающей, так и прием-
DKIM-совместимые SMTP и DNS-сер- письмо, отправляемое пользователем, ной сторонам. Поэтому наиболее опти-
веры, которые можно будет использо- подписанное полностью и отправлен- мальным вариантом считается все-та-
вать в рассылках или рассылать спам ное по назначению. Но разные компо- ки заверение всего письма на самом
со взломаных компьютеров, являю- ненты почтового сервера могут добав- последнем этапе передачи.
щихся с точки зрения DKIM легальны- лять новые поля, например списки рас- Теперь рассмотрим прием подпи-
ми. Но такие ресурсы обычно быстро сылки. Таким образом, «новое» пись- санного сообщения. Так как ключи
выявляются и блокируются при помо- мо уже не может быть рассмотрено как могут быть заменены, рекомендуется
щи других технологий, а использова- правильное. Поэтому подпись следует проверку производить как можно рань-
ние своего DKIM потребует некоторой добавлять на самом последнем этапе ше. Оптимальным вариантом является
легализации и затрат, что очень невы- отправки сообщения, чем ближе вы- проверка «на лету» в ходе SMTP-сес-
годно спамерам, желающим остаться ход, тем меньше вероятность появле- сии после получения всего письма. Это
незаметными. Таким образом, в насто- ния неподписанных записей. позволяет не занимать локальную оче-
ящее время технологию DKIM можно Еще один метод подписи, пред- редь сообщениями, не прошедшими
отнести к вспомогательным и ее зада- ложенный разработчиками, – ука- проверку, упростив дальнейшую рабо-
ча аналогична SPF и SenderID – «обе- зать длину действительного сообще- ту антиспам-фильтров. А передающая
лить» адрес отправителя. Хотя с увели- ния в заголовке. Все, что будет добав- сторона будет знать результат при-
чением поддерживающих эту техноло- лено в пределах подписанной длины, ема уже в ходе сеанса. Но очень часто
гию систем она может измениться будет вполне легальным. Это решает SMTP-серверы перегружены. Теперь
проблему с теми же списками рассыл- если добавить к этому еще и проверку
Когда подписывать ки, но у злоумышленника появляется DKIM-подписи (запрос ключа на DNS,
и проверять? возможность изменить тело сообще- вычисление и сравнение результата),
Несмотря на внешнюю простоту DKIM, ния. Поэтому разработчики стандарта то время на всю операцию может уве-
при развертывании реальной системы не рекомендуют указывать длину за- личиться ровно настолько, что переда-
следует ответить на несколько вопро- веренного сообщения. Хотя выходом ющая сторона, не дождавшись ответа,
сов, ответы на которые могут повли- из такой ситуации может быть наличие закроет SMTP-сессию.
ять на работу всей системы. Напри- двух подписей. Первая заверяет огра- Повторная попытка может привес-
мер, на каком этапе и что подписы- ниченную часть письма, вторая добав- ти к аналогичному результату. Кроме
вать в сообщении. Во избежание зло- ляется уже на самом последнем ша- этого проверка DKIM на этапе SMTP-
употреблений DKIM-подпись должна ге и распространяется на все сообще- сессии упрощает DDOS-атаку на сер-
обязательно включать данные из по- ние. Каждая такая подпись сама по се- вер, ведь, чтобы загрузить систему,
лей From, Sender, Subject, Date, To. бе автономна и обрабатывается после- потребуется меньшее количество за-
При этом подпись удостоверяет толь- довательно. Но наличие двух подпи- просов.
40
администрирование
Background yes milter_default_action = accept
milter_protocol = 2
# Список доменов, перечисленный через запятую, возможно smtpd_milters = inet:localhost:8891
# использование шаблона "*" non_smtpd_milters = inet:localhost:8891
Domain example.com
Если используется UNIX-сокет, то последние две стро-
# Как вариант указывается файл, в котором содержится
# список доменов по одному в строке ки заменяем на:
# Domain /etc/postfix/dkim-domain.conf
smtpd_milters = unix:/var/run/dkim-milter/dkim.sock
# Файл, содержащий закрытый ключ non_smtpd_milters = unix:/var/run/dkim-milter/dkim.sock
KeyFile /etc/postfix/key.private
# Тайм-аут DNS
DNSTimeout 5 И подобный ответ можно считать удачей.
# Статистика
Statistics /var/log/dkim-filter/dkim-stats Учитывая, что технология еще окончательно не утверж-
дена и находится в постоянном развитии, до массового
# Проверка необходимых заголовков сообщения
RequiredHeaders yes внедрения еще, наверное, очень далеко. Также стоит от-
метить, что, по сути, они не могут решить проблему спама.
# Что делать с письмами с неверной подписью:
# accept (по умолчанию), discard, tempfail, reject. Их внедрение лишь позволяет защититься от подделки ад-
# On-BadSignature reject реса, предоставляя дополнительную информацию для при-
нятия решения антиспам-фильтрами.
Это только основные параметры, некоторые другие
позволяют указать специфические для MTA настрой- 1. Супрунов С. Greylisting: панацея от спама или «мыльный пу-
ки, пользователей, чьи сообщения должны подписывать- зырь»? //Системный администратор, №7, 2006 г., – С. 12-15.
ся/проверяться, и так далее. Подробно они расписаны 2. Барабанов А. Борьба со спамом как фактор, снижающий на-
в «man dkim‑filter.conf». дежность почтовой доставки. //Системный администратор, №8,
После настройки запускаем dkim-filter: 2007 г., – С. 6-13.
3. Яремчук С. Sender Policy Framework как средство борьбы со спа-
$ sudo /etc/init.d/dkim-filter start мом. //Системный администратор, №4, 2007 г., – С. 34‑39.
Starting DKIM Filter 4. Сайты с информацией о DKIM – http://www.dkim.org, http://tools.
ietf.org/wg/dkim.
По умолчанию он будет прослушивать порт 8891 5. Kaspersky Security Bulletin 2007. Спам в 2007 году – http://www.
на localhost: viruslist.com/ru/analysis?pubid=204007593.
5. RFC4871 – http://www.ietf.org/rfc/rfc4871.txt.
$ netstat -an | grep 8891 6. Сайт проекта DKIMproxy – http://dkimproxy.sourceforge.net.
tcp 0 0 127.0.0.1:8891 0.0.0.0:* LISTEN 7. Сайт проекта dkim-milter – http://sourceforge.net/projects/dkim‑milter.
8. Инструменты DKIM на сайте Sendmail – http://www.sendmail.org/
Теперь необходимо настроить Postfix (поддерживает dkim/tools.
milter с версии 2.3.0), добавляем в /etc/postfix/main.cf сле- 9. DKIM Author Domain Signing Practices (ADSP) – http://tools.ietf.
дующие строки: org/html/draft-otis-dkim-adsp-04.
Почтовый шлюз
для MS Exchange 2007
на базе FreeBSD 7.0 + Postfix 2.4
Антон Сенько
42
администрирование
Почему так?
Не секрет, что MS Exchange – мощное средство для постро-
ения корпоративной почты уровня предприятия, и все боль-
ше фирм переходят на это решение от компании Microsoft.
Но вместе с этим множественные проблемы с безопаснос-
тью продуктов Microsoft могут порядком осложнить жизнь
системному администратору, поэтому обычно почтовый
сервер прячется за какой-либо пограничный сервер, кото-
рый работает в качестве SMTP-шлюза – то есть, пересы-
лает письма изнутри периметра безопасности в Глобаль- Рисунок 1. Опции сборки Postfix
ную сеть и наоборот.
В MS Exchange 2007 появилась новая роль сервера – Поскольку мы хотим проверять существование поль-
Edge Transport Server, призванная выполнять функции пог- зователя в Active Directory, собираем Postfix с поддержкой
раничного сервера, но для ее использования необходим вы- OpenLDAP, для этого нужно отметить соответствующую оп-
деленный сервер, работающий под управлением Windows цию в открывшемся диалоге (см. рис. 1):
2003 Server SP1 либо выше. Поэтому для небольших фирм
использование Edge может оказаться неприемлемым, так gw# make install clean
gw# rehash
как это связано с еще большими финансовыми вливани-
ями: сервер, лицензия для серверной Windows, антивирус. После установки в директории /usr/local/etc/postfix по-
Кроме прочего, все это не плохо бы спрятать за ISA. Отлич- явятся конфигурационные файлы, находим main.cf и пра-
ной альтернативой может стать любая Linux/UNIX-система вим параметры:
с установленным MTA Postfix.
# /usr/local/etc/postfix/main.cf
Постановка задачи myhostname = server.company.ru
Итак, что хотим: mydomain = company.ru
myorigin = $mydomain
n каждый пользователь в фирме должен иметь корпора- mydestination = $myhostname
тивную почту; mynetworks_style = host
mynetworks = 192.168.1.1/32, 127.0.0.0/8
n переписку с внешним миром могут вести только поль-
зователи с внешним почтовым адресом; Теперь нужно настроить антивирусную проверку и филь-
n MS Exchange-сервер спрятан в локальной сети за поч- трацию нежелательной почты. Описание этих мероприя-
товым шлюзом; тий выходит за рамки статьи. Как это сделать, можно про-
n письма принимаются только для существующих ад- читать на сайтах [1, 2]. Кроме всего прочего очень реко-
ресов, проверка адресов производится на почтовом мендуется включить грейлистинг. Я использую для этих
шлюзе; целей пакет gld-1.7, который присутствует в портах, в связ-
n единое хранилище пользовательских аккаунтов – Active ке с MySQL [3].
Directory; Для того чтобы Postfix мог пересылать почту внутрь се-
n антивирусная проверка и фильтрация спама происхо- ти, нужно добавить в main.cf следующие параметры:
дит так же на почтовом шлюзе.
# /usr/local/etc/postfix/main.cf
Что имеем: # Описываем виртуальный домен
n server.company.ru – FQDN-сервер, на котором установ- virtual_mailbox_domains = company.ru
# Информацию о почтовых ящиках искать в LDAP
лен Postfix; # (в нашем случае - AD)
n company.ru – имя внешнего почтового домена; virtual_mailbox_maps = ldap:/usr/local/etc/postfix/ldap.cf
# Описываем куда пересылать приходящую почту
n mx.company.local – имя сервера Exchange, работающе- transport_maps = hash:/usr/local/etc/postfix/ ↵
го под управлением Win2k3, IP-адрес – 192.168.1.1; virtual_transport
n company.local – имя локального домена Active Directory;
n gw – имя хоста FreeBSD-сервера, внутренний IP-адрес – После этого создаем файл ldap.cf и описываем, где ис-
192.168.1.10. кать данные о почтовых ящиках:
# /etc/rc.conf
postfix_enable="YES"
# /usr/local/etc/postfix/sender_access
# /usr/local/etc/postfix/main.cf
smtpd_sender_restrictions = check_sender_access ↵
regexp:/usr/local/etc/postfix/sender_access
44
администрирование
[PS] C:\> New-SendConnector -Name 'Outbound' ↵
-Usage 'Internet' -AddressSpaces 'smtp:*;1' ↵
-DNSRoutingEnabled $false ↵
-SmartHosts '[192.168.1.10]' ↵
-SmartHostAuthMechanism 'None' ↵
-SourceTransportServers 'MX'
XFS от SGI:
структура и алгоритмы
Андрей Пешеходов
Файловая система XFS разработки компании Silicon Graphics считается многими пользователями
операционных систем Linux и IRIX одной из самых стабильных и производительных ФС
поколения 90-х. Посмотрим, за счет каких архитектурных решений она добивается столь высоких
показателей.
46
администрирование
Историческая справка Область данных делится на некоторое количество групп
Исследования концепций файловых систем, проводимые размещения (allocation grup, AG), размер которых выбира-
в начале 90-х годов прошлого века, предрекали скорое ется при создании ФС. AG's чем-то подобны группам бло-
прекращение роста производительности подсистем вво- ков в ext2 или группам цилиндров в FFS, однако задуманы
да-вывода. Инженеры SGI также столкнулись с этим явле- были не для удобства управления дисковым пространс-
нием. Проблемой стала не производительность аппарату- твом, а для распараллеливания запросов к аллокаторам
ры, а ограничения, наложенные старой файловой систе- блоков и inodes.
мой ОС IRIX – EFS.
EFS архитектурно подобна Berkley FFS, однако она ис- B+ деревья
пользует экстенты вместо отдельных блоков для распре- XFS использует B+ деревья повсюду. С их помощью индек-
деления дискового пространства и ввода-вывода. EFS бы- сируются пакеты inodes, списки свободных экстентов, эле-
ла не в состоянии поддерживать файловые системы раз- менты каталогов и записи файловых карт.
мером более восьми гигабайт, файлы длиннее двух гига- B+ деревья XFS имеют вполне традиционную структу-
байт или предоставлять приложению канал ввода-вывода ру: во внутренних узлах хранятся только ключи и указате-
с производительностью на уровне пропускной способнос- ли на потомков, а в листьях – ключи и данные.
ти аппаратуры. Так как типов деревьев в XFS существует несколько, об-
EFS не была спроектирована для работы на больших щий код обрабатывает лишь стандартные заголовки бло-
вычислительных системах, и ее возможностей уже в то вре- ков (xfs_btree.h):
мя не хватало для того, чтобы предоставить приложениям
все возможности нового оборудования. Пока инженеры /*
* Комбинированный заголовок и структура, используемая
рассматривали направления возможного усовершенство- * общим кодом
вания EFS, требования пользователей возросли настоль- */
typedef struct xfs_btree_hdr {
ко, что было решено заменить ее полностью новой файло- __be32 bb_magic; /* magic-номер, зависит
вой системой. * от типа дерева и блока */
__be16 bb_level; /* уровень блока в дереве,
К XFS были предъявлены следующие требования: * 0 если лист */
n быстрое восстановление после сбоя; __be16 bb_numrecs; /* текущее количество записей */
} xfs_btree_hdr_t;
n поддержка больших разделов и файлов;
n эффективная работа с большими каталогами; /* Внутренний узел дерева */
typedef struct xfs_btree_block {
n хорошая масштабируемость как по производительнос- xfs_btree_hdr_t bb_h; /* заголовок */
ти, так и по объемам хранилищ; union {
n эффективное противодействие фрагментации; /* указатели короткой формы */
n высокая степень параллельности обработки запросов. struct {
__be32 bb_leftsib; /* сосед слева */
__be32 bb_rightsib; /* сосед справа */
Практически сразу стало очевидно, что создать ФС, } s;
удовлетворяющую всем этим требованиям, можно только /* указатели длинной формы */
с повсеместным применением B+ деревьев и учетом сво- struct {
__be64 bb_leftsib; /* сосед слева */
бодного пространства с помощь экстентов. __be64 bb_rightsib; /* сосед справа */
Проработка концепции XFS в целом завершилась } l;
} bb_u;
к 1991 году, первые рабочие версии появились в SGI } xfs_btree_block_t;
в 1992 году. В 1994 году XFS вошла в релиз операционной
системы IRIX 5.3. После заголовка располагаются массивы данных. Для
В 2001 году, глядя на IBM, открывшую свою JFS, или же внутренних узлов это два списка – ключей и указателей
руководствуясь какими-то иными соображениями, SGI от- на потомков, растущие к середине. Для листьев – массив
крывает исходный код XFS под лицензией GPL v2 и начи- записей, отсортированный по возрастанию. Формат ключей
нает работы по формированию сообщества программис- и записей соответственно определяется типом дерева.
тов и портированию ее в Linux.
В мае 2001 года выходит релиз 1.0 этой ФС для Linux, Группы размещения
через год код XFS принимается в экспериментальную вет- XFS позиционируется как 64-битная файловая система.
ку 2.5, а в декабре 2003 выходит ядро 2.6.0 стабильной Однако в коде драйвера разработчики старались избегать
XFS на борту. использования 64-битных указателей, пока в этом дейс-
твительно нет нужды. Удержание указателей в рамках
Архитектура 32‑битных значений является одним из мотивов примене-
Файловая система XFS может включать в себя до трех сек- ния allocation groups.
ций: данных, журнала и реального времени. Область дан- В среднем каждая AG имеет 0,5-4 Гб в размере и рас-
ных содержит пользовательские данные и метаданные ФС, полагает собственными структурами данных для управле-
а также (опционально) зону журнала. Секцией реального ния размещением inodes и блоков в своих пределах. Ог-
времени называется некая обособленная часть дискового раниченный размер AG's позволяет использовать внутри
раздела, к которой применяются упрощенные механизмы них относительные 32-битные номера inodes, что удержи-
доступа и выделения блоков и inodes. вает размеры структур данных в рамках оптимальных зна-
48
администрирование
/* размер AG в блоках. Все AG, кроме последней, Другой плюс отложенного размещения состоит в том,
* имеют одинаковый размер, определенный в поле
* agblocks суперблока */ что файлы, записанные беспорядочно, но не имеющие
__be32 agf_length; «дыр», чаще всего будут размещаться на диске рядом. Ес-
/* Номера корневых блоков для двух деревьев ли все «грязные» данные могут быть буферизованы в па-
* свободных экстентов - с сортировкой по номеру мяти, то пространство для этих данных скорее всего будет
* стартового блока и по длине */
__be32 agf_roots[XFS_BTNUM_AGF]; размещено непрерывно в тот момент, когда они сбрасыва-
/* зарезервировано */ ются (flushed) на диск. Это особенно важно для приложений,
__be32 agf_spare0;
пишущих данные в отображенные (mmapped) файлы, когда
/* Количества уровней для двух деревьев свободных случайный доступ – правило, а не исключение.
* экстентов – с сортировкой по номеру стартового
* блока и по длине */
__be32 agf_levels[XFS_BTNUM_AGF]; AGI-блок
/* зарезервировано */
__be32 agf_spare1; AGI-блок хранит служебные данные для аллокатора inodes.
Его структура такова (xfs_ag.h):
/* индекс первого активного элемента в AGFL-блоке */
__be32 agf_flfirst;
/* индекс последнего активного элемента в AGFL-блоке */ typedef struct xfs_agi {
__be32 agf_fllast; /* magic-номер == XFS_AGI_MAGIC ("XAGI") */
/* количество активных элементов AGFL-блока */ __be32 agf_magicnum;
__be32 agf_flcount; /* версия заголовка XFS_AGI_VERSION (1) */
/* всего свободных блоков */ __be32 agf_versionnum;
__be32 agf_freeblks; /* sequence number starting from 0 */
/* размер самого большого свободного экстента */ __be32 agf_seqno;
__be32 agf_longest; /* размер AG в блоках */
} xfs_agf_t; __be32 agf_length;
50
администрирование
xfs_attr_shortform_t di_attrsf; блок этого дерева состоит из трех частей: общего заголов-
} di_a;
} xfs_dinode_t; ка (см. раздел «B+ деревья» в начале статьи), массива клю-
чей (в этом дереве ключом считается смещение экстента
Формат di_u определяется типом файла, идентификатор от начала файла) и массива указателей на потомки. Лис-
которого хранится в поле di_format ядра inode. Возможные товые узлы, вместо массива указателей, содержат массив
варианты описаны в этом перечислении (xfs_dinode.h): дескрипторов экстентов. Magic-номер для всех блоков та-
кого дерева – «BMAP».
/* Значения для di_format */
typedef enum xfs_dinode_fmt {
/* специальный файл - di_dev */ Атрибуты
XFS_DINODE_FMT_DEV, Каждый файл в XFS может располагать дополнитель-
/* локальное содержимое (файл - di_c,
* короткий каталог - di_dir2sf, ным потоком данных – attribute fork, описываемым объ-
* или symlink - di_symlink) */ единением «a» структуры inode. Как и в случае с данными,
XFS_DINODE_FMT_LOCAL,
/* список экстентов - di_bmx */ inode может содержать поток атрибутов в короткой форме
XFS_DINODE_FMT_EXTENTS, (di_abmbt). Структура di_abmbt имеет следующий формат
/* корень дерева - di_bmbt */
XFS_DINODE_FMT_BTREE, (см. xfs_attr_sf.h):
/* не используется */
XFS_DINODE_FMT_UUID
} xfs_dinode_fmt_t; typedef struct xfs_attr_shortform {
/* заголовок */
struct xfs_attr_sf_hdr {
Если di_format == XFS_DINODE_FMT_LOCAL, значит по- /* размер списка */
__be16 totsize;
ле «u» хранит внутри себя все содержимое файла. Это мо- /* количество активных элементов */
гут быть сырые данные файла (di_c), текстовая строка __u8 count;
} hdr;
с именем цели для символической ссылки (di_symlink), или struct xfs_attr_sf_entry {
небольшой массив элементов каталога, описывающий ко- /* длина имени атрибута */
__uint8_t namelen;
роткий каталог (di_dir2sf, см. далее). /* длина значения атрибута */
В случае di_format == XFS_DINODE_FMT_DEV, «u» ин- __uint8_t valuelen;
/* биты флагов (см. xfs_attr_leaf.h) */
терпретируется как 32-битный дескриптор устройства, со- __uint8_t flags;
держащий его minor и major номера – структура di_dev. /* объединенные строки имени и значения
* атрибута */
При di_format == XFS_DINODE_FMT_EXTENTS, «u» __uint8_t nameval[1];
интерпретируется как массив дескрипторов экстентов /* список переменной длины */
} list[1];
(di_bmx), содержащих данные файла. Структура дескрип- } xfs_attr_shortform_t;
тора экстента такова (xfs_bmap_btree.h):
Если все атрибуты в inode не умещаются, «a» интер-
typedef struct xfs_bmbt_rec_32 претируется в качестве массива дескрипторов экстентов
{
__uint32_t l0, l1, l2, l3; (di_abmx). В случае нехватки места и для списка экстен-
} xfs_bmbt_rec_32_t; тов, в di_a помещается корневой узел дерева атрибутов
typedef struct xfs_bmbt_rec_64 (di_abmbt). Внутренние узлы этого дерева имеют традици-
{ онный формат (magic 0xfbee), листовые же устроены не-
__uint64_t l0, l1;
} xfs_bmbt_rec_64_t; сколько иначе (см. рис. 3).
Структура заголовка листового узла
В 32-битных ядрах поля структуры интерпретируются (см. xfs_attr_leaf.h):
следующим образом:
n l0:31 – флаг экстента (1 если non-normal); #define XFS_ATTR_LEAF_MAPSIZE 3
/* доступное количество free-слотов */
n l0:0-30 и l1:9-31 – это смещение экстента от начала фай-
ла (в блоках), служит ключом в дереве выделенных эк- /* Формат free-карты */
typedef struct xfs_attr_leaf_map {
стентов; /* база свободного региона */
n l1:0-8, l2:0-31 и l3:21-31 – это номер стартового блока __be16 base;
/* длина свободного региона */
от начала AG, используется в свободных экстентах; __be16 size;
n l3:0-20 – это количество блоков в экстенте. } xfs_attr_leaf_map_t;
При di_format == XFS_DINODE_FMT_BTREE, «u» заголовок массив индексов буфер актуальных данных
и хэшей
считается содержащим корневой узел дерева вы- header info массив freemap локальные атрибуты удаленные атрибуты
деленных экстентов (di_bmbt). Каждый внутренний Рисунок 3. Структура листовых узлов
52
администрирование
/* Каталог короткой формы */ Наконец, так устроен хвост блока (xfs_dir2_block.h):
typedef struct xfs_dir2_sf {
/* заголовок */
xfs_dir2_sf_hdr_t hdr; typedef struct xfs_dir2_block_tail {
/* массив элементов */ /* количество листовых элементов */
xfs_dir2_sf_entry_t list[1]; __be32 count;
} xfs_dir2_sf_t; /* количество устаревших листовых элементов */
__be32 stale;
} xfs_dir2_block_tail_t;
Одноблочный каталог
Если каталог не помещается в inode, XFS выделяет под не- Многоблочный каталог
го отдельный блок, размещая там структуры так называе- Когда каталог перестает умещаться в одном блоке, XFS
мой одноблочной директории (xfs_dir2_block.h): разворачивает под его хранение древовидную структуру,
состоящую из data-блоков, хранящих элементы катало-
/* Одноблочный каталог */ га – то есть имена файлов и номера их inodes, и так назы-
typedef struct xfs_dir2_block {
/* заголовок */ ваемых leaf-блоков, содержащих индексную информацию
xfs_dir2_data_hdr_t hdr; по data-блокам – хэши имен и смещения соответствующих
/* массив элементов каталога */
xfs_dir2_data_union_t u[1]; элементов в пределах каталога. К этим структурам привя-
/* массив индексов */ зываются так называемые freeindex-блоки, с помощью ко-
xfs_dir2_leaf_entry_t leaf[1];
/* хвост блока */ торых отслеживаются свободные участки в файле, содер-
xfs_dir2_block_tail_t tail; жащем каталог, в больших каталогах над этой информа-
} xfs_dir2_block_t;
цией также может надстраиваться древовидная структура.
Заголовок этого блока имеет следующий формат Логическое пространство в пределах файла каталога счи-
(xfs_dir2_data.h): тается 8-байтными словами – на это рассчитаны все струк-
туры учета свободных участков.
/* XFS_DIR2_DATA_FD_COUNT равно 3 */ Итак, блоки данных (xfs_dir2_data.h):
typedef struct xfs_dir2_data_hdr {
__be32 magic; /* Активный элемент каталога */
xfs_dir2_data_free_t ↵ typedef struct xfs_dir2_data_entry {
bestfree[XFS_DIR2_DATA_FD_COUNT]; /* номер inode */
} xfs_dir2_data_hdr_t; __be64 inumber;
/* длина имени */
__u8 namelen;
Элемент каталога устроен так (xfs_dir2_data.h): /* имя */
__u8 name[1];
/* смещение этого элемента в блоке */
/* Активный элемент каталога */ __be16 tag;
typedef struct xfs_dir2_data_entry { } xfs_dir2_data_entry_t;
/* номер inode */
__be64 inumber; /* Свободный элемент каталога */
/* длина имени */ typedef struct xfs_dir2_data_unused {
__u8 namelen; /* XFS_DIR2_DATA_FREE_TAG */
/* имя */ __be16 freetag;
__u8 name[1]; /* длина свободного участка */
/* смещение этого элемента в блоке */ __be16 length;
__be16 tag; /* смещение этого элемента в блоке */
} xfs_dir2_data_entry_t; __be16 tag;
} xfs_dir2_data_unused_t;
/* Свободный элемент каталога */ /* Обощенный элемент каталога */
typedef struct xfs_dir2_data_unused { typedef union {
/* XFS_DIR2_DATA_FREE_TAG */ xfs_dir2_data_entry_t entry;
__be16 freetag; xfs_dir2_data_unused_t unused;
/* длина свободного участка */ } xfs_dir2_data_union_t;
__be16 length;
/* смещение этого элемента в блоке */
__be16 tag; Структура хэш-блоков (так называемые листовые бло-
} xfs_dir2_data_unused_t; ки, xfs_dir2_leaf.h):
54
администрирование
Журнал XFS разбит на 2 части – дисковую и рабочую typedef struct xlog_rec_header {
/* ID log-записи */
(in-core). Назначенные на журналирование операции сна- uint h_magicno;
чала попадают в рабочий лог, который представляет из се- /* номер цикла записи */
uint h_cycle;
бя FIFO-очередь, удерживающую транзакции в памяти /* версия log-записи */
до тех пор, пока некоторое событие не вызовет их принуди- int h_version;
/* длина записи в байтах */
тельный сброс в дисковый лог. Операции, хранимые в ра- int h_len;
бочем журнале, называются активными. /* номер сектора для данной записи */
xfs_lsn_t h_lsn;
Дисковый журнал представляет собой непрерывную /* номер сектора первой несброшенной записи */
последовательность дисковых блоков, обрабатываемых от- xfs_lsn_t h_tail_lsn;
/* контрольная сумма тела записи,
дельно от блоков данных XFS, и является, по сути, замкну- * если не используется - 0 */
той очередью. Операции, хранящиеся в дисковом логе, на- uint h_chksum;
/* номер блока предыдущей LR */
зываются зафиксированными. int h_prev_block;
Набор связанных операций, которые должны быть ато- /* количество log-операций в этой LR */
int h_num_logops;
марно применены к диску, называется транзакцией.
uint h_cycle_data[XLOG_HEADER_CYCLE_SIZE / ↵
BBSIZE];
Журнальные записи
Для оптимизации ввода/вывода активные операции груп- /* формат log-записи */
int h_fmt;
пируются вместе в log-записи и только потом направляют- /* UUID файловой системы */
ся на диск. uuid_t h_fs_uuid;
/* размер */
Существуют 3 события, которые могут вызвать фикса- int h_size;
цию рабочей очереди: } xlog_rec_header_t;
n переполнение рабочего журнала;
n поступление в log-менеджер запроса на немедленный Так как восстановление после сбоя должно быть очень
сброс операции на диск; быстрым, оперативный поиск начала дискового журнала
n окончание некоторого таймаута. является приоритетной задачей log-менеджера.
Последняя актуальная log-запись будет удовлетворять
Сами Log-записи состоят из двух частей – заголов- следующим условиям:
ка и тела. Заголовок содержит некую общую информа- n после нее нет действительных log-записей;
цию обо всей log-записи, тогда как тело хранит связан- n контрольная сумма ее тела будет соответствовать той,
ные log‑операции. что хранится в заголовке.
Заголовок log-записи состоит из:
n номер записи; Log-менеджер XFS ищет начало журнала, выполняя слу-
n номер последней сброшенной записи; чайные выборки по всему журналу и методом последова-
n длина тела записи в 64-битных словах; тельных приближений отыскивая log-запись с наибольшим
n magic-номер; номером. Затем около нее ищется последняя запись с вер-
n количество log-операций в записи. ной контрольной суммой, из заголовка которой извлекается
номер первой не сброшенной записи (h_tail_lsn) – она и счи-
Log-операции содержатся в теле записи также разби- тается началом журнала.
тыми на 2 части – заголовок и тело операции.
Тело операции – это поток выровненных по 4-байтной Мнение
границе снапшотов, отражающих состояние метаданных XFS довольно сложная – как по идеям, так и по реализа-
после внесения изменений. Заметим, что это подразуме- ции – файловая система. За счет эффективных, хорошо
вает временное упорядочивание записей. Метаданные мо- продуманных алгоритмов распределения дискового про-
гут быть сброшены на диск только после того, как соответ- странства, отложенного размещения и хорошо распарал-
ствующие log-записи внесены в дисковый лог. леленной обработки пользовательских запросов показы-
Заголовок log-записи содержит: вает хорошие результаты на обработке больших и сред-
n идентификатор инициатора операции; них файлов. Излишне сложная и недостаточно оптимизи-
n длина тела в байтах; рованная схема обработки каталогов не позволяет ей опе-
n ID транзакции; режать такие ФС, как reiserfs, reiser4 и btrfs на больших ди-
n тип операции. ректориях (ext2/3/4 здесь отстают от нее довольно сущес-
твенно, JFS – примерно на одном уровне) – и это, пожалуй,
Номер записи представляет собой 64-битное число; ее единственная слабость.
младшие 32 бита содержат номер соответствующего бло-
ка в журнале, старшие – инкрементальный счетчик. 1. Исходники XFS ядра Linux-2.6.26.
2. man 5 xfs, man 8 xfs_db.
Дисковая структура 3. XFS design documents – oss.sgi.com/projects/xfs/design_docs.
Каждая log-запись предваряется информационным заго- 4. Масштабируемость в XFS – filesystems.nm.ru/my/xfs_arch.pdf.
ловком (размер которой не более сектора), который со- 5. XFS filesystem structure – oss.sgi.com/projects/xfs/papers/
держит: xfs_filesystem_structure.pdf.
ITIL: необходимо
и достаточно?
Александр Башкиров
56
администрирование
Е
сли проследить за развитием
информационных технологий, Версии ITIL чень процессов приводится по ITIL вер-
то нетрудно заметить, что начи- В настоящее время официально опуб- сии 2. Подробнее об ITIL можно прочитать
ная с 90-х годов прошлого века IT ста- ликована библиотека ITIL версии 3, од- на официальном сайте ITIL: http://www.itil-
ло играть всё более значительную роль нако до сих пор не выполнено ее пере- officialsite.com, сайтах http://www.itil.org.uk
в бизнесе. Если в 90-е годы компьютер вода на русский язык, поэтому пере- и http://en.wikipedia.org/wiki/ITIL.
на производстве, в офисе и магазине
воспринимался как экзотика, то в на- свод лучших практик в отрасли и на- да и перерывов), бесперебойный ре-
стоящее время без компьютера не об- зывался библиотекой ITIL (Information жим работы компьютеров (аналогично)
ходится ни одна организация. Но ком- Technology Infrastructure Library). Биб- и бесперебойный доступ к местной те-
пьютер сам по себе не способен дать лиотека ITIL называется библиотекой лефонной связи. Для упрощения так-
организации ничего, кроме возмож- потому, что состоит из ряда книг, со- же предположим, что менеджер не при-
ности локально создавать и хранить держащих обобщение практического ступает к поиску следующего кандида-
электронные документы (при наличии опыта, так называемые best practiks – та, пока не «отработал» текущего.
соответствующего ПО). Причиной тако- лучшие практики отрасли. В 2001 го- Таким образом, для менеджера
го широкого распространения исполь- ду CCTA вошло в состав OGC (Office по подбору можно выделить, как ми-
зования компьютеров является соз- of Government Commerce), и с тех пор нимум, следующие сервисы со следу-
дание сетей и специализированного развитие ITIL осуществляется OCG. ющим SLA:
программного обеспечения, предна- В том же году вышла вторая версия n доступ в Интернет – с 9 до 18,
значенных для автоматизации бизнес- библиотеки ITIL. с временем простоя не более 10 ми-
операций, таких как, например, при- нут (в это время он может разгова-
ем заказа, передача его на исполне- Основы ITIL ривать по телефону с потенциаль-
ние менеджеру, отгрузка товара и т. д. По замыслу разработчиков, ITIL пред- ным соискателем);
Как следствие, увеличиваются требо- ставляет собой практическое рас- n работоспособность ПК – с 9 до 18,
вания со стороны топ-менеджмента ширение сервисного подхода на об- с временем простоя не более 30 ми-
и владельцев компаний как к качеству ласть информационных технологий нут (в случае наступления времени
самих программ, так и к качеству об- (ITSM – information technology service простоя менеджер может сделать
служивания компьютерного парка. management), основная идея которо- перерыв или пойти на обед).
И если раньше системный адми- го состоит в том, что IT-подразделе- n доступ к внешней телефонной
нистратор и программист в большинст- ние предоставляет основному бизне- связи – с 9 до 18, с временем про-
ве случаев сами устанавливали прави- су не нечто абстрактное, а конкрет- стоя не более 20 минут (в это вре-
ла игры, то есть формировали требо- ные сервисы конкретному внутренне- мя менеджер может производить
вания к инфраструктуре, окружению, му заказчику, для которых определе- поиск кандидата);
определяли характер и объем необхо- ны метрики качества и с потребите- n доступ к внутренней телефон-
димых работ, то с повышением степе- лями которых заключено соглашение ной связи – с 9 до 18 с временем
ни интеграции IT в основные процес- об уровне сервиса (SLA – Service Level простоя не более 4 часов (внутрен-
сы бизнеса с их стороны прозвучало Agreement). няя связь при описанной системе
вполне естественное желание – понять, Для того чтобы понять эту идею, для менеджера нужна как вспомо-
как работает IT, перевести его на бюд- приведу конкретные примеры. Пред- гательная функция, следовательно,
жетное управление, определить крите- положим, есть организация, зани- ей назначено самое высокое время
рии оценки и нормы качества… То есть мающаяся подбором персонала че- простоя).
управлять IT так, как будто оно – одно рез Интернет. Для менеджеров, кото-
из бизнес-подразделений. рые осуществляют подбор, установ- В то же время для координатора
лены следующие нормы: поиск кан- менеджеров (работает с 9 до 18, пере-
История возникновения дидата – 20 минут (включая перенос рывы те же, что и у менеджеров, зада-
Сама идея управления IT как бизне- его резюме во внутреннюю базу дан- ча – определение компетенций менед-
сом не нова. Уже в 80-х годах про- ных); 10 минут – на прозвонку и при- жеров, размещение заказов на канди-
шлого века по заказу британского глашение на собеседование (для уп- датов и категоризация кандидатов, ре-
правительства Центральное агентс- рощения будем считать, что прово- шение текущих вопросов с менедже-
тво по вычислительной технике и те- дят собеседование другие менедже- рами), который не занимается напря-
лекоммуникациям (Central Computer ры). Менеджер имеет право на обед мую работой с клиентами, а работает
and Telecommunications Agency, CCTA) продолжительностью в час и два пе- с внутренней базой, могут быть, напри-
разработа ло принципы управле - рерыва по 30 минут. Итого менеджер мер, выделены следующие сервисы со
ния IT, позволяющие, с одной сторо- за день должен найти минимум 14 кан- следующими SLA:
ны, использовать имеющиеся IT-ре- дидатов. Соответственно у данной ка- n доступ в Интернет – с 9 до 18,
сурсы максимально эффективно, а с тегории менеджеров в рабочее время с временем простоя не более 2 ча-
другой – эксплуатировать IT с мини- (с 9 до 18 часов) должен быть обеспе- сов (Интернет ему не нужен для ре-
мальными затратами. Результат вы- чен бесперебойный доступ в Интер- шения производственных задач,
полнения заказа представлял собой нет (исключая плавающее время обе- но поскольку он занимает руково-
58
закон есть закон
Как наше законодательство регули- вере, которое закончилось взыскани-
рует интернет-сайты? Скажем, дол- ем с хостера компенсации за наруше-
жен ли сайт соответствовать требо- ние исключительных имущественных
ваниям закона о СМИ? Кто несёт от- прав). В случае, если сайт зарегистри-
ветственность за нарушающее зако- рован как СМИ, то гражданин или ор-
ны РФ сообщение, опубликованное ганизация вправе потребовать от ре-
на общедоступном постмодерируе- дакции опровержения не соответствую-
мом форуме – анонимный автор со- щих действительности и порочащих их
общения, владелец форума или же честь и достоинство сведений, которые
хостер (на дисках которого незакон- были распространены в данном средс-
ный контент находится физически тве массовой информации (ст. 43‑45
и может быть в ходе соответствую- Закона «О СМИ»). В остальных случа-
щей проверки обнаружен)? ях законодательством не предусмотре-
Рубрику ведет юрист
На сегодняшний день российское зако- но направление уведомления об устра- Юлия Штокало
нодательство не дает легального опре- нении нарушений, но это не исключает
деления понятия «сайт». В общем виде возможность его направления. 2. Когда размещение информа-
под сайтом понимается результат ин- Если без ведома правообладателя ции, которая нарушает права и инте-
теллектуальной деятельности, кото- происходит использование объекта ав- ресы других лиц, происходит на бло-
рый следует рассматривать как произ- торских прав, то правообладатель (ав- гах, страницах сайта, ответственность
ведение, состоящее из комплекса про- тор или тот, кому автор передал свои несут владельцы сайта, блога. Под-
грамм для ЭВМ, баз данных и элемен- права) может требовать по своему вы- тверждением этой позиции могут слу-
тов контента (текстов, фотографий, ди- бору от нарушителя вместо возмеще- жить недавние судебные процессы над
зайна сайта), представленных в фор- ния убытков выплаты компенсации: блоггерами (Дмитрием Соловьевым,
ме, позволяющей обеспечить доступ n в размере от десяти тысяч рублей Саввой Терентьевым).
к ним посредством информационной до пяти миллионов рублей, опреде- 3. Когда информация, нарушаю-
телекоммуникационной сети общего ляемом по усмотрению суда (раз- щая права и интересы других лиц бы-
пользования. мер компенсации в этих пределах ла размещена на форуме, ответствен-
Интернет-сайт не подпадает под определяется по усмотрению суда ность будет в первую очередь нести
понятие «средства массовой инфор- в зависимости от характера нару- автор этой информации. Если устано-
мации» (СМИ). Данный вывод осно- шения и иных обстоятельств дела вить авторство не удастся, ответствен-
вывается на анализе Закона «О СМИ», с учетом требований разумности ность будет нести владелец форума.
а также на существующей судебной и справедливости); Как средство защиты от недобросо-
практике. Следовательно, и обяза- n в двукратном размере стоимос- вестных посетителей форума мож-
тельной регистрации сайта в качест- ти экземпляров произведения или но порекомендовать сформулировать
ве СМИ не предусмотрено, что не ис- в двукратном размере стоимости правила форума, в которых обозначить
ключает возможность добровольной права использования произведе- цели и тематику форума с указанием
регистрации интернет-сайта как сред- ния, определяемой исходя из це- на недопустимость выхода за пределы
ства массовой информации по заявле- ны, которая при сравнимых обсто- тематики, недопустимость написания
нию его владельца. ятельствах обычно взимается за сообщений, нарушающих нормы права,
Теперь рассмотрим вопрос ответс- правомерное использование про- установить правила регистрации, кото-
твенности владельца сайта за разме- изведения. рые бы позволяли идентифицировать
щение с нарушением законодательс- пользователя, размещающего инфор-
тва объектов авторских прав. Выделю Чтобы взыскать компенсацию, до- мацию, вести модерирование форума.
следующие моменты: статочно доказать факт правонаруше- В данном случае речь идет о модери-
1. Когда происходит размещение ния. Правообладатель, обративший- ровании форума как о возможности
на сайте охраняемого объекта автор- ся за защитой нарушенного права, не удалить сообщения, содержащие, на-
ских прав (статьи, аудио-, видеофай- обязан доказывать размер причинен- пример, призывы к расовой дискрими-
лы и т. п.), ответственность несет вла- ных ему убытков. Автор или иной пра- нации, негативные высказывания в от-
делец сайта, на котором были разме- вообладатель (автор может передать ношении правоохранительных органов,
щены контрафактные произведения свои права, тогда это будут разные лю- других юридических лиц, людей, не ос-
или объекты смежных прав. В послед- ди) может по своему выбору требовать нованные на фактах. Именно за такие
нее время появилась тенденция по при- от нарушителя выплаты компенсации высказывания судили блоггеров и был
влечению к ответственности, кроме за каждый случай неправомерного ис- предъявлен иск к ООО «Мегасофт».
владельцев сайта, хостеров, предо- пользования произведения либо за до- Конечно, если пользователь размес-
ставляющих услуги по размещению пущенное правонарушение в целом. тил определенный материал, то нуж-
на своих серверах контент-сайтов (на- Если говорить об уголовном пре- но исходить из его добросовестности
пример, дело о привлечении к ответс- следовании, то возможно возбужде- и удалять такой материал только в слу-
твенности ЗАО «Мастерхост» за разме- ние и уголовного дела по заявлению чае возникновения спора об авторстве
щении сайта www.zaycev.net на его сер- правообладателя. материала.
Антон Борисов
Как часто вы находились в ситуации, когда было проще один раз сказать словами, нежели
несколько раз объяснять, например, в окне ICQ-мессенджера? Давайте попробуем разобраться,
как создать комфортные для работы условия, а именно – рассмотрим тот инструментарий,
что поможет донести наш голос до удаленного собеседника.
С
ейчас, наверное, уже трудно ко- ние на такой вид коммуникаций. В об- дится устанавливать и настраивать
го-то удивить такими термина- щем-то, это должно означать, что лю- SIP-телефонию каждый раз, когда че-
ми, как: VoIP-соединение, SIP- ди представляют себе механизм об- ловек меняет свое местоположение.
телефония, сервер телефонии Asterisk щения посредством софтовых теле- Что не всегда кажется удобным и пра-
и т. п. И это отрадно, так как означа- фонов и более того – немалую часть вильным решением, ибо для того, что-
ет, что, во-первых, создана и исполь- времени проводят в разговорах че- бы звонить, достаточно будет перенес-
зуется транспортная инфраструктура рез IP‑среду. ти только гарнитуры.
для цифрового обмена информацией Единственное, что может огорчать, Предполагается, что Asterisk у вас
(интернет-каналы) и, во-вторых, со- так это привязка звонящего челове- уже настроен (подробно рассмотрено
здано позитивное общественное мне- ка к своему рабочему месту – прихо- в более ранних номерах журнала [1-4]),
60
IP-телефония
учетные записи пользователей созданы и вы можете поз- allow=gsm
allow=ulaw
вонить своему коллеге с помощью SIP-телефона. Отлично, allow=alaw
следующий шаг – сделать так, чтобы вы могли осуществить
звонок и с любого другого места. И заведем теперь планы дозвона указанным пользовате-
Предварительно убедимся, что Asterisk у нас работоспо- лям – указанные строки вносятся в файл extensions.conf:
собен хотя бы в минимальной конфигурации. Если он в ва-
шей сетевой инфраструктуре никогда не разворачивался exten => 1200,1, Macro(stdexten,1200,SIP/1200)
exten => user1, 1, Goto(1200|1)
ранее, то ничего страшного. Установка тривиальна (приво-
дится пример для FreeBSD 6.2 и Аsterisk версии 1.4.21): exten => 200,1, Macro(stdexten,200,SIP/200)
exten => user3, 1, Goto(200|1)
1 server {
2 listen 8811;
3 server_name localhost;
4 location / {
5 root /usr/local/www/nginx;
6 index index.html index.htm;
7 auth_basic "Ask yourself!";
8 auth_basic_user_file /usr/local/etc/nginx/htpasswd;
9 }
Рисунок 2. Авторизация на доступ к ресурам веб-сервера
В строке 2 указываем, чтобы nginx работал на высоком
порту 8811. В строке 5 указываем, где хранятся документы
для веб-сервера. И на время тестового периода я решил
ограничить доступ лиц, которые могут пользоваться услу-
гами телефонии – строки 7 и 8. Для вашего случая, их мож-
но закомментировать.
Копируем содержимое jiaxclient-0.0.6 в директорию /usr/
local/www/nginx/sip/ и с рабочей машины пользователя захо-
дим браузером по адресу – http://mgwe:8811/sip/jiaxtest.html,
где mgwe – адрес вашего Asterisk или nginx-сервера в инт-
ранет, либо в интернет-сети (см. рис. 2).
Вводим пароль для доступа к HTML-страницам серве-
ра nginx (вспомните про строки 7 и 8 файла конфигурации
nginx). И утвердительно отвечаем, что мы доверяем JVM
исполнить апплет jiaxclient (см. рис. 3).
Затем делаем звонок другу (см. рис. 1) и общаемся, по-
ка не закончится последний IP-пакет.
Звонок вызова на стороне вашего коллеги будет проис-
ходить от имени пользователя Guest IAX User (см. рис. 4).
Рисунок 3. Доверить запуск апплета на выполнение На что стоит обратить внимание при использовании
клиента JIAX? На принадлежность пользователей одному
те WAV, GSM (и некоторых других) самой JVM и плюс к это- контексту, а именно default. Специально прописывать на-
му – обработка сигнализации IAX (Inter Asterisk eXchange). стройки для пользовате-
В итоге получился апплет, который физически размеща- ля Guest IAX User не надо.
ется на том же сервере, что и сам Asterisk, а пользователь Asterisk сам подставля-
просто-напросто вводит номер абонента, которому нужно ет название этого поль-
позвонить (см. рис. 1). зователя при установке
И при успешном соединении можно начинать говорить соединения. Если хоти-
через гарнитуру. те особо выделить, что
Плюсы у данного решения: звонок происходит с веб-
n не требуется установка SIP-телефона; сайта, например, как со-
n звонок (кодек и сигнализация) обрабатывается через единение от пользовате-
Java-плагин браузера; ля WebSite Client, то луч-
n мультиплатформенность. ший способ – это обра-
титься к документации
Минусами являются: на Asterisk. В том случае,
n необходимость использовать JVM; когда вы заводите поль-
n получение данных с микрофона происходит через JNI- зователей в соответс-
интерфейс, что требует установки библиотеки libjiaxc.so твии с названием под- Рисунок 4. Входящий звонок
от «фантомного» пользователя
(UNIX) или jiaxc.dll (Windows) на клиентскую машину. разделения или функци- Guest IAX User
62
IP-телефония
ональной принадлежности, например, office, то следует пом-
нить, что звонок от пользователя SIP1@default будет невоз-
можен своему коллеге SIP2@Office2. Из-за разных контек-
стов – default и Office2. Придется всех заносить в контекст
default, либо дорабатывать сам JIAX-клиент.
Да, и не забудьте поставить драйверы к аудио-систе-
ме на клиентской машине, иначе получите ошибку прило-
жения (cм. рис. 5).
[marko2]
type=friend
host=dynamic
regexten=1234
secret=moofoo
context=default
permit=0.0.0.0/0.0.0.0
[tony]
secret = mypass
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
«Встречный звонок»
Использование Asterisk Manager Interface на самом деле
не такая уж и плохая идея. В свете того, что сам Asterisk
и веб-сервер запущены и работают на одной машине –
не придется открывать лишние порты, да и само взаимо-
действие происходит в рамках localhost. Мы можем подго-
товить скрипт, параметрами к которому являются номера
соединяемых абонентов. Рисунок 7. Звонок «приходит» с идентификатором MozPhone
64
IP-телефония
Что у нас получается? Пользователь заходит на стра-
ницу сервера и запускает на ней Flex-приложение (по сути
flash-приложение) (см. рис. 11). Указывает свои параметры
для Asterisk-сервера и, авторизовавшись, получает окошко
с SIP-телефоном (см. рис. 12).
Теперь, набрав заветный номер, он может провести клас-
сическую английскую беседу о чае и погоде со своим да-
леким визави (см. рис. 13).
Как это будет выглядеть на стороне сервера? Во-пер-
вых, потребуется Java версии 6. Хотя может использо-
ваться и предыдущая, 5-я, версия, но разработчики реко-
мендуют все-таки переходить на более новую. На страни-
це [13] забираете tarball версии 0.7.0final сервера Red5, за-
тем ja‑файл red5.jar (детальная инструкция расположена
на сайте [14]) и сам архив SIP-телефона. Его следует раз-
местить в директории webapps, на стороне сервера. Затем,
запустив скрипт red5.sh, вы получите работающий Red5-
сервер, готовый принимать звонки. В целях разграниче-
ния функций вы можете разместить Red5 на другой маши-
не, нежели сам Asterisk.
В качестве эпилога
У каждого рассмотренного решения есть свои сильные
и слабые стороны. Но ясно одно, что телефония, а по боль-
шому счету видео- и аудиоконференции, находит все боль-
шее применение в повседней жизни, будь то совещание ра-
бочей группы в транснациональной компании либо уточне-
Рисунок 10. Сигнализация и передача данных при использовании
ние требований технического задания в маленькой фир- Flash-технологий
ме. Как говорил один политический деятель в прошлом
веке: «В решении какой-либо важной задачи непременно 4. Платов М. Asterisk и Linux: миссия IP-телефония. Действие 3.
должны быть взяты телефон, телеграф, станции». И если //«Системный администратор», №8, 2005 г. – С. 10-19.
под станциями рассматривать шлюзы для выхода в Интер- 5. http://www.asteriskguru.com/tutorials/sip_nat_oneway_or_no_
нет, а под телеграфом подразумевать сервер электронной audio_asterisk.html.
почты, то как «взять» телефон для нужд конечного пользо- 6. http://www.counterpath.com.
вателя, мы рассмотрели сегодня. 7. http://www.hem.za.org/jiaxclient.
8. http://iaxclient.wiki.sourceforge.net.
1. Платов М. Что важно знать об IP-телефонии? //«Системный 9. http://www.voip-info.org/wiki-IAXClient.
администратор», №5, 2005 г. – С. 20-25. 10. http://moziax.mozdev.org.
2. Платов М. Asterisk и Linux: миссия IP-телефония. //«Системный 11. http://www.azxws.com/asterisk.
администратор», №6, 2005 г. – С. 12-19. 12. http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol.
3. Платов М. Asterisk и Linux: миссия IP-телефония. Действие 2. 13. http://osflash.org/red5/070final.
//«Системный администратор», №7, 2005 г. – С. 32-38. 14. http://code.google.com/p/red5phone.
Рисунок 11. Пользовательские данные Рисунок 12. Абонент авторизован, Рисунок 13. Трубка на удаленном конце
введены и можно произвести звонок поднята – соединение осуществлено
Станислав Шпак
В первых двух частях статьи [1, 2] мы рассматривали процесс установки и настройки цепочки
из трех серверов, которые будут составлять ядро структуры PKI в вашем домене. Осталось
только произвести некоторые настройки в домене, чтобы вся конструкция перестала быть
бесполезным железом и наконец заработала.
В
отличие от изолированных СА СА использует шаблоны серти- будут применены к сертификату в про-
(Certificate Authority) СА уровня фикатов для автоматизации форми- цессе его выпуска.
предприятия обычно настраи- рования сертификатов из запросов. Шаблоны сертификатов хранятся
ваются на автоматический выпуск сер- Windows Server 2003 Enterprise Edition в Active Directory, поэтому, сконфигу-
тификатов. При этом для заполнения (и Datacenter Edition) поддерживают рировав шаблон на одном СА, вы бу-
нужных полей сертификата информа- шаблоны второй версии (V2), в то вре- дете иметь доступ к этому шаблону
ция берется из Active Directory. Разуме- мя как более ранние ОС – только пер- на любом другом СА в лесу. Это озна-
ется, сертификаты для более важных вой (V1). Основное различие между чает также и то, что, удалив шаблон,
целей (например, смарт-карты) можно версиями в том, что шаблоны V1 пре- вы удалите его из Active Directory, и он
выпускать вручную – такой метод дает допределены и неизменяемы, в то вре- не будет больше доступен нигде.
возможность более строго контроли- мя как шаблоны V2 позволяют сконфи- Для использования шаблонов V2
ровать процесс сертификации. гурировать множество опций, которые в смешанной доменной среде требу-
66
безопасность
ются расширение схемы AD до уровня
2003 Server и установка, как минимум,
SP3 на контроллеры домена под уп-
равлением Windows 2000. Кроме того,
использовать шаблоны V2 для запро-
са сертификатов могут не все клиен-
ты – тут существуют разные ограниче-
ния в зависимости от метода запроса
сертификата.
Таких методов несколько – серти-
фикат может быть запрошен автома-
тически, через соответствующую ос-
настку MMC, посредством Web или че- Рисунок 1. Оснастка Certifacate Templates
рез скрипт из командной строки. Поз-
же рассмотрим некоторые из них. Имейте также в виду, n Чтобы добавить шаблон в список шаблонов, обрабаты-
что если в домене существуют несколько выпускающих ваемых СА, надо в оснастке Certification Autority в раз-
СА, то запрос сертификата от клиента может быть на- деле Certification Templates нажать правую кнопку мыши
правлен на любой доступный СА, причем этот СА необя- и выбрать «New → Certificate Template to Issue» («Соз-
зательно будет ближайшим. Это стоит учесть, распола- дать → Выдаваемый шаблон сертификата»), после че-
гая СА в домене. го выбрать из списка шаблона нужный.
Автоматический выпуск сертификатов настраивает- n Если вы создали копию шаблона, настроили его свойст-
ся как комбинация доменных политик и шаблонов серти- ва, не забыли отметить опцию Publish in Active Directory,
фикатов. В результате выпуск сертификатов может стать а этот шаблон не появился в списке доступных для СА
для пользователя абсолютно прозрачным. Кроме того, шаблонов, подождите немного.
это снижает стоимость администрирования всей струк- n В тех шаблонах, которые предназначены для выпус-
туры PKI. ка сертификатов с целью шифрования данных, иногда
Те шаблоны сертификатов, по которым СА может выда- имеет смысл включить опцию Archive subject’s encryption
вать сертификаты после установки, можно посмотреть в ос- private key (архивировать закрытый ключ субъекта)
настке Certification Authority (центр сертификации) в разде- на вкладке Request Handling (обработка запроса) –
ле Certificate Templates (шаблоны сертификатов). Если на- это может помочь в будущем в случае необходимости
жать в этом разделе правую кнопку мыши и выбрать пункт восстановления данных, зашифрованных этим серти-
Manage (управление), то запустится оснастка Certificate фикатом.
Templates (шаблоны сертификатов), с помощью которой n Если надо включить в шаблоне какую-то опцию, а это
можно управлять шаблонами сертификатов (см. рис. 1). сделать нельзя ввиду того, что шаблон относится
Эти две оснастки тесно связаны, поэтому уделим им чуть к версии 1, создайте дубликат шаблона (но помните,
больше внимания. что не все клиенты умеют работать с шаблонами V2).
Итак, что нужно знать:
n Шаблоны V2 помечены в списке цветной иконкой, Итак, теперь проведем первичную настройку шабло-
в то время как шаблоны V1 – черно-белой. нов. Нам потребуются, как минимум, шаблоны типа Domain
n Повторюсь: параметры шаблонов V2 менять можно, Controller (контроллер домена), Computer (компьютер) и User
V1 – нет. (пользователь). Все эти шаблоны уже перечислены в раз-
n Очень не рекомендуется удалять шаблоны.
n Если нужно исправить шаблон, лучше создать его ко-
пию (щелкнув правой кнопкой мыши на имени шабло-
на и выбрав из меню Dublicate Template (скопировать
шаблон).
n Для использования в СА становятся доступны те шаб-
лоны, в свойствах которых на вкладке General (общие)
отмечена опция Publish in Active Directory (опубликовать
сертификат в Active Directory).
n Даже если шаблон доступен для СА, чтобы пользовате-
ли могли с ним работать, надо настроить права на вклад-
ке Security (безопасность).
n Если вы используете доменную структуру с корневым
доменом, обратите внимание, что по умолчанию пра-
ва для использования шаблона обычно даются учет-
ным записям из корневого домена. Для учетных запи-
сей из нижележащих доменов эти права надо дать яв-
ным образом. Рисунок 2. Выбор шаблона сертификата
68
безопасность
Authority и затем либо экспортировать
его из оснастки, либо воспользовать-
ся браузером.
Когда вы устанавливаете серти-
фикат на компьютер, который не явля-
ется членом домена, то нужно не за-
быть, что вам еще потребуется уста-
новить сертификат СА в хранилище
доверенных корневых сертификатов.
Получить сертификат СА можно или
через веб-запрос (по ссылке Download
a CA certificate, certificate chain, or CRL),
или взять из точки распространения
сертификатов, доступной клиентам
(обычно это то же самое место, куда
публикуются CRL из СА предприятия).
Очень важно, чтобы внешние кли-
енты могли получить доступ к серти-
фикату вашего корневого СА, поэтому
не пренебрегайте возможностью раз-
мещения файлов CRL и файла серти- Рисунок 3. Параметры автоматической подачи заявок
фиката корневого СА в местах, доступ-
ных извне (например, на веб-сайте). Имея сертификат кор- воляет создать резервную копию всей связанной с СА ин-
невого СА (в нашем случае это файл RootCA_RootCA.crt), формации.
нужно открыть оснастку Certificates (не важно, для пользова-
теля или компьютера) и открыть ветку «Certificates → Trusted 1. Шпак С. Установка цепочки серверов сертификации как часть
Root Certification Authorities → Certificates» («Сертификаты → внедрения PKI в домене. Часть 1. //Системный администратор,
Доверенные корневые центры сертификации → Сертифи- №8, 2008 г. – С. 54-58.
каты»). Нажать правую кнопку мыши, выбрать All Tasks v 2. Шпак С. Установка цепочки серверов сертификации как часть
Import («Все задачи → Импорт») и далее, следуя указаниям внедрения PKI в домене. Часть 2. //Системный администратор,
мастера, импортировать сертификат в хранилище (на вто- №10, 2008 г. – С. 60-64.
ром шаге лучше указать хранилище в явном виде, не поз- 3. http://support.microsoft.com/kb/922706.
воляя мастеру выбрать его автоматически). 4. Windows Server 2003 PKI Operations Guide – http://technet.
microsoft.com/en-us/library/cc787594.aspx.
Заключение
Теперь, когда мы получили работающую цепочку серве-
ров сертификации, кратко перечислю основные момен-
ты процесса:
n Для установки корневого СА используйте файл
capolicy.inf, в котором разделы указания CDP и AIA надо
оставить пустыми.
n Изолированные СА держите физически выключенны-
ми до тех пор, пока не потребуется обновить файл CRL
или сертификат СА.
n Тщательно выбирайте интервалы публикации списков
отзыва сертификатов.
n При обновлении CRL или сертификата изолированно-
го СА не забывайте импортировать измененные данные
в AD. Только СА уровня предприятия делают это авто-
матически.
n Следите за тем, чтобы в точках CDP всегда лежали
актуальные CRL-файлы, а сами точки CDP были до-
ступны.
n Поместите сертификат корневого СА в такое место, где
он будет легко доступен как для внешних, так и для внут-
ренних клиентов.
n Делайте резервное копирование СА. Для этого можно
использовать команду certutil.exe, но только использо-
вание программы ntbackup с опцией System state поз- Рисунок 4. Запрос сертификата через браузер
Немного
о сертификации
Cisco
Андрей Бирюков
Многие специалисты по сетевым технологиям наверняка сталкивались с упоминанием
сертификатов CCNA, CCSP, CCNP и других статусов от компании Cisco Systems. В этой статье
я расскажу о том, что собой представляет сертификация этого производителя, а также
расскажу о том, как лучше готовиться, чтобы получить эти статусы.
П
овышение квалификации – не- та, работающего в IT. Одним из са- ляется сдача тестов и получение сер-
отъемлемая часть работы лю- мых распространенных средств под- тификатов по соответствующим спе-
бого технического специалис- тверждения своей квалификации яв- циализациям. Не буду лишний раз на-
70
образование
поминать, что сертификация являет- Сертификации Cisco
ся важным критерием при начальном Certification Paths Associate Professional Expert
рассмотрении кандидатуры при тру- Routing & Switching CCNA CCNP CCIE Routing & Switching
доустройстве. Design CCNA & CCDA CCDP CCDE
Фактически каждый более-менее се- Storage Networking CCNA CCNP CCIE Storage Networking
72
образование
ли. Так что тратиться на русскоязыч- ляется использование программных
ные книги я не советую. симуляторов.
Многие для подготовки к экзаме- Существуют симуляторы от Boson,
нам заказывают англоязычные книги но, по моему мнению, они пригодны
через Amazon. В этих книгах, как пра- к подготовке только к CCNA. Для эк-
вило, информация поновее, но все же заменов CCNP их функционала явно
гораздо легче и быстрее найти элект- недостаточно.
ронный вариант на просторах Интер- Так что лучше воспользоваться
нета. Мне, например, больше всего бесплатным симулятором Dynamips [2].
нравятся книги для подготовки к экза- С помощью этого симулятора мож-
менам от Syngress, в них всегда дается но построить сеть практически лю-
больше материала, чем нужно для эк- бой сложности, все будет определять-
замена. Думаю, в Сети вы без труда ся мощностью компьютера, на кото-
найдете электронный вариант книги ром запущен симулятор. Описание
по сдаваемому экзамену. настройки и технические особеннос-
Теоретические знания лучше все- ти Dynamips выходят за рамки дан-
го проверять с помощью симулято- ной статьи (возможно, следует напи-
ров тестов, например от Transcender сать отдельную статью, посвящен-
или Boson. В этих симуляторах вы, ную этому симулятору), но на некото-
как на настоящем экзамене, отвечае- рых моментах я все же хотел бы ос-
те на аналогичные по сложности воп- тановиться.
росы и получаете баллы за каждый Сейчас симулятор поддерживает
правильный ответ. Если ваш результат следующие платформы:
стабильно больше 900 балов, то вы ус- n Cisco 7200 (NPE-100 to NPE-400);
воили материал. n Cisco 3600 (3620, 3640 and 3660);
Помимо теоретических вопросов n Cisco 2691;
во всех экзаменах встречаются симу- n Cisco 3725;
ляции. Симуляции на экзамене CCNA n Cisco 3745.
не являются сложными. Например, не-
обходимо настроить на сетевом интер- При этом IOS не входит в состав си-
фейсе IP-адрес, маску, указать ско- мулятора, и вам необходимо самостоя-
рость и прописать инкапсуляцию, за- тельно найти файл образа. Существу-
тем проверить соединение с другим ют версии симулятора как для Windows,
узлом с помощью пинга. С таким прос- так и для Linux, и даже для Mac OS X.
тым заданием справится любой специ- На машине с 1,5 Гб и под Windows XP
алист, хоть немного знакомый с обо- мне удавалось развернуть до 4 одно-
рудованием Cisco. Но к более серьез- временно работающих маршрутизато-
ным заданиям нужно готовиться пред- ров. Думаю, под Linux производитель-
варительно. ность будет еще больше.
О том, какие именно симуляции
Виртуальное сейчас присутствуют на экзаменах,
оборудование лучше всего узнать на тематических
На курсах вам, как правило, проде- форумах [3, 4].
монстрируют «живое» оборудование.
Иногда и даже проведут на нем лабо- Что такое «брейндамп»
раторные работы, а вот при самостоя- и кто такие «дамперы»
тельной подготовке необходимо само- Путешествуя по различным интернет-
му искать нужное оборудование. Хоро- ресурсам, посвященным сертифика-
шо, если у вас на работе имеется пара ции, вы рано или поздно обнаружи-
лишних маршрутизаторов, на которых те упоминание о braindump, testking,
можно тренироваться. Можно, конечно, pass4sure и других «учебных матери-
для подготовки дома приобрести по- алах». Поговорим о том, что это такое.
держанное оборудование, но я не ду- Брейндампы фактически представля-
маю, что ваши домашние сильно обра- ют собой вопросы с экзамена, укра-
дуются появлению «больших шумных денные несознательными сотрудника-
железок», таких, к примеру, как знаме- ми центров тестирования. Эти вопро-
нитый «шеститонник». сы представлены с ответами, и вот тут
Таким образом, лучшим выходом начинается самое интересное, так как
для самостоятельной подготовки яв- эти ответы, как минимум, в 20% случа- Реклама
74
web-программирование
Александр Слесарев
Кто из веб-разработчиков в начале каждого проекта не сталкивался с рутинными
процедурами создания архитектуры приложения, выбора и написания библиотек классов
и функций? Кому не приходилось помногу раз переписывать методы для работы с базой
данных, файлами, постоянно жалея о том, что время, затраченное на эти задачи, можно
было бы использовать в реализации данного проекта? Выход из подобных ситуаций
один – использование каркасной среды разработки, позволяющей во много раз повысить
производительность разработки.
Преимущества JavaScript, PHP, Python и др. Опреде- зации приложения. Но, на мой взгляд,
использования лить значение его проще всего как это, скорее, можно отнести к преиму-
фреймворков набор инструментов, библиотек, со- ществам использования каркасной
В настоящее время существует огром- глашений, предназначенных для вы- среды, так как данный подход обуча-
ное количество инструментов, значи- несения повторяющихся операций ет разработчика дисциплине написа-
тельно облегчающих жизнь веб-разра- в отдельные модули, которые можно ния кода.
ботчикам, одним из которых являются использовать многократно. Главная В этой статье я хотел бы расска-
так называемые каркасные среды раз- цель – позволить разработчику со- зать вам об одном из популярных сре-
работки. К ним относятся всевозмож- средоточиться на решении уникаль- ди разработчиков PHP-фреймворке –
ные фреймворки, которые позволяют ных для каждого проекта задач, ос- Kohana, разработанном командой
увеличить производительность созда- тавив все рутинные операции фрейм- Kohana Software Foundation. Он бази-
ния приложений, значительно умень- ворку. Проанализировав свою работу, руется на паттерне MVC (модель-отоб-
шая количество написанного кода, со- вы наверняка замечали, что есть вещи, ражение-контроллер) и имеет каскад-
ответственно сокращая время, затра- которые приходится повторять много- но-модульную структуру. Он создан
ченное на разработку. Так что же это кратно в каждом проекте. Его цель – на базе не менее популярного и быст-
такое – фреймворк? Попросту говоря, объединить эти действия в отдельную рого фреймворка Code Igniter и вклю-
это готовый каркас будущих приложе- структуру, следуя принципу «Не повто- чает все положительные стороны пос-
ний, которые будут создаваться на его ряй себя». Это может значительно со- леднего. Однако в отличие от него
основе. Можно писать каждое новое кратить время разработки приложения в Kohana отсутствует поддержка PHP
приложение «с нуля», формируя каж- и, соответственно, снизить стоимость версии 4 и изменен механизм модуль-
дый раз его структуру, распределяя конечного продукта. ного расширения (на мой взгляд, бо-
модули, директории, библиотеки клас- Для обеспечения каркаса обычно лее удобный). Но главное его досто-
сов, обрабатывающие основные ком- используется техника объектно-ориен- инство – простота. В отличие, напри-
поненты приложения, а можно не изоб- тированного программирования (ООП), мер, от такого мощного фреймворка,
ретать велосипед и воспользоваться например, части приложения могут на- как Zend Framework, для работы с ко-
готовым универсальным решением, следоваться от базовых классов кар- торым не обойтись поверхностны-
которое, собственно, и предоставляет касной среды. Такой подход в соче- ми знаниями в PHP-программирова-
каркасная среда разработки. тании с паттернами проектирования нии, а именно в ООП, Kohana доступ-
Сегодня слово «фреймворк» – од- весьма эффективен, хотя и налагает на, на мой взгляд, даже начинающим
но из самых популярных у програм- на разработчика некоторые обязан- PHP-программистам, знакомым только
мистов. Для веб-разработки создана ности, заставляя его следовать согла- с основами объектно-ориентированно-
масса различных каркасных сред для шениям в написании кода и структури- го программирования.
www.domain.ru/controller/method/params
76
web-программирование
альному файлу, указанному в запросе, а формируется внут- 'connection' => array
(
ренними методами системы. Любой запрос, отличающийся 'type' => 'mysql', //Тип БД
от данной схемы, вызовет ошибку. Это повышает «иммуни- 'user' => 'root', //Имя пользователя БД
'pass' => 'pass', //Пароль БД
тет» приложения к некоторым видам уязвимостей, напри- 'host' => 'localhost', //Хост БД
мер, таких, как XSS (межсайтовый скриптинг). 'port' => FALSE,
'socket' => FALSE,
Также необходимо отметить, что в каждом файле 'database' => 'kohana' //Имя БД
фреймворка вставлена строка: ),
'character_set' => 'utf8',
'table_prefix' => '',
defined('SYSPATH') or die('No direct script access.'); 'object' => TRUE,
'cache' => FALSE,
'escape' => TRUE
Она запрещает прямой доступ к файлу GET-запросом, );
поэтому попытка обратиться через строку браузера к лю-
бому файлу не приведет к успеху. Для корректной работы приложения следует обратить
Следует также сказать, что вы можете изменить свой внимание на настройки PHP интерпретатора, а именно
URL, добавив к нему произвольный суффикс, например, на подключенные расширения. К необходимым из них от-
html. Для этого в конфигурационном файле application/ носятся следующие:
config/config.php добавить его значение в параметр n PCRE – функции для работы с регулярными выражени-
$config['url_suffix'] = ‘html’ (по умолчанию суффикс отсутс- ями (Perl-совместимые);
твует). В этом случае URL может иметь такой вид: n iconv – интерфейс к библиотеке преобразования коди-
ровок iconv;
www.domain.ru/controller/method/params.html n mcrypt – требуется для шифрования;
n SPL – требуется для некоторых библиотек ядра.
//Конструктор
<?php defined('SYSPATH') or die('No direct script access.'); public function __construct()
{
$config['default'] = array parent::__construct();
( }
'benchmark' => TRUE,
'persistent' => FALSE,
78
web-программирование
...
// Код программы
...
// Остановка измерения
Benchmark::stop('benchmark1');
...
// Вывод значения
Рисунок 3. Схема прохождения запроса print_r(Benchmark::get('benchmark1'));
80
web-программирование
n SYSPATH – путь к директории system; Существует еще один способ изменения функциональ-
n MODPATH – путь к директории modules. ности ядра с помощью библиотек – переопределение су-
ществующего класса. Для этого нужно всего лишь создать
Еще одним способом внесения изменений в функцио- класс и содержащий его файл, имена которых идентичны
нальность ядра является использование библиотек. Авто- существующей библиотеке, и поместить его в директорию
матически загружаются системой и доступны в любом мес- application/libraries. Вот простой пример, иллюстрирующий
те следующие библиотеки: переопределение существующей библиотеки Profiler.
n URI; Файл application/libraries/Profiler.php:
n Input.
<?php defined('SYSPATH') or die('No direct script access.');
Остальные библиотеки могут быть загружены по мере class Profiler_Core {
необходимости. Для этого достаточно инициализировать
//Код новой библиотеки Profiler
новый объект класса библиотеки: }
?>
$this->profiler = new Profiler;
Еще одним приятным моментом для разработчика яв-
В приведенном выше примере методы библиотеки ляется использование так называемых хелперов – вспо-
Profiler будут доступны в объекте profiler. При необходимос- могательных функций. Наряду с библиотеками Kohana
ти, для изменения функциональности, можно легко расши- предоставляет богатый набор этих функций, но в отличие
рять и переопределять существующие библиотеки Kohana от библиотек, для доступа к методам которых нужно бы-
и создавать собственные. Располагать библиотеки следу- ло инициализировать объект, все методы хелперов явля-
ет в директории application/libraries. Требования к файлам ются статическими и доступны в момент обращения к ним.
при создании новой библиотеки следующие: Так же, как и библиотеки, хелперы автоматически загру-
n первая буква имени файла прописная, остальные строч- жаются системой, и потому нет необходимости беспоко-
ные; иться об их загрузке.
n имя класса должно совпадать с именем файла и иметь Для доступа к методу любого хелпера достаточно обра-
суффикс _Core. титься к нему в нужном месте кода:
С
разу хочу сказать, что полный программный код всех Рег = РегистрыСведений.СтруктураПерегрузки. ↵
обработок печатать бессмысленно из-за достаточ- СоздатьМенеджерЗаписи();
Рег.Ид = Семерка.ЗначениеВСтрокуВнутр ↵
но большого объема. На примере одной обработки (Спр77.текущийэлемент());
я покажу основные принципы работы и расскажу свой ход Рег.Орг = Орг.Ссылка;
Рег.Элемент = Спр8.Ссылка;
мысли. Готовые обработки можно найти на сайте журнала Рег.Записать();
www.samag.ru в разделе «Исходный код».
Рассмотрим типовой случай перехода с платформы Будем считать этап загрузки справочников подготови-
«1С:Предприятие» версии 7.7 на версию 8.1 с нового года. тельным, перейдем к более подробному рассмотрению пе-
Задача: перенести справочники «Контрагенты» и «До- реноса данных о задолженности контрагентов.
говора», а также остатки взаиморасчетов по счету 60 Создадим внешнюю обработку, разместим на форме пе-
из «старой» базы в «новую». До перехода предприятие ра- реключатель для выбора субсчета 60-го счета, а также дату
ботало с конфигурацией «Производство + Услуги + Бух- итогов и дату создаваемой операции (см. рисунок).
галтерия» (платформа 7.7), после перехода собирается ра- В процедуре «КнопкаСформироватьНажатие» размес-
ботать с конфигурацией «Управление производственным тим весь необходимый текст программы.
предприятием» (платформа 8.1). Сначала подключимся через OLE к той базе данных,
Разделим за- из которой будем брать данные:
дачу на две. Пер-
вая – перенос КаталогПрограммы77 = "C:\Program Files\1Cv77\BIN\";
КаталогБазы77 = "C:\1c_base\ПУБ\";
справочников, СтрокаПодключения = """" + КаталогПрограммы77 + """" + ↵
вторая – перенос "enterprise /d""" + КаталогБазы77 + """" + ↵
" /nЮзер /p123";
остатков по сче- Семерка = Новый COMОбъект("V77S.Application");
там. Если Семерка.Initialize(Семерка.RMTrade, ↵
СтрокаПодключения,"NO_SPLASH_SHOW") Тогда
При перено - Сообщить("Открыта база 7.7");
се справочников Соединение=Истина;
КонецЕсли;
создадим допол-
нительную струк- Каталоги программы и базы данных можно прописать
туру (регистр све- в самом модуле, а можно и сделать интерактивный выбор
Форма обработки загрузки данных
во взаиморасчетах дений), который на форме. Строка подключения собирается из каталога за-
будет использо- пуска программы, режима запуска, каталога базы данных,
ваться для поиска и точной идентификации перенесенных имени пользователя и пароля. В данном случае имя поль-
объектов в базе данных. Назовем этот регистр «Структура- зователя «Юзер», пароль «123».
Перегрузки», первое измерение будет «ИД» (строка, дли- Далее производим подключение, причем с параметром
на 150), второе – «Орг» (для случая многофирменного уче- NO_SPLASH_SHOW, это означает, что запуск базы будет
та), ресурс «Элемент» составного типа данных, включаю- происходить без демонстрации заставки, т.е. практически
щий в себя все справочники, которые мы собираемся за- незаметно для пользователя.
полнять переносом данных.
При загрузке справочников, кроме записи самих эле- ИНН = Лев(Семерка.Константа.ИННОрганизации,10);
Орг = Справочники.Организации.НайтиПоРеквизиту("ИНН",ИНН);
ментов, будет заполняться и этот регистр сведений при- Опер = Документы.ОперацияБух.СоздатьДокумент();
мерно следующим образом: Опер.Организация = Орг.Ссылка;
Опер.Дата = ДатаОперации;
82
администрирование «1С»
БИ77 = Семерка.CreateObject("БухгалтерскиеИтоги"); Движ.СубконтоДт.Вставить ↵
ОлеВидСубконто1=Семерка.EvalExpr ↵ (ПланыВидовХарактеристик. ↵
("ВидыСубконто.Контрагенты"); ВидыСубконтоХозрасчетные. ↵
ОлеВидСубконто2=Семерка.EvalExpr("ВидыСубконто.Договоры"); Договоры,Элемент8);
Движ.СчетКт = ПланыСчетов.Хозрасчетный. ↵
Вспомогательный;
Замечу, что создание объектов в подключаемой по OLE- Движ.Сумма = ДебетовоеСальдо;
Движ.Активность=Истина;
базе происходит с помощью англоязычного синонима Движ.Период = ДатаОперации;
CreateObject, а не «СоздатьОбъект». Метод EvalExpr также Опер.Движения.Хозрасчетный.Записать();
ИначеЕсли КредитовоеСальдо<>0 тогда
часто используется при работе с технологией OLE, означа- ИД = Семерка.ЗначениеВСтрокуВнутр ↵
ет вычисление выражения системы. (БИ77.Субконто(2));
Рег = РегистрыСведений.СтруктураПерегрузки;
ОтборПоИД = Новый Структура("ИД, Орг");
Если Счет60=1 Тогда ОтборПоИД.ИД = ИД;
Счет = ПланыСчетов.Хозрасчетный. ↵ ОтборПоИД.Орг = Орг.Ссылка;
РасчетыСПоставщиками; ВыборкаИД = рег.Получить(ОтборПоИД);
СчетСтр = "60.1"; Элемент8 = ВыборкаИД.Элемент.Ссылка;
ИначеЕсли Счет60=2 Тогда Движ = Опер.Движения.Хозрасчетный.Добавить();
Счет = ПланыСчетов.Хозрасчетный. ↵ Движ.СчетКт = Счет.Ссылка;
РасчетыПоАвансамВыданным; Движ.СубконтоКт.Вставить ↵
СчетСтр = "60.2"; (ПланыВидовХарактеристик. ↵
ИначеЕсли Счет60=3 Тогда ВидыСубконтоХозрасчетные. ↵
Счет = ПланыСчетов.Хозрасчетный. ↵ Контрагенты,Элемент8.Владелец);
РасчетыСПоставщикамиВал; Движ.СубконтоКт.Вставить ↵
СчетСтр = "60.11"; (ПланыВидовХарактеристик. ↵
ИначеЕсли Счет60=4 Тогда ВидыСубконтоХозрасчетные. ↵
Счет = ПланыСчетов.Хозрасчетный. ↵ Договоры,Элемент8);
РасчетыПоАвансамВыданнымВал; Движ.СчетДт = ПланыСчетов.Хозрасчетный. ↵
СчетСтр = "60.22"; Вспомогательный;
КонецЕсли; Движ.Сумма = КредитовоеСальдо;
Движ.Активность=Истина;
Здесь всё достаточно ясно, происходит определение Движ.Период = ДатаОперации;
Опер.Движения.Хозрасчетный.Записать();
счета взаиморасчетов в зависимости от установленного КонецЕсли;
переключателя на форме. КонецЦикла;
КонецЦикла;
БИ77.ИспользоватьСубконто("Контрагенты"); По каждому договору определяем задолженность,
БИ77.ИспользоватьСубконто("Договоры");
БИ77.ВыполнитьЗапрос(ДатаИтогов,ДатаИтогов,СчетСтр); и в зависимости от знака («+» или «-») формируем движе-
БИ77.ВыбратьСубконто(1); ния документа «Операция».
«Магические» технологии:
история компании General Magic
Часть 2
Как и смерть многих великих компаний, General Magic была погублена
не голодом, а, наоборот, переизбытком пищи. Переизбытком денег,
всезнающих мозгов и эгоизма, который вызвал расстройство
желудка и удивительно медленную смерть.
Дмитрий Мороз
По признанию многих аналитиков, General Magic имела все шансы стать во главе рынка
переносных компьютеров, не поставь она на закрытые коммуникационные сети. Однако могла
ли компания предугадать возникшие на пути трудности, стремительное развитие Интернета,
свою неспособность реагировать на нужды потребителей и действовать в условиях быстро
меняющегося рынка?
84
ретроспектива
К
огда у игрока в руке припасе-
на пара козырей, он начинает Первый среди первых мы были ещё месяцы доработки, а практи-
действовать более уверенно. Несмотря на то что портативные компью- чески законченный продукт, готовый к вы-
Однако настолько ли оправданным бу- теры под управлением Magic Cap, кото- пуску. Однако подвели Sony не её собс-
дет риск, если карты противника аб- рые всё-таки добрались до рынка, можно твенные инженеры, а партнёр «по цеху» –
солютно нивелируют призрачное пре- пересчитать по пальцам одной руки, раз- General Magic.
имущество? личных прототипов на базе этой операци- К тому времени, когда «Бамбук» был
К 1993 году General Magic имела онной системы, разработанных в недрах на стадии подготовки к серийному произ-
в своём активе две передовые техно- General Magic, Sony и Motorola, было выпу- водству, стало понятно, что компании не-
логии, которые уже были готовы к вы- щено, как минимум, столько же. обходим, как минимум, год, дабы предо-
ходу на рынок. Первой из них являлась Пожалуй, наиболее примечательным ставить рабочую версию Magic Cap. Опе-
операционная система Magic Cap, в ка- из них является Sony HIX-300 под кодо- рационной системе требовалось в два ра-
честве второй же выступал язык про- вым названием «Bamboo» (Бамбук). Дан- за больше оперативной памяти, а также
граммирования Telescript. Обе техно- ный компьютер примечателен своим ди- более ёмкий аккумулятор. Процессор ком-
логии планировалось использовать зайном, который позволял говорить о нём пьютера был слишком медленным для ра-
в тандеме, однако ничто не мешало как о самом тонком из всех устройств под боты ОС. Кроме того, реализация управ-
коммуникационным компаниям приме- управлением Magic Cap. Впрочем, наибо- ления питанием, резервной батарейкой и
нить мультиплатформенный Telescript лее интересной всё же является история памятью в ней повергла инженеров Sony
в собственных проектах, используя его появления на свет, поскольку обычно в ступор. В результате компания отмени-
персональные компьютеры с их «на- прототипы собственного модельного но- ла подготовку к запуску HIX‑300 и заня-
стольными» ОС и устройства типа мера не имеют. лась разработкой Magic Link, который имел
Apple Newton. В 1993 году, во время бурной рабо- больший объём оперативной памяти, более
За сетевые коммуникации между ты по подготовке операционной систе- быстрый процессор, новый дизайн корпу-
устройствами электронных гигантов мы к релизу, лицензии на её использова- са, на котором расположились две клави-
отвечал оператор AT&T. В недрах дан- ние получили три компании: Sony, Motorola ши <Shift> для возможности управления
ной компании специально для рабо- и Matsushita Electric (ныне Panasonic). обеими руками, а также более ёмкий ак-
ты с Telescript было организовано но- По словам Зарко Драганича (Zarko Draganic), кумулятор.
вое подразделение под названием ранее работавшего в General Magic, Sony В итоге можно констатировать факт:
PersonaLink Services, которое она опи- была впереди планеты всей и разработа- если бы Magic Cap 1.0 была готова к мо-
сывала как «фонд или основу для элек- ла свой вариант портативного компьютера менту окончания работ над устройством,
тронного сообщества – такого себе намного раньше остальных игроков. При- HIX-300 уже в 1993 году стал бы первым
центра для пользователей: предпри- чём это был не просто прототип, для под- портативным компьютером под управле-
нимателей, предлагающих свою про- готовки к производству которого необходи- нием этой ОС на рынке.
дукцию и услуги, а также людей встре-
чающихся, покупающих, работающих Envoy 100 отличался лишь нали- нако, к всеобщему удивлению, в те-
и развлекающихся». чием двух разъёмов для карт PC Card чение дня цена поднялась до 32 дол-
Впрочем, выход Magic Cap постоян- вместо одного у PIC‑1000, а также ларов. Однако General Magic рано ра-
но откладывался, и появление на рын- встроенным радиомодемом на осно- довалась, ведь это было лишь началом
ке первого компьютера под её управ- ве технологии DataTAC и поддержкой долгой борьбы за рынок. По мнению
лением, Magic Link PIC-1000 произ- соответствующего сервиса под назва- экспертов, компания заинтриговала
водства Sony, состоялось лишь 28 сен- нием Radiomail, который позволял по- всех своими перспективными разра-
тября 1994 года. Motorola выпустила лучать и отправлять электронную поч- ботками и обещаниями о лучшем ми-
свой вариант под названием Envoy 100 ту без необходимости проводного дос- ре, однако сможет ли она выполнить их
спустя ещё три месяца. тупа к Сети. Что же касается габари- и доказать, что и Magic Cap, и Telescript
Оба устройства были разработа- тов, устройства были гораздо больше имеют право на жизнь – это уже дру-
ны на базе единой платформы раз- своих конкурентов. Так, PIC-1000 имел гой вопрос.
работчика, «сердцем которой» яв- размеры 19х13х2,5 см и вес 545 грамм, В отличие от финансовых показа-
лялся 16 МГц микроконтроллер 68300 а Envoy 100, обладая схожими габа- телей количество реализованных кар-
производства Motorola. В результа- ритами, из-за встроенного радиомо- манных компьютеров Sony и Motorola
те большинство характеристик в ви- дема отягощал своего владельца уже было, мягко говоря, невпечатляю-
де 1 Мб оперативной памяти, чёрно- на 817 грамм. щим: в течение нескольких месяцев
белого экрана с диагональю 5,4 дюй- Когда первые устройства поя- с начала продаж лишь несколько ты-
ма и разрешением 480х320 пикселей вились на рынке, а AT&T запустила сяч устройств нашло новых владель-
и отображением 4 градаций серого, ин- PersonaLink, для General Magic наста- цев. Впрочем, по словам руководства
фракрасного порта, факс-модема со ло время входить в «открытое плава- General Magic, они были готовы к столь
скоростью передачи данных 9,6 Кбит/ ние». Случилось это событие 11 фев- неспешному набору скорости.
с и аккумулятора, обеспечивавшего раля 1995 года. Изначально компания Ещё в преддверии первой публич-
8-12 часов автономной работы, были планировала продать 4 миллиона ак- ной демонстрации технологий сво-
идентичными. ций по цене 14 долларов за штуку, од- ей компании Энди Хертцфилд (Andy
Hertzfeld) не отрицал, что кампания и Matsushita, эти компании не спеши- даже его назвать уверенным никак
по продвижению устройств на основе ли предлагать рынку свои устройства. нельзя: стоимость одного устройства
Magic Cap рассчитана на долгосроч- Нет, демонстрация публике собствен- в 1000‑1500 долларов, которая при по-
ные перспективы. ных разработок на базе Magic Cap, ко- купке нескольких аксессуаров в виде
«Мы готовились к сравнительно нечно же, была. карты памяти, кабеля для соединения
медленному старту, особенно памя- Та же Matsushita продемонстри- с персональным компьютером и внеш-
туя наш прошлый опыт с Macintosh, ровала прототип своего коммуни- ней клавиатуры вырастала в полтора
которому понадобилось два года, кационного устройства под назва- раза, отпугивала от компьютеров мно-
чтобы «встать на ноги». То же самое нием Panasonic NeoNet на выстав- гих потенциальных покупателей.
и здесь. Экраны недостаточно хоро- ке Consumer Electronics Show (CES) Цена в пару сотен долларов за ус-
ши для удовлетворения запросов на- в 1996 году. Благодаря своим неболь- тройство на базе Magic Cap, о кото-
ших клиентов. Время автономной ра- шим габаритам (подумать только!), за- рой говорили в интервью Билл Эткин-
боты устройств от встроенных аккуму- щитной крышке для экрана и исполь- сон (Bill Atkinson) и Энди Хертцфилд
ляторов очень мало. И также абсолют- зованию более совершенной версии на заре появления своей компании,
но не развита инфраструктура беспро- ОС под номером 1.5 этот портатив- продолжала оставаться недостижи-
водных коммуникаций». ный компьютер смог вызвать интерес мой мечтой.
«Всё это являлось довольно нетри- у покупателей и вынудить их ждать Не стоит забывать, что кроме круг-
виальной проблемой, – честно призна- своё появление на рынке с большим ленькой суммы, которую необходимо
вался Энди. – Однако нам приходи- нетерпением. было выложить за Magic Link или же
лось с чего-нибудь начинать, собст- К сожалению, чуда не случилось: Envoy, покупатель был вынужден еже-
венноручно создавая необходимые постоянное откладывание даты выпус- месячно отдавать ещё несколько де-
условия для появления сетей беспро- ка устройства, а также неготовая сете- сятков долларов в качестве абонент-
водной передачи информации, влияя вая инфраструктура для его функцио- ской платы за использование службы
на улучшение характеристик экранов нирования, за которую отвечал япон- PersonaLink, без которой ориентиро-
мобильных устройств. То есть согласно ский оператор Nippon Telegraph and ванный на сетевые коммуникации ком-
нашему плану мы просто делали свою Telephone (NTT), сделали своё «чёр- пьютер на базе Magic Cap был, в об-
работу, надеясь на то, что остальные ное дело». щем-то, ничем не лучше давно пре-
подтянутся». Та же история постигла и европей- бывавшего на рынке Apple Newton
Оптимистично настроенному руко- ского гиганта потребительской элект- или же карманных компьютеров ком-
водству General Magic приходилось вы- роники – компанию Philips. Изначально пании Psion, которые стоили в два ра-
ступать в неравной игре против целой планировавшийся совместно с фран- за дешевле.
индустрии, и вот здесь вставал вопрос: цузским оператором France Telecom Что же касается возможностей,
у кого окажется более сильная рука – проект по выпуску устройства на базе предоставляемых PersonaLink, они
у компании или же у рынка? По иронии Magic Cap и организация сети для его по большей части ограничивались
судьбы, второй вариант вышел из иг- работы, аналогичной PersonaLink ком- работой с электронной почтой, воз-
ры победителем. пании AT&T, так и не состоялся. можностью получения программного
Как итог – карманные компью- обеспечения, электронных «визитных
Факир был пьян, теры под управлением операцион- карточек» других абонентов службы
и фокус не удался ной системы General Magic продол- и всё. «Умные агенты» Telescript, о ко-
Несмотря на партнёрские соглаше- жали своё скромное шествие лишь торых Билл и Энди так радужно рас-
ния между General Magic и Philips на внутреннем рынке США. Однако сказывали несколько лет назад, на-
86
ретроспектива
шли в сервисе лишь ограниченное ний CodeWarrior Magic, работавшего Впрочем, как и компьютеры на ба-
применение. на компьютерах Macintosh. зе «полновесной» Magic Cap, оболоч-
Более того, на раннем этапе Однако все вышеперечислен- ка для Windows не пользовалась осо-
PersonaLink даже не поддерживала ные проблемы меркли по сравнению бым успехом у ппользователей и даль-
графические и аудиофункции компью- с главной катастрофой, которую про- ше статуса диковинки на пару часов
теров под управлением Magic Cap, ог- игнорировала компания – сеть Ин- не продвинулась.
раничиваясь обменом сообщений, со- тернет. Суммируя всё вышесказанное, си-
державших лишь простой текст. И это Появление в 1994 году браузе- туация на рынке для General Magic вы-
при том, что операционная система ра Mosaic, а чуть позже и Netscape глядела не лучшим образом.
изначально поддерживала «обогаще- Navigator произвело эффект взорвав-
ние» писем рисунками, музыкальным шейся бомбы: количество пользовате- Попытка перезапуска
сопровождением и прочей мультиме- лей, стремящихся приобщиться к Все- В середине 1996 года Sony и Motorola
дийной информацией. мирной компьютерной Сети, росло представили свои новые модели ком-
Ещё один недостаток, на кото- в геометрической прогрессии. пьютеров под управлением Magic
рый жаловались первые покупате- И в то время, когда новички на рын- Cap, получившие названия Magic Link
ли, – отсутствие программ сторонних ке взялись за перспективный рынок, PIC‑2000 и Envoy 150 соответственно.
разработчиков. General Magic обеща- General Magic продолжала поддержи- По сравнению со своей предшес-
ла, что спустя короткое время после вать закрытую сеть PersonaLink. Её по- твенницей PIC-2000 обладала увели-
появления первых устройств на базе пулярность напрямую зависела от ко- ченным до 2 Мб объёмом оператив-
Magic Cap выпустит пакет разработ- личества пользователей устройств ной памяти, двумя слотами PC Card,
ки приложений для своей ОС, а так- на базе Magic Cap, которое в свою оче- более быстрым 14,4 Кбит/с модемом,
же всю необходимую документацию. редь было ограничено высокой стои- встроенным динамиком, а также, и это
В реальности же к середине 1995 го- мостью компьютеров на базе этой ОС. главное, экраном с подсветкой, на от-
да доступное описание внутренней В результате, не имея хорошего дохо- сутствие которой жаловалось подав-
архитектуры операционной системы да от нового сервиса, у AT&T не бы- ляющее большинство пользователей
было поверхностным, к тому же напи- ло интереса в дальнейшем его совер- оригинального устройства. В качест-
санное излишне усложнённым языком, шенствовании. ве операционной системы исполь-
а средства разработки существовали В стремлении популяризировать зовалась Magic Cap 1.5, являвшаяся
лишь для рабочих станций производс- свои разработки General Magic выпус- результатом основательной работы
тва Sun Microsystems. «General Magic тила в октябре 1996 года программное над ошибками предшественницы.
давно надо было дать в руки разработ- обеспечение Magic Cap for Windows. Что же касается Envoy 150, то он,
чиков инструменты, которые им хоро- Данное ПО представляло собой гра- как и продукт Sony, обзавёлся допол-
шо известны и понятны, если она хо- фическую оболочку Magic Cap, рабо- нительным мегабайтом ОЗУ и пассив-
чет продвинуть эту платформу на ры- тавшую поверх операционной систе- ной подсветкой экрана, разработанной
нок», – отмечал в июне 1995 года веду- мы от Microsoft и предназначавшуюся совместно с компанией Kodak.
щий аналитик фирмы Dataquest Майк для пользователей, которым было не- Впрочем, даже новые устройства
МакГир (Mike McGuire). обходимо средство для работы с Ин- от Motorola и Sony всё равно не смог-
Ситуация изменилась в лучшую тернетом (в комплекте с программой ли исправить сложившуюся ситуацию
сторону лишь к концу 1996 года, ког- поставлялся браузер Microsoft Internet на рынке. Остальные же производите-
да компания Metrowerks выпустила Explorer 3.0), электронной почтой, фак- ли и операторы, ранее «бившие себя
для Magic Cap версию своего попу- симильными сообщениями с интуитив- в грудь» по поводу всесторонней под-
лярного пакета разработки приложе- но понятным интерфейсом. держки Magic Cap и Telescript, по-тихо-
88
ретроспектива
не хватало, и потому компания пре- на RISC‑процессор MIPS R3000. Же- лявшим при помощи нескольких щелч-
бывала в постоянном поиске новых лание «освежить» ОС и избавить её ков мышью настроить подключение
инвесторов. от наследия предшественниц выли- к провайдеру. Также стоит отметить
Одним из них стала Microsoft, в на- лось в несовместимость програм- поставлявшийся с Magic Cap 3.0 бра-
чале марта 1998 года объявившая много обеспечения, написанного для узер Presto!Links, поддержку програм-
о подписании соглашения с General Magic Cap 1.х-2.х, с новой операцион- мных модемов SoftModem, возмож-
Magic, согласно которому она вклады- ной системой, а также невозможность ность работы с несколькими почтовы-
вала в компанию 6 млн. долларов в об- обновления системного ПО в уже вы- ми ящиками, а также факсимильными
мен на лицензирование определённых пущенных компьютерах, что вызва- сообщениями.
технологий. Что конкретно они собой ло бурю негодования у горстки всё Вместе с Data Rover 840 General
представляли, Microsoft не рассказала, ещё лояльных General Magic пользо- Magic вышла на рынок, который был
лишь заверила, что полученные дан- вателей. уже давно «поделён» другими игро-
ные будут использованы только в ис- Впрочем, согласно политике Марк- ками в лице компаний Telxon, Symbol
следовательских разработках и не по- мана отныне компьютеры на ба- и Norand. И теперь Data Rover 840 не-
явятся в коммерческих продуктах ещё зе Magic Cap не предназначались обходимо было доказать свою «проф-
в течение нескольких лет. для простых смертных. По его мне- пригодность» перед своими конку-
Впрочем, как окажется позднее, нию, главными потребителями Data рентами.
Microsoft был необходим лишь доступ Rover 840, а именно так впослед- И здесь компьютер спасовал. Ус-
к патентам General Magic, чтобы в бу- ствии было названо устройство, про- тройство, даже несмотря на свою це-
дущем прибрать их к своим рукам. Од- изведённое совместными усилиями ну в 1000 долларов, было очень при-
нако в 1998 году отчаявшаяся компа- General Magic и компании Oki Electric влекательным вариантом. Загвоздка
ния цеплялась за любой шанс, спо- Industry, должны были стать работаю- в данном случае крылась в необходи-
собный помочь ей просуществовать щие вне офиса сотрудники здравоох- мом программном обеспечении, вер-
ещё какое-то время, и посему ковар- ранения, транспортных служб и про- нее, в его отсутствии.
ные планы разработчика Windows бы- чие, нуждающиеся в средствах пос- Дело в том, что узкоспециали-
ли наименьшим, на что она обраща- тоянного подключения к информаци- зированный рынок, на который бы-
ла внимание. онной среде пользователи. ло ориентировано устройство, требо-
Несмотря на то что Portico являлся Кстати, как отмечали впоследствии вал не просто портативный компью-
приоритетным проектом для General обозреватели различных информаци- тер, но и ПО, которое позволяло бы
Magic, компания всё же не забыва- онных ресурсов, Data Rover 840 стал ему функционировать в заданной ин-
ла и про Magic Cap. Однако, посколь- лучшим портативным компьютером формационной среде. Ведь крупные
ку партнёров по выпуску портативных на базе Magic Cap: использование про- компании и организации, покупающие
компьютеров на базе данной ОС у неё цессора MIPS R3000 позволило значи- портативные компьютеры в качестве
больше не осталось, General Magic тельно повысить производительность, коммуникационных устройств для сво-
пришлось самостоятельно осваивать а экран с подсветкой – сделать чтение их сотрудников, приобретают прежде
производство устройств. информации для пользователя более всего законченный и готовый к исполь-
К тому времени у General Magic комфортным. зованию программно-аппаратный ком-
в разработке была новая версия опе- Третья версия операционной сис- плекс, а не набор устройств и ПО, кото-
рационной системы под номером темы обладала улучшенным масте- рые затем ещё необходимо заставить
3.0, проектировавшаяся в расчете ром соединения с Интернетом, позво- функционировать сообща.
90
сисадмин тоже человек
92
книжная полка
JavaScript. Профессиональные
приемы программирования
Джон Рейсиг
ев благодаря тому, что она изначально держкой JavaScript». В ней раскрыва-
ориентирована на веб-разработчиков, ются темы модели DOM, событий, CSS,
которые уже компетентны в базовых HTML-форм, а в завершении приведе-
манипуляциях с JavaScript и настрое- ны примеры галерей изображений: как
ны развиваться дальше. Рассматри- готовых, так и своей. В последней час-
ваются важные характеристики язы- ти книги рассматриваются как основы
ка: ссылки, перегрузка функций, об- AJAX, так и конкретные применения:
ласть видимости переменных, замы- использование JSON, AJAX для бло-
кания, контекст, объекты. Затем автор гов, поиск с автодополнением. Также
знакомит с принципами создания мно- доступны примеры создания JavaScript-
гократно используемого кода за счет реализаций Wiki и блога с помощью
наследования прототипов, использо- AJAX. Завершают книгу три приложе-
вания библиотек Base и Prototype, соз- ния: справочники по DOM и по событи-
дания пакетов. Следующая глава – от- ям, краткая информация о браузерах
Книжек про JavaScript в последнее вре- ладка и тестирование кода с помощью (IE, Mozilla, Safari, Opera).
мя стало очень много, но редко попа- специализированных инструментов
дается что-то по-настоящему толко- (консоль ошибок в браузерах, Firebug, n
Издательство: «Питер»
вое: большинство из них ориентиро- Venkman, JS-библиотеки для тестиро- n
Год издания: 2008
вано на начинающих программистов, вания). Третья часть книги посвящена n
Количество страниц: 352
представленная информация лишь «ненавязчивому коду», под которым n
ISBN: 978-5-91180-904-1
в очередной раз повторяет уже напи- автор понимает «невмешательство ко- n
Цена: ≈ 367 руб.
санное в других изданиях. Эта книга да в работу браузера с отсутствующей К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
выгодно отличается от своих собрать- или отключенной пользователем под- «Питер».
Редакционная подписка
для физических лиц
n Вы можете оформить подписку n Журнал высылается почтой заказ-
только на российский адрес. ной бандеролью только после пос-
n При заполнении квитанции обя‑ тупления денег на расчетный счет
зательно РАЗБОРЧИВО укажи‑ и копии заполненного и оплачен‑
те фамилию, имя, отчество пол‑ ного бланка, отправленной в ре‑
ностью, почтовый индекс и ад‑ дакцию по факсу: (495) 628‑82‑53
рес получателя (область, город, (доб. 120) или на электронный
улица, номер дома, номер квар‑ адрес: subscribe@samag.ru.
тиры), контактный телефон.
ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
94
подписка на 2009 год
Российская Федерация печати «Гасид» (370102, г. Баку, ул. Джавадхана, 21)
n
Подписной индекс: годовой – 20780, полугодовой – 81655 n
Казахстан – по каталогу «Российская Пресса» через
Каталог агентства «Роспечать» ОАО «Казпочта» и ЗАО «Евразия пресс»
n Подписной индекс: годовой – 88099, полугодовой – 87836 n
Беларусь – по каталогу изданий стран СНГ через РГО
Объединенный каталог «Пресса России» «Белпочта» (220050, г. Минск, пр-т Ф. Скорины, 10)
Адресный каталог «Подписка за рабочим столом» n
Узбекистан – по каталогу «Davriy nashrlar» российс-
Адресный каталог «Библиотечный каталог» кие издания через агентство по распространению пе-
n Альтернативные подписные агентства: чати «Davriy nashrlar» (7000029, г. Ташкент, пл. Муста-
Агентство «Интер-Почта» (495) 500-00-60, курьерская киллик, 5/3, офис 33)
доставка по Москве n Армения – по списку номенклатуры «АРЗИ» через
Агентство «Вся Пресса» (495) 787-34-47 ГЗАО «Армпечать» (375005, г. Ереван, пл. Сасунци Да-
Агентство «Курьер-Прессервис» вида, д. 2) и ЗАО «Контакт-Мамул» (375002, г. Ереван,
Агентство «ООО Урал-Пресс» (343) 375-62-74 ул. Сарьяна, 22)
ЛинуксЦентр www.linuxcenter.ru n Грузия – по списку номенклатуры «АРЗИ» через АО
n Подписка On-line «Сакпресса» ( 380019, г. Тбилиси, ул. Хошараульская, 29)
http://www.arzi.ru и АО «Мацне» (380060, г. Тбилиси, пр-т Гамсахурдия, 42)
http://www.gazety.ru n Молдавия – по каталогу через ГП «Пошта Молдовей»
http://www.presscafe.ru (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
по списку через ГУП «Почта Приднестровья» (МD-3300,
СНГ г. Тирасполь, ул. Ленина, 17)
В странах СНГ подписка принимается в почтовых отделе- по прайс-листу через ООО Агентство «Editil Periodice»
ниях по национальным каталогам или по списку номенк- (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
латуры «АРЗИ»: n Подписка для Украины:
n Азербайджан – по объединенному каталогу россий- Киевский главпочтамт
ских изданий через предприятие по распространению Подписное агентство «KSS», тел./факс (044)464-0220
Подписные
индексы:
20780 *
+ диск с архивом
статей 2008 года
81655 **
без диска
по каталогу агентства
«Роспечать»
88099 *
+ диск с архивом
статей 2008 года
87836
без диска
**
по каталогу агентства
«Пресса России»
*
Годовой
**
Полугодовой
***
Диск вкладывается
в февральский
номер журнала,
распространяется
только на территории
России
УЧРЕДИТЕЛИ
Частные лица
РЕДАКЦИЯ
Генеральный директор
Владимир Положевец
Главный редактор
Алексей Коршунов
chief@samag.ru
Ответственный секретарь
Наталья Хвостова
sekretar@samag.ru
Технический редактор
Владимир Лукин Вы знаете, как бороться
с «Просачивающейся А дварью»?
Главный редактор
электронного приложения
Применяете «Чарующий скрипт»?
«Open Source»
Дмитрий Шурупов Редакция журнала «Системный администратор» представляет
Внештатные редакторы
вам новый админский сувенир для истинных знатоков своего дела –
Алексей Барабанов карточную игру «AYTCOPCEP».
Кирилл Сухов
Сергей Супрунов
Олег Щербаков
В ходе игры участники тянут из колоды карты «Проблем», с которым
Валентин Синицын им предстоит бороться один на один или с помощниками, используя
Александр Емельянов подручные средства. Успешное решение «Проблемы» добавляет игроку
Дмитрий Павлов
уровни. Если вы не считаете себя добрым и милым, то для вас в игре
РЕКЛАМНАЯ СЛУЖБА предусмотрена специальная возможность – сделать гадость другому
тел./факс: (495) 628-8253 участнику и обойти его в погоне за уровнями.
Евгения Тарабрина (доб. 120)
reсlama@samag.ru
Победителем становится тот, кто быстрее всех
Верстка и оформление доберется до 10 уровня. Остальные подробности об игре,
maker_up@samag.ru
Дизайн обложки
«Чарующем скрипте», «МегаУтилите» и «Клановом коктейле»
Дмитрий Репин вы сможете узнать из правил игры.
По вопросам распространения
обращайтесь по телефону:
«AYTCOPCEP» – это пародия на жизнь, которая позволит вам
Светлана Зобова ощутить всю прелесть аутсорсинга... но без всей словесной мишуры,
(495) 628-8253 (доб. 120) типа, «утром стулья, вечером деньги…»!
107045, г. Москва,
Ананьевский переулок, дом 4/2, стр. 1 Приобретайте игру «AYTCOPCEP» в редакции.
тел./факс: (495) 628-8253
Сайт журнала: www.samag.ru
ИЗДАТЕЛЬ
ООО «С 13»
Отпечатано типографией
ООО «Периодика»
Тираж 17000 экз.
96