apathy icon indicating copy to clipboard operation
apathy copied to clipboard

an independent homegrown operating system featuring linux in its core, supplemented with musl libc and a standalone llvm suite.

apathy

apathy is an independent operating system featuring linux in its core.

musl is utilized as the libc implementation of choice and it is coupled with a standalone llvm suite without anything gcc or binutils in it. firefox being the fastest building modern standards compliant browser (chromium 88 with just -O2 took me 22 hours while thinlto'ing a -march=native + -O3 firefox takes just 2) and it having a hard dep on clang and rust makes llvm a must. i see no point in having two things that serve the same purpose when clang, libc++ and the rest of the boys are mature enough to build everything i use.

the system features busybox applets wherever possible unless they are creating a scenario where i have to settle for less just to achieve muh minimalism.

on the package management front, everything is done by hand using homegrown recipes. all the packages currently residing on a machine running a build of apathy are listed in a parsable plain text file with their dependencies and build order. to make things cleaner when updating or removing a package, the directory listings of packages are saved through making a destdir install first.

the init used in apathy is written in posix shell. the "services" reside in a single file as individual shell functions. init is a shell script that traps USR1 and INT signals, and does the talking for booting up and going down. there is basic failproofing for cases that came to the surface through the proccess of dogfooding. for manually manipulating the state of a service, ainitmgr is used. there is no watchdoggery.

each machine has an init, acpi and device configuration custom tailored for it to aid with using all the features of the puter.

as this whole thing is intended for my use only, this repo does not contain an image to boot from or a stage{1..4} tarball to unpack and go from.

basic repository tree

├ dir/ -> base system configuration files. ├ init/[1] -> in-house init system written in posix shell, complemented │ with getty, ctrlaltdel, halt, killall5, login and respawn │ from ubase with the {b,u,w}tmp functionality removed. ├ landfill/[2] -> modified versions of dwm, st and dmenu cobbled together │ under a single meson project as an attempt to create a │ desktop environment type of thing. ├ misc/ -> miscellaneous notes and images. ├ pkg/ │ ├ recipes/ -> in-house build recipes for all the software that i use. │ ├ trees/ -> directory listings for installed and removed programs. │ └ packages-*.txt -> parsable lists of "packages" installed in each machine │ running apathy. └ utils/ ├ bin/ -> utilities used in apathy, written in posix shell. └ files/ -> files complementing the utilities and shells.

[1] ubase and libutil are licensed under MIT. [2] dwm, st and dmenu are licensed under MIT.