Page 1 of 1

Please Guide Me

Posted: Fri Oct 29, 2010 11:18 am
by jaisonjustus
Hello Friends,

I am Jaison, i like to build a os of my own with my friend. what the problem is we know a little knowledge about operating system and programing skills. you guys help us to kick start from where or how?
we need help on
- references or guides.
- books.
- development tools (we are using mac os x and ubuntu... no win)
- test machine. (i mean we are plaining to purchase an old pc which is for testing OS. so how to choose architecture and other requirements.)

i hope you guys will help
advance thanks....

Jaison

Re: Please Guide Me

Posted: Fri Oct 29, 2010 12:22 pm
by Solar

Re: Please Guide Me

Posted: Fri Oct 29, 2010 1:26 pm
by KotuxGuy
Thanks for the benevolent response, Solar. Most people would have bashed the OP.
+1 for Solar!

Re: Please Guide Me

Posted: Fri Oct 29, 2010 2:34 pm
by opengeek
jaisonjustus, I'm staring to program an Operating System too. Nowadays I'm trying to switch to Virtual Mode Memory.

My sources of information at the moment are:
* OS-Dev.
* GRUB Online manual
* Operating System Concepts by A. Silberschatz, P. B. Galvin (I borrowed form my University Library).
* The C Programming Language by Brian W. Kernighan, Dennis M. Ritchie (Creators of C language and UNIX Operating System).
* Operating Systems Slideshows from Operating Systems Course in my University (http://www.fib.upc.edu/en.html).
* Operating Systems Project students.

Maybe we can collaborate ... what ideas you have for your operating system?

Re: Please Guide Me

Posted: Fri Oct 29, 2010 10:47 pm
by jaisonjustus
thanx pals...

hello geek,

i don't have any specific idea over the os... but iam sure more ideas will come while developing os... but before jumping into the sea... i need to know whatever things i need to survive...

i like to collaborate with you.. i like to learn more...

Re: Please Guide Me

Posted: Fri Nov 05, 2010 8:18 am
by Muneer
Hi,

I might recommend First You Learn about 8086 Real Mode And then Protected mode 80386 + processors. Then have a peek at the hardware ports ( Basic) and and keyboard controller . well that would give you the starting

Re: Please Guide Me

Posted: Fri Nov 05, 2010 9:21 am
by KotuxGuy
Real Mode is easiest if you're not using GRUB, but it won't take you very far;
Protected Mode is what GRUB starts you in, for convenience reasons(you get all the RAM the system has to offer, you get memory protection, and user-space programs aren't all-powerful).

The reasons for using Real Mode are:
  • The BIOS implements tons of drivers for things like graphics, the keyboard, disk access, etc..
  • It's what the processor starts in by default
However, GRUB 2 can set up graphics for you, the keyboard is simple once you have interrupts working, and disk access is only around 100-200 lines of code(if that sounds like a lot, trust me, there are far larger drivers).
So, I would recommend using GRUB to boot your kernel, and let it configure graphics and stuff for you, instead of starting in Real Mode.

But, instead of doing all this yourself, I would recommend starting with one of the following tutorials:
Once you've worked through one of them, you can design your very own kernel, with what you've learned.

Completing either of these tutorials will give you a kernel with a text-mode graphics, memory protection, memory allocation, a virtual file system, and a system call layer.
Completing the first will also give you multitasking, the second, a FAT12 file system driver, and VGA/VESA graphics.

That should get you started!

EDIT: 90th post for me!

Re: Please Guide Me

Posted: Fri Nov 05, 2010 9:50 am
by piranha
Why has everybody overlooked the "little knowledge about. . .programing skills" part?

What exactly do you mean by little knowledge? How many languages do you know, and which ones? How long have you been programming in these languages?

You can write an OS in many different languages, however it is easiest to write in C (just my opinion). Even if you don't write the OS in C, most tutorials and documents are for/in C. You will also need to know at least a little bit of assembly, though the more you know the better.

How many programs have you written? Because if you haven't had a chance to practice, than this wont work.

Can you confidently handle pointers? Function pointers? Can you describe the flow of a a functions containing many loops and gotos?

Once you have the programming down, then you need to really finish up learning about your toolset. Compiling, assembling and linking. Creating linker scripts, and all that.

After that, you should acquire the Intel manuals and have a look at them. They will help. Then you should read through the wiki articles on creating a basic kernel, and try to make a simple one that boots up and says, "<Cliche message here>". If you can do that, you're already ahead of many people.

Then it's a matter of designing and writing the kernel. You can follow tutorials, and use their code to create a kernel, and then once you're done design your own. You can read the articles in the wiki and the Intel manuals to get ideas how stuff works and try to implement them yourself (this is much harder).

There are many ways to do it, but be warned - from where you're starting at there is going to be a lot of time spent before you can or should be focusing on your own kernel. I speak from experience, I tried to write a kernel too early, and ended up having to do a full rewrite.

That being said, theres nothing to stop you. Just learn about the subject and it is more than possible. Good luck!

-JL

P.S. You did break forum rules however. Did you read the rules? You asked a question that has been answered before. Based on your post, you probably don't meet the skills requirements at this time (though if you are willing to learn, this'll be overlooked). Please, search the forum and the wiki before asking, or you will get a lot of angry responses.