whats next??
whats next??
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 (...well most of them except for one tinny winny problem with initial ramdisk...) 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.
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 (...well most of them except for one tinny winny problem with initial ramdisk...) 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??
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
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
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: whats next??
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.goku wrote:If you have links to some study material or whatever that might help me do post them.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
Re: whats next??
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.
Any suggestions.
Cheers.
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
Re: whats next??
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
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
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Re: whats next??
Well i tried the videos and the audios, they just wont play probably some problem with their server.Love4Boobies wrote:Berkeley has a webcast program for most of their courses. CS162, their operating systems course
Topics covered :Love4Boobies wrote:I'm not sure exactly what subjects were or weren't touched in the tutorials you've read
- display
gdt & idt
irq
timer
keyboard
paging
heap
virtual file system
initial ram disk
multitasking(software)
user mode setup
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: whats next??
Just checked, they work for me. You need to have RealPlayer installed (or was it Flash Player?).goku wrote:Well i tried the videos and the audios, they just wont play probably some problem with their server.Love4Boobies wrote:Berkeley has a webcast program for most of their courses. CS162, their operating systems course
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.Topics covered :Love4Boobies wrote:I'm not sure exactly what subjects were or weren't touched in the tutorials you've read
- display
gdt & idt
irq
timer
keyboard
paging
heap
virtual file system
initial ram disk
multitasking(software)
user mode setup
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
Re: whats next??
Well VFS was the first thing on my list which i want to improve upon. What kind of implementation/features you suggest?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)
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:After that, I would add task states and etc to the tasks to make the multitasking better.
Thats certainly something new which i would love to learn.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.
I tried it in Linux. have flash player but would give it a shoot in windows.Love4Boobies wrote:Just checked, they work for me. You need to have RealPlayer installed (or was it Flash Player?).
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.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.
Thanks for the response.
Cheers.
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: whats next??
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.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
Re: whats next??
I meant like, TASK_RUNNING, TASK_SLEEPING, etc. It really speeds up the system to have the scheduler be able to ignore tasks temporarily.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.
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.What kind of implementation/features you suggest?
-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Re: whats next??
Ok but still should i go in for hardware multitasking or not and does it rea;;y make muck difference in performance.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.
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.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.
Sorry for the late response.
Cheers.
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
Re: whats next??
Yes it makes a difference. Software is faster, Brendan makes a very good explanation here: http://forum.osdev.org/viewtopic.php?p=117933#p117933Ok but still should i go in for hardware multitasking or not and does it rea;;y make muck difference in performance.
-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Re: whats next??
Thanks for that. It certainly clear things out.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
I think i would be improving on VFS and read about multitasking a bit more in details before working on it.
Cheers.