Display servers, framebuffers & graphics drivers - These are the droids I'm looking for!

epic fail to svae

ummm, could some mod nuke this … I was in the process of typing something up and a stupid cat jumped on to the keyboard and it got posted (I will hit the report button in a second nonetheless)

Screw it, please don’t nuke thread… I’ll just re-use it.

Okay, as it looks like you have to jump through hoops to get a blog going (I’m not interested in being vetted or taking the time to do that), and as I’m not a big fan of the openSUSE wiki (I hear openSUSE wiki people think its marvellous … I think its non-intuitive and therefore sucks), I’m going to begin outlining (at my leisure, and in this thread, until it can be moved to a more appropriate vehicle) information (regarding the three facets outlined in the thread title) that can be used to replace very outdated sticky threads and the such. Why? Because its well past the time to:

  • update the info and have it written in a generic fashion such that it doesn’t become dated by subsequent distro releases
  • stop myself from posting pretty much the very same info that I’ve previously posted over and over and over and…

And if you are wondering about the oblique star wars reference in the title, it stems from another forum member having (thinly veiled I may add) attempted a “jedi mind trick” upon me to embark upon such a venture. :stuck_out_tongue:

And so, with the introductory remarks out of the way. Lets begin. If you have a particular topic you too would like to address, please feel free to do so, and we can most certainly make this a community effort.

A Display Server encompasses a lot of things (see Display server - Wikipedia, the free encyclopedia). We’ll look at it from the perspective of the graphical environment it affords and which runs atop the Linux kernel (OS). The most common, or rather well recognized, Display Servers are the X Display Server, Wayland and Mir.

Regardless of which particular Display Server you are utilizing, an important point is that it will have been assigned a name by the OS. Delving into an even finer point about addressing leads us to the Display environmental Variable, which has the form of:hostname***:****display_number****.***screen**number

*hostname * - specifies the computer the Display Server is running upon… this could be given as a name or an IP address (as Display Server protocols can operate very well over networks) … the hostname is omitted in the case that the computer you are operating at is the very one that the Display Server is running upon

:****display_number- starting from a count of zero, this is the particular number assigned to a Display Server instance … while most users typically only use or need one Display Server, you can indeed run a whole bunch if the case need be. Hence the requirement for a sane way of keeping track of them.

[FONT=Liberation Serif][size=3].****screennumber- [/size][/FONT](again, starting from a count of zero) this refers to the particular Screen (operating within the Display Server) upon which a client application window can be opened. “Screen”, however, is not what most people will or may initially think it is. Instead, its a bit of a more nuanced point that is perhaps best conveyed by a picture, and some further description.


Figure1: The black box outline in the diagram above is meant to represent the confines of a Display Server. The other elements within the figure should be self explanatory.

                     To help conceptualize these matters: 
  • If the OS is the universe, then think of Displays as galaxies within that universe … that is, as a point of notoriety, just like the universe has many galaxies, a linux system can have many Displays. Another point of consideration is about the dimension of the Display. Now, I could be wrong, but I don’t think that the dimension of a galaxy is something that we have good knowledge of (i.e. how do you nail down exactly where a galaxy starts and/or ends?). Similiarly (and the actual point being), a Display is a concept that is somewhat vague in dimension
  • Continuing on, think of Screens as being the entirety of solar systems within a galaxy/Display. Within a Screen you can have as many physical display devices (panels/monitors/displys/tft/crt/screen/whatever_you_call_it) as your graphics adapter can drive … so, you might think of the monitors as the stars within a solar system (and if Star Wars has taught you anything, you’d know that you can have more then one sun per solar system). The graphics adapter is essentially what allows the expanse of the Screen/solar system – that is, there is a definite and known finite dimension to a screen (addressed below)
  • Lastly, think of the fixed mice, k/b and other such peripheral devices as the planets and other heavenly bodies with orbits around the stars within a solar system.

Screens do have a precise Virtual dimension (and note, its always rectangular)… and, at its maximum, is governed by the amount of space your graphics adapter is capable of addressing (i.e. max. dimension is limited by the device’s VRAM, as such, there are practical limitations on basic video properties that can be set (resolution, bit depth, …)). But the virual dimension need not be set at its maximum value; it can be smaller. Even if it was set to its limit, the monitors within the Screen do not have to fill that entire virtual space. For example, a conceptual diagram of the one Screen, driven by a graphics adapter, and whose entire Virtual dimesion is represented by the four letter V’s arrangend in a 2x2 matrix (left side of code panel below). Now lets say that the adapter has three outputs to which we attach three monitors (M’s) and that the resolution and etc at which we drive those monitors is such that there are no problems fittng them in an L-shaped configuration within the entire Virtual space of the Screen. A representation of such might look something like (right side of code panel below)

   V   V          M  V/D 
   V   V          M   M 

where by the V/D indicates dead space (not utilized) within the Virtaul space.
Or, perhaps, consider what happens if your adapter does not have enough memory to address the full resolutions (and other driving parameters) of the monitors – you get a dead area displayed on your monitor if its native res. falls outside the dimension of the Screen’s Virtual space! For example, say you could only address a Virtual space of 1920x1200 at some bit depth and refresh, and you have two 1600x1200 monitors that you arrange side by side, you’ll end up with a whole lot of black screen on the real estate of one of those monitors (1280x1200 pixels to be precise).

Tyler K wrote:
> [image: http://paste.opensuse.org/images/77161717.png]
> To help conceptualize these matters:
> - If the OS is the universe, then think of Displays as galaxies within
> that universe

This doesn’t look like a support question. Would it be more appropriate
to move it to chit-chat or somewhere?

If you wish. I does not matter to me