ReactOS Archive

ReactOS making progress on SMP/multi-core support

ReactOS as the open-source project striving for binary compatibility with Windows applications/drivers is still working away in 2022 on symmetric multi-processing (SMP) support. Proper SMP/multi-core support is obviously critical for today’s hardware or even anything in the past roughly two decades… It’s also been a pain point for ReactOS, but fortunately the situation is improving. We’re still looking at very early code that’s not even merged yet, but once it has – this would be a massive leap forward for the project.

ReactOS 0.4.14 released

The ReactOS Team is pleased to announce the release of version 0.4.14. As with every other release, we’re regularly noting improvements and updates to keep you in touch with what is being done in ReactOS. In this release, improvements range from FreeLoader fixes, Shell features, kernel fixes, NetKVM VirtIO bringup, further work on the Xbox port and support for NEC PC-9800. A steady stream of improvements, and there’s more already implemented in the nightly builds that’s not in this release.

ReactOS improves amd64 support

The latest ReactOS newsletter has been published. Timo Kreuzer (tkreuzer) worked hard on various parts of the kernel and HAL, fixing issues here and there. Structured Exception Handling (SEH) support for the amd64 architecture was finished, various bugs around the kernel are fixed. A major issue with interrupt handling in HAL was also fixed in May, which finally allowed a semi-stable boot in a virtual environment. There’s also work being done on support for multiple monitors, improved support for SMP, and more.

ReactOS in 2020

Despite all the turbulence, it has been quite a productive year for ReactOS. Many bugs and instabilities were resolved, many more have been introduced. This year we hired two kernel developers full-time, this happened for the first time in the project’s history. The post highlights some of the changes which may be interesting to the community. This post is a good overview of the progress the ReactOS project has made this past year. One of the major achievements this year is that ReactOS can now use Windows’ own NTFS driver, which is pretty amazing.

ReactOS hires full-time developer to work on its memory manager

During the upcoming months, Jérôme is going to overhaul the Mm (Memory Manager) and Cc (Cache Controller) components of the kernel. Both of them are core parts of the operating system, which are involved in every memory request and file operation. Improving them is expected to have a substantial effect on the overall stability and performance of ReactOS. Always nice to see small projects gather the funds to hire a developer to do work.

ReactOS hires developer to work on storage stack

During his contract with ReactOS Deutschland e.V., Victor will primarily work on the storage stack, a long neglected piece of ReactOS. He plans to finally turn scsiport into a Plug & Play aware driver and fix kernel Plug & Play bugs in the process, thereby improving USB storage support and compatibility to Windows storage drivers. If time permits, stretch goals include continuing his previous work on integrating Google’s Kernel Address Sanitizers into ReactOS and fixing booting with our APIC-enabled HAL. It’s always good to see such a small and alternative operating system project hire a developer, even if only for a short time.

ReactOS Build Environment 2.2 released

The ReactOS Build Environment (RosBE), our curated set of compilers and build tools, has just received a major upgrade. After more than 7 years of using the same and now ancient GCC 4.7.2, ReactOS is finally going to be built with the help of a modern compiler (GCC 8.4.0). Among other things, the new version better detects programming mistakes like improperly sized buffers, and comes with improved error messages to pinpoint such mistakes to the corresponding position in code. It also adds support for the latest C and C++ standards, marking a first step towards the introduction of modern C++ concepts into ReactOS. That is one hell of an upgrade, and a much-needed one by the looks of it.

ReactOS 0.4.13 released

The ReactOS Team is pleased to announce the release of version 0.4.13. As with prior releases, keywords are noted representing the release itself and highlighting key improvements. In this particular case, the 0.4.13 version shows the results of significant hard work to bring improvements to the USB stack, further development on the Xbox port boot process, an Explorer File Search for the Shell module, as well as many other changes. There’s also new work on accessibility features, and the 64 bit version has seen considerable improvements, too.

ReactOS 0.4.12 released

The ReactOS team is pleased to announce the release of version 0.4.12. As always a multitude of improvements have been made to all parts of the OS, though userland components saw special emphasis this time around. A lot of work has gone into filesystem support, with the ultimate goal being the ability to run Microsoft’s filesystem drivers – a goal the project has not yet achieved. PXE booting has been fixed as well, and window snapping has been added, among many other things.

ReactOS ‘a ripoff of the Windows Research Kernel’ claims Microsoft kernel engineer

Some pretty bold claims by a Microsoft kernel engineer who works on the Windows kernel regarding ReactOS, the open source operating system that aims to be compatible with Windows. Axel Rietschin, kernel engineer at Microsoft, has claimed that ReactOS, an open source operating system intended to be binary-compatible with Windows, is “a ripoff of the Windows Research Kernel that Microsoft licensed to universities.” He says that “internal data structures and internal functions, not exported anywhere and not part of the public symbols, have the exact same names as they appear in the Research Kernel.” In his recent post, he presents further arguments against ReactOS being a “clean room” implementation done without reference to the source code. “Macros names, parameters, etc. never appears in the compiled code. It is … almost surely impossible that a clean-room reimplementation ends up using macros for the same things, let alone macros with the same or similar names.” Reitschin does add he is no lawyer, but these claims do raise a number of serious concerns and questions about the ReactOS project. These claims alone will probably ensure no serious commercial entity will ever want to associate itself with ReactOS, and it will be interesting to see if these claims will ever lead to something more serious than mere words.

ReactOS 0.4.10 released

The headline feature for 0.4.10 would have to be ReactOS' ability to now boot from a BTRFS formatted drive. The work enabling this was part of this year's Google Summer of Code with student developer Victor Perevertkin. While the actual filesystem driver itself is from the WinBtrfs project by Mark Harmstone, much of Victor's work was in filling out the bits and pieces of ReactOS that the driver expected to interact with. The filesystem stack in ReactOS is arguably one of the less mature components by simple dint of there being so few open source NT filesystem drivers to test against. Those that the project uses internally have all gone through enough iterations that gaps in ReactOS are worked around. WinBtrfs on the other hand came with no such baggage to its history and instead made full use of the documented NT filesystem driver API.

Seems like another solid release. While ReactOS always feels a bit like chasing an unobtainable goal, I'm still incredibly impressed by their work, and at this point, it does seem like it can serve quite a few basic needs through running actual Win32 applications.

ReactOS 0.4.9 released

The ReactOS Project is pleased to announce the release of version 0.4.9, the latest in our accelerated cadence targeting a release every three months.

While a consequence of this faster cycle might mean fewer headliner changes, much of the visible effort nowadays comes in the form of quality-of-life improvements in how ReactOS functions. At the same time work continues on the underlying systems which provide more subtle improvements such as greater system stability and general consistency.

The biggest new "feature" is something we already talked about: ReactOS is now self-hosting.

ReactOS GSoC: booting from Btrfs

ReactOS has unveiled its Google Summer of Code project, undertaken by Victor Perevertki.

My project is both simple and complicated. I want to add to ReactOS an option to install on and boot from BTRFS partitions. There are a few little things left to implement this:

  • BTRFS support in bootloader.
  • Fixes in cache controller and memory manager in order to boot with WinBtrfs driver. It is getting better every week, but right now used only with fastfat driver for FAT32.

My primary goal for this internship is implement BTRFS support in FreeLdr - our bootloader.

Another great GSoC project to keep an eye on.

ReactOS 0.4.8 released

ReactOS 0.4.8 has been released, and its biggest new feature is experimental support for NT6+ applications.

With software specifically leaving NT5 behind, ReactOS is expanding its target to support NT6+ (Vista, Windows 8, Windows 10) software. Colin, Giannis and Mark are creating the needed logic in NTDLL and LDR for this purpose. Giannis has finished the side-by-side support and the implicit activation context, Colin has changed Kernel32 to accept software made for NT6+, and Mark keeps working on the shim compatibility layer. Although in a really greenish and experimental state, the new additions in 0.4.8 should start helping several software pieces created for Vista and upwards to start working in ReactOS. Microsoft coined the term backwards compatibility, ReactOS the forward compatibility one.

There's tons of other improvements, as well.

ReactOS 0.4.7 released

ReactOS 0.4.7 has been released, and it contains a ton of fixes, improvements, and new features. Judging by the screenshots, ReactOS 0.4.7 can run Opera, Firefox, and Mozilla all at once, which is good news for those among us who want to use ReactOS on a more daily basis. There's also a new application manager which, as the name implies, makes it easier to install and uninstall applications, similar to how package managers on Linux work. On a lower level, ReactOS can now deal with Ext2, Ext3, Ext4, BtrFS, ReiserFS, FFS, and NFS partitions.

There's more, so head on over to the announcement page.

ReactOS 0.4.6 released

0.4.6 is a major step towards real hardware support. Several dual boot issues have been fixed and now partitions are managed in a safer way avoiding corruption of the partition list structures. ReactOS Loader can now load custom kernels and HALs.

Printing Subsystem is still greenish in 0.4.6, however Colin Finck has implemented a huge number of new APIs and fixed some of the bugs reported and detected by the ReactOS automated tests.

Regarding drivers, Pierre Schweitzer has added an NFS driver and started implementing RDBSS and RXCE, needed to enable SMB support in the future, Sylvain Petreolle has imported a Digital TV tuning device driver and the UDFS driver has been re-enabled in 0.4.6 after fixing several deadlocks and issues which was making it previously unusable. Critical bugs and leakages in CDFS, SCSI and HDAUDBUS have been also fixed.

That's some solid progress.

ReactOS details some of its GSoC projects

ReactOS is participating in Google Summer of Code, and two of their projects have been detailed. Trevor Thompson is working on improving the NTFS driver:

When I started last year, ReactOS could read files from an NTFS volume, but had no write support whatsoever. After GSoC last year, the driver in my branch could overwrite existing files. I also fixed a few bugs in the driver's ability to read files, which have already been merged into the trunk. I also fixed ReactOS' implementation of LargeMCB's, which our NTFS driver has come to rely on, and which a few other filesystem drivers rely on.

My goals for this summer are simply file creation and deletion.

Meanwhile, Shriraj Sawant is working on adding taskbar features (more about Sawant in his GSoC blog post):

The current shell in ReactOS lets user manager running applications, start other applications and manage files but nothing more. This idea is about implementing 3 small shell extensions for showing the state of the battery of the machine, for ejecting usb devices and implementing the quick launch toolbar. These are important requirements and they are much needed while presenting ReactOS in real hardware. Not knowing the state of the battery or not being able to eject a usb flash drive is a serious usability problem. The shell extensions would be developed and tested to work on Windows.

ReactOS 0.4.5 released

ReactOS 0.4.5 has been released.

Thanks to the work of Katayama Hirofumi and Mark Jansen, ReactOS now better serves requests for fonts and font metrics, leading to an improved rendering of applications and a more pleasant user experience. Your continued donations have also funded a contract for Giannis Adamopoulos to fix every last quirk in our theming components. The merits of this work can be seen in ReactOS 0.4.5, which comes with a smoother themed user interface and the future promises to bring even more improvements. In another funded effort, Hermès Bélusca-Maïto has got MS Office 2010 to run under ReactOS, another application from the list of most voted apps. Don’t forget to install our custom Samba package from the Application Manager if you want to try it out for yourself.