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
:lol: 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
Dex wrote:Have you see this http://dex4u.com/ASMcompo512b/nanoos2.zip
Realmode multitasking in less than 512byte, fits into boot sector of floppy, cool :) .
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.