Show HN: GentleOS – A pair of hobby OSes for vintage 32-bit and 16-bit PCs (github.com)

132 points by luke8086 ↗ HN
Hello HN,

I've been working on a simple OS for tinkering and running bare metal apps on vintage PCs.

Since I couldn't quite decide whether to target pure 16-bit, or slightly more capable 32-bit machines, I ended up with two separate versions:

- GentleOS/32 (https://github.com/luke8086/gentleos32) works on i386+, requires 4MB of RAM and VGA display supporting 640x480x16 mode or any 256-color VESA mode.

- GentleOS/16 (https://github.com/luke8086/gentleos) works on 80186+, requires less than 192KB of RAM and a CGA display supporting 320x200x4 mode.

You can find more details in the repos.

37 comments

[ 3.4 ms ] story [ 57.6 ms ] thread
This is great, thanks for releasing your work. Very impressive.

You may get some interest from others in the retrocomputing/permacomputing sphere if you implement an Uxn emulator; it is extremely simple and can run on very limited hardware. https://100r.co/site/uxn.html

Vintage hardware would be a great host for Uxn programs, so I suspect this would generate some excitement.

Heh, the "small virtual machine" was NOT a lie! Is that less than 200 lines? Very nice!

Now I feel like integrating that into various things....

Thank you so much! Somehow I haven't heard about Uxn before, but it seems very cool and I'll definitely look into it.
A pre-build floppy disk image would be great, so I could run it on my IBM PS/1 from a floppy.
> The only future plans are bugfixes, optimizations, and adding more apps.

Perfect. Nice to see a platform target stability instead of constantly reinventing itself and its APIs. Definitely want to give it a go!

GUI looks a but BeOS inspired, but somehow even cleaner.
> A hobby operating system for vintage 32-bit PCs.

I am all in favour of great projects, but why a differentiation between 32-bits or 64-bits? I don't understand that. Is a computer that is 32 bit or 64 bit, either way which, not worthy?

Edit: I understand a motivation if it is on simplicity choosing one or the other, but other than that I don't see why that should ever be a goal worthy to be pursued. Software should really "just work" no matter the number of bits and bytes.

(comment deleted)
Made me think of Breadbox Ensemble, which is GEOS, and was really lovely.
Oh, we had an "enthusiast" customer back around the turn of the century who swore by this and NetZero.

Microsoft is still doing fine, sir.

The GUI is absolutely gorgeous. Reminds me of the early BeOS days but somehow cleaner. Does this run reliably on bare metal, or is it mostly optimized for QEMU right now?
This reminds me of the era when operating systems felt more approachable and visually distinct. Modern UIs are often cleaner, but many of them have lost some of the personality that older systems had.
I think this is fantastic! I love that the code is so clean my dumb ass can understand it despite not using C much.
The code is cleaner that what I was expecting from a C repo. Also, it's quite a feat to fit this into 4 MB on a 386.
Part of why these images look so nice is because these systems were not so locked down.
What a lovely-looking OS! Also great to hear that the project isn't aiming for infinite changes!

Will be digging out some old hardware to test it out very soon, this is exciting!

Love the photos of it running on 386/486 laptops. So cute!
Ahh the Librettos... I had a couple of 50s at one point, one of those looks cool unusable thing and the brittle plastic damn, I opened it and the hinge snapped lmao my heart my soul

Unusuable because of how small the keys are

Kind of an odd statement I think, but I really like the aesthetic of early OS GUIs where you could tell half the tools were pretty much there as developer tools.
There weren't too many GUIs that used the PC-BIOS font. Most of them wanted to get away from that.
I clicked around in the kernel section and the other commenters highlighting the simplicity weren't lying. It's beautiful in its simplicity.

Seeing the screenshots I was kind of expecting this was a pre-emptive multi-tasking OS (forgetting what I read in the submission).

Things that thus surprised me on a cursory look:

  - noticed krn_main() ends with `while (1);` [1]. I would've expected a "schedule" call or something. I assume there's no real busy loop burning CPU, maybe it's never meant to reach this code?
  - I'm reminded of the "bare metal OS" when I see one of the apps call `krn_\*` functions directly [2].
[1]: https://github.com/luke8086/gentleos32/blob/main/kernel/main...

[2]: https://github.com/luke8086/gentleos32/blob/ea691f14635c023d...

Does this OS (either the 16 bit or 32 bit version) require apps built for it, or is it compatible with DOS or Windows 3.x or any other OS.
Really awesome work! A simple OS for retro x86 hardware is a really cool project! I wish I still had some era-appropriate hardware I could test-drive it on.
This might be nice on one of those pocket x86 machines, but I'm not nostalgic enough to try it out.