A very basic OS....
A very basic OS....
Hello friends...
First of all, this is the best forum out there for learning about OS dev. It really helped me a lot...
Actually i took "Mini OS" as my college project and i have to finish it in a month... From reading many tutorials available, i am able to write a 2 stage bootloader which boots successfully and loads a file from floppy.. I am successfully able to enter protected mode also... After doing this, i am not sure what to do next?
I mean i want to develop a very basic mini OS, which will boot itself and show a shell on which basic commands can be executed... please help me out here friends, i'll be very very thankful to you...
i want to know what steps should i follow next after entering PMode? The OS should be very basic (to meet the deadline)... Hope you are getting my point...
Thanks a lot in advance...
First of all, this is the best forum out there for learning about OS dev. It really helped me a lot...
Actually i took "Mini OS" as my college project and i have to finish it in a month... From reading many tutorials available, i am able to write a 2 stage bootloader which boots successfully and loads a file from floppy.. I am successfully able to enter protected mode also... After doing this, i am not sure what to do next?
I mean i want to develop a very basic mini OS, which will boot itself and show a shell on which basic commands can be executed... please help me out here friends, i'll be very very thankful to you...
i want to know what steps should i follow next after entering PMode? The OS should be very basic (to meet the deadline)... Hope you are getting my point...
Thanks a lot in advance...
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
* Sighs with great emphasis *
In the Beginner Mistakes section on the Wiki, it states that deadline are not good!
Google? Might help.....Or the Wiki
-JL
In the Beginner Mistakes section on the Wiki, it states that deadline are not good!
Google? Might help.....Or the Wiki
-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
- jerryleecooper
- Member
- Posts: 233
- Joined: Mon Aug 06, 2007 6:32 pm
- Location: Canada
If all you need is a shell, and no extra driver support (besides keyboard), then just learn about whatever video mode you are in.
Once you know about your video mode, google around or wiki around to get user input from the keyboards scancodes and then parse them to the screen. After you can handler user input, making a "shell" is not all that difficult.
Read the wiki!!!
Once you know about your video mode, google around or wiki around to get user input from the keyboards scancodes and then parse them to the screen. After you can handler user input, making a "shell" is not all that difficult.
Read the wiki!!!
Website: https://joscor.com
- codemastersnake
- Member
- Posts: 148
- Joined: Sun Nov 07, 2004 12:00 am
- Contact:
I would personally recommend that you should be in Real Mode and use BIOS Function calls. I am recommending this becase since you said that you have one month time which is seriously not enough for developing an Operating System.
More over Protected mode make you to write your own drivers for everything that you do. Right from text mode driver to Network Card driver.
So I would recommend that you should stick to Real Mode and then write functions for displaying date on screen.
Download koolOS ver 2.1 if you want the source code.
URL: http://magneto.yurx.com
More over Protected mode make you to write your own drivers for everything that you do. Right from text mode driver to Network Card driver.
So I would recommend that you should stick to Real Mode and then write functions for displaying date on screen.
Download koolOS ver 2.1 if you want the source code.
URL: http://magneto.yurx.com
I agree with Snake, with so little time, your best stick with realmode.
You can still make a semi usable OS, as a example take a look at my 2k Dos clone.
Took about a week to code, but it runs many old dos games.
More info here:
http://board.flatassembler.net/topic.php?t=5275&start=0
Or maybe you could add more functions, as its a on going project, that is open source.
You can still make a semi usable OS, as a example take a look at my 2k Dos clone.
Took about a week to code, but it runs many old dos games.
More info here:
http://board.flatassembler.net/topic.php?t=5275&start=0
Or maybe you could add more functions, as its a on going project, that is open source.
Check out the Bran Kernel Dev Tutorial on osdever.net
It will show you have to do basic screen output and keyoard input in PMODE.
You should be using it as a learning tool and not a cut and paste.
Good luck,
Rich
It will show you have to do basic screen output and keyoard input in PMODE.
You should be using it as a learning tool and not a cut and paste.
Good luck,
Rich
Mouse Pad - Coming in the distant future...
Kernel: Indigo Kernel - v0.0.1
Thanks to JamesM and BrokenThorn for there tutorials!
Kernel: Indigo Kernel - v0.0.1
Thanks to JamesM and BrokenThorn for there tutorials!
- naiksidd_85
- Member
- Posts: 76
- Joined: Thu Jan 17, 2008 1:15 am
james molloy has a good tutorial i recomend you use it.click here
Learning a lot these days THANKS to OSdev users
- codemastersnake
- Member
- Posts: 148
- Joined: Sun Nov 07, 2004 12:00 am
- Contact:
That Tute is awesome but is not enough to get the marks in the exams. In the end he will only be having a throw away vary vary basic OS. See I am not saying wny thing against anybody but is saying that if you want to make good impresion then you should stick to real mode, Use BIOS functions and you can build a DOS like OS in a short time. But that will also need about 8-10 hrs of programming per day If I am not wrong!astrocrep wrote:Check out the Bran Kernel Dev Tutorial on osdever.net
It will show you have to do basic screen output and keyoard input in PMODE.
You should be using it as a learning tool and not a cut and paste.
Good luck,
Rich
If you want good marks in an exam, Don't copy-paste from ANY tutorial. It's not a case of "the tutorial isn't good enough to 'get you' good marks - you should be coding for your exam. Take the specification sheets, the intel developer manuals, and code it yourself. That way when your lecturer marks it, he won't spot Bran's code jumping out at him like a sore thumb (EVERYONE in osdev has seen bran's tut).That Tute is awesome but is not enough to get the marks in the exams.
I think that was what he tried to say.JamesM wrote:If you want good marks in an exam, Don't copy-paste from ANY tutorial. It's not a case of "the tutorial isn't good enough to 'get you' good marksThat Tute is awesome but is not enough to get the marks in the exams.
Conway's Law: If you have four groups working on a compiler, you'll get a 4-pass compiler.
Melvin Conway
Melvin Conway
This is not entirely true. In large scale software, deadlines are a must to insure productivity. OSs can get very large and thus falls into this category.In the Beginner Mistakes section on the Wiki, it states that deadline are not good!
On the other hand, OP, as the above also mentions that OSs can get very complicated. Expecting to complete a project of this size in a month is simply not possible as it is clear that you do not know what is needed within an OS.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
The Wiki paragraph in question reads:
OP said:
There's nothing wrong in that.Deadlines
Whether for university, hobby, or commercial uses, operating system development takes time. The Linux kernel took over one year of very dedicated work to get into a semblance of usefulness, and all Linus Torvalds did was mimic existing and well-documented behaviour to get an already-existing userspace to run on it. Moreover, for every project as successful as Linux, there are literally hundreds of projects that consumed a man-year or more of work without ever getting as far as hosting a functional shell.
Therefore, plan a reasonable road map of what you want to get done. Do not assume that in 3 months your OS will have a GUI and voice recognition, because operating system development does not contain any RAD tools in it at all. In fact, it is completely void of them. (void. It's a joke. Get it?)
OP said:
I second the notion that starting out on the path of OSDev with a deadline in mind will result in two things: Failed project, frustrated developer.The OS should be very basic (to meet the deadline)...
Every good solution is obvious once you've found it.