X...Server

Let's talk about a dogma: servers must be console only, and they should never have any kind of GUI. That's why Windows server are frowned upon and laughed at, right? Right!

Wrong. The dogma of console-only servers has been born a long time ago, when system resources were scarce and precious. Hell, even 1995 I spent the equivalent of 500 € for a mere 16 MB of RAM. This situation has changed completely. System resources have become ridiculously cheap. Today, one can purchase 4 GB RAM for a mere 50 €. And what's even more important: the display resolution has increased from 640x480 about 20 years ago to today's de facto minimum of 1280x1024. This screen real estate screems for being used!

Let's just consider a real-life example. To do so, I've chosen Ubuntu 8.0.4 LTS Server which I believe to be a good choice for a conservative, yet reasonably up-to-date server installation. You can configure essentials such as the console font and resolution with a simple dpkg-reconfigure console-setup. Since my eye-sight deteriorates rapidly (sigh), I chose Terminus for the former and whatever is the actual physical resolution of the display I'm using. I'm then always amazed by the waste of space.

Wouldn't it be nice to make use of all this space on the screen? As a matter of fact, there is a whole class of window managers which specialize in tiling, explicitly advertise to be lean and claim to be optimized in keyboard navigation. Among the many alternatives, I have chosen wmii, with which I am most familiar for historic reasons. Now, sure the memory consumption of this thing must be unbearably high, enormous, astronomical? Surely all servers will imediately break down when confronted with such a blasphemy...OMG! 😏

Let's see how much it actually is...including tightvnserver, as the X desktop is most frequently used remotely:

plain console single terminal 15780 kB
quad terminal NA
wmii single terminal 32540 kB
quad terminal 40020 kB
wmii/tightvnc single terminal 39872 kB
quad terminal 54104 kB

Indeed. On a relative scale it costs a lot, on an absolute one it is entirely negligible as long as the server running it is reasonably up-to-date. 😉

And what do we gain? Much, I think. Just look at these four xterms:

screenshot of wmii

Purists may abhor this sight, but personally I wouldn't want to miss the clarity and convenience I gain by using wmii. To see all these terminals simultaneously is something I find invaluable, and so much more satisfying than screen (which is very useful in its own right, of course).

PS: The configuration of the vncserver is simple: ~/.vnc/xstartup should have the same content as ~/.xinitrc. In the example shown above, this is

xrandr -s 1400x1050
exec wmii