Switching the target to the NT 6.x kernel might save R&D time in the long run

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

wdstudios
Posts: 35
Joined: Mon Aug 13, 2018 8:53 pm

Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by wdstudios » Wed May 29, 2019 11:28 am

Yeah, yeah, it's been discussed before, blah blah mission creep, blah blah we don't want to suffer the same fate as Duke Nukem Forever. But hear me out.

An hour or two ago, I was looking for information on "One-Core-API" (a touchy subject around here, as I understand it), and stumbled upon an article about the unrelated but similarly named "OneCore" project from Microsoft, titled "OneCore to rule them all: How Windows Everywhere finally happened". It's some fascinating reading and shows how schizophrenic Microsoft was back in The Day and how this led to a lot of compatibility issues and duplication of effort. However, what caught my attention the most was on page 2, in the section about development of the NT 6.x kernel:
Windows NT had grown sprawling and complex, with many different interdependencies between components. Microsoft was discovering this made it very hard to predict the impact of changes to the core operating system. Work in one area would unexpectedly have impact on other parts of the operating system, making isolated development impossible.

The plan with MinWin was to repackage and reorganize the operating system to untangle these interdependencies and create an operating system that was much more amenable to rapid innovation without knock-on effects... The interdependencies were particularly acute in areas such as the shell and the browser. These are high-level components, but low-level components often took dependencies on them. Taking these dependencies wasn't elegant, but it was often convenient. Such functionality was useful and also efficient, as it meant reusing the same code and saving on both disk and memory footprint.

The MinWin project painstakingly analyzed the various dependencies within Windows and broke the operating system down into a bunch of components. These were strictly layered to ensure that low-level components never depended on higher-level ones. Dependencies had to strictly flow from high level to low. That way, high-level parts could be safely modified without breaking lower-level parts and without those changes rippling to the broader operating system.

The APIs themselves were also broken down and divided into much more focused units... The MinWin work first shipped in Windows Vista. Subsequent releases have followed its principles—including the stricter approach to how dependencies are taken—and extended them, with the kernel and individual drivers split up into smaller, more manageable, less entangled components.
After reading this, I was reminded of the fact that I never really wanted XP to be supported forever; I just want new versions of Windows to stop sucking. Pretty much everything that we hate about the NT 6.x family has nothing to do with the kernel itself. There's no reason why an operating system based on NT 6.x shouldn't be able to support animated wallpapers, or treat admins as owners of the "Program Files" directory, or remember every program that can open files with a particular extension.

More to the point, though, it seems like the NT 6 kernel would be easier to reverse-engineer than the NT 5 kernel. Moving goalposts one last time might paradoxically reduce the workload needed to get ROS 1.0 out the door sooner. Even if it doesn't, it would almost definitely save development time in the long run, since NT 6.x compatibility is generally considered a long-term goal and to finish untangling NT 5.2 would be more of a detour than a stepping stone. However, there are some programs that work in XP but not Vista, and figuring out how to get those running in an NT 6.x clone might eat up some of your gains here.

Furthermore, retrofitting NT 6.x application compatibility onto an NT 5.2 kernel won't do anything for driver support. There is no guarantee that the existence of an actively maintained NT 5.2 clone would spur hardware vendors to resume development of NT 5.2 drivers. Hell, just look at how long it took ATI and nVidia to start writing Linux drivers for their graphics cards. If ROS continues to pursue the "NT 5.2 = ROS 1.0" goal, then there's an extremely high chance of ROS 1.0 being dead on arrival purely due to the lack of compatible hardware at the time of its release. I cannot be the only person to figure this out, and a lot of devs who might otherwise be interested in developing ROS are probably being discouraged for that reason alone. Even if they're not, interest in continued development of ROS will remain low from 1.0 onward if it's dead on arrival, making it take a long time for 6.x compatibility to be added. Again, moving the goalposts one last time might paradoxically attract the developer interest needed to get ROS 1.0 out the door sooner, and will definitely result in sooner delivery of an actually usable OS (whatever version number that might be).

Forgive my ramblings. Caffeine is not an adequate substitute for sleep.

(on the subject of One-Core-API, the forum posts about it are a little bit inconsistent as to why it's bad. What was the final verdict? It was "clean" code, but using it would have drawn unwanted attention from lawyers anyway because the guy who made it also worked on a separate project that used stolen code? Or what?)

Raleks
Posts: 3
Joined: Sun Jul 29, 2018 9:22 am

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by Raleks » Wed May 29, 2019 3:19 pm

As far as I know from lurking the forums for quite a long time, while doing the research regarding the possible replacement of Windows 7 shell components with ones from ReactOS/Wine, One-Core-API itself uses patched libraries from Longhorn/Vista/7 wherever applicable - this is the main reason of concern about it at these forums.

As for the NT 6.x, it was unlucky to get buried under a plethora of idiotic decisions of "effective sales management". I've seen other nice people here complained about enforced driver signing, crippled user interface, barely navigable Control Panel, unnecessary hard links for user profile folders that are already can be properly resolved via system registry, paranoid User Account Control, a joke of a Sound Volume control program with no balance sliders whatsoever!

I'm an old engineer, I used to work with C64/C128, and I laugh how more and more crippled modern hardware and software alike has become! My grandkids can't stand Windows 10, yet they are in love with XFCE desktop under Debian Linux I have set up as their primary machine. With recent developments of Proton they already play all the games they want. It amazes me what Linux is capable of yet how little of market coverage it got.

I don't know what ReactOS developers are possibly thinking, but giving the amount of work they did within the past three years, they most likely won't scrap the development of NT 5.x-compatible kernel/driver architecture. They may, however, spawn a separate repo for experimentation with NT 6.x kernel architecture, if not already, but that surely won't be their top priority.

Quim
Posts: 238
Joined: Wed Jul 04, 2018 11:45 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by Quim » Thu May 30, 2019 7:59 am

Maybe in 1 or 2 years, NT 5.2 kernel will be almost complete, in order to follow with NT6.1 kernel as fast as they can....

Any detailed technical information about how much of NT 5.2 kernel is complete? And how much of NT 5.2 is still incomplete?
Nobody gives an estimation... (example: "according to our experience or what we see, we think that the NT 5.2 kernel is 75 % complete, more or less").
Last edited by Quim on Sun Jun 02, 2019 3:11 am, edited 1 time in total.

hbelusca
Developer
Posts: 1133
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by hbelusca » Thu May 30, 2019 12:47 pm

Quim wrote:
Thu May 30, 2019 7:59 am
We expect ...
"We" ?? Who? You?

erkinalp
Posts: 839
Joined: Sat Dec 20, 2008 5:55 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by erkinalp » Thu May 30, 2019 9:38 pm

Quim speaks in plural in all its posts.
-uses Ubuntu+GNOME 3 GNU/Linux
-likes Free (as in freedom) and Open Source Detergents
-favors open source of Windows 10 under GPL2

Quim
Posts: 238
Joined: Wed Jul 04, 2018 11:45 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by Quim » Fri May 31, 2019 12:03 am

hbelusca wrote:
Thu May 30, 2019 12:47 pm
"We" ?? Who? You?
All people that is aware of ReactOS revolution and wants to have it as a replacement of Windows. ;)

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

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by PurpleGurl » Fri May 31, 2019 1:02 pm

If we want to get technical, what he said is true already.... in many ways, it is mostly complete. But the last 10-20 percent takes the longest. So it might be just "mostly complete" for years to come.

Quim
Posts: 238
Joined: Wed Jul 04, 2018 11:45 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by Quim » Fri May 31, 2019 6:00 pm

PurpleGurl wrote:
Fri May 31, 2019 1:02 pm
But the last 10-20 percent takes the longest. So it might be just "mostly complete" for years to come.
So about 80% of NT 5.2 kernel is complete. But, the 20 % missing is the hard part, like full Windows 98/2000/XP/2003 drivers support (it is assumed that ReactOS should work also in old hardware that only have Windows 98 or Windows 2000 drivers)...

and what else? Any recommended link and resource to learn about NT 5.2 kernel?
So at least in 2 or 3 years ReactOS´s kernel should be 99% complete in order to work on NT 6.1 kernel. :D

EmuandCo
Developer
Posts: 4334
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by EmuandCo » Sat Jun 01, 2019 11:06 am

#4 in demand matters @quim. Last warning! Next one and you will be temporary banned until you learn PROPER english! There is NO WE, only a YOU!
Image
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

dizt3mp3r
Posts: 1450
Joined: Mon Jun 14, 2010 5:54 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by dizt3mp3r » Sat Jun 01, 2019 11:45 am

It may be merely an English translation issue. Quim may not understand the nuance that his "we expect" comments give.

Note to Quim - replace the word 'expect' with 'hope', ie. "we hope that in the year of Windows 7...NT 5.2 kernel will be almost complete" - this way it feels less like you are ordering the devs about but instead praying for them to deliver...

Quim
Posts: 238
Joined: Wed Jul 04, 2018 11:45 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by Quim » Sun Jun 02, 2019 3:14 am

EmuandCo wrote:
Sat Jun 01, 2019 11:06 am
#4 in demand matters @quim. Last warning! Next one and you will be temporary banned until you learn PROPER english! There is NO WE, only a YOU!
Sorry for my wrong vocabulary. :oops:
I won´t use it again. For "we" I assumed wrong that "concerns to all people".

Quim
Posts: 238
Joined: Wed Jul 04, 2018 11:45 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by Quim » Sun Jun 02, 2019 3:15 am

dizt3mp3r wrote:
Sat Jun 01, 2019 11:45 am
It may be merely an English translation issue. Quim may not understand the nuance that his "we expect" comments give.

Note to Quim - replace the word 'expect' with 'hope', ie. "we hope that in the year of Windows 7...NT 5.2 kernel will be almost complete" - this way it feels less like you are ordering the devs about but instead praying for them to deliver...
I was my wrong expression. I meant hope. I am not ordering ROS devs anything.

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

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by PurpleGurl » Sun Jun 02, 2019 10:16 am

I took the "should" as a hypothetical ideal. I didn't see anyone attempting to order others around. Just because things should be a certain way, it doesn't mean they are, but it is nice to dream. Of course, it is best to apply the "should" to oneself. If you want to see a component ready in a year, then learn C (C++ and ASM would help too), study up on Windows internals, study the ROS code, maybe look for "true bugs" (ie., bugs that are caused by typos or improper checks as opposed to misbehavior due to missing components -- if it crashes because some code is missing, it is working as expected like if an empty bulb socket won't light the room), and maybe write stubs or non-kernel parts, and then move onto the component in question. However, the learning curve is steep enough where it might take you a year or so to get modest to intermediate skill. But the more qualified hands there are on deck in the right places, it usually helps (and I don't mean some ridiculous number like 10k or a million since there is the law of diminishing returns).

dizt3mp3r
Posts: 1450
Joined: Mon Jun 14, 2010 5:54 pm

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by dizt3mp3r » Sun Jun 02, 2019 12:29 pm

Quim, note to you, sent to you here as PM-ing on the forum you does not work.

When you say "We expect" it becomes an order.

Using that phrase, you are speaking for the world in general, you have the authority of the world behind you and the expectation is that whoever is being spoken to will do exactly as they are told.

As in,

"We expect that you will resolve the matter immediately,"

This would be the sort of language that would be used in a legal communication from one plaintiff in a potential court case to another.

English is a very nuanced language and sometimes it is best to keep the language simple if you aren't a native speaker.

- I tried to send you this via PM but it failed due to some PHP error - check your email details please.

shunesburg
Posts: 162
Joined: Wed Feb 21, 2018 3:46 pm
Location: Somewhere in France

Re: Switching the target to the NT 6.x kernel might save R&D time in the long run

Post by shunesburg » Mon Jun 03, 2019 3:10 pm

dizt3mp3r wrote:
Sat Jun 01, 2019 11:45 am
It may be merely an English translation issue. Quim may not understand the nuance that his "we expect" comments give.
Maybe, for French for example, there is an "undefined" plural personal pronoun, "On".
It's a little difficult to explain, but it's like a "We" but in a general meaning. You can be include or not, it's mean like "The people", and when you use Google Translate, always it's translate by "We".

If it's that, the good translation should be: "The people expects" or "It's expected" and not "We expect".

I'm always surprised by the high tension when something is not said properly. Don't forget there are lot of not-native English speakers, and there is also English speakers but not American or British with some nuances or expressions.

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 3 guests