Open Source of DOS Based Windows Based Operating System

If it doesn't fit anywhere else, drop it in here. (not to be used as a chat/nonsense section)

Moderator: Moderator Team

Post Reply
ercanersoy
Posts: 60
Joined: Thu Sep 17, 2015 8:25 pm
Location: Turkey
Contact:

Open Source of DOS Based Windows Based Operating System

Post by ercanersoy »

I think, a project of operating system based DOS and graphical interface of Windows based programs. :idea: It means open source Windows 3.1 or Windows 95. :mrgreen:

First, this operating system's DOS layer is built. This DOS layer is formed FreeDOS. When FreeDOS section completed, it is time making part of graphical interface.

It is used via DOSBox.

I think this operating system builds:

i086 Build: FreeDOS, Windows 1.x, Windows 2.x and Windows 3.0 based. It supports ISA. It supports CGA, Hercules, EGA, PGC.
i286 Build: FreeDOS, Windows 1.x, Windows 2.x and Windows 3.x based. It supports ISA and MCA. It supports CGA, Hercules, EGA, PGC, VGA, XGA and Super VGA.
i386 build: FreeDOS, Windows 1.x, Windows 2.x, Windows 3.x, Windows 9x and Windows ME based. It supports ISA, MCA and EISA. It supports CGA, Hercules, EGA, PGC, VGA, XGA and Super VGA.
İ486 build: FreeDOS, Windows 1.x, Windows 2.x, Windows 3.x, Windows 9x and Windows ME based. It supports ISA, EISA, VLB and PCI. It supports VGA and Super VGA.
İ686 build: FreeDOS, Windows 1.x, Windows 2.x, Windows 3.x, Windows 9x and Windows ME based. It supports ISA and PCI. It supports VGA and Super VGA. It supports USB.

What does it?

It does less CPU usage, less RAM usage and less disk usage, so it runs faster. It is used for games and other appliactions. It is the very thing for old x86 computers. 8-)

Related links:

https://support.microsoft.com/en-us/kb/32905
http://www.thenetworkencyclopedia.com/e ... ndows-3-1/
Last edited by ercanersoy on Wed Jun 28, 2017 2:06 pm, edited 2 times in total.

User avatar
Konata
Posts: 391
Joined: Sun Apr 20, 2014 8:54 pm

Re: DOS Based Windows Alternative

Post by Konata »

Windows 9x (That includes Windows ME, you don't need to explicitly say it) is an entire operating system in it's own right. It only uses DOS as a bootloader and backwards compatibility. Recreating 9x would be almost as big of an undertaking as the ReactOS project. 9x is composed of hundreds of VxD drivers that compose of all of it's system services, and it implements a good chunk of the WinAPI.

Windows 1.x-3.x can also be considering an entire operating system, especially 3.x as it implements a protected-mode kernel. That would also be an entire project in itself. But unless you're doing Win32s then I guess it would be a lot easier.

There are other projects that implement their own Windows-esque environment over DOS (but have no relation with Windows and can't run Windows applications). One such project that comes to mind is Project oZone.

Honestly, if your machine is so old it can't even run Windows 2000, you should really consider recycling it. I feel we've gotten to the point where a machine that old has no reason to exist, even within the hobbyist sectors anymore. At least outside of being collector's items, but then they don't need to be "re-purposed" with a new OS.

karlexceed
Posts: 513
Joined: Thu Jan 10, 2013 6:17 pm
Contact:

Re: DOS Based Windows Alternative

Post by karlexceed »

Thumbs up for bringing up Project oZone (also, dosCore/AURA, and LightDOS/Carbon/Cobalt).

I also agree that machines unable to run a modern OS are essentially useless, as the performance per second/per watt/per pound means that it's costing you a lot of resources just to do it, than if you were emulating on top of newer hardware. That said, I have a special place in my heart for running software natively on original hardware...

ercanersoy
Posts: 60
Joined: Thu Sep 17, 2015 8:25 pm
Location: Turkey
Contact:

Re: Open Source of DOS Based Windows Based Operating System

Post by ercanersoy »

I changed this issue's title, because it misunderstood. I say, DOS based Windows based operating system. (open source implemation of Windows 3.1 or Windows 95)

karlexceed
Posts: 513
Joined: Thu Jan 10, 2013 6:17 pm
Contact:

Re: Open Source of DOS Based Windows Based Operating System

Post by karlexceed »

The thing is, that's just not possible without starting a whole big project on your own.

FreeDOS gets enough questions about running 3.1/3.11 on it that there's a page dedicated to it: http://www.freedos.org/technotes/technote/200.html
Short answer is, it won't work currently, and that won't change unless someone wants to take on the challenge.

Since anything you do to hack it together can't be released as a whole package (as Microsoft still owns Windows 3.1/3.11), you're looking at building a new ROS-like system from scratch, targeting a very old platform.

Due to the amount of work involved, you can certainly start this project yourself, but I can't imagine you'll get a whole lot of support as it's easy enough to install a small linux distro and then Wine or DOSbox on top to accomplish the same goal.

You might want to check these retro game specific distros out:
http://www.lakka.tv/
http://emulationstation.org/
https://sourceforge.net/projects/linuxemuos/
http://scottjarvis.com/page105.htm

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

Re: Open Source of DOS Based Windows Based Operating System

Post by hbelusca »

karlexceed wrote: FreeDOS gets enough questions about running 3.1/3.11 on it that there's a page dedicated to it: http://www.freedos.org/technotes/technote/200.html
Short answer is, it won't work currently, and that won't change unless someone wants to take on the challenge.
Note that they say:
FreeDOS folks wrote:Update: Since this thread, of course, we have been able to add support to the FreeDOS kernel such that you can run Windows 3.1 on FreeDOS. So this works now.
and I confirm that Win3.1x starts on FreeDOS.

karlexceed
Posts: 513
Joined: Thu Jan 10, 2013 6:17 pm
Contact:

Re: Open Source of DOS Based Windows Based Operating System

Post by karlexceed »

Haha, good eye! I missed that part.

ercanersoy
Posts: 60
Joined: Thu Sep 17, 2015 8:25 pm
Location: Turkey
Contact:

Re: Open Source of DOS Based Windows Based Operating System

Post by ercanersoy »

This issue is misunderstood. I think DOS Based ReactOS. This was known FreeWin95.

User avatar
Konata
Posts: 391
Joined: Sun Apr 20, 2014 8:54 pm

Re: Open Source of DOS Based Windows Based Operating System

Post by Konata »

Unfortunately, FreeWin95 never got out of intermediate planning stages, and there is very little documentation on the inner workings of Windows 9x. And as I've said, Windows 9x is extremely complex. Not as complex as Windows NT, but it's pretty close. The sad fact of the matter is, nobody cares about Windows 9x. To be fair, it was little more than a bridge between DOS and NT. You could call it the most complex bandaid Microsoft ever made. Windows 9x is little more than a historical footnote, as it doesn't even serve any practical purpose since it was designed to be somewhat of a simplistic clone of NT. Windows 9x existed for two reasons: To give developers room to port from DOS to WinAPI, and to allow low-end computers to run a modern operating system. Now all modern applications are WinAPI-based and even modern potatoes can run an NT-based system. Like, really, where do you even a 286 anymore?

Unless you have some kind of extreme obsession with Windows 9x (and I completely understand if you do, it's really charming for some reason), it's just not worth it to clone it. It's a lot of work and requires a lot of extensive knowledge into bare-metal x86 programming and DOS driver programming. You'll have to decompile Windows 95, and -- does Microsoft even offer the symbols for 95 like they do modern NT-based Windows? I'm not even sure. You'll also want to buy any books on programming Windows 95 and it's internals, although I assure you, they won't be very extensive. Windows NT has been around for twice as long as 9x was supported before Mark Russinovich decided to extensively document it. Windows 9x simply didn't get that kind of love before it was entirely replaced.

Really, you're just better off making your own OS architecture from scratch. It'll be a lot easier, and probably more fun, unless you're masochistic enough to enjoy getting muddy in x86 assembly and disassembling.

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

Re: Open Source of DOS Based Windows Based Operating System

Post by PurpleGurl »

Yes, 9x is complex in some ways that NT isn't. For instance, it is a 16-bit and 32-bit hybrid. The underlying DOS kernel is 16-bit, while it uses 32-bit code and instructions for Windows. There is a messy thunker system to reconcile the 16-bit and 32-bit portions. Imagine the kludgy mess that would become if someone were to try to make a version of it to run in long mode? (Ie., a 16-bit, 32-bit, 64-bit hybrid, with the 16-bit code being emulated.)

raijinzrael
Posts: 10
Joined: Thu Jul 19, 2012 2:39 pm

Re: Open Source of DOS Based Windows Based Operating System

Post by raijinzrael »

PurpleGurl wrote:The underlying DOS kernel is 16-bit, while it uses 32-bit code and instructions for Windows.
No. Once Win.com kick up the 32Bit VMM Manager, the VMM replaces DOS as kernel. Then the system is running a fully 32bit kernel. Before this occurs, DOSMGR/VMM has an 16bit initialization routine to wrap DOS code and address space, to be accessed as any other VxD in the system, for things like compatibility file/disk access mode, and the DOS virtual machine boxes. DOSMGR set the DOS code to run in V86 mode.
PurpleGurl wrote: There is a messy thunker system to reconcile the 16-bit and 32-bit portions.
Yes. USER/GDI/KERNEL "Chicago" based-OSs Core have a mixture of 16Bit and 32Bit code. But the inner "real" OS compound, the VMM and the VxDs, all them are pure 32bit components.

In some sense, Win9x family alike a sort of fine tuned ESXi-like OS with the only purpose of running Win32 and DOS VMs. In Win98, MS even backported a micro version of the NT kernel as VxD, with the sole purpose of running WDM drivers.

There aren't many books talking about this, but for sure some parts are well documented. Both Undocumented DOS and Unauthorized Win95 from Andrew Schulman can give a better light about the subject. But i wouldn't recommend a replicate project of a technology who relies heavily in x86 quirks, and with an OS kernel almost purely made in 32Bit ASM like Win9x. Such energy can better be focused in learn WDM and help ReactOS with that knowledge (I mention WDM as it requires almost the same effort as recreating VxDs for an hypothetical attempt to resurrect W9X, you guys can see it in the ReactOS USB GSoC project).

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

Re: Open Source of DOS Based Windows Based Operating System

Post by PurpleGurl »

The post above this one is fascinating. Thanks for the corrections. I didn't know how that worked. I assumed it was all a 16-bit DOS underneath. If that is not the case, then how can the same command interpreter be used both before Windows 9x loads and during? Or is the DOS underneath 32-bit all the way?

Now, speaking of 16-bit, I like that we will likely be able to run 16-bit even when we port to 64-bit. The emulator is currently 32-bit and runs 16-bit code. So since 32-bit can run in long mode, and our NTVDM is an emulator, it should be able to run under 64-bit, regardless of whether it is ported.

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

Re: Open Source of DOS Based Windows Based Operating System

Post by EmuandCo »

A 64 bit MSVC build of NTVDM does work fine already. But current MS OSes won't contact a NTVDM anymore, thus you have to load DOS files in a "ntvdm path\to\xyz.exe" way. Aaaand newer OSes (8, 8.1, 10 etc) dont support GFX output in CMD anymore.
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

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

Re: Open Source of DOS Based Windows Based Operating System

Post by PurpleGurl »

I understand, but I meant 64-bit ROS. What you discuss doesn't happen until 8.x+. I remember on 64-bit of 7 where I was trying to run Duke Nukem 3d, Doom and others and none of them would work. I first tried DOSBox, and that worked, though with occasional performance issues, but then I realized that most of the games I use had 32-bit 3rd-party engine ports. For instance, Id Software eventually open-sourced most of their game engine code, and EDuke will run the Duke Nukem game files. There is one that will run Hexen files, but it is very buggy.

I think if we ever get to 8+ compatibility, we could add kernel support for older .EXE files, thus adding the ability to forward to NTVDM, even though Microsoft doesn't.

raijinzrael
Posts: 10
Joined: Thu Jul 19, 2012 2:39 pm

Re: Open Source of DOS Based Windows Based Operating System

Post by raijinzrael »

PurpleGurl wrote:The post above this one is fascinating. Thanks for the corrections. I didn't know how that worked. I assumed it was all a 16-bit DOS underneath. If that is not the case, then how can the same command interpreter be used both before Windows 9x loads and during? Or is the DOS underneath 32-bit all the way?
VMM kernel has a real mode initialization routine which can be executed only once per session, during static VxD loading and before processor switch to protected 32bit mode. Alongside other stuff it does, this code retrieves DOS memory space and kernel structures, so Windows can know where DOS and all its drivers and TSRs are located. Then VMM, still in real mode, prepares them, basically protecting the first megabyte from the memory map, in such way DOSMGR can manage this instance as the primary DOS VM, from where all the rest of DOS boxes will be created later. When this critical real mode init routine ends, VMM is finally prepared to switch processor to protected mode 32bit mode, boot its main 32bit image and the rest of the VxDs.

As you can see, DOS is never moved or changed in any way from the location where IO.sys left it during DOS boot stage. The first created DOS VM is also used to access FS compatibility mode, TSR usage from windows, and a few things more. When you open a DOS box session, DOSMGR copies the first megabyte of memory of the Main DOS VM to the virtual memory map of the new created DOS VM and runs the code in V86 mode, like any other VM software would do. DOSMGR ensures coherency across all the spawned DOS VM copies, and the main DOS VM. VMM can also request DOSMGR assistance to run real mode code under the main DOS VM, for compatibilty purposes. DOS boxes never access main DOS VM, only VMM can, and only under certain circustances. As you can see, VMM/DOSMGR/Main DOSVM is similar to Xen, where you have the Hypervisor Kernel, the Dom-0 VM where the main system instance runs, and infinite Dom-U "boxes".

As a side note, DOSMGR also maintains its kernel and data structures safely protected and separated from VMM and Windows so them can be removed later when you do things like "Restarting in DOS mode" function.

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests