ROS Port AMD64 — различия между версиями
(Новая страница: «== Building == Obtain the React OS Build Environment for ARM (RosBE-ARM). The latest version is 1.0 and available from: [http://reactos.colinfinck.de/download/Ro…») |
(→Ссылки) |
||
(не показано 9 промежуточных версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | + | Данная страница описывает текущее состояние портирования ReactOS на AMD64. AMD64 относится к спецификациям AMD для 64-битного расширения набора x86-инструкций. Так же известна как x86-64 (или x86_64 и x64). | |
− | + | В {{rev|34699}} Timo Kreuzer создал ветку [http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/ ros-amd64-bringup] для работы над данным портом. | |
− | + | ||
− | + | = Состояние = | |
− | + | Ntoskrnl: | |
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/amd64/?view=log kd/amd64] | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd64/?view=log kd64] | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/amd64/?view=log kdbg/amd64] | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/amd64/?view=log ps/amd64] | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/amd64/?view=log include/internal/amd64] | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/amd64/?view=log ke/amd64] | ||
+ | MM: | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/amd64/?view=log mm/amd64] | ||
+ | Freeldr: | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/amd64/?view=log freeldr/arch/amd64] | ||
+ | HAL: | ||
+ | *[http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/amd64/?view=log hal/halx86/amd64] | ||
− | + | * Все собирается | |
+ | * Bootcd создается | ||
+ | * setupldr загружается, переключает процессор в long mode, инициализирует оборудование/память/подкачку и переходит к ntoskrnl | ||
+ | * Базовая инициализация Mm выполняется, но затем, система падает | ||
+ | * Non paged pool allocations работает | ||
+ | * Отладка с помощью WinDbg (break points, single stepping и пр.) работает | ||
+ | * При включении прерываний всё ломается | ||
− | + | == Статус реализации (приблизительно) == | |
− | + | {| class="wikitable" | |
− | + | ! | |
+ | ! реализация | ||
+ | ! комментарий | ||
+ | |- | ||
+ | | freeldr || 95% || ожидаются только исправления | ||
+ | |- | ||
+ | | hal || 5% || на первичной стадии разработки, не хватает поддержки прерываний | ||
+ | |- | ||
+ | | ntoskrnl/ke || 50% || базовая функциональность реализована | ||
+ | |- | ||
+ | | ntoskrnl/mm || 10% || немного функций реализовано, большинство их отсутствует | ||
+ | |- | ||
+ | | rtl || 60% || exception handling is missing and unwinding is incomplete | ||
+ | |- | ||
+ | | crt || 60% || missing stuff here and there | ||
+ | |- | ||
+ | | [[PSEH]] || 0% 100% in MSVC || <s>'''Showstopper for AMD64 branch. Unimplemented: It waits for SEH support in mingw-w64 version of GCC compiler''' </s> | ||
+ | See also [[Building_MINGW-w64]], [[Techwiki:SEH64]] | ||
− | + | Not a problem anymore with MSVC compiler http://www.dreimer.de/?p=1212 | |
− | + | |} | |
− | + | ||
− | + | ==Сборка порта amd64== | |
− | + | Во-первых, установите [http://dreimer.eu/rosbe/RosBE64.7z Amd64 addon for RosBE] (взято [http://www.reactos.org/forum/viewtopic.php?f=9&t=9082 отсюда]), и запустите 64-разрядную сессию RosBE, подправив ярлык: | |
− | + | ||
− | + | ||
− | + | Ярлык для i386 выглядит так: | |
− | + | C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | А для AMD64 его необходимо изменить: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" amd64 | |
− | + | '''(И для ARM:''' | |
− | + | C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" arm | |
− | + | ''')''' | |
− | + | Здесь "''e:\RosBE''" - путь к установленной RosBE. | |
− | + | ||
− | + | Запустите исправленный ярлык, и затем, собирайте ReactOS как обычно ([[ROS Build|'''ninja bootcd''']] и пр.). | |
− | + | Вы можете собрать amd64 и arm в том же транке где у вы собираете x86. При сборке будут созданы новые каталоги, а у ISO-образа будет имя другое имя: ''ReactOS-amd64.iso''. | |
− | + | ||
− | + | ||
− | + | ''(или ReactOS-arm.iso для ARM)''. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | == Ссылки == | ||
+ | * ViewVC of [http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/ ros-amd64-bringup] | ||
+ | * [http://www.nynaeve.net/?p=99 Nynaeve: Programming against the x64 exception handling support] | ||
+ | * [http://github.com/reactos/reactos/pull/115 PR с улучшениями x64 на github] | ||
+ | * [http://github.com/reactos/reactos/pull/361 PR Загрузка в пользовательский режим x64] | ||
+ | * [http://youtu.be/qZ9KvJv7P3E Проба загрузки ReactOS x64 от 01.01.2018] | ||
+ | * [http://youtu.be/-rgsXXbs2FA Загрузка ReactOS x64 от 31.05.2019 + livecd] + [https://yadi.sk/d/ZLiZ-9NyP8cmnQ (зеркало)] | ||
+ | * [https://drive.google.com/file/d/1_7eG_29EnQb7xHtqN9EGr2bRisHDhpuB/view Рабочие ISO-образы] | ||
{{ReactOS}} | {{ReactOS}} | ||
[[Категория:Переводится]] | [[Категория:Переводится]] |
Текущая версия на 01:43, 7 февраля 2020
Данная страница описывает текущее состояние портирования ReactOS на AMD64. AMD64 относится к спецификациям AMD для 64-битного расширения набора x86-инструкций. Так же известна как x86-64 (или x86_64 и x64).
В r34699 Timo Kreuzer создал ветку ros-amd64-bringup для работы над данным портом.
Содержание
[убрать]Состояние
Ntoskrnl:
MM:
Freeldr:
HAL:
- Все собирается
- Bootcd создается
- setupldr загружается, переключает процессор в long mode, инициализирует оборудование/память/подкачку и переходит к ntoskrnl
- Базовая инициализация Mm выполняется, но затем, система падает
- Non paged pool allocations работает
- Отладка с помощью WinDbg (break points, single stepping и пр.) работает
- При включении прерываний всё ломается
Статус реализации (приблизительно)
реализация | комментарий | |
---|---|---|
freeldr | 95% | ожидаются только исправления |
hal | 5% | на первичной стадии разработки, не хватает поддержки прерываний |
ntoskrnl/ke | 50% | базовая функциональность реализована |
ntoskrnl/mm | 10% | немного функций реализовано, большинство их отсутствует |
rtl | 60% | exception handling is missing and unwinding is incomplete |
crt | 60% | missing stuff here and there |
PSEH | 0% 100% in MSVC | See also Building_MINGW-w64, Techwiki:SEH64 Not a problem anymore with MSVC compiler http://www.dreimer.de/?p=1212 |
Сборка порта amd64
Во-первых, установите Amd64 addon for RosBE (взято отсюда), и запустите 64-разрядную сессию RosBE, подправив ярлык:
Ярлык для i386 выглядит так:
C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd"
А для AMD64 его необходимо изменить:
C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" amd64
(И для ARM:
C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" arm
)
Здесь "e:\RosBE" - путь к установленной RosBE.
Запустите исправленный ярлык, и затем, собирайте ReactOS как обычно (ninja bootcd и пр.). Вы можете собрать amd64 и arm в том же транке где у вы собираете x86. При сборке будут созданы новые каталоги, а у ISO-образа будет имя другое имя: ReactOS-amd64.iso.
(или ReactOS-arm.iso для ARM).
Ссылки
- ViewVC of ros-amd64-bringup
- Nynaeve: Programming against the x64 exception handling support
- PR с улучшениями x64 на github
- PR Загрузка в пользовательский режим x64
- Проба загрузки ReactOS x64 от 01.01.2018
- Загрузка ReactOS x64 от 31.05.2019 + livecd + (зеркало)
- Рабочие ISO-образы