Want to work on subsystem

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

mf
Developer
Posts: 368
Joined: Mon Dec 27, 2004 2:37 pm
Location: Eindhoven, NL
Contact:

Post by mf »

"look at" != "take code from". It's open source, and as far as international law is concerned, looking at freely available source code for inspiration is not illegal.
Headstrong
Posts: 52
Joined: Sun Nov 28, 2004 6:26 pm
Location: Scotland UK

Post by Headstrong »

i agree, "look at" != "take code from" but I was under the impression that openDOS was NOT open source.

http://www.drdos.com/products/buyout.htm

but the code has been bought a sold so many times i have lost track of who owns it now.
mf
Developer
Posts: 368
Joined: Mon Dec 27, 2004 2:37 pm
Location: Eindhoven, NL
Contact:

Post by mf »

HUMA2000
Posts: 235
Joined: Sat Nov 27, 2004 1:06 pm
Location: España, al sur con el solecito
Contact:

Post by HUMA2000 »

Use FreeDOS' code instead. It's open source.
AcetoliNe
Posts: 115
Joined: Wed Jan 05, 2005 10:53 pm
Location: a thousand miles from Hinterland
Contact:

Post by AcetoliNe »

While using their code may be beneficial, it is probably better to just share knowledge and experience. A subsystem is probably mostly incompatible with most of their sources anyway. In my view, solid knowledge of DOS interrupts, memory management, etc... (which few people have) is much more valuable than lines and lines of badly written indecipherable code.
caveman LIKES chocolate.
we shall reinvent the wheel until it turns properly.
azeemarif
Posts: 25
Joined: Fri Dec 31, 2004 8:53 am

Post by azeemarif »

hello,

I am back with my silly posts :-)

But this time, after seriously reading and experimenting with FreeDos and DosEmu code.

As many people suggested FreeDOS as an option to run as ReactOS subsystem, I concentrated more on FreeDOS.

Something I came to know are

1) We need ReactOS DOS/Win16 subsystem so that we can run 16bit DOS applications on ReactOS.

2) FreeDOS itself is 16bit system

3) Compiling FreeDOS code with 32bit compiler is so difficult that it gave birth to a new project FreeDOS-32 (I tried compiling FreeDOS code with MinGW with no success)

4) FreeDOS-32 is in its infancy. Currently it can't even run simple DOS applications

5) DOSEmu is really slow



Please give your valuable suggestions.

AcetoliNe: I agree with your last post.
AcetoliNe
Posts: 115
Joined: Wed Jan 05, 2005 10:53 pm
Location: a thousand miles from Hinterland
Contact:

Post by AcetoliNe »

FreeDOS-32 is in its infancy. Currently it can't even run simple DOS applications
I agree.
Compiling FreeDOS code with 32bit compiler is so difficult that it gave birth to a new project FreeDOS-32 (I tried compiling FreeDOS code with MinGW with no success)
That doesn't necessarily mean that FreeDOS can't be compiled with a 32-bit compiler. It just means it can't be compiled with MinGW. DJGPP perhaps? Also, check that you're using the right compiler options. The executables need to be in MZ format, not PE format.

FreeDOS is useless as a subsystem because it is a seperate OS. It needs its own kernel, etc... in order to run. Some parts of it COULD be used, but I don't think that's very likely.

Anyways,
After a lot of pouring through emulators and testing them out, I think that the best solution is Virtual Real Mode, because it is the way Windows implements DOS. The only caveats to this are:

1. Since it's part of the OS (which has been Windows up to now) no already-implemented free solutions exist. It'll have to be 100% rewritten from scratch.
2. It will only run on x86 processors, which means that if ReactOS gets ported to another cpu architecture the subsystem will have to be rewritten.

It is however, the way Windows does it, which means full coherence with the Windows DOS subsystem, and it is also very fast (possibly the fastest option available).
caveman LIKES chocolate.
we shall reinvent the wheel until it turns properly.
azeemarif
Posts: 25
Joined: Fri Dec 31, 2004 8:53 am

Post by azeemarif »

the best solution is Virtual Real Mode, because it is the way Windows implements DOS
I agree that Virtual Real Mode seems to be the right choice. Not because windows does it this way but because it will save a lot of time on x86. ReactOS is almost usabale and DOS subsystem work has still not started.

1. Since it's part of the OS (which has been Windows up to now) no already-implemented free solutions exist. It'll have to be 100% rewritten from scratch.
2. It will only run on x86 processors, which means that if ReactOS gets ported to another cpu architecture the subsystem will have to be rewritten.
Actually, both of the above mentioned points are good for us. As we have to write everything from scratch, we can design it in such a way that code is reusable as much as possible while porting to other processor architecture.
AcetoliNe
Posts: 115
Joined: Wed Jan 05, 2005 10:53 pm
Location: a thousand miles from Hinterland
Contact:

Post by AcetoliNe »

I checked ntoskrnl and it looks like V86 support (the backbone kernel-level code needed for virtual dos) is already more or less implemented in the kernel. Just check out ntoskrnl\ke\i386. I don't know how functional it is though. This will simplify the process of creating a subsystem to a great extent.
About freeDOS, i guess some basic progs such as COMMAND.COM could be used and could save us a lot of time.
Virtual Real mode it is then!
caveman LIKES chocolate.
we shall reinvent the wheel until it turns properly.
forart
Posts: 1050
Joined: Mon Nov 29, 2004 1:36 pm
Location: Italy
Contact:

Post by forart »

I concentrated more on FreeDOS
Check out DOSBox instead !
»Forward Agency NPO
In progress we (always) trust.
mf
Developer
Posts: 368
Joined: Mon Dec 27, 2004 2:37 pm
Location: Eindhoven, NL
Contact:

Post by mf »

patchworks wrote:
I concentrated more on FreeDOS
Check out DOSBox instead !
DOSBox is an emulator. It works by assuming that most games were written for 2-486 and pentium class processors, and that you have a hot gaming rig of at least a gigaherz. This is a cool thing for Windows, but don't you agree it's way cooler if ReactOS implements a DOS subsystem that can run just as many games and more than DOSBox, because it, for a change (compared to WinXP's DOS subsystem), DOES implement a real DOS, and provides everything old games need? At at least twice the speed.
nothin2g
Posts: 39
Joined: Fri Nov 26, 2004 6:42 pm
Location: Zeil in Bayern

Post by nothin2g »

many dos apps directly access hardware.
in NT/ROS no app directly accesses hardware.
how will this issue be solved?
Wir sind die Borg. Widerstand ist Spannung durch Stromstärke.
www.wakka.de
AcetoliNe
Posts: 115
Joined: Wed Jan 05, 2005 10:53 pm
Location: a thousand miles from Hinterland
Contact:

Post by AcetoliNe »

many dos apps directly access hardware.
in NT/ROS no app directly accesses hardware.
how will this issue be solved?
More than many. Basically 99.9% of dos apps directly access the hardware. The fact that many of these programs crash under NT is because of Microsoft's implementation, not because of the weakness of V86 mode.
I believe it is best to emulate hardware. A virtual soundcard (as succesfully done in VDMSound), virtual video card, network card, etc...
In V86 mode, OUT and IN calls are sent to the 32-bit monitor, where they can easily be intercepted and virtual hardware be simulated.
caveman LIKES chocolate.
we shall reinvent the wheel until it turns properly.
Pentiumforever
Posts: 198
Joined: Sun Jan 16, 2005 5:47 pm
Location: Duesseldorf, Germany
Contact:

Post by Pentiumforever »

it would be fine when you integrate a function like the windows 95/98 function "restart in the dos mode" then the user found a freedos (16BIT)

EDIT: Maybe with a dos NTFS/ext2/ext3/reiserfs driver?
frik85
Developer
Posts: 829
Joined: Fri Nov 26, 2004 7:48 pm
Location: Austria, Europe
Contact:

Post by frik85 »

pentiumforever wrote:it would be fine when you integrate a function like the windows 95/98 function "restart in the dos mode" then the user found a freedos (16BIT)

EDIT: Maybe with a dos NTFS/ext2/ext3/reiserfs driver?
A boot option (in FreeLoader) "No GUI". So you can boot ReactOS in text mode. You can start console apps and use NTFS/ext2/ext3/reiserfs driver. if you start a Win32 GUI application the GUI part of ReactOS will load. So you can open winlogon.exe or explorer.exe and you can use Ros in the normal way.
Post Reply

Who is online

Users browsing this forum: DotBot [Crawler], Google [Bot] and 51 guests