Впрочем, чтобы развеять мифологию фильма "Елизавета: золотой век", не нужно даже читать исторических монографий. Достаточно программы общеобразовательной школы. "Кровожадные испанцы", как известно, завоевали всю центральную и южную Америку, а британские "носители свободы и справедливости" - северную часть континента. Как поступили с аборигенами "кровожадные испанцы"? В общем-то убого, как и полагается католическим мракобесам: смешались кровью и стали жить-поживать вместе, - полагаю, у читателей есть четкое представление о том, как выглядит сегодня группа latinos. А куда подевались североамериканские чингачгуки, столкнувшиеся с англо-саксонскими цивилизаторами? Правильно - переместились на два метра под землю. Все! Все до последнего! Аккурат те самые 10-12 миллионов душ, приписанных Инквизиции.
   Ведают ли об этих фактах истории орды зрителей с промытыми романтически-героическим лжепафосом "Елизаветы: золотого века" мозгами? Риторический вопрос. Одно утешает: хоть читателей "Голубятен" впредь не удастся провести на мякине!
   Ради чистоты жанра попытаемся продуть софтверную часть колонки в знакомую дуду социальной мифологии. Намедни читатель Леонид Никитин прислал рекомендательное письмо: "Хочу поделиться с вами своей находкой. Наверняка вы уже видели программу Evernote. Но совсем недавно они выпустили бета-версию нового релиза, который стал просто крышесносящим. Дело в том, что теперь программа стала очень сильно похожей на WebResearch, и при этом имеет, с моей точки зрения, массу преимуществ. Главное из которых - возможность установить эту программу на все, что поддается программированию, и при этом обеспечивается чудесная синхронизация между всеми этими устройствами. Например, у меня она стоит на двух ноутбуках, настольном и разъездном, а также на коммуникаторе HTC Touch. Вся эта красота достигается благодаря синхронизации с сервером Evernote, откуда свою базу можно смотреть и через простой браузер с чужого компьютера".
   Я заинтересовался, ознакомился с возможностями программы на сайте и, найдя их интригующими, установил программу. Затем со мной случилось маленькое шоковое прозрение, после чего удалил Evernote в мгновение ока. Не потому, что программа плохая, а потому, что исповедует концепцию, чуждую мне в принципе. Сейчас поясню.
   Леонид Никитин совершенно точно уловил изюмину привлекательности Evernote - возможность синхронизации индивидуальной базы данных между любыми устройствами. Другое дело, что, читая рекомендательное письмо, я проявил невнимательность и не учел обстоятельство, прямым текстом указанное читателем: синхронизация достигается за счет сервера Evernote. На сайте разработчиков, кстати, серверная архитектура программы тоже не выпячивается, а прячется за длинным списком удобств, предоставляемых Evernote: создание и публикация в сети заметок, мгновенный поиск текстовой информации и изображений на своем десктопе, независимо от подключения к сети (эта фраза еще сильнее сбила меня с толку), наконец, включение в базу данных информации любого формата, даже аудиозаписей разговоров, сделанных на коммуникаторе или смартфоне, с последующей передачей данных в единое хранилище.
   Читатель наверняка уже догадался о том, что мне, к сожалению, открылось только после установки Evernote на компьютере: индивидуальная база пользователя хранится на сервере разработчика. Именно этого откровения оказалось достаточно, чтобы безоговорочно удалить Evernote с моего SZ650N: хранение личной информации у доброго дяди Васи или дяди Джорджа для меня неприемлемо на физиологическом уровне. Может, конечно, я перезанимался конспирологией, но надеюсь, в моей позиции есть и толика объективного здравого смысла - представьте себе ситуацию: вы путешествуете по вебу, задерживаетесь на привлекающих ваше внимание страницах, читаете заметки, создаете комментарии, а затем весь этот информационный массив, зеркально отражающий полный спектр ваших интересов, отправляете в базу данных, которая хранится неизвестно где и неизвестно для каких целей!
   Можете считать меня параноиком, но свое неприятие подобных концепций я мотивирую не догадками и гипотезами, а реальным знанием того, как используется в "цивилизованном мире" (читай - оккупационной зоне Нового Мирового Порядка) информация, добровольно и собственноручно сливаемая наивными обывателями в так называемые социальные сети. Все эти "Фейсбуки" и "Одноклассники" давно превратились в золотое дно для бесчисленных спецслужб и псевдоохранных агентств, занимающихся не столько сбором информации для слежения за конкретными частными лицами (хотя не обходится и без этого: на глаза уже попадалась дюжина заметок о том, как судебные приставы и банковские вышибалы выслеживают через социальные сети кредитных дефолтеров), сколько статистической аналитикой, позволяющей с высочайшей степенью прецизионности структурировать целые срезы общества для последующего успешного их зомбирования - через точечную рекламу или, скажем, впрыскивание политической и идеологической дезинформации, разбавленной заведомо привлекательным контентом. Данные о привлекательности того или иного информационного сюжета либо поведенческого паттерна как раз и поступают из наивных самооткровений пользователей социальных сетей. Эти выигрышные сюжеты и паттерны затем используются в качестве транспортной оболочки, контейнера, способного с высокой степенью эффективности внедрить в сознание нужные вирусные идеи.
   Предвижу возражение: проект Evernote - это частная инициатива частной калифорнийской компании. Правда? А мне кажется, что речь идет о глобальной тенденции. Она идеально вписывается в мрачную парадигму, которой осчастливили человечество после грандиозной инсценировки 11 сентября 2001 года. Читаем светлую новость на www.thevista.ru (первоисточник - блог windowsconnected.com): "На прошлой неделе Microsoft раскрыла подробности о новом амбициозном проекте под названием Live Mesh, который, по мнению компании, должен стать центром цифрового мира. Задача проекта проста - организовать единую площадку для хранения, доступа, синхронизации информации между различными устройствами, которая к тому же будет защищенной, безопасной и доступ к которой можно осуществить с различных устройств. Среди наиболее интересных возможностей службы Live Mesh отметим следующие: поддержка технологии Folder Sync, позволяющей синхронизировать файлы и папки между различными устройствами Live Mesh; наличие "Live Desktop" - псевдо-сессии рабочего стола, используемого для доступа к файлам и папкам; 5 Гбайт дискового пространства".
   Если кто-то еще не догадался: перед нами вырисовывается будущее, на фоне которого вянет любая фантазия "1984 года" и "Бразилии". "Телекрану", вмонтированному в квартиры жителей Океании, до Live Mash, как ручечному граммофону до современного проигрывателя дисков Blu-ray. Главное, однако, не техническое совершенство, а чистота концепции: вместо непрестанно следящего и ненавистного Большого Брата добровольное самообнажение детей Индиго - самообнажение идей, помыслов, чувств, интересов, вкусов, знакомств, привязанностей, рабочих проектов, интимной переписки. Вот оно все - на блюдечке с золотой каемочкой, берите, пользуйтесь, нам не жалко!
 

ОКНО ДИАЛОГА: Хранитель ядра

 
    Автор: Илья Щуров Voyager
    Все мы с вами знаем, как выглядит обычный программист. Он носит потертые джинсы, шерстяной свитер и длинные волосы, а его лицо украшают красные глаза и многодневная щетина. Эндрю Мортон (Andrew Morton), вне всяких сомнений, необычный программист - и дело не только в аккуратном пиджаке и галстуке. С недавних пор он работает в Google, но практически ничего не делает для этой компании. Зато он точно знает, что нового может появиться в ядре Linux через несколько месяцев.
   В ведении Мортона - ветвь (branch) ядра, имеющая суффикс -mm. Именно в него попадают практически все дополнения и модификации от множества разработчиков по всему миру. Мортон делает merge - интегрирует новый или модифицированный код в ядро, а затем тестирует то, что получилось. Если все хорошо - через несколько месяцев Линус Торвальдс заберет изменения, сделанные Мортоном, в свою ветвь, которая и увидит свет как очередной официальный релиз.
 
Путь к ядру
 
   По образованию Эндрю Мортон - инженер-электронщик, и даже его первый компьютерный опыт - программирование на ассемблере для Apple II в университете Нового Южного Уэльса (Австралия) - был на стыке между "железным" и "софтверным" мирами.
   - Мне приходилось разрабатывать железо для встроенных решений, но я также занимался и софтом, - рассказывает Мортон. - В 1986 году я спроектировал целый компьютер, основанный на процессоре Motorola 68000, и опубликовал спецификации в одном австралийском журнале. Читатели могли приобрести набор "сделай сам" и по моему дизайну собрать собственный компьютер.
   В качестве ОС в нем использовалась версия Minix, лицензированная у разработчиков и портированная на архитектуру 68000 Колином Маккормаком (Colin McCormack), другом Мортона.
   Окунуться в софтверный мир с головой пришлось в исследовательском центре корпорации Nortel, где Мортон в течение девяти лет был менеджером разработки ПО. Однако страсть к решению инженерных, а не управленческих задач давала о себе знать, и Linux оказался хорошим объектом для ее приложения.
   - Я давно следил за разработкой ядра и в 1999 году стал в ней участвовать, сделав свой вклад в драйверы поддержки сети, - говорит Мортон. - Потом я целый год только тем и занимался, что исправлял ошибки в версии 2.3, которых было очень много. Брал очередное сообщение о проблеме, общался с человеком, который о ней сообщил, пытался воспроизвести тот же эффект у себя, а потом исправлял - и переходил к следующей. Делая это, я создавал достаточно много шума, чтобы привлечь внимание разработчиков к исправлению ошибок вообще. К тому же эта деятельность была очень хорошим способом разобраться в том, как работает ядро.
   Всем этим Мортон занимался в свободное от работы время на протяжении примерно двух лет.
   - Потом мой друг из Пало-Альто поговорил со своим боссом в компании Digeo, и меня пригласили работать над созданием цифрового медиацентра Moxi, в котором планировалось использовать Linux.
   В 2001 году Мортон с женой и тремя детьми переехал из Австралии в США. С этого момента участие в разработке Linux из хобби превратилась в работу. Для Moxi требовалась поддержка файловой системы ext3, которая в тот момент была реализована в виде патча для ядра 2.2. По служебной необходимости Мортон портировал этот патч для совместимости с ядром 2.4, после чего занялся стабилизацией кода и улучшением производительности.
   - Файловые системы в Linux очень тесно интегрированы с системой управления памятью - фактически они являются ее частью, и мне пришлось разбираться, как устроена вся эта область в ядре.
   Чуть позже, вновь в свободное время, он занялся переписыванием и оптимизацией кода управления памятью для разрабатывавшейся тогда версии 2.5. Так появилась ветвь с суффиксом -mm (от memory management), а через некоторое время Линус Торвальдс предложил Мортону стать майнтейнером стабильной версии 2.6.
   - Я сказал Линусу, что это работа на полную ставку, и вряд ли Digeo согласится ее оплачивать, - вспоминает Мортон. - "Да, наша проблема в том, что вы работаете в маленькой компании, которая не может себе этого позволить, - согласился Торвальдс. - Но, может быть, нам поможет OSDL1?"
   В результате между OSDL и Digeo было подписано соглашение, по условиям которого OSDL оплачивал работу Мортона над ядром, хотя он оставался сотрудником небольшого стартапа. Но через четыре года Digeo закрыло проект Moxi, и Мортон перешел в Google. Его должностные обязанности при этом почти не изменились.
 
Вид снаружи
 
   Проекты свободного ПО зачастую являются "нейтральными площадками", на которых различные компании (порой конкурирующие) совместно разрабатывают продукты, представляющие интерес для всех них. Ядро Linux - уникальная по масштабу и успешности площадка, на которой взаимодействуют независимые разработчики (внося свой существенный вклад), сотрудники небольших компаний и такие "тяжеловесы", как Intel, IBM, HP, Oracle и др.
   Все взаимодействие между программистами осуществляется через почтовый список рассылки LKML (Linux Kernel Mailing List) и системы управления кодом - без сложной иерархической структуры и бюрократии, свойственной корпорациям. Как удается неформальному сообществу организовать столь масштабную совместную работу?
   - На самом деле, у нас есть некоторая структура, - рассказывает Мортон. - В частности, есть аналог менеджеров, их около ста человек (майнтейнеров), каждый из которых отвечает за конкретную часть в ядре - драйверы сети, USB и т. д. Майнтейнер имеет определенную "власть", но эта власть "отрицательная" - он может принять или отвергнуть чью-либо работу, но не может сказать кому-то: "А сейчас ты пойдешь и к ближайшей пятнице исправишь этот баг". Между нами нет отношений "начальник-подчиненный". Никто не работает на меня. И мы не можем планировать наше развитие. Над чем работать, определяют фирмы и индивидуальные разработчики. Но внутри самих фирм вполне может быть четкое планирование, потому что есть управление, распространяющееся "сверху-вниз": скажем, в Intel знают, какие возможности они собираются реализовать в Linux во втором квартале 2008 года.
   Впрочем, работая в Google, Мортон продолжает наслаждаться свободой индивидуального разработчика.
   - Я не программирую для Google, а занимаюсь тем же, чем и раньше, - поддерживаю свою ветвь. Иногда консультирую инженеров Google, просматриваю патчи к ядру, которые используются внутри компании, рассказываю, в каком направлении лучше двигаться - но не более того.
   Тот факт, что коммерческиие структуры определяют вектор развития Linux, является естественным для мира свободного ПО, но в последнее время он порождает споры. Дело в том, что большинство корпораций, кровно заинтересованных в ОС Linux, ориентированы на ее применение в серверном сегменте, поэтому их влияние вроде бы может увести эту систему прочь от десктопного применения (где она и сейчас не столь популярна). Впрочем, по мнению Мортона, ситуация не такая мрачная, как кажется скептикам.
   - Действительно, наибольшую лепту сейчас вносят компании, которым интересен рынок серверов. С другой стороны, если говорить о самом ядре, то версия 2.4 была не сильно хуже для десктопов, чем 2.6. Изменения потребовались именно для серверного сегмента: у 2.4 были серьезные проблемы на "большом железе". Сейчас я просто не понимаю, какую дополнительную существенную работу можно сделать в ядре для применения на десктопах. Если у кого-то есть проблемы - скажите нам. Сам я вижу несколько мест, которые можно было бы улучшить, - но люди об этом не просят. Пожалуй, у нас есть трудности с горячим подключением устройств - это действительно сложная область, поскольку устройств очень много. Но над этим мы работаем постоянно.
   "Базарный" (по названию классического эссе Эрика Реймонда "Собор и базар") децентрализованный стиль разработки, при котором отсутствует управление "сверху вниз", обладает не только достоинствами, но и своими системными недостатками. В частности, по мнению Мортона, если бы такое управление имело место, можно было бы гораздо лучше организовать процесс исправления ошибок. Однажды у него возникло ощущение, что разработчики ядра вносят больше багов, нежели исправляют.
   - У меня нет цифр - только ощущения, но я считаю, что такой риск до сих пор существует. Но чтобы что-то изменилось, должны начать жаловаться наши клиенты. Пока же все довольны тем, что мы делаем. Если, например, к нам придут люди из Novell и скажут, что качество нашей работы падает, - значит, пришла пора что-то менять. И мы можем поменять: в качестве одного из средств можно ввести более формальный процесс рецензирования кода. Еще мне иногда хочется сделать этап разработки "no new features", во время которого просто не принимать никаких патчей, реализующих новые функции.
   Я засомневался в эффективности такой меры - и компаниям, и индивидуальным разработчикам обычно интереснее реализовывать что-то новое, а не исправлять ошибки, - и, как мне казалось, если такой этап будет введен, на это время разработка ядра просто замрет.
   - Нет, я думаю, что многие компании стали бы в этом участвовать, - не соглашается Мортон. - Разработчик может подойти к своему менеджеру и сказать: "Так и так, в течение трех месяцев у меня не примут ни одного патча с новыми фичами; может быть, мне стоит потратить свое время на участие в общем исправлении ошибок?" Все поймут, что мы делаем это, чтобы улучшить общее качество. Так что мы тоже имеем некоторую власть над компаниями-участниками.
   Существенное коммерческое влияние на Linux оказывает еще один эффект: благодаря ему снижается вероятность разделения ядра на несколько конкурирующих ветвей (форк), что чревато распылением силы сообщества и падением темпов развития.
   - Сейчас в ядро вкладывается несколько сотен миллионов долларов в год. Да, теоретически кто-то может взять ядро и развивать его в каком-то другом направлении - лицензия это позволяет. Но ему придется тратить те же сотни миллионов долларов на поддержку кода. Это просто безумие! Гораздо проще и правильнее поддерживать собственный набор патчей, который модифицирует официальное ядро так, как вам нужно, и постепенно обновлять его по мере выхода новых версий ядра. Получается не форк ("развилка"), а бранч ("ответвление"). Например, так делает компания Parallels, создавая систему виртуализации OpenVZ.
   Если форк и произойдет, то не из-за внешних причин, а скорее в результате внутреннего разлада среди основных разработчиков. Но это, как говорится у классиков, уже совсем другая история.
 
Вид изнутри
 
   - Форк не может произойти из-за каких-то технических вопросов, над которыми мы работаем все вместе, - считает Мортон. - Но раскол возможен по "политическим" причинам - например, связанным с лицензиями. Допустим, Линус однажды скажет: мы переходим на GPLv3… или GPLv4… или BSD-лицензию. Часть людей может согласиться, а часть - уйти.
   Впрочем, некогда жаркие лицензионные дискуссии, спровоцированные выходом третьей версии GPL, не смогли расколоть сообщество разработчиков ядра и постепенно затихли.
   - Откровенно говоря, я уже несколько месяцев не слышал никаких споров по поводу GPLv3 - видимо, мы остаемся на GPLv2, и это можно считать принятым решением, - с некоторой долей облегчения говорит Мортон. К GPLv3 он имеет множество претензий, с которыми согласны многие ведущие разработчики ядра.
   Что касается принятия решений по техническим вопросам, то здесь у ядра есть свой особый путь. Обычно в сообществах свободного ПО работает одна из двух схем. Либо в проекте есть лидер - "великодушный диктатор" (benevolent dictator), принимающий окончательные решения по своему усмотрению, либо ищется консенсус среди всех активных разработчиков (например, так действуют в Apache Software Foundation). Ядро Linux не использует ни одну из этих схем в чистом виде.
   - Линус не является "диктатором", но и нельзя сказать, чтобы у нас был консенсусный подход, - объясняет Мортон. - У нас есть некий набор правил и соглашений о том, какие патчи или новые возможности могут быть включены в ядро, а какие нет. Некоторые правила записаны, некоторые "витают в воздухе", но их знают и понимают очень многие разработчики. И это хорошо, поскольку позволяет не делать работу, которая не будет принята. Обычно, если у кого-то есть возражения по поводу предлагаемого патча, они должны быть учтены, прежде чем код будет включен в ядро. Я вряд ли сделаю merge, пока все участники дискуссии не договорятся между собой. Очень-очень редко мне приходится принимать решения, идущие вразрез с решениями других разработчиков.
   Сами правила обычно носят традиционный характер (устоявшиеся со временем принципы) или являются высказываниями Линуса, против которых нет серьезных возражений. "Линус говорит, что есть еще такая вещь, как хороший вкус, - но его, увы, трудно кодифицировать", - добавляет Мортон.
   Помимо вкуса, важными могут оказаться еще и хорошие манеры. Долгое время список рассылки LKML не считался особо приветливым и дружелюбным местом, особенно для новичков - разработчики ядра в технических дискуссиях порой выражаются довольно крепко. Впрочем, ситуация меняется.
   - Да, участники LKML иногда бывают грубыми, но обычно это допустимо только между людьми, которые хорошо знают друг друга. Если появляется кто-то, о ком мы никогда не слышали, скажем, с сообщением об ошибке или патчем, мы проявляем к нему большое уважение. У нас действительно была репутация людей, недружелюбно относящихся к новичкам, но ситуация изменилась примерно пять лет назад. Это открыто обсуждалось на Kernel Summit - мы тогда поняли, что наша репутация отталкивает от нас людей и вредит процессу разработки - и решили изменить манеру поведения. Принятое тогда решение приносит плоды: например, у нас существенно выросло количество новых участников из Азии - в частности, из Японии, где вежливость возведена в культ.
   Почтовый список LKML - основное средство взаимодействия между разработчиками.
   - Мы используем IRC-чаты, но в основном как раз для того, чтобы нагрубить друг другу, - улыбается Мортон. - Я также не люблю частные письма - считаю, что технические дискуссии должны вестись в публичном списке, архив которого доступен для поиска. Всякий раз, когда мне пишут частное письмо по поводу технических вопросов, я теряюсь - например, нужно ли вовлекать в дискуссию других людей. Я подписан более чем на шестьдесят списков рассылки, но никогда их не читаю. Зато когда я вижу патч, то могу посмотреть архив списка на моем компьютере, прочитать комментарии и т. д.
   Список рассылки вообще кажется Мортону самым удачным способом обсуждения технических вопросов.
   - Даже если бы все разработчики ядра сидели в одном большом здании, способ разработки вряд ли сильно бы изменился. Когда мы встречаемся на конференциях с разработчиками Linux, я не очень люблю говорить о технических аспектах. Если такие разговоры начинаются, уже на тридцатой секунде я говорю: "слишком много информации, давайте по почте". Почта позволяет вести очень сложные технические дискуссии.
   С Линусом и другими разработчиками ядра Мортона связывают в основном деловые отношения. "Да, еще мы выпивали вместе на различных мероприятиях", - смеется он.
 
Вид на будущее
 
   Революций в ядре, аналогичных переходу с 2.4 на 2.6, больше не планируется - в обозримой перспективе две первые цифры версии меняться не будут вовсе. Основная причина: качество кода сейчас достаточно высокое, и никакие компоненты не нужно переписывать с нуля - а можно постепенно дорабатывать и улучшать то, что есть, вводя новые функции и исправляя старые баги.
   Говоря о будущем свободного и открытого ПО, Мортон отмечает, что сейчас во многих областях нет причин создавать конкурирующие решения, реализующие один и тот же набор функций - лучше вкладывать ресурсы в доминирующую открытую реализацию. О возможных угрозах со стороны "темных сил мира" Мортон тоже не слишком беспокоится.
   - Теоретически возможна атака с использованием софтверных патентов - но я не вижу никаких признаков того, что кто-то намерен это сделать. Это будет атака против собственных клиентов. Мне кажется, что open source находится в безопасности - просто потому, что люди хотят пользоваться открытым софтом.
 
Зачем делиться кодом
 
   В своем докладе на Open Source Forum @ Interop Мортон рассказал, как компании используют ядро Linux и включаются в процесс разработки. Дело в том, что ядро зачастую приходится адаптировать для каких-то специфических внутренних применений - и очень часто компании не планируют внедрять эти изменения в основную ветвь. В результате им приходится адаптировать свою модификацию по мере выхода новых версий официального ядра - и чем дальше, тем этот процесс требует все больше ресурсов. Гораздо правильнее с самого начала планировать интеграцию внутренних модификаций с основной веткой - это позволит не только сэкономить на дальнейшей поддержке кода и исправлении ошибок, но и улучшит репутацию компании в сообществе разработчиков.
 

АНАЛИЗЫ: Доступ к телу

 
    Автор: Киви Берд
    Вряд ли надо доказывать, что в области медицины и охраны здоровья очень важны вопросы защиты информации. Однако инфобезопасность в здравоохранении часто сводят к защите баз данных с историями болезней, результатами анализов и прочими весьма чувствительными к компрометации персональными сведениями. Меж тем инфотехнологическое развитие современной медицины идет по множеству направлений, и с некоторых пор разработчики и пользователи медицинской техники начали сталкиваться с совсем иными компьютерными угрозами.
 
Атака по радиоканалу
 
   Недавно группа исследователей "хакнула" имплантируемое медицинское устройство - а именно, сердечный дефибриллятор - через его канал беспроводной связи. В результате была похищена персональная информация о пациенте и история болезни, после чего были дистанционно изменены терапевтические настройки дефибриллятора. Итогом столь серьезной атаки вполне могла бы стать смерть пациента - если бы тот был настоящий, конечно. К счастью, все обошлось без жертв, поскольку демонстрация проводилась лишь на приборе, помещенном в условия, имитирующие реальные.
   Описание и анализ этой атаки являются главной темой доклада["Pacemakers and Imp-lantable Cardiac Defibri-llators: Software Radio Attacks and Zero-Power Defenses", by Daniel Halperin et al.] на майской конференции IEEE Symposium on Security and Privacy. Авторы работы - большой коллектив ученых-исследователей из междисциплинарного научного проекта "Центр безопасности медицинских устройств" (www.secure-medicine.org), в котором участвуют сотрудники Гарвардской медицинской школы, Массачусетского университета в Амхерсте и Вашингтонского университета.