I advocate ultralight environments whenever possible, even going so far as to suggest dumping the entire X underbelly in favor of console “desktops” that use the framebuffer. It’s not for everybody — even most of my coworkers and associates consider it a little extreme — but the best reason for doing this is easily illustrated.
Consider the output of ps -AF
on my Thinkpad, which uses nothing from the Xorg subsystem, relies on framebuffer support through a customized 2.6.31.5 kernel, and has very little in the way of extraneous packages installed (well, freecell is on here, but that’s pretty small).
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 1 0 0 416 600 0 07:30 ? 00:00:00 init [2] root 2 0 0 0 0 0 07:30 ? 00:00:00 [kthreadd] root 3 2 0 0 0 0 07:30 ? 00:00:00 [ksoftirqd/0] root 4 2 0 0 0 0 07:30 ? 00:00:00 [events/0] root 5 2 0 0 0 0 07:30 ? 00:00:00 [khelper] root 8 2 0 0 0 0 07:30 ? 00:00:00 [async/mgr] root 114 2 0 0 0 0 07:30 ? 00:00:01 [kblockd/0] root 116 2 0 0 0 0 07:30 ? 00:00:00 [kacpid] root 117 2 0 0 0 0 07:30 ? 00:00:00 [kacpi_notify] root 118 2 0 0 0 0 07:30 ? 00:00:00 [kacpi_hotplug] root 165 2 0 0 0 0 07:30 ? 00:00:00 [ksuspend_usbd] root 169 2 0 0 0 0 07:30 ? 00:00:00 [khubd] root 172 2 0 0 0 0 07:30 ? 00:00:00 [kseriod] root 222 2 0 0 0 0 07:30 ? 00:00:01 [pdflush] root 223 2 0 0 0 0 07:30 ? 00:00:00 [pdflush] root 224 2 0 0 0 0 07:30 ? 00:00:03 [kswapd0] root 276 2 0 0 0 0 07:30 ? 00:00:00 [aio/0] root 282 2 0 0 0 0 07:30 ? 00:00:01 [nfsiod] root 285 2 0 0 0 0 07:30 ? 00:00:00 [crypto/0] root 445 2 0 0 0 0 07:30 ? 00:00:03 [rpciod/0] root 457 1 0 466 656 0 07:30 ? 00:00:00 /sbin/udevd --daemon root 519 457 0 475 580 0 07:30 ? 00:00:00 /sbin/udevd --daemon root 527 457 0 475 632 0 07:30 ? 00:00:00 /sbin/udevd --daemon root 551 2 0 0 0 0 07:31 ? 00:00:00 [pccardd] kmandla 607 1 0 796 1748 0 07:31 tty1 00:00:00 -bash root 648 1 0 457 284 0 07:31 ? 00:00:00 /sbin/dhcpcd -t 10 -h 1161-41j eth0 kmandla 650 607 0 608 768 0 07:33 tty1 00:00:00 screen kmandla 651 650 0 740 1360 0 07:33 ? 00:00:12 SCREEN kmandla 652 651 0 739 1204 0 07:33 pts/0 00:00:00 /bin/bash /home/kmandla/.scripts/centerim.sh kmandla 653 651 0 2520 5220 0 07:33 pts/1 00:00:00 alpine kmandla 654 651 0 931 1736 0 07:33 pts/2 00:00:00 mc kmandla 655 651 1 580 1112 0 07:33 pts/3 00:00:41 htop kmandla 656 651 0 9005 1968 0 07:33 pts/4 00:00:00 calcurse kmandla 657 651 0 739 1256 0 07:33 pts/5 00:00:00 /bin/bash /home/kmandla/.scripts/elinks.sh kmandla 658 651 1 2371 3996 0 07:33 pts/6 00:00:54 mocp kmandla 659 651 0 578 808 0 07:33 pts/7 00:00:00 hnb notes.hnb kmandla 660 652 0 2081 4480 0 07:33 pts/0 00:00:00 centerim -T kmandla 661 657 3 2282 7164 0 07:33 pts/5 00:01:46 elinks kmandla 667 654 0 798 1760 0 07:33 pts/8 00:00:00 bash -rcfile .bashrc kmandla 669 658 3 10640 3868 0 07:33 ? 00:01:46 mocp root 755 1 0 415 508 0 08:08 tty2 00:00:00 /sbin/agetty 38400 tty2 linux kmandla 782 651 0 814 1832 0 08:21 pts/9 00:00:00 /bin/bash kmandla 796 651 0 798 1768 0 08:26 pts/10 00:00:00 /bin/bash kmandla 800 796 0 535 840 0 08:27 pts/10 00:00:00 ps -AF
Now compare that to the 600m running the entire Ubuntu Gnome desktop while doubling as a file server and torrent client (and remember that those last two roles are something even a 100Mhz Pentium with 16Mb of memory can handle, so there’s no real challenge in adding those to what Gnome requires naturally).
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 1 0 0 822 1000 0 Nov05 ? 00:00:01 /sbin/init root 2 0 0 0 0 0 Nov05 ? 00:00:00 [kthreadd] root 3 2 0 0 0 0 Nov05 ? 00:00:00 [migration/0] root 4 2 0 0 0 0 Nov05 ? 00:00:01 [ksoftirqd/0] root 5 2 0 0 0 0 Nov05 ? 00:00:00 [watchdog/0] root 6 2 0 0 0 0 Nov05 ? 00:00:00 [events/0] root 7 2 0 0 0 0 Nov05 ? 00:00:00 [cpuset] root 8 2 0 0 0 0 Nov05 ? 00:00:00 [khelper] root 9 2 0 0 0 0 Nov05 ? 00:00:00 [netns] root 10 2 0 0 0 0 Nov05 ? 00:00:00 [async/mgr] root 11 2 0 0 0 0 Nov05 ? 00:00:00 [kintegrityd/0] root 12 2 0 0 0 0 Nov05 ? 00:00:00 [kblockd/0] root 13 2 0 0 0 0 Nov05 ? 00:00:00 [kacpid] root 14 2 0 0 0 0 Nov05 ? 00:00:00 [kacpi_notify] root 15 2 0 0 0 0 Nov05 ? 00:00:00 [kacpi_hotplug] root 16 2 0 0 0 0 Nov05 ? 00:00:17 [ata/0] root 17 2 0 0 0 0 Nov05 ? 00:00:00 [ata_aux] root 18 2 0 0 0 0 Nov05 ? 00:00:00 [ksuspend_usbd] root 19 2 0 0 0 0 Nov05 ? 00:00:00 [khubd] root 20 2 0 0 0 0 Nov05 ? 00:00:00 [kseriod] root 21 2 0 0 0 0 Nov05 ? 00:00:00 [kmmcd] root 22 2 0 0 0 0 Nov05 ? 00:00:00 [bluetooth] root 23 2 0 0 0 0 Nov05 ? 00:00:00 [khungtaskd] root 26 2 0 0 0 0 Nov05 ? 00:00:08 [kswapd0] root 27 2 0 0 0 0 Nov05 ? 00:00:00 [aio/0] root 28 2 0 0 0 0 Nov05 ? 00:00:00 [ecryptfs-kthrea] root 29 2 0 0 0 0 Nov05 ? 00:00:00 [crypto/0] root 33 2 0 0 0 0 Nov05 ? 00:00:00 [scsi_eh_0] root 34 2 0 0 0 0 Nov05 ? 00:00:20 [scsi_eh_1] root 36 2 0 0 0 0 Nov05 ? 00:00:00 [kstriped] root 37 2 0 0 0 0 Nov05 ? 00:00:00 [kmpathd/0] root 38 2 0 0 0 0 Nov05 ? 00:00:00 [kmpath_handlerd] root 39 2 0 0 0 0 Nov05 ? 00:00:00 [ksnapd] root 40 2 0 0 0 0 Nov05 ? 00:00:00 [kondemand/0] root 41 2 0 0 0 0 Nov05 ? 00:00:00 [kconservative/0] root 42 2 0 0 0 0 Nov05 ? 00:00:00 [krfcommd] root 345 2 0 0 0 0 Nov05 ? 00:00:12 [kjournald2] root 407 1 0 537 564 0 Nov05 ? 00:00:00 upstart-udev-bridge --daemon root 448 1 0 462 184 0 Nov05 ? 00:00:00 dd bs=1 if=/proc/kmsg of=/var/run/rsyslog/kmsg syslog 451 1 0 8424 808 0 Nov05 ? 00:00:00 rsyslogd -c4 root 455 1 0 628 348 0 Nov05 ? 00:00:00 udevd --daemon 102 598 1 0 790 1252 0 Nov05 ? 00:00:03 dbus-daemon --system --fork avahi 625 1 0 705 760 0 Nov05 ? 00:00:00 avahi-daemon: running [9vwtx81.local] avahi 626 625 0 705 128 0 Nov05 ? 00:00:00 avahi-daemon: chroot helper daemon 700 1 0 451 376 0 Nov05 ? 00:00:00 portmap statd 717 1 0 469 276 0 Nov05 ? 00:00:00 rpc.statd -L root 742 1 0 425 200 0 Nov05 tty4 00:00:00 /sbin/getty -8 38400 tty4 root 745 1 0 425 200 0 Nov05 tty5 00:00:00 /sbin/getty -8 38400 tty5 root 753 1 0 425 200 0 Nov05 tty2 00:00:00 /sbin/getty -8 38400 tty2 root 754 1 0 425 200 0 Nov05 tty3 00:00:00 /sbin/getty -8 38400 tty3 root 756 1 0 425 200 0 Nov05 tty6 00:00:00 /sbin/getty -8 38400 tty6 root 758 1 0 493 672 0 Nov05 ? 00:00:00 acpid -c /etc/acpi/events -s /var/run/acpid.socket daemon 762 1 0 490 188 0 Nov05 ? 00:00:00 atd root 764 1 0 522 360 0 Nov05 ? 00:00:00 cron root 796 1 0 1392 476 0 Nov05 ? 00:00:00 /usr/sbin/sshd 103 830 1 0 1517 2852 0 Nov05 ? 00:00:14 hald --daemon=yes root 848 2 0 0 0 0 Nov05 ? 00:00:00 [rpciod/0] root 861 1 0 4676 1968 0 Nov05 ? 00:00:03 NetworkManager root 867 1 0 4851 1660 0 Nov05 ? 00:00:00 /usr/sbin/console-kit-daemon root 881 2 0 0 0 0 Nov05 ? 00:00:00 [kpsmoused] root 884 1 0 975 1112 0 Nov05 ? 00:00:00 /usr/sbin/modem-manager root 954 830 0 834 748 0 Nov05 ? 00:00:00 hald-runner root 955 2 0 0 0 0 Nov05 ? 00:00:00 [nfsiod] root 978 1 0 574 156 0 Nov05 ? 00:00:00 rpc.idmapd root 1013 1 0 1233 744 0 Nov05 ? 00:00:00 /sbin/wpa_supplicant -u -s root 1016 2 0 0 0 0 Nov05 ? 00:00:00 [lockd] root 1017 2 0 0 0 0 Nov05 ? 00:00:00 [nfsd4] root 1018 2 0 0 0 0 Nov05 ? 00:00:00 [nfsd] root 1019 2 0 0 0 0 Nov05 ? 00:00:02 [nfsd] root 1020 2 0 0 0 0 Nov05 ? 00:00:01 [nfsd] root 1021 2 0 0 0 0 Nov05 ? 00:00:01 [nfsd] root 1022 2 0 0 0 0 Nov05 ? 00:00:01 [nfsd] root 1023 2 0 0 0 0 Nov05 ? 00:00:04 [nfsd] root 1024 2 0 0 0 0 Nov05 ? 00:00:04 [nfsd] root 1025 2 0 0 0 0 Nov05 ? 00:00:00 [nfsd] root 1028 2 0 0 0 0 Nov05 ? 00:00:00 [pccardd] root 1031 2 0 0 0 0 Nov05 ? 00:00:00 [pccardd] root 1033 1 0 567 852 0 Nov05 ? 00:00:00 /usr/sbin/rpc.mountd --manage-gids root 1109 954 0 853 624 0 Nov05 ? 00:00:00 hald-addon-input: Listening on /dev/input/event0 /dev/input/event5 /dev/input/event4 /dev/input/event1 /dev/input/event2 root 1120 954 0 853 600 0 Nov05 ? 00:00:05 hald-addon-storage: polling /dev/sr0 (every 2 sec) 103 1129 954 0 814 544 0 Nov05 ? 00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket root 1142 1 0 1689 344 0 Nov05 ? 00:00:00 /usr/sbin/cupsd -C /etc/cups/cupsd.conf root 1208 2 0 0 0 0 Nov05 ? 00:00:00 [phy0] root 1224 954 0 852 444 0 Nov05 ? 00:00:00 /usr/lib/hal/hald-addon-rfkill-killswitch root 1232 1 0 2147 1240 0 Nov05 ? 00:00:00 gdm-binary root 1283 455 0 653 624 0 Nov05 ? 00:00:00 udevd --daemon root 1290 455 0 653 120 0 Nov05 ? 00:00:00 udevd --daemon root 1297 954 0 852 444 0 Nov05 ? 00:00:00 /usr/lib/hal/hald-addon-leds root 1368 1232 0 2129 1128 0 Nov05 ? 00:00:00 /usr/lib/gdm/gdm-simple-slave --display-id /org/gnome/DisplayManager/Display1 root 1369 1368 0 12105 19492 0 Nov05 tty7 00:01:10 /usr/bin/X :0 -br -verbose -auth /var/run/gdm/auth-for-gdm-TB1f1N/database -nolisten tcp vt7 root 1394 1 0 425 200 0 Nov05 tty1 00:00:00 /sbin/getty -8 38400 tty1 gdm 1430 1 0 845 244 0 Nov05 ? 00:00:00 /usr/bin/dbus-launch --exit-with-session root 1435 1 0 1288 1576 0 Nov05 ? 00:00:00 /usr/lib/devicekit-power/devkit-power-daemon root 1490 1368 0 2157 816 0 Nov05 ? 00:00:00 /usr/lib/gdm/gdm-session-worker guest 1516 1 0 10176 828 0 Nov05 ? 00:00:00 /usr/bin/gnome-keyring-daemon --daemonize --login guest 1531 1490 0 6387 2000 0 Nov05 ? 00:00:00 gnome-session guest 1570 1531 0 1229 120 0 Nov05 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/pulse-session gnome-session guest 1573 1 0 845 244 0 Nov05 ? 00:00:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/pulse-session gnome-session guest 1574 1 0 775 1132 0 Nov05 ? 00:00:00 /bin/dbus-daemon --fork --print-pid 7 --print-address 9 --session guest 1578 1 0 23530 1300 0 Nov05 ? 00:00:00 /usr/bin/pulseaudio --start guest 1581 1578 0 2657 744 0 Nov05 ? 00:00:00 /usr/lib/pulseaudio/pulse/gconf-helper guest 1583 1 0 1894 2336 0 Nov05 ? 00:00:02 /usr/lib/libgconf2-4/gconfd-2 guest 1594 1 0 24083 2928 0 Nov05 ? 00:00:04 /usr/lib/gnome-settings-daemon/gnome-settings-daemon guest 1598 1 0 5587 1668 0 Nov05 ? 00:00:00 seahorse-daemon guest 1600 1 0 1435 1180 0 Nov05 ? 00:00:00 /usr/lib/gvfs/gvfsd guest 1605 1 0 4335 1440 0 Nov05 ? 00:00:00 /usr/lib/notify-osd/notify-osd guest 1607 1 0 9786 1440 0 Nov05 ? 00:00:00 /usr/lib/gvfs//gvfs-fuse-daemon /home/guest/.gvfs guest 1611 1531 0 437 172 0 Nov05 ? 00:00:00 /bin/sh /usr/bin/compiz guest 1620 1 0 791 480 0 Nov05 ? 00:00:19 syndaemon -i 0.5 -k guest 1693 1611 0 7439 3244 0 Nov05 ? 00:00:08 /usr/bin/compiz.real --ignore-desktop-hints --replace --indirect-rendering --sm-client-id 10648ab2af57643dac125739716330839600000015310022 move resize place decoration animation ccp guest 1694 1531 0 10405 9500 0 Nov05 ? 00:00:07 gnome-panel guest 1695 1531 0 22402 25560 0 Nov05 ? 00:00:09 nautilus guest 1697 1 0 10149 784 0 Nov05 ? 00:00:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate --ior-output-fd=20 guest 1699 1693 0 437 144 0 Nov05 ? 00:00:00 /bin/sh -c /usr/bin/compiz-decorator guest 1700 1699 0 4960 4388 0 Nov05 ? 00:00:02 /usr/bin/gtk-window-decorator guest 1707 1531 0 6742 2200 0 Nov05 ? 00:00:02 update-notifier --startup-delay=60 guest 1709 1531 0 10747 2936 0 Nov05 ? 00:00:00 /usr/lib/evolution/2.28/evolution-alarm-notify guest 1712 1531 0 4256 1552 0 Nov05 ? 00:00:00 bluetooth-applet guest 1715 1531 0 9997 4036 0 Nov05 ? 00:00:06 nm-applet --sm-disable root 1718 1 0 1257 1708 0 Nov05 ? 00:00:09 /usr/lib/devicekit-disks/devkit-disks-daemon root 1719 1718 0 1205 324 0 Nov05 ? 00:00:32 devkit-disks-daemon: polling /dev/sr0 guest 1721 1531 0 25607 4396 0 Nov05 ? 00:00:01 gnome-power-manager guest 1722 1531 0 23573 1776 0 Nov05 ? 00:00:00 gnome-volume-control-applet guest 1723 1531 0 4264 1764 0 Nov05 ? 00:00:00 /usr/lib/gnome-disk-utility/gdu-notification-daemon guest 1724 1531 0 7383 2400 0 Nov05 ? 00:00:00 python /usr/share/system-config-printer/applet.py guest 1727 1531 0 4151 1588 0 Nov05 ? 00:00:00 /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 root 1729 1 0 1461 1416 0 Nov05 ? 00:00:00 /usr/lib/policykit-1/polkitd guest 1730 1 0 4371 3200 0 Nov05 ? 00:00:02 gnome-screensaver guest 1739 1 0 1546 1272 0 Nov05 ? 00:00:00 /usr/lib/gvfs/gvfsd-trash --spawner :1.9 /org/gtk/gvfs/exec_spaw/0 root 1740 861 0 535 580 0 Nov05 ? 00:00:00 /sbin/dhclient -d -sf /usr/lib/NetworkManager/nm-dhcp-client.action -pf /var/run/dhclient-wlan0.pid -lf /var/lib/dhcp3/dhclient-96df47b4-368e-4c41-8df1-e6e7151e3a07-wlan0.lease -cf /var/run/nm-dhclient-wlan0.conf wlan0 guest 1745 1 0 7523 1224 0 Nov05 ? 00:00:00 /usr/lib/gnome-applets/trashapplet --oaf-activate-iid=OAFIID:GNOME_Panel_TrashApplet_Factory --oaf-ior-fd=18 guest 1748 1 0 1590 1408 0 Nov05 ? 00:00:00 /usr/lib/gvfs/gvfs-gdu-volume-monitor guest 1750 1 0 1767 2760 0 Nov05 ? 00:00:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor guest 1753 1 0 8015 1676 0 Nov05 ? 00:00:00 /usr/lib/indicator-applet/indicator-applet-session --oaf-activate-iid=OAFIID:GNOME_FastUserSwitchApplet_Factory --oaf-ior-fd=19 guest 1758 1 0 8038 1704 0 Nov05 ? 00:00:00 /usr/lib/indicator-applet/indicator-applet --oaf-activate-iid=OAFIID:GNOME_IndicatorApplet_Factory --oaf-ior-fd=26 guest 1794 1 0 1435 752 0 Nov05 ? 00:00:00 /usr/lib/gvfs/gvfsd-burn --spawner :1.9 /org/gtk/gvfs/exec_spaw/1 guest 1827 1 0 2032 1544 0 Nov05 ? 00:00:00 /usr/lib/indicator-messages/indicator-messages-service guest 1829 1 0 3015 1008 0 Nov05 ? 00:00:00 /usr/lib/indicator-session/indicator-status-service guest 1831 1 0 1580 960 0 Nov05 ? 00:00:00 /usr/lib/indicator-session/indicator-users-service guest 1833 1 0 1722 1128 0 Nov05 ? 00:00:00 /usr/lib/indicator-session/indicator-session-service guest 2212 1 0 1356 1740 0 Nov05 ? 00:00:02 SCREEN guest 2213 2212 0 6486 11488 0 Nov05 pts/1 00:08:06 rtorrent guest 2214 2212 0 1613 1588 0 Nov05 pts/2 00:00:00 mc guest 2215 2212 1 632 852 0 Nov05 pts/3 00:24:13 htop guest 2216 2212 0 1124 244 0 Nov05 pts/4 00:00:00 /bin/bash /home/guest/.scripts/elinks.sh guest 2217 2216 0 3800 1744 0 Nov05 pts/4 00:05:27 elinks guest 2219 2214 0 1536 1092 0 Nov05 pts/5 00:00:00 bash -rcfile .bashrc root 3059 2 0 0 0 0 00:29 ? 00:00:00 [pdflush] root 3100 2 0 0 0 0 01:26 ? 00:00:00 [pdflush] guest 3857 1 0 1406 1828 0 12:00 ? 00:00:00 /usr/lib/gvfs/gvfsd-metadata root 4046 796 0 2183 2980 0 13:19 ? 00:00:00 sshd: guest [priv] guest 4089 4046 0 2219 1656 0 13:19 ? 00:00:00 sshd: guest@pts/0 guest 4090 4089 0 1534 3416 0 13:19 pts/0 00:00:00 -bash guest 4113 4090 0 1021 1128 0 13:19 pts/0 00:00:00 screen -r guest 4114 2212 1 1536 3432 0 13:19 pts/6 00:00:00 /bin/bash guest 4133 4114 0 660 1020 0 13:20 pts/6 00:00:00 ps -AF
I often draw the line for usability for vanilla Ubuntu (and sometimes Xubuntu too) around the 1.4Ghz, 512Mb mark, and that’s why. How you interpret those two lists is up to you; the only point I make here is that all those doodads and whirligigs take up a lot of space. A truism perhaps, but no less true for being one.
Pingback: Links 09/11/2009: Zenwalk Core 6.2 Released, Firefox Turns 5 | Boycott Novell
I’m still enjoying these blogs. Keep it up!