ROS Port AMD64 — различия между версиями
Строка 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] для работы над данным портом. | |
− | = | + | = Состояние = |
− | http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/amd64/?view=log | + | 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 и пр.) работает | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | * | + | |
− | * setupldr | + | |
− | * | + | |
− | * Non paged pool allocations | + | |
− | * | + | |
* Enabling interrupts makes everything go nots | * Enabling interrupts makes everything go nots | ||
− | == | + | == Статус реализации (приблизительно) == |
{| class="wikitable" | {| class="wikitable" | ||
! | ! | ||
− | ! | + | ! реализация |
− | ! | + | ! комментарий |
|- | |- | ||
− | | freeldr || 95% || | + | | freeldr || 95% || ожидаются только исправления |
|- | |- | ||
| hal || 5% || only initial work has been done, most missing is support for interrupts | | hal || 5% || only initial work has been done, most missing is support for interrupts | ||
|- | |- | ||
− | | ntoskrnl/ke || 50% || | + | | ntoskrnl/ke || 50% || базовая функциональность реализована |
|- | |- | ||
− | | ntoskrnl/mm || 10% || | + | | ntoskrnl/mm || 10% || немного функций реализовано, большинство их отсутствует |
|- | |- | ||
| rtl || 60% || exception handling is missing and unwinding is incomplete | | rtl || 60% || exception handling is missing and unwinding is incomplete | ||
Строка 76: | Строка 72: | ||
''(or ReactOS-arm.iso for ARM)''. | ''(or ReactOS-arm.iso for ARM)''. | ||
− | == | + | == Ссылки == |
− | + | ||
* ViewVC of [http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/ ros-amd64-bringup] | * 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://www.nynaeve.net/?p=99 Nynaeve: Programming against the x64 exception handling support] | ||
− | |||
{{ReactOS}} | {{ReactOS}} | ||
[[Категория:Переводится]] | [[Категория:Переводится]] |
Версия 13:16, 2 мая 2016
Данная страница описывает текущее состояние портирования 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 и пр.) работает
- Enabling interrupts makes everything go nots
Статус реализации (приблизительно)
реализация | комментарий | |
---|---|---|
freeldr | 95% | ожидаются только исправления |
hal | 5% | only initial work has been done, most missing is support for interrupts |
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 |
Building amd64 port
Firstly, install Amd64 addon for RosBE (taken from here), then start a 64bit RosBE session, with a custom shortcut:
Normal shortcut for i386 port is: C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd"
The one for AMD64 should be:
C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" amd64
(And for ARM: C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" arm )
Here "e:\RosBE" was install path of RosBE.
Run the custom shortcut, then proceed as usual (ninja bootcd and similar). You can build amd64 and arm at the same trunk you use for x86 build. New directories will be created and the built ISO will also have different name: ReactOS-amd64.iso
(or ReactOS-arm.iso for ARM).