Hacker News new | ask | show | jobs
by licnep 1612 days ago
This is insane, I can't imagine how much work went into it.

I had a similar idea as a kid, I was pissed at all the bloat consuming my cpu and ram on windows so I wanted to build my own os that would run a single app taking advantage of 100% of the hardware. I learned some assembly and managed to create a bootable floppy disk, then quickly gave up, realizing how much work a functioning os would take...

2 comments

I did this in the mid-90s when this book came out:

https://www.amazon.com/Developing-32-Bit-Operating-System-Cd...

I knew x86 well from demo scene coding, and I had the Linux and NetBSD sources to help, but the hardest bit was just getting all the boot sector stuff going properly and getting the processor into 386 mode as soon as possible.

I wrote an entire OS that booted into a windowed GUI, multi-threaded, file system support etc, etc and my goal was the whole thing booting happily to the desktop in 4Mb of RAM from a 1.44Mb 3.5" floppy, which it did. Every line was written from scratch in x86 assembler, because I was a masochist like that.

I called it Tinkerbell, for reasons lost to time, and it was hosted at tinkerbell.org back when I owned that domain. I just checked archive.org but sadly they didn't grab it when it was around.

EDIT: 32-bit OS book and the source are here:

http://www.ipdatacorp.com/mmurtl/

Hey, I remember looking at your operating system in the 90'. I do not remember where I find it. It's nice to read about it today.
Very cool!

Do you have insight into why modern operating systems consume gigabytes of disk space and require so many system resources?

Because they do a lot more? The video demo is the happy path. It's perhaps hard to notice things like the image viewer supporting drawing things on the image but not supporting saving the resulting file, or the lack of alt-tab.

Also, Essence is basically a Win32-like system (with some very small use of C++ but e.g. using char* instead of std::string). The kernel is handling graphics and the windowing system, like it used to do in Windows. Even the eyedropper you saw has kernel mode support.

https://gitlab.com/nakst/essence/-/blob/master/kernel/window...

Yes you can get very efficient code this way but only at a cost of low programmer productivity / reliability / security, especially as the code scales up to more than one developer. For a hobby OS it doesn't matter. For a commercial OS it's not good enough, hence Apple/Microsoft's investment in .NET and Swift. These consume more resources but make it easier for programmers to avoid mistakes and work together.

Don't get me wrong. I'm loving the style, the panache, the clean code, the ambition. Fantastic project. But it's a bit naive to ask "why can't all operating systems be like that?". Operating systems written by one guy will inevitably be fast and light compared to an OS that's 30 years old and which has 10,000x the number of features (at a conservative guess).

It's a lot of work.

One guy pulled it off. https://en.wikipedia.org/wiki/TempleOS

SerenityOS is another one which was posted recently:

https://news.ycombinator.com/item?id=29270776

Video demo:

https://vimeo.com/641406697

SerenityOS is great too. But it doesn’t run on real hardware yet I think?
Apparently it worked on specific hardware configurations a couple years ago: https://www.youtube.com/watch?v=sT-ME3PsKtc

In terms of general minimal-viable support, that's probably hit-and-miss (perhaps around where Linux distros were at in the early 90s - probably worked, except for everywhere it didn't), particularly with the increasing ossification and variability of BIOS/legacy emulation in current-era systems.

I remember one called SkyOS as well - it was really far along, probably killed by the lack of driver support. Unfortunately it's site seems to no longer exist.

Here's the latest archive of it I could find: https://web.archive.org/web/20171014135312/http://www.skyos....

Also it's wiki page: https://en.wikipedia.org/wiki/SkyOS

> I remember one called SkyOS as well - it was really far along, probably killed by the lack of driver support. Unfortunately it's site seems to no longer exist.

Here is the LinkedIn page of the main developer (Robert Szeleney) of SkyOS: https://www.linkedin.com/in/robert-szeleney-26902738/

In 2009, he founded Djinnworks: https://djinnworks.at/

You can find Robert Szeleney's email address on https://djinnworks.at/team

Considering the fact that according to the German wikipedia page (https://de.wikipedia.org/w/index.php?title=SkyOS&oldid=21527...), the last version of SkyOS is from 2008, I don't believe that SkyOS was killed because of a lack of driver support, but rather because the main developer simply had to make money. But feel free to ask him directly, you now know how you can.

Yes, and several others since.
Does anyone use it?