OSDev.org
https://forum.osdev.org/

Where to start when making a DOS
https://forum.osdev.org/viewtopic.php?f=8&t=31717
Page 1 of 1

Author:  noobking111 [ Sun Apr 30, 2017 7:55 pm ]
Post subject:  Where to start when making a DOS

Trying to craft my own DOS, just a basic run of the mill dos like OS. Don't know where to start, any idea?

Author:  StudlyCaps [ Sun Apr 30, 2017 9:45 pm ]
Post subject:  Re: Where to start when making a DOS

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.

Author:  Brendan [ Mon May 01, 2017 2:59 am ]
Post subject:  Re: Where to start when making a DOS

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

Author:  ~ [ Mon May 01, 2017 4:30 pm ]
Post subject:  Re: Where to start when making a DOS

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

Author:  obiwac [ Tue May 02, 2017 1:39 pm ]
Post subject:  Re: Where to start when making a DOS

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.

Author:  Kevin [ Wed May 03, 2017 3:08 am ]
Post subject:  Re: Where to start when making a DOS

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.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/