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

Материал из Русский WINE
Перейти к: навигация, поиск
(Новая страница: «Тезисы доклада 1. О ReactOS в общем (5 минут) 1.1. Реализация архитектуры NT с открытым …»)
 
Строка 1: Строка 1:
Тезисы доклада  
+
[[Category:ReactOS]]
 +
=Тезисы доклада=
  
 +
==О ReactOS в общем (5 минут)==
  
1.           О ReactOS в общем (5 минут)
+
'''1.1. Реализация архитектуры NT с открытым кодом'''
  
1.1.     Реализация архитектуры NT с открытым кодом
+
'''1.2. Зачем клонировать NT?'''
  
1.2.    Зачем клонировать NT?
+
* Прогрессивная архитектура — переход от модели «всё — файл» к модели «всё — объект» (кратко о том, что такое объект в NT)
  
a)            Прогрессивная архитектура — переход от модели «всё — файл» к модели «всё — объект» (кратко о том, что такое объект в NT)
+
* Архитектура подсистем, разные API в рамках одной ОС (кратко о POSIX и OS/2 в Win)
  
b)            Архитектура подсистем, разные API в рамках одной ОС (кратко о POSIX и OS/2 в Win)
+
* Богатый парк драйверов
  
c)            Богатый парк драйверов
+
* Богатый парк прикладных приложений
  
d)            Богатый парк прикладных приложений
+
'''1.3. Что уже есть?'''
  
1.3.    Что уже есть?
+
* Текущее ядро сравнительно стабильно
  
a)           Текущее ядро сравнительно стабильно
+
* Свои драйверы VGA, PCI, SATA, PS/2 (мин. набор, уже есть и работает)
  
b)            Свои драйверы VGA, PCI, SATA, PS/2 (мин. набор, уже есть и работает)
+
* Звуковая и сетевая подсистема
  
c)            Звуковая и сетевая подсистема
+
* Win32 позволяет запускать многие приложения
  
d)            Win32 позволяет запускать многие приложения
+
'''1.4. Что будет?'''
  
 +
* Ядро: менеджер кэша: ускорение и в перспективе NTFS, ext2/3 и т.д.
  
 +
* Развивается и улучшается PnP
  
1.4.    Что будет?
+
* Активно пишется USB стек
  
a)            Ядро: менеджер кэша: ускорение и в перспективе NTFS, ext2/3 и т.д.
+
* Портируем на x64 и ARM
  
b)           Развивается и улучшается PnP
+
* Улучшения Win32 (об этом отдельный рассказ)
  
c)           Активно пишется USB стек
+
==ARWINSS – новая подсистема Win32 (12 минут)==
  
d)            Порируем на x64 и ARM
+
'''2.1. Что такое подсистема? Подсистема Win32 и её реализации (Win32s, Win9x, WinCE, NT3, NT4(менеджер окон и GDI перенесли в ядро, sic), Wine).'''
  
e)            Улучшения Win32 (об этом отдельный рассказ)
+
'''2.2. Первоначальная попытка: как-в-XP. Проблемы:'''
  
 +
* Реверс внутренних структур ядра: медленно, сложно, ненадежно.
  
2.            ARWINSS – новая подсистема Win32 (12 минут)
+
* Очень сложное внутреннее устройство оригинала: наследие от Win16
  
2.1.    Что такое подсистема? Подсистема Win32 и её реализации (Win32s, Win9x, WinCE, NT3, NT4(менеджер окон и GDI перенесли в ядро, sic), Wine).
+
* Сложность кооперации с Wine: принципиально разное внутреннее устройство
 
+
** Подробнее: в wine большая часть работы в usermode, в nt>4 – в ядре, перенос кода туда — сюда — проблема, не говоря уже о разных внутренних  
2.2.    Первоначальная попытка: как-в-XP. Проблемы:
+
 
+
a)            Реверс внутренних структур ядра: медленно, сложно, ненадежно.
+
 
+
b)            Очень сложное внутреннее устройство оригинала: наследие от Win16
+
 
+
c)            Сложность кооперации с Wine: принципиально разное внутреннее устройство
+
 
+
•                  Подробнее: в wine большая часть работы в usermode, в nt>4 – в ядре, перенос кода туда — сюда — проблема, не говоря уже о разных внутренних  
+
 
интерфейсах
 
интерфейсах
  
d)            Итог: многое работает, но за 10 лет разработки даже уровень совместимости Wine не был достингут.
+
* Итог: многое работает, но за 10 лет разработки даже уровень совместимости Wine не был достигнут.
  
 +
'''2.3. Новая попытка: Arwinss'''
  
2.3.     Новая попытка: Arwinss
+
* Задачи
 +
** Сконцентрировать усилия на ядре
 +
** Максимально возможная кооперация с Wine (в т.ч. не только брать, но и отдавать)
 +
** Да, мы берем код из Wine, но регулярно шлем патчи обратно
 +
** Wine неохотно принимает патчи, в которых не видит нужды, в свою очередь мы как раз исправляем то, что у них не сделано (shell32 и т.д.)
 +
** Как можно быстрее получить максимальную совместимость
  
a)           Задачи
+
* Как решили сделать
 +
** См. диаграмму из ARWINSS wiki
 +
** Нам помогла архитектура Wine, которая изначально в какой-то степени платформонезависимая
 +
** Платформонезависимость достигается благодаря специальной прослойке — winex11.drv – абстрагирующей wine от конкретной системы ввода-вывода платформы, на которой он живет
 +
** То есть, вызовы win32 сначала идут в user32/gdi32 wine, оттуда — в winex11.drv, а уже оттуда — в X11.
 +
** Так что мы написали свой драйвер, который вместо X11 использует (модифицированные) компоненты нашего ядра
 +
** … и стало возможно использовать user32 и gdi32 из wine почти без изменений!
  
•                  Сконцентрировать усилия на ядре
+
* Что получилось:
 +
** За год разработки совместимость выше, чем у оригинальной попытки сделать Win32
 +
** Работают FF4b, MS Office, Photoshop и т.д.
 +
** В wine отправлены десятки патчей
 +
** Можно использовать X11 в качестве вывода для win32 (соответственно, можно сделать сервер терминалов)
 +
** Код на 95% общий с wine, соответственно, усилия разработчиков объединяются, а не распыляются
 +
** Можем принимать патчи, от которых отказывается wine
 +
** Ущерб для совместимости приложений пока не замечен (не считая системные утилиты, завязанные именно на внутреннюю архитектуру win32 – пока такая обнаружена только одна)
 +
** Уже можно ограниченно применять в разных POS терминалах и прочем embedded, где есть готовый парк софта «под винду» и не нужна мощная графика.
  
 +
* Преимущества для Wine
 +
** Кросскомпиляция dll wine позволяет отлавливать баги, связанные с переносимостью кода
 +
** Поиск багов в dll wine командой ROS, и написание патчей в апстрим (это уже делается!)
 +
** Фактически, возможно полноценное использование Wine под windows! Для запуска старых/несовместимых программ, в частности. И такой опыт уже был поставлен!
  
•                  Максимально возможная кооперация с Wine (в т.ч. не только брать, но и отдавать)
+
==Резюме (3 минуты)==
  
 +
3.1. Впервые ReactOS подошла вплотную к beta стадии
  
•                  Да, мы берем код из Wine, но регулярно шлем патчи обратно
+
3.2. Локальные применения уже возможны
  
•                  Wine неохотно принимает патчи, в которых не видит нужды, в свою очередь мы как раз исправляем то, что у них не сделано (shell32 и т.д.)
+
3.3. Устранены основные причины, препятствующие распространению ROS, а те, которые остались, сейчас в разработке (USB, FS drv, etc)
  
•                  Как можно быстрее получить максимальную совместимость
+
3.4. Особенно актуально сейчас, когда идет тотальный отказ от «пиратки»
  
b)            Как решили сделать
+
3.5. Включаясь в разработку сейчас, вы участвуете в проекте, который будет весьма популярен в ближайшем будущем. Преимущества:
  
•                  См. диаграмму из ARWINSS wiki
+
* Репутация
  
•                  Нам помогла архитектура Wine, которая изначально в какой-то степени платформонезависимая
+
* Опыт командной разработки
  
•                  Платформонезависимость достигается благодаря специальной прослойке — winex11.drv – абстрагирующей wine от конкретной системы ввода-вывода платформы, на которой он живет
+
* Можно использовать навыки разработки под Windows
  
•                  То есть, вызовы win32 сначала идут в user32/gdi32 wine, оттуда — в winex11.drv, а уже оттуда — в X11.
+
* «Благодарная» работа: ARWINSS за год обогнал аналогичную подсистему, писавшуюся 10 лет. Все результаты работы сразу же будут заметны и очень  
 
+
•                  Так что мы написали свой драйвер, который вместо 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 лет. Все результаты работы сразу же будут заметны и очень  
+
 
востребованы.
 
востребованы.
  
 +
==Демонстрация софта (15 минут)==
  
4.            Демонстрация софта (15 минут)
+
4.1. AbiWord
 
+
4.1.     AbiWord
+
 
+
4.2.    FF4b
+
  
4.3.     KDE-Win(?)
+
4.2. FF4b
  
4.4.     Пример исправленного бага + исходники решения
+
4.3. KDE-Win(?)
  
 +
4.4. Пример исправленного бага + исходники решения
  
5.            Вопросы (5 минут)
+
==Вопросы (5 минут)==
  
5.1.     Когда будет работать?
+
5.1. Когда будет работать?
  
•                  Уже работает. Смотря какое использование вы предполагаете. Для среднего домашнего пользователя — когда будут USB и DirectX. Их пишут. Остальное  
+
* Уже работает. Смотря какое использование вы предполагаете. Для среднего домашнего пользователя — когда будут USB и DirectX. Их пишут. Остальное есть, баги сокращаются каждый день.
есть, баги сокращаются каждый день.
+
  
5.2.     Какие есть проблемы?
+
5.2. Какие есть проблемы?
  
•                  Кривая Win32, но это решает ARWINSS.
+
* Кривая Win32, но это решает ARWINSS.
  
•                  Нет USB
+
* Нет USB
  
•                  Не все «родные» драйвера дисплея работают.
+
* Не все «родные» драйвера дисплея работают.
  
•                  Нет DirectX
+
* Нет DirectX
  
•                  FS – только FAT/CDFS
+
* FS – только FAT/CDFS
  
5.3.     Почему такие проблемы?
+
5.3. Почему такие проблемы?
  
•                  Потому что последние два года работали почти исключительно над ядром, чтобы добиться его стабильности. И добились.
+
* Потому что последние два года работали почти исключительно над ядром, чтобы добиться его стабильности. И добились.

Версия 17:29, 7 мая 2014

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

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

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

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

  • Прогрессивная архитектура — переход от модели «всё — файл» к модели «всё — объект» (кратко о том, что такое объект в NT)
  • Архитектура подсистем, разные API в рамках одной ОС (кратко о POSIX и OS/2 в Win)
  • Богатый парк драйверов
  • Богатый парк прикладных приложений

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

  • Текущее ядро сравнительно стабильно
  • Свои драйверы VGA, PCI, SATA, PS/2 (мин. набор, уже есть и работает)
  • Звуковая и сетевая подсистема
  • Win32 позволяет запускать многие приложения

1.4. Что будет?

  • Ядро: менеджер кэша: ускорение и в перспективе NTFS, ext2/3 и т.д.
  • Развивается и улучшается PnP
  • Активно пишется USB стек
  • Портируем на x64 и ARM
  • Улучшения Win32 (об этом отдельный рассказ)

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

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

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

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

интерфейсах

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

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

  • Задачи
    • Сконцентрировать усилия на ядре
    • Максимально возможная кооперация с Wine (в т.ч. не только брать, но и отдавать)
    • Да, мы берем код из Wine, но регулярно шлем патчи обратно
    • Wine неохотно принимает патчи, в которых не видит нужды, в свою очередь мы как раз исправляем то, что у них не сделано (shell32 и т.д.)
    • Как можно быстрее получить максимальную совместимость
  • Как решили сделать
    • См. диаграмму из ARWINSS wiki
    • Нам помогла архитектура Wine, которая изначально в какой-то степени платформонезависимая
    • Платформонезависимость достигается благодаря специальной прослойке — winex11.drv – абстрагирующей wine от конкретной системы ввода-вывода платформы, на которой он живет
    • То есть, вызовы win32 сначала идут в user32/gdi32 wine, оттуда — в winex11.drv, а уже оттуда — в X11.
    • Так что мы написали свой драйвер, который вместо X11 использует (модифицированные) компоненты нашего ядра
    • … и стало возможно использовать user32 и gdi32 из wine почти без изменений!
  • Что получилось:
    • За год разработки совместимость выше, чем у оригинальной попытки сделать Win32
    • Работают FF4b, MS Office, Photoshop и т.д.
    • В wine отправлены десятки патчей
    • Можно использовать X11 в качестве вывода для win32 (соответственно, можно сделать сервер терминалов)
    • Код на 95% общий с wine, соответственно, усилия разработчиков объединяются, а не распыляются
    • Можем принимать патчи, от которых отказывается wine
    • Ущерб для совместимости приложений пока не замечен (не считая системные утилиты, завязанные именно на внутреннюю архитектуру win32 – пока такая обнаружена только одна)
    • Уже можно ограниченно применять в разных POS терминалах и прочем embedded, где есть готовый парк софта «под винду» и не нужна мощная графика.
  • Преимущества для Wine
    • Кросскомпиляция dll wine позволяет отлавливать баги, связанные с переносимостью кода
    • Поиск багов в dll wine командой ROS, и написание патчей в апстрим (это уже делается!)
    • Фактически, возможно полноценное использование Wine под windows! Для запуска старых/несовместимых программ, в частности. И такой опыт уже был поставлен!

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

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

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

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

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

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

  • Репутация
  • Опыт командной разработки
  • Можно использовать навыки разработки под Windows
  • «Благодарная» работа: ARWINSS за год обогнал аналогичную подсистему, писавшуюся 10 лет. Все результаты работы сразу же будут заметны и очень

востребованы.

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

4.1. AbiWord

4.2. FF4b

4.3. KDE-Win(?)

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

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

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

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

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

  • Кривая Win32, но это решает ARWINSS.
  • Нет USB
  • Не все «родные» драйвера дисплея работают.
  • Нет DirectX
  • FS – только FAT/CDFS

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

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