ARWINSScc2010 — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
(Новая страница: «Тезисы доклада 1. О ReactOS в общем (5 минут) 1.1. Реализация архитектуры NT с открытым …»)
(нет различий)

Версия 16:37, 17 апреля 2014

Тезисы доклада


1. О ReactOS в общем (5 минут)

1.1. Реализация архитектуры NT с открытым кодом

1.2. Зачем клонировать NT?

a) Прогрессивная архитектура — переход от модели «всё — файл» к модели «всё — объект» (кратко о том, что такое объект в NT)

b) Архитектура подсистем, разные API в рамках одной ОС (кратко о POSIX и OS/2 в Win)

c) Богатый парк драйверов

d) Богатый парк прикладных приложений

1.3. Что уже есть?

a) Текущее ядро сравнительно стабильно

b) Свои драйверы VGA, PCI, SATA, PS/2 (мин. набор, уже есть и работает)

c) Звуковая и сетевая подсистема

d) Win32 позволяет запускать многие приложения


1.4. Что будет?

a) Ядро: менеджер кэша: ускорение и в перспективе NTFS, ext2/3 и т.д.

b) Развивается и улучшается PnP

c) Активно пишется USB стек

d) Порируем на x64 и ARM

e) Улучшения Win32 (об этом отдельный рассказ)


2. ARWINSS – новая подсистема Win32 (12 минут)

2.1. Что такое подсистема? Подсистема Win32 и её реализации (Win32s, Win9x, WinCE, NT3, NT4(менеджер окон и GDI перенесли в ядро, sic), Wine).

2.2. Первоначальная попытка: как-в-XP. Проблемы:

a) Реверс внутренних структур ядра: медленно, сложно, ненадежно.

b) Очень сложное внутреннее устройство оригинала: наследие от Win16

c) Сложность кооперации с Wine: принципиально разное внутреннее устройство

• Подробнее: в wine большая часть работы в usermode, в nt>4 – в ядре, перенос кода туда — сюда — проблема, не говоря уже о разных внутренних интерфейсах

d) Итог: многое работает, но за 10 лет разработки даже уровень совместимости Wine не был достингут.


2.3. Новая попытка: Arwinss

a) Задачи

• Сконцентрировать усилия на ядре


• Максимально возможная кооперация с Wine (в т.ч. не только брать, но и отдавать)


• Да, мы берем код из Wine, но регулярно шлем патчи обратно

• Wine неохотно принимает патчи, в которых не видит нужды, в свою очередь мы как раз исправляем то, что у них не сделано (shell32 и т.д.)

• Как можно быстрее получить максимальную совместимость

b) Как решили сделать

• См. диаграмму из ARWINSS wiki

• Нам помогла архитектура Wine, которая изначально в какой-то степени платформонезависимая

• Платформонезависимость достигается благодаря специальной прослойке — winex11.drv – абстрагирующей wine от конкретной системы ввода-вывода платформы, на которой он живет

• То есть, вызовы win32 сначала идут в user32/gdi32 wine, оттуда — в winex11.drv, а уже оттуда — в X11.

• Так что мы написали свой драйвер, который вместо X11 использует (модифицированные) компоненты нашего ядра

• … и стало возможно использовать user32 и gdi32 из wine почти без изменений!

c) Что получилось:

• За год разработки совместимость выше, чем у оригинальной попытки сделать Win32

• Работают FF4b, MS Office, Photoshop и тд

• В wine отправлены десятки патчей

• Можно использовать X11 в качестве вывода для win32 (соответственно, можно сделать сервер терминалов)

• Код на 95% общий с wine, соответственно, усилия разработчиков объединяются, а не распыляются

• Можем принимать патчи, от которых отказывается wine

• Ущерб для совместимости приложений пока не замечен (не считая системные утилиты, завязанные именно на внутреннюю архитектуру win32 – пока такая обнаружена только одна)

• Уже можно ограниченно применять в разных POS терминалах и прочем embedded, где есть готовый парк софта «под винду» и не нужна мощная графика.

d) Преимущества для Wine

• Кросскомпиляция dll wine позволяет отлавливать баги, связанные с переносимостью кода

• Поиск багов в dll wine командой ROS, и написание патчей в апстрим (это уже делается!)

• Фактически, возможно полноценное использование Wine под windows! Для запуска старых/несовместимых программ, в частности. И такой опыт уже был поставлен!


3. Резюме (3 минуты)

3.1. Впервые ReactOS подошла вплотную к beta стадии

3.2. Локальные приминения уже возможны


3.3. Устранены основные причины, препятствующие распространению ROS, а те, которые остались, сейчас в разработке (USB, FS drv, etc)

3.4. Особенно актуально сейчас, когда идет тотальный отказ от «пиратки»

3.5. Включаясь в разработку сейчас, вы участвуете в проекте, который будет весьма популярен в ближайшем будущем. Преимущества:

a) Репутация

b) Опыт командной разработки

c) Можно использовать навыки разработки под Windows

d) «Благодарная» работа: ARWINSS за год обогнал аналогичную подсистему, писавшуюся 10 лет. Все результаты работы сразу же будут заметны и очень востребованы.


4. Демонстрация софта (15 минут)

4.1. AbiWord

4.2. FF4b

4.3. KDE-Win(?)

4.4. Пример исправленного бага + исходники решения


5. Вопросы (5 минут)

5.1. Когда будет работать?

• Уже работает. Смотря какое использование вы предполагаете. Для среднего домашнего пользователя — когда будут USB и DirectX. Их пишут. Остальное есть, баги сокращаются каждый день.

5.2. Какие есть проблемы?

• Кривая Win32, но это решает ARWINSS.

• Нет USB

• Не все «родные» драйвера дисплея работают.

• Нет DirectX

• FS – только FAT/CDFS

5.3. Почему такие проблемы?

• Потому что последние два года работали почти исключительно над ядром, чтобы добиться его стабильности. И добились.