ROS Port AMD64 — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
Строка 1: Строка 1:
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).
+
Данная страница описывает текущее состояние портирования ReactOS на AMD64. AMD64 относится к спецификациям AMD для 64-битного расширения набора x86-инструкций. Так же известна как x86-64 (или x86_64 и x64).
  
The [http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/ ros-amd64-bringup] branch was created on {{rev|34699}} by [[User:ThePhysicist|Timo Kreuzer]].
+
В {{rev|34699}} Timo Kreuzer создал ветку [http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/ ros-amd64-bringup] для работы над данным портом.
  
= Status =
+
= Состояние =
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]
  
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd64/?view=log
+
* Все собирается
 
+
* Bootcd создается
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/amd64/?view=log
+
* setupldr загружается, переключает процессор в long mode, инициализирует оборудование/память/подкачку и переходит к ntoskrnl
 
+
* Базовая инициализация Mm выполняется, но затем, система падает
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/amd64/?view=log
+
* Non paged pool allocations работает
 
+
* Отладка с помощью WinDbg (break points, single stepping и пр.) работает
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 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 nots
 
* Enabling interrupts makes everything go nots
  
== Completion Status (rough estimates) ==
+
== Статус реализации (приблизительно) ==
 
{| class="wikitable"
 
{| class="wikitable"
 
!
 
!
! completition
+
! реализация
! comment
+
! комментарий
 
|-
 
|-
| freeldr    || 95% || only fixes expected
+
| 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% || core functionality is implemented
+
| ntoskrnl/ke || 50% || базовая функциональность реализована
 
|-
 
|-
| ntoskrnl/mm || 10% || only a few functions are implemented, most stuff is missing
+
| 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)''.
  
== Links ==
+
== Ссылки ==
 
+
 
* 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 Showstopper for AMD64 branch. Unimplemented: It waits for SEH support in mingw-w64 version of GCC compiler

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).

Ссылки

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP