Linked by Thom Holwerda on Sat 15th Aug 2009 17:55 UTC
X11, Window Managers Over the past couple of months, and especially over the past couple of weeks, I've been working very hard to write and complete my thesis. I performed all the work on Windows 7, but now that the thesis is finally done, submitted, and accepted, I installed Ubuntu - and immediately I was reminded of why I do not do any serious work on Linux: the train wreck that is X.org.
Thread beginning with comment 378764
To view parent comment, click here.
To read all comments associated with this story, please click here.
reduz
Member since:
2006-02-25

Hi! I'll clear up this myself. I'm one of the few guys that likely have enough experience programming X11 directly.

The main issue to solve in being able to restart the server is server memory.. you may have pixmaps and other info stored in the server (in video ram), so if X crashes all that is lost. What windows does is keeping a copy of all the video resources in system ram (then is kind of needed anyway if you need to page video ram in and out for stuff like opengl/direct3D). Of course, windows uses more memory for this, because it keeps copies of everything instead of using a paging system, but allows it to restart cleanly.

This is probably not something good to resolve at toolkit level if you want to keep the client/server nature of X11 (it's a lot of work and wasted ram for the client), though maybe it could either exist as someting like an intermediate layer between the applications and server (not so difficult to do). Windows has no client/server nature so it's a non-issue. It's probably not hard to do, but being honest, i had zero X crashes in years and i think most people doesn't either so it's kind of a low priority..

Reply Parent Bookmark Score: 6

brandonlive Member since:
2008-05-31

Windows Vista kept a copy of the window buffers in system memory, but Windows 7 (with WDDM 1.1 driver) does not. Windows 7 uses device bitmaps that only exist in video memory, and if the driver restarts, these are recreated. This does result in the loss of cached off-screen / non-painting window buffers (i.e. most minimized application windows) when the driver restarts, so if you hover on the taskbar icon and look at the preview of that minimized window, it will be replaced with an icon until you restore it. But that's a very small price to pay for the reliability improvement.

Second, Windows does use a client/server design. First, there is the session manager which has a server portion (smss.exe) and a client for each logged on user session (csrss.exe). There's also the separate Desktop Window Manager system, which also has a server process (UxSms service in a svchost.exe surrogate) and the dwm.exe client running inside each composition-enabled user session.

Perhaps you should stick to describing the systems you're actually familiar with?

Reply Parent Bookmark Score: 1

reduz Member since:
2006-02-25

Pheraps you should stick to reading the parent posts before answering something unrelated. I wrote about actual bitmap objects stored in video ram, not offscreen window buffers... you know those referenced with an HDC handle. In the X11 model, those are stored in the server and lost after the connection is broken.

Edited 2009-08-17 00:12 UTC

Reply Parent Bookmark Score: 2