Hi,
I guess i am new to this list.
I have been a maintainer on the FreeDOS project for more then 7 years.
I have also noticed that you are still looking into building a DOS subsystem in reactos.
After the release of FreeDOS version 1, I would like to see wether I could not take up the task to having it running under reactos.
My main idea involves using a port of DOSemu.
Is there any documentation regarding the running of a DOS subsystem in windows that I should study beforehand?
Imre
Imre Leber wrote:
Hi,
I guess i am new to this list.
I have been a maintainer on the FreeDOS project for more then 7 years.
I have also noticed that you are still looking into building a DOS subsystem in reactos.
After the release of FreeDOS version 1, I would like to see wether I could not take up the task to having it running under reactos.
My main idea involves using a port of DOSemu.
Is there any documentation regarding the running of a DOS subsystem in windows that I should study beforehand?
Imre
Hi Imre! Welcome to ReactOS! 8^D
The idea is still open.
We've tested Qemu under ReactOS running FreeDOS at one time and it does work. Another project that was tested, DOSBox, it works like DOSemu, http://dosbox.sourceforge.net/
Running a dos-subsystem and docs? Maybe one of the other developers can help here. You can look at the OS2 subsystem at http://svn.reactos.ru/svn/reactos/trunk/os2/ , it's incomplete, this would be your best starting point. There is allot more to it. You need to dive into the code and start reading. I do not recall any docs or books dealing with rolling your own subsystem. The best book you can get for understanding Windows or ReactOS is, Windows Internals. Understanding the Csrss subsystem would help with the os2 one.
Anyway, some projects that could be good examples on how to do this, Posix subsystem, http://sourceforge.net/projects/winntposix ,and running linux bins in windows, http://sourceforge.net/projects/keow . One of our developers is currently working with CoLinux, http://www.colinux.org/ .
Sorry I couldn't help you more here.
Thanks, James
I've wanted to write an NTVDM for ReactOS, but I'm not sure when I'd ever have time.
Windows NT's DOS subsystem, NTVDM, is a user-mode program that runs on top of Win32. It runs DOS programs as Windows processes, using v86 mode to run the programs. DPMI programs are supported by asking the kernel to allocate LDT segments and running directly. (If you write a DOS32 program and know the correct addresses, you can call MessageBoxW in user32.dll and it will work.)
This differs significantly from DOSBox, which is effectively a machine emulator rather than an API translator. DOSEmu, in comparison, is essentially the same design as NTVDM but for Linux.
FreeDOS in DOSBox works very well, because the FreeDOS kernel is its normal self and is unaware that it's inside a VM. However, this doesn't work for NTVDM/DOSEmu. In these, the FreeDOS kernel will need to be heavily modified, particularly because the NT kernel handles file I/O. Programs inside the virtual DOS environment use illegal opcodes to talk to NTVDM.
Melissa
----- Original Message ----- From: "James Tabor" jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net To: "ReactOS Development List" ros-dev@reactos.org Sent: Monday, August 28, 2006 14:19 Subject: Re: [ros-dev] (Free)DOS subsystem
Imre Leber wrote:
Hi,
I guess i am new to this list.
I have been a maintainer on the FreeDOS project for more then 7 years.
I have also noticed that you are still looking into building a DOS subsystem in reactos.
After the release of FreeDOS version 1, I would like to see wether I could not take up the task to having it running under reactos.
My main idea involves using a port of DOSemu.
Is there any documentation regarding the running of a DOS subsystem in windows that I should study beforehand?
Imre
Hi Imre! Welcome to ReactOS! 8^D
The idea is still open.
We've tested Qemu under ReactOS running FreeDOS at one time and it does work. Another project that was tested, DOSBox, it works like DOSemu, http://dosbox.sourceforge.net/
Running a dos-subsystem and docs? Maybe one of the other developers can help here. You can look at the OS2 subsystem at http://svn.reactos.ru/svn/reactos/trunk/os2/ , it's incomplete, this would be your best starting point. There is allot more to it. You need to dive into the code and start reading. I do not recall any docs or books dealing with rolling your own subsystem. The best book you can get for understanding Windows or ReactOS is, Windows Internals. Understanding the Csrss subsystem would help with the os2 one.
Anyway, some projects that could be good examples on how to do this, Posix subsystem, http://sourceforge.net/projects/winntposix ,and running linux bins in windows, http://sourceforge.net/projects/keow . One of our developers is currently working with CoLinux, http://www.colinux.org/ .
Sorry I couldn't help you more here.
Thanks, James
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Myria wrote:
I've wanted to write an NTVDM for ReactOS, but I'm not sure when I'd ever have time.
Windows NT's DOS subsystem, NTVDM, is a user-mode program that runs on top of Win32. It runs DOS programs as Windows processes, using v86 mode to run the programs. DPMI programs are supported by asking the kernel to allocate LDT segments and running directly. (If you write a DOS32 program and know the correct addresses, you can call MessageBoxW in user32.dll and it will work.)
This differs significantly from DOSBox, which is effectively a machine emulator rather than an API translator. DOSEmu, in comparison, is essentially the same design as NTVDM but for Linux.
FreeDOS in DOSBox works very well, because the FreeDOS kernel is its normal self and is unaware that it's inside a VM. However, this doesn't work for NTVDM/DOSEmu. In these, the FreeDOS kernel will need to be heavily modified, particularly because the NT kernel handles file I/O. Programs inside the virtual DOS environment use illegal opcodes to talk to NTVDM.
Melissa
True Closest Freedos to Windows NT NTVDM is http://freedos-32.sourceforge.net/. Its was newer version under development. It could be stalled from 2005.
Peter Dolding
--- Peter Dolding oiaohm@bluebottle.com a écrit :
True Closest Freedos to Windows NT NTVDM is http://freedos-32.sourceforge.net/. Its was newer version under development. It could be stalled from 2005.
Its still active, but they dont release very often. (they even have a windows module) working good afaict.
Kind regards, Sylvain Petreolle (aka Usurp) --- --- --- --- --- --- --- --- --- --- --- --- ---
Run your favorite Windows apps with free ReactOS : http://www.reactos.org Listen to non-DRMised Music: http://www.jamendo.com
Linux is not as well stable as it is told to. The proof is, mine has restarted two years ago, on the occasion of a power cut. - H. Eychenne
Hello Imre, it's very nice to see you on this mailing list!
A proper, Windows-compatible DOS subsystem would be implementing a NTVDM thing, however it's not a very trivial thing to do (I wish Myria has time to do it somewhen :-) ).
But we thought a lot about using dosbox/qemu/dosemu with a freedos installed in order to give a virtual machine running DOS (FreeDOS) for users. The problem exists though how to access hardware (like harddisks for example)...
I'm interested in your idea, and if you need any help with reactos - please feel free to post here.
With the best regards, Aleksey Bragin ReactOS Project Coordinator
On Aug 28, 2006, at 10:48 PM, Imre Leber wrote:
Hi,
I guess i am new to this list.
I have been a maintainer on the FreeDOS project for more then 7 years.
I have also noticed that you are still looking into building a DOS subsystem in reactos.
After the release of FreeDOS version 1, I would like to see wether I could not take up the task to having it running under reactos.
My main idea involves using a port of DOSemu.
Is there any documentation regarding the running of a DOS subsystem in windows that I should study beforehand?
Imre