Win32 independence

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Post Reply
cppm
Posts: 289
Joined: Wed May 02, 2007 10:03 pm

Win32 independence

Post by cppm »

Having read around a bit, i read that NT uses the win32 subsystem for handling input from devices.

What else is win32 used for? And would it be theoretically possible to make that independent of the win32 subsystem, so you don't need to have a win32 subsystem at all?
w3seek
Developer
Posts: 144
Joined: Tue Nov 23, 2004 12:12 am

Post by w3seek »

NT doesn't need win32, win32 is just a subsystem. However, pretty much 99.99% of all software is written for win32 and therefore won't run without the win32 subsystem...
oiaohm
Posts: 1322
Joined: Sun Dec 12, 2004 8:40 am

Post by oiaohm »

You forgot printers and scanner drivers. They run in win32 purely.

No printers gets a little tricky.
cppm
Posts: 289
Joined: Wed May 02, 2007 10:03 pm

Post by cppm »

w3seek wrote:NT doesn't need win32, win32 is just a subsystem. However, pretty much 99.99% of all software is written for win32 and therefore won't run without the win32 subsystem...
Hmmm, the MS documentation seems to suggest that win32 handles keyboard and mouse input for all other subsystems.

Also we are getting a lot of software that is based on abstraction layers, like java and CLR, both of which would be interesting to implement at the sunsystem layer, as well as the not inconsiderable (even if relatively small) number of apps for the linux desktop, although that's besides the point...

Point is, I assume it's technichally possible to divorce NT from win32, of course it is. Just, would it be hard or involve ugly hacks? Or is it just MS being difficult?

Suppose there's an API that subsystems would use for those inputs. Wouldn't it be theoretically possible to build a stripped down version of win32 that just did that? Or replace that API completely with a subsystem neutral method?
Z98
Release Engineer
Posts: 3379
Joined: Tue May 02, 2006 8:16 pm
Contact:

Post by Z98 »

In theory, it's possible. Is there a point? At this stage, not really. Once we get to 1.0, we might consider how we want to break with MS' design in certain places, but until we get to 1.0, these concepts are a bit too ambitious.
cppm
Posts: 289
Joined: Wed May 02, 2007 10:03 pm

Post by cppm »

That's okay, i'm more curious than anything else. Curious to see if anyone who knows has anything to say on the matter, about subsystem design and drivers that need win32k.sys for example. I think i'll just leave the question open...
cppm
Posts: 289
Joined: Wed May 02, 2007 10:03 pm

Post by cppm »

linuxgx wrote:Whats the point when it would only break compatibility with windows applications. In my mind it is better to leave it as a redundancy for the sake of compatibility.
  • 1. to (more or less) remove the possibility of having windows viruses
    2. to reduce the potential system size (think, embedded)
    3. to reduce the system overhead (think Dataroom or virtual machine host)
    4. to remove the dependence of a seemingly fundamental part of the OS from one of it's largest and ugliest codebases
But all of these are just ancilliary and byproducts of the main reason:it would give you more freedom with your OS.
Haos
Test Team
Posts: 2954
Joined: Thu Mar 22, 2007 5:42 am
Contact:

Post by Haos »

In the same time it would make all Win apps unusable... That defies one of ReactOS goals. If ROS will be more complete, someone could fork out the project and create such modification, if its possible. For now, proposing it is like proposing Linux community to limit its OS to embedded devices ONLY.
cppm
Posts: 289
Joined: Wed May 02, 2007 10:03 pm

Post by cppm »

0.o Noone's asking anyone to do anything, or at least i'm not...

It was merely a hypothetical enquiry, no-one has replied with any interesting revelations, but just glib knee jerk dismissals, that i've felt compelled to respond to...

Edit: actually that's not entirely true, noone's come up with a reason which implies that there's no obvious reason why they couldn't be, -hypothetically- independent, even if it did break compatibility.
Z98
Release Engineer
Posts: 3379
Joined: Tue May 02, 2006 8:16 pm
Contact:

Post by Z98 »

There are a lot of things that are theoretically possible, but aren't practical. We would need to first reroute all the I/O to a different module/component and basically strip the win32k subsystem of a lot of that stuff. Time consuming and would require us to do some redesigns in the process. As a practical issue, I don't see much point in trying to do it. It's not as if we're trying to create a revolutionary, universal operating system.
silverblade
Developer
Posts: 58
Joined: Sat Dec 18, 2004 9:41 pm
Location: Newbury, UK
Contact:

Post by silverblade »

cppm wrote:
linuxgx wrote:Whats the point when it would only break compatibility with windows applications. In my mind it is better to leave it as a redundancy for the sake of compatibility.
  • 1. to (more or less) remove the possibility of having windows viruses
    2. to reduce the potential system size (think, embedded)
    3. to reduce the system overhead (think Dataroom or virtual machine host)
    4. to remove the dependence of a seemingly fundamental part of the OS from one of it's largest and ugliest codebases
But all of these are just ancilliary and byproducts of the main reason:it would give you more freedom with your OS.
I disagree with all of the above points. ReactOS is an open-source implementation of the NT architecture, and this includes the major subsystems.

1 - You'd not only stop Windows viruses, but almost every Windows application from running on the system. And regardless of your platform, there will always be the potential for exploits, hacks, viruses, etc. Even Linux has virus scanners, and mobile devices such as PDAs and mobile/cell phones can get viruses.

2 - Of course you will reduce the system size, you'd be removing one of the main components of Windows, and rendering it mostly useless except for anything entirely designed not to use the Win32 API.

3 - You'd reduce the system overhead by removing essential parts of the OS, sure... See point 2.

4 - It is a fundamental part of the NT architecture, hence it is required. Without it, ReactOS is virtually useless to everybody. It may have a large and ugly codebase, but what projects don't? Code is written to do a job, not to look "beautiful". Provided it has some logical structure, I have no problem with it.
Andrew / Silver Blade

[ external image ]
User avatar
EmuandCo
Developer
Posts: 4723
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Post by EmuandCo »

seconded. I fully agree with silverblade
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
oiaohm
Posts: 1322
Joined: Sun Dec 12, 2004 8:40 am

Post by oiaohm »

Haos Linux lock to embeded and supercomputers is something different.

Biggest cause of Linux desktop problem is and has always been infighting. Distributions being incompdable with each other. Linux Standard Base is reducing this problem.

Next cause in network integration with business networks.

Sorry to say win32 is not exactly that high up there.

Compatibility is a major issue.

There is a reason for a cut to hell ros. Took me a while to think of it a core OS for like the MS hypervisor. Reduced auditing and really tight memory foot print and does not really require any graphical interface.

Silverblade Linux yes has virus scanners sorry to say they are mostly used agaist windows viruses not linux ones. Rootkit scanning in more critical. Most PDA mobile/cell phones use the same virus protection system as Linux. Update the firmware/software no longer to have the flaw for the virus to operate.
cppm
Posts: 289
Joined: Wed May 02, 2007 10:03 pm

Post by cppm »

Silverblade - I was merely offering some reasons why it might make sense given the right situation. Needless to say applications don't begin and end with win32 ones, so in that spirit i was simply pitting some positive thinking against the potentially misguided idea going something along the lines of "Why on earth would you not want win32 compatibility?!" *shock*

If you entertain the possibility of living without windows apps, then my original reasons become salient.

The fact that in general it might not be a good idea, which is your point, doesn't make this, a potential situation based on a hypothetical question, any less valid.

Again, the fact that this isn't the spirit of the reactos project, doesn't make this, just another possible use of the same open source code, any less valid.

Once again, the 'it's a fundamental part of the NT architecture' doesn't make what i say any less valid, since in my question that was the flexible variable: the question being, is it a fundamental part of the NT architecture? And why? I didn't expect to be told of for the seemingly heretical sugestion without any explanation or justification.

And a reminder, this isn't a suggestion, or a complaint, it was a hypothetical question. I'm not talking reactos strategy, neither am i trying to pick a fight, i was just trying to get some interesting mindshare after reading an interesting article. o_0
oiaohm
Posts: 1322
Joined: Sun Dec 12, 2004 8:40 am

Post by oiaohm »

Ok first lets start off with a few points. Lots of drivers need win32 programs to install or operate correctly. So removing it does harm.

ntdll.dll was ment to be the common point between subsystems. Note ntdll.dll should not be classed as part of win32.

There are reasons for direct syscalls from subsystems. Disconnecting from win32 is more than complex over the years more and more has been build depending on it.
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 34 guests