X also hits the hardware and keyboard at a low level - lower even,
because X doesn't use a library. If X, DOOM, and other things
(dosemu I'm almost sure) have to hit hardware at such a low level,
then the kernel is not providing proper services. We may as well
do away with /dev, because it is being bypassed by suid root programs
like the X server, SVGAlib, and dosemu. Unix clones are supposed to
have a hardware abstraction through the file system. Instead, we let
apps hit the hardware directly. Even Windows NT keeps apps away
from the hardware. DOS lets the window system hit the hardware
directly. Let's avoid imitating the DOS mistake that made Windows
start evolving into an OS.
We need at least two things: an event queue and a framebuffer.
SVR4 and SunOS both provide an event queue. Most Unix clones
seem to provide framebuffers, even Linux on some architectures.
Without these two things, Linux simply does not provide the
services modern apps demand. It's great for batch jobs and
timesharing over serial lines. That's still somewhat useful,
but limiting, and BSD beats us in the Big Array category anyway.
I'd let them have it if only I could have a Linux that let an
unprivileged user have _safe_ fast console video and _safe_
control of the keyboard. Any setup with suid root software that
gets IO privileges is broken. Any setup that lets the user jam
the console into some weird keyboard/video mode is broken.
I hope some of this stuff can get fixed in post-2.0 Linux.