- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Журнал «Компьютерра» № 34 от 18 сентября 2007 года - Компьютерра
Шрифт:
Интервал:
Закладка:
Я задумываюсь о том, что от ОС сейчас, по сути, не так много и нужно. Если стабильно работает какой-то современный браузер (тот же 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.

