The ReactOS team has just put out its latest newsletter, and it contains some interesting information on the progress being made. However, it also provides some definitive insight into what, exactly, the project is trying to recreate – a topic of some confusion.
People were wondering what Windows version the ReactOS team was aiming its compatibility arrows at. Some claimed Windows 2000, others were sure it was Windows XP. As it turns out, the situation is a little more complicated than that, as the team looks separately at the kernel and Win32.
The kernel target for ReactOS is the kernel used in Windows Server 2003. This target doesn’t change very often, allowing the team to get the kernel working and stable. The Win32 target, on the other hand, changes more often. The team states that the Win32 target for the ReactOS project is always the one from the latest Windows release, which currently means they’re aiming for Windows Vista. In their own words:
The Windows version that ReactOS officially targets has been a point of confusion for some time now. There are actually two specified targets, one involving the NT kernel and the other for the Win32 subsystem. Officially the ReactOS kernel still targets the Server 2003 kernel, also known as NT 5.2. This target changes fairly slowly. On the other hand the Win32 subsystem target is always at the latest Windows version released, which would be Windows Vista as of the writing. This is why there are often commits stating updates or implementations that are Vista based. When Windows 7 is released the Win32 target will shift again, but this does not mean a decision will be made to shift the kernel target as well.
This should make things a little clearer for everyone.
i agree with them that the 2003 kernel is the best choice for a solid base it seems odd to go after a moving target of vista, then 7 and so fourth. reproduce windsows server 2003 r2 and you are gold. thats one solid OS, even the linux evangelists have to give some credit where credit is due.
if i could laugh harder…
Lets target server 2003… because we got win98 soo 100% right.. and nt4… and win2k.. what a joke.
what makes you think they will get anything CLOSE to resembling 2k3r2.. shesh.
As much as I hate to agree with you, I think you’re right. ReactOS has always been pre pre pre pre pre alpha software in spite of the impressive strides it has made. When it began, it aimed for Windows 98 compatibility, and then eventually NT 4.x/5.x compatibility, and now Vista and Server 2003? Next year we’ll be hearing how they’re aiming for Windows 7 (and it’s companion server) compatibility. I’d urge the ReactOS folks to produce a really good, free Windows 2000 clone (with modern theming and hardware support of course.) Since that was the best OS to emerge from Redmond IMHO, it’s a good place to start.
Personally, I think only the kernel target matters in these debates…
Well, we all know now that Win98 would have been a pretty sorry kernel to support… Moving to NT4 was the only logical choice once that realization was met.
As pointed out, Server 2003 kernel is just an evolution of the NT5.x kernel (that Windows 2000 was also based on) – so they’re really not all that far from the original goal…
What makes Windows XP’s kernel worse than 2000? Please enlighten, because from where I sit, XP is a much better-looking target. It had (and still has) much better driver support than any other version of Windows, and thus I believe it would have been the best place to settle when targetting a specific kernel.
Keep in mind that the userland-side is an entirely different topic here – and I would agree that the Windows 2000 GUI was the last version I preferred using. But let’s not mince this discussion by extending the very confusion that this article is about by talking about the UI/userland vs. the kernel.
I agree with you. XP is a rock solid OS. But, I was speaking of Window 2000’s userland / user experience (which I prefer even to this day over XP’s, when I’m forced to use Windows – I’m a Linux guy.)
Just how big a difference is there between 2003 and say XP in terms of new functionality that needs to be supported? I think you guys are overdramatising this. It’s not as if they chose to go for Vista as a target which has a whole new driver model.
I tried Reactos a couple of weeks ago and I was surprised to see so many programs working fine, it’s not stable yet that’s for sure (had several crashes) and there’s some gui drawing errors here and there but overall I think it’s shaping up nicely.
They’d need an order of magnitude more developers, and at least that much more funding, in order to have a hope of closing a Windows OS before its host designer’s LTS expired…
Seeing as the ReactOS foundation is a public non-profit, it’s possible (not easy) to find their reports and look at the numbers. They’re… not pretty.
ReactOS *never* targeted Windows 98. ROS was always about NT. There were other projects that came before ROS. They targeted Win9x. There were so many projects,sometimes different projects even used the same names. I think I even still have the source code of OpenWindows (not the UNIX DE with the same name) on some old CD-R. Other projects that were once started but never went anywhere were called FreeWin and Freedows.
I beleive you’re misinformed. The project now known as ReactOS was started as a Win95 clone… Just changing the name of a product does not make it a different project.
ReactOS was *always* about NT. As I wrote, there were other, older projects. The Win95 clone (Win95 is not Win98, btw) was another project. FreeWin95 was never renamed to ReactOS. Some FreeWin95 members started a new project called IIRC Open Windows (AFAIK overall three distinct Win clone projects had that name) that is now known as ReactOS, but over time ReactOS also “recruited” developers from the other Win clone projects. However kernel code from those Win9x clone projects never made it into ReactOS and IIRC Win32 API code did neither, because that one is based on WINE.
If that’s the case, then someone seriously needs to correct the info on the ReactOS website (and wikipedia):
http://www.reactos.org/en/about_history.html
I am one of the developers that picked up the remains of the windows 95 clone project. There was no code at the time and we had a choice about what to do with it. The decision was made to target NT and at that point the project name needed to change along with that decision. A lot of other things have changed since that time as well.
Fair is fair. Let’s HOPE they can achieve their goals. It won’t be easy though…
One word about xp/2003 … bad threading.
No condition variables implemented until Vista.
As the heading suggests. Shouldn’t that be goal.
How close is it for us users to use the OS.
It is really a great thing you ReactOS guys are doing, but I always feel as if it will never be ready to be made as a distro.
I hope for them that they can achieve this feat..
But imho, they should start with a comprehensive development manual, also the code documentation can be better.
Thats my $0.02
i like following reactos development.
i’ve even been able to install it outside a vm on a few occasions. it’s been stuck for a while in the pre alpha stage the past few releases but is moving forward, albeit slowly at times.
coupled with WINE and say virtualbox OSE, i’d really like to see the day where i can push linux without having to explain what people will lose in a switch.
while some of us have adjusted to a no windows world it can only help non windows platforms and free software ideals gain ground.
It’ll be interesting to see how close they got to implementing Vista when they shift target to 7.
I think the ReactOS developers should try to make ReactOS compatible with Windows 2000 as much as possible and once a satisfactory level has been reached, they take the project at their own direction — meaning, ReactOS only apps and not Windows. While they are advancing their kernel with their own custom apps, they would also continue to improve Windows 2000 support. Pretty much like OS/2. It has a 100% support for Win 3.1 but yet they have their own OS/2 only apps.
Cloning a broken and flawed system in design, what a waste of time.
I definitely prefer the wine approach here.
Although I’m not a big fan of Qt, it’s release as LGPL means that any company with any halfway decent amount of sense will start to use it for coding apps. We’ll hopefully start seeing fewer apps that are tied to just one single platform. Which means there’s probably no place for ReactOS long term.
Edited 2009-03-06 04:22 UTC
What in your opinion is so broken and flawed about NT (ignoring the vagaries of Win32)?
Reading your comment, what a waste of time.
It’s been many years since I’ve tried ReactOS, and I just downloaded the VMware image and gave it a shot. I’m certainly amazed at how quickly it boots. I downloaded Firefox 2 using the Download! tool, and am posting from Firefox on ReactOS. I am impressed.
I would be really curious as to how this works on bare metal. I would definitely try it on a laptop.
While the newsletter may have answered what the ReactOS team is trying to replicate, I’m still questioning why they have chosen to try to clone Windows (and a moving target at that).
“Just because” is certainly an acceptable answer. The whole project just seems a little strange and I do follow OS development closely.
I think that Wine project is much closer to reality. I mean, they achieved impressive results in application compatibility. React OS project probably has not enough resources to reach its goals. Honestly, I don’t expect them to reach anything with release status ever.
I’ll try to clarify.
The ReactOS kernel, ntoskrnl, is strickly based on NT 5.2 and is very much complete and compatible in most areas.
The architecture of reactos is also based around NT 5.2. This means not only ntoskrnl but the whole of kernel mode is designed like this, although it isn’t followed quite a strickly as ntoskrnl.
Finally there is usermode which is a compleltey different animal and is treated as such. The only thing which really follows the architecture design of Windows are the sys calls and the shared memory. The rest is just seen as a bunch of API’s which applications use to get stuff done. As thehe sys calls and the shared memory are also dependant on the kernel these are also based on the NT 5.2 kernel.
However, as new applications are released which start to use Vista only API’s we obviously need to support these. It’s very easy to add API’s in usermode, so what we tend to do is target the latest Windows release in relation to the API’s we allow to be implemented. This occasionally means adding an extra syscall which we do if really necessary, however most API’s don’t need this are implemented in usermode using existing syscalls.
So what we have in effect is an NT 5.2 architecture but with a Windows Vista API set. This allows us to keep the OS stable whilst supporting the latest and greatest applications made for Vista.
Hope that helps to clear things up.
Ged.
What about things which require significant kernel changes, such as CancelSynchronousIo? Is ReactOS updating those parts to match Vista?
That’s an interesting question.
We currently don’t have the ability to cancel synchronous I/O requests, so this function won’t work. As we target the the NT 5.2 kernel, there is no immediate drive to implement such a feature. However, as this machanism relies on feaures already available in ther kernel, such as APC’s there is no reason to assume this will never be implemented. The question is, do we implement partial functionality of of the NT 6.0 kernel, such as the new I/O manager features leaving us with a hybrid kernel somewhere between 5.2 and 6.0, or do we move our target to 6.0 and start to add all the architecture changes in the NT6 line?
As we’ve never really been in this situation, this would be up for discussion, however I would suggest that we would start to implement various aspects of the NT 6.0 kernel in our 5.2 architecture kernel and slowly move from a hybrid towards an NT6 model.
As for usermode it’s treated seperatley as I mentioned earlier, so this API was added a year or two ago, albeit just stubbed. This backs up my original claim of an NT 5.2 kernel with a Vista usermode API
http://www.reactos.org/generated/doxygen/dd/df8/iocompl_8c.html#d2c…
Regards,
Ged.
Edited 2009-03-06 10:55 UTC