On 3/13/08, Andrew Wan <[EMAIL PROTECTED]> wrote:
>
> Is freedos a reverse engineering of MS-DOS... built on IA32
> architecture? Are there any ports to say... mac, sun, and other
> architectures?
>  Am curious whether freedos can be natively ported to other
> platforms... like PSP, etc.
>
>  What steps are required for one to do if one wants to port freedos natively
> to PSP?
>

Pat Villani (original author of our kernel) has a great comment about
this on his blog. <http://www.opensourcedepot.com/blog/> I think it
answers your question very well. Note the original version of the
kernel was called "DOS-C" before it was renamed "The FreeDOS Kernel":

>>>>
Here's some insight into the original design: the original FreeDOS
kernel was an embedded operating system kernel surrounded by two
compatability layers. The upper most layer implemented the DOS API and
the lower layer was the machine interface, which included processor
support code as well as virtual machine (VM) and I/O support. The
embedded OS was highly influenced by Unix, as is apparent by the use
of an fnode, which was modeled after the the Unix inode. Same is true
of separate block and character I/O, also part of the design of Unix
V7. The VM support was replaced by macros MK_FP and friends, although
some of the original code such as fbcopy() remained. This was because
the original memory manager was replaced in the FreeDOS version of
DOS-C by one that implemented the MS-DOS linked list. The use of weird
macros COUNT, BYTE, etc., were meant to make various types
transparent, allowing me to keep objects such as bytes, signed and
unsigned 16 bit integers, etc., straight across target processors.

[...]
Over the years since that first code was released, many more of what I
had termed "MS-DOS Warts" were written into the operating system, my
command.com was abandoned in favor of another version that was written
from scratch by other project members, and many new device drivers and
utilities were added to make it not only a true MS-DOS look alike but
extends it with a distribution that truly makes it a usable operating
system for small systems. Unfortunately, it is no longer portable as
much of the code base was either changed to save 3 bytes here and
there, processor specific code is no longer contained in a few files,
and special types defined in portab.h meant to make the code portable
are either improperly used or not used at all.

Unfortunately, this makes moving the design forward to new platforms
very difficult, if not nearly impossible. There is no way that you can
simply recompile many of the files and expect it to operate properly
on another platform, much less a non-Intel processor.
<<<<


So while it is theoretically possible to make a version for PSP (or
some other non-Intel platform) it would be a lot of work to do so. And
by "a lot" I mean that someone would basically have to pick apart the
kernel and piece it back together, rewriting all the little bits that
are currently targeted for ia32. You certainly won't see a parallel
version of FreeDOS for other platforms; it would need to be a fork
from a specific version of the FreeDOS kernel.



-jh

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to