Page 1 of 1
RMMTOS - Real Mode MultiTasking Operating System
Posted: Thu Apr 23, 2009 11:26 am
by ruisleipa
I am making an operating system that runs in real mode and does multitasking. I already have two test tasks printing stuff on the screen. It uses BIOS to access device by now, but I will write my own drivers because using BIOS with multitasking might be a bit hard. It will also have some basic userspace apps, and I might even make the system self hosting some day.
It won't probably offer anything new to the operating system world, but it's still fun
Project page in Google Code (not very much to see yet):
http://code.google.com/p/rmmtos/
I am planning to make a release when I have a shell and some apps running.
For now I it is 100% ASM.
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Thu Apr 23, 2009 3:18 pm
by Dex
Sounds like fun, what assembler are you using for the project ?
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Thu Apr 23, 2009 4:34 pm
by Love4Boobies
Are you sure you have enough memory available for custom-made drivers, the kernel and multiple applications (it is a multitasking OS, right?)? You could try swapping but that would be even slower than using BIOS' services one at a time because you'd have to do it constantly. May I suggest unreal mode instead?
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Thu Apr 23, 2009 8:33 pm
by ruisleipa
@Dex: I am using nasm for the project.
@Love4Boobies: As I am not going to port programs very much, the programs aren't really going to be very big.
If it is possible to use 32 bit segment values in unreal mode, I might consider using it.
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Thu Apr 23, 2009 8:43 pm
by Love4Boobies
The x86(_64) only supports 16-bit segments. It doesn't matter which operating mode you are in, segments stay 16 bits long.
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Fri Apr 24, 2009 6:04 am
by cyr1x
Huh? They support 16(rm/pm) and 32bit segments. 32bit data segments can be used in unreal mode. Actually it shouldn't be called 'support', it's rather a must.
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Fri Apr 24, 2009 6:37 am
by Hyperdrive
cyr1x wrote:Huh? They support 16(rm/pm) and 32bit segments. 32bit data segments can be used in unreal mode. Actually it shouldn't be called 'support', it's rather a must.
The segment values are 16 bit, only the offsets can be 32 bit (in (un)real mode). No?
--TS
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Fri Apr 24, 2009 9:15 am
by Dex
Have you see this
http://dex4u.com/ASMcompo512b/nanoos2.zip
Realmode multitasking in less than 512byte, fits into boot sector of floppy, cool
.
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Fri Apr 24, 2009 9:38 am
by ruisleipa
I hadn't seen it but I tried it and it seems cool. My kernel is already a kilobyte in size, but I am an asm noob so there may be a lot to optimize.
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Fri Apr 24, 2009 10:37 am
by Dex
In the same dir (in the above link), there are many 512byte example eg: game, maybe a good start to port to your OS, as they are so small.
Also if you have not seen already, you could see MiniDos, a very simple dos clone i coded, in less than 2k.
Your free to do as you like with the code, but if you add MT to it, that would be cool.
See here:
http://board.flatassembler.net/topic.php?t=5275
Re: RMMTOS - Real Mode MultiTasking Operating System
Posted: Fri May 01, 2009 12:27 am
by ruisleipa
I finally got multitasking working on real hardware.
I don't think the scheduler is very good yet, as two identical tasks take slightly different time to run.
But now I am moving onto implementing VFS, device driver interface, floppy driver and a FAT driver.