Results 1 to 3 of 3
When modern Linux kernels boot, they generally display a penguin and use a character layout that exceeds the traditional 80x25 VGA norm. At the nuts & bolts level, are they ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 02-22-2007 #1
- Join Date
- Feb 2007
"Console" video mode?
When modern Linux kernels boot, they generally display a penguin and use a character layout that exceeds the traditional 80x25 VGA norm. At the nuts & bolts level, are they still running in a "character" mode at that point, or are they really using bitmapped graphics?
From what I've read, it looks like the text could still be generated by a "character" mode, because the "VGA" character generator apparently allows font bitmaps to be 8 pixels wide (with or without an implied ninth blank pixel for separation between adjacent characters), but the penguin still seems to be throwing a curveball. As far as I know, no (S)VGA chipset has ever supported Amiga/Atari-style mode changes that would allow the top part of the screen to be in graphics mode, but switch to character mode partway to the bottom. But custom characters seem like a stretch too, because the penguin seems to use more colors than custom characters allow for.
Anyway, it's something I've been curious about for a long time
- 02-22-2007 #2
It may well be a low level image rather than console text. I know that on my laptop, i dont even have to be in X to be able to play videos or use my graphical login (qingy).
I can log into the terminal on the laptop, and just fire up a video in mplayer, and it shows it no problems what so ever, just as well as it would in X, but withuot the overheads of running X just for a vieo player.
It's all done on something called the Frame Buffer.
Now i know exactly the penguin you are on about, and maybe that's done on a low level frame buffer too. I dont know to be honest."I am not an alcoholic, alcoholics go to meetings"
Registered Linux user = #372327
- 02-22-2007 #3
- Join Date
- Feb 2007
Well, armed with the right term ("frame buffer"), I was able to hunt down what looks like the answer. Apparently, PC video hardware DOES have the ability to do a split-screen mode change exactly one time during each frame or field (possibly more, if the line-compare register gets reloaded with a new value after the first triggering). So it is apparently possible that the top few scanlines are a (S)VGA mode, and the remainder of the screen is a text mode.
From what I gather, it's a little-known feature that's always existed since the first IBM PC with VGA hit the stores, but oldschool Realmode PC programmers were afraid to use it because it wasn't part of the omnipotent holy BIOS, and thus wasn't "official"
Nevertheless, it looks like the Linux framebuffer situation is something like this:
The "framebuffer" device provides a kernel-level means of using bitmapped graphics with a thin abstraction layer that provides a well-defined memory map for 1, 4, 8, 15, 16, 24, and 32-bit bitmaps to smooth over potential issues with endinan-ness or genuinely wacky behind-the-scenes memory maps. Another layer exists to allow apps to treat it like an ANSI-type character-mode terminal. This mode is used when running Linux on hardware with inherently bitmapped displays. When running on a PC, that abstraction layer is generally ignored in favor of working directly in a hardware textmode unless a font that's not monospaced with 8 pixels of detail is desired.