by ghaerr on 1/5/25, 2:38 AM
Thanks for the comments! ELKS will run on an 8088, but also runs on any x86 PC using the legacy "real mode" which runs in 16-bit segmented architecture without an MMU or any hardware protection. It can be fun to boot a PC and see a close resemblance to Linux, but run the way things used to be, using only 16-bits.
It'll also run in ROM, e.g. using a 8018x CPU w/onboard PIT and PIC.
The point of ELKS today is about "small is beautiful" and seeing what can be done when limited to 64k code and 64k data, and 640k RAM. It's based on a very old fork of Linux and many of the internal structures are similar to what was found in Linux 2.0, without the changes for SMP support.
We just recently got a native C compiler/assembler/linker toolchain up and running. I must say making that happen provided some vivid comparisons of what programmers had to go through in decades past in both slower speeds and small executable file sizes, versus what we all have and expect today at our fingertips.
by vkoskiv on 1/5/25, 1:50 AM
I recently added dual screen support to the ELKS console-direct driver, so if your system has both MDA and CGA cards, you enable CONFIG_CONSOLE_DUAL in your kernel config and select runlevel 5 in /bootopts, it will allocate 4 ttys, with one of them on the MDA display. You can see this setup running on my hardware in this pic in the README:
https://raw.githubusercontent.com/ghaerr/elks/refs/heads/mas...
I could use some help testing it on EGA and VGA hardware, as I don’t have any 8 bit cards for those in my collection.
by tialaramex on 1/4/25, 11:09 PM
Cool. A quarter of a century ago a friend of mine worked on this and you can still see his name in some copyright notices (Alistair Riddoch)
Most recently Al was learning Rust because he needs that for his current role, it might be fun to see whether you can write an ELKS target for Rust.
by IgorPartola on 1/4/25, 11:07 PM
I do wonder in today’s landscape of single board computers what the right bit width is. A 64-bit system with like 1-2GB or RAM doesn’t make a ton of sense since your program size and data structure size grows by quite a bit but you don’t need it to since you don’t get to have more than 4GB of RAM. On the other hand there you do have SBCs with 8-16GBs of RAM but that’s a far cry from needing full 64 bits. Would an optimal bit width be 48 bits? 40?
by LeFantome on 1/5/25, 1:59 AM
We are removing 32 bit support from the Linux kernel because nobody uses that hardware anymore. Yet, this 16 bit version has commits from today.
by knorker on 1/5/25, 10:07 AM
I used elks back when I was too poor to buy a real laptop. My laptop was a 286 (old even then), with a shot battery.
So I used elks and lugged around a lead acid motorcycle battery.
It was great for my circumstances, but I wouldn't say I miss it compared to my many cores and gigs laptop.
by cloudsec9 on 1/5/25, 9:22 AM
Another operating system that deserves mention for 286 class machines is Coherent. This was an Unix like OS you could buy for $99, and it had all of the various Unix utilities and came with a HUGE manual to help you learn it.
They had a 386 version as well, but went all in on getting X-windows and graphics working, and ignored TCP/networking just as the Internet started to gain a lot of traction. Still an interesting OS to look at!
by snvzz on 1/5/25, 2:35 AM
Tangentially related, DOS is a popular choice in this category of hardware.
Freedos has released 1.4rc1 recently, thus 1.4 is close.
Svardos switched to EDR-DOS kernel, which is derived from DR-DOS. That's a very nice kernel, written in assembly. Notably, Windows 3.1 works with it, including protected mode.
by forinti on 1/4/25, 9:32 PM
Wait, "ROM-based systems"? Were there such x86 micros and is this saying you could run Linux from ROM?
That's super interesting.
by squarefoot on 1/5/25, 7:33 AM
The memories. I had it run ("installed" would be a big word ona 2 flopppy and no hard drive system) on a super cute Carry-1 8088 computer ages ago, which I stupidly sold on Ebay shortly after as I had no use for it.
Here's one of the very rare photos online.
http://vintagescan.blogspot.com/2015/12/flytech-carry-i-1990...by jvanderbot on 1/4/25, 9:56 PM
They mention "SBC"s. Is this something that is intended also for modern 16bit SBCs?
by tmzt on 1/4/25, 11:31 PM
Does anybody have the archive of the original ELKS site with the quote from Linus that Linux is not suitable for anything but 486 or higher or something like that?
by garaetjjte on 1/5/25, 12:07 AM
I'm confused what relation this has with Linux.
by incanus77 on 1/5/25, 8:13 PM
by chriscappuccio on 1/5/25, 7:58 PM
There was a version of KA9Q NOS with multitasking that could serve telnet, ftp, smtp, bbs, convers, and more plus give you multiple switchable terminals for telnet, ftp, all at the same time on an 8088 and connect to a packet driver for modem, ethernet, or AX25. It was a port of BSD networking with its own multitasking capability.
Also PC/MIX was pretty cool.
by nh2 on 1/5/25, 12:35 AM
Could somebody with a good understanding of microchip production economics explain what the price difference would be if all 8-bit chips (such as the Atmega328) were replaced by otherwise equivalent 32-bit or 64-bit chops tomorrow (that is, same production capacity and unit counts sold)?
How much would it cost, in cents, to just have those extra bits?
by accrual on 1/5/25, 5:40 AM
My oldest working systems are now a 386/DX40 and 486/DX2-66, but I never had a chance to run Linux on them back then. Did anybody here have a favorite distro for such early 90s hardware? When I find a 286 or earlier I'd love to give ELKS a try.
by hudecekdev on 1/5/25, 9:10 PM
I don't know exactly why, but this makes me happy.
by fulafel on 1/5/25, 7:20 AM
Sounds optimal for microservices.
by marcodiego on 1/4/25, 9:26 PM
What would be really interesting: porting DOSEMU 1.4.0 to it. This would give us a maintained unix-like OS combined with a huge abandonware dos library turning those old machines into something fun and maybe useful.