Is it really any linux?

Here is Cromite running in NixOS without any FHS-wrapper image
Here is Cromite running in Ubuntu 14.04 image
Here is WINE running foobar2000 in Ubuntu 14.04 image
Here is QEMU running in Ubuntu 12.04 image
Here is aarch64 Trelby running on 32-bit ARM debian 👀 This is possible because this system had a 64bit kernel and CPU. We barely depend on the host userland besides some POSIX utils like sh. image
Here is Eden running in FreeBSD using Vulkan with NVIDIA via Linuxulator 👀 image

How come this only became possible in 2024?

Why bundle glibc instead of musl?

image


We only use musl where it is very useful, that is when making static binaries.

Why not statically link everything?

Why DwarFS instead of SquashFS?

DwarFS is a lot faster than SquashFS while being smaller at the same time.

Screenshot_2026-04-27_02-09-36


DwarFS also offers PGO like optimizations, which allows us to make small appimages that start instantly.

AppImage has no thumbnail?

Because we use DwarFS instead of SquashFS, you need an AppImage thumbnailer that supports DwarFS:

I get ERROR: Can't find a valid SQUASHFS superblock in NixOS

Once again this is because we use DwarFS instead of SquashFS, NixOS has something called appimage-run which lets you run old type appimages that need an FHS env and some host libraries, appimage-run manually mounts the appimage instead of letting it execute itself which results in that error since it expects it to be SquashFS.

None of this is needed for our appimages, they run directly in NixOS, so all you have to do is disable appimage-run.

Why is there no usr directory in the AppImages?

Because it causes more issues than it solves.