Top
Best
New

Posted by luke8086 2 days ago

Show HN: GentleOS – A pair of hobby OSes for vintage 32-bit and 16-bit PCs(github.com)
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.

52 points | 78 comments
mysterydip 7 hours ago|
> 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!

nosioptar 6 hours ago||
I think this is fantastic! I love that the code is so clean my dumb ass can understand it despite not using C much.
sixothree 4 hours ago|
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.
lproven 2 hours ago||
> it's quite a feat to fit this into 4 MB on a 386.

I had 2 different Librex 386SX laptops, with 4MB of RAM, on long-term loan from work around 1992. One was quite chunky, the 2nd was a slimline thing with an off-centre hinge.

I ran OS/2 2.0 on them both.

So I could run multiple DOS apps, and a WinOS2 VM containing Windows 3.0, meaning I could run Win16 apps as well. And native OS/2 apps, although I didn't have many.

Here's a pic of the original Librex:

https://books.google.im/books?id=tDwEAAAAMBAJ&pg=PA27&redir_...

And the 2nd model:

https://www.reddit.com/r/vintagecomputing/comments/10gepdd/l...

TL;DR

A 386 with 4MB is small now but at the time this was a fairly serious workstation-level PC. At the time my work desktop was a 386DX but it had only 1MB of RAM.

In its time a 4MB 386 could run any one of multiple multitasking 32-bit protected-mode OSes, including OS/2 2.x, SCO Xenix, Coherent 3 or 4, DR Concurrent DOS/386, and so on.

This was a high-end bit of kit and with one of these OSes, or even with Quarterdeck DESQview, it could multitask half a dozen large and demanding DOS apps, or maybe a couple of the still fairly new Windows apps such as WinWord 1, or Excel 2.

nosioptar 48 minutes ago|||
That's a wonderful machine. I'd love to see that style of keyboard on new stuff.

Its wild to me to think of how much old computers could do relative to new. WordPerfect for DOS was always responsive and quick wheb I used it. I've seen ms word cludge up machines that should have plenty of power to run a word processor.

lproven 1 minute ago||
> I'd love to see that style of keyboard on new stuff.

OMG yes please. :-)

Yep, WP for DOS was quick. Rather clunky UI compared to MS Word for DOS, IMHO, but fast. A friend of mine used a simple method to demo its speed: on his cheap monochrome 286 home computer, he loaded the book he was working on -- one big file, a few hundred pages -- and just held down the cursor key to scroll through the whole thing. It kept the entire doc in RAM and the text just blurred as it zoomed through the entire book in under a minute.

Compared then (early 1990s) to Windows where a similar text took tens of minutes, as my faster computer struggled to load in pages of text from disk, render the fonts, etc.

In the late 1980s, Amstrad introduced new CP/M machines, the PCW range:

https://www.cpcwiki.eu/index.php/PCW

They sold for over a decade and shifted about 8 million units. A CP/M computer, in the early Windows era.

Maybe it's time to do that again: a very low-spec machine, but with a crisp e-ink screen and a great premium-grade mechanical keyboard, shipping with a modern FOSS DOS, a compilation of free DOS apps, and some nice friendly graphical launcher. Wrapped up as an easy appliance that doesn't do Internet stuff at all, but makes it trivially easy to save your work on USB media or zap it to modern devices wirelessly.

Form factor of a big late-20th-century laptop, with a massive battery so it can double as a power bank for your phone or something.

NoGravitas 1 hour ago||||
I had a 386SX-16 running OS/2 from 2.1 to 3.0. It was usually fine, you could multitask several OS/2 and DOS applications or a WinOS2 session. It was very easy to get it swapping, though, and when it was swapping, it ground to a halt. It helped a lot putting 8MB on it, though 4 of those were on an ISA card and very slow.
icedchai 1 hour ago|||
My first Linux box was a 386SX with 3 megs of RAM (1 meg on the motherboard plus a 2 meg expansion.) It was a tight fit (SLS Linux, I think?) This would've been around 1992 or 93.
iamnothere 18 hours ago||
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.

luke8086 1 hour ago||
Thank you so much! Somehow I haven't heard about Uxn before, but it seems very cool and I'll definitely look into it.
iamnothere 1 hour ago||
You’re welcome. You’d probably appreciate its focus on long-term stability; the authors wanted an environment for their software that would ensure code could stay frozen in a working state forever. The only thing that may need updates is the VM, as the host OS and userland will shift over time, but the VM is designed to be exceptionally easy to implement and maintain. That comes at the cost of some capabilities, but they were specifically aiming for simpler software, so it works out.
sandos 3 hours ago||
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....

Waterluvian 3 hours ago||
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.
Aldipower 8 hours ago||
A pre-build floppy disk image would be great, so I could run it on my IBM PS/1 from a floppy.
Aldipower 5 hours ago||
Ok, I built the floppy image now. dd'ed it on a floppy and powered my IBM PS/1 up. Despite some nasty sounds of the HDD bearings that went away after 30 seconds, the floppy does not boot on this machine. Just a black screen. 386SX-25 2MB RAM. Maybe 2MB RAM too less, but I thought at least something will happen. :-)
luke8086 1 hour ago||
Even on 2MB, you should be able to at least see GRUB, which would tell you that it can't load the kernel. Does it go blank before that? This could mean an issue with either GRUB or the floppy.
valleyer 8 hours ago|||
There seems to be an 8 meg image here: https://github.com/luke8086/gentleos32/releases/download/202...
ginko 7 hours ago|||
Someone prepare a set of floppy disk images so you can get the proper installation experience.
RobotToaster 6 hours ago||
Including the mandatory corruption on the last one.
Aldipower 6 hours ago|||
This is a hdd image, I guess.
sillywalk 2 hours ago|||
I'm curious what model of PS/1? My first PC was a PS/1 model 2011, with a 286@10Mhz.

Also, there's an emulator for PS/1 machines at https://www.ibmulator.org/

luke8086 6 hours ago||
For PS/1 you'll need the 16-bit version from https://github.com/luke8086/gentleos. A floppy image is provided in releases. Note you only need to copy the first 64KB, the rest is just padding for emulators.
Aldipower 3 hours ago||
Ah, even though the 386SX-25 is 32bit in my PS/1? Will try it eventually.
luke8086 1 hour ago|||
Oh sorry, a quick google check told me PS/1 had 286. 386SX itself should be supported, the monochrome Toshiba on the photo has 386SX/20 with 10MB RAM.
gunapologist99 2 hours ago|||
Yes, the CPU is full 32-bits, but the bus in a 386 SX is only 16 bit. Those PS/1's are such a cool piece of computing history!

https://en.wikipedia.org/wiki/I386#80386SX

wtallis 2 hours ago||
The data bus was only 16 bits wide, but that doesn't really have much impact on OS compatibility; it just means that transferring a 32-bit value to or from memory takes two bus clock cycles instead of one. The address bus is only 24 bits wide, but that only affects physical memory address space; it still uses 32-bit pointers and a 32-bit virtual address space.
hansvs 6 hours ago||
Nice! The project also has a 16-bit variant https://github.com/luke8086/gentleos, not clear if it works on 8086 IBM PC, but I'll give it a go. Been looking for a reason to power up my IBM PC again.
reconnecting 7 hours ago||
GUI looks a but BeOS inspired, but somehow even cleaner.
luke8086 5 hours ago||
Good catch, the yellow and blue colors are totally inspired by BeOS :D I'm even adjusting the default VGA palette to get the right tints in 16-color mode.
tecleandor 7 hours ago|||
I think it's that yellow bar what it makes it look like BeOS. And maybe the right hand menu bar. But once you check a B/W version, it doesn't look like BeOS that much.
MisterTea 5 hours ago||
More like a Win 3.1 theme with BeOS colors and a NeXT desktop.
gt0 6 hours ago||
Made me think of Breadbox Ensemble, which is GEOS, and was really lovely.
lproven 2 hours ago|
FWIW, still around and now FOSS.

https://github.com/bluewaysw/pcgeos

amelius 5 hours ago||
Part of why these images look so nice is because these systems were not so locked down.
Dwedit 3 hours ago|
There weren't too many GUIs that used the PC-BIOS font. Most of them wanted to get away from that.
More comments...