News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Help Making an Operating System.

Started by AeroASM, April 16, 2005, 01:26:16 PM

Previous topic - Next topic

AeroASM

I have successfully conquered the basics of protected mode, but I have realised that there are many other things to do. I have to:

Understand paging
Understand task-switching
Understand DMA (is it needed?) and the A20 thingy??

Make an SVGA driver
Make a hard disk driver and FAT32 filesystem
Make keyboard and mouse drivers

I am not looking for examples of how to do these things. Rather I am asking for advice on whether this is the right approach, any useful sites you might know and maybe a broad approach of how to actually do these things.

Thanks everybody.

(By the way, my philosophy for my OS is for it to be fully compatible with Windows; no reformatting of hard disks or anything like that.)


roticv

I think you need to get past A20 first. No big problem with that - all you need to do is find some available A20 codes online and throw it in your os.  :toothy I think the next most important thing to do is set up your idt and gdt and change your irq.

MichaelW

The source code for a complete 32-bit, message-based, multitasking, real-time operating system is available for download here:

http://www.sensorypublishing.com/mmurtl.html

The source includes a C compiler and an assembler. The book, which is not free, includes an Architecture and General Theory section of ~100 pages, and a specific details section of ~200 pages.

eschew obfuscation

thomasantony

Hi,
  Keyboard drivers are easy enough if you understand it. I am stuck at making a memory manager for my OS :red . Get my OS at http://www.tomasm.tk/ . It has Floppy disk driver with FAT12, keyboard, etc. in protected mode wiyth a basic commandline

Thomas Antony :U
There are 10 types of people in the world. Those who understand binary and those who don't.


Programmer's Directory. Submit for free

tenkey

Quote from: AeroASM on April 16, 2005, 01:26:16 PM
(By the way, my philosophy for my OS is for it to be fully compatible with Windows; no reformatting of hard disks or anything like that.)

If this only means a compatible (FAT) file system, that's probably doable. However, making an OS that can run any commercial Windows application is too ambitious.
A programming language is low level when its programs require attention to the irrelevant.
Alan Perlis, Epigram #8

AeroASM

I overestimated when I said "fully compatible". Basically the reason is that I use the same computer for my schoolwork, and don't want to get it screwed up, and so by compatible I meant I can shutdown, boot to my own OS, shutdown, and boot to Windows without any hiccups.

roticv

You can make sure that none of your data on your hdd gets destroyed by not touching data on your hdd at all. Just load everything from the floppy and don't touch the hdd at all.

thomasantony

Quote from: AeroASM on April 20, 2005, 06:33:55 PM
I overestimated when I said "fully compatible". Basically the reason is that I use the same computer for my schoolwork, and don't want to get it screwed up, and so by compatible I meant I can shutdown, boot to my own OS, shutdown, and boot to Windows without any hiccups.
Yeah,
    I was about to say that. Make a FAT12 compatible bootsector to load the files from the floppy. Maybe make a secondary loader to load the kernel and set up everything else. So you don't touch the HDD. When you want to boot, boot from the floppy. Also its bad to rebott to test every small change you make. Instead run it in an emulator like Bochs. ( http://bochs.sourceforge.net/ )

Thomas :U
There are 10 types of people in the world. Those who understand binary and those who don't.


Programmer's Directory. Submit for free

AeroASM

I have no floppy drive. (or floppy disks)

roticv

What about a USB thumbdrive or something?

Bieb

Wow, all the young people seem to be wanting to make OS's all of a sudden.  I'd jump onto the bandwagon, but I'm just not that ambitous.  Good luck to y'all, and may you one day supplant Linux.  :U

AeroASM

I have no usb stick either. Bieb, would you consider teaming up with me?

Bieb

Actually, I think I will.  I'm completely at a loss for what to do as my next project, and working on an OS should be a great learning experience.  Email me with the details, please.  Oh, and you should probably go for something like VM Ware for testing it.  I'm considering buying it myself.

thomasantony

Hi,
   I personally use Bochs for OSDev. YOu need to learn how to use its scripts and then its really easy. It also has a good debugger. I recommend checking out http://www.osdever.net/ , http://www.mega-tokyo.com/ and google. The Osdeve.net site had a forum but its down now because some a**holes hacked i sometime ago. They are not putting it up for sometime.

Thomas :U
There are 10 types of people in the world. Those who understand binary and those who don't.


Programmer's Directory. Submit for free