Version Status

From ReactOS
Jump to: navigation, search
This page is probably outdated

The information on this page might not be valid for the current state of ReactOS.
A Wiki Administrator should look at this page and decide or discuss what to do with it.


Current Component Status

Name Current Status
General
Operating system localization Depends on language. Ask appropriate language maintainer.
Software compatibility Please help us to test what already works in ReactOS. Share your tests here or report bugs: JIRA
Win32 Subsystem
Win32 DLLs See Testman reports
Win32k
Support for User mode printer drivers: unimplemented.
Text/font system: needs complete rewrite.
DIB code: mostly implemented, could need optimisation in some places.
Mouse pointer: missing alpha support.
Region support: interface improvements needed, ROS specific structures to be deprecated.
Pens: missing support for geometric pens.
Brushes: missing support for driver managed hatch brushes.
GDI handle manager: rewritten in r51470.
User handle manager: needs to be fixed to work more like Windows.
Bitmap code: DIB sections are very broken, needs lots of fixing.
Line Drawing: needs full rewrite.
Coordinate transfomation: possibly to be moved to usermode.
Core
Bootloader In a rather good shape, needs further development in terms of adding some more features and fixing existing. We switched to the NT-compatible booting method with r43273. Old bootmethod has been removed in r52491.
Kernel
Memory manager (MM) In a process of a soft rewrite, resulting in a functional equivalent of NT's (2003's) memory manager, without made up ROS-specific implementations and assumptions.
Object manager (OB) Nearly perfect. Functionally equivalent to 2003's OB. Tested code, works very good.
Common Cache (CC) Stays as it is for now, adapting to the changing memory manager. There exist three rewrites: No-Cc (a version of the kernel which does no caching at all, very slow); arty-cc by Art Yerkes, totally new Cc with a good, separated from Mm architecture, WIP.
File system support File Systems
FAT32 Needs a rewrite of a file system driver (fastfat), test it against windows 2003. Started in r38693
NTFS Completely missing (not to count a very simple stubbed IFS driver). It would make sense to use NTFS-3G from Linux and develop an own driver, also should be developed against Windows 2003.
Ext2 Support in the kernel is missing for a good/known to work driver.
Driver support
PNP manager Supports all driver operations. However, the functional logic is not always the same as in Windows. Implementation is also still very different from Windows PNP. A complete rewrite of the kernel part is planned in the future.
2D/3D Graphics
GDI Pretty good shape overall, missing Metafile support. Relies heavily on win32k.
GDI+ Completely shared with Wine, relies on GDI.
OpenGL Uses software rendering by default, via Mesa3D ICD driver. API is almost complete, only few wgl* functions are missing. Can load various ICD drivers and works fine on WinXP too.
ReactX D3D9, D3D8 & DDraw APIs are supported via WineD3D – wrapper translating DirectX functions to OpenGL.
Sound
Portcls Is a class driver for the audio driver subsystem. MIDI support is missing. HW testing needed for port driver implementation (IPortWavePci & IPortWaveRT). Portcls / sysaudio also need testing & bugfixing for WaveIn (audio recording).
Sysaudio Handles access to the audio port drivers by managing the device interfaces. Needs to map multiple audiostream to a virtual audio pin in kmixer. Portcls / sysaudio also need testing & bugfixing for WaveIn (audio recording).
Wdmaud Is a kernel mode component of wdmaud.drv . Implements the Wave / Mixer / MIDI API. Needs MIDI APIs implemented and WaveIn support + Mixer support.
Kmixer Performs mixing / conversions of streams. Currently very poorly implemented. Needs Kernel FPU float saving support before more work can be done.

See Also