Difference between revisions of "AMD64"
(→Links) |
m (identify MM as memory manager and small grammer fixes) |
||
Line 25: | Line 25: | ||
* A bootcd is created | * A bootcd is created | ||
* setupldr loads, switches the cpu to long mode, initializes hardware/memory/paging and jumps to ntoskrnl | * setupldr loads, switches the cpu to long mode, initializes hardware/memory/paging and jumps to ntoskrnl | ||
− | * Basic | + | * Basic MM (memory manager) initialization is done, then the system crashes |
− | * Non paged pool allocations work | + | * Non-paged pool allocations work |
− | * Debugging with WinDbg (break points, single stepping etc) works | + | * Debugging with WinDbg (break points, single stepping etc.) works |
− | * Enabling interrupts makes everything go | + | * Enabling interrupts makes everything go nuts |
== Completion Status (rough estimates) == | == Completion Status (rough estimates) == | ||
{| class="wikitable" | {| class="wikitable" | ||
! | ! | ||
− | ! | + | ! completion |
! comment | ! comment | ||
|- | |- | ||
Line 55: | Line 55: | ||
==Building amd64 port== | ==Building amd64 port== | ||
− | + | First, install [http://dreimer.eu/rosbe/RosBE64.7z Amd64 addon for RosBE] (taken from [http://www.reactos.org/forum/viewtopic.php?f=9&t=9082 here]) then start a 64-bit RosBE session with a custom shortcut: | |
Normal shortcut for i386 port is: | Normal shortcut for i386 port is: |
Revision as of 21:21, 19 April 2018
This page describes the current status of the AMD64 port of ReactOS. AMD64 refers to AMD's specifications for a 64-bit extension to the x86 instruction set. It is also known as x86-64 (and variants such as x86_64 and x64).
The ros-amd64-bringup branch was created on r34699 by Timo Kreuzer.
Contents
Status
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/amd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/amd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/amd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/amd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/amd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/amd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/amd64/?view=log
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/amd64/?view=log
- Everything builds
- A bootcd is created
- setupldr loads, switches the cpu to long mode, initializes hardware/memory/paging and jumps to ntoskrnl
- Basic MM (memory manager) initialization is done, then the system crashes
- Non-paged pool allocations work
- Debugging with WinDbg (break points, single stepping etc.) works
- Enabling interrupts makes everything go nuts
Completion Status (rough estimates)
completion | comment | |
---|---|---|
freeldr | 95% | only fixes expected |
hal | 5% | only initial work has been done, most missing is support for interrupts |
ntoskrnl/ke | 50% | core functionality is implemented |
ntoskrnl/mm | 10% | only a few functions are implemented, most stuff is missing |
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
First, install Amd64 addon for RosBE (taken from here) then start a 64-bit 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).
Links
- ViewVC of ros-amd64-bringup
- Nynaeve: Programming against the x64 exception handling support
- PR with x64 improvements on github
- PR Make ReactOS boot to user mode on x64
- Attempt to boot ReactOS x64 from 01/01/2018