ReactOS is an effort to re-create the WindowsNT platform, in an open source sense (GPL). The team works towards source compatibility with NT’s applications and drivers by re-creating the Microsoft APIs. More developers are always welcomed in the project, but there is already a number of them working for the last 3 years, splitted into several teams. Jason Filby, head developer of ReactOS, answers to a series of questions regarding the project.1. What is the difference, technically-speaking, between ReactOS and PetrOS? Both OSes try to use the WinNT4 OS model and drivers.
Jason Filby: On the PetrOS home page it says that PetrOS is going to be compatible
with MS-DOS and Windows 95 (FAQ section). So is PetrOS really looking
at NT driver and application compatibility? It looks as though they
are more or less supporting a Win32 API level of compatiblity at
Aside from this, an important difference between the two projects is
that PetrOS is commercial software while ReactOS is Open Source under
the GNU General Public License.
2. Why don’t you try to be compatible with XP or Win2k, which are younger OSes than NT4 and will support newer hardware?
Jason Filby: Windows XP and Win2k are systems that have been built on NT 4 —
they’re upgrades. This means that most of what we’ve done is
compatible with the newer OSs. There are no big changes to the APIs
from what we’ve seen, mostly just additions. When we’re coding, we’re
looking at what the new OSs have that we can add. Officially, we say
we’re going for NT 4 compatibility because there’s much more
information out there compared to the newer OSs.
3. What is the status of ReactOS today? Is there a GUI for the OS already being developed and how is the driver support progressing?
Jason Filby: At the moment we have no GUI for ReactOS. We are still busy
constructing the GDI which will provide APIs to support a GUI. The
GDI has some good basic functionality at the moment, but there’s
still a lot to be done.
Networking support is also something that’s seen as important, but
we’re still far from having adequate support in this area.
Driver processing is looking good. We can’t load NT drivers just yet,
but we are nearing this point. The registry has come a long way, but
that also needs a lot of work.
4. When trying to mimic or be compatible with another OS, in order to be compatible in source level (and even more in binary level) you may have to implement even the bugs of that OS. Does ReactOS implement the bugs of NT4 too, or are you trying to find workarounds for the problems?
Jason Filby: We haven’t found this to be a problem yet. Still, it’s bound to
happen and we’ve discussed what we’ll do: provide files that are
compatible even if they’re buggy and files that do what they should
how they should. Then the users can choose what they want.
5. What are the immediate plans for the ReactOS development teams? What are the teams are working on at the moment?
Jason Filby: Right now documentation is a big issue, including tutorials and
references. More on the development side, we’re trying to iron out
bugs and make what we have relatively stable and complete. This
includes major work on the kernel and system libraries. The GDI and
networking do receive attention, but not at the same priority. We do
plan to step up work on the GDI in the immediate future, however.
6. OpenBeOS is a new community driven OS effort to try to be source, and if possible binary compatible, with the abandoned by Be, Inc., BeOS. What would you advise these developers, as their effort is very similar to ReactOS one as you already have 5 years of experience of building an OS based on another OS?
Jason Filby: They should minimize discussion on design. If you’re trying to be
compatible with another OS with regards to architecture, this can
remove a lot of this discussion. Even then, they should always
remember that discussion and coding must be balanced.
Too many OS projects fail because they’re too busy:
– discussing design (this IS necessary, but make sure discussions get
resolved and don’t drag on forever)
– going off-topic by trying to reinvent the wheel — revolutionary
GUI, revolutionary filesystem… (cool projects are fun, but if your
OS doesn’t even boot.. why?)
– setting up websites and teams, repeat every few months (this
happens a lot in projects where everyone is afraid to write code)
In the end they have nothing because nobody ever got round to coding
anything. Without code people will eventually get disillusioned and
leave. Don’t make this mistake!
I also recommend that they look at what the most common applications
need and focus on that. Don’t spend months trying to implement APIs
that are hardly used.
7. What are the biggest obstacles and technical problems you encounter on ReactOS?
Jason Filby: One of the biggest problems right now is the process of getting new
developers up to speed. That’s why we’re looking at putting much more
effort into the documentation.
Another huge problem is time. Seeing as we’re all volunteers working
on this project, sometimes development seems really quiet while other
times its a hive of activity. People have other commitments and
things going on in their lives. This is a point that Peter Tattam
made to me about commercial software, that you get to spend the bulk
of your time on the project. But if we did that, how would we be
different from Microsoft?
Technically, it can be really hard to try and keep compatibility
going with APIs that aren’t very well documented. It can also be very
difficult to understand some of the more complex APIs.
8. Which GUI Toolkit are you using for ReactOS? Something written from scratch, or something like QT or Qube?
Jason Filby: There has been a lot of discussion on the list about this recently.
We’re leaning towards writing something from scratch, though. This is
because a lot of the shells out there for Windows take advantage of
some APIs that can actually be considered part of the GUI…. but you
know Windows, the lines are always blurred between the window
manager, the shell, the browser… I could go on.
9. Does ReactOS support SMP?
Jason Filby: Yes, ReactOS does support SMP, but its very basic at this point.
10. How is the performance of ReactOS when compared to WinNT4?
Jason Filby: At this stage its very difficult to say. We haven’t tried to do any
tests because competing with NT through performance is a very low
priority at the moment. Right now we’re just focusing on getting