Page 1 of 2

What size is your OS?

Posted: Wed Oct 31, 2007 8:49 pm
by 01000101
Just wondering about how large some dever's OSs are.
Also, it would be nice if you guys provided some basic info about the OS to accompany the size listing.

Mine is 40k compiled with nasm and djgpp.

Networking support.
multi-threading support.
basic UI (shell style).
basic Floppy Drive support.

Posted: Wed Oct 31, 2007 9:11 pm
by Alboin
8) I've restarted mine so many times, it's kind of small at the moment. (It's all in assembly, assembled with yasm.)

I'm really working on my bootloader currently. Memory detection, kernel loading, paging (for higher half kernel, of course.), etc. The actual kernel only has some console writing functions, irqs, and some basic keyboard input.

By the by, whose is >100mb!?

Posted: Wed Oct 31, 2007 9:14 pm
by JackScott
For the record, mine is pretty much similar to Alboin's. Done in C. Final .iso image is a touch under 200KiB.

Posted: Wed Oct 31, 2007 10:51 pm
by Brendan
Hi,

I'm also at the initial stages of a rewrite. At the moment the floppy image is 77.5 KB (uncompressed), and includes boot code, video and/or serial port output, CPU detection and not much else (written in NASM).

Previous versions ranged from about 90 K to 440 K, where the largest included 4 seperate kernels, VFS, user interface, device manager, a few device drivers and a partially complete "regional database" for internationalization (no applications or file systems).

I'm expecting a minimal version of the completed OS to fit on a floppy (i.e. no applications or GUI).

A good GUI with icons, a nice background picture, several fonts and sound could easily add 100 MB or more to any OS. There's a common proverb "A picture is worth a thousand words" - this works out to 2 thousand bytes, and only applies for very small low quality pictures (icons?). ;)


Cheers,

Brendan

Posted: Thu Nov 01, 2007 1:26 am
by Solar
Not eligible to vote since I don't have an OS project ATM, but when I take out the debug symbols and compile with -O2 optimization, pdclib.a ends up at 69k at the moment. That is with most of <stdio.h> taken out for maintenance, no locales, no wide character support, and no <math.h>... so I fully expect to break the 200k barrier with my C library alone, before v1.0 release...

Posted: Thu Nov 01, 2007 2:01 am
by AndrewAPrice
Who's OS is above 100MB?
Brendan wrote:There's a common proverb "A picture is worth a thousand words" - this works out to 2 thousand bytes, and only applies for very small low quality pictures (icons?). ;)
You mistook a thousand words with a thousand characters. Assuming the average length of a word is 4 character plus punctuation (periods, commas, spaces, etc) equals 5 characters per byte. 5 * 2000 = 10000 bytes / 9.8 kilobytes per image. But then the image may be foreign and use unicode ;)

If only this were correct, I could convert my (all-ready heavily compressed) digital photos down to 9.8 KB instead of >1 MB.

Posted: Thu Nov 01, 2007 2:23 am
by Solar
MessiahAndrw wrote:Assuming the average length of a word is 4 character...
That's an assumption that might hold true for English, if you use lots of swear words... 8)

According to this list, English averages 5.10, French 5.13, Spanish 5.22, German 6.26, Turkish 6.52, and Inuktitut (Greenlandic) a whooping 14.48.

Bah, I'm in a foul mood today. :P

Posted: Thu Nov 01, 2007 2:50 am
by Combuster
my previous kernel iteration is by default 80k total, 10k for the kernel + bootloader stages, 70k in some demo applications, which included a text-mode window manager.
If I'd include all programs (which would give serious conflicts) the size would be about three times as big.

But it contains hardly anything useful.

Posted: Thu Nov 01, 2007 2:55 am
by inflater
PXLDR has, and must have exactly 4096 bytes, kernel configuration is there (sorry for OT).
As for the kernel its 24 kB including the pascal part, user applications are ~100kB including FASM.
The kernel is compressed using APACK. UPX doesn't give the right results, plus the kernel would be less stable.

Regards
inflater

Posted: Thu Nov 01, 2007 5:47 am
by Brendan
Hi,
MessiahAndrw wrote:
Brendan wrote:There's a common proverb "A picture is worth a thousand words" - this works out to 2 thousand bytes, and only applies for very small low quality pictures (icons?). ;)
You mistook a thousand words with a thousand characters. Assuming the average length of a word is 4 character plus punctuation (periods, commas, spaces, etc) equals 5 characters per byte. 5 * 2000 = 10000 bytes / 9.8 kilobytes per image. But then the image may be foreign and use unicode ;)
Um, no - I'm an assembly language programmer.

For 80x86 assembly language, a byte is a byte, a word is 2 bytes, a dword is 4 bytes and a qword is 8 bytes... 8)


Cheers,

Brendan

Posted: Thu Nov 01, 2007 6:04 am
by Solar
Brendan wrote:...a word is 2 bytes...
Ngngngn.... this one stumped me the first time about 18 years ago, and it still confuses the heck out of me. :-D

Posted: Thu Nov 01, 2007 7:10 am
by AndrewAPrice
Brendan wrote:For 80x86 assembly language, a byte is a byte, a word is 2 bytes, a dword is 4 bytes and a qword is 8 bytes... 8)
I ment an English word not a computer word :)
Solar wrote:
MessiahAndrw wrote:Assuming the average length of a word is 4 character...
That's an assumption that might hold true for English, if you use lots of swear words... 8)

According to this list, English averages 5.10, French 5.13, Spanish 5.22, German 6.26, Turkish 6.52, and Inuktitut (Greenlandic) a whooping 14.48.

Bah, I'm in a foul mood today. :P
Let's change my calculation:
7.52 (6.52 + punctuation) * 2000 = 15040 bytes / 14.7 kilobytes per image

Posted: Thu Nov 01, 2007 12:01 pm
by SpooK
Solar wrote:
Brendan wrote:...a word is 2 bytes...
Ngngngn.... this one stumped me the first time about 18 years ago, and it still confuses the heck out of me. :-D
WORD is a generic term meant to fit the architecture size. The original WORD size of the 8086 was 16 bits... or 2 bytes.

I'm sure some architectures (MIPS???) qualify 32 bits as the WORD size. I would also guess that the Intel 4004 was a 4-bit WORD and the Intel 8008 was an 8-bit WORD.

Posted: Thu Nov 01, 2007 12:04 pm
by xyjamepa
hi...

My kernel is 28KB
and it supports:
memory management:paging
hard ware multitasking
virtual mode
keyboard driver
floppy driver
fat12 file system
Also I'm using GRUB to boot
and I'm writing my os using DJGPP and NASM.

Thanx.

Posted: Thu Nov 01, 2007 12:39 pm
by 01000101
lol I just got rid of ALOT of rejected crap code that was just sitting there from previous mess ups. brought my realtek drive down to 6k.

now my os is still just as functional but is only 16k compiled.