Page 1 of 1
Where to start when making a DOS
Posted: Sun Apr 30, 2017 7:55 pm
by noobking111
Trying to craft my own DOS, just a basic run of the mill dos like OS. Don't know where to start, any idea?
Re: Where to start when making a DOS
Posted: Sun Apr 30, 2017 9:45 pm
by StudlyCaps
Have you looked at
OSDev wiki - Getting Started and
OSDev wiki - Bare Bones?
Beyond that, try to make up a list of things you want your OS to be able to do, if by DOS you specifically mean MS-DOS then look up how MS-DOS worked. How it executed programs, organized memory, what protections it did, or didn't offer for programs and user data.
From my own experience, the best place to start is to try to come up with goals for your project, break it down into simple steps. Once you know
what you want to do, it's usually not that hard to find out
how to do it.
Re: Where to start when making a DOS
Posted: Mon May 01, 2017 2:59 am
by Brendan
Hi,
noobking111 wrote:Trying to craft my own DOS, just a basic run of the mill dos like OS. Don't know where to start, any idea?
My advice is to start with UEFI.
The reason for this is that UEFI has everything DOS does (FAT, memory management, shell, etc) but is more modern (is 64-bit, has proper network support, is able to handle 2 or more monitors, etc); and this will help to make it obvious that your OS (when it's finished) will be less useful than not having any OS installed at all.
Cheers,
Brendan
Re: Where to start when making a DOS
Posted: Mon May 01, 2017 4:30 pm
by ~
You can see how to compile the latest FreeDOS 1.2 here:
Tutorial: Compile and Use FreeDOS 1.2
You can get the book "The FreeDOS Kernel", by Pat Villani. It also contains source code.
There's a copy at the Internet Archive. The copy at the Internet Archive contains code for FreeDOS 1.0b2 and FreeDOS 0.90, although the book originally comes with FreeDOS 0.91a, compatible with DOS 3.3, but 0.91a is very hard to find without a book with the floppy disk.
http://archive.org/search.php?query=freedos%20pat%20villani
To connect the functionality of your OS with the BIOS, you will also need to understand the BIOS. For that you will need to use the 3 System BIOS books from Phoenix. There are copies at the Internet Archive:
Phoenix System BIOS Books/Manuals from 80's/90's
Re: Where to start when making a DOS
Posted: Tue May 02, 2017 1:39 pm
by obiwac
Brendan wrote:Hi,
noobking111 wrote:Trying to craft my own DOS, just a basic run of the mill dos like OS. Don't know where to start, any idea?
My advice is to start with UEFI.
The reason for this is that UEFI has everything DOS does (FAT, memory management, shell, etc) but is more modern (is 64-bit, has proper network support, is able to handle 2 or more monitors, etc); and this will help to make it obvious that your OS (when it's finished) will be less useful than not having any OS installed at all.
Cheers,
Brendan
I don't know much about UEFI, but, for me, the fun of making an os is doing everything myself. UEFI removes that. Again, I don't know much about UEFI, so correct me if I'm wrong.
Re: Where to start when making a DOS
Posted: Wed May 03, 2017 3:08 am
by Kevin
obiwac wrote:I don't know much about UEFI, but, for me, the fun of making an os is doing everything myself.
The question is always how you define "everything". DOS relied heavily on the BIOS, so you could argue that it wasn't doing everything by itself either. Relying heavily on UEFI would indeed be the modern-day equivalent. Of course, UEFI does a lot more than the BIOS did, so you'd have to figure out what pieces of additional functionality you can still deliver (I think this is Brendan's point).
Of course, when someone talks about making "a DOS", I understand that they want to make something that can run existing DOS programs. In this case, you obviously have to make the same design decisions as DOS made back then and keep using the BIOS. Well, or I guess you could just implement the necessary BIOS interfaces yourself and basically just treat them as part of your syscall interface.