About ReactOS 0.4

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

fred02
Posts: 551
Joined: Thu Nov 22, 2007 5:54 pm

Re: About ReactOS 0.4

Post by fred02 » Fri Nov 14, 2014 3:44 pm

Pardon my ignorance, but I don't understand this big fuss about 16-bit windows installers. I thought it was only relevant for 64-bit Windows and Microsoft had to fix it by detecting such installers for some most popular apps and replace them on the fly by a custom-one. For all the other applications, including most games, it was suggested to manually decompress them. Which, incidentally, is also a perfectly justifiable solution for an alpha-grade software, such a ROS.

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

Re: About ReactOS 0.4

Post by PurpleGurl » Fri Nov 14, 2014 10:14 pm

I understand the argument on the 16-bit stuff. But unlike Windows, we have more of a virtual VDM, and the nice thing is that will likely be able to be scaled over to 64-bit when we go there. Since our NTVDM is already an emulator, it should work on 64-bit since it doesn't use real hardware which is limited to 32 and 64 bits. That is one advantage we have over Windows at this point, though right now, I prefer using Windows.

DOSGuy
Posts: 582
Joined: Wed Sep 14, 2011 5:55 pm
Contact:

Re: About ReactOS 0.4

Post by DOSGuy » Fri Nov 14, 2014 10:58 pm

As a person who runs a retro gaming website and uses a 64-bit version of Windows, 32-bit programs that have 16-bit installers are a constant headache. I would absolutely love it if ReactOS supported 16-bit installers, and retained that support in the eventual 64-bit version. That would be a big advantage that ReactOS would have over Windows for me.
Today entirely the maniac there is no excuse with the article. Get free DOS, Windows and OS/2 games at RGB Classic Games.

justincase
Posts: 438
Joined: Sat Nov 15, 2008 4:13 pm

Re: About ReactOS 0.4

Post by justincase » Fri Nov 14, 2014 11:34 pm

This is my understanding of the situation:

DOS based windows would run the 16-bit DOS portion of the installer and that would launch the 32-bit portion which would perform the actual installation. When Microsoft made NT it no longer had DOS support, so they created the NTVDM to interpret the DOS executable, and set the system to run it in 16-bit mode. When Microsoft made a 64-bit version of NT & realised that the processor wouldn't run in 16-bit mode and 64-bit mode at the same time they simply removed the NTVDM, rather than rewrite it to have it's own virtual 16-bit capable processor, which meant that partially 16-bit installers became incompatible. To combat this they wrote a system to recognise the most widely used partially 16-bit installers, and "shim" in a Win32 replacement for the 16-bit DOS portion when they were run (I don't know the specifics of how exactly that works).

ReactOS is an implementation of NT, so it doesn't natively support DOS programs, so the developers have been working on their own NTVDM, however they're implementing it with a software virtualised 16-bit capable processor rather than having it simply set the system to run the hardware in 16-bit mode, this means that when eventually a 64-bit version of ReactOS works there will be no reason to remove the NTVDM, because it will still be able to use the virtual CPU to run software in 16-bit mode.

Now the current issue with running 16-bit software, including the 16-bit DOS portions of those 16-/32-bit installers, is that the NTVDM isn't finished, and either ReactOS isn't yet able to run those 16-bit portions in the NTVDM, or the NTVDM isn't yet able to run them. In either case the Devs are still working towards making partially 16-bit installers work on ReactOS, and once it works in the 32-bit build, there is no reason (that I know of) that it shouldn't continue to work in 64-bit build once the 64-bit build is fully buildable.

If somebody knows more than I their welcome to correct me anywhere that I might be wrong, but I think this is a pretty accurate summary of the current state of NTVDM affairs.

BTW, I can't wait till the 64-bit build works. (but wait I will)
I reserve the right to ignore any portion of any post if I deem it not constructive or likely to cause the discussion to degenerate.

middings
Posts: 1009
Joined: Tue May 07, 2013 9:18 pm
Location: California, USA

Re: About ReactOS 0.4

Post by middings » Sat Nov 15, 2014 12:47 am

fred02 wrote:Pardon my ignorance, but I don't understand this big fuss about 16-bit windows installers.
This article and its comments probably tell you more than you want to know: If there is no 16-bit emulation layer in 64-bit Windows, how come certain 16-bit installers are allowed to run?, by Raymond Chen at his The Old New Thing blog.
.

fred02
Posts: 551
Joined: Thu Nov 22, 2007 5:54 pm

Re: About ReactOS 0.4

Post by fred02 » Sat Nov 15, 2014 9:48 pm

Tnx, will give it a look.

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

Re: About ReactOS 0.4

Post by PurpleGurl » Mon Nov 17, 2014 3:23 pm

Yes, it seems our NTVDM is different from theirs since they tend to use thunker code rather than emulator code. So they did more stuff natively. However, when going to 64-bit, it would be harder to get the thunker stuff to work since directly running 16-bit code is not an option. In our case, NTVDM would compile to different code as 64-bit, but the logic and what goes in will be the same. I imagine adjustments would have to be made when it comes to data sizes so larger registers won't give different values because of the signed vs unsigned and overflow differences. (I got that roughly from what Z98 said in the past in a different context.)

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

Re: About ReactOS 0.4

Post by erkinalp » Mon Nov 17, 2014 5:58 pm

Smaller registers are still available in x86_64.
-uses Ubuntu+GNOME 3 GNU/Linux
-likes Free (as in freedom) and Open Source Detergents
-favors open source of Windows 10 under GPL2

DOSGuy
Posts: 582
Joined: Wed Sep 14, 2011 5:55 pm
Contact:

Re: About ReactOS 0.4

Post by DOSGuy » Mon Nov 17, 2014 6:02 pm

erkinalp wrote:Smaller registers are still available in x86_64.
Indeed they are, but the CPU can't enter Virtual 8086 mode while in Long Mode. That doesn't stop Wine from running 16-bit software on 64-bit Linux.
Today entirely the maniac there is no excuse with the article. Get free DOS, Windows and OS/2 games at RGB Classic Games.

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

Re: About ReactOS 0.4

Post by EmuandCo » Mon Nov 17, 2014 7:43 pm

Neither it does stop dosbox and dosemu... and i think wine emulates by using one of these
Image
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

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

Re: About ReactOS 0.4

Post by hbelusca » Mon Nov 17, 2014 8:13 pm


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

Re: About ReactOS 0.4

Post by PurpleGurl » Mon Nov 17, 2014 9:10 pm

DOSGuy wrote:Indeed they are, but the CPU can't enter Virtual 8086 mode while in Long Mode. That doesn't stop Wine from running 16-bit software on 64-bit Linux.
That's what I left out in my last post. It isn't just a matter of data register size, but the whole segment:offset architecture and the ability to directly change certain registers (protected mode uses selectors, and messing with the segment registers will generate exceptions if I am not mistaken).

Plus 16-bit programs tended to have a good share of bad programming practices. I've mentioned self-modifying code. There are cases where that really cannot be avoided and precautions have to be taken. It wasn't too bad in how that behaved until the 486 came out. It was the first Intel CPU to incorporate any type of cache beyond a simple prefetch queue. That was not the only CPU that introduced incompatibilities of that sort. That happened in the Motorola 68000 family too. If you change code on the fly, it is a problem when the old stuff is still in the cache, so the program does not work as expected, and if you are manipulating the stack pointer in this manner, then that could cause a crash. So that is all one more reason to use an emulator since you can sandbox a lot of this, and if you crash the emulator, you don't bring down the host OS.
Last edited by PurpleGurl on Fri Nov 28, 2014 10:00 pm, edited 1 time in total.

ctasan
Posts: 384
Joined: Mon Feb 24, 2014 7:02 pm
Location: Istanbul, Turkey

Re: About ReactOS 0.4

Post by ctasan » Thu Nov 27, 2014 9:07 pm

Why I'm repeating 16-bit setup stubs?

In somewhere I saw that someone had tested MS Office 97 on ReactOS 0.3.10. No matter how it was working (apps were working but had issues) but... IT WAS INSTALLABLE!

Now? NOT! Why? 16-bit setup stubs! It's a major regression! Yes, a major regression that blocks compatibility with a lot of apps!

Want proof? Link: http://toastytech.com/guis/react3102.html

Frontier
Posts: 70
Joined: Fri Sep 20, 2013 10:29 am

Re: About ReactOS 0.4

Post by Frontier » Thu Nov 27, 2014 11:16 pm

"The Office 97 installer seems to work fairly well even though there is a 16-bit setup stub that has to be bypassed. "

Read the website.

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

Re: About ReactOS 0.4

Post by EmuandCo » Fri Nov 28, 2014 12:47 am

16 bit setups NEVER worked before just like they don't right now.
Image
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

Post Reply

Who is online

Users browsing this forum: DotBot [Crawler] and 1 guest