Page 2 of 3

Posted: Sun Dec 30, 2007 6:19 pm
by lukem95
hmm, i suppose if you keep to real mode, so you can use BIOS drivers, you might be able to implement drive i/o and one filesystem... in which case a note keeper could work. a 10kb gui would be more difficult i would say.

if you get it to work, that would be killer, but why not pick a more recognised (in pc terms) number, such as 32kb, as this would also give you a lot more leeway for you gui. 4 kb kernel, 28kb gui?

Posted: Sun Dec 30, 2007 6:31 pm
by MicrOS
That's an amazing idea. That's the way I'm going. I'm trying though to do the smallest, but, my limit'll be 32 kbs wholely.
I'll do it!!
=)

Posted: Sun Dec 30, 2007 7:23 pm
by Dex
I have coded a Dos clone, that small than 2k, that can run about 50% of old dos com file games, this is without optimising for size.
I have also done 512byte high res basic gui and cdplayer in pmode.
And my OS unoptimised for size, is less than 60k with all drivers, gui, cli and full TCP/IP stack.
So you need to think much smaller ;)

Posted: Sun Dec 30, 2007 10:14 pm
by elfenix
I don't get the burns about practicality - writing an OS isn't practical period.

I'd suggest you check out the demo scene and how they manage to make things small. You'll have problems if you emulate DOS.

I think you should try for 4k, make it a challenge.

32k is more realist if you want protected mode though.

Just remember to have fun. :)

Posted: Sun Dec 30, 2007 11:57 pm
by MicrOS
nononono
The os itself will be only 4 kb, no more
Then the GUI may be up to 28 kb so it's a total of 32.
I want an OS with a GUI on 10 kb. so well....
Let's begin workin' on.

Posted: Mon Dec 31, 2007 6:29 am
by Bobalandi
Alright, I'm not going to dis encourage you from trying, but remember to think rationally, chances are, your OS will not become the next Windows or Linux.

Good Luck.

Posted: Mon Dec 31, 2007 7:55 am
by Ready4Dis
Bobalandi wrote:I'd highly doubt that. At least at this point in time, 4kb seems almost impossible (for a dos clone), but really, if you look at it, 1.44 mb is pretty small, and you could definitely make under that.
Are you kidding? My 32-bit OS, preemptive multi-tasking, demand page loading (virtual memory management), ide driver, fat 12/16/32 driver, keyboard, mouse, and vesa mode graphics driver is under 8k... I fail to see how castrating this down to a single tasking, 16-bit, using bios for HD access, and a simple fat16 file system driver would be very easy to fit into 4k. The largest part of my OS was the GUI, which was about 70k, mostly because I used an uncompressed 8-bit bitmap for my font, I am probably going to switch over to VESA fonts, and drop the GUI back down in size, should be easily able to drop 64k off of that 70k (256*256 font file), or at least compress it, can easily get 8:1 since i'm only using it as a black/white image, plus it's got plenty of runs of black, so even basic RLE would do wonders. I am completely re-writing everything in C, and it is no longer so compact, mostly because I'm making it more modular, so all the loading of modules, and saving symbols in files, etc makes it grow very fast. I still don't see me having a problem fitting the entire OS + useful GUI on a floppy when done however.

Posted: Mon Dec 31, 2007 9:34 am
by Dex
This Dos clone is less than 2k http://board.flatassembler.net/topic.php?t=5275&start=0
Unoptimised

Posted: Mon Dec 31, 2007 9:54 am
by Red Shaya
Well, it depends how you define "tiny tiny tiny" :-)
Does 36bytes sounds tiny tiny tiny enough?

Here is stage one of my "OS".

It doesn't do much, but still, a user could write and run code. So in theory a user could write ANY program he wants. Even a full featured GUI :-)

As my signature suggests, this isn't a real OS, its more of a challenge that is meant to check IF its really possible to write anything useful when you start off a 36 bytes interface program.

But if you are looking for something really really tiny
it might give you some hints about the problems you might face.

Posted: Mon Dec 31, 2007 10:39 am
by Bobalandi
Alright then, my data is really off, I should have looked more into it before I decided to argue, but still, what is the point of having a 3gig hard drive if you aren't going to use much of it?

Posted: Mon Dec 31, 2007 10:41 am
by MicrOS
Bobalandi wrote:Alright then, my data is really off, I should have looked more into it before I decided to argue, but still, what is the point of having a 3gig hard drive if you aren't going to use much of it?
Dont use it if you dont want to.

Posted: Mon Dec 31, 2007 4:40 pm
by Ready4Dis
Bobalandi wrote:Alright then, my data is really off, I should have looked more into it before I decided to argue, but still, what is the point of having a 3gig hard drive if you aren't going to use much of it?
Save it for user apps rather than useless features? I am designing my OS to be useful and small, just because you *have* 3gb, doesn't mean you must use it all and leave no room for anything. The smaller the footprint on the harddrive and in system ram, the faster it will run and allow other applications to run (less disk swapping due to more memory being available, less cache misses due to smaller size, more room in memory for i/o buffers and such). Now, leaving out features that an OS can't do without is stupid, like saying you want to create a single-tasking desktop OS... just not much use if I can't toggle between windows, etc, but trying to keep an OS/kernel minimal is a good idea. I haven't set any hard goals besides keep it small, because if I need more space to implement something better, I am not going to skimp out due to it being a bit larger, for example, using a round robin scheme for multitasking, while keeping the footprint smaller, would tend not to work as good as implementing a better algorithm. Nothing says that 3gb hard drive with a 4kb OS won't have 2gb worth of data and another gig of program files on it. Also, what if I wanted to network boot my OS, do I really want to wait for 1gb of data to be x-fered for bootup every time? Heck no, but having a sub 20k OS would be perfectly acceptable, and still plenty fast for network booting. I would like to keep my OS with minor supporting apps able to boot on a floppy, even a 10mb/s connection would be able to transfer the OS image in a few seconds, dsitribution would be easy, even a dial-up could download it. Install it on a slow USB thumbdrive for booting, and it won't take forever on a 1.1 usb device to load. There are plenty of reasons to keep it small, and not many reasons to bloat it. Larger size tends to run slower (unless it's a really complex and speed efficient algorithm, in which case, i would take speed efficiency over size efficiency, within reason of course).

Posted: Mon Dec 31, 2007 5:01 pm
by Bobalandi
I agree, but I said that because I thought he was talking about like 4kb for everything, including that apps, and all, sorry. :oops:

Posted: Mon Dec 31, 2007 5:18 pm
by xyjamepa
My kernel is about 28KB and it is in pmode and it has memory management,multitasking virtual mode FDD ,fat12 file system
and some other stuff I made it using C,but if you want your os to be
4KB or less I advice you to do it with assembly.

Posted: Mon Dec 31, 2007 5:21 pm
by packet50071
I don't see the whole point in making a tiny tiny tiny OS !! cause where I live hard drives are cheap as hell :) -- If u just looking for challenge thats really cool :D

I set my dreams really high :D LOL