Smallest Operating System!
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?
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?
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
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
-
- Member
- Posts: 50
- Joined: Sun Dec 02, 2007 1:24 pm
- Libera.chat IRC: elfenix
- Location: United States
- Contact:
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.
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.
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.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.
This Dos clone is less than 2k http://board.flatassembler.net/topic.php?t=5275&start=0
Unoptimised
Unoptimised
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.
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.
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).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?
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.
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.
The man who follows the crowd will usually get no further than the crowd.
The man who walks alone is likely to find himself in places
no one has ever been before.
The man who walks alone is likely to find himself in places
no one has ever been before.
- packet50071
- Member
- Posts: 43
- Joined: Sat Dec 22, 2007 2:27 pm
- Location: canada