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