Page 1 of 1

whats next??

Posted: Thu Jan 15, 2009 7:50 am
by goku
Hi
I today finished with user mode development (from James tutorial). Although it took me hell of a time getting here(4 months to be precise) with lots of problems to tackle on the way but then i think the best way to learn is to solve problems which i did :shock: (...well most of them except for one tinny winny problem with initial ramdisk...) :lol: and thanks to all of you guys for your help till now. Well my question is that where should i go now from here. I have been always interested in OS development so started working on it just for fun. Now i have even taken it up as my final year BE project. So i want to ask that i have understood James tutorial and what should i aim at next??

If you have links to some study material or whatever that might help me do post them.


Cheers.

Re: whats next??

Posted: Thu Jan 15, 2009 8:01 am
by AJ
Hi,

Well done for getting to this stage!

From now on, you are going to find fewer and fewer tutorials. Instead, you will need to read datasheets, articles and white papers and put what you read in to practice using your existing knowlege.

Now you have a good idea of OS fundamentals, I would suggest that the best thing you can do is sit down and design an OSS around what you want. Design on paper or using a wordprocessor (or modelling tools if you want to get fancy!). Then, start coding from scratch.

Many people may disagree with this, but what you have is tutorial code written in someone else's programming style. Now, you will probably want to create something that is your own (which is the fun bit!).

Cheers,
Adam

Re: whats next??

Posted: Thu Jan 15, 2009 8:11 am
by Love4Boobies
goku wrote:If you have links to some study material or whatever that might help me do post them.
Berkeley has a webcast program for most of their courses. CS162, their operating systems course might provide you with some further insight (I'm not sure exactly what subjects were or weren't touched in the tutorials you've read). However, keep in mind that sometimes alternatives aren't presented in courses, just standard ways of doin stuff. But for a general idea, you might want to take a look.

Re: whats next??

Posted: Thu Jan 15, 2009 8:18 am
by goku
Well thanks for the quick reply. I am certainly tempted at your suggestion..lets be honest everyone wants that they should have something to call there own. But what i was thinking was maybe taking whatever i have now to lets say a CLI from where i can perform some basic operations. Now what this would do is give me exposure towards things like hdd drives, FAT drivers, etc. Once i am satisfied with that then i can probably make a more informed design of MY OWN and implement it in my own style. Because right now whatever i have implemented is certainly great for getting started but if i want to take it to the next level then i certainly need to learn alot more things about OSdev. So i would certainly like to carry this forward for now but i will certainly develop something of my own soon. :)

Any suggestions.

Cheers.

Re: whats next??

Posted: Thu Jan 15, 2009 9:14 am
by piranha
My advice is to (if you haven't already) expand on the tutorials to make the features more complete (especially the VFS IMHO). Then I'd add a better console and keyboard driver. After that, I would add task states and etc to the tasks to make the multitasking better.

Once that is done, I would work towards having it load applications that are linked with newlib, as there is a tutorial for porting newlib on the wiki.

Once that is done, I would port applications and work on building an OS around it, and the eventually get it so that it can compile on itself.

Also, drivers can come in at an stage...

These are just my opinions, you may have others.

-JL

Re: whats next??

Posted: Thu Jan 15, 2009 9:19 am
by goku
Love4Boobies wrote:Berkeley has a webcast program for most of their courses. CS162, their operating systems course
Well i tried the videos and the audios, they just wont play probably some problem with their server.
Love4Boobies wrote:I'm not sure exactly what subjects were or weren't touched in the tutorials you've read
Topics covered :
  • display
    gdt & idt
    irq
    timer
    keyboard
    paging
    heap
    virtual file system
    initial ram disk
    multitasking(software)
    user mode setup

Re: whats next??

Posted: Thu Jan 15, 2009 9:30 am
by Love4Boobies
goku wrote:
Love4Boobies wrote:Berkeley has a webcast program for most of their courses. CS162, their operating systems course
Well i tried the videos and the audios, they just wont play probably some problem with their server.
Just checked, they work for me. You need to have RealPlayer installed (or was it Flash Player?).
Love4Boobies wrote:I'm not sure exactly what subjects were or weren't touched in the tutorials you've read
Topics covered :
  • display
    gdt & idt
    irq
    timer
    keyboard
    paging
    heap
    virtual file system
    initial ram disk
    multitasking(software)
    user mode setup
I see. There's much theory on design you need to be aware of. If I were you I'd do some reading on: different kernel designs (monoloithic kernels, microkernels, hybrid kernels, exokernels, etc), scheduling (kernel threads, user threads, scheduler activations, multi/manycore architectures), synchronization (locks, semaphores, monitors), transactional memory.

Re: whats next??

Posted: Thu Jan 15, 2009 11:28 am
by goku
piranha wrote:My advice is to (if you haven't already) expand on the tutorials to make the features more complete (especially the VFS IMHO)
Well VFS was the first thing on my list which i want to improve upon. What kind of implementation/features you suggest?
piranha wrote:After that, I would add task states and etc to the tasks to make the multitasking better.
Correct me if i am wrong that task states is for hardware multitasking. If correct then should i go for it or stick with software multitasking for the moment.
piranha wrote:Once that is done, I would work towards having it load applications that are linked with newlib, as there is a tutorial for porting newlib on the wiki.
Thats certainly something new which i would love to learn.
Love4Boobies wrote:Just checked, they work for me. You need to have RealPlayer installed (or was it Flash Player?).
I tried it in Linux. have flash player but would give it a shoot in windows.
Love4Boobies wrote:I see. There's much theory on design you need to be aware of. If I were you I'd do some reading on: different kernel designs (monoloithic kernels, microkernels, hybrid kernels, exokernels, etc), scheduling (kernel threads, user threads, scheduler activations, multi/manycore architectures), synchronization (locks, semaphores, monitors), transactional memory.
I have fair amount of knowledge about cpu scheduling and synchronization but all in theory. So if anyone knows some good sites where i can find these topics explained from an implementation point of view that would be great.

Thanks for the response.

Cheers.

Re: whats next??

Posted: Thu Jan 15, 2009 11:31 am
by Love4Boobies
Well, if it doesn't work, they can also be downloaded here. As for the implementation part, I'm sure these files will give you a fair idea of what's going on. :wink:

Re: whats next??

Posted: Thu Jan 15, 2009 6:25 pm
by piranha
Correct me if i am wrong that task states is for hardware multitasking. If correct then should i go for it or stick with software multitasking for the moment.
I meant like, TASK_RUNNING, TASK_SLEEPING, etc. It really speeds up the system to have the scheduler be able to ignore tasks temporarily.
What kind of implementation/features you suggest?
Well, that VFS doesn't really support disk FS's (well, at least). I implemented a system that looks up inodes from a path string (I used linux's early VFS as an example, yes). Also, write support. As I said in another post, I created my own RamFS for my kernel and loaded the initrd into it. THat way I can support writing, creating, resizing of files, etc, as the RamFS does file storage by kmalloc.

-JL

Re: whats next??

Posted: Sat Jan 17, 2009 1:49 am
by goku
piranha wrote:I meant like, TASK_RUNNING, TASK_SLEEPING, etc. It really speeds up the system to have the scheduler be able to ignore tasks temporarily.
Ok but still should i go in for hardware multitasking or not and does it rea;;y make muck difference in performance.

Love4Boobies wrote:Well, if it doesn't work, they can also be downloaded here. As for the implementation part, I'm sure these files will give you a fair idea of what's going on. :wink:
I just finished watching video in "Concurrency-Process and Threads" was majorely based on whatever is there in the book "Operating System Concepts by Galvin" :( . Will watch the rest and let you know if they are of any actual help.
Sorry for the late response.


Cheers. :)

Re: whats next??

Posted: Sat Jan 17, 2009 1:59 am
by piranha
Ok but still should i go in for hardware multitasking or not and does it rea;;y make muck difference in performance.
Yes it makes a difference. Software is faster, Brendan makes a very good explanation here: http://forum.osdev.org/viewtopic.php?p=117933#p117933

-JL

Re: whats next??

Posted: Sat Jan 17, 2009 2:32 am
by goku
piranha wrote:Yes it makes a difference. Software is faster, Brendan makes a very good explanation here: http://forum.osdev.org/viewtopic.php?p=117933#p117933
Thanks for that. It certainly clear things out. :)

I think i would be improving on VFS and read about multitasking a bit more in details before working on it.


Cheers.