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 best.
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.
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.
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.
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 everything working.