Page 1 of 1

OS Development Newbie

Posted: Tue Jul 25, 2006 4:07 am
by santellan17585
I am looking to develop an OS, but I am new to the whole idea. I have no clue where to start at all. I really need a guide to help the process move along, but can't find one. Also, I would like to know what I need to know, as well as a good starting point for a beginner like myself. I have done a Windows Shell, but never a full fledged os. I don't even know any code. Where can I learn what I need to know?

Ideas for my OS:

Some or all Windows software compatibility.

32 bit and 64 bit ports.

pc and powerpc ports

features similar to mac and windows gui's

simplified networking

simplified business and home use

intergrated productivity software

intergrated drivers for standerd devices. (CD/DVD ROM, video, sound, usb, nic, modem, etc.)

Re: OS Development Newbie

Posted: Tue Jul 25, 2006 5:35 am
by AndrewAPrice
santellan17585 wrote:Some or all Windows software compatibility.
It annoys me the number of people who have want to implement Windows compatibility as a short-term goal. It's not a personal attack, but instead just a note to others planning their OS. Implementing Windows compatibility would be a long and tedious task. It wouldn't be just as simple as loading a PE into memory, but instead you would need to implementing every Windows API. If you do want Windows compatibility, try to implement a port of Wine, but set it as a long term goal, not a near future goal.
santellan17585 wrote:features similar to mac and windows gui's
?
santellan17585 wrote:intergrated productivity software
An office suite? Try a simple word processor.. (e.g. make a multi-lined textbox widget in your GUI and stretch it over the window. Then save and load the contents to a file and you've got yourself a basic editor!)

Posted: Tue Jul 25, 2006 7:38 am
by kenneth_phough
I was also new to OS dev and I still am. This is a great place to ask for help when you're totally stuck.
These are some of the things that people have suggested me and it really helped!

Tools you'll need:
some kind of assembler, I use nasm (intel syntax) -> http://sourceforge.net/projects/nasm
if you are going to use c for your kernel, you'll need some kind of C compiler.
For windows users, a common one is DJGPP (gcc for win)-> http://www.delorie.com/djgpp/
linux users, gcc
And a linker but DJGPP has ld just like gcc.

Documents/Material/Tutorials:
if you're going to code for intel you should get and read the intel manual -> http://developer.intel.com/design/penti ... m#sdm_vol1
Volume 1 and Volume 3a really helped me. Also, you can order hardcoppies of the manuals for free.
I am not sure if this is correct but for manuals for teh PowerPC -> http://www-306.ibm.com/chips/techlib/te ... es/PowerPC
Good place for tutorials is BonaFide OS Development -> www.osdever.net
Also, BIOS interrupts (Ralf Browns Interrupt List) -> http://www.delorie.com/djgpp/doc/rbinter/ix/
especially helpful when writing you're own boot sector.
And protected mode tutorial -> http://my.execpc.com/~geezer/os/pm.htm
what is an A20 gate -> http://en.wikipedia.org/wiki/A20_handler
A20 gate tutorial -> http://www.osdever.net/tutorials/a20.php?the_id=4

Other sites that people have suggested are:
Write your own OS -> http://my.execpc.com/CE/AC/geezer/osd/
OSFaqWiki -> http://mega-tokyo.com/osfaq2/

Maybe the first thing to do is read the intel manuals or the manuals for the processor you are developing for and understand it. That's what I did and still am.

Things you would want to look into:
Memory Model - Flat memory, segmented, paged.
Tasking Model - such as preemptive tasking, etc.

I would suggest starting from small things such as, if you're going to write your own boot sector then first make a boot sector that prints "hello word". Once that works then write a boot sector that enables the A20 gate; then loads your kernel and so on. Work on it a bit at a time :)

I hope this helps.

-Kenneth

Posted: Tue Jul 25, 2006 1:42 pm
by Shark8
If you need a compiler, check out Borland's site:
http://bdn.borland.com/museum/antiquesoftware

They have their old C compilers and Turbo Pascal compilers {Except for TP7} up for free download. You do have to create a free account, but Borland's really good about not spamming the address.

Posted: Tue Jul 25, 2006 1:49 pm
by jakelstr
Intel manual Vol. 1, Intel Manual Vol. 2 A-B, Intel Manual Vol. 3 A-B, Collect them all! They are really help full. :D

Posted: Tue Jul 25, 2006 1:57 pm
by Shark8
jakelstr wrote:Intel manual Vol. 1, Intel Manual Vol. 2 A-B, Intel Manual Vol. 3 A-B, Collect them all! They are really help full. :D
Yep, jakelstr, I put in my order yesterday... now I'm just waiting.
Maybe I should turn off my PCs, check the CPUs and get their AMD manuals as well as AMD's general manual.

Posted: Tue Jul 25, 2006 2:05 pm
by jakelstr
look in the Intel Manuals topic. the last post should be mine, i told where to order amd manuals. :D

EDIT: here is the link http://www.amd.com/epd/techdocs/literat ... index.html

Posted: Tue Jul 25, 2006 2:24 pm
by Shark8
jakelstr wrote:look in the Intel Manuals topic. the last post should be mine, i told where to order amd manuals. :D

EDIT: here is the link http://www.amd.com/epd/techdocs/literat ... index.html
Thanks. Though I didn't miss the link. I also want to get the CPU-specific ones that relate to the PCs I have at home. Another one I plan to hit up is Adaptec for info regarding their SCSI cards, esp as most of my PCs are SCSI PCs.

Posted: Wed Jul 26, 2006 7:57 am
by jakelstr
here is the link. http://www.amd.com/us-en/Processors/Tec ... 39,00.html On the right side, click on which ever CPU you need.

Posted: Wed Jul 26, 2006 9:24 am
by JAAman
For windows users, a common one is DJGPP (gcc for win)-> http://www.delorie.com/djgpp/
common, but not recommended:
DJGPP is a 32bit unix program, running under an emulation layer to support RMode DOS, running in a DOS emulator in a native 32bit environment

better idea is to get cygwin (if you want the "common" GCC -- its the same toolset, except newer, and designed for use under windows), or you can use MS visual studio, or openwatcom, or the older borland compilers, (all of which are availible free on there respective owners websites)

if you use linux, your generally recomended choices are GCC or the Intel compiler (free for linux users)

Posted: Fri Aug 04, 2006 7:53 pm
by earlz
yes djgpp is just too unstable

I recommend Codeblocks(an ide) which includes all the cygwin toolset and gets it setup and everything for you easy
just goto http://codeblocks.org and download their latest release with cygwin

for a bootloader I use bootf02(look under downloads at osdever.net)

all of this info though is for if you are going for 32bit though if your a 16biter then turboc is good, though tasm is not free


btw
if you need an example codeblocks project file then try ripping off mine at my website(below) and download version 0.0.4(the latest uses a different booting address so...)