Readit News logoReadit News
hiAndrewQuinn · 9 days ago
Tiny Core Linux has a version for Raspberry Pis called piCore [0] that I wish more people would look at, because it loads itself entirely into RAM and does not touch the SD card at all after that until and unless you explicitly tell it to.

Phenomenal for those low powered servers you just want to leave on and running some tiny batch of cronjobs [1] or something for months or years at a time without worrying too much about wear on the SD card itself rendering the whole installation moot.

This is actually how I have powered the backend data collection and processing for [2], as I wrote about in [3]. The end result is a static site built in Hugo but I was careful to pick parts I could safely leave to wheedle on their own for a long time.

[1]: https://til.andrew-quinn.me/posts/consider-the-cronslave/

[2]: https://hiandrewquinn.github.io/selkouutiset-archive/

[3]: https://til.andrew-quinn.me/posts/lessons-learned-from-2-yea...

1vuio0pswjnm7 · 9 days ago
"Tiny Core Linux has a version for Raspberry Pis called piCore [0] that I wish more people would look at, because it loads itself entirely into RAM and does not touch the SD card at all after that until and unless you explicitly tell it to."

Before RPI existed, I always made filesystem images for USB sticks in NetBSD so that writes never touched "disk" ("diskless"). This allows me to remove the USB stick after boot, freeing up the slot for something else

BSD "install images" work this way

I have been using the RPi with a diskless NetBSD image since around 2012; there are no SD card writes, the userland is extracted into RAM

I can pull out the SD card after boot and use the slot for something else

If I want data storage, I connect an external drive

It's been wild to read endless online complaints from so-called "technical" RPi users for the last 13 years about SD card wear and tear

To me, it's another example of how it's possible to have a solution that is as old as the hills and have it be completely ignored in favor of a "modern" approach that is fatally-flawed

victorbuilds · 9 days ago
“It’s been wild to read endless online complaints from so-called ‘technical’ RPi users for the last 13 years about SD card wear and tear…”

A lot of the SD-card wear issues come from people running “normal PC workflows” on a storage medium that was never designed for that pattern.

Something I’ve seen help many newcomers is simply enabling an overlay filesystem or tmpfs-based writes. It’s basically the middle ground between a full RAM-boot distro (piCore, Alpine diskless, NetBSD) and a standard SD-based Raspberry Pi OS.

You still get the normal ecosystem and docs, but almost no writes hit the card unless you explicitly commit them.

For anyone stuck between “I want something simple” and “I don’t want my SD to die,” overlays are the easiest win.

embedding-shape · 9 days ago
There is (at least) two different groups of people using Raspberry PI. One of them are completely new Linux users who need a ton of help and resources to understand enough so they can achieve what they're trying to do. Raspbian/Raspberry Pi OS, even with their faults, is probably the better option for those people, as the environment and context very much takes first time users into account.

NetBSD and Tiny Core Linux, even with all their benefits, is a harder experience to get into if you haven't already dipped your toes into Linux, and doesn't have the same wide community and boundless online resources.

Nextgrid · 8 days ago
I suspect the majority of "SD corruption" on RPis is due to bad power supplies or EMI causing the system to misbehave (and write erroneous data to the card) rather than actually exhausting the card's write capacity.
1vuio0pswjnm7 · 8 days ago
The point I'm making is not that NetBSD is a solution

The point I'm making is that putting the rootfs on a memory filesystem, e.g., tmpfs, mfs, etc. avoids the problem with SD cards^1

This can be done with a variety of operating systems. IMO, the advantange of the RPi hardware is that it is supported by so many different operating systems

When I want to run additional, larger programs that are not in the rootfs I have embedded into the kernel, I either (a) run them from external storage or (b) copy them to the mfs/tmpfs

It depends on how much RAM I have available

1. There are probably other ways to avoid the problem, too

hiAndrewQuinn · 8 days ago
I actually considered NetBSD for an old 32 bit box yesterday, so I'm somewhat wise to this world. My first experience with ramdisk operating systems was Puppy Linux back in the early 2010s. Ultimately I'm probably going with OpenBSD for that box.

But, NetBSD ISOs are much heavier than TCL ISOs, and so while I'm sure there's a way to get just what I want working in diskless mode, I'm not confident I will have any RAM to run what I actually want to run on top of it.

marttt · 9 days ago
What's the size of your "diskless" NetBSD installation, and how fast does it boot?

As compared to TC, the "out of the box" NetBSD images contain many things I wouldn't need, so customizing it has been a recurring thought, but oh well. The documentation and careful modularity is, obviously, a huge bonus of NetBSD in that regard (even an end-user like me could do some interesting modifications of the kernel solely by reading the manual). TC seems much more ad-hoc, but I assume this, too, is intentional, by design.

Deleted Comment

ycombinatrix · 8 days ago
I set up a similar system using NixOS, no writes to the disk by default.

Though I don't explicitly load the entire userspace into RAM, since this is a laptop and I don't foresee a need to remove the SSD after boot.

jimvdv · 8 days ago
Back in the day I believe I just installed the OS on a USB stick and used the SD card only to boot of that.
squarefoot · 9 days ago
Alpine also has a lesser known RPi build on their download page; by using musl instead of glibc the difference in size and resources used compared to regular distros is huge as well. https://alpinelinux.org/downloads/
Lyngbakr · 9 days ago
I recently put Alpine with i3 on a Raspberry Pi 4 Model B and I'm super impressed with how snappy it is. I find it much better even than Raspberry Pi OS Lite.
jwrallie · 9 days ago
I can vouch for it, I had an RPi that was translating a serial port to TCP/IP in a difficult to access location, and it stayed doing its duty for years, Alpine is very solid.
blueflow · 8 days ago
Important to mention: Alpine can run from RAM like TinyCore
lukan · 9 days ago
"Phenomenal for those low powered servers you just want to leave on and running some tiny batch of cronjobs [1] or something for months or years at a time without worrying too much about wear on the SD card itself rendering the whole installation moot."

Yes, this is exactly what I want, except I need some simple node servers running, which is not so ultra light. Would you happen to know, if this still all works within the ram out of box, or does this require extra work?

fsagx · 9 days ago
on a pi?

You can run nodejs fine on a pi with "Raspberry Pi OS Lite". In the configs, look for "Overlay File System" and enable it on the boot partition and main partition. The pi will boot from the sd card and run entirely in ram.

Be sure to run something to clear your logs occasionally or reboot once in a while or you'll run out of RAM. Still, get a quality sd card and power supply. You can get years out of a setup like this.

hiAndrewQuinn · 8 days ago
To my understanding TCL expects the RAM-only / diskless case unless you put in a lot of extra work not to do that. In your situation the only thing you would have to really be worried about is whether 4 GB of RAM or whatever you have is enough to fit TCL and the files for your node server and the actual programs you are trying to run with all that. It doesn't get pretty once you exceed your available RAM, be forewarned - but that's true of all programs in a sense.

Deleted Comment

ifh-hn · 9 days ago
I've used many of these small Linux distros. I used to have Tiny Core in a VM for different things.

I also like SliTaz: http://slitaz.org/en, and Slax too: https://www.slax.org/

Oh and puppy Linux, which I could never get into but was good for live CDs: https://puppylinux-woof-ce.github.io/

And there's also Alpine too.

LorenDB · 9 days ago
Puppy was the first Linux distro I ever tried since it was such a small download (250ish MB) and I had limited bandwidth. Good memories.
forinti · 9 days ago
I tried a handful of small distros in order to give new life to an old laptop with an AMD C-50 and 2GB of RAM.

The most responsive one, unexpectedly, was Raspberry Pi OS.

lproven · 7 days ago
Yep. PiOS Desktop (for x86) was a superb very-lightweight distro.

I carefully put a fairly minimal Xfce setup on it instead of LXDE and RAM usage doubled. It's impressively hand crafted and pruned.

Sadly, though, it hasn't been updated since Debian 11.

t_mahmood · 9 days ago
Wondering if it would be a good idea to setup a VM with this. Setup remote connection, and intellij. Just have a script to clone it for a new project and connect from anywhere using a remote app.

It will increase the size of the VM but the template would be smaller than a full blown OS

Aside from dev containers, what are other options? I'm not able to run intellij on my laptop, is not an option

I use Nvim to ssh into my computer to work, which is fine. But really miss the full capacity of intellij

Aurornis · 9 days ago
Ive experimented with several small distros for this when doing cross platform development.

In my experience, by the time you’re compiling and running code and installing dev dependencies on the remote machine, the size of the base OS isn’t a concern. I gained nothing from using smaller distros but lost a lot of time dealing with little issues and incompatibilities.

This won’t win me any hacker points, but now if I need a remote graphical Linux VM I go straight for the latest Ubuntu and call it day. Then I can get to work on my code and not chasing my tail with all of the little quirks that appear from using less popular distros.

The small distros have their place for specific use cases, especially automation, testing, or other things that need to scale. For one-offs where you’re already going to be installing a lot of other things and doing resource intensive work, it’s a safer bet to go with a popular full-size distro so you can focus on what matters.

ornornor · 9 days ago
Isn’t this what GitHub remote envs are (or whatever they call it)?

Never really got what it’s for.

silasb · 9 days ago
moonlight / sunshine might work if you can't run it locally.

It'd be best with hardwired network though.

hdb2 · 9 days ago
> I also like SliTaz

thank you for this reminder! I had completely forgotten about SliTaz, looks like I need to check it out again!

samtheprogram · 9 days ago
Wow, Slax is still around and supports Debian now too? Thanks for sharing.
projektfu · 9 days ago
I used to use it during the netbook era, was great for that.
sundarurfriend · 9 days ago
> puppy Linux, which I could never get into

In what way? Do you mean you didn't get the chance to use it much, or something about it you couldn't abide?

ifh-hn · 9 days ago
No I tried to use it but it didn't click with me. I had it on cd but I'd normally reach for something else.
dayeye2006 · 9 days ago
wondering what's your typical usage for those small distros?
marttt · 9 days ago
I like using old hardware, and Tiny Core was my daily driver for 5+ years on a Thinkpad T42 (died recently) and Dell Mini 9 (still working). I tried other distros on those machines, but eventually always came back to TC. RAM-booting makes the system fast and quiet on that 15+ years old iron, and I loved how easy it was to hand-tailor the OS - e.g. the packages loaded during boot are simply listed in a single flat file (onboot.lst).

I used both the FLTK desktop (including my all-time favorite web browser, Dillo, which was fine for most sites up to about 2018 or so) and the text-only mode. TC repos are not bad at all, but building your own TC/squashfs packages will probably become second nature over time.

I can also confirm that a handful of lenghty, long-form radio programs (a somewhat "landmark" show) for my Tiny Country's public broadcasting are produced -- and, in some cases, even recorded -- on either a Dell Mini 9 or a Thinkpad T42 and Tiny Core Linux, using the (now obsolete?) Non DAW or Reaper via Wine. It was always fun to think about this: here I am, producing/recording audio for Public Broadcasting on a 13+ year old T42 or a 10 year old Dell Mini netbook bought for 20€ and 5€ (!) respectively, whereas other folks accomplish the exact same thing with a 2000€ MacBook Pro.

It's a nice distro for weirdos and fringe "because I can" people, I guess. Well thought out. Not very far from "a Linux that fits inside a single person's head". Full respect to the devs for their quiet consistency - no "revolutionary" updates or paradigm shifts, just keeping the system working, year after year. (FLTK in 2025? Why not? It does have its charm!) This looks to be quite similar to the maintenance philosophy of the BSDs. And, next to TC, even NetBSD feels "bloated" :) -- even though it would obviously be nice to have BSD Handbook level documentation for TC; then again, the scope/goal of the two projects is maybe too different, so no big deal. The Corebook [1] is still a good overview of the system -- no idea how up-to-date it is, though.

All in all, an interesting distro that may "grow on you".

1: http://www.tinycorelinux.net/book.html

nopakos · 9 days ago
I use one of them to make an old EEE laptop a dedicated Pico-8 machine for my kids. [https://www.lexaloffle.com/pico-8.php]
hamdingers · 9 days ago
In college I used a Slax (version 6 IIRC) SD card for schoolwork. I did my work across various junk laptops, a gaming PC, and lab computers, so it gave me consistency across all of those.

Booting a dedicated, tiny OS with no distractions helped me focus. Plus since the home directory was a FAT32 partition, I could access all my files on any machine without having to boot. A feature I used a lot when printing assignments at the library.

ifh-hn · 9 days ago
All sorts. Having a full bootable OS on a CD or USB was always cool. When I left the military and was a security I used to use them to boot computers in the buildings I worked in so I could browse the internet.

Before encryption by default, get files from windows for family when they messed up their computers. Or change the passwords.

Before browser profiles and containers I used them in VMs for different things like banning, shopping, etc.

Down to your imagination really.

Not too mention just to play around with them too.

jbstack · 9 days ago
They can be nice for running low footprint VMs (e.g. in LXD / Incus) where you don't want to use a container. Alpine in particular is popular for this. The downside is there are sometimes compatibility issues where packages expect certain dependencies that Alpine doesn't provide.
jacquesm · 9 days ago
I used DSL for the control of a homebrew 8' x 4' CNC plasmacutter.
trollbridge · 9 days ago
Not to disrespect this, but it used to be entirely normal to have a GUI environment on a machine with 2MB of RAM and a 40MB disk.

Or 128K of ram and 400 kb disk for that matter.

maccard · 9 days ago
A single 1920x1080 framebuffer (which is a low resolution monitor in 2025 IMO) is 2MB. Add any compositing into the mix for multi window displays and it literally doesn’t fit in memory.
snek_case · 9 days ago
I had a 386 PC with 4MB of RAM when I was a kid, and it ran Windows 3.1 with a GUI, but that also had a VGA display at 640x480, and only 16-bit color (4 bits per pixel). So 153,600 bytes for the frame buffer.
beagle3 · 9 days ago
The Amiga 500 had high res graphics (or high color graphics … but not on the same scanline), multitasking, 15 bit sound (with a lot of work - the hardware had 4 channels of 8 bit DACs but a 6-bit volume, so …)

In 1985, and with 512K of RAM. It was very usable for work.

bobmcnamara · 9 days ago
It's so much fun working with systems with more pixels than ram though. Manually interleaving interrupts. What joy.
perching_aix · 9 days ago
More like 6.2+ MB, or at least I'd sure hope that a FHD resolution is paired with at least a 24 bit (8 bpc) SDR color. And then there's the triple buffered vsync at play, so it's really more like 18.6+ MB.
SoftTalker · 8 days ago
Those old computers were 640x480 or so. Maybe smaller.
echoangle · 9 days ago
Do you really need the framebuffer in RAM? Wouldn't that be entirely in the GPU RAM?
AshamedCaptain · 8 days ago
You do not really need a framebuffer to drive a GUI, though. That's very much a PC thing.

Dead Comment

forinti · 9 days ago
The Acorn Archimedes had the whole OS on a 512KB ROM.

That said, OSs came with a lot less stuff then.

xyzzy3000 · 9 days ago
That's only RISC OS 2 though. RISC OS 3 was 2MB, and even 3.7 didn't have everything in ROM as Acorn had introduced the !Boot directory for softloading a large amount of 'stuff' at boot time.
lproven · 7 days ago
> The Acorn Archimedes had the whole OS on a 512KB ROM.

True. And it's still around. It's FOSS now, runs natively on a Raspberry Pi 1-400 and Zero, and has Wifi, IPv6, and a Webkit browser.

https://www.riscosopen.org/content/

https://www.riscosdev.com/direct/

psychoslave · 9 days ago
If that is a lot less of things not needed for the specific use case, that is still a big plus.
bigiain · 9 days ago
Anyone else remember the QNX demo disk from the late '90s? A full unix-like GUI environment that booted from a 1.44MB floppy disk. Ran super responsively in 386 machines with 8MB of RAM.
Suppafly · 8 days ago
They had a free distro for a while, it's was pretty exciting being real time and with a microkernel and such. As a CS student it was neat to see where the world of computing might have went if different decisions had been made in the past.
Scoundreller · 8 days ago
Here’s a blast of classic internet: http://toastytech.com/guis/qnxdemo.html

No ssl, probably so you can access that site on the browser

taylodl · 9 days ago
When I first started using QNX back in 1987/88 it was distributed on a couple of 1.4MB floppy diskettes! And you could install a graphical desktop that was a 40KB distribution!
Perz1val · 9 days ago
Yea, but those platforms were not 64bit
monocasa · 9 days ago
64 bit generally adds about 20% to the size of the executables and programs as t to last on x86, so it's not that big of a change.
IAmLiterallyAB · 9 days ago
Switch to an ILP32 ABI and you get a lot of that space back
BobbyTables2 · 8 days ago
I agree. That system even had MS word in something like 2-5MB of storage.

Windows 3.1 was only something like 16MB of storage.

Imagine the Cray supercomputer in those days being used to run a toaster or doorbell…

1vuio0pswjnm7 · 9 days ago
I would like to have this again

I prefer to use additional RAM and disk for data not code

oso2k · 9 days ago
There’s an installation option to run apps off disk. It’s called “The Mount Mode of Operation: TCE/Install”.
beng-nl · 9 days ago
To think that the entire distro would fit in a reasonable LLC (last level cache)..
croes · 9 days ago
With 320x240 pixels and 256 colors
trollbridge · 9 days ago
640x480 with 16 colours was standard in offices in the late 80s.

If you were someone special, you got 1024x768.

nilamo · 9 days ago
"640k ought to be enough for everyone!"
embedding-shape · 9 days ago
> Or 128K of ram and 400 kb disk for that matter.

Or 32K of RAM and 64KB disk for that matter.

What's your point? That the industry and what's commonly available gets bigger?

shiftpgdn · 9 days ago
This is cool. My first into to a practical application of Linux in the early 2000s was using Damn Small Linux to recover files off of cooked Windows Machines. I looked up the project the other day while reminiscing and thought it would be interesting if someone took a real shot at reviving the spirit of the project.
jollyjerry · 9 days ago
I used to have a floppy and a mini-cd boot version of these. The mini-cd looks like a credit card and fit into a standard size cd drive. Reading the history of the project is a bit of a bummer, but still love the project ethos.
tombert · 8 days ago
Damn Small Linux was the second Linux I tried (after the free CD promotion that Ubuntu did). I liked it and it was fun to play with, but I was such a newbie that I wasn't able to really use it for anything.

It's 20 years later and I've been running Linux for most of that time, so I probably would have even more fun revisiting DSL and Tiny Core Linux.

lproven · 7 days ago
> someone took a real shot at reviving the spirit of the project.

They did.

https://www.theregister.com/2024/02/14/damn_small_linux_retu...

gardnr · 9 days ago
I love lightweight distros. QNX had a "free as in beer" distro that fit on a floppy, with Xwindows and modem drivers. After years of wrangling with Slackware CDs, it was pretty wild to boot into a fully functional system from a floppy.
Someone · 9 days ago
> QNX had a "free as in beer" distro that fit on a floppy, with Xwindows and modem drivers.

I don’t think that had the X Windows system. https://web.archive.org/web/19991128112050/http://www.qnx.co... and https://marc.info/?l=freebsd-chat&m=103030933111004 confirm that. It ran the Photon microGUI Windowing System (https://www.qnx.com/developers/docs/6.5.0SP1.update/com.qnx....)

ddalex · 9 days ago
I never understood how that QNX desktop didn't pick up instanntly, it was amazing !
Joel_Mckay · 9 days ago
Licensing, and QNX missed a consumer launch window by around 17 years.

Some businesses stick with markets they know, as non-retail customer revenue is less volatile. If you enter the consumer markets, there are always 30k irrational competitors (likely with 1000X the capital) that will go bankrupt trying to undercut the market.

It is a decision all CEO must make eventually. Best of luck =3

"The Rules for Rulers: How All Leaders Stay in Power"

https://www.youtube.com/watch?v=rStL7niR7gs

RachelF · 8 days ago
As someone who used QNX back then, they didn't target end-users but embedded and real-time users.

They were expensive too. You had to pay for each device driver you used.

knowitnone3 · 9 days ago
because it's not free and their aim was at developers and the embedded space. How many people have even heard of QNX?
anyfoo · 9 days ago
That famous QNX boot disk was the first thing I thought of when reading the title as well.
taylodl · 9 days ago
Me too! And the GUI was only a 40KB distribution and was waaaaaay better than Windows 3.0!
knowitnone3 · 9 days ago
yeah but what can you do with free QNX? With tinycore, you can install many packages. What packages exist for QNX?
lproven · 7 days ago
> yeah but what can you do with free QNX?

« QNX DEMO disk

Extending possibilities and adding undocumented features »

http://qnx.puslapiai.lt/qnxdemo/qnx_demo_disk.htm

veganjay · 9 days ago
I have an older laptop with a 32-bit processor and found that TinyCoreLinux runs well on it. It has its own package manager that was easy to learn. This distro can be handy in these niche situations.
bdbdbdb · 9 days ago
Similar situation here. Have some old 32bit machines that I'm turning into writer decks. Most Linux distros have left 32bit behind so you can't just use Debian or Ubuntu and a lot of distros that aim to run on lower hardware are Ubuntu derivatives
Narishma · 9 days ago
Same situation but I'm using NetBSD instead. I'm betting it'll still be supporting 32-bit x86 long after the linux kernel drops it.
noufalibrahim · 9 days ago
In around 2002, I got my hands on an old 386 which I was planning to use for teaching myself things. I was able to breathe life into it using MicroLinux. Two superformatted 1.44" floppy disks and the thing booted. Basic kernel, 16 colour X display, C compiler and Editor.

I don't know if there are any other options for older machines other than stripped down Linux distros.

anthk · 8 days ago
Delicate Linux; but you need patience to compile some LibreSSL fork on top of BrSSL and then recompile Lynx, a newer Dillo, Git and so on.
UncleSlacky · 8 days ago

Deleted Comment

Romario77 · 9 days ago
I mean - DOS or it's equivalents still exist and for older computers you will probably be able to find drivers.
slim · 9 days ago
Tiny Core also runs from ramdisk, uses a packaging systems based on tarballs mounted in a fusefs and can be installed on a dos formatted usb key. It also has a subdistro named dCore[1] which uses debian packages (which it unpacks and mounts in the fusefs) so you get access to the ~70K packages of debian.

It's documentation is a free book : http://www.tinycorelinux.net/book.html

[1] https://wiki.tinycorelinux.net/doku.php?id=dcore:welcome