A truly damn small Linux is the xwoaf rebuild project 4.0 https://pupngo.dk/xwinflpy/xwoaf_rebuild.html
The forth version of xwoaf-rebuild is containing a lot of applications contained in only two binaries: busybox and mcb_xawplus. You get xcalc, xcalendar, xfilemanager, xminesweep, chimera, xed, xsetroot, xcmd, xinit, menu, jwm, desklaunch, rxvt, xtet42, torsmo, djpeg, xban2, text2pdf, Xvesa, xsnap, xmessage, xvl, xtmix, pupslock, xautolock and minimp3 via mcb_xawplus. And you get ash, basename, bunzip2, busybox, bzcat, cat, chgrp, chmod, chown, chroot, clear, cp, cut, date, dd, df, dirname, dmesg, du, echo, env, extlinux, false, fdisk, fgrep, find, free, getty, grep, gunzip, gzip, halt, head, hostname, id, ifconfig, init, insmod, kill, killall, klogd, ln, loadkmap, logger, login, losetup, ls, lsmod, lzmacat, mesg, mkdir, mke2fs, mkfs.ext2, mkfs.ext3, mknod, mkswap, mount, mv, nslookup, openvt, passwd, ping, poweroff, pr, ps, pwd, readlink, reboot, reset, rm, rmdir, rmmod, route, sed, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail, tar, test, top, touch, tr, true, tty, udhcpc, umount, uname, uncompress, unlzma, unzip, uptime, wc, which, whoami, yes, zcat via busybox. On top you get extensive help system, install scripts, mount scripts, configure scripts etc.
2.1mb https://www.youtube.com/watch?v=8or3ehc5YDo
Only 2.2.26 kernel tho so that's very dated
So uh, who's gonna be first to get it running on a Pi Pico?
Pico is a microcontroller whose Cortex-M0+ cores lack a memory management unit for virtual memory (considered essential for a full-fledged OS like Linux). But can run FreeRTOS on it...memory usages are 236 bytes for the scheduler, 76 bytes + queue storage area for each queue, and 64 bytes plus task stack size for each task, plus 5 to 10 KBytes of ROM.[1]
[1] https://freertos.org/FAQMem.html
Yeah I figured there might be a rub somewhere otherwise it would already be a thing, but since it's technically an ARM it sounded vaguely promising. What about a 32 bit build? I think those used to be able to work with without virtual addresses.
https://unix.stackexchange.com/questions/190350/mmu-less-ker...
aha, and this reminds me about μClinux [1] which targets microcontrollers without a MMU. I installing it on 2005 iPod Classic 5G, and was able to then put a gameboy emulator on it.
https://en.wikipedia.org/wiki/%CE%9CClinux
Though μClinux project seems dead, however the key component of that is a ELF to bFLT (binary flat) converter [1] for no-mmu Linux targets, which is alive on github [2].
[1] https://web.archive.org/web/20120301074213/https://retired.b... [2] https://github.com/uclinux-dev/elf2flt
There's also inferno, which is more or less a full unix-like that can run on the pico ( https://news.ycombinator.com/item?id=37393993 ) and on the Teensy and some other microcontrollers ( https://dboddie.gitlab.io/inferno-diary/index.html )
ELKS supported MMU-less operation on 8088 and 80286 machines, but I don't think an ARM port exists: https://github.com/ghaerr/elks
The popular way to shorehorn modern linux onto a MMU-less microcontroller is to build a a RISC V system emulator and run uClinux on that; you can also emulate the MMU and run regular kernels if you have sufficient resources. It has been done on ESP32 with sufficient RAM; Pico would need additional hardware though in the form of something like QSPI RAM, and of course it would be very slow.
Not possible, unless you want to do it using an emulator and external memory. The lowest you can go for Linux is probably an ESP32:
https://web.archive.org/web/20230515075935/http://wiki.osll....
https://github.com/jcmvbkbc/linux-xtensa/commits/xtensa-6.4-...
You don't need an ESP32. Someone made an AVR port: https://bit-tech.net/news/tech/cpus/linux-atmel-microcontrol...
https://bit-tech.net/news/tech/cpus/linux-atmel-microcontrol...
https://news.ycombinator.com/item?id=12537653
No one, unless you’re using a CPU emulator or a JIT with an SPI RAM. RP2040 doesn't have memory protection / virtual memory capability and has only 264 kB (or so) RAM.
The whole thing is dated; that looks like more of a retrocomputing project (mostly) than an updated version. I mean, busybox 1.00 is probably fine for what it is, but it's not exactly new. (Note that this is a clarification but not a criticism; having played with things like "how old of a distro can I shove in docker and run on a current kernel", I certainly support retrocomputing, I just think we should acknowledge that that's what we're doing)
It would be rather difficult to fit any newer linux kernel onto a floppy, together with all the other software.
This article says
FWIW this subthread is about the xwoaf distro, not DSL; the projects have different goals
A lot of it would hinge on how much hardware you were trying to support. Router images can get nice and small because they build a kernel with the exact drivers in the target. Trying to support all the insane variety in laptop wifi, input devices, and power management is probably where a lot of the bloat comes from.
Yeah agreed. Given the toolchain source is available I wonder how low we can go with a modern kernel and the newest busybox
I don't think you can use the old toolchain; newer kernel+busybox are unlikely to build with that old of a compiler. Although, following the build steps with modern sources and toolchain would be an interesting exercise.
Might do that this weekend
I think it's possible to get Windows 7 Ultimate down below 2GB, so a comparatively impressive Linux build should definitely be a lot smaller.
windows PE is way smaller, boots live around ~250 MB in size. Of course without any namely applications.
If it can run a browser, I'm sold.
Lynx perhaps but otherwise I think you're a few orders of magnitude off.
"2.1mb https://www.youtube.com/watch?v=8or3ehc5YDo"
2.1 MB installed? The ISO file seemed to be just 1716224 bytes (1.7MB).
I was checking the final version (xwoaf_rebuild4.iso), that is 2205696 bytes
wow! In the same league of μLinux (muLinux). I remember back in the day, running a full X11 environment with only two floppies.
I seem to remember formatting a 1.44 MB floppy to fit more data on it, and it might have been for this.
The desktop reminds me of TinyCore Linux, although bigger by 15-20 MB.
Fun fact: It was developed by Robert Shingledecker, who was previously the lead developer of Damn Small Linux.
Around 2009-10s when keeping a dedicated usb drive for live images was relatively expensive (for me), I had a small partition with tinycore installed as a recovery os alongside windows & another full distro.
I never had to use tinycore for recovery but it gave me enough confidence to keep messing with new packages and drivers.
Due to its small footprint the boot times almost felt like instant on.