ROS-Mistakes

Материал из Русский WINE
Перейти к: навигация, поиск

Частовстречаемые Заблуждения о ReactOS

Доклад рассчитан, в основном, на линуксоидов и некоторых других индивидов, которые кричат "не нужно!" в комментариях к каждой новости о ReactOS. Готовился этот доклад для OSDN.conference'2007, обсудить материал можно на форуме ReactOS

Как появился этот доклад (Слайд 1)

ROS-Mistakes-01.png
Проект ReactOS с самого зарождения был воспринят OpenSource-комьюнити очень настороженно и, по непонятным причинам, вокруг него до сих пор существует огромное количество слухов, домыслов и просто смешных фантазий. Признаюсь, я и сам когда то был среди тех, кто скептически относится к проекту, и я надеюсь, что мой доклад заставит кого то из вас по другому взглянуть на ReactOS.


Первоначально я планировал сделать доклад в качестве некого ЧаВо - Частозадаваемых Вопросов, но почитав форумы, понял, что нужно его переименовать в "ЧёЗа? - Частовстречаемые Заблуждения". Причина в том, что нижеприведенные цитаты, не вопросы, а утверждение. Причем, подаваемые зачастую, как аксиомы и бесспорная истина.

Кому и зачем нужна ReactOS? (Слайд 2)

ROS-Mistakes-02.png
“Не понятно зачем, не понятно когда. Не стоит её обсуждать, ровно как и делать.”
“Не видно никакой перспективы, в смысле, зачем он нужен.”


Очень странно, но есть люди, которые вообще не понимают кому и зачем нужна ReactOS. Есть море драйверов для windows - практически подо все. И есть не море, а целый океан win32-софта. И мы просто делаем ядро, совместимое и с тем, и с другим. Целевая группа ReactOS - windows-пользователи, наша задача "оторвать" их от проприетарного ПО, а точнее, безболезненно пересадить на СПО.


ReactOS - наш шанс "перехватить мяч" Microsoft. Кому она нужна? Тому, кто считает, что критерий является софт свободным или нет, важнее чем название операционной системы или то, на что она похоже.

Это похоже на Windows? (Слайд 3)

ROS-Mistakes-03.png
“Маздай должен быть die, а вы его копируете, предатели”
“Это поддержка майкрософта, а ему пора на покой. Будущее за unix.”


Мы часто, между собой, ну и вообще для краткости называем ReactOS клоном Windows. На самом деле это конечно не так. Ядро пишется максимально похожим на WinNT, но есть существенные различия. И их довольно много, а есть и разные варианты, которые работают лучше чем в MS Windows. Мы полагаем, что Microsoft использовала некоторые плохие решения и мы стараемся, где возможно, расставить другие приоритеты при разработке ReactOS в этих случаях.


Так же не нужно думать, что создание ReactOS это попытка воссоздать ядро какой-то старой версии Windows. Ядро ReactOS пишется с прицелом на совместимость как со старыми версиями драйверов и ПО, так и для поддержки совершенно нового функционала. Перед релизом Windows Vista был курьезный случай, когда некоторые новые API из Windows Vista были добавлены в ReactOS быстрее, чем состоялся релиз самой Windows Vista.

И она будет так же глючить? (Слайд 4)

ROS-Mistakes-04.png
“Убогая архитектура, так как это клон виндоус. Все вирусы и глюки скопируют туда.”
“Торвальдс назвал венду объективно плохо спроектированной системой”


Действительно ли архитектура WinNT "убога"? Не знаю, может быть. Это вопрос дискуссионный и скорее академический, и уж точно это вопрос не к нам – мы просто пишем код, опираясь на описания этой архитектуры. Кто-то скажет, что монолитное ядро это "убого", но это просто чье-то мнение и Торвальдс не бросает ведь из-за него разработку ядра linux?  ;)


Но на вопрос, чем же конкретно убога архитектура WinNT, нам обычно отвечают: "Она убога, потому что ее написали в Microsoft". Я хотел бы обратить внимание здесь присутствующих, что первоначально разработкой WinNT занималась не Microsoft - подробнее об этом вы можете почитать например в статье "WNT: правдивая история Windows NT" (или вот тут).

Почему вы пишете именно ReactOS? (Слайд 5)

ROS-Mistakes-05.png
"Лучше бы вы помогали довести до ума WINE, а не делали свой велосипед."
"Ребята, не изобретайте вторую пару костылей, лучше развивайте Linux."


Free Software - это не фабрика по штамповке софта. Невозможно забрать программистов из одного проекта и направить в другой. Если разработчики развивают ReactOS, значит им это нравится. Поверьте, им есть чем заняться, поэтому даже если вы запретите им в судебном порядке участвовать в разработке ReactOS, они не кинуться "доводить до ума WINE". Просто потому что, если бы они хотели развивать WINE, они давно бы уже его развивали без вашего совета.


У нас спрашивают: "Чем вам Линукс не нравится?". Нам нравится линукс. Очень. Но нам не нравится, что большинство пользователей используют проприетарную операционную систему. Нам не нравится, что деньги которые они платят за нее, идут на различные антилинусовые рекламные компании. И нам не нравится винда, поэтому мы ее переписываем.

Законна ли разработка ReactOS? (Слайд 6)

ROS-Mistakes-06.png
“Проект прикрыли из-за давления со стороны MS, у них суды щас начались”
“ReactOS при разработке использует утекшие в 2004 году исходники Windows”


У нас нет никаких судов. У нас нет никаких проблем с легальностью кода. Вся информация, используемая для написания ROS, получена только из открытых источников. Я думаю, ни один другой проект не анализирует легальность своих исходников так серьезно. Весь код, имеющийся у нас, имеет своё происхождение, которое можно при необходимости объяснить, начиная с 1-ой ревизии.


На текущий момент никаких официальных контактов с нами со стороны Microsoft не было. Мы эти контакты не ищем и напротив, надеемся, что MS как можно дольше избавит нас от своего внимания. Также, мы надеемся, что MS достаточно "повзрослела" после истории со SCO и обвинений разработчиков linux в нарушении патентов, чтобы понимать, что никаких судебных перспектив нет и не будет.


На самом деле, людей, которые считают, что у проекта ReactOS есть какие-либо риски не так уж много. Например, в 2008 году Sourceforge.net, самый известный ресурс хостинга открытых проектов, проводил голосование. На вопросы о том, пользователи какого из проектов могут быть подвергнуты судебному преследованию ("Most Likely to Get Users Sued") и какой из проектов могут обвинить в нарушении патентов ("Most Likely to Be Accused of Patent Violation"), лишь немногие опрашиваемые назвали ReactOS. Тут же нужно упомянуть, что Microsoft выступала главным спонсором этого исследования (Diamond Sponsor).

А как с функциональностью? (Слайд 7)

ROS-Mistakes-07.png
“Вы не сможете догнать винду, ее пишут много лет профи и вкладывают миллионы баксов”
“Идти за Виндой - это постоянно отставать. ReactOS обречена быть на несколько шагов сзади.”


Мы не позиционируем себя, как конкуренты Microsoft. Мы не собираемся ни за кем "поспевать". ReactOS не стремится быть лучше Windows. Мы разрабатываем ReactOS без оглядки на Microsоft. Мы стараемся заслужить уважение других OpenSource-проектов и свободных разработчиков, а не компаний, пишущих проприетарное ПО.


У проекта скромная задача - дать пользователям возможность запускать свои win32-приложения в свободной ОС и без сложностей. На MS работают тысячи индусов, а ROS пишут всего пара десятков программистов, было бы наивно полагать, что ROS сможет составить реальную конкуренцию продуктам монополиста.

Расскажите об истории разработки? (Слайд 8)

ROS-Mistakes-08.png
“Они ее 10 лет пилят. И еще 10 будут. Никому не будет нужна винда через 10 лет”
“Когда этот велосипед поедет, он безнадежно устареет и станет никому не нужен.”


Да, проекту 10 лет. Но это не десять лет человеко-часов тысяч индусов, а десять лет идеи свободной реализации WinAPI. На следующем слайде я расскажу немного об истории разработки ReactOS, а сейчас давайте прикинем 10 лет - много это или мало? Столлман начал свой проект GNU в начале 80-х, ядро Hurd все ещё, мягко говоря, не слишком востребовано. А кто-нибудь из вас использовал ОС Linux в начале 90-х? Разве она тогда была полнофункциональной ОС? Разве там работало больше ПО, чем сейчас в ReactOS? Согласен, пример не очень корректный, но я его привел не для того, чтобы сравнивать Linux с ReactOS, а для того, чтобы показать, что 10 лет для разработки свободной ОС - не так уж и много.


Началом разработки ReactOS можно считать 1996 г, после переформирования группы разработчиков, занимавшихся созданием ОС FreeWin95. К сожалению, как многие новые амбициозные проекты открытого программного обеспечения, он застрял на стадии бесконечных безрезультатных разговоров о проектировании системы. Первые видимые результаты появились только в 1998 году. Эти первые несколько лет ReactOS были болезненно медленными, несмотря на большие объёмы написанного кода. Только несколько разработчиков знали, как писать код ядра.


Взяли некоторые идеи от Windows, и сделали некое ядро - наполовину из идей NT, наполовину из своих идей. Написали для него драйверы, которые зависели от всех его глюков. И Win32 API взяли из Wine. А потом столкнулись с тем, что все это глючит, и систему невозможно развивать, потому что все сделано на примитивном уровне. Начали перерабатывать ядро - при этом полетели все драйвера - они не были рассчитаны на такую работу, их с Windows никто не тестировал.


Такое процесс разработки продолжался довольно долго, т.к. трудно было мотивировать людей делать то, что сможет работать только через пару лет. Реальный интерес к проекту появился только когда система стала грузится в графический интерфейс, пришло много новых разработчиков, и прогресс пошёл ещё бОльшими темпами.


На самом деле есть несколько разных стадий развития: Вначале писали чтобы работало «хоть как-нибудь». Потом захотелось чтобы работало «получше». Сейчас хотим чтобы работало «нормально», т.к. довольно большая часть уже реализована. Однако не всегда это получается путем исправления небольших участков кода, порой приходится переписывать довольно большие куски и целые модули.


ReactOS
Доклады
О ReactOSARWINSSЧастовстречаемые заблуждения о ReactOS
Информация Новости Выпуски новостейПереводы блоговВидео про ReactOSReactOS на Хабре
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыПлан работРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of Code
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOS
Другое КоординаторыТипы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук в VirtualBoxСъемка и публикация видеоIRC-каналОбщие папки
Обзоры ОболочкаNTVDMWOWCommunity Edition