Page 1 of 1

help me if that dont disturb u all ;)

Posted: Sat Oct 15, 2005 6:25 am
by new_user
i am in last year in Eng faculty .
i want 2 make a small os just as project in the last year
i understand that its so hard to design a new os
but i gor a lot of source codes from net and i just want a complete source code with explain of every instruction on it to understand it all
and i dont want a big os " i wish i can get graphical one "
but i just want your help ( any one have the time 2 teach me plz dont late )
note : i am from egypt and our language is arabic so english is not my first language and please try to write a normal expressions to let me understand it .
i have 2 finish this os before 1 month . and then i can make changes in it for 4 monthes but i must give the first version of it to the doctor eng. before 1 month

plz if any one has the solution 2 that problem mail me or but it here in this beautifull site
thanx 2 u all.
Bola

Re:help me if that dont disturb u all ;)

Posted: Sat Oct 15, 2005 6:56 am
by Brendan
Hi,
new_user wrote:i have 2 finish this os before 1 month . and then i can make changes in it for 4 monthes but i must give the first version of it to the doctor eng. before 1 month
IMHO one month isn't enough time for anything that could be called an OS (even a very small, very limited OS).

Therefore, my suggestion is to limit the scope of the project (do something smaller than an OS). For example, I'd consider it more sensible to write a micro-kernel instead.

I'd probably use GRUB rather than writing the boot loader yourself. Start with an extremely simple "hello world" program that is booted by GRUB, then add physical memory management and paging to this. At this point, if you run out of time you could say it's a micro-kernel for a single tasking OS and hand it in. If you've still got more time, then you could add multi-tasking to it, and possibly some IPC (Inter Process Communication), depending on how much time you've got left.

After the first month has passed you'll still have 4 months to add things. I'd probably start by fixing things you missed (exception handling, IRQs, etc). Then do a keyboard driver followed by a CLI (Command Line Interpreter), and decide what else after that.

Things like hard drive access, file systems and networking I wouldn't even consider - tell people it's an OS for embedded systems or something.

It would also help if you are already familiar with assembly language and/or C (I'd recommend GCC)...



Cheers,

Brendan

Re:help me if that dont disturb u all ;)

Posted: Sat Oct 15, 2005 7:32 am
by AR
I would also repeat that is simply isn't enough time. A lot of people barely have anything to show after a year of development. However, if you want something really quickly then you could just take a load of shortcuts to make it work, just not very well:
  • Don't bother with paging, just use segmentation
  • Just use single-tasking
  • For disk access, run DOS first then jump in and out of protected mode to use DOS' file functions
  • Implement an extremely minimal kernel API, just open/read/write/close (screen is a file, just write to it. Keyboard is also a file, just read from it)
This should be enough for a very basic DOS-like Operating System, it will however be extremely reliant on BIOS/DOS Keyboard and disk functions but it would give you something resembling the base of an OS to hand in at least.

This is based on the assumption that you already know how the x86 CPU works (GDT, protected mode, real mode), and that you already know at least Assembly and preferably C as well. If you don't know any of these things then it will be extremely difficult to finish in the allocated time.

thanx friends >>> BUT ...

Posted: Sat Oct 15, 2005 3:50 pm
by new_user
thats kind of u all to help me in this step .
but i really want to make it in this short time whatever any one call it ( OS or micro-OS or micro-kernel )
i just want to make a command line and any command easy to do in this short time
i rally understand every word of these 2 replies but i dont know how could i start
i have this files : "tcc & nasm & tasm & masm & partcopy & jloc "
i get them from a lot of open source OS.s , and i make a simple bootloader that print out " hello to my small os "
and now i dont know any thing else > i have alot of kernel files and all with the extention *.asm and some *.bin
i dont know what can i do with them and i also dont want any one of them i just want 2 know what they do >>> so if any one make his own kernel and has the ability to help me i just want to know every thing in his kernel and how can i get it .

now i just try alot of kernels and i got one called micro-os kernel that is command line with commands : quit , reboot .
how could i load them 2 floppy and what is the programs i need and how can i get them ??
please guys . i know that i disturb u . but u are the only ones that can help me all of my friends doesnt have any information about that project .
thanks again to you all


note :
if you have any thing to tell me just do it and tell me how can i got it . if you have any files that can help me just put the link of them or send them to my mail ( [email protected])
bye
BOLA

Re:help me if that dont disturb u all ;)

Posted: Sun Oct 16, 2005 12:18 am
by Cjmovie
If all you want to do is a simple command line, this tutorial will probably be among the best. However, it is completly assembly language, but well commented:

http://web.archive.org/web/200410091653 ... .com/josh/

I'm sorry to say the actual site is gone, but an archive of it is still left.

Oh, and we don't mind so much that you're asking for help. We're glad to. This, of course, is a forum, and you're supposed to ask questions here. So, no trouble helping you :).