|
|
Subscribe / Log in / New account

Chimera Linux works toward a simplified desktop

By Daroc Alden
January 13, 2025

Chimera Linux is a new distribution designed to be "simple, transparent, and easy to pick up". The distribution is built from scratch, and recently announced its first beta release. While the documentation and installation process are both a bit rough, the project already provides a usable desktop with plenty of useful software — one built primarily on tools adopted from BSD.

Chimera Linux was started by "q66" (who previously worked on Void Linux) in 2021 with the goal of creating a modern distribution that could "eliminate legacy cruft where possible" to provide a simple, practical desktop. In service of that goal, the project is based on BSD tools. Chimera's frequently asked questions page explains that unlike other projects that use those tools for licensing reasons, project picked BSD tools for their smaller code size and reduced complexity. Bootstrapping a modern Linux distribution is quite complex, with many packages that depend on other packages; using BSD tools allowed the project to avoid a lot of that complexity. For example, Chimera uses musl as its C library, which cuts out a lot of dependencies from the GNU C library.

Some people may also say that the BSD licensing is its own benefit. We do not say that, because as far as core userland goes, the licensing is more or less meaningless for us and we could easily live with the GPL. Therefore, this is largely a technical decision for us. While the benefits may seem small to some, they are there, and they matter to the project.

That same drive for simplicity also motivated the project to eschew systemd. The project's documentation calls systemd's implementation "rather messy", but also acknowledges that "it has been a net functional improvement for Linux". Chimera acknowledges that systemd has a lot of features and tools, but ended up deciding that the cost of maintaining compatibility with how systemd expects a Linux system to behave is just too high.

At the same time, the project specifically disavows any association with "the so-called 'systemd-free community', which tends to spread a lot of misconceptions and frankly deranged opinions that [end] up hurting any sort of positive effort." Chimera Linux is focused on building a simplified, usable Linux system — and not on getting into fights about what software the contributors do or do not use to get there. This pragmatic approach has been attractive to contributors, and now q66 has been joined by Isaac Freund (a contributor to Zig and the author of waylock) as a co-maintainer, and more than a hundred other contributors.

But the choice to eschew systemd itself causes a number of problems for the distribution. For example, systemd's logind daemon handles tracking user sessions; without systemd, Chimera needs another solution for that. The project's current approach is a standalone fork of logind called elogind, but the eventual plan is to develop an API that works with both logind and any other session-tracking software. The project's documentation cites this as another benefit of choosing less common software: it presents an opportunity to try to improve the portability of existing programs.

For service management, Chimera uses the Dinit init system, which also has a focus on portability. Dinit offers some of the same core features of systemd — a daemon that supervises system services based on a configuration, including user services — but delegates everything outside that core scope to other programs. Chimera supports several architectures, including x86_64, ppc64, ppc64le, aarch64, and riscv64.

Installation

Chimera Linux does not yet have a graphical installer. The installation process is done mostly by hand, from a live image. People who have previously installed Arch or Gentoo will find the process familiar. The project publishes several live images to use, including a minimal, console-only version, a GNOME version, and a KDE Plasma version. Users who haven't previously had a reason to install a Linux system without the aid of an installer will probably find using the GNOME or KDE version easiest, so that they can refer to the online documentation as they go.

Regardless of which live image is used, the process is the same: configure disk partitions (with cfdisk), set up file systems, mount them in the desired configuration, and then set up the system inside a chroot. The installation documentation contains a section on partitioning, including suggestions for different architectures. Chimera supports many different configurations, leaving the user free to carve up their disk as they please — but does not support having /usr on a separate partition. Chimera is "fully /usr merged", and stores some programs that are needed to mount disks and fully boot the system there.

Once disks and filesystems are set up, the chimera-bootstrap tool sets up the minimum required tooling for the new installation; by default, this consists of packages fetched from Chimera's package repository, but it can also be instructed to copy the packages from the live image for offline installations. Chimera uses Alpine Package Keeper (APK), Alpine Linux's package manager, but its packages are not derived from Alpine's. APK can be used to install additional software — including a kernel and bootloader, at a minimum, since chimera-bootstrap doesn't include either of those, perhaps so that users can have a choice of which kernel package to install. The sections in the installation documentation make a de-facto checklist for what needs to be set up before rebooting into the new installation, but the documentation is really more a list of ways that a user could choose to configure things than a prescriptive set of steps to follow.

[A screenshot of the Chimera Linux desktop, open to a disk partitioning tool.]

Software

Most users will want to install a desktop environment, which also doesn't come by default (although the package for the corresponding desktop environment is available on the live image, for offline installations). Chimera's recommended desktop is GNOME (using Wayland, but X11 is also supported), but several others are packaged for the distribution. When installing GNOME, there isn't much software installed by default. It comes with the Web browser, along with the other basic tools from Apps for GNOME.

More common software, such as Firefox and LibreOffice, is available from the package repository, however, which has nearly 10,000 packages available. Since Chimera doesn't ship the GNU C library, software that relies on it will not work. Most software is able to use musl, but pre-compiled binaries, such as proprietary software, tends to break. If the user needs applications that require it anyway, the documentation recommends installing Flatpak and using that to run such software in a more typical container.

The choice of BSD tools and lack of systemd don't really impact the day-to-day use of the system; other than substituting doas for sudo, the other command line software that I use in a normal day worked just fine. For development, however, some software is conspicuously missing; Chimera doesn't package GCC for all its architectures, for example, although it does package GCC as a cross-compiler for aarch64, arm, and riscv64. The default C compiler is Clang, and tools such as make and [Edit: GNU make is now the default] tar use the BSD versions by default, even when the GNU versions are packaged.

Updates are fairly simple; APK is not a BSD-style system that builds installed software from scratch, but rather a normal Linux package manager. The distribution hosts pre-compiled binary packages, but the packages can also be compiled by hand from the definitions. There are a handful of contributors making sure important software stays up to date, but in my research I wasn't able to find a documented process for security updates — something the distribution will almost certainly need as it grows.

Overall, Chimera Linux seems to have made a good step toward its goal of creating a simplified Linux desktop. The distribution is definitely usable, and offers a good amount of flexibility for experienced users, while still being relatively simple. Still, there are some rough spots. The manual and somewhat idiosyncratic installation process will put some people off — and the people who wouldn't be put off are probably expert users who have their own existing setups.

The future

In 2025, the project plans to focus on smoothing out a handful of sharp edges, mostly related to doing service management without systemd. In particular, making progress toward the goal of removing elogind and replacing it with a custom solution. Planning, discussion about development, and user support all happen on IRC in OFTC's #chimera-linux channel, or in the bridged Matrix channel. There is also a somewhat active Reddit community and an official Mastodon account for the project, which shares progress updates.

Chimera's alpha phase took a year and a half, from June 2023 to December 2024; if the beta takes the same amount of time, it could see a 1.0 release in 2026. On the other hand, the project has grown quickly, so it may reach a stable release sooner rather than later. Where exactly Chimera will be in another 18 months, and whether it will prove useful to more than it's current small yet dedicated community, remains to be seen.



to post comments

Small correction

Posted Jan 13, 2025 23:59 UTC (Mon) by wezm (subscriber, #139623) [Link] (3 responses)

and tools such as make and tar use the BSD versions by default
GNU make has been the default for a while now: https://github.com/chimera-linux/cports/commit/de85b12.

Small correction

Posted Jan 14, 2025 12:58 UTC (Tue) by daroc (editor, #160859) [Link] (2 responses)

Ah, shoot. I could have sworn I checked that, but I must have gotten things mixed up testing out different packages. Thanks for the correction.

Small correction

Posted Jan 14, 2025 16:12 UTC (Tue) by q66 (guest, #175441) [Link] (1 responses)

also, the gcc packages are not cross-compilers, they are baremetal toolchains that don't target linux; they exist for the purpose of building u-boot for arm/riscv devices (as u-boot relies on special gcc extensions, particularly global register variables, which llvm by design does not support)

there is an actual gcc template for a full linux toolchain in the user/ repository, but it does not get built into binary packages (yet) due to being work in progress (and it fails to bootstrap on ppc64le right now)

that is a complete toolchain, minus libstdc++ (it targets libc++ ootb to generate binaries that are abi-compatible with the rest of the distro)

GCC package

Posted Jan 15, 2025 8:04 UTC (Wed) by jmalcolm (subscriber, #8876) [Link]

I had no idea this was there. After removing "restricted" in template.py it built right without issue (x86-64).

Use case

Posted Jan 14, 2025 1:26 UTC (Tue) by proski (subscriber, #104) [Link] (9 responses)

It's unclear what use case they are targeting. It sounds like Alpine Linux with BSD tools instead of Busybox. They are even using Alpine package manager, APK.

Use case

Posted Jan 14, 2025 5:28 UTC (Tue) by hmanning77 (subscriber, #160992) [Link]

It just looks like a general-purpose workstation distribution, but built according to the creator's opinions about How It Should Be Done. Always nice to see people imagining what they would want to use and making it happen.

Use case

Posted Jan 14, 2025 5:54 UTC (Tue) by raven667 (subscriber, #5198) [Link]

I think the use case is to build a system in the style they like, to see how it works and feels to use. There is a thread of thought from people who like an older style UNIX system experience which is less focused on the needs of commercial service providers or consumer desktop, with all the complexity needed to solve weird corner cases that come with scale and systematic flexibility, and want something they feel comfortable tinkering with, as a hobby project they can actually use as a daily driver, a *personal* computer with modern amenities, that's not a museum piece like FreeDOS. If they needed to run software, they wouldn't create their own distro, or they'd use systemd, glibc, GNU userspace, etc. to make it easier but that would be *impersonal* computing and not as much fun to use or build.

Now that I'm thinking about it, I'm wondering if some of the rabid anti-*whatever modern system design* are really having feelings about style and aesthetic but think that only technical arguments are respected so instead of describing their feelings on the impersonal nature of operating systems which target a wide (often corporate/professional) audience, they make incoherent/inaccurate arguments about the technology that a lot of people find unconvincing, dancing around the real issue.

Use case

Posted Jan 14, 2025 9:48 UTC (Tue) by ceplm (subscriber, #41334) [Link] (5 responses)

I think there could be a nice intersection between non-systemd crowd and *BSD/non-GNU enthusiasts, who want a mainline (and thus Linux) system. Not sure why not Alpine, but that’s my problem.

Otherwise, I am in complete awe of maintainers of truly amateur based distros, knowing how incredible huge amount of work goes into a large distro (being a SUSE employee). It seems to me impossible but these people, Gentoo, and Alpine enthusiast always make impossible things done. Deep respect!

Why not Alpine?

Posted Jan 14, 2025 20:30 UTC (Tue) by jmalcolm (subscriber, #8876) [Link] (4 responses)

Chimera plans to have Systemd functionality. Alpine is happy without it.

Chimera will have a 'real' userland ( mostly the FreeBSD one ) whereas Alpine uses Busybox.

Chimera has a nice, custom ports system (cports) and a custom kernel module system (ckms) compared to Alpine.

Chimera replaces the memory allocator used by musl to address performance issues present in Alpine.

Chimera uses Clang/LLVM as the system compiler in place of GCC and has strong technical reasons for this choice including optimization and security.

The similarities between Alpine and Chimera Linux are only that they both use musl and that they both use apk for binary packaging. Ironically, Chimera Linux uses apk 3 while Alpine still uses apk 2.

The similarities between Void and Chimera seem a bit stronger. Chimera Linux started with the cports system first which was originally meant to be a re-write of the XBPS-SRC system.

Why not Alpine?

Posted Jan 15, 2025 12:08 UTC (Wed) by ceplm (subscriber, #41334) [Link] (3 responses)

Just curious question: what is the default shell? BSD Bourne shell or Bash?

Why not Alpine?

Posted Jan 15, 2025 12:30 UTC (Wed) by daroc (editor, #160859) [Link] (1 responses)

Opening up my installation to check — it looks like the default shell is the BSD Bourne shell. Bash isn't available by default, but is packaged, and therefore pretty easy to switch to if necessary.

Why not Alpine?

Posted Jan 15, 2025 13:03 UTC (Wed) by ceplm (subscriber, #41334) [Link]

Thank you, nothing against anything, just to the contrary, more POSIX shells which are not bash, better.

Default shell in Chimera

Posted Jan 20, 2025 2:30 UTC (Mon) by jmalcolm (subscriber, #8876) [Link]

The default is Alquist ( modern Bourne ) just like FreeBSD. It is the BSD equivalent of dash I guess. It can be changed though. There are other shells in the repos including bash.

Use case

Posted Jan 14, 2025 13:41 UTC (Tue) by q66 (guest, #175441) [Link]

by popular demand, added a new section to the about page

Simplicity through doing everything differently?

Posted Jan 14, 2025 8:58 UTC (Tue) by taladar (subscriber, #68407) [Link] (1 responses)

I find the claim that this is supposed to be

> "simple, transparent, and easy to pick up"

dubious at best if they literally change everything about the way Linux systems work in subtle ways that break stuff.

Simplicity through doing everything differently?

Posted Jan 14, 2025 13:03 UTC (Tue) by Wol (subscriber, #4433) [Link]

Except, linux (the OS, not the kernel) seems to have no problem in "changing everything about the way Linux systems work in subtle ways that break stuff".

I know I rail on about all these changes that break my workflow, change my muscle memory (not that I've got much), etc etc. Progress involves breaking things. Unfortunately not all "progress" really is an advance, and some people prefer older systems that work (in ways they understand), rather than "new, improved", that breaks in ways that require relearning everything. Just because you may not notice that much, doesn't mean it isn't extremely painful to those people who do notice.

Cheers,
Wol

Happy Chimera Linux user

Posted Jan 14, 2025 20:10 UTC (Tue) by jmalcolm (subscriber, #8876) [Link] (1 responses)

I have been using Chimera for some time now and I have been really happy with it. As somebody that has used Linux since SLS (pre-Slackware), I have tried quite a few Linux distributions. For all those asking, "what is the use case", for me the answer is that it is for all the things you wish Linux was for but wish it was better.

Chimera Linux is a small, well designed general purpose Linux distro that avoids many of the pitfalls and compromises made by other small, well designed distros.

Chimera thinks there is a "better way". The stance on Systemd is a great example. Chimera Linux wants to avoid Systemd but does not want to go without its benefits. So it chooses what it sees as better alternatives and, if necessary, writes software to fill in the gaps--like Turnstile.

I moved a machine from Arch Linux to Chimera Linux and am able to do all the same stuff including video processing, container and cloud ops, basic software dev, office apps, some cybersecurity, and basic gaming.

As a pacman fan ( and apt disliker ), I have been quite pleased with apk. The package selection is already fairly decent (even GIMP 3). However, the cports system is really well designed and I have created 12 packages and modified one to get everything I need. Despite all the years I have used Linux, I have never created a package before. Maybe that says something about how well designed Chimera is and perhaps even how fun.

I prefer Clang to GCC. That is just a preference but the fact that everything is built with Clang is a positive for me. There is no GCC in Chimera Linux.

Reading the Internet, you would think nothing works with musl. Everything has built just fine for me. The only problem I had was dotnet as you need to have pre-built binaries to bootstrap it and even the Alpine (musl) binaries were built with GCC and other libs I did not have.

I did not fight the dotnet problem. Instead, I installed a Distrobox image of Arch to get access to the AUR on Chimera. I had dotnet 9 and Jetbrains Rider installed on Chimera Linux in a few minutes. I also installed Burpsuite to do some pen testing. Two of those are Java and could probably become native Chimera packages if I get around to it. I have access to the entire AUR on Chimera Linux this way if I need something quickly and I cannot find or do not want to package something for Chimera Linux. I also created RHEL9 and Amazon Linux distroboxes for testing. Using distrobox for a lot of this stuff would be a good idea even on a glibc based distro. I really think the drama around third-party software is overblown.

As for the FreeBSD userland, I have never been a FreeBSD user. q66 has written quite a lot about how the userland simplifies the distro and build process, especially in containers, and this all makes sense to me. The tools do seem well designed. I have stuck with the Alquist shell but I did install Bash to run third-party scripts. The userland has worked fine with everything so far. The only issue I ran into directly is that 'sed' takes slightly different options. In my research, I can see that RegEx in 'find' is different too. Beyond that, I use things the way I always have and they work. Searching the web for differences, it seems that the BSD utils have added a lot of GNU options in recent years and so there are not as many gotchas for GNU users as before. Perhaps "power users" will bump into more issues than I have.

The biggest downside to Chimera Linux is going to be if you need third-party drivers. The obvious example is that Chimera is not going to be a great choice for users of newer NVIDIA GPU hardware. I do not have that.

For me, the question is no longer "why Chimera?" but "why anything else"? What does any other distro do better? I do not want a dedicated gaming distro. I already liked Arch better than Debian or Fedora. I like Chimera more than Arch except for the AUR, which I can still get from distrobox. I may move my home lab to Kubernetes on Chimera Linux soon.

Happy Chimera Linux user

Posted Jan 15, 2025 14:44 UTC (Wed) by raven667 (subscriber, #5198) [Link]

This highlights something about the benefits of modern container/sandbox packaging like Flatpak and Distrobox, it allows _more_ freedom to redesign the base OS to work in the style you prefer without needing every end-user app in the whole world to conform to and support your particular flavor of OS organization with configure scripts and tons of variability built-in to the app.

Nobody talks about mimalloc

Posted Jan 14, 2025 20:21 UTC (Tue) by jmalcolm (subscriber, #8876) [Link] (1 responses)

None of the write-ups that I have seen about Chimera Linux mention that it has changed out the memory allocator in musl to mimalloc. This is a pretty vital piece of low-level plumbing.

This means that every single running program on my Linux box is using code written by Microsoft for something as frequent and fundamental as allocating memory. Talk about a true Chimera!

https://github.com/microsoft/mimalloc

Nobody talks about mimalloc

Posted Jan 28, 2025 18:25 UTC (Tue) by rganesan (guest, #1182) [Link]

mimalloc is an excellent allocator. python 3.13 uses mimalloc as the allocator if it's supported by the platform.


Copyright © 2025, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds