Size in loc of common software
Bloat is everywhere, in 2018 I started my journey on debloating my digital
life, so far I mostly use linux as my main OS (the mostly is due to uni
stuff I don't want and/or have time to deal with), I don't use a desktop environment,
got rid of systemd, pulseaudio and polkit just to name a few. I could go on
about how I debloated most of my computing life but that is not the goal
of this article, that is I recently started to wonder: how much bloat is really
there?
In order to answer that question I rolled up my sleeves and with the mighty
power of post-its, git and scc I cloned the repositories of many
common programs in order to check their bloat suckless style, with
lines of code. Let's get to the data.
Init systems
Name |
loc |
systemd |
722K |
OpenRC |
21K |
s6 |
20K |
runit |
12K |
sysVinit |
9K |
Logging daemons
Technically systemd includes its own logging daemon but here is omitted.
Name |
loc |
rsyslog |
157K |
socklog |
5.6K |
metalog |
2.5K |
Network
Generic network management programs.
Name |
loc |
wpa_supplicant |
555K |
kea |
486K |
NetworkManager |
429K |
ModemManager |
194K |
connman |
103K |
(e)iwd |
86K |
dhcpcd |
41K |
Music players
Name |
loc |
mpd |
102K |
cmus |
42K |
moc(p) |
35K |
ncmpcpp |
25K |
herrie |
7.4K |
Text editors
Don't tell me you saw that one coming.
Name |
loc |
vim |
931K |
neovim |
771K |
vis |
109K |
kakoune |
31K |
micro |
29K |
nano |
17K |
Build systems
Name |
loc |
cmake |
854K |
tup |
271K |
meson |
107K |
GNU make |
34K |
ninja |
20K |
samurai |
3.7K |
Shells (POSIX or not)
Name |
loc |
bash |
210K |
fish |
165K |
zsh |
119K |
ksh93 |
72K |
tcsh |
65K |
mksh |
30K |
ash |
21K |
dash |
13K |
Boot loaders/managers
Name |
loc |
CloverBoot |
1.8M |
GRUB |
331K |
syslinux |
254K |
eEFInd |
75K |
LILO |
36K |
Display servers
Dependencies are counted two levels "deep" excluding duplicates, from
the alpine linux x86_64 package repositories.
U: Not built, protocol code not generated
B: Code generated
Name |
loc |
dependencies |
xorg-server |
422K |
44 |
- |
- |
- |
wayland + |
|
|
wayland-protocols + |
|
|
wlroots |
U: 97K, B:268K |
27 |
SSH servers/clients
Name |
loc |
dropbear |
144K |
OpenSSH |
123K |
TinySSH |
14K |
Terminal multiplexers
Name |
loc |
tmux |
132K |
GNU screen |
36K |
dvtm |
4.0K |
Terminal emulators
Name |
loc |
kitty |
114K |
alacritty |
26K |
wayst |
24K |
havoc |
10K |
wterm |
10K |
st |
4.4K |
Kernels
Name |
loc |
netbsd |
40M |
linux |
21M |
FreeBSD |
18M |
OpenBSD |
17M |
DragonflyBSD |
934K |
Permission managers
Name |
loc |
sudo |
195K |
polkit |
26K |
OpenDoas |
2.9K |
PAM |
61K |
Compilers
Name |
loc |
gcc |
9.0M |
llvm |
8.0M |
zig |
2.1M |
rust |
856K |
tcc |
93K |
Torrent clients
Name |
loc |
qBittorrent |
762K |
transmission |
329K |
deluge |
137K |
rtorrent |
24K |
Web browsers
Does not include libraries, only the main repos.
Name |
loc |
chromium |
|
Firefox |
27M |
badwolf |
1.8K |
Window managers
Name |
loc |
awesome |
83K |
i3 |
58K |
openbox |
42K |
bspwm |
12K |
2bwm |
3.3K |
dwm |
2.5K |
Wayland compositors
Name |
loc |
weston |
117K |
sway |
42K |
wayfire |
27K |
hikari |
15K |
river |
5.9K |
Application launchers
Name |
loc |
rofi |
84K |
bemenu |
6.6K |
wofi |
4.3K |
nwg-launchers |
3.5K |
dmenu |
1.3K |
Device managers
NOTE: mdev is only one source file, so loc count doesn't
include anything but that file.
Name |
loc |
eudev |
28K |
mdevd |
2.3K |
smdev |
771 |
mdev |
751 |
Initramfs generators
Name |
loc |
dracut |
32K |
tinyramfs |
1.0K |
Code counters
Name |
loc |
scc |
19K |
tokei |
11K |
Package managers
Name |
loc |
apt |
100K |
xbps |
43K |
pacman |
37K |
apk |
17K |
kiss |
1.1K |
Webservers
Name |
loc |
apache |
419K |
nginx |
142K |
hiawatha |
113K |
lighttpd |
75K |
caddy |
30K |
Syncronization and backup programs
Name |
loc |
borg |
236K |
syncthing |
153K |
git-annex |
123K |
rsync |
56K |
restic |
49K |
casync |
33K |
Others
Stuff that doesn't fit any other category (for now)
Name |
loc |
openssl |
894K |
bluez |
395K |
libressl |
384K |
elogind |
145K |
dbus |
126K |
tint2 |
37K |
lowdown |
19K |
pass |
3.5K |