hi
i've written a simple boot program (calling it a boot loader, let alone an operating system would be way too much). it does the following:
-get a memory map from the bios
-switch to protected mode
-hook the clock and keyboard interrupt
-set up routines to display strings and numbers (hexadecimal, binary, signed and unsigned decimal) on the screen
-set up a command line
-set up a table where each entry contains a string s, a number n and a function f
when the user enters
"command param1 param1"
the table is searched for an entry where s matches command and n equals 3..if a match can be found, the addresses of param1 and param2 are pushed and the corresponding function f is called
for now i have two commands:
-"clearscreen"
-"say something"
where say is like a very primitive echo, it accepts only ONE word (no spaces)
so now that you have an idea what i can do, i would like to know where i should go next...i would like to finally tinker with multitasking but i'm not sure if there something else i should try to get done before that...how would you guys go about from here on?
thanks
martin
what next?
-
- Member
- Posts: 199
- Joined: Fri Jul 13, 2007 6:37 am
- Location: Stuttgart/Germany
- Contact:
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
Devices, HD access, Floppy, drivers, Filesystems, etc
Scheduler, Malloc() function, VFS, Vmemory, ELF/EXE loading relocating and executing. If you're going to userland, systemcalls.
-JL
Scheduler, Malloc() function, VFS, Vmemory, ELF/EXE loading relocating and executing. If you're going to userland, systemcalls.
-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
get a memory manager implemented, and i would suggest paging, as this will give you memory protection and allow you to allocate/free memory effectively.
from there multitasking is (theoretically) fairly simple.
i would also look into implementing a virtual filesystem (VFS) as this can be used to load drivers and mount further filesystems, once youv implemented them.
from there multitasking is (theoretically) fairly simple.
i would also look into implementing a virtual filesystem (VFS) as this can be used to load drivers and mount further filesystems, once youv implemented them.
- mathematician
- Member
- Posts: 437
- Joined: Fri Dec 15, 2006 5:26 pm
- Location: Church Stretton Uk
During the early stages of booting you have got no choice but to allocate memory on an ad hoc basis. However it would probably be a good idea to introduce some order into the chaos sooner rather than later. So even if not the very next thing, writing a memory manager should be one of the next things you do.