I have quite a few good ideas I'd like to implement in a new OS, an so have spent the last 3 months learning C from the 2 volume "C for dummies"...it took a while, because I had to juggle school, and other stuff.
Regardless, I'm not a complete newbie, but I'm not at "intermediate" either. Whats the next step I should take, programming-wise?
BTW, the OS is going to be based on minix...and it's a super-mod of an OS that people seemed to like, but whose developer kind of let it die.
In order to give me the mai source code, i need to learn as much C as possible.
Thanks very Much, no matter what the response
Learned C...kind of..whats next?
-
- Posts: 2
- Joined: Fri May 20, 2005 11:00 pm
- Location: Queens, NY
- Contact:
- carbonBased
- Member
- Posts: 382
- Joined: Sat Nov 20, 2004 12:00 am
- Location: Wellesley, Ontario, Canada
- Contact:
Re: Learned C...kind of..whats next?
I keep on telling people an operating system is not a good choice for your first C "application," but... if you insist, (assuming you're planning on writting for x86 architecture) you should read as much as possible about the x86 platform.
Investigate booting methods (the easiest approach to get down and dirty is to use a pre-written bootloader like GRUB), protection, multitasking, memory management... everything.
I can't stress DESIGN enough. Most OSs I see floating around have absolutely NO design... they're just a melding of random code chunks into one object that isn't modular nor extensible. Keep extensibility and expandability in mind, always.
In my opinion, the very first thing you want to start writting are simple constructs -- linked lists, binary trees, stacks, queues, etc.
From those, build upon them to create more elaborate basic entities like mutexes, semaphores, message queues, etc.
One you have that solidly in place, THEN you can start delving into the finer points of OSDev... but without a good framework, you'll drown quickly.
--Jeff
Investigate booting methods (the easiest approach to get down and dirty is to use a pre-written bootloader like GRUB), protection, multitasking, memory management... everything.
I can't stress DESIGN enough. Most OSs I see floating around have absolutely NO design... they're just a melding of random code chunks into one object that isn't modular nor extensible. Keep extensibility and expandability in mind, always.
In my opinion, the very first thing you want to start writting are simple constructs -- linked lists, binary trees, stacks, queues, etc.
From those, build upon them to create more elaborate basic entities like mutexes, semaphores, message queues, etc.
One you have that solidly in place, THEN you can start delving into the finer points of OSDev... but without a good framework, you'll drown quickly.
--Jeff
-
- Posts: 2
- Joined: Fri May 20, 2005 11:00 pm
- Location: Queens, NY
- Contact:
Re: Learned C...kind of..whats next?
I realized that I wouldnt be able to create an entire Os from scratch, it'd take too long, and require way too much stuff to learn at once (not that I don't want to).
I'm modifiying someone else's OS, that is pretty modular (buttons, gfx libraries, the whole deal) and I figured this'd be a great starting point, because the Os works pretty well as it is, but it rides on top of dos.
So, like I said, a great place to start, because since hte meat is already made, I just need to learn how to make it boot and stuff, not to mention add a few things, like error handeling, sound, etc.
If you guys have any questions or suggestions, just ask.
Thanks, all
I'm modifiying someone else's OS, that is pretty modular (buttons, gfx libraries, the whole deal) and I figured this'd be a great starting point, because the Os works pretty well as it is, but it rides on top of dos.
So, like I said, a great place to start, because since hte meat is already made, I just need to learn how to make it boot and stuff, not to mention add a few things, like error handeling, sound, etc.
If you guys have any questions or suggestions, just ask.
Thanks, all
Re: Learned C...kind of..whats next?
Even if you are palnning to modify someone else's OS, i recommend that you try coding some simple things yourself to get the feeling of os-dev, before really starting to dig into design docs etc.
Like getting a small "OS" with a working IDT and keyboard handler etc working.
Then you'll get the basics and can throw it away and start reading on OS-design, start planning on what you want to modify/add to the OS.
Like getting a small "OS" with a working IDT and keyboard handler etc working.
Then you'll get the basics and can throw it away and start reading on OS-design, start planning on what you want to modify/add to the OS.