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.
https://reactos.org/img/project-news/reactos-0413-released/banner.png
USB Improvements
================
USB (Universal Serial Bus) is an important standard adopted throughout
the industry and used widely on many devices such as external storage,
keyboards, mice, and various other devices. Notably, there are a great
number of computers that do not come with a CD-ROM drive these days,
with the only option being USB in order to boot or install an operating
system. The USB stack itself is arguably a very complicated one, the
code to support it is complex, and maintaining it is not an easy task.
ReactOS currently lags behind an advanced USB implementation as various
bugs and regressions still plague the system. Despite this, many people
have worked hard and contributed code to improve USB functionality in
ReactOS.
Vadim Galyant and Victor Perevertkin have brought in a new USB stack
which provides many fixes as well as improvements to various areas,
improving USB support in general. Although there is a long journey ahead
towards an advanced and perfectly functional USB stack within ReactOS,
the new module already supports HID and storage devices.
Explorer File Search Bring-Up
=============================
The graphical shell (aka Explorer) is a vital component that allows the
user to interact with the system. The shell itself, though, lacks a lot
of stuff which deeply limits the overall ability for the user to
interact with the system in an easy and flexible way. However, with work
done during the Google Summer of Code 2019, the shell has seen a new
feature implemented - file search. Thanks to student Brock Mammen, this
feature will help the user find the exact location of a file without the
hassle of having to search for content manually or to rely on
third-party programs. The screenshot below demonstrates the search
feature in action:
https://reactos.org/img/project-news/reactos-0413-released/file-search.png
Xbox ReactOS Port Improvements
==============================
Once upon a time, ReactOS had an Xbox architecture port specifically to
boot ReactOS onto the first generation of Xbox console hardware. With
ReactOS code making significant changes over time, the port was not
maintained and had been largely ignored by developers who were focused
on other issues.
Due to the significant amount of changes in various areas that ReactOS
was receiving, it was discovered that the OS could no longer boot on
Xbox hardware. Now, this is no longer the case as ReactOS contributor
Stanislav Motylkov, with the help from Matt Borgerson, have brought
changes to the port which show tremendous improvement. And as is often
the case with porting code to a new system, the work has also helped
ReactOS more broadly by exposing nasty bugs in some fundamental modules
of the system.
The following screenshot shows ReactOS running in an Xbox emulator, XQEMU:
https://reactos.org/img/project-news/reactos-0413-released/xqemu.jpg
FreeLoader FAT Boot Speed-Up
============================
In past releases, booting ReactOS on a system that was partitioned using
the FAT filesystem could be a burden, as you had to wait some time for
ReactOS to boot. FreeLoader (the ReactOS bootloader) has to do a lot of
stuff in order to get ReactOS ready for boot, but unfortunately it was
doing this in an unoptimized way. In this release, Victor Perevertkin
did a great job optimizing the FAT driver of FreeLoader, significantly
improving the boot speed when using this filesystem for USB-RAM boot.
https://www.youtube.com/watch?v=XEsNzuXzcHQ
Accessibility
=============
In the area of accessibility in ReactOS, new software was introduced -
the Accessibility Utility Manager. Developed by ReactOS contributor
Bi?oc George, the Accessibility Utility Manager, as the name implies,
manages the accessibility applications of ReactOS. The following
screenshot shows the program in operation:
https://reactos.org/img/project-news/reactos-0413-released/accessibility.png
Similarly, the On-Screen Keyboard has seen some improvements to theming
support and there have been some additional features and minor bug fixes
in the Magnifier.
Font Management
===============
Developer Katayama Hirofumi has continued his work to bring ReactOS’
font support closer to that of Windows. With the merging of two large
pull requests, system font management is now done via the registry
rather than in an ad-hoc way. This brings improved compatibility and
stability to ReactOS.
Other Improvements
==================
Besides the highlighted points of this release, we should not forget
that the whole of ReactOS - components such as DLLs, applications, and
other modules have been improved.
In addition to the improvements to accessibility features mentioned
above, Bi?oc George also fixed some common dialog boxes where the
“Apply” button enabled itself unconditionally even though the user had
not taken any action. Furthermore, he also fixed an issue regarding disk
space where the Recycle Bin could occupy more than the available disk space.
The 64-bit ReactOS build is getting better and better such that now
ReactOS is fully booting and working in an x64 environment thanks to
Timo Kreuzer’s work continuing to progress further.
Third Party Syncs
=================
ReactOS is an open source project that collaborates with various other
open source projects all around the globe. The following list shows the
3rd party libraries that other projects share with ReactOS, and with the
responsible committers that have synced the libraries with the ReactOS
project.
* BtrFS v1.4 by Pierre Schweitzer
* ACPICA v20190816 by Thomas Faber
* UniATA v0.47a by Thomas Faber
* mbedTLS v2.7.11 by Thomas Faber
* libpng v1.6.37 by Thomas Faber
Statistics
==========
JIRA Issues fixed of this release - 278
Number of commits as of this release - 1282
Oldest issue fixed as of this release - CORE-4995
* Press Release: https://reactos.org/project-news/reactos-0413-released/
* General Notes: https://reactos.org/wiki/0.4.13
* The official Changelog for the 0.4.13 release:
https://reactos.org/wiki/ChangeLog-0.4.13
* The less technical Community Changelog for 0.4.13:
https://reactos.org/wiki/Community_Changelog-0.4.13
* Application Tests for 0.4.13: https://reactos.org/wiki/Tests_for_0.4.13
* Download page: https://reactos.org/download/
releases/0.4.13 branch was forked from master on 2019-09-30 after
0.4.13-dev-1225-ge413df4
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.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0412_1_2.p…
Kernel improvements
===================
Filesystem drivers require a great deal of support to function
correctly, and there is arguably no truer test of ReactOS’ FS
infrastructure than being able to run Microsoft’s own FS drivers. While
the project is not quite there yet, driving towards this goal saw
considerable improvements been made. Pierre Schweitzer and Thomas Faber
paid particular attention to the common cache, a module with deep ties
to the memory manager and which traditionally has been a very
troublesome component. General stability saw marked improvement thanks
to their contributions, along with that of Hermès Bélusca-Maïto in
fixing up ReactOS’ own CDFS driver.
More general progress can be found in Eric Kohl’s progression towards
proper device power management, an especially tricky feature that many
take for granted these days on Windows laptops. If only people knew just
how many steps were involved in putting a device to sleep and then
waking it up again in a working state. Then again, anyone who has ever
had to hard reboot a machine that won’t wake from sleep can probably
attest to the difficulty even the biggest OS vendors in the world still
grapple with.
Another feature that is certainly to be of greater interest to power
users and IT specialists, Michael Fritscher has managed to fix support
for PXE booting with ReactOS. In enterprise or industrial environments
where central management of systems is a must, the more network
functionality ReactOS provides, the more places it can find a use.
Fixed Kernel-Image-Protection
=============================
Security these days is a fundamental requirement of modern operating
systems, and the ability for an OS to protect its own files is the
foundations upon the rest of its security. To that end, most operating
systems will have locks to prevent any random application from going and
modifying images that are loaded and executed in the kernel space, such
as the kernel itself (ntoskrnl), various feature subsystems (win32k),
and of course general device drivers. ReactOS previously suffered from
various bugs that prevented it from correctly doing this, but the
write-protection functionality was rewritten during the run-up to
0.4.12, enabling its usage and also adding new features like execution
protection just waiting for x64 to be fully enabled.
Window snapping
===============
A general usability shortcut, the ability to snap windows to be aligned
to sides or maximized and minimized by dragging it in specific
directions is something of a staple. Its lack in ReactOS meant
power-users and their muscle memory were hard put out, but with 0.4.12
this is no longer the case. Denis Malikov has implemented the necessary
support to make window snapping work, and the project invites one and
all to try it out. And needless to say, the project did not forget the
keyboard shortcuts that accompany the feature.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0412_2.png
Font improvements
=================
Font rendering is one of those background details that when things go
right, one barely notices. When things go wrong however, the results can
render entire suites of applications unusable. The work to make font
rendering more robust and correct in ReactOS is, like many other
features, a work in progress and joint effort between multiple
developers, with longtime contributors James Tabor, Katayama Hirofumi
MZ, and Mark Jansen playing especially active roles. Nonetheless,
several significant pieces fell into place to allow 0.4.12 to enjoy some
marked improvements over its predecessors.
The single biggest fix that went into 0.4.12 would have to be a series
of problems that badly garbled text rendering for buttons in a range of
applications, from iTunes to various .NET applications as seen in the
images below.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0412_3.png
Intel e1000 NIC driver
======================
While ReactOS’ traditional usage in virtual machines generally shields
it from rapid and oft massive changes in hardware configurations, even
the systems emulated by virtual machines have undergone some evolution
over the years. Case in point, VirtualBox and VMware have been shifting
their default emulated network interface card to be based off of the
Intel e1000 NIC in order to present their guests with a gigabit capable
interface.
Thanks to work done by Mark Jansen and Victor Perevertkin, ReactOS now
possesses a driver that supports this NIC out of the box instead of
requiring end-users to manually find and install a driver, a finicky
process if one does not have a working network connection in the first
place. Furthermore, the new driver should also be compatible with e1000
NICs in real hardware, though of course more real-world testing will be
necessary to fully validate that assertion. Interested testers are of
course encouraged to try and see just how much ReactOS can get out of
the e1000.
New themes
==========
ReactOS first gained theming support in the 0.3.x era, with the Lautus
theme being the standard bundled to demonstrate the feature. With
0.4.12, the team is pleased to announce two new themes to add to its
stable. The first is Lunar, created by Joann Mõndresku and Adam Słaboń
and designed to be reminiscent of the look and feel of XP while colored
in the ReactOS style. The second is Mizu by Foxlet, which seeks to
provide a flatter design that draws from the more modern design styles
found in newer versions of Windows. A comparison of the two can be found
below. Choice is always good, after all, and now users have more of them
to find one that better suits their aesthetic tastes.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0412_4.png
User-mode DLLs
==============
A range of other improvements to user-mode components within ReactOS
were made for 0.4.12, with some being more obvious than others. The most
visible of course would be, more applications work, which is arguably
the principal reason many users express interest in the project. Two
outstanding improvements also help demonstrate the sort of contrast
between the subtle and the dramatic in terms of ReactOS’ progress.
The common controls library (comctl) is used by basically all Windows
applications to draw various generic user interface elements. Fix
relating to it read extremely dryly and would be a list of things that
most end users would not understand. Still, the sort of plumbing it
supports is essential to the rest of the user experience, and every time
a user is able to smoothly slide through an application is a testament
to the effort put into the library by developers like Giannis
Adamopoulos, Doug Lyons, Stanislav Motylkov, and Denis Malikov.
Speaking of Stanislav, another piece of work from him that made it into
0.4.12 represents the sort of dramatic, big step forward in that it
enables an entire class of usage of the OS. MIDI devices have a long and
storied history in the indie music scene and even today people are
composing works that make use of their seemingly simplistic range. Due
to that very history, MIDI devices and the software that supports them
can be from what feels like a bygone era. ReactOS has always been about
enabling people to keep using their existing hardware and software
however, and Stanislav’s work now enables ReactOS to properly load the
drivers for MIDI instruments and control them, thus opening up a whole
new class of use for ReactOS.
Oh and while he was at it, he also animated the rotation bar in the
startup/shutdown dialog, just like in the NT5 family. It’s the little
things that count.
Misc improvements
=================
As always, it would be physically impossible to do justice to all of the
improvements and all the hard work done by the developers involved. From
updates to the on-screen keyboard (Bisoc George), fixes to the
calculator (Carlo Bramini), to quality of life improvements to the sound
mixer dialog (Eric Kohl), one could go on and on and on. A summary can
never do justice to everything that has been done, so we will have to
content ourselves with the small window that it can provide.
Testing
=======
As always, ReactOS’ progress would be impossible without the dedication
put in by the various testers and bug reporters like Joachim Henze that
dedicate time and effort to this project, in both initially filing
issues and following up to verify that fixes actually work.
Third Party Syncs
=================
The current third party sources that ReactOS syncs with have been
brought to the following versions by their respective minders.
* Wine-Staging 4.0 by Amine Khaldi
* btrfs v1.1 by Pierre Schweitzer
* uniata v0.47 by Thomas Faber
* ACPICA v20190405 by Thomas Faber
* libpng v1.6.35 by Thomas Faber
* mbedtls v2.7.10 by Thomas Faber
* mpg123 v1.25.10 by Thomas Faber
* libxml2 v2.9.9 by Thomas Faber
* libxslt v1.1.33 by Thomas Faber
* libtiff v4.0.10 by Thomas Faber
Statistics
==========
JIRA issues fixed - 226
Number of commits - 1140
Oldest bug fixed for 0.4.12 - https://jira.reactos.org/browse/CORE-187
Local Dll override support in ReactOS (Mark Jansen)
releases/0.4.12 branch was forked from master on 2019-04-08 after
0.4.12-dev-1082-ge0e5363
- Press Release: https://reactos.org/project-news/reactos-0412-released
- General Notes: https://reactos.org/wiki/0.4.12
- Tests: https://reactos.org/wiki/Tests_for_0.4.12
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.12
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.12
- Download page: https://reactos.org/download
The ReactOS team is pleased to announce the release of version 0.4.11.
This version has seen substantial work done to the kernel, helping
improve overall system stability.
Kernel Improvements
===================
While the term kernel is used as a sort of catch-all term, in truth the
range of functionality that it encapsulates is quite wide. One case in
point is the kernel’s responsibility for managing file I/O. A mistake
here can cause subtle data corruption to more obvious hard crashes.
Pierre Schweitzer’s fixes to the cache controller’s management of its
data structures has removed at least one source of blue screens that
occurred when attempting to backup a disk’s partition using the ODIN
backup software.
Storage improvements were something of a theme in kernel improvements
this time around, as work was also done on the filesystems ReactOS
supports. While the fastfat driver is an inhouse filesystem driver,
ReactOS has always relied on a third party driver for BTRFS support.
This reliance however feeds back, as problems ReactOS discover in our
usage of the driver can be sent back upstream to help improve it
further. Such was the case with a major memory leak problem that Thomas
Faber was able to track down.
And speaking of storage, the very interfaces that allows operating
systems to talk with storage devices has undergone considerable change
since the good old days of IDE and parallel connectors. These days most
computers make use of SATA connections and the corresponding AHCI
interface, support for which ReactOS relies upon the UniATA driver for.
When the 6th generation of Intel’s Core processors (Skylake) was
released, it was accompanied by a chipset platform whose AHCI SATA
controllers proved incompatible with UniATA. This incompatibility has
now been resolved by Alexander Telyatnikov, allowing users wishing to
test ReactOS on more modern platforms to better make use of those
platforms’ capabilities.
Application Start/Stop
======================
When an application is run, it often depends upon other libraries in the
form of DLLs. The loader (LDR) is responsible for finding and loading
the respective dependent DLLs, and correctly iterating over these
dependencies is fundamental to getting anything to run. One manner of
specifying these dependencies is with the use of something called
manifests, which was not properly supported in ReactOS. Considering that
many modern applications make use of manifests, this was a very glaring
hole. Mark Jansen’s work in the runup to 0.4.11 has however added
sufficient support for manifests that the range of applications now able
to start in ReactOS has significantly widened. Some examples of the
newly enabled applications include Blender 2.57b, shown in the
screenshot below, Bumptop, Evernote 5.8.3, Quicktime Player 7.7.9, and
many others that users have the opportunity to discover for themselves.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0411_1.png
Blender 2.57b running within ReactOS
Stopping an application correctly is often just as important from a
system stability perspective, as it is when a program is stopped that
its previously allocated resources are freed up. For a long time ReactOS
had particular difficulty when it came to dealing with the shutdown
sequence for .NET 2.0 applications, often times not waiting long enough
for these applications to properly exit. Work by Giannis Adamopoulos has
however resolved this particular problem, adding further to ReactOS’
usefulness as a platform to run Windows compatible applications.
USETUP Improvements
===================
While the community wishlist for quality of life improvements in ReactOS
is quite lengthy, one especially longstanding one has been the ability
to upgrade an existing installation of ReactOS. Achieving this has
required substantial effort in the USETUP module, effort that Hermès
Bélusca-Maïto put considerable time into. The importance of this is
twofold. The obvious enhancement is the ability to perform the upgrade,
but the more substantive point is what this functionality entails for
the future. For ReactOS to be usable as an actual system OS, it needs
the ability to update in-place without losing user data and
configuration. While requiring the user to go through the system
installation process is still far from the user friendliness of other
modern operating systems, it is still a substantial step forward and
lays the foundation for ReactOS’ maturation into an everyday driver of
people’s computers.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0411_2.png
Screenshot of the ReactOS text mode setup with upgrade option
Win32
=====
The Win32 subsystem responsible for graphical rendering in ReactOS is by
itself a substantial beast. Improvements here often tend towards the
most user visible of changes, since it is the engine through which the
user will most interact with the operating system.
Those familiar with the NT family’s basic design will recall that prior
to the NT6 line that began with Windows Vista, there was a substantial
block of functionality implemented inside the kernel space of the
operating system. This block is commonly referred to as win32k, and
because of its wide ranging kernel level privileges, problems within
win32k can hard crash the entire system. Even something as seemingly
basic as menus is reliant on functionality inside win32k, and fixing
that related functionality was the focus of much effort by several
developers.
Basic robustness was the emphasis Thomas Faber focused on, running the
menu code through a torture test that would see constant switching
between different windows to make sure no resources or the like leaked
across the different processes. One must recall that while in user mode
applications are partitioned off, in kernel mode resources are
effectively in a single space and the appropriate bookkeeping must be
maintained to avoid crashes. Speaking of crashes, Mark Jansen also
identified a problem with scrollbar initialization whose resolution has
added yet another range of applications into ReactOS’ library of
compatible programs. Case in point is the 32bit Civilization II
Multiplayer Gold Edition version 1.3, as demonstrated in the screenshot
below, and others like IceChat 7.63.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0411_3.png
Screenshot of Civilization II Multiplayer Gold Edition 1.3 running on
ReactOS
The visual correctness of menu elements is also important, as misaligned
elements can produce graphically jarring displays. As such while subtle,
Katayama Hirofumi’s correction of the y-coordinate calculation for menu
items adds a touch of detail that is the difference between a polished
graphical experience and one that is just good enough.
Menus can also extend to more than just the menu bar we often see at the
top of applications. There are also pop-up menus like when one
right-clicks on an item, as in the case of icons in the taskbar’s system
tray. Mark was again responsible for this fix, which resolved the issue
of incorrectly selected options when one tried to use the systray. Users
can be thankful that one more source of frustration has now been squashed.
Finally, one must recall that not the entire world uses the
left-to-right display standard to English and other Latin based
languages. Many, such as Hebrew and Arabic, use a right-to-left
orientation. ReactOS’ support for this type of text rendering was first
officially exposed in 0.4.10, but the effort remains a work in progress.
That progress took a substantive leap with work done by Baruch Rutman to
adapt the USP10 library and Bidirectional support code from Wine to
ReactOS. More work of course remains to be done, but it is the nature of
open source development to take an iterative approach, building
improvements one upon another.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0411_4.png
Bidirectional text support in ReactOS
Networking
==========
While end user improvements are often the most visible, quality of life
improvements for power users, administrators, and developers have a
certain multiplicative effect as well. To that end, the enablement of
various network debugging and diagnosis programs by Pierre’s work in TCP
and UDP connection enumeration is important in a more subtle way. While
debugging network applications is a far from common use case for the
average user, it is a crucial ability for people that work in IT or
general software development. In this manner ReactOS is becoming useful
as not just a platform for running applications, but also to debug them.
And as history has shown, the ease of development and administration is
a key feature in adoption by the wider tech industry.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0411_5.jpg
Observing the network connections via the netstat tool while running mIRC
Stability and Testing
=====================
As ReactOS continues to grow in stability and maturity, the breadth and
depth of testing necessary also increases, if only because there are
more candidate applications to test. To this end Joachim Henze has with
his usual dedication and perseverance worked to ensure the right balance
was struck for this release in terms of stability and new/improved
features. While it is always tempting to bring forward changes and fixes
in the latest and greatest, one must recall that every such change
brings with it a certain degree of risk. The ability to weigh that risk
with the likely benefits is what makes quality assurance personnel like
Joachim invaluable to any fast moving project.
In light of ReactOS’ expansive improvements, and to help prospective
users better understand the state of the OS and its supported
applications, Joachim has also restructured the test results page to
better encapsulate the relevant information. There one can now see not
only the overall conclusion of the test, but also details such as track
what drove a particular conclusion as well as any workarounds that they
might themselves attempt. A marked step forward from the binary of
works/fails, since a workaround suggests at least a starting point for a
permanent solution to be found.
Third Party Syncs
=================
The current third party sources that ReactOS syncs with have been
brought to the following versions by their respective minders.
* ACPICA version 20181003, by Thomas Faber
* PCI hardware ID database 2018-11-21, by Hermès Bélusca-Maïto
* Wine Staging 3.17, by Amine Khaldi
Statistics
==========
JIRA Issues fixed (this includes both bugs and improvements) - 135
Number of commits - 984
The oldest bug fixed for 0.4.11 - https://jira.reactos.org/browse/CORE-3579
0.4.11-release branch was forked from master on 2018-12-09 after
0.4.11-dev-948-gde7c959
- Press Release: https://reactos.org/project-news/reactos-0411-released
- General Notes: https://reactos.org/wiki/0.4.11
- Tests: https://reactos.org/wiki/Tests_for_0.4.11
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.11
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.11
- Download page: https://reactos.org/download
The ReactOS project is pleased to announce the release of version
0.4.10, the latest of our quarterly cadence of releases. The project has
seen an increasing emphasis on consistency and stability over the past
few months, an emphasis the rapid release schedule helps reinforce to
provide a better end-user experience. Even as new pieces of
functionality are added, all this would be for naught if a user could
not access them reliably.
Booting from BTRFS
==================
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.
Parallel to this effort was more basic work needed to expose the option
to use BTRFS in the ReactOS installer and bootloader. It is all well and
good for ReactOS to have a working driver, but the user ultimately needs
to have a way to put it into use. The combined effort proved fruitful
indeed, and users are invited to try out BTRFS support in 0.4.10. The
newness of the feature will mean there will be the inevitable bug here
and there, but it can only be with the community’s assistance in
reporting them that the project can further improve.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0410_1.png
Frontend Improvements
=====================
When someone uses ReactOS, the interface through which they do so is the
shell. And underpinning the shell’s functionality is the shell32
library, whose improvements are often directly exposed to the end user.
For the past few months Katayama Hirofumi, a longtime contributor to the
project, has fleshed out several new features while making improvements
to other existing ones.
For those of us whom do any significant amount of work on the command
prompt, a wide range of tricks and shortcuts exist to make our lives
easier. One such trick is being able to drag and drop a file or
directory from the file explorer onto the command line in order to get
its full path. And to complement this trick, Katayama-san has also made
improvements to those of us that are steeped in the graphical shell more
than the command prompt. In the past ReactOS offered only extremely
limited means of interacting with things in the shell. Folders in
explorer were rendered only a certain way, you could not change whether
to use a single versus double click to enter them, and interacting with
multiple windowed applications was clunky and more limited than one
might expect. All this and more have been improved, and the following
screenshot sums up that improvement far more succinctly than mere words can.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0410_2.pnghttps://reactos.org/sites/default/files/imagepicker/1249/reactos_0410_3.gif
The overall look and feel of ReactOS has also improved, or rather that
of applications that run upon it. One special class of applications
would be installers, of which the MSI family performs graphical
rendering based on font heights. Users are likely to recall in the past
a certain something just looking off when running MSI installers, just
something slightly askew in how these installers appeared.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0410_4.png
As seemingly small as these features may sound, many of them are
expected by a user and their absence does not go unnoticed. Indeed the
greatest success ReactOS could achieve is to have a user not even have
to think when they navigate the system, everything working the way they
expect. Katayama-san’s work takes us further down that path, the
culmination of a multitude of small steps along the way.
Finally, the project would be remiss to not mention the contributions of
other developers to the shell’s continuing improvement. While Hermès
Bélusca-Maïto’s important backend work remains somewhat inscrutable to
end users, fixes by Denis Malikov and Jared Smudde to deal with file
copying and shortcut creation will likely be more easily appreciated as
another sign that ReactOS works, as expected.
Stability
=========
Stability is generally a hard thing to quantify, since it is often very
subjective. Probably one thing that we can all agree on is that anything
that prevents ReactOS, or applications running on it from crashing is a
plus in the stability column. To that end while improvements to the
memory management stack by Timo Kreuzer and Pierre Schweitzer might
sound opaque and vague, they are nonetheless instrumental to ReactOS’
stability.
Simultaneously, each time a major widely used application achieves full
functionality on ReactOS, also constitutes a victory. A contribution by
Stanislav Motylkov to the C Runtime library used in ReactOS now allows
Git, the version control software used by this very project, to finally
work correctly. A nice follow-up to the self-hosting achievement from
last time around, we think many would agree.
And of course no one is a fan of BSoDs, even if they evoke a slight
sense of nostalgia. Fortunately for ReactOS’ sake, Mark Jansen was able
to nail the cause of one such crash relating to the FreeType font
library. Better that blue screens are consigned to our memories than be
a perennial part of our daily computing experience.
The surest metric of stability is however arguably how much of ReactOS
and the desired collection of applications one wants to run actually
work. For this, there as yet remains no substitute for human testing. To
that end Joachim Henze has invested a tremendous amount of time,
performing what amounts to continuous regression testing even before the
formal process of preparing the release began. The fruit of his labors
sits before you today, and while you may not see the countless number of
fixes, reversions, and tweaks that were selectively filtered to produce
version 0.4.10, rest assured that together they combine to provide a
worthy testament to the effort that is the ReactOS Project. We hope you
enjoy.
Other Improvements
==================
Stanislav Motylkov did some work on correctly retrieving BIOS
information. Now the blank entries in dxdiag are filled with actual
values. The community helped him to gather over 1000 unique BIOS dumps
to help him test the implementation.
https://reactos.org/sites/default/files/imagepicker/1249/reactos_0410_5.png
Third Party Attributions
========================
As always, it would be remiss for the project to not provide
acknowledgement of the third party bits we make use of. For this
release, Amine Khaldi has synchronized the user-mode DLLs to
WINE-Staging version 3.9. Furthermore as mentioned above, ReactOS’
support for BTRFS owes a debt of gratitude to the WinBTRFS project, of
which Pierre has synchronized to the latest version, 1.0.2.
Statistics
==========
JIRA Issues fixed (this includes both bugs and improvements) - 148
Number of commits - 660
The oldest bug fixed for 0.4.10 - https://jira.reactos.org/browse/CORE-1246
0.4.10-release branch was forked from master on 2018-08-23 after
0.4.10-dev-630-gb8e98c4
- Press Release: https://reactos.org/project-news/reactos-0410-released
- General Notes: https://reactos.org/wiki/0.4.10
- Tests: https://reactos.org/wiki/Tests_for_0.4.10
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.10
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.10
- Community video showcasing some 0.4.10 features:
https://youtu.be/4JxfyPoCl8I
- Download page: https://reactos.org/download
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.
Self-Hosting
============
The ability to build ReactOS on ReactOS, known as self-hosting, has
often been touted as a sort of milestone in the OS’ maturity, but the
details are far more nuanced. Compiling any large codebase, whether it
be an operating system or even a web browser, stresses the system in a
myriad of ways, with one of the biggest being memory usage and storage
I/O. Code being compiled needs to be loaded from storage into memory,
and more memory is required to hold all of the compiled objects as they
are linked together. Scheduling is also to a certain extent stressed, as
most modern build systems will attempt to spawn multiple compilation
processes to speed up the build process.
In the past, ReactOS was actually capable of self-hosting, but this
capability came with significant caveats, with the biggest being this
was achieved in a much older version of the ReactOS kernel. Since the
reworking of the kernel into a more NT-compliant design and
implementation, various gaps in functionality that remained to be
completed rendered ReactOS unable to build itself again. After many
years of hard effort, including the most recent batch of filesystem
related changes done by Pierre Schweitzer, ReactOS is once more able to
self-host. And in the spirit of open source, it was the FreeBSD
project’s implementation of qsort that helped Pierre bridge some of the
last pieces needed to achieve this.
https://reactos.org/sites/default/files/imagepicker/1249/image2.jpg
Stability
=========
A major source of system instability came from the complex interplay
between the memory manager, the common cache, the hardware abstraction
layer (HAL), and the FastFAT driver. The biggest culprit in the
instability came from the significant resource leakages caused by the
FastFAT driver, resulting in it eating up the common cache to the point
where attempts to copy large files would result in a crash. To rectify
this problem, Thomas Faber and Pierre worked together to correct the
FastFAT driver’s behavior, adding in write throttling support and
restraining its usage of the cache. While a more conservative usage of
the cache might see the system behave a bit more slowly during IO
operations, it ensures that resources remain available to service for
large IO operations instead of crashing like before.
Another notable improvement on FastFAT is the rewrite of the support for
dirty volumes greatly reducing the chance of file corruptions. Whenever
a dirty volume is been detected during boot “chkdsk” (Check Disk) will
trigger a repair on those volumes. This often can protect the system
from becoming unusable after a crash. The two images below are showing
chkdsk in action:
https://reactos.org/sites/default/files/imagepicker/1249/image4.pnghttps://reactos.org/sites/default/files/imagepicker/1249/image1.png
In addition to the work done during regular development, Joachim Henze
made a significant effort during the release candidate testing to track
down regressions and other bugs that have crept in since the last
release. It cannot be overstated just how much work such manual testing
takes, and Joachim should be applauded for his dedication and
perseverance in ensuring 0.4.9 would be the best release to date.
Shell Improvements & Features
=============================
Several quality of life improvements have come to the shell, the first
of which is a built in zipfldr (Zip Folder) extension by Mark Jansen.
While Windows has long possessed this capability, now ReactOS can also
uncompress zipped files without needing to install third-party tools to
accomplish it. And as the gif below demonstrates, ReactOS’
implementation is indeed very zippy.
https://reactos.org/sites/default/files/imagepicker/1249/image3.gif
And of course with such new extensions it would probably be useful to be
able to manage them, something that Katayama Hirofumi MZ has been
working on, along with plenty of other improvements to the shell.
Another major piece of functionality that might appear simple but is
actually quite complex is the ability to choose whether to move, copy,
or link a file or folder when you drag it with the right mouse button.
This piece was completed by Giannis Adamopoulos, whose prior work has
been so integral in making the current ReactOS shell behave and function
in ways users are long used to from Windows.
https://reactos.org/sites/default/files/imagepicker/1249/image5.gif
Other Improvements
==================
There are of course plenty of other changes in less trodden parts of
ReactOS, with many people providing contributions and improvements.
These range from the functional, like zooming no longer crashing in the
Paint application thanks to Stanislav Motylkov, to more behind the
scenes like Timo Kreuzer’s continued efforts to prepare the codebase to
actually function when building a x64 target (the project owes Timo many
bottles of beer for taking on that one).
Other quality of life improvements include a new mouse properties dialog
in the GUI component of the ReactOS installer by Eric Kohl, while Eric’s
work involving starting and stopping of services, the device manager,
and the sound mixer are more geared towards long term improvement and
functionality. Hermès Bélusca-Maïto has continued his work in what might
be termed the utilitarian applications of ReactOS, such as the clipboard
viewer, the event viewer, the log-off dialog box, and the command prompt
shell. And of course one can never forget RAPPS, the gateway program
used for getting various applications installed on ReactOS. Considering
ReactOS is intended to support many different languages, it is only
appropriate that its unicode support be a priority, something that
Alexander Shaposhnikov has lent his hand to.
Compatibility in Windows is reliant on a ShimEngine that allows the
loading of slightly different versions of libraries and APIs. ReactOS is
much the same, and Mark has added the ability for ReactOS to present
itself as Windows 8.1 with the Version APIs. As a sidenote, the engine
itself proved useful in a rather unconventional manner when it was
demonstrated to help reduce the loading time of the game Globulation 2.
Of course ReactOS is not just about the features in the here and now,
but also about preparations for the future. Thomas and Vadim Galyant
have started merging in their improvements to the USB stack in
preparation for native, official support for the oft requested booting
from such devices. We’re not there yet, but we’re getting closer with
every release.
Since the transition to GitHub, the project has also received many pull
requests from old and new contributors alike. The team offers its
sincere thanks to everyone that has taken an interest in helping improve
the project, and we look forward to meeting even more of you in the future.
Syncing third parties
=====================
ReactOS, being an open source project as well as its ecosystem, uses
several bits of other open source projects. In 0.4.9 release Amine
Khaldi has synced many user mode DLLs to WINE Staging version 3.3.
Statistics
==========
JIRA Issues fixed (this includes both bugs and improvements) - 137+
Number of commits - 922
The oldest bug fixed for 0.4.9 - https://jira.reactos.org/browse/CORE-7744
Pull requests merged - 109
0.4.9-release branch was forked from master on 2018-05-20 after
0.4.9-dev-885-gddd03a8
- Press Release: https://reactos.org/project-news/reactos-049-released
- General Notes: https://reactos.org/wiki/0.4.9
- Tests: https://reactos.org/wiki/Tests_for_0.4.9
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.9
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.9
- Download page: https://reactos.org/download
The ReactOS Project is pleased to announce the release of version 0.4.8
as we continue to work on releasing every three months.
As you may know, our previous 0.4.7 version was the first one developed
in our Git/GitHub repository. 0.4.8 is the nice sequel and a good way to
measure the GitHub impact on the ReactOS project. Since ReactOS reached
GitHub, it has been forked 248 times. A nice amount understanding
ReactOS is not a framework or a library, but a final product. These
forks represent a nice amount of newcomers: translators, designers,
coders and testers. Thanks to all of them, and the ReactOS regular devs,
209 new Pull Requests and 1094 commits have made it through to this
0.4.8 version.
User Experience
===============
ReactOS keeps pushing to bring the best possible user experience.
Therefore the ReactOS User Interface in 0.4.8 has received extra care.
Taskbar settings and dialogs have been rewritten by Giannis so now the
auto-hide, toggle lock and always on top options work. These settings
were visible before but as you might have noticed they've never been
working at all. Meanwhile, David fixed several bugs and glitches of the
notification area. Thanks to him, Giannis and Hermès, now balloon
notifications are properly supported, queued and shown while a range of
tooltip problems have been solved.
Talking about the notification tray, due to Ged’s work, icons of killed
and finished process are now automatically removed, even when apps
crash. This is something that Windows doesn't even provide with Win10,
and many Windows users may have noticed.
Selecting multiple desktop icons was impossible prior 0.4.8. Enjoy it
now thanks to Giannis’ work. His amazing work doesn't stop there, bugs
related to property dialogs have been squashed, like the one preventing
drive and folders capacity from being shown. Deletion and renaming of
folders and files should work reliably after Pierre fixed a major leak.
Additional new features included in this release should also boost the
user experience, such as the shell autocompletion brought to you by
Mark, a nice bonus on top of the improved relative path handling done by
Stanislav. Also, now Network drives can be dismounted directly from
explorer due to Pierre’s work, and Eject and Disconnect menu items are
now implemented thanks to Katayama.
From the visual point of view, several glitches related to the redrawing
of static text elements, scrollbars, button captions, fonts and text
background colors were fixed in this version. As a bonus, now ReactOS
also detects more themes and is much faster when rendering big amounts
of text.
Regarding internationalization, now when changing the language in
ReactOS, the font substitution settings are properly overwritten thanks
to Katayama, and time is now correctly set due to Doug’s work.
Combine all these features with the Kernel and Filesystem fixes that
0.4.8 is bringing and you'll understand why the ReactOS team is so
excited regarding this new release.
NT6+ Software support and Games
===============================
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.
A new tool, a DrWatson32 alike, has been created by Mark and added to
0.4.8, so now any application crashing will create a log file on the
desktop. This crash dump details the list of modules and threads loaded,
stack traces, hexdumps, and register state. Therefore, this new tool
should help us understand what went wrong when the software crashed.
Adding these reports, plus the debug logs, will provide ReactOS
developers a good amount of information to understand what went wrong
and how to create the needed fixes.
In 0.4.7, several games were having trouble initializing properly when
using native graphics drivers. Jérome has not just fixed this issue but
also a palette regression in DirectX which was garbling colors when
playing games.
Kernel Stability and new features
=================================
Kernel stability in this version comes from the Memory Manager, File
system and Cache Manager fixes. The latest Coverity scan, which tracks
old and detects new issues, shows a great evolution since 0.4.7.
Several bugs have been squashed in the ReactOS CC and Freeloader,
allowing it to boot in 96MB hardware (smaller RAM need than our 0.4.7
release). Talking about hardware, Pierre has fixed several bugs when
writing the bootloader to disk and Serge has updated ACPI with extended
features, that should bring some extra compatibility.
In 0.4.7 the initial Cache Manager bugfixing was a great step forward in
terms of stability. From 0.4.7 to 0.4.8, Cache Manager has gone under a
massive review lead by Thomas and Pierre. This work revealed several
bugs thanks to the tests specifically created to ensure this review
doesn't introduce new regressions. Among others, a 17-year-old bug which
was introducing corruption in the file system and which is now finally
fixed.
However, the Cache Manager work hasn't just been focused on bug-hunting,
but also adding new and needed features. Now the ReactOS 0.4.8 Common
Cache supports Lazy Writing and Read Ahead, which are major steps toward
a performant operating system by reducing file access latencies.
The other major component, the ReactOS Memory Manager, has also received
many fixes thanks to Timo, some revealed by Coverity and others due his
work on the x64 ReactOS port which enforces a pointer-size agnostic
Memory Manager.
Hardware support, NTFS and other drivers
========================================
One of the main objectives of each new ReactOS version is to improve the
compatibility with hardware. In case you find any issues running ReactOS
in your real hardware, please don't hesitate to file a bug report at the
ReactOS bugtracker.
Thanks to these logs, we've discovered that old hardware and some
virtual machines were failing to boot when an empty floppy drive was
detected. This bug has now been fixed and these hardware rigs are now
enjoying ReactOS. Also these logs helped to detect several issues in PNP
IRP handling which has been fixed by Thomas for this new version.
Aside from fixing bugs in drivers, ReactOS includes some new ones in
this version, such as a virtual floppy driver and a virtual CD-ROM
driver. Also the CDFS driver has been replaced with the MSPL’ed original
one after a full review. This review, as a curiosity, has revealed at
least one bug, which has been sent upstream to Microsoft GitHub with its
proper fix.
The NTFS driver coded by Trevor, during GSOC 2016/2017, has been finally
added. The NTFS driver has been an ongoing effort started by Hervé and
Pierre, and which needed 2 different Google Summer Of Code to reach its
current state. Under the mentoring of Pierre, Trevor Thomson has been
coding and documenting his titanic NTFS coding efforts. If you're
interested in file systems or how NTFS works and the tools needed to
understand its behavior, you shouldn't miss the blog posts of Trevor.
Thanks to these efforts ReactOS is able to read NTFS partitions in a
more robust way, covering NTFS specific cases, and since 0.4.8, ReactOS
introduces initial NTFS writing support. The NTFS writing feature is
disabled but can be enabled through registry to test its experimental
support.
Third Parties
=============
ReactOS, as part of the open source ecosystem, also uses bits of several
projects. 0.4.8 has been synced with Wine 3.0, Freetype 2.9 and Ext2
0.69, among other projects.
General notes, tests, and changelog for the release can be found at
their respective links. A less technical community changelog for ReactOS
0.4.8 is also available.
ISO images are ready on the ReactOS Download page.
Some statistics
===============
The oldest bug reported in Jira and fixed was CORE-5127 (advapi32:
OpenTraceA (Sysinternals DiskMon2.01 dies with unhandled exception upon
startup).
Since 0.4.7, 340 bugs have been resolved: 211 marked as fixed, 37 as
duplicates, 42 as won't fix, 21 as incomplete, 29 as cannot reproduce.
320 bugs fixed were directly related with the operating system, 10 from
ReactOS online services, 5 from ReactOS test suite and 5 from ReactOS
Build Environment.
Pull Requests committed: 209
Forks: 248
- Press Release: https://reactos.org/project-news/reactos-048-released
- General Notes: https://reactos.org/wiki/0.4.8
- Tests: https://reactos.org/wiki/Tests_for_0.4.8
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.8
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.8
- Download page: https://reactos.org/download
The ReactOS Project is pleased to announce the release of version 0.4.7
as we continue to work on releasing every three months.
We’re especially pleased to present this release as the very first one
that’s been developed in our new Git/GitHub repository. Moving from
Subversion to GitHub has proven to be an invaluable way to reach new
testers, users and improve the overall awareness of the ReactOS project.
To highlight the impact we’ve had since we moved to GitHub two months
ago, ReactOS now leads the Win32Api and OsDev categories in Github,
overtaking many amazing and well established projects.
User Experience
===============
0.4.5 introduced visual styles support, 0.4.6 matured it, and now 0.4.7
has further improved support for styles created for Windows XP. If you
haven’t already, just follow us on Twitter so you can see first hand the
many skins being applied in ReactOS. Giannis Adamopoulos solved many
issues in which ReactOS was managing transparency and messaging. His
work on msstyles support paid off, as it’s reduced visual glitches in
many applications.
Support for Shell extension for files has been included by Giannis in
this new version, and several other shell extension improvements have
been worked on by Eric Kohl. The quick launch shell extension, developed
by Shriraj Sawant under Google Summer of Code 2017, can also be enabled
manually within this release for an early peek into this feature.
James Tabor has put in a great deal of effort into getting the ReactOS
painting process as close to Windows as possible. Furthermore, Katayama
Hirofumi MZ has fixed the anti-aliasing text when a button was grayed
out (and which was impossible to read before this fix).
Another major achievement brought to you by Giannis has been to solve
the Clipboard and Recycle Bin bugs. Now, in 0.4.7, ReactOS won’t crash
due an invalid/empty clipboard as it did previously, copy/pasting
multiple files and pasting folders in the background should work well
and now follows the Windows specs more closely.
In 0.4.7, ReactOS now correctly manages file deletions when dragging
them to the Recycle Bin thanks to a patch from Serge Gautherie. Add to
that numerous fixes regarding Drag and Drop and the whole user
experience now feels much more polished for end users.
Thanks to Kamil, several glitches that have been evident in the
free/available pie chart for file systems are now gone, and he has fixed
several other user experience issues such as Notepad showing multiple
instances of find/replace windows, or stopping Bitvise SSH Server
Control Panel from crashing due to a bug in NtGdiGetPixel().
Hardware support
================
ReactOS 0.4.7 allows you to reliably install the ISO from any drive
without needing a CD, as a result of the work Colin Finck has done on
the CDFS/ISO-9660 filesystem driver. We’re very thankful to our
community about this point in particular, as the actual development work
above happened at the ReactOS Hackfest, which was only possible thanks
to your ongoing support and donations!
Thomas Faber has addressed an issue in the HDAUDBUS driver that
prevented VMware from loading ReactOS when a HD sound card is present.
He has also addressed an issue in mbedtls (the SSL support library that
we use in ReactOS) that could affect old hardware that doesn't support
SSE2 instructions. Previous crashes on older hardware are now much less
likely when interacting with SSL connections.
In addition to the above, ReactOS 0.4.7 is now properly checking the
end-of-memory-map entries and aligning physical addresses thanks to some
work done by Serge. That contributed further to better hardware
compatibility.
If you have encountered problems when trying to run previous version of
ReactOS on your PC, please consider retrying with 0.4.7 and sending us
bug reports so we can work on them.
New ReactOS Application Manager
===============================
As part of the Google Summer of Code program, the ReactOS Application
Manager was improved in many areas by Alexander Shaposhnikov, including
many new features and fixes. Now you can install multiples pieces of
software from Rapps in bulk and downloads are now done in the background
ensuring you can continue to use the app whilst installing. Install
percentages are now shown, force update finally works, the Installed
category is now back, and the details sections show enhanced information
and various other fixes and features.
More info about this new version in Rapps blog posts.
Applications/Games Compatibility
================================
For those who enjoy retro-gaming, Aleksandar Andrejević has fixed linear
4-bpp mode, meaning even more old and addictive games are now playable
in ReactOS, and your productivity has another a good reason to fall…
Mark Jansen has fixed a critical issue regarding services. ReactOS 0.4.7
now supports creating an interactive service under the LocalSystem
account. Now, among other software, VMWare Horizon setup works in
ReactOS. Mark is also working on Application Compatibility support
(shims) which is still an ongoing project.
Thanks to Eric, the User/group/share management modules (netapi.dll,
netapi32.dll and samsrv) have been greatly developed in the 0.4.7
release, getting them even further in terms of compatibility.
Kernel and Filesystems
======================
ReactOS is now able to handle Ext2, Ext3, Ext4, BtrFS, ReiserFS, FFS and
NFS partitions. We’re proud to say that ReactOS natively supports more
File Systems than all Windows versions combined!
Continuing on filesystems, Pierre Schweitzer has implemented the fsutil
tool, which arrived in Windows 2003, and is now available through
ReactOS as open source. Furthermore, the ReactOS fsutil tool also
supports FAT file systems whereas its Windows counterpart does not, so
this is another instance of ReactOS improving something over what
Microsoft originally offers.
Pierre’s work on FastFat, fixing reference counting overflows and file
attributes settings, correcting the opening counts, implementing
statistics counting and squeezing bugs in the Common Cache, is all part
of this enhanced stability in 0.4.7. It got also improved thanks to the
upgrades of the various file systems drivers supported by ReactOS (Ext2
and BtrFS) and the fixes they required to avoid regressions.
New apis have been implemented in Kernel32.dll, which has seen several
rewrites in order to fix bugs detected by our test suite, but also to
bring in support for Windows 2003 features such as reparse points and
mount manager backed volumes.
Timo Kreuzer has also fixed some Memory Manager bugs with the goal of
more stability. If 0.4.6 surprised you with its stability thanks to the
work being done in this area, then you will find 0.4.7 to be another
step further in that regard.
Eric Kohl has added initial STORPORT/STORAHCI implementations that can
be enabled manually for now via registry as an alternative to the
default UniATA driver, in an effort to get closer to native behavior and
maximize compatibility.
Third Party Modules
===================
ReactOS depends on 3rd party open source projects so in 0.4.7 we’ve
updated them to their latest version. Libpng, mpg123, mbedtls,
btrfs,along with the many modules that Wine shares with us, which are
individually synched by Amine Khaldi, that ReactOS can use in the user
mode. We express our gratitude to every single open source project we
use, and send regards to all teams behind them. We also keep
contributing back to them, in the spirit of open source, whenever we
can. For instance, David contributed a 64bit related fix to the MKISOFS
project, and several ReactOS developers contribute patches back to the
Wine project and also Wine Staging, in addition to performing patch
reviews in the appropriate mailing list.
Quality Assurance
=================
ReactOS believes heavily in QA so many new tests have been integrated
and implemented covering critical areas as Memory Manager (IO MDL,
MmBuildMdlForNonPagedPool, etc..) or Common Cache. The ReactOS testing
infrastructure now supports testing File System mini-filters which is an
important step forward to ensure future development in the upcoming
filter manager. This new version of ReactOS has gone through several
Coverity scans to detect and fix critical bugs detected. In addition to
automated tests, ReactOS enjoyed impressive testing coverage thanks to
the manual tests for the Release Candidates by Joachim Henze.
General notes, tests, and changelog for the release can be found at
their respective links. A less technical community changelog for ReactOS
0.4.7 is also available.
ISO images are ready in the ReactOS Download page.
Some statistics
===============
The oldest bug fixed was CORE-2366. "Rapps: modify link does not work".
Reported 10 years ago.
During these 3 months, 453 bugs have been resolved: 263 marked as fixed,
46 as duplicates, 56 as won't fix, 41 as incomplete, 47 as can not
reproduce.
246 bugs fixed were directly related with the operating system, 12 from
ReactOS online services, 1 from ReactOS test suite, 3 from ReactOS
Building Environment and 1 from ReactOS RosApps.
- Press Release: https://reactos.org/project-news/reactos-047-released
- Press Kit:
https://sourceforge.net/projects/reactos/files/ReactOS/0.4.7/ReactOS-0.4.7-…
- General Notes: https://reactos.org/wiki/0.4.7
- Tests: https://reactos.org/wiki/Tests_for_0.4.7
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.7
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.7
- Download page: https://reactos.org/download
The ReactOS Project is pleased to release version 0.4.6 as a
continuation of its three month cadence.
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.
From the Compatibility point of view, 0.4.6 introduces, thanks to Mark
Jansen, a shim engine as part of the new application compatibility
framework. This shim engine is disabled by default in 0.4.6 but can be
enabled through the ReactOS registry. This release also includes a
special NTDLL library that exports some of the NTDLL Vista+ functions
needed by newer software pieces.
0.4.5 introduced msstyle themes in ReactOS, allowing you to switch to
something different, more modern or nostalgic if you don't like the
Classical skin. In 0.4.6, and thanks again to your donations, Giannis
has fixed lots of bugs in Shell32, Comctrl32 and Browseui, so now
msstyle themes are fully working. In 0.4.6 efforts were made to improve
the user experience. "Lock Taskbar", "Hide inactive icons", and "Group
similar taskbar buttons" settings are properly remembered now each time
you reboot ReactOS. Explorer’s taskbar is finally resizable. Tiled,
centered and stretched wallpapers are correctly placed now. Explorer’s
addressbar is much improved, and now works nicely with symlinks. The
clipboard has gone through a massive fixup, making it more usable and
reliable.
0.4.6 is much more stable now as a result of several memory manager,
ntoskrnl and filesystem fixes. To name a few, mapping a view of the
physical memory sections works now, several MM and NTOS leakages were
plumbed, and NTOS:IO critical bugs were fixed. Several buffer overflows
and overruns, logic issues and dead code detected by Coverity and other
tools have been fixed, leading to less corruptions and leaks.
In order to track ReactOS compatibility with Windows behavior, 1,088,893
unit test cases have been added since 0.4.5. This new release has been
tested through 14,238,159 unit test cases, failing just 18,419 (a 0,129%
ratio failure). Still, ReactOS is marked as Alpha for the moment.
Eric Kohl has implemented NETAPI, the network transport and security
library. Peter Hater has reworked WinSock2. Several bugs affecting
rendering performance, NtGDI, brushes, and shape creation are now fixed
thanks to James Tabor, Mark Jansen, and Thomas Faber. Amine Khaldi has
synced Wine, and tons of other third party modules needed for 0.4.6.
Font substitution and font breaking issues have been fixed by Katayama
Hirofumi MZ and Giannis. ReactOS now supports the Esperanto language
thanks to Mike Swanson and lot of contributors have contributed with
translations and patches.
- Press Release: https://reactos.org/project-news/reactos-046-released
- General Notes: https://reactos.org/wiki/0.4.6
- Tests: https://reactos.org/wiki/Tests_for_0.4.6
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.6
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.6
- Download page: https://reactos.org/download
The ReactOS Project is pleased to release version 0.4.5 as a
continuation of its three month cadence. Beyond the usual range of bug
fixes and syncs with external dependencies, a fair amount of effort has
gone into the graphical subsystem. 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.
On top of this, there have been several major fixes in the kernel and
drivers that should lead to stability improvements on real hardware and
on long-running machines.
- Press Release: https://reactos.org/project-news/reactos-045-released
- General Notes: https://reactos.org/wiki/0.4.5
- Tests: https://reactos.org/wiki/Tests_for_0.4.5
- Changelog: https://reactos.org/wiki/ChangeLog-0.4.5
- Community Changelog: https://reactos.org/wiki/Community_Changelog-0.4.5
- Download page: https://reactos.org/download
The ReactOS Project is pleased to release version 0.3.17.
A major new feature for this release is the inclusion of NTVDM, which
provides support for a wide range of 16bit applications, a long
requested feature by the community. NTVDM is still undergoing work but
we felt that it was ready enough to provide a sneak peak to the wider
community.
In addition, the leadup to the 0.3.17 release saw a very impressive
round of testing by the community. Several regressions and bugs
discovered in the release candidates were promptly fixed and
incorporated into the final release.
ReactOS is quickly approaching a stage where what the releases will
offer is polish compared to previous releases. That will be an important
milestone, as it is then that we can begin recommending to people that
they try using ReactOS for day-to-day computing.
We hope you look forward to it as much as we do.
The detailed 0.3.17 changelog is also available:
http://www.reactos.org/wiki/ChangeLog-0.3.17
Main news link: http://reactos.org/node/911
Download link: https://www.reactos.org/download