Comment by elcritch

1 day ago

This is awesome! Small projects like this that take off are fun to read.

Maybe I'm imaging it but FreeBSD really seems to have far less bloat than Linux distros and better latency. I just setup a $4/mo FreeBSD VM on Vultr with 1G RAM and 1vCPU and it's only using 12% of RAM with Caddy. A VM with 4GB of RAM and 4 vCPUs could serve a lot of traffic.

I'm wanting to create a personal blogging with a retro BBS-like web app with a text first interface with a multi-threaded Nim server + sqlite. I'm sure something exists already but it'd more for my own tinkering. No containers, no async, no javascript libraries. Just a small 4MB binary and FreeBSD. This posts encourages me on the FreeBSD route!

For Linux this will vary between distributions and configurations. For example, based on some testing I did today using mkosi [1] (for reasons unrelated to this discussion), a bare-bones Fedora 43 installation uses about 130 MiB of RAM, while a Debian installation uses a little more than 100 MiB.

IIRC last time I tried a bare-bones FreeBSD installation it used about the same amount of memory, maybe a little more based on how ZFS is set up.

[1]: https://github.com/systemd/mkosi

  • ZFS will happilly (and intentionally) gobble up available RAM for ARC. On my 64GB system, ARC is using 42.4GB, but this memory is quickly reclaimable if it's needed. That said, I had very bad experiences trying to run ZFS on an underprovisioned system.

I somehow remember Linux using half the resources it does today, 20 years ago. It occurs to me now for the first time, that this might be due to the switch to x64.

That's probably not the only reason but it bothers me that I never considered that before! I remember at some point it used twice as much RAM for basically the same thing, and I remember being bothered by that.

But I guess what you get in exchange for that is the ability to put in basically unlimited RAM.

  • It's just the price of progress. When I started playing with Linux, a full fledged Linux desktop with web browser and all ran very happily on a machine with 16 megabytes of RAM. At the time, there were distributions that fit on a floppy disk.

    Both are more or less impossible now, but I don't think we should think of 100mb of "background state" as bloated. The fact that your can get a lot of useful stuff done on Linux in under 512mb in 2026 while Windows and Mac need multiple GB just to get out of bed is pretty awesome.

FreeBSD may have less bloat, but I'm running a web server in a Linux container (debian-slim - so not even as small as you can go with linux) with only 256mb RAM (of which it is only using ~64mb).

> have far less bloat than Linux distros and better latency

I think this has always been the norm from what I remember. That said, Arch Linux, KISS, Void, etc. are minimal enough, IMO.

Unbloated distros exist, Alpine is one example. I was taken aback how snappy it is. Does everything without any undue delay. Merely logging in via SSH feels quicker as you don't have to wait a second for the prompt like on Ubuntu. apk is also super fast.

  • Alpine is really good for servers.

    Man I love alpine even though I don't use it so much but alpine does hold a special place in my heart for some reason (and i think the reasons are good)

    Tinycore is another one which holds a special place in my heart, partially because its the most no BS simple alpine-like os that I have seen which is rather focused on the consumer side, so you can get GUI systems super quickly and minimalist.

    The minimalist tinycore iso with gui and terminals ran on 21-40 MB :) let that sink in

    They showed as 0.0% or 0.1% on my 8 gig computer.

    I used tinycore to take my really old laptop which my brother used to game on mostly and was super dead, it was a dell mini pc with intel atom 1 gig of ram 32 bit, probably 10-15 years old

    I ran tinycore on it with no problem and ended up with wifi access and then even ran modern firefox browser and ended up even running a website like https://pomodorokitty.com/ on it

    Man,do i love them both.

    I genuinely just wanted to create a service which could just boot tinycore gui servers in the browser perhaps via novnc for people to play with but I seriously wondered who might pay for the project

    Oh btw oops forget that you can already do that by just downloading the iso of tinycore and then going to copy.sh/v86

    In fact that inspired me to create the project but one of the issues of copy.sh/v86 is that its ephemeral and runs directly in your browser so if you close it whereas I thought of having a mini-server-like tinycore where I can get a gui mini server and can quickly open/close it with terminal and even heck modern browsers.

    Everyone should try out tinycore just once imo. The simplicity of 21 MB is mind boggling to me. Makes one really wonder what bloat really is I suppose, definitely a fun experience.

    Oh also I love alpine because I ran it in my phone using UserLand and I loved it although running python in alpine was a bit of mess on my phone and I think I ended up doing some wizard magic or something using g-compat in the end as well to run it. Although I think termux is pretty good and even better than UserLand in this context because UserLand runs emulated where Termux doesn't I guess but not sure.

    • Alpine used to leave performance on the table by default. Something to do with the compiler having a lot of safe options and not using some CPU extensions at the time.

      Don’t know whether it is the case anymore, but it’s something I proved in the past and then engineering deployed minimal Debian instead because it ended up being cheaper.

  • True Alpine is pretty snappy. I don't like using it as muslc has given me headaches before. Arch is faster generally too but not as much. Maybe there's something with systemd stuff.

    • One could probably use VoidLinux or Gentoo with glibc I suppose if one might want leaner than arch but more heavier than arch

      Although VoidLinux's iso size I think is larger than ArchLinux or something which doesn't make that much sense but I don't really know but both are good references to check out.

The BSD utils are always much nicer to read than the GNU ones when you want to understand what's going on, there's no competition.

I do prefer the GNU style licensing model & popularity but for the code itself, I prefer the BSD ones.

> retro BBS-like web app

You mean like oldschool dialup BBSes, or a forum-style "Bulletin Board"? If the latter, take a look at FlaskBB :-)

Thank you!

  • BTW, how do you feel about ActivityPub in general?

    • I like it. It's not perfect, but it's a good way to make sure that platforms will continue to be able to federate. They're evolving and things will improve. The experience is much better today, compared to some years ago.