Skip to content

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

License

Notifications You must be signed in to change notification settings

gottaeat/apathy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Languages