OS Development Newbie

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
santellan17585
Posts: 15
Joined: Mon May 22, 2006 11:00 pm
Location: Fontana CA

OS Development Newbie

Post 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.)
User avatar
AndrewAPrice
Member
Member
Posts: 2309
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: OS Development Newbie

Post 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!)
User avatar
kenneth_phough
Member
Member
Posts: 106
Joined: Sun Sep 18, 2005 11:00 pm
Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
Contact:

Post 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
Shark8
Member
Member
Posts: 27
Joined: Wed Nov 02, 2005 12:00 am

Post 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.
User avatar
jakelstr
Member
Member
Posts: 52
Joined: Wed Jul 05, 2006 9:30 am

Post 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
"Real corn makes it special!" -The Grim Adventures of Billy and Mandy

MMM...Caffeine

Intel Inside, Idiot Outside
Shark8
Member
Member
Posts: 27
Joined: Wed Nov 02, 2005 12:00 am

Post 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.
User avatar
jakelstr
Member
Member
Posts: 52
Joined: Wed Jul 05, 2006 9:30 am

Post 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
"Real corn makes it special!" -The Grim Adventures of Billy and Mandy

MMM...Caffeine

Intel Inside, Idiot Outside
Shark8
Member
Member
Posts: 27
Joined: Wed Nov 02, 2005 12:00 am

Post 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.
User avatar
jakelstr
Member
Member
Posts: 52
Joined: Wed Jul 05, 2006 9:30 am

Post 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.
"Real corn makes it special!" -The Grim Adventures of Billy and Mandy

MMM...Caffeine

Intel Inside, Idiot Outside
User avatar
JAAman
Member
Member
Posts: 879
Joined: Wed Oct 27, 2004 11:00 pm
Location: WA

Post 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)
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

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