A very basic OS....

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
User avatar
arman08
Posts: 4
Joined: Sun Feb 17, 2008 4:24 am

A very basic OS....

Post by arman08 »

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...
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Post by piranha »

* 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
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
User avatar
jerryleecooper
Member
Member
Posts: 233
Joined: Mon Aug 06, 2007 6:32 pm
Location: Canada

Post by jerryleecooper »

Make...

1. loading from your own floppy driver...
// binary code files

3. your own file system
User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Post by 01000101 »

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!!!
User avatar
arman08
Posts: 4
Joined: Sun Feb 17, 2008 4:24 am

Post by arman08 »

thanks a lot friends for ur support...

@01000101 :
Yes i need just a basic shell which should accept user input and process basic commands (at least for now.. will add more features later).. Thanks a lot.. i'll stdy about vidoe modes and accessing keyboard.... Thanks...
User avatar
codemastersnake
Member
Member
Posts: 148
Joined: Sun Nov 07, 2004 12:00 am
Contact:

Post by codemastersnake »

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
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

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.
User avatar
astrocrep
Member
Member
Posts: 127
Joined: Sat Apr 21, 2007 7:21 pm

Post by astrocrep »

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
Mouse Pad - Coming in the distant future...
Kernel: Indigo Kernel - v0.0.1

Thanks to JamesM and BrokenThorn for there tutorials!
User avatar
naiksidd_85
Member
Member
Posts: 76
Joined: Thu Jan 17, 2008 1:15 am

Post by naiksidd_85 »

james molloy has a good tutorial i recomend you use it.click here
Learning a lot these days THANKS to OSdev users
User avatar
codemastersnake
Member
Member
Posts: 148
Joined: Sun Nov 07, 2004 12:00 am
Contact:

Post by codemastersnake »

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
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!
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

That Tute is awesome but is not enough to get the marks in the exams.
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).
User avatar
Wave
Member
Member
Posts: 50
Joined: Sun Jan 20, 2008 5:51 am

Post by Wave »

JamesM wrote:
That Tute is awesome but is not enough to get the marks in the exams.
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
I think that was what he tried to say.
Conway's Law: If you have four groups working on a compiler, you'll get a 4-pass compiler.
Melvin Conway
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Post by jal »

JamesM wrote:(EVERYONE in osdev has seen bran's tut).
Mmmm, I'm not quite sure I have :). Well, seen maybe. I've seen a lot.


JAL
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Post by neon »

In the Beginner Mistakes section on the Wiki, it states that deadline are not good!
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.

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

Post by Solar »

The Wiki paragraph in question reads:
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?)
There's nothing wrong in that.

OP said:
The OS should be very basic (to meet the deadline)...
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.
Every good solution is obvious once you've found it.
Post Reply