Page 1 of 1
Operating System Development...
Posted: Tue Oct 18, 2005 11:00 pm
by HomerJay
Hi, I'm Robert, and I'm new here.
I am interested in developing an Operating System. I don't know what it intails, I know it will take much time, and is very strenuous, please understand that I am not afraid of the hard work, but I want to be guided in the right way so that when I put in that hard work, I will actually get somewhere, he he he. I don't want to work hard, and achieve no result.
I don't know where to start, I honestly have no clue. I don't know anything about Operating System design, and I really need help. What is it that I must do to create an operating system and once completed, what about the User Interface? Where do I start???
Please Help...
Re: Operating System Development...
Posted: Wed Oct 19, 2005 11:00 pm
by Legend
First you should know a programming language, if you don't know one already. C is very popular for kernel development - basically all tutorials have C example, some have Assembler examples. Pascal is used sometimes, too.
And a bit of Assembler is necessary in every case.
You should learn a language by writing small applications first. Learning a language and os development results in copy & paste and not working results in most cases!
After that, a good start is tryin to write a "Hello World"-Kernel with a bootloader for it.
Re: Operating System Development...
Posted: Wed Oct 19, 2005 11:00 pm
by blackcatcoder
I would say for the bootloader you should use asm and later on C.
But it is in your hands!
Try to learn enough about machine architecture, like i386 and so on!
Cpu Register, Real Mode, Protected Mode, and so on
There are a lot of tuts on the Internet which can help you !
Try to google "pm tuts".
If you find a tutorial don't copy & paste code try to understand what there is standing!
Don't worry at the beginning about a User Interface or graphical support. Do it step by step !
Happy coding
Re: Operating System Development...
Posted: Wed Oct 19, 2005 11:00 pm
by JAAman
get the intel manuals!!
they will be your best friend!!
http://developer.intel.com/design/penti ... m#sdm_vol1
get all 4: they tell everything you could ever want to know about all PC CPUs from the 386 to the latest P4s (AMDs CPUs are fully compatable)
the RBIL is good also
## ---- ----- RBIL
get all the files especially parts A-F and RBILview 2.1 (much better than useing notepad! though you'll need to use combine first)
Re: Operating System Development...
Posted: Wed Oct 19, 2005 11:00 pm
by HomerJay
Me Again...
Alright, now, please correct me if I'm wrong, but I'm guessing that I have to first understand more about machine architecture, I have a site that will help me on that. Second, I have to develop a kernel. Once I've developed a kernel, then what do I do? I'm tired of searching in google, I can't find what I'm looking for, which is why I've come to professionals like yourselves. How do I write a kernel, please guide me through the process. So my ultimate questions, how do I write a kernel, and what is it that I must do after I have developed a kernel???
Re: Operating System Development...
Posted: Thu Oct 20, 2005 11:00 pm
by JAAman
by the time you have a useable kernel you won't need to ask what to do next (and several years will have passed
the best way to learn the architecture is to read the intel manuals and listen to what other people are saying
and get the references i pointed you to -- the intel manuals and RBIL (more important if you decide to create your own boot loader but much of it can be helpful to everyone -- you just can't use BIOS-ints once your in PMode but the RBIL also includes <1MB memory maps and port assignments)
you will need a way to boot: either write your own boot code or use grub
then you will need to write all the interface code:
remap (and disable) the PIC
set up your idt/gdt
create handlers for CPU exceptions
reinable and write handlers for your hard-ints
create a memory manager
setup your paging system
create basic drivers
Re: Operating System Development...
Posted: Thu Oct 20, 2005 11:00 pm
by blackcatcoder
my best advice is ---> just try !
Learning by doing!
try to code a little boot loader like
nasm style:
[ORG 0x7C00]
;this is my first boot loader
startup:
jmp startup ; only for now endless loop
;try to write an output function
;with int 0x10
times 510-($-$$) db 0
dw 0xAA55
Re: Operating System Development...
Posted: Fri Oct 21, 2005 11:00 pm
by earlz
my best advice for the future is when you start making interrupt handlers especially counting timer ticks make sure to know what volatile is