💾 Archived View for gemini.circumlunar.space › users › kraileth › neunix › eerie › 2014 › e5_musl.gm… captured on 2022-01-08 at 14:48:18. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-05)
-=-=-=-=-=-=-
Here I'm republishing an old blog post of mine originally from April 1st 2014 (mind the date!). The article has been slightly improved.
Those of you who follow the development of Linux for embedded devices (or simply older hardware) will probably have noticed that eglibc is effectively dead. According to their website "EGLIBC is no longer developed and such goals are now being addressed directly in GLIBC"!
Arch:E5 was built to be a bit lighter than today's mainline Arch. To do just that it's obviously necessary to deal with the _root_ of the trouble (yeah, a pretty lame pun, I know). The standard C library is - together with the kernel - the very heart of every Linux distro, that's for sure! And since ordinary glibc is quite a memory hog, eglibc was a pretty self-evident choice to keep things a little smaller and prettier. But as this variant of the GNU C library will cease to exist after the 2.19 branch, E5 had to look for alternatives.
There are actually quite a few alternative standard C libraries around. _Dietlibc_ for example. But it's primarily meant for static linking. Yet there are more candidates. Like _µclibc_. A pretty nice libc actually which is also already proven and tested: There are even a few distributions based on it. So could that be an option for E5? Nah, not really! Wanna know why not? ’cause it would be rather boring. And even worse: It has already been done for Arch and is even described in its own page on the ArchWiki (which is no longer available).
So - is E5 condemned to eat humble pie and return to glibc, losing one of the main characteristics which made it diverge from mainline Arch? But no, fear not dear brethren! Luckily for us there's also Musl, a rather young libc which you may not even have heard of. It has reached version 1.0 just these days and thus it practically calls for being used in place of our old C library! There are a few distros already which are based on Musl. But everything's _experimental_ and pretty much a mess to work with. In other words: Absolutely ideal preconditions!
I've been secretly working to make E5 run with musl as the distro's libc for about two weeks now and just a few minutes ago I succeeded in getting E5 "Musl edition" to run! It was quite a bit of work and took quite some time. So far I have not spoken a word about it with anybody. But today's the big day to announce it to the public!
Like the idea of Arch based on musl? If you don't have a clue why you _should_ like it, you may want to take a look at the table linked below which compares musl to other libc projects. Convinced? Great! Now as proof that I'm not lying about the successful porting, here's a screenshot which should confirm my claims:
Arch:E5 Musel's exciting boot screen! (PNG)
While I was at it anyways, I thought that I might change the kernel as well. Ok, I have to admit that I'm still not cool enough to use some BSD kernel. But it's clear that E5 (being an _experimental_ distro!) needs something more... special. In the end I settled for a minimalistic Linux kernel by compiling one with the kernel settings from the _TinyCore Linux_ project.
The result is really astounding if you ask me: That kernel image is just __2.5 Megs__ in size!! No, I'm not kidding. Don't believe me? I can well understand you. But behold!, all you sceptics out there, here's one more screenshot of the secret project for you:
Arch:E5 Musel with a TinyCore-like kernel! (PNG)
So what 'ya say now? The "Arch Linux 3.10.33-1-LIBRE-LTS" line?? Uhm, well... *cough* Guess I must have misnamed that kernel then! Yes, exactly that must be what has happened...
The logical next step would be publishing an E5-Musl repository, wouldn't it??