Accessing the Text-Mode Video Buffer

While the silly module showed you how to access video memory in the 640KB-1MB address range, a more ``visible'' demo program can help you get comfortable with readb and writeb. The silly module features two more device nodes: /dev/sillytxt (minor number 4) and /dev/silliest (minor number 5).

Warning

Such devices can be used only with a VGA-compatible video board running in text mode; using the devices on systems without a VGA adapter is potentially destructive, like any uncontrolled access to hardware resources.

The first device, sillytxt, is just a window on the VGA text buffer. Unlike the other silly nodes, it can be the target of output redirection and can be used to overwrite the contents of your console. This is reminiscent of /dev/vcs, but the silly implementation is neither portable nor integrated into the kernel as vcs is.

The last device is kind of a joke: it drops the letters off your text screen. Each byte written to the device causes a character on your screen to drop to the bottom of the screen. This device is provided only to show a more complex action on the I/O memory--the same code can be used to operate on a VGA buffer or on other memory, such as network packets or the video data of a frame grabber.

Remember that any modification to the text screen is volatile and interferes with the kernel’s own text management. If you really need to access the text buffer from an application, there are better ways to accomplish the task: either ...

Get Linux Device Drivers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.