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
