Operating System Development...

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
HomerJay
Posts: 2
Joined: Tue Oct 18, 2005 11:00 pm
Location: Canada

Operating System Development...

Post 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...
Thanks,
Robert

<iframe name="I1" width="861" height="121" src="http://24.84.94.165/thanks.html">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
Legend
Member
Member
Posts: 195
Joined: Tue Nov 02, 2004 12:00 am
Contact:

Re: Operating System Development...

Post 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.
*post*
blackcatcoder
Member
Member
Posts: 132
Joined: Wed Nov 03, 2004 12:00 am
Location: Austria
Contact:

Re: Operating System Development...

Post 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 ;-)
User avatar
JAAman
Member
Member
Posts: 879
Joined: Wed Oct 27, 2004 11:00 pm
Location: WA

Re: Operating System Development...

Post 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)
HomerJay
Posts: 2
Joined: Tue Oct 18, 2005 11:00 pm
Location: Canada

Re: Operating System Development...

Post 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???
Thanks,
Robert

<iframe name="I1" width="861" height="121" src="http://24.84.94.165/thanks.html">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
User avatar
JAAman
Member
Member
Posts: 879
Joined: Wed Oct 27, 2004 11:00 pm
Location: WA

Re: Operating System Development...

Post 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
Last edited by JAAman on Thu Oct 20, 2005 11:00 pm, edited 1 time in total.
blackcatcoder
Member
Member
Posts: 132
Joined: Wed Nov 03, 2004 12:00 am
Location: Austria
Contact:

Re: Operating System Development...

Post 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
Last edited by blackcatcoder on Thu Oct 20, 2005 11:00 pm, edited 2 times in total.
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

Re: Operating System Development...

Post 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
Post Reply