Wow, this is crazy. I came across the DSL website last night while trying to figure out how to compile a minimal Linux kernel myself, and now here it is on HN! I used DSL back in high school when it was new.
As a side note, why does compiling Linux have to be so... obtuse? It just stops for me after several minutes of building out objects with no explanation.
> As a side note, why does compiling Linux have to be so... obtuse? It just stops for me after several minutes of building out objects with no explanation.
That's... odd. Does it break if you just use the default `make defconfig` configuration? Because pruning what's built in without breaking it is hard-ish IME but it shouldn't just fail silently. Or... when you say "It just stops" you don't by any chance mean that it finished and you just need to find the actual binar(y|ies) it produced?
Are you looking to build just a minimal kernel or also a minimal distribution? (Which is what I happened to be thinking about last night :)) In the latter case, do you know any good resources about that topic?
Depending on how minimal a distribution you want, a few years ago I had a way to take a single ELF binary created by my computing stack built up from machine code (https://github.com/akkartik/mu) and package it up with just a linux kernel and syslinux (whatever _that_ is) to create a bootable disk image I could then ship to a cloud server (https://akkartik.name/post/iso-on-linode, though I don't use Linode anymore these days) and run on a VPS to create a truly minimal webserver. If this seems at all relevant I'd be happy to answer questions or help out.
I want to build a minimal kernel that I can virtualize (QEMU) for a variety of purposes across my arm64 Macbooks at home; ideally, it would be optimized for that hardware. One version of the kernel I want just for command line purposes, nothing involving graphics or sound. I want to also build a similar kernel that has just enough to run Firefox in a Wayland compositor (probably just Weston) along with sound.
No, I don't need to go this far, but I want to.
Unfortunately, I don't really have any resources to share. I just know how to boot a vmlinuz with an initramfs using QEMU, and decided to download the Linux kernel source code and try compiling it.
Its user interface is Docker-like, using containers.
For full desktop, I've only used the commercial app "Parallels", which can set up an Ubuntu desktop for you. Also Fedora and Alpine and Debian I believe.
But
> I don't really have any resources to share. I just know how to boot a vmlinuz with an initramfs using QEMU, and decided to download the Linux kernel source code and try compiling it.
I highly recommend working through Linux from Scratch and possibly the Gentoo Handbook. It's a journey.
> As a side note, why does compiling Linux have to be so... obtuse? It just stops for me after several minutes of building out objects with no explanation.
The Linux kernel compilation scripts use the lowest-common-denominator toolset: make/sed/awk. It would be awesome to rewrite them to use Python or some other higher-level language, but then it wouldn't run on a Japanese supercomputer built in 1986 and long-ago mothballed, and you never know when you'll need that!
It shouldn't ever stop for more than maybe 10 seconds. Try using a task manager to see what it's running. I think some steps take a few GB of RAM, so is it possible you exhausted your memory?
As a side note, why does compiling Linux have to be so... obtuse? It just stops for me after several minutes of building out objects with no explanation.