Clarifying ROS goals

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Post Reply
alexei
Posts: 137
Joined: Wed Oct 19, 2005 5:29 pm

Clarifying ROS goals

Post by alexei »

This is written in stone, right?
The main goal of the ReactOS project is to provide an operating system which is binary compatible with Windows. This will allow your Windows applications and drivers to run as they would on your Windows system. Additionally, the look and feel of the Windows operating system is used, such that people accustomed to the familiar user interface of Windows® would find using ReactOS straightforward. The ultimate goal of ReactOS is to allow you to remove Windows® and install ReactOS without the end user noticing the change.

Is it clear and simple? No, it you think about it. The questions are:
- "Binary compatible" Up to the same location of the same code? Sure not, so programs that rely on address specific internals would fail.
- "Binary compatible with Windows" Windows? Which version, revision, service pack, etc.?
- "applications and drivers to run" What about drivers/applications that depend on Windows version, depend on Windows bugs, use patented features, DRM, etc.?
- "look and feel of the Windows operating system is used" That's just GUI, which is not equal to binary compatibility.
- "without the end user noticing the change" Including MS logo? :) Not really... Even 2003 and XP differ.
So, as ROS moving forward to be compatible on driver level, you should be aware that its functionality can not be exactly same as any particular version of MS Windows®
Obviously, ROS has to provide more flexible compatibility than MS Windows and ROS kernel should be ready to support it, and in general be better then MS. There is important question: What should be implemented by mimicing MS and what better be emulated?
For many years MS has being trying to attract software developers and hardware manufacturers by pleasing them with new features, technologies, various capabilities, etc. As a result, software developers were "spoiled" and MS Windows become bloated, buggy, and resource hungry. ROS is an honorable attempt to provide all these features, but is it really necessary and possible? Shouldn't ROS developers define some reasonable subset and provide fast and stable OS instead of trying to reach questionable goal, though it may be just proclamation, which should not be taken seriously :)
BTW, it would be nice if ROS become capable of detecting and reporting "misbehaving" programs/drivers.

Lone_Rifle
Test Team
Posts: 802
Joined: Thu Apr 03, 2008 2:17 pm
Contact:

Re: Clarifying ROS goals

Post by Lone_Rifle »

No.

SomeGuy
Posts: 586
Joined: Mon Nov 29, 2004 9:48 am
Location: Marietta, GA

Re: Clarifying ROS goals

Post by SomeGuy »

alexei wrote:This is written in stone, right?
As Lone Rifle said, No. That is the current goal, but things can always change.
Is it clear and simple? No, it you think about it. The questions are:
- "Binary compatible" Up to the same location of the same code? Sure not, so programs that rely on address specific internals would fail.
ReactOS is mainly written to published Windows specifications. Well written applications and drivers should also be programed to these specifications and should eventually work under ReactOS. Software that relies on undocumented internals run the risk of breaking under different versions or even service packs of Microsoft Windows. Much poorly written software does exist and will have to be addressed on a case-by-case basis as ReactOS moves toward better compatibility.
- "Binary compatible with Windows" Windows? Which version, revision, service pack, etc.?
Currently NT Version 5.2 (Build 3790: Service Pack 1), apparently. This goal exists to keep developers from going off in different directions. Should the project leaders agree that a specific need exists to change the goal, it certainly can, and likely eventually will change.
- "applications and drivers to run" What about drivers/applications that depend on Windows version, depend on Windows bugs, use patented features, DRM, etc.?
These will likely be addressed on a case-by-case basis.
- "look and feel of the Windows operating system is used" That's just GUI, which is not equal to binary compatibility.
Correct. But a "compatible" user interface is important too. Think of the user interface as a language. ReactOS should "speak" the same language as the user that wants to use it.
- "without the end user noticing the change" Including MS logo? :) Not really... Even 2003 and XP differ.
Of course logos and such will be different. But the Windows UI is a very complicated thing, so that is the least of the differences anybody should worry about.
So, as ROS moving forward to be compatible on driver level, you should be aware that its functionality can not be exactly same as any particular version of MS Windows®
Obviously, ROS has to provide more flexible compatibility than MS Windows and ROS kernel should be ready to support it, and in general be better then MS. There is important question: What should be implemented by mimicing MS and what better be emulated?
It is important to point out that even Microsoft Windows is not always 100% compatible with Microsoft Windows. I have seen my fair share of bad software that not only requires a specific version of Microsoft Windows, but very specific configurations that can be thrown off by insanely small hardware, software, or even environmental differences.
For many years MS has being trying to attract software developers and hardware manufacturers by pleasing them with new features, technologies, various capabilities, etc. As a result, software developers were "spoiled" and MS Windows become bloated, buggy, and resource hungry. ROS is an honorable attempt to provide all these features, but is it really necessary and possible? Shouldn't ROS developers define some reasonable subset and provide fast and stable OS instead of trying to reach questionable goal, though it may be just proclamation, which should not be taken seriously :)
They are doing their best with what they have. Like most open source projects, people will work on whatever part they want. Unfortunately, ReactOS doesn't have the billions of dollars to spend on developers to prioritize and take care of all the ugly little painful bits of code that nobody wants to touch. :D
BTW, it would be nice if ROS become capable of detecting and reporting "misbehaving" programs/drivers.
I dare say that down the road when there is more emphasis on compatibility with real hardware, that we might see such things.

Smiley
Developer
Posts: 156
Joined: Fri Nov 10, 2006 3:36 pm

Re: Clarifying ROS goals

Post by Smiley »

alexei wrote:Obviously, ROS has to provide more flexible compatibility than MS Windows and ROS kernel should be ready to support it, and in general be better then MS.
Do you think that this is possible? ( to provide better compatibility than windows)

hto
Developer
Posts: 2193
Joined: Sun Oct 01, 2006 3:43 pm

Post by hto »

Do you think that this is possible? (to provide better compatibility than windows)
Wine seems to do it.

PurpleGurl
Posts: 1788
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Clarifying ROS goals

Post by PurpleGurl »

Smiley wrote:
alexei wrote:Obviously, ROS has to provide more flexible compatibility than MS Windows and ROS kernel should be ready to support it, and in general be better then MS.
Do you think that this is possible? ( to provide better compatibility than windows)
It could be with a decent enough shim engine. What we could do is provide compatibility across several versions of Windows, thus allowing more Windows programs to run under one OS version. Windows even breaks things between service packs. We might be able to meet the same security goals without breaking other things in the process because we are quite different under the hood (have to be since we haven't seen Windows inside).

zydon
Posts: 160
Joined: Tue Dec 18, 2007 9:03 am

Re: Clarifying ROS goals

Post by zydon »

Wouldn't that ReactOS is a Retro Operating System to revive the old x86 hardwares. Without hardware drivers development support, ROS hardly getting out of it's Alpha version. To imitate the MS-Windows architectures made it even harder to progress with the freedom of coding the core.

I think to move on, ROS should have a pet project using it's existing core, to develop a x86 Netbook and Tablet OS that does not bound too much to MS-Windows architectures. More freedom for developers to write it's core. Such as Android or Symbian alike OS but powered by ROS core on x86 devices.

Murmur
Posts: 142
Joined: Fri Nov 20, 2009 8:16 pm

Re: Clarifying ROS goals

Post by Murmur »

I think a better question is going to be "Will ROS be aimed for business or personal use"

Sure playing games on a free windows would be great and all but can ROS eventually replace MS's server line or be fit for the enterprise environment.

PurpleGurl
Posts: 1788
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Clarifying ROS goals

Post by PurpleGurl »

zydon wrote:Wouldn't that ReactOS is a Retro Operating System to revive the old x86 hardwares. Without hardware drivers development support, ROS hardly getting out of it's Alpha version. To imitate the MS-Windows architectures made it even harder to progress with the freedom of coding the core.

I think to move on, ROS should have a pet project using it's existing core, to develop a x86 Netbook and Tablet OS that does not bound too much to MS-Windows architectures. More freedom for developers to write it's core. Such as Android or Symbian alike OS but powered by ROS core on x86 devices.

What is the big thing about drivers? Just use the ones for XP/2003 that come with your hardware, just like anyone who installs Windows would do. There is no need to code separate drivers just for Reactos when anyone can install the pre-existing commercial drivers for Windows that were bundled with their hardware. I think we can already do more with Reactos right out of the box without additional drivers than Windows.

Murmur
Posts: 142
Joined: Fri Nov 20, 2009 8:16 pm

Re: Clarifying ROS goals

Post by Murmur »

PurpleGurl wrote: What is the big thing about drivers? Just use the ones for XP/2003 that come with your hardware, just like anyone who installs Windows would do. There is no need to code separate drivers just for Reactos when anyone can install the pre-existing commercial drivers for Windows that were bundled with their hardware. I think we can already do more with Reactos right out of the box without additional drivers than Windows.
1) Not all windows NT drivers are the same (xp/vista/win7)

2) XP drivers are not going to be continued for much longer due to endlife of XP

3) We will need to future-proof the drivers (which might not be an issue with win8 prob following win7 in design)

If ROS could get compatibility with win7/8 drivers then this debate would be pointless because we could use them and then worry about the hardware manufactures after ROS goes live.

PurpleGurl
Posts: 1788
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Clarifying ROS goals

Post by PurpleGurl »

Murmur wrote:
PurpleGurl wrote: What is the big thing about drivers? Just use the ones for XP/2003 that come with your hardware, just like anyone who installs Windows would do. There is no need to code separate drivers just for Reactos when anyone can install the pre-existing commercial drivers for Windows that were bundled with their hardware. I think we can already do more with Reactos right out of the box without additional drivers than Windows.
1) Not all windows NT drivers are the same (xp/vista/win7)

2) XP drivers are not going to be continued for much longer due to endlife of XP

3) We will need to future-proof the drivers (which might not be an issue with win8 prob following win7 in design)

If ROS could get compatibility with win7/8 drivers then this debate would be pointless because we could use them and then worry about the hardware manufactures after ROS goes live.
It would be nice if we could detect and match the nuances of the various driver versions, thus ensuring compatibility on older machines. I mentioned XP/2003 since that is what we are shooting for in terms of compatibility, at least until a major consensus changes the direction.

I understand your second point. As machines evolved they reached a point that for a while XP was about the only thing that would run on them. It wasn't so much that 9x/ME was obsolete as it was that modern hardware won't run the older OS's and the manufacturers saw no need to attempt to create drivers for OS's which are fundamentally incompatible with newer motherboards. So the Win 7/8 compatibility is needed as consequences of both hardware "compatibility creep"* and Windows licensing/support strategies. Either that, or if Reactos could adopt the XP/2003 way of doing drivers and manufacturers writing them that way for us. So I now see what others mean about the driver dilemma.

So I can see how that ties in with your third point. We should keep as many driver options open as possible, even if that means create shims or a driver compatibility layer of some sort, as well as making a more native driver format that is optimized for Reactos and getting manufacturers on board. So think in terms of short and long-term compatibility. Plus a few universal drivers would help too, like the one in the OpenGL clone thread. Universal drivers are not the best solution, but can help until we gain more compatibility.

Speaking of driver compatibility, a thought came to mind. I don't know how feasible it would be or how much it would hurt performance. I was thinking, why not do something similar with drivers and compatibility in general what the IFS layer does with FS compatibility? Or even similar to HAL for that matter, or even the ARWINSS concept. What not the ability to use nearly any NT-compatible driver, and in any mixture? Like have a layer to act as a liaison and treat the drivers as individuals as if they were in their host OS flavors, but change how ROS sees them so ROS sees them as being in the same. If the drivers used are native, then use them directly without a driver shim engine or compatibility layer. So this idea would also be a workaround similar to using universal default drivers - less than optimal, but much better than nothing. This could be modular too, meaning that as new driver standards are adopted, new compatibility modules could be created, thus extending the repertoire of compatibility. Then if the native support in Reactos changes flavors, then create a compatibility module for the former way of doing things. Of course, in the 64-bit version, there probably won't be as many compatibility issues, since Microsoft broke from the older ways with them.

* - Hardware compatibility creep is a term I just coined to refer to gradual changes to hardware over time that gradually creates incompatibility with older OS's or software.

Murmur
Posts: 142
Joined: Fri Nov 20, 2009 8:16 pm

Re: Clarifying ROS goals

Post by Murmur »

I already asked this but I think it should be brought up again.

Will ROS be aimed for business or personal use.

Will ROS be ever able to replace Win server version, will get a HPC (Parallel computing), domain use etc.. (<- This is where the money comes from)

florian
Posts: 462
Joined: Tue Nov 01, 2005 2:19 am
Location: Germany

Re: Clarifying ROS goals

Post by florian »

Murmur wrote:[...] Will ROS be aimed for business or personal use. [...]
Isn't business a vast field (SMB up to big business)? To my mind it depends on what functions would be needed by "business".

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests