We have just added our interview with the developers of ReactOS to this very article where we’ll tackle some serious questions about OS development, addressing the problems that come with creating an operating system, and perhaps a bit about the developers and project coordinators themselves.
A bit about ReactOS – Built open source and based on a Windows NT architecture – ReactOS creatively uses Wine based software on it’s own custom kernel to approximate a Windows software friendly environment. Much as Wine on Linux allows the running of Windows based applications – Wine in ReactOS helps reach goals that include running Windows software in more updated and secure environments without being Linux based.
ReactOS naturally looks and feels a lot like Windows NT – but runs many updated programs and applications that simply won’t work correctly on older Windows software – ReactOS acts as a solution for users and businesses that rely on software that crosses several eras of software use – and makes a reliable use of compliance standards.
There are many alternative operating systems out there that aspire, and to some degree succeed in doing, what ReactOS has already done. “Create a solution for a very real problem that faces many businesses.”
- Haiku – Which makes continues the legacy of BeOS
- Blue Lion – Which continues the IBM OS/2 platform
- Syllable – Continuing the Amiga platform
- Sky OS – Which is an X86 OS that has ceased development
- Menuet – A micro OS written entirely in machine language
- FreeDos – A continuation of the now open sourced Dos
In talking with the developer recently I learned that ReactOS is almost entirely written in C, an exception being made for the explorer functions that are generally in C++. He was also good enough to mention that their development environment is ROSBE but that their kernel can be compiled in Visual Studios at need using PDB files.
Their newest release will come very soon, and they have added support for more of the modern apps than ever before including:
Soon they may be adding Google Chrome, they say possibly by the end of the year along with Vivaldi – which puts them on par and in the running for a daily use candidate. This would be particularly important in the life cycle of an operating system, as it is generally when the floods of new users become either very helpful or very critical. Fortunately ReactOS is already a very useful operating system and it’s popularity is well deserved.
Questions and Answers With ReactOS
Q1: Do you wonder where this project will be in 2 years, or do you have the future of ReactOS’s development planned already?
ReactOS: Ever since we started the ReactOS Community Edition campaign, and even though it was a partial success as we didn’t reach our minimum funding, we set it as our main goal nonetheless, and we have been working towards it till this day. Thanks to our community’s donations we are constantly working on hiring skillful developers: we already managed to hire some, with excellent results, and we are planning on continuing to do so, in order to fulfill the objectives.
While we are focusing in our current target, software companies are, slowly but steadily, testing their products on ReactOS, reporting bugs, and sometimes even fixes, to have their software running smoothly on it. For example Relex,Inc. even benchmarked its DBMS Linter BASTION in ReactOS showing how it performs 10-15% faster than Windows.
So during the next 2 years, we hope to have long achieved our ReactOS Community Edition goal, and thanks to our “Compatibility-On-Demand” programs we expect to enhance the kinds of cooperations with software vendors that we mentioned above, with the goal of reaching together our Beta stage.
Q2: What are the hardest software obstacles to overcome in developing ReactOS?
ReactOS: Throughout the history of the project, the lack of NT architecture documentation was probably the main obstacle. The situation improved recently after Microsoft started documenting Windows APIs on MSDN, but still, to develop an operating system compatible with another, you would need detailed info on its internals, not just APIs in a general sense. This situation forced us to create tons of unit tests and work and work again on the code as soon as we detected differences of behavior between our implementation and the native (Windows) one.
On the bright side, this effort has resulted in us collecting more than 14.000.000 unit tests, allowing us to track regressions and keep going forward. We were also able, as a result, to release several papers documenting Windows areas, the most recent example being the printing subsystem thesis.
Q3: Which other operating systems do you use regularly?
ReactOS: From the targeting point of view we regularly use Windows 2003 SP2 installed, either by individual developers or through the project provided VM instance. This virtual machine is mainly used to develop new test cases or to test ReactOS binaries through replacing the Windows ones.
From the development and testing point of view, ReactOS Build Environment is multiplatform, so you can find testers and developers compiling ReactOS under GNU/Linux, Windows, or MacOS hosts.
The last part is of course ReactOS itself. ReactOS is usually tested in virtual machines because it’s easier to debug and to roll back to previous snapshots, however we try also to test it on real hardware when possible, both desktops and laptops.
Q4: Have any of the programming challenges ever made you think ReactOS would be halted or stopped during development?
ReactOS: Without challenges there is no fun! We have found several bugs and regressions that actually halted our release cycle over the time. The worst type are the “heisenbugs“: Bugs that tend to appear and disappear, and are often hidden when being debugged/inspected. They can be caused by corruptions, race conditions and so on.
We adopted recently a faster release cycle, and it has been going for perfect 3 months between each release, without delays and stops caused by these kind of bugs, which is in itself a good sign of our codebase maturity.
Q5: Who are your biggest supporters right now?
ReactOS: Our Community is our main and most amazing supporter. Thanks to the donations we receive, we were able to speed up the progress whenever we hired a developer, and the community also help us by testing-on-demand, reporting bugs, sending patches and translations…etc. We’re really, really proud of our community and we’re extremely happy to see it grow day after day!
Q6: What pieces of software do you rely on most during serious development phases?
ReactOS: In general we try to pick the best tools for the job. Tons of nice pieces enter to play to help us progress. From compiler tools as GCC, CMake, MinGW-W64, Ninja, Visual Studio… to debugging tools as WinDbg, Kdbg, Gdb… to API monitors, driver monitors… to virtual machines such as Vmware, VBox, Qemu, Bochs, Windows Hypervisor… to static and dynamic analysis tools like Coverity, cppcheck, clang static analyzer, GCC stack protector, MSVC runtime checks, Special pool… These are just a few of the software pieces we use during the ReactOS development.
Q7: Do you see yourself branching into different versions of ReactOS for different consumer types?
ReactOS: At the moment we don’t see ourselves involved directly. Our main focus is ReactOS: The minimum operating system components needed to run Windows software. That’s the reason we don’t bundle anything preinstalled, and instead of offer a ReactOS Apps Manager that users can use to download their favorite software.
With that said, and due to the nature of open source, this still keeps the doors open to new communities, creating solutions targeting different consumer types, based on ReactOS. We encourage everyone to fork our project and build up on it and improve it, and we accept patches and pull requests!
Q8: Who would you like to see get more involved with this project?
ReactOS: We would really like to see universities get involved in ReactOS, as it is an amazing opportunity for students to learn about the NT architecture, operating system development and open source in general. It would be awesome to have more cooperation with universities like the experience we had with the Moscow State Technical University that allowed the students to boost their skills and helped them contribute fixes and new features.
The merits of alternative operating systems like ReactOS are unquestionable, being able to continue the life of software for businesses and home users/enthusiasts is a noble endeavor and is just one more way open source software creates new solutions where commercial software sometimes creates barriers and obstacles.
Thank you to the ReactOS team for taking the time to answer us! Everyone who wishes to see what it’s like to be among them can start by following them on twitter for the latest updates!