Please Guide Me

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
jaisonjustus
Posts: 2
Joined: Thu Oct 28, 2010 1:59 am

Please Guide Me

Post 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
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Please Guide Me

Post by Solar »

Every good solution is obvious once you've found it.
User avatar
KotuxGuy
Member
Member
Posts: 96
Joined: Wed Nov 25, 2009 1:28 pm
Location: Somewhere within 10ft of my favorite chubby penguin!

Re: Please Guide Me

Post by KotuxGuy »

Thanks for the benevolent response, Solar. Most people would have bashed the OP.
+1 for Solar!
Give a man Linux, you feed the nearest optician ( Been staring at the PC too long again? ).
Give a man OS X, you feed the nearest NVidia outlet ( I need more GPU power!! )
Give a man Windows, you feed the entire Tylenol company ( Self explanatory :D )
opengeek
Posts: 5
Joined: Mon Oct 25, 2010 3:02 pm

Re: Please Guide Me

Post 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?
jaisonjustus
Posts: 2
Joined: Thu Oct 28, 2010 1:59 am

Re: Please Guide Me

Post 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...
User avatar
Muneer
Member
Member
Posts: 104
Joined: Tue Nov 02, 2010 2:05 am
Location: India

Re: Please Guide Me

Post 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
Even the smallest person could change the course of the future - Lord Of The Rings.

In the end all that matters is what you have done - Alexander.

Even after a decade oh god those still gives me the shivers.
User avatar
KotuxGuy
Member
Member
Posts: 96
Joined: Wed Nov 25, 2009 1:28 pm
Location: Somewhere within 10ft of my favorite chubby penguin!

Re: Please Guide Me

Post 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!
Give a man Linux, you feed the nearest optician ( Been staring at the PC too long again? ).
Give a man OS X, you feed the nearest NVidia outlet ( I need more GPU power!! )
Give a man Windows, you feed the entire Tylenol company ( Self explanatory :D )
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: Please Guide Me

Post 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.
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Post Reply