ROS Port AMD64 — различия между версиями
(→Ссылки) |
|||
(не показано 8 промежуточных версии 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] для работы над данным портом. | |
− | = | + | = Состояние = |
− | 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 и пр.) работает | ||
+ | * При включении прерываний всё ломается | ||
− | + | == Статус реализации (приблизительно) == | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
! | ! | ||
− | ! | + | ! реализация |
− | ! | + | ! комментарий |
|- | |- | ||
− | | freeldr || 95% || | + | | freeldr || 95% || ожидаются только исправления |
|- | |- | ||
− | | hal || 5% || | + | | hal || 5% || на первичной стадии разработки, не хватает поддержки прерываний |
|- | |- | ||
− | | 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 | ||
Строка 54: | Строка 50: | ||
|} | |} | ||
− | == | + | ==Сборка порта 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" | + | 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 | + | 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] | * 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] | ||
− | + | * [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-образы