Page 1 of 1

Eager to learn

Posted: Sun May 24, 2009 9:19 pm
by lcowles
Hi, I would like to write an OS from scratch. In fact I sort of already have but now I want something different and I have no clue how to do it.

basically I want to code an os that doesn't use the PC-bios at all. I became interested by the linux nobios option when booting from grub.

Also I have never written a multi-threaded, smp or multi-tasking kernel and have no clue how to write an os that can use C & C++ apps or even a C++ kernel from bootloader (may help speed up the nobios thing) so I would like help with that also.

Thank you very much, hello to you all, hopefully I can give something back to the community too

btw check out my blog for VESA info and basic ASM bootloader (doesn't actually load anything)
lewiscowles.wordpress.com

Re: Eager to learn

Posted: Sun May 24, 2009 9:53 pm
by Troy Martin
Welcome!

Search through the wiki, you'll find what you need to get started. Good luck!

--Troy

Re: Eager to learn

Posted: Sun May 24, 2009 9:54 pm
by JackScott
Firstly, check out the wiki (http://wiki.osdev.org), it'll have absolutely everything the beginning OSDever could ever need. And of course, if it doesn't, point it out to us and we'll try and add it.

There are a number of good tutorials to follow as well (though basing a full-blown OS off them is not recommended). One of our members JamesM has written a good tutorial, found here. There's also Bran's kernel development tutorials (found here).

And of course, after reviewing How To Ask Questions The Smart Way, and after checking the forum rules, there's no better place to ask a OSDev-related question than here, on these boards!

Welcome to the forums, hope you have a great time!

P.S. Since this is more of an introductiony-type thing, I've moved it to General Ramblings.

Re: Eager to learn

Posted: Sun May 24, 2009 10:02 pm
by lcowles
Hi Troy, I have got started that is the point, I understand principally what must be done and even have some flow-charts, I can compile my current OS easily, all I need is some more information about programming an OS without using any BIOS interrupts. until then I'll be hacking around in BIOS files to see how the BIOS communicates with the hardware. (Dell Dimension 9100 Rev A03)

Re: Eager to learn

Posted: Sun May 24, 2009 10:52 pm
by Love4Boobies
Looking through some BIOS' source code is a very bad idea since (i) the BIOS is motherboard-specific (therefore you won't know what will work on every machine and what won't) and (ii) you won't really know why it does what it does. Also, Linux doesn't use the BIOS service calls at all. What you need to do is look for hardware documentation (like controllers, buses and the CPU).

Usually BIOS calls are used in the boot loader because of the amount of space available (at least in the first stage), the amount of work that would be needed to write drivers for both the OS and boot loader and the lack of need for performance (the code will only get executed once and only by "one process at a time" - which is all BIOS can do anyway since its code isn't re-entrant).

Anyway, good luck with your OS!

Re: Eager to learn

Posted: Mon May 25, 2009 3:11 am
by lcowles
thank you,

unfortunately the OS I'm now writing will be for my PC only which is why I have opted for this method, it's more of a challenge.

Thanks for the info's though. I'll try to keep up.

Re: Eager to learn

Posted: Mon May 25, 2009 10:10 am
by Combuster
lcowles wrote:the OS I'm now writing will be for my PC only which is why I have opted for this method, it's more of a challenge.
By the time you're done, you most likely got yourself a new computer. Great renewable source of entertainment :mrgreen:

Re: Eager to learn

Posted: Mon May 25, 2009 10:58 pm
by lcowles
Hi combuster, I have looked at your OS with the openGL implementation. How long did it take to get you to that point? Another reason why I want to write this new OS is I have alot of new design features for it some of them at the kernel level (so obviously not even linux could provide me with what I need). Did you port your apps from a linux source tree or re-implement apps as you think they should be