Журнал «Компьютерра» № 34 от 18 сентября 2007 года
Шрифт:
Мотивы этих действий так и остаются неясными, и Алексей классифицирует свои соображения на эту тему как "теория заговора": "Видимо, были какие-то конкурирующие фирмы, которые захотели взять все в свои руки. Это был переломный момент – когда стал запускаться Explorer – и, возможно, у кого-то что-то переклинило". Как бы то ни было, «перехват» не удался – Алексей вовремя скопировал весь репозитарий кода к себе и оформил на себя доменные имена, получив полную независимость. Про реальные нарушения авторского права на тот момент ничего не известно:
– В то время мы уже детально озаботились этим вопросом –
Однако код в SVN все-таки стали проверять, и любые потенциально нарушающие копирайт материалы из открытого доступа убрали – на всякий пожарный. (Сейчас проверено уже 99.5 % всего кода, остальные полпроцента "заморожены".) «Чистоту» же поступающих извне патчей разработчики контролируют постоянно.
– Мы просматриваем все патчи. Во-первых, если это дизассемблирование и reverse-engineering, это сразу видно по некоторым особенностям. Во-вторых, спрашиваем, на чем основана реализация. Если человек присылает нам хороший testcase, в котором видно, как он вызывает функцию ядра, анализирует ее параметры, – без проблем. А вот, например, человек нам присылает патч с комментарием типа "увидел, тут у вас не реализовано, решил реализовать" – и код на две страницы. Как он его написал? Откуда взял? Мы такое брать не решились – ни одной ссылки на книжки, ни одного URL не привел. Хотя книг написано великое множество – архитектура описана. А все, что не описано, – ну, приходится изощряться. И без обратной разработки не обойтись.
В принципе, обратная разработка (reverse engineering) – например, дизассемблирование – не является нарушением авторского права. Тем не менее, прямое заимствование дизассемблированного кода, безусловно, нарушает копирайт (это считается созданием производной работы). Чтобы избежать нарушения, используют подход, называемый "clean room reverse engineering": один человек дизассемблирует программу, разбирается в том, как она устроена, пишет качественную документацию обычным текстом (без настоящего кода) и передает другому человеку, который, смотря только на эту документацию, уже делает свою реализацию. Только такой метод обратной разработки разрешается в соответствии с правилами ReactOS.
– В наших условиях отследить это на 100 % невозможно – но зачастую оно само так выходит. У нас есть люди, которые понимают в обратной разработке, и есть люди, которые пишут код. Вторые обращаются к первым – как это реализовано? Получают ответ. Пишут свой код.
Порой в комфорте современных операционных систем мы забываем, что когда-то компьютеры были terra incognita, сулящей небывалые возможности, – и именно этим привлекали своих первых пользователей. Но многих людей продолжает манить эта неизвестность, и они находят себе новые неизведанные земли – и занимаются их освоением. Это желание двигало первыми разработчиками Linux Kernel в начале 1990-х годов. Вероятно, именно оно движет многими разработчиками ReactOS сейчас. А еще через десять лет, когда ReactOS станет таким же мэйнстримом, каким сейчас является Linux, оно будет двигать участниками какого-то другого проекта.
Редакция благодарит кафе «Кофе-бин» за содействие в организации съемки.
МЫСЛИ: О видимом и невидимом
Автор: Ваннах Михаил
В
Наука Нового времени началась с наблюдений, выполненных при помощи оптических приборов. Если известные с античности, бытовавшие в арабском мире угломерные приборы – квадранты, октанты, астролябии – дали точные таблицы, позволившие установить законы Кеплера и перейти к математическим началам натуральной философии, то уже телескоп Галилея развалил на отдельные звезды серебро Млечного пути, обнаружил пятна на Солнце, фазы Венеры и спутники Юпитера. И все это было наглядным.
Если для понимания того, что расхождение во втором-третьем знаке таблиц движения планет заставляет нас откинуть воображаемые, но вполне наглядные небесные сферы и перейти к эллипсам, требовался огромный труд по изучению математики, то узнать, что на Луне есть горы, а Юпитер подобен Земле, ибо имеет спутники, можно было без труда. Всего лишь взглянув в телескоп.
И убедиться в существовании микроорганизмов можно было, всего лишь посмотрев на каплю воды в микроскоп. Доходило до анекдотов. Так, итальянская инквизиция на рубеже пятнадцатого-шестнадцатого веков одним из своих достижений считала конфискацию у некроманта необычайно жирного и отвратительного черта, заключенного в волшебный кристалл. Кристаллом выступала чечевичная линза, а роль черта играла обычная блоха. Однако добрые горожане, восхищавшиеся творениями да Винчи и Микеланджело, с удовольствием верили в некромантского черта, заточенного в хрустале. Они же верили своим глазам!
Но наука уверенно шла двумя дорогами. Наглядные наблюдения, доступные глазу любого, и математические описания, подчас требующие для понимания колоссального труда. Геометр Евклид говорил когда-то египетскому царю Птолемею Лагиду, что в математике нет царских путей. В науке царские тропинки существовали – в музейных коллекциях изобилуют богато украшенные рефракторы и рефлекторы, через которые наблюдали ход небесных светил и венценосные особы, и мелкие графья.
Были и другие наглядные физические приборы, зачастую очень изящные. Например, фигуры Хладни, образующиеся под воздействием стоячих волн на стальных или стеклянных пластинках, покрытых мелким сухим песком. Удивительно простой и грациозный опыт.
Конструировались также приборы, наглядно демонстрировавшие тайны Мироздания. Вот, скажем, любимый земскими просветителями теллурий – устройство из керосиновой лампы, вокруг которой обращались шар, изображавший Землю, а его, в свою очередь, обегал шарик, моделирующий Луну. Такое устройство показывало фазы Луны и солнечные и лунные затмения.
И атомная физика знала весьма наглядные общедоступные приборы. Сцинтилляскоп, например, – коробочка с отверстием, закрытым линзой. Такая коробочка, при условии малости отверстия, – самая легкодоступная модель абсолютно черного тела. А в ней волшебное свечение – сернистый цинк под действием мельчайшей крупицы радиоактивного вещества. Ускользающее черенковское свечение вокруг погруженного в бассейн демонстрационного реактора.