FDOS / kernel

FreeDOS kernel - implements the core MS-DOS/PC-DOS (R) compatible operating system. It is derived from Pat Villani's DOS-C kernel and released under the GPL v2 or later. Please see http://www.freedos.org/ for more details about the FreeDOS (TM) Project.
http://kernel.fdos.org/
GNU General Public License v2.0
817 stars 143 forks source link

port to other Arch? #105

Open juanpc2018 opened 1 year ago

juanpc2018 commented 1 year ago

have the project considered port to other architecture?

Motorola 68K 010, 020, 030, 040, 060, 080 big.endian, Amiga500-2000,3k,4k, AtariST, Apple McIntosh https://youtu.be/oyR-2HlAkv4?t=448 "pc-speed" https://www.youtube.com/results?search_query=amiga+ms-dos https://www.youtube.com/hashtag/doscember https://www.youtube.com/hashtag/doscember2021

FPGA https://www.minimig.ca/ https://lotharek.pl/productdetail.php?id=45 https://www.shop.apollo-computer.com/products/apollo-firebird-v4 https://www.shop.apollo-computer.com/products/real-time-clock-module-ds3231 PiStorm32 "Pi4 M68K emulation"

Armv8 ? Pi4 Odroid N2+

PowerPC 970? "5+" Altivec PowerMac G5 2003-2005 G4 G3

PowerPC 9 ? https://www.raptorcs.com/content/base/products.html

PPC 5 SAM460 https://shop.acube-systems.biz/sam-motherboards/124-sam460.html Amiga X5000 A-EON

lss4 commented 9 months ago

Sorry for a late bump of this question.

I think DOS depends on a lot of APIs provided by x86 BIOS so you'll need to adapt those API uses on the target CPU architecture you intend to port.

Not to mention some of the code are written in x86 assembly, that you pretty much need to rewrite them using the assembly of your target CPU architecture, or if possible, reimplement most if not all of them in C.

For modern CPU targets like ARMv8, however, I think the first thing needs to be done is making generic UEFI booting possible, as these architectures also have UEFI support and it's already being used on some boards.

juanpc2018 commented 9 months ago

U-Boot is the most popular Bootloader, used in Pi5 Proxmox, Amiga X5000 PowerPC Fienix, etc...

it would also require to use QEMU* to emulate x86 in other CPU's. the P550 Pro could be very interesting... other interesting for ARMv8 are the NVIDIA Orin AGX IGX VisionFive 2 RISC-V FPGA Cores 80186 for MIST, MISTer, etc... Pi5, Pi4,...

Step #1. Convert everything to C Step #2. Change Bootloader. Step #3. Add QEMU

can also be done backwards... Step #1. Add QEMU Step #2. Add HW emulation PCem, 86Box

*Wine is API call to POSIX translator, it wont work. but there are very insteresting HW x86 emulations: PCem, 86Box, etc...

FPGA systems are more flexible & desired, can emulate all Retro Gaming setups, but are limited by Speed / Price., FPGA M68K 040 or 080 vs. PiStorm32 Pi4 Bare Metal Emulation of Motorola 68k CPU is much faster Dhrystones.

MIST is Cyclone3 "The Cheapest", MISTer is Terasic DE10-nano Cyclone-V, minimig comes with Original M68k CPU, but can be upgraded.

The prefered Cross Platform Benchmarks are usually Doom, Quake 1,2,3,4 or Dhrystones Atari Falcon060, sgi IRIX Tezro, Amiga, PowerMac G5, X5000, minimig, Vampire4+, PiStorm32, etc...

P.D. i think this should be moved to Discussions Tab.

lss4 commented 9 months ago

it would also require to use QEMU* to emulate x86 in other CPU's.

Step #1. Convert everything to C Step #2. Change Bootloader. Step #3. Add QEMU

can also be done backwards... Step #1. Add QEMU Step #2. Add HW emulation PCem, 86Box

*Wine is API call to POSIX translator, it wont work. but there are very insteresting HW x86 emulations: PCem, 86Box, etc...

... That won't be "porting" anymore as you're basically emulating x86 on other architectures. For DOS-related stuffs on modern CPU architectures, DOSBox ports could already achieve what you want.

IMO by porting it's to be able to compile and boot the DOS kernel natively on the CPU architecture of choice. However, this is only to get the kernel itself to run. To run your favorite DOS programs natively on another architecture would be a different story.

On the other hand, there's also this PDOS (Public Domain Operating System) project aiming at making some kind of DOS-like environment hopefully across different CPU architectures.

P.D. i think this should be moved to Discussions Tab.

I think so, though don't expect this to happen soon, as it won't be an easy task.