It takes ten megs to represent three leds
15 years ago we were really struggling with memory problems. Machines typically had 4 megabytes of RAM. And keyboards still had lights for Num lock, Scroll lock and Caps lock. Wait, how are these connected?
See, my modern Lenovo W510 has dispensed with the leds on the keyboard (well, we still have one for Caps lock). Good riddance, I didn’t really need them.
But hey! They have been replaced with an on-screen display. When I hit Scroll lock, I get a great visual reminder of the state popping up at the lower-right corner of my screen. And toggling the lock back off, I see yet another grandious display of graphical goodness.
You know, these things come with a cost. Looking at the task manager, I spot these two processes specifically dedicated for this purpose.
Looking at this, I realize that those three pesky leds actually take a bit over 2.2 megabytes of memory. And it doesn’t end there. See, both those processes have three threads (hence the “3”), each with a one megabyte stack. Added together with all the other overhead, the nasty indicators slice away almost ten megs of my RAM.
Counting all this together, we are left with the rather stunning conclusion: The leds were replaced with something that consumes twice the typical memory capacity of an early 90s home PC. Oh, and did I mention that the new one is worse, too: The graphical indicator isn’t drawn on top of full-screen applications, nor does it work when a Windows application declares itself “Always on top”.
So much for evolution on this front.
PS. I know the memory calculations are somewhat inaccurate with this little information, but I believe the figures to be sufficiently correct to post this. Feel free to post further details if you bother Process Exploring.
November 10, 2010
В·
Jouni Heikniemi В·
4 Comments
Posted in: General
4 Responses
Jaba - November 16, 2010
Wow. This got me checking up my Ubuntu 10.10's process list.
Ubuntu has had for a while a modern on-screen notification system which shows unified notification for all kinds of events, ranging from new e-mail/IM message to laptop battery notifications to network connection notifications.
So, how much does this thing consume RAM? Hundreds of kilobytes? Couple of megs?
No.
Nearly 80 megabytes.
To be fair, almost all of it is shared memory using the components Gnome anyway uses so that doesn't add up as "real" memory usage, since it doesn't show to end-user as consumed RAM: pixmap libraries, SVG libraries, device libraries, rendering libraries and stuff like that.
Still this thing manages to use around 3 megabytes of its own RAM. Three megs for a thing drawing small bubbles and echoing the stuff other programs throw at it? Where is this world heading to! Hell, Real 3D v1.4 was running nicely with 1 MB!
Here is a breakdown of notify-osd memory usage, if you are interested :)
—
2265: /usr/lib/notify-osd/notify-osd
Address Kbytes RSS Dirty Mode Mapping
00110000 0 340 0 r-x– libgdk-x11-2.0.so.0.2200.0
001a4000 0 4 0 r—- libgdk-x11-2.0.so.0.2200.0
001a6000 0 4 4 rw— libgdk-x11-2.0.so.0.2200.0
001a7000 0 36 0 r-x– libatk-1.0.so.0.3209.1
001bf000 0 0 0 —– libatk-1.0.so.0.3209.1
001c0000 0 4 0 r—- libatk-1.0.so.0.3209.1
001c1000 0 4 0 rw— libatk-1.0.so.0.3209.1
001c2000 0 0 0 r-x– libgmodule-2.0.so.0.2600.0
001c4000 0 0 0 r—- libgmodule-2.0.so.0.2600.0
001c5000 0 0 0 rw— libgmodule-2.0.so.0.2600.0
001c6000 0 0 0 r-x– libXRes.so.1.0.0
001c7000 0 0 0 r—- libXRes.so.1.0.0
001c8000 0 0 0 rw— libXRes.so.1.0.0
001ca000 0 100 0 r-x– libwnck-1.so.22.3.30
001ff000 0 4 0 r—- libwnck-1.so.22.3.30
00200000 0 4 4 rw— libwnck-1.so.22.3.30
00201000 0 492 0 r-x– libgtk-x11-2.0.so.0.2200.0
005c9000 0 8 0 r—- libgtk-x11-2.0.so.0.2200.0
005cd000 0 8 4 rw— libgtk-x11-2.0.so.0.2200.0
005cf000 0 8 4 rw— [ anon ]
005d1000 0 188 0 r-x– libpango-1.0.so.0.2800.1
00610000 0 0 0 —– libpango-1.0.so.0.2800.1
00611000 0 4 0 r—- libpango-1.0.so.0.2800.1
00612000 0 4 0 rw— libpango-1.0.so.0.2800.1
00613000 0 200 0 r-x– libgobject-2.0.so.0.2600.0
00653000 0 4 0 r—- libgobject-2.0.so.0.2600.0
00654000 0 4 4 rw— libgobject-2.0.so.0.2600.0
00655000 0 8 0 r-x– librt-2.12.1.so (deleted)
0065c000 0 0 0 r—- librt-2.12.1.so (deleted)
0065d000 0 0 0 rw— librt-2.12.1.so (deleted)
0065e000 0 0 0 r-x– libXinerama.so.1.0.0
00660000 0 0 0 r—- libXinerama.so.1.0.0
00661000 0 0 0 rw— libXinerama.so.1.0.0
00664000 0 24 0 r-x– ld-2.12.1.so (deleted)
00680000 0 4 0 r—- ld-2.12.1.so (deleted)
00681000 0 4 4 rw— ld-2.12.1.so (deleted)
00682000 0 280 0 r-x– libglib-2.0.so.0.2600.0
0074f000 0 4 0 r—- libglib-2.0.so.0.2600.0
00750000 0 4 4 rw— libglib-2.0.so.0.2600.0
00751000 0 44 0 r-x– libpthread-2.12.1.so (deleted)
00766000 0 0 0 —– libpthread-2.12.1.so (deleted)
00767000 0 4 0 r—- libpthread-2.12.1.so (deleted)
00768000 0 4 0 rw— libpthread-2.12.1.so (deleted)
00769000 0 0 0 rw— [ anon ]
0076b000 0 208 0 r-x– libX11.so.6.3.0
00884000 0 4 0 r—- libX11.so.6.3.0
00885000 0 8 4 rw— libX11.so.6.3.0
00887000 0 4 4 rw— [ anon ]
00888000 0 12 0 r-x– libstartup-notification-1.so.0.0.0
0088f000 0 0 0 r—- libstartup-notification-1.so.0.0.0
00890000 0 4 0 rw— libstartup-notification-1.so.0.0.0
00891000 0 24 0 r-x– libXext.so.6.4.0
0089f000 0 0 0 r—- libXext.so.6.4.0
008a0000 0 4 0 rw— libXext.so.6.4.0
008a1000 0 0 0 r-x– libXcomposite.so.1.0.0
008a3000 0 0 0 r—- libXcomposite.so.1.0.0
008a4000 0 0 0 rw— libXcomposite.so.1.0.0
008a7000 0 4 0 r-x– [ anon ]
008a8000 0 8 0 r-x– libXdamage.so.1.1.0
008aa000 0 0 0 r—- libXdamage.so.1.1.0
008ab000 0 0 0 rw— libXdamage.so.1.1.0
008ae000 0 32 0 r-x– libpangocairo-1.0.so.0.2800.1
008b8000 0 4 0 r—- libpangocairo-1.0.so.0.2800.1
008b9000 0 4 4 rw— libpangocairo-1.0.so.0.2800.1
008ba000 0 16 0 r-x– libXrender.so.1.3.0
008c2000 0 4 0 r—- libXrender.so.1.3.0
008c3000 0 4 0 rw— libXrender.so.1.3.0
008c4000 0 0 0 r-x– libXcursor.so.1.0.2
008cc000 0 0 0 r—- libXcursor.so.1.0.2
008cd000 0 0 0 rw— libXcursor.so.1.0.2
008ce000 0 0 0 r-x– libXfixes.so.3.1.0
008d2000 0 0 0 r—- libXfixes.so.3.1.0
008d3000 0 0 0 rw— libXfixes.so.3.1.0
008d4000 0 0 0 r-x– libz.so.1.2.3.4
008e7000 0 0 0 r—- libz.so.1.2.3.4
008e8000 0 0 0 rw— libz.so.1.2.3.4
008e9000 0 0 0 r-x– libxcb-shm.so.0.0.0
008eb000 0 0 0 r—- libxcb-shm.so.0.0.0
008ec000 0 0 0 rw— libxcb-shm.so.0.0.0
008ed000 0 12 0 r-x– libgthread-2.0.so.0.2600.0
008f0000 0 4 0 r—- libgthread-2.0.so.0.2600.0
008f1000 0 4 0 rw— libgthread-2.0.so.0.2600.0
008f2000 0 0 0 r-x– libxcb-render.so.0.0.0
008f8000 0 0 0 r—- libxcb-render.so.0.0.0
008f9000 0 0 0 rw— libxcb-render.so.0.0.0
008fb000 0 0 0 r-x– libXi.so.6.1.0
00907000 0 0 0 r—- libXi.so.6.1.0
00908000 0 0 0 rw— libXi.so.6.1.0
00909000 0 0 0 r-x– libpng12.so.0.44.0
0092c000 0 0 0 r—- libpng12.so.0.44.0
0092d000 0 0 0 rw— libpng12.so.0.44.0
0092e000 0 0 0 r-x– libdl-2.12.1.so (deleted)
00930000 0 0 0 r—- libdl-2.12.1.so (deleted)
00931000 0 0 0 rw— libdl-2.12.1.so (deleted)
00932000 0 0 0 r-x– libxcb-aux.so.0.0.0
00934000 0 0 0 r—- libxcb-aux.so.0.0.0
00935000 0 0 0 rw— libxcb-aux.so.0.0.0
00936000 0 36 0 r-x– libgconf-2.so.4.1.5 (deleted)
00963000 0 0 0 —– libgconf-2.so.4.1.5 (deleted)
00964000 0 4 0 r—- libgconf-2.so.4.1.5 (deleted)
00965000 0 8 0 rw— libgconf-2.so.4.1.5 (deleted)
00967000 0 392 0 r-x– libc-2.12.1.so (deleted)
00abe000 0 0 0 —– libc-2.12.1.so (deleted)
00abf000 0 4 0 r—- libc-2.12.1.so (deleted)
00ac1000 0 4 4 rw— libc-2.12.1.so (deleted)
00ac2000 0 8 8 rw— [ anon ]
00ac5000 0 128 0 r-x– libpixman-1.so.0.18.4
00b21000 0 12 0 r—- libpixman-1.so.0.18.4
00b24000 0 4 0 rw— libpixman-1.so.0.18.4
00b25000 0 176 0 r-x– libgio-2.0.so.0.2600.0
00c0d000 0 4 0 r—- libgio-2.0.so.0.2600.0
00c0f000 0 4 4 rw— libgio-2.0.so.0.2600.0
00c10000 0 4 4 rw— [ anon ]
00c11000 0 4 0 r-x– libORBit-2.so.0.1.0
00c5a000 0 0 0 r—- libORBit-2.so.0.1.0
00c62000 0 4 0 rw— libORBit-2.so.0.1.0
00c64000 0 0 0 r-x– libfontconfig.so.1.4.4
00c92000 0 0 0 r—- libfontconfig.so.1.4.4
00c93000 0 0 0 rw— libfontconfig.so.1.4.4
00c94000 0 0 0 r-x– libxcb-event.so.1.0.0
00c96000 0 0 0 r—- libxcb-event.so.1.0.0
00c97000 0 0 0 rw— libxcb-event.so.1.0.0
00c98000 0 0 0 r-x– libxcb-atom.so.1.0.0
00c9b000 0 0 0 r—- libxcb-atom.so.1.0.0
00c9c000 0 0 0 rw— libxcb-atom.so.1.0.0
00c9d000 0 0 0 r-x– libXau.so.6.0.0
00c9f000 0 0 0 r—- libXau.so.6.0.0
00ca0000 0 0 0 rw— libXau.so.6.0.0
00ca1000 0 4 0 r-x– libpixbufloader-svg.so
00ca2000 0 0 0 r—- libpixbufloader-svg.so
00ca3000 0 4 0 rw— libpixbufloader-svg.so
00ca4000 0 68 0 r-x– libgdk_pixbuf-2.0.so.0.2200.0
00cbb000 0 4 0 r—- libgdk_pixbuf-2.0.so.0.2200.0
00cbc000 0 4 4 rw— libgdk_pixbuf-2.0.so.0.2200.0
00cbd000 0 0 0 r-x– libSM.so.6.0.1
00cc4000 0 0 0 r—- libSM.so.6.0.1
00cc5000 0 0 0 rw— libSM.so.6.0.1
00cc6000 0 0 0 r-x– libuuid.so.1.3.0
00cc9000 0 0 0 r—- libuuid.so.1.3.0
00cca000 0 0 0 rw— libuuid.so.1.3.0
00ccb000 0 180 0 r-x– libdbus-1.so.3.5.2
00d05000 0 4 0 r—- libdbus-1.so.3.5.2
00d06000 0 4 4 rw— libdbus-1.so.3.5.2
00d07000 0 0 0 r-x– libfreetype.so.6.6.0 (deleted)
00d79000 0 0 0 r—- libfreetype.so.6.6.0 (deleted)
00d7d000 0 0 0 rw— libfreetype.so.6.6.0 (deleted)
00d7e000 0 4 0 r-x– pango-basic-fc.so
00d80000 0 4 0 r—- pango-basic-fc.so
00d81000 0 4 0 rw— pango-basic-fc.so
00d82000 0 56 0 r-x– libm-2.12.1.so (deleted)
00da6000 0 4 0 r—- libm-2.12.1.so (deleted)
00da7000 0 4 0 rw— libm-2.12.1.so (deleted)
00da8000 0 16 0 r-x– libxcb.so.1.1.0
00dc0000 0 0 0 r—- libxcb.so.1.1.0
00dc1000 0 4 0 rw— libxcb.so.1.1.0
00dc2000 0 0 0 r-x– libresolv-2.12.1.so (deleted)
00dd2000 0 0 0 r—- libresolv-2.12.1.so (deleted)
00dd3000 0 0 0 rw— libresolv-2.12.1.so (deleted)
00dd4000 0 0 0 rw— [ anon ]
00dd6000 0 0 0 r-x– libXdmcp.so.6.0.0
00dda000 0 0 0 r—- libXdmcp.so.6.0.0
00ddb000 0 0 0 rw— libXdmcp.so.6.0.0
00ddc000 0 96 0 r-x– libdbus-glib-1.so.2.1.0
00df9000 0 4 4 r—- libdbus-glib-1.so.2.1.0
00dfa000 0 4 4 rw— libdbus-glib-1.so.2.1.0
00dfb000 0 0 0 r-x– libnss_compat-2.12.1.so (deleted)
00e01000 0 0 0 r—- libnss_compat-2.12.1.so (deleted)
00e02000 0 0 0 rw— libnss_compat-2.12.1.so (deleted)
00e03000 0 0 0 r-x– libnss_nis-2.12.1.so (deleted)
00e0c000 0 0 0 r—- libnss_nis-2.12.1.so (deleted)
00e0d000 0 0 0 rw— libnss_nis-2.12.1.so (deleted)
00e10000 0 0 0 r-x– libXrandr.so.2.2.0
00e16000 0 0 0 r—- libXrandr.so.2.2.0
00e17000 0 0 0 rw— libXrandr.so.2.2.0
00e18000 0 100 0 r-x– libpcre.so.3.12.1
00e4b000 0 4 0 r—- libpcre.so.3.12.1
00e4c000 0 4 0 rw— libpcre.so.3.12.1
00e4d000 0 0 0 r-x– libICE.so.6.3.0
00e62000 0 0 0 r—- libICE.so.6.3.0
00e63000 0 0 0 rw— libICE.so.6.3.0
00e64000 0 0 0 rw— [ anon ]
00e66000 0 88 0 r-x– libpangoft2-1.0.so.0.2800.1
00e8a000 0 4 0 r—- libpangoft2-1.0.so.0.2800.1
00e8b000 0 4 4 rw— libpangoft2-1.0.so.0.2800.1
00e8c000 0 0 0 r-x– libselinux.so.1
00ea6000 0 0 0 r—- libselinux.so.1
00ea7000 0 0 0 rw— libselinux.so.1
00ea8000 0 0 0 r-x– libexpat.so.1.5.2
00ecc000 0 0 0 r—- libexpat.so.1.5.2
00ece000 0 0 0 rw— libexpat.so.1.5.2
00ecf000 0 0 0 r-x– libnss_files-2.12.1.so (deleted)
00ed9000 0 0 0 r—- libnss_files-2.12.1.so (deleted)
00eda000 0 0 0 rw— libnss_files-2.12.1.so (deleted)
00edb000 0 0 0 r-x– ISO8859-1.so (deleted)
00edc000 0 0 0 r—- ISO8859-1.so (deleted)
00edd000 0 0 0 rw— ISO8859-1.so (deleted)
00ee0000 0 380 0 r-x– libcairo.so.2.11000.0
00f8e000 0 0 0 —– libcairo.so.2.11000.0
00f8f000 0 4 0 r—- libcairo.so.2.11000.0
00f90000 0 4 4 rw— libcairo.so.2.11000.0
00f91000 0 8 8 rw— [ anon ]
00f93000 0 0 0 r-x– libnsl-2.12.1.so (deleted)
00fa6000 0 0 0 r—- libnsl-2.12.1.so (deleted)
00fa7000 0 0 0 rw— libnsl-2.12.1.so (deleted)
00fa8000 0 0 0 rw— [ anon ]
00faa000 0 4 0 r-x– libcanberra-gtk-module.so
00faf000 0 0 0 r—- libcanberra-gtk-module.so
00fb0000 0 4 0 rw— libcanberra-gtk-module.so
00fb1000 0 0 0 r-x– libcanberra-gtk.so.0.1.6
00fb5000 0 0 0 r—- libcanberra-gtk.so.0.1.6
00fb6000 0 0 0 rw— libcanberra-gtk.so.0.1.6
00fb7000 0 0 0 r-x– libcanberra.so.0.2.4
00fc5000 0 0 0 r—- libcanberra.so.0.2.4
00fc6000 0 0 0 rw— libcanberra.so.0.2.4
00fc7000 0 0 0 r-x– libvorbisfile.so.3.3.2
00fce000 0 0 0 r—- libvorbisfile.so.3.3.2
00fcf000 0 0 0 rw— libvorbisfile.so.3.3.2
00fd0000 0 0 0 r-x– libvorbis.so.0.4.4
00ff6000 0 0 0 r—- libvorbis.so.0.4.4
00ff7000 0 0 0 rw— libvorbis.so.0.4.4
00ff8000 0 0 0 r-x– libogg.so.0.7.0
00ffd000 0 0 0 r—- libogg.so.0.7.0
00ffe000 0 0 0 rw— libogg.so.0.7.0
00fff000 0 0 0 r-x– libtdb.so.1.2.1
0100c000 0 0 0 r—- libtdb.so.1.2.1
0100d000 0 0 0 rw— libtdb.so.1.2.1
01e53000 0 28 0 r-x– libgvfsdbus.so (deleted)
01e76000 0 0 0 r—- libgvfsdbus.so (deleted)
01e77000 0 4 0 rw— libgvfsdbus.so (deleted)
03b9d000 0 0 0 r-x– libpixmap.so
03ba4000 0 0 0 —– libpixmap.so
03ba5000 0 0 0 r—- libpixmap.so
03ba6000 0 0 0 rw— libpixmap.so
04a91000 0 0 0 r-x– libltdl.so.7.2.1
04a98000 0 0 0 r—- libltdl.so.7.2.1
04a99000 0 0 0 rw— libltdl.so.7.2.1
05b97000 0 12 0 r-x– libgvfscommon.so.0.0.0 (deleted)
05baa000 0 4 0 r—- libgvfscommon.so.0.0.0 (deleted)
05bab000 0 4 0 rw— libgvfscommon.so.0.0.0 (deleted)
05c61000 0 48 0 r-x– libmurrine.so
05c8e000 0 0 0 r—- libmurrine.so
05c8f000 0 4 0 rw— libmurrine.so
06460000 0 188 0 r-x– libxml2.so.2.7.7 (deleted)
06585000 0 4 0 r—- libxml2.so.2.7.7 (deleted)
06589000 0 4 4 rw— libxml2.so.2.7.7 (deleted)
0658a000 0 4 0 rw— [ anon ]
0693e000 0 0 0 r-x– libcroco-0.6.so.3.0.1
0696f000 0 0 0 r—- libcroco-0.6.so.3.0.1
06970000 0 0 0 rw— libcroco-0.6.so.3.0.1
0792d000 0 0 0 r-x– libudev.so.0.9.1 (deleted)
07937000 0 0 0 r—- libudev.so.0.9.1 (deleted)
07938000 0 0 0 rw— libudev.so.0.9.1 (deleted)
07b14000 0 124 0 r-x– librsvg-2.so.2.32.0
07b44000 0 4 0 r—- librsvg-2.so.2.32.0
07b45000 0 4 0 rw— librsvg-2.so.2.32.0
08048000 0 116 0 r-x– notify-osd
08074000 0 4 0 r—- notify-osd
08075000 0 4 4 rw— notify-osd
09bcd000 0 3036 2572 rw— [ anon ]
b37f0000 0 52 0 r—- icon-theme.cache
b40b8000 0 4 4 rw— [ anon ]
b40b9000 0 52 0 r—- Ubuntu-R.ttf
b4107000 0 44 0 r—- Ubuntu-B.ttf
b4155000 0 0 0 r–s- c05880de57d1f5e948fdfacc138775d9-le32d4.cache-3
b4156000 0 0 0 r–s- 945677eb7aeaf62f1d50efc3fb3ec7d8-le32d4.cache-3
b415c000 0 0 0 r–s- 99e8ed0e538f840c565b6ed5dad60d56-le32d4.cache-3
b415e000 0 0 0 r–s- e383d7ea5fbe662a33d9b44caf393297-le32d4.cache-3
b4161000 0 0 0 r–s- 2cd17615ca594fa2959ae173292e504c-le32d4.cache-3
b4163000 0 0 0 r–s- e7071f4a29fa870f4323321c154eba04-le32d4.cache-3
b4164000 0 0 0 r–s- 6eb3985aa4124903f6ff08ba781cd364-le32d4.cache-3
b4167000 0 0 0 r–s- 4c73fe0c47614734b17d736dbde7580a-le32d4.cache-3
b4168000 0 0 0 r–s- 0d8c3b2ac0904cb8a57a757ad11a4a08-le32d4.cache-3
b4169000 0 0 0 r–s- 6a53c69dea097a2d716e069445527da8-le32d4.cache-3
b416a000 0 0 0 r–s- a755afe4a08bf5b97852ceb7400b47bc-le32d4.cache-3
b416e000 0 0 0 r–s- 6d41288fd70b0be22e8c3a91e032eec0-le32d4.cache-3
b4175000 0 0 0 r–s- 0f34bcd4b6ee430af32735b75db7f02b-le32d4.cache-3
b4180000 0 0 0 r–s- d60319d88cac85ba9e1a07bd06cfbb8c-le32d4.cache-3
b4183000 0 0 0 r–s- 4794a0821666d79190d59a36cb4f44b5-le32d4.cache-3
b4184000 0 0 0 r–s- 365b55f210c0a22e9a19e35191240f32-le32d4.cache-3
b41a6000 0 0 0 r–s- d52a8644073d54c13679302ca1180695-le32d4.cache-3
b41ae000 0 0 0 r–s- e13b20fdb08344e0e664864cc2ede53d-le32d4.cache-3
b41b6000 0 0 0 r–s- 7ef2298fde41cc6eeb7af42e48b7d293-le32d4.cache-3
b41b9000 0 0 0 r–s- gconv-modules.cache (deleted)
b498e000 0 0 0 rw-s- [ shmid=0x22930018 ]
b49ee000 0 0 0 rw-s- [ shmid=0x76c0026 ]
b49f1000 0 0 0 rw-s- [ shmid=0x76b0024 ]
b4a51000 0 28 0 r–s- mime.cache
b4a6d000 0 4 0 r–s- mime.cache
b4a70000 0 84 0 r—- icon-theme.cache
b6d1a000 0 60 0 r—- icon-theme.cache
b6deb000 0 0 0 —– [ anon ]
b6dec000 0 0 0 rw— [ anon ]
b75ec000 0 12 0 r—- locale-archive
b77ec000 0 20 4 rw— [ anon ]
b77fa000 0 0 0 r–s- 26de28bc8622bbc1fb67fd234c21975f-le32d4.cache-3
b77fb000 0 4 4 rw— [ anon ]
b77fc000 0 24 0 r—- icon-theme.cache
b7806000 0 16 0 r—- icon-theme.cache
b7810000 0 4 0 r—- locale-archive
b7811000 0 4 0 rw— [ anon ]
bfa8c000 0 96 96 rw— [ stack ]
——– ——- ——- ——- ——-
total kB 79284 – – –
Jaba - November 16, 2010
This is the notification monster I'm talking about:
https://wiki.ubuntu.com/NotifyOSD
Jaba - November 16, 2010
Sorry about this Linux monology :-), but when talking about resources, another thing worth mentioning is amount of processes running background. It has radically ballooned over the last two-three years.
While I type this, I only have Google Chrome, Evolution, two terminal windows and an IM program open. So in total this system should have maybe tens of processes running background?
Well… no. This Ubuntu 10.10 seems to have total of 241 processes/threads running! What are they? For example:
– A Bluetooth framework
– A daemon handling my encrypted partitions, directories and files
– The notification daemon I was talking about
– Laptop daemons taking care of battery, power profiles etc
– Network manager allowing seamless switching between different networks / 3G / whatnot
– Indexing service for finding files, mails and so on fast
– Software update checker
– Daemon taking care of auto-mounting hot-pluggable storage
– PulseAudio sound daemon so I can easily switch between different audio sources/destinations
– PolicyKit for fine-grained access controls for different tasks
– A printing daemon
– A daemon for searching & auto-configuring network services (for example if there's a daemon streaming music or video near you, show it)
And the list goes on. This situation is *quite* a bit different compared to early 2000's when Linux at the desktop was kind of a baby. My WindowMaker environment back then had around 30-40 processes total, and that included kernel-level processes.
Anyway, history repeats itself yet again. Around Red Hat 5.x – 6.x (the old Red Hat, not the current Red Hat Enterprise Linux) there were lots of services installed and activated by default. Many of those were questionable: for example ftp was wide open to whole world by default, if you did not disable it during install.
Then quite soon the installations became more streamlined and the default installation did not have any ports open to outside world. Distributions tried to remove bloat and get rid of unused/rarely used stuff.
And now… well, there are lots and lots of processes running just in case. Luckily nowadays they are not exposed to public networks. But you never know if you need to print so let's put that cupsd background. You never know if you need to connect your Bluetooth device so let's put that Bluetooth framework running there. Instant messaging via Facebook, Twitter and so on is hip, so let's run the instant messaging framework, no matter if you actually use it. This is not very sensible thing to do.
The author of PulseAudio realized this and created systemd:
http://www.freedesktop.org/wiki/Software/systemd
With systemd you don't have to automatically start the services, they will be started on-demand instead. It also has support for fancier stuff such as partitioning the services to different kinds of resource groups, but for me the real kicker is the on-demand feature, at this point it is badly needed.
Gracie Herz - October 27, 2018
Beloved Sir/Madam,
Wonderful to satisfy you. I am Joseph from Bluetooth Device Ltd, a Hong Kong based technology company specialized in Bluetooth and wireless products including: Bluetooth headsets, speakers, adapters, billing devices and also variety of vehicle accessories.
Today item:
Mini Bluetooth 5.0 Stereo IPX6 Earphone Earbuds with Touch Control + Charging Box
Selling factor 1: Bluetooth v5.0! Leading Noise Top Quality in Wireless Technology
Selling factor 2: 4 hrs Music/ Conversation Time/ 32 hrs with Trendy Billing Box
Have you located that the majority of the wireless earphone are not secure adequate or unqualified to support your lossless songs?
Please inspect our Bluetooth Earphone! It includes the most up to date technology, with touch control + LED indications as well as give the very best audio top quality amongst the wireless earphones.
Hi-Fi Top quality! Long-term battery! Grand Alloy Body!
Link for more information:
https://www.bluetooth-device.com/Bluetooth%20Earphones?product_id=120
Taste price: US$ 48.0/ pc
Wholesale price starting from 10 computers: US$ 32.0/ computer
Bulk rate depends upon quantity. Invite for questions!
We only create best items, both in function as well as expectation style
Have a nice day!
Best regards,
Matthew
Sales Manager
Bluetooth Device
6F Leader Industrial Centre,
57 Au Pui Wan Street,
Fo Tan,
Hong Kong
Whatsapp/wechat: 852-64628287
Email: sales@bluetooth-device.com
Leave a Reply