SVGALIB is a library that lets userspace programs access graphic display modes on VESA compatible graphics boards, and also does mouse reading.

The basic library (libvga) gives access to primitive functions, and high-level library (libvgagl) lets you to do things like blits and shape drawing.

It's a hack. Not even a relatively beautiful at that, either.

It seems that SVGALIB was first crafted to satisfy the need for graphics on console without the need of X. Graphics has always been sort of a problem in Linux (with advent of frame buffer/DGA/DRI/Utah-GLX/XFree 4.0, and with good high-level APIs like SDL and OpenGL through Mesa library, this is changing) and this solved the problem - temporarily.

Subtle Hint: Following may contain sarcasm, l33t speak and weirdness, but those are for illustratory use only and they complement each other. Parental guidance suggested for mammals of less than 100 kilometers of age

So, the advantages of SVGALIB?

  • It's K3wL, d00d! You can write all those cool demo HAXXX in Linux with C, when other d00dz are writing theirs in Assembly and some sucky Turbo Pascal! They're l8m, you're 31337!
  • It's relatively easy to program with.
  • It's simple.
  • It works.

And the disadvantages?

  • So, it's easy to make easy things, but hard to do hard things? Sorry! We didn't think you needed complicated things.
  • All programs must run setuid root.
  • ...which means that they need root's attention to install.
  • ...which means that when they misbehave, it's time to reboot. (Unless console is messed up and ctrl-alt-del doesn't work. You compiled Magic SysRq Key support to your kernel? You're going to need it.)
  • ...which means that... 1 0wN YoU, gAy W0lF. Th1S n0d3 WaS hAkK3d bY +++sQaL1dSn8K+++ oF »R3Tr1BuT0rZ fR0N rA1nF0r3sT«!!!! CaLL 0Ur 0-DaY-WaR3z-BbS! HaK th3 PlaNet!1!1! (in other words, each SVGALIB program is a potential security risk.)
  • No support for modern chipsets - the library has not been maintained for ages.

Besides, the advent of things like SDL and accelerated X servers have rendered this sort of things obsolete. X is the way these days...