# 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][1] 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 | | lighttpd | 75K | ## Syncronization and backup programs | Name | loc | | ----------- | --------- | | borg | 236K | | syncthing | 153K | | 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 | [1]: https://github.com/boyter/scc