SVGAlib
Подробнее
- Создатель
- Tommy Frandsen, Harm Hanemaayer
- Год
- Тип
- Графическая библиотека (C)
- Сайт
- svgalib.org
Библиотека Linux, рисовавшая графику прямо на видеокарте VGA из текстовой консоли, без всякого X: благодаря ей Doom и Quake пошли на Linux в 1994 и 1996 годах — ценой того, что каждая игра была setuid root.
Tommy Frandsen написал VGAlib в 1993 году, чтобы получить на консоли Linux графику 320×200; Harm Hanemaayer добавил режимы SVGA и драйверы под конкретные карты — Tseng, Cirrus, S3, Trident — и переименовал библиотеку в SVGAlib. Она программировала карту через порты ввода-вывода и отображала видеопамять прямо в процесс, а для этого нужен iopl, то есть root. Программы, связанные с ней, устанавливались как setuid, а сбой в графическом режиме обычно оставлял чёрный экран и клавиатуру в сыром режиме, лечившуюся только вслепую набранным reset.
Тем не менее именно так на Linux появились первые настоящие игры: порт Doom 1994 года и Quake 1996 года вышли как sdoom и squake поверх SVGAlib, как и просмотрщик изображений zgv. Каждая такая программа была потенциальной дырой для root, и GGI был основан в том числе как прямой протест. Устройство framebuffer в ядре, DirectFB и SDL сделали библиотеку ненужной к рубежу тысячелетий, а разработка остановилась в 2006 году.