DISCLAIMER: This site is a mirror of original one that was once available at http://iki.fi/~tuomov/b/


Ever since I started using Linux back in 1995 or so, its graphics mode support has annoyed me. And yet in all these ten years, there has been absolutely no improvement to the situation, fbdev being nothing more than a laughing-stock. Infact, one could say that things have gotten slightly worse, because it is impossible to use many important capabilities of a lot of hardware without proprietary drivers. Only recently there's been some talk of going fully OpenGL in the kernel, but it will probably take another 10 years before there's any driver support for it, and again the support for fbdev isn't encouraging.

The specific problem is that the kernel or other trustable component does not provide video mode and virtual console switching capability. Instead, applications that want to use graphics modes, direct keyboard input, and so on, are expected to take full control of the console, and reinvent virtual console switching functionality. This was the case with SVGAlib in the old days when XFree86 was too heavy to run on a poor 486 with 8 megabytes of memory, and was a constant source of irritation and reboots. It still remains a problem with XFree86/Xorg, even though some components (the direct rendering manager) have been moved to the kernel side. The X server is still expected to take control of the console, and to provide virtual console and video mode switching capability. Would you trust that to such bloatware as XFree86/Xorg? I wouldn't, and experience agrees that they can not be trusted with the task. Still the number one reason why Linux needs to be rebooted is X hanging. The loftiest tunes continue on playing, but the victims of poor software design lie unresponsive on the floor.

Pre-emptive multitasking should not be only about allotting CPU time slices to applications; it should also be about allotting console time as per the user's wishes. Linux seriously fails in delivering this by entrusting it to such bloatware as XFree86/Xorg.