Part of the skill and challenge of writing in Asm is knowing how to simplify your problem so that you don't need to write so much of it (and beneficially, so that the machine doesn't have to execute so much either.) For example, a typical programmer raised on HLLs would think nothing of allocating and freeing a string object, and then another, and then another just to concatenate them and pass the resulting value to another function, in a loop that processes some data. That's a few dozen bytes of source code that compiles into a few hundred or even kilobytes or more if you include the memory allocator. The Asm programmer would for instance realise that the first string is a constant and the second is only a single character, and just allocate statically a single buffer big enough for both, and only modify the single character in the buffer, turning what the HLL'er would need a few hundred instructions to accomplish into a single instruction; and then write the dozen bytes of source code for that instruction, compiling into a few bytes of binary.
Repeat this process for everything, and you can easily see how an OS that might contain 1GB of compiler-generated code could fit in 10MB of handwritten Asm.
I also wonder how adjustable MenuetOS is. It looks as if the default theming in all those screenshots is quite basic, always fitting to just one style only.
Early versions of Windows, even 3.x, were quite themeable, and the base OS was only around 10MB, mostly a mix of C and Asm; of course, the C parts occupied far more space, but it's not hard to imagine e.g. rewriting Windows 95 in pure Asm and having all that functionality including theming in 1/10-1/50th the space.
I used to uninstall unneeded items and delete useless folders, go without swap, and Windows 95 did everything I could ask for at only 35MB of storage space on the HDD.
Then installing Office 97 added another 85MB and I was in business.
>"On the other hand ... to me it always felt as if I'd waste too much time writing assembler code. I like being able to express thoughts and ideas, via code, in a more easily manner, e. g. ruby"
Old fart here. Never mind assembler. I've started with machine codes directly. Anyway early on I'd written fairly big programs using assembly. Was not too difficult. First you developing little functions, like a lot of the, and then you call those and along with using macro facilities it looks almost high level.