Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 Oct 1997 23:35:43 +0930
From:      Mike Smith <mike@smith.net.au>
To:        cfdupuis@juno.com (Charles F. Dupuis)
Cc:        emulation@freebsd.org
Subject:   Re: 1.4 Can I run DOS binaries under FreeBSD? 
Message-ID:  <199710011405.XAA00410@word.smith.net.au>
In-Reply-To: Your message of "Wed, 01 Oct 1997 06:51:40 EST." <19971001.065141.3822.0.cfdupuis@juno.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Your note states that you are looking for someone to write the DOS
> support for FreeBSD. I am an assembly language programmer, and I was
> wondering if you could tell me if there is a book of code on your system?

Hi Charles.  At this stage in FreeBSD-current what we have is a 
reasonably function vm86-mode DOS emulation package, desperately in 
need of attention from people familiar with DOS.  If you feel that you 
fit the bill here, well, what can we do to help you along?

Regrettably, there isn't "a book" about FreeBSD.  There are a couple of 
good books which discuss the systems it has evolved from (particularly 
'The Design and Implemetentation of the 4.4 BSD Operating System'), 
however it's very hard to write a definitive book about a work in 
progress.

If you are interested in getting further involved, you will need to get 
FreeBSD-current up and running, and subscribe to the FreeBSD-emulation 
mailing list (copied on this message).  If you need help getting 
-current up and running, please let me know.

> I have several books of free dos kernels that could be modified to work
> with your system. I will also need to how I could compile and link my
> assembly code with your code. I also have several books on Windows and
> could attempt to write an interface for Windows 3.1 programs to run in
> FreeBSD. 

To work with the FreeBSD DOS emulation, you will be interfacing with a 
couple of major code components; the CPU emulation module and the DOS/
BIOS emulation module.  

Most of the CPU emulation is handled inside the FreeBSD kernel, where 
traps from vm86 mode are handled and the virtual CPU state updated.  
Some of these traps are passed through to code running in userspace 
alongside the DOS emulation image, and it is this code that attempts to 
emulate DOS and the BIOS.

For the sake of comprehensability and maintainability, almost none of 
any of this code is written in assembler, however a good understanding 
of Intel assembly and Intel processors as well as the DOS/BIOS 
environment is required to work on it.

If you are strongly motivated in the Windows arena, you might wish to 
investigate the WINE project.  WINE is a well-established Win16/Win32 
emulation package which runs on a number of free operating systems, 
including FreeBSD.

I hope this has been of some use to you; please let us/me know if we 
can be of any assistance in getting started.

mike





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710011405.XAA00410>