Текст книги "Журнал «Компьютерра» № 34 от 18 сентября 2007 года"
Автор книги: Компьютерра Журнал
сообщить о нарушении
Текущая страница: 3 (всего у книги 9 страниц) [доступный отрывок для чтения: 4 страниц]
Микрофишки
Авиакомпания Air France решила облегчить жизнь тем пассажирам, которые, проснувшись в кресле во время длительного перелета, не в силах понять, где, собственно, летим. Поначалу специальные видеотерминалы появятся на лайнерах, летающих в Восточную Азию. Благодаря сотрудничеству с Европейским космическим агентством, Air France получила в распоряжение множество спутниковых снимков Земли, на фоне которых пассажиры будут видеть текущее местоположение и курс. Чуть раньше авиакомпания представила еще одно новшество, призванное упростить процедуру регистрации на рейс. Сохранить постоянным клиентам время Air France хочет с помощью индивидуальных карточек с биометрической информацией. Владелец карточки, не предоставляя никаких документов, сможет самостоятельно получить посадочный талон. Затем он должен пройти через электронный терминал, который сравнит отпечаток пальца пассажира с тем, что записан на карту. АБ
***
iPhone наконец-то разлочен, причем наряду с платным (iPhoneSIMFree) в Сети появилось и бесплатное программное решение, устраняющее привязку к официальному сотовому оператору. Реселлеры лицензий iPhone-SIMFree уже продают патч по меньшей мере в четырех странах (средняя цена – 100 долларов). Тот, кто хочет сэкономить, может воспользоваться бесплатным iUnlock; правда, в этом случае в онлайне придется искать инструкцию поподробнее. Оба варианта предназначены для прошивки iPhone версии 1.02. НЯ
***
Palm отказывается от проекта Foleo, с помпой анонсированного три месяца назад (см. «КТ» #690). Выпуск «недоноутбука» на базе Linux, призванного решить проблемы пользователей куцых клавиатур смартфона Treo, поначалу отложили из-за технических проблем, а потом и вовсе отменили за бесперспективностью. Не так много найдется бизнес-пользователей, готовых выложить полтысячи долларов за устройство фактически лишь для работы с электронной почтой в дороге. НЯ
***
Китайские ученые разработали простой способ получения нановолоконных пучков, позволяющий контролировать их форму, вплоть до придания агрегатам геометрии «цветка». Управление формой пучков нановолокон чрезвычайно важно для создания из них микроэлектронных компонентов.
Методика получения «цветочных» пучков такова: раствор ацетата свинца и цистеина (серосодержащей аминокислоты) концентрируется медленным испарением растворителя при комнатной температуре и давлении. В результате в растворе образуются кластеры нановолокон, напоминающие одуванчик, то есть с выраженной сферической головной частью. Если рост «наноодуванчиков» ускорить, то их головки не успевают принять сферическую форму и расщепляются, образуя некое подобие лепестков. Таким образом, меняя внешние условия и влияя на скорость роста волокон, можно добиваться разной степени расщепления пучков. Например, более высокая начальная концентрация раствора приводит к тонким лепесткам и плотной упаковке «бутона»; увеличение содержания цистеина дает меньшее расщепление, тогда как добавление свинца, наоборот, заставляет пучки "распускаться".
После добавления к раствору нескольких капель кислоты и последующего нагревания образуются новые четырех– и восьмилепестковые структуры, действительно очень похожие на цветы, которые, к тому же, содержат сульфид свинца, обладающий полупроводниковыми свойствами. Теория о "расщепляющихся одуванчиках" является лишь рабочей гипотезой, и сейчас исследователи из университета в Нанкае заняты уточнением механизма расщепления пучков. Остается надеяться, что эта работа даст всходы не только в виде эффектных фотографий. ЕГ
***
Меняются времена, а с ними меняются и игры. Компании Bandai и Buffalo выпустили USB-флэшку, превращающую любой «серьезный» компьютер под управлением Windows XP или Vista в детскую забаву. При подключении легкомысленно выглядящего накопителя система автоматически завершает текущий сеанс, устанавливает нужное ПО и переходит в «режим для маленьких». При этом доступен ограниченный набор файлов и программ, а специальный браузер пускает несмышленыша только на портал Yahoo! Kids. Родители могут также настроить часы работы «детского развлекательного центра». НЯ
***
Трение и особенно «залипание» движущихся частей – сущее бедствие для микромашин. Из-за миниатюризации у них площадь деталей по отношению к объему гораздо больше, чем у обычных механизмов. Ученые из Вустерского политехнического института в штате Массачусетс обнаружили, что на наномасштабах подходящая шершавость поверхности может даже снижать трение.
Залипание движущихся частей микромашин возникает, если трущиеся детали слишком сильно «держатся» друг за друга ван-дер-ваальсовыми, капиллярными или электростатическими силами. Чтобы их уменьшить, хорошо бы как-нибудь сократить площадь контакта или немного «раздвинуть» поверхности. Но вроде бы как раз это и происходит, если хотя бы одна из поверхностей слегка шершава. Чтобы проверить гипотезу, ученые взяли набор из кремниевых пластин с различной шероховатостью и атомно-силовой микроскоп с набором иголок, отличающихся радиусом закругления острия. Иголку приводили в контакт с выступами поверхности и измеряли силу сцепления. Оказалось, что она быстро уменьшается вместе с ростом средней шершавости, но вскоре достигает минимума и далее начинает вновь монотонно возрастать. Другими словами, существует некая оптимальная шершавость с неровностями порядка нескольких нанометров, величина которой возрастет вместе с увеличением радиуса кривизны иголки микроскопа. Свои измерения ученые объяснили тем, что сначала по мере роста шершавости площадь соприкосновения иголки с поверхностью уменьшается, но затем слишком большие выступы сами начинают цепляться за иголку и трение возрастает. ГА
Торговцы оружием
Автор: Ману Мирзошоев
За исключением нефти-газа и прочих природных ресурсов чуть ли не единственным российским товаром, пользующимся неизменно высоким спросом на мировом рынке, было и остается всевозможное оружие. Истребители, танки, ракеты, автоматы и уйма других вещей, единственная цель которых – нанесение максимального урона противнику. Почему так получилось именно с оружием, наверняка никто не скажет – скорее всего противников у нас во все времена было много, так что приходилось крутиться.
Вот и теперь, когда на мировом – пока, правда, исключительно подпольном – рынке оружия появился сравнительно новый вид бизнеса под названием Malware Toolkits, или "пакеты вредоносных программ", а одним из самых мощных и востребованных товаров в этом секторе стал пакет MPack, вряд ли кого должно удивлять, что сработали его российские умельцы. Что-что, а уж урон-то наносить мы умеем…
В пакетах вредоносных программ вроде бы нет ничего нового. Всевозможные программные конструкторы для самостоятельного изготовления вирусов, червей, руткитов и прочей нечисти в сетевом андеграунде начали появляться много лет назад и совершенно задаром. А давно устоявшийся термин "script kiddie" подразумевает тех «малышей», которые хоть и способны гадить окружающим с помощью написанных другими вредоносных скриптов, но, в сущности, понятия не имеют, как именно это работает.
Что же действительно нового принес с собой рынок Malware-пакетов? Ориентацию продукта не на всякую там околохакерскую шпану и мелкое сетевое хулиганство, а на серьезные криминальные структуры и подобающие им операции. Соответственно и рыночная цена того же Mpack измеряется суммами от 700 до 1000 долларов. А сопровождающая товар бизнес-модель включает в себя едва ли не все лучшие черты зрелого софтверного рынка – вроде регулярных, почти ежемесячных обновлений пакета новейшими средствами атак или долгосрочной сервисной поддержки.
В сентябре, если верить создателям Mpack, исполнился ровно год с того момента, как их первый комплект инструментов "для сугубо внутренних тестирований" превратился в коммерческий продукт. Ориентированный поначалу на довольно узкий русскоязычный рынок, но быстро набравший международную популярность и к июлю нынешнего года прогремевший едва ли не во всех средствах массовой информации из-за череды заражений серверов, оказывавших хост-услуги тысячам коммерческих сайтов, особенно в Италии и Индии. Как считают создатели Mpack, главную роль в раскрутке их изделия сыграли антивирусные компании, пытаясь объяснить клиентам, почему не срабатывают хваленые средства защиты. Анализ зараженных сайтов, а затем и поразившего их инструментария MPack показал, что против всякого браузера, зашедшего на инфицированный сайт, использовались новейшие методы атак, эксплуатирующие не менее дюжины из самых свежих уязвимостей, выявленных за последнее время в популярном ПО.
С одной стороны, известность товара, конечно, приносит гораздо большие прибыли продавцу, но с другой – становится все более очевидна криминальная суть изготовленного оружия, а это для его создателей совсем нежелательно – ибо уголовно наказуемо. По этой причине разработчики и Mpack, и других "инструментальных наборов" аналогичной направленности, вроде Shark 2, Nuclear, WebAttacker или IcePack, стараются всячески дистанцироваться от того, с какой целью применяют эти инструменты их покупатели. К пакетам непременно цепляется уведомление-дисклэймер, снимающее всякую ответственность с продавца, который распространяет продукт "исключительно в образовательных целях", и возлагающего всю ответственность за преступное использование на покупателя. Выглядит это, спору нет, цинично, но разве не то же самое делают и остальные изготовители-продавцы оружия?
Как бы то ни было, бизнес на пакетах вредоносных программ бурно развивается, а его анализом всерьез занялись эксперты по экономике и защите информации. Исследования показывают, что программисты обычно работают на брокеров-посредников; эти брокеры продают malware-продукты мелким криминальным структурам, а те, в свою очередь, делают бизнес с крупными преступниками. Хакеры, смыслящие в ИТ, всячески стараются не пачкать руки откровенным криминалом, за который можно легко угодить в тюрьму. Поэтому другие группы, далекие от программирования, создают сети и ИТ-компании, которые вовлечены в легальный или полулегальный бизнес, так или иначе прибегающий к malware-инструментарию.
На недавней конференции Defcon в Лас-Вегасе обзорный доклад об "Индустрии коммерческого вредоносного ПО" сделал известный новозеландский хакер и криптограф Питер Гутманн (Peter Gutmann) из Университета Окленда, имеющий давние и тесные связи с сетевым андеграундом. По сведениям Гутмана, ныне обычным делом является бизнес, когда одна фирма по заказу другой фирмы заражает шпионскими (spyware) или рекламными (adware) программами доступные ей в Интернете компьютеры всего лишь по 30 центов за штуку. Другие платные услуги практически один-в-один могут копировать услуги обычных сервис-провайдеров – вроде долгосрочной аренды или разового доступа к сетям компьютеров, уже зараженных вредоносным ПО. В качестве примеров Гутман приводит опять-таки российские реалии, где одна из криминальных групп сдавала в аренду свою раскрученную и зараженную троянцем сеть сайтов – по 4 доллара за тысячу посетителей.
Дабы скрасить столь невеселую историю, процитируем слова человека, называющего себя DCT и выступающего в Сети от имени создателей самого известного malware-пакета: "Я бы посоветовал вам использовать браузер Opera с отключенными скриптами и плагинами – чтобы однажды и вас не поймал MPack".
ОКНО ДИАЛОГА: Догнать и перегнать
Автор: Илья Щуров Voyager
Примерно год назад я был жутко горд собой. Разбираясь с установкой MediaWiki на свой сервер, я обнаружил в нем некий глюк, затем нашел соответствующую ошибку в коде, исправил ее и послал патч с исправлением разработчикам. Патч был принят (с небольшими изменениями), и теперь в движке, обслуживающем один из самых грандиозных веб-проектов нашего времени, а также десятки тысяч других сайтов, есть мой код. Целых три строчки. Неважно, что их всего три – важно, что ими пользуются миллионы людей. И осознавать это очень приятно.
Однако никакие проекты (в том числе программистские) не рождаются популярными, а становятся ими – после долгой и порой изнурительной работы «в стол». От идеи и горящих глаз «а давайте сделаем вот это!» до того момента, когда об успехах можно будет говорить вслух, обычно проходит немало времени.
Этот рассказ об одном из таких проектов. Вы вряд ли будете им пользоваться сегодня или завтра. Но есть люди, которые вкладывают свои силы и время в то, что, возможно, чуточку упростит вашу жизнь послезавтра. И этот рассказ – о них.
Задача
– Наша операционка уже работает на ноутбуке XO-1 (OLPC). Загружается и показывает «синий экран смерти» – хвастается Алексей Брагин, координатор проекта ReactOS. – У Microsoft, правда, Windows тоже уже на нем работает, но они заменили там «родной» BIOS на стандартный, а это не так интересно. Мы оставили OpenFirmware и адаптируем свою систему. Правда, эти молодцы, которые делали железо, спецификацию USB-контроллера немного переиначили, и я вынужден читать их документацию и подправлять наши драйвера. Поэтому пока оно не очень работает.
Впрочем, по выражению лица видно, что прогрессом на этом направлении Алексей доволен. Он вообще полон оптимизма. Об успехах говорить не стесняется, даже если эти успехи могут вызвать у слушателя улыбку или недоумение – как с тем же «синим экраном». На обычном PC, впрочем, система работает значительно лучше – можно запустить текстовый редактор (AbiWord), браузер (Firefox) и вообще довольно внушительный список приложений. Они даже будут работать. Пока ОС не «упадет» – а это рано или поздно случится, ибо версия – «ранняя альфа», и до практического ее применения конечными пользователями еще далеко.
ReactOS – свободный «клон» Windows NT и ее потомков (в число которых входит и Vista). Иными словами, участники проекта пытаются в свободное от остальных дел время переписать "с нуля" систему, на которую гигантская корпорация потратила уже несколько десятков лет работы (и страшно подумать, сколько человеко-лет). Конечно, в такой формулировке задача выглядит столь же грандиозно, сколь и безнадежно. Впрочем, не все так плохо.
– На самом деле, эта задача сравнительно просто решается, – оптимистично замечает Алексей. – Вот смотрите: в свое время был Unix, потом появился GNU (задуманный как свободный клон Unix – И.Щ.), в котором ядра не было, а потом появился Линус, который вовремя сказал: «У меня есть ядро, совместимое с GNU». И все пошло. У нас ситуация похожая. Есть куча драйверов – практически подо все. И есть не море, а целый океан win32-софта. И мы просто делаем ядро, совместимое и с тем, и с другим.
История
Решают эту «простую задачу» участники ReactOS вот уже 10 лет. Начало было положено еще в 1996 году – тогда проект назывался FreeWin95, но в конце 97-го года он был переориентирован на разработку WinNT-совместимого ядра и получил современное название.
– Нас часто спрашивают: «почему проект развивается столько времени, а прогресса пока немного?» – говорит Алексей, рассказывая об истории ReactOS. – С самого начала все было довольно интересно поставлено: были координаторы по разным областям (например: kernel coordinator, media coordinator, web coordinator, win32 subsystem coordinator и т. д.), но из-за острой нехватки людей фактически координаторы были просто разработчиками, которые с течением времени уставали и уходили. Бессменным оставался только первый координатор проекта – Джейсон Филби (Jason Filby). В начале он очень активно им занимался, ездил на выставки, налаживал связи (вообще этим он, конечно, заложил хорошую базу, даже несмотря на то, что в то время прогресс по фактической реализации был минимальный). Но вскоре время, которое он мог отдавать проекту, сильно сократилось – фактически он был только на email-связи для каких-то экстренных вопросов. Вот здесь удивительный момент – все это время проект жил и развивался сам собой, за счет энтузиазма разработчиков (грубо говоря: один сломал – другой исправил). Чисто с программистской точки зрения, это идеал для работы: выбирай то, что интересно, сроков никто не ставит, сам выбираешь способ реализации. Все бы хорошо, но в результате каждый продвигал что-то свое, и вместо того, чтобы сделать как надо, «подтачивал напильником» под то, что уже было реализовано. Взяли некоторые идеи от Windows, и сделали некое ядро – наполовину из идей NT, наполовину из своих идей. Написали для него драйверы, которые зависели от всех его глюков. И Win32 API взяли из Wine. А потом столкнулись с тем, что все это глючит, и систему невозможно развивать, потому что все сделано на примитивном уровне. Начали перерабатывать ядро – при этом полетели все драйвера – они не были рассчитаны на такую работу, их с Windows никто не тестировал.
В 2005 году несколько разработчиков, включая моего собеседника, предложили более системный подход: последовательная разработка WinNT-совместимого ядра и WinNT-совместимых драйверов. Вероятно, прогресс надо отсчитывать именно с этого момента.
– Сейчас многое приходится переделывать, – рассказывает Алексей. – С другой стороны, за прошедшее время была наработана какая-то известность, какое-то имя. Мы стараемся сохранить максимальную свободу для разработчиков, но при этом хотим, чтобы проект двигался не хаотично или по кругу, а в каком-то направлении. И без некоторого жесткого влияния здесь уже не обойтись, поэтому иногда я вынужден принимать такие решения, которые могут быть не очень популярными, но в конечном итоге работают на благо проекта.
Мы разговаривали перед выпуском очередного релиза – версии 0.3.3. Я попросил Алексея рассказать, что там будет интересного для "простого смертного":
– Улучшилась стабильность. Система не будет падать, если ее включить на пять часов, на десять часов – даже если компьютер подключен к Интернету и на нем запущен mIRC. Однако пользователям, вероятно, интереснее другое: появилось что-то вроде менеджера пакетов в Linux-системах – он скачивает из Интернета инсталлятор, распаковывает и устанавливает. Там перечислены приложения, которые заведомо работают в ReactOS – список набрался довольно внушительный и включает в себя как открытые, так и закрытые программы. Штука совсем простая (не такая, как в Debian и других Linux-дистрибутивах), но производит хорошее впечатление.
Я задумываюсь о том, что от ОС сейчас, по сути, не так много и нужно. Если стабильно работает какой-то современный браузер (тот же Firefox), то это уже дает огромные возможности. Впрочем, предположение о том, что ReactOS кто-то использует на практике, Алексей отвергает категорически: «до продакшн-стадии еще далеко». Тем не менее, пользу проект приносит – если не конечным юзерам, то сообществу разработчиков.
Пользователи
ReactOS очень активно пользуется наработками и кодом других открытых проектов – в первую очередь, Wine (реализация Win32 API для поддержки Windows-приложений), Linux Kernel (некоторые драйверы), Samba (общий доступ к ресурсам). Наличие свободной кодовой базы позволяет не изобретать велосипеды там, где они уже изобретены. С другой стороны, наработки самого ReactOS приносят пользу всему сообществу уже на текущем этапе. Например, долгое время основным способом получить под Linux безопасный доступ к NTFS-разделам с возможностью записи было использование «родного» Windows-драйвера. (Сейчас разработан полностью свободный ntfs-3g.) Чтобы запустить его под Linux, использовалась «обертка», представляющая собой ядро ReactOS, из которого убрали все лишнее и заставили компилироваться и запускаться под Linux.
Алексей вспоминает еще одну историю:
– Я периодически ищу упоминания «ReactOS» в блогах и форумах – интересно ведь, что люди о нас говорят. Вот один разработчик драйверов пишет: «Я посмотрел в исходники ReactOS и посмотрел в „утекшие“ исходники Windows. Так в ReactOS все намного лучше откомментировано! Зачем мне исходники Windows? Я теперь в ReactOS смотрю!» Мы долго по этому поводу смеялись.
Если есть интерес с чьей-то стороны, то обычно есть и помощь: в Linux сейчас множество заинтересованных компаний вкладывает огромные деньги – в основном в виде кода и труда разработчиков, в чьи обязанности входит участие в свободных проектах. ReactOS пока не достиг этого этапа, но…
– Есть одна компания… Наш разработчик из Швеции делает в ReactOS реализацию DirectX. У него есть определенные соглашения с одной фирмой, которая разрабатывает, кажется, чипы к графическим акселераторам – и, в частности, занимается разнообразным кодированием видео. И вот им зачем-то нужны наши DLL, и они возвращают нам свои доработки этих DLL через этого разработчика. Но действуют на условиях неразглашения своего участия – не хотят, чтобы мы писали «этот код предоставлен фирмой такой-то». Видимо, не хотят принимать на себя ответственность. Я подозреваю, что наш код используется и другими компаниям, но об этом никто громко не говорит.
Еще одна заманчивая точка приложения – образование. Возможность заглянуть в код операционки, реализующий возможности Windows, в этом контексте трудно переоценить.
– У нас заинтересованность в этом есть. Было несколько людей (не из России), которые хотели сделать у себя курс занятий по архитектуре NT. Они не участвовали в майкрософтовских образовательных программах и хотели базироваться на ReactOS. Но пока до практической стадии никто не дошел.
Разработчики
Я прошу Алексея рассказать о разработчиках.
– Географически в основном народ из Европы: Германия, Франция, Австрия. Из России активных участников немного – человека три-четыре. В основном это молодые люди, лет двадцати пяти. У нас был разработчик из Канады – сейчас ушел – его имя Алекс Йонеску (Alex Ionescu). Он был самый молодой – девятнадцать лет. Немного эксцентричный, зато внес значительный вклад по ядру. Есть один интересный участник – ему уже за пятьдесят, он вносит существенный вклад в Win32. Он из Америки, но придерживается довольно необычных взглядов – когда я с ним общался, не мог поверить, что он значительно нас старше. Большинство людей, работающих с ReactOS, занимаются либо разработкой драйверов, либо системной разработкой в Windows или Linux. Есть еще люди, которые работают над приложениями – но они в основном делают какой-то простенький вклад, приложения типа Character map, которые, в общем-то, не очень и нужны.
Я продолжаю недоумевать: «Зачем это разработчикам? Just for fun, как сказал Линус Торвальдс?»
– Большинство людей работают на опыт и на свое имя. Человека четыре в последнее время ушли в разные фирмы… из них трое в Microsoft – их там принимают просто «на ура». Или вот, например, у одного человека была курсовая: «разработать графический редактор». Ну, он его и разработал. Под ReactOS. Многие наблюдатели со стороны удивлялись: «В ReactOS работают над графическим редактором! Зачем?! У вас еще ядро не работает как следует!» Приходилось отвечать, что если человек хочет что-то сделать, нам не жалко. Все равно курсовик пишет, а так двойная польза получается.
Сам Алексей учится в аспирантуре, и тема его диссертации, что неудивительно, связана с операционными системами. Участие в ReactOS, таким образом, позволяет совмещать "приятное с полезным". Однако это не единственная и даже не основная причина участия.
– У меня есть свои цели. Во-первых, просто интересно – я туда пришел ради идеи: Linux уже есть, а можно Microsoft еще подложить небольшую свинью и сделать открытую «ЭнТю». К тому же, мне кажется, что это перспективная вещь. Уже сейчас есть люди, заинтересованные в этой системе (коммерчески). Но мы не торопимся с этим – хотим вывести ее на более высокий уровень – потому что как только начнется коммерция, начнутся и претензии.
Реверс
Претензии, впрочем, уже начались. В начале прошлого года вокруг ReactOS разразился небольшой скандал: проект был обвинен в том, что заимствует дизассемблированный код Windows. Рассказ Алексея на эту тему напоминает детективную историю.
– Это было организовано небольшой группой лиц. По каким причинам – для нас осталось неизвестным. Несколько наших разработчиков решили пойти против всех остальных. Ситуация была следующая: мы периодически проводим различные исследования – например, взяли загрузочный сектор от Windows, дизассемблировали, написали комментарии и залили в SVN-репозитарий. А есть наш собственный бутсектор – он с ним никак не коррелирует. Но, как факт – виндовый бутсектор с комментариями у нас лежит в SVN. И они это выдали как величайшую проблему и попытались провести такую цепочку: один участник сообщает о нелегальном коде, другой – владелец SVN-сервера – его закрывает; и, вроде бы, планировалось провести голосование о закрытии проекта вообще.
Мотивы этих действий так и остаются неясными, и Алексей классифицирует свои соображения на эту тему как «теория заговора»: «Видимо, были какие-то конкурирующие фирмы, которые захотели взять все в свои руки. Это был переломный момент – когда стал запускаться Explorer – и, возможно, у кого-то что-то переклинило». Как бы то ни было, «перехват» не удался – Алексей вовремя скопировал весь репозитарий кода к себе и оформил на себя доменные имена, получив полную независимость. Про реальные нарушения авторского права на тот момент ничего не известно:
– В то время мы уже детально озаботились этим вопросом – я думаю, ни один другой проект не анализирует легальность своих знаний так серьезно. Мы накопали целый ряд серьезных опенсорсных проектов, в которых наш бутсектор – это ничто.
Однако код в SVN все-таки стали проверять, и любые потенциально нарушающие копирайт материалы из открытого доступа убрали – на всякий пожарный. (Сейчас проверено уже 99.5 % всего кода, остальные полпроцента «заморожены».) «Чистоту» же поступающих извне патчей разработчики контролируют постоянно.
– Мы просматриваем все патчи. Во-первых, если это дизассемблирование и reverse-engineering, это сразу видно по некоторым особенностям. Во-вторых, спрашиваем, на чем основана реализация. Если человек присылает нам хороший testcase, в котором видно, как он вызывает функцию ядра, анализирует ее параметры, – без проблем. А вот, например, человек нам присылает патч с комментарием типа «увидел, тут у вас не реализовано, решил реализовать» – и код на две страницы. Как он его написал? Откуда взял? Мы такое брать не решились – ни одной ссылки на книжки, ни одного URL не привел. Хотя книг написано великое множество – архитектура описана. А все, что не описано, – ну, приходится изощряться. И без обратной разработки не обойтись.
В принципе, обратная разработка (reverse engineering) – например, дизассемблирование – не является нарушением авторского права. Тем не менее, прямое заимствование дизассемблированного кода, безусловно, нарушает копирайт (это считается созданием производной работы). Чтобы избежать нарушения, используют подход, называемый «clean room reverse engineering»: один человек дизассемблирует программу, разбирается в том, как она устроена, пишет качественную документацию обычным текстом (без настоящего кода) и передает другому человеку, который, смотря только на эту документацию, уже делает свою реализацию. Только такой метод обратной разработки разрешается в соответствии с правилами ReactOS.
– В наших условиях отследить это на 100 % невозможно – но зачастую оно само так выходит. У нас есть люди, которые понимают в обратной разработке, и есть люди, которые пишут код. Вторые обращаются к первым – как это реализовано? Получают ответ. Пишут свой код.
Что дальше?
Порой в комфорте современных операционных систем мы забываем, что когда-то компьютеры были terra incognita, сулящей небывалые возможности, – и именно этим привлекали своих первых пользователей. Но многих людей продолжает манить эта неизвестность, и они находят себе новые неизведанные земли – и занимаются их освоением. Это желание двигало первыми разработчиками Linux Kernel в начале 1990-х годов. Вероятно, именно оно движет многими разработчиками ReactOS сейчас. А еще через десять лет, когда ReactOS станет таким же мэйнстримом, каким сейчас является Linux, оно будет двигать участниками какого-то другого проекта.
Редакция благодарит кафе «Кофе-бин» за содействие в организации съемки.