X Could Learn a Lot from Vista, Windows 7
osnews.com
osnews.com
This is unmistakable web forum pseudo-technicalism: rant about your pet bug, dress it up with some technical jargon as if you had an idea about what's actually going on under the hood, flat out refuse to get educated on it, "support" it with some other unrelated issue (here, Evolution), add a comparison to $OTHER_OS, and there you have it.
With all due respect to the X developers, it's nearly 2010. It seems reasonable to demand that resizing a window not crash every open app.
Isn't there something conspicuously missing from that list?
While Windows 7 may be better than its predecessor Vista, which itself was a step forward in graphics architecture, why conclude that X needs to learn from them in particular?
I mean: if Thom Holwerda's thesis is "X.org, start your photocopiers," he could find better inspiration.
I don't know enough about X to have any idea how much effort that would take, and from being on the X list for the past year, I know that a suggestion like that would be ignored without having code to back it up, but I still don't think it's a bad idea.
I HATE RDP. X.org was created to be net capable, you can do full desktop and window forwarding, we don't need this functionality it exists! (Especially because X.org window forwarding doesn't take screenshots)
Why do you think RDP does work by screenshot forwarding? I'm pretty certain it works by forwarding win API calls over a network, but I've never dug into the rdesktop source, so I could be completely mistaken.
On the other hand, the guy's complaints regarding X crashing and comparisons to Aero are apples and oranges, from what I can see (though I wasn't there to read error messages, so of course there's no way to be sure). It seems like his problem with X crashing was one of the GUI itself crashing, in its entirety, whereas Aero crashed when there was specifically a driver issue not directly related to Aero itself.
Aero is able to get around it by having a secondary "legacy" GUI system to back it up, and by having multiple drivers so a "lesser" driver can kick in. X has lesser drivers available to it, but there's no backup GUI system to back it up.
Now, imagine that the fundamental interface between the kernel and the GUI actually crashed (sorry about the hand-wavy way I phrased that -- since Unix/Linux systems and MS Windows systems do it differently, I can't get more specific). What would Unix with X do? Well, it'd fall back to the command line.
What would MS Windows with Aero do? It would fall back to whatever passes for a blue screen of death in the Windows 7 world, because MS Windows basically doesn't have an OS without the GUI. The command line interface is part of the damned GUI in MS Windows.
I'm not saying X is perfect. It does indeed need a lot of fixing. I actually think we'd be better of replacing it from scratch, if we could get everyone on board. I do not, however, think that MS Windows is the model to use. In fact, I think that on a good day, MS Windows is only nearly as good as X. In short, X and the MS Windows GUI stack both suck, but at least the way X works with the OS is marginally less stupid than the way MS Windows works with its GUI systems.
In windows, if the application state tracker crashes, you're screwed, but that since the state tracker doesn't seem to depend on any third-party drivers, it's easier to verify its functionality and try to ensure its stability.
As for a rewrite, I'm not really sure how much of old XFree is still around. X has been modified in the past few years to no longer require configuration for its input (or, technically its video, but I still don't trust that). It supports multiple pointers, and in Linux on Intel, it doesn't even have to do initialize and exert low-level control over the video card. Things really are looking up for X, and I think your rewrite might actually be happening as we speak. It's just incremental, and with constant releases :)
It only looks that way because of the fact MS Windows Vista has two whole window managers integrated with the base OS itself, and it appears to run them both at the same time so that when one fails the other's there to pick up the slack. In fact, I'm not entirely sure Aero is a windowing system -- it may be an effects feature package layered on top of the one and only windowing system. If that's the case, the described behavior actually has nothing to do with applications being able to survive the crash of the windowing system, because that's not what actually happened.
Of course, this is all speculation (since I don't have access to the source code for the windowing system on Vista, for instance), but it's speculation based on what I've observed and what was claimed in this extended complaint about how X Windows on Ubuntu is too primitive.
> As for a rewrite, I'm not really sure how much of old XFree is still around.
Starting from XFree probably wouldn't do much good. The whole thing is a mess, from what I've seen, and needs "rearchitecting" (to buzzwordize the discussion). Then again, I'm not an X Window system expert, so maybe I'm missing something important.
> Things really are looking up for X, and I think your rewrite might actually be happening as we speak. It's just incremental, and with constant releases
As long as things get better rather than worse, I guess that's a good sign. I'm just not sure that the changes I've seen are indications that it's moving in a better direction; it kinda looks like it's just moving in a different direction, with some of the changes (but not all) being improvements.
Its free and more or less duplicates RDP on *nix. It even allows multiple persistent sessions.
People don't want ot learn what's going on under the hood. I cringe at the thought, but they may not have the aptitude to comprehend it even if the did want to learn it.
Microsoft treats their consumers like their consumers don't know anything about computers. Most of them don't. Linux users are geniuses compared to most computer users and they are very curious. They also know enough about the technology by going through the ranks that they are apologetic about problems that occur. "Oh it's just a bug, here let me restart."
Microsoft on the other hand writes an OS for any PC and any user. Any hardware combination and an almost infinite set of software installed and perhaps running simultaneously.
I don't think people really give them enough credit for this enormous accomplishment. nix is written for the experts who know how to use the tool correctly. Try building a tool for people who know nothing about the tool or what it can do, the power it has, or how to not make mistakes with it. It's really* hard.
*nix expects its users to know how to use it.
In the same sense that Delta provides plane flights for people who don't know anything about basic preventative aircraft maintenance, the lazy ignorant bastards.
The computer is not an end goal. The software is not an end goal. Knowing arcane trivia about the difference between the kernel and userspace is not the end goal. The end goal is get your work done better and faster so you can turn off the machine and punch out for the day. Microsoft gets that in a way that few OSS writers do.
Compare hot keys and menus. Menus are slower and take several layers of navigation. Experts of any kind of software though, learn the hot keys. Novices use the menus.
There are actually a lot of things you can do with Microsoft from the command prompt or power shell. Microsoft systems are quite flexible in this way, similar to *nix. You can do scripting and batch files and all that too. It's just not as popular to hack on microsoft like that.
> Compare hot keys and menus.
I agree with your entire point about hotkeys. On the other hand, compare systems that allow both (to any desired, configurable degree) with those that focus on menus (and other "user friendly" stuff) to the extent that good and/or configurable hotkey capabilities suffer (e.g., MS Windows or KDE 4).
> There are actually a lot of things you can do with Microsoft from the command prompt or power shell. Microsoft systems are quite flexible in this way, similar to *nix. You can do scripting and batch files and all that too. It's just not as popular to hack on microsoft like that.
It's also more of a pain in the fourth point of contact to do that kind of thing on MS Windows, though, and it really is recognizably less flexible than on Unix -- in part because so little of the software on a given system is reasonably scriptable in that manner.
Strictly speaking, that's not true. Microsoft doesn't generally write an OS that is compatible with hardware; hardware manufacturers make hardware that is compatible with Microsoft. Microsoft may do what it can to make their job easier, but so does X.org.
So, while it may be true that this is a blocker for Linux in the consumer pc market, and it may be true that Linux won't ever become a major player in the desktop market, It's not the X.org or Linux developers' fault that that is the case; it's the market's, and statements like "X.org has a lot to learn fro Vista and Windows 7," are really unfair.
However, the author of this article is not a non-technical computer user, despite his claim to be one; if you're aware that VLC has "output modules", one of which is "XVideo", by the standards of the masses you're a geek, period. Claiming to be "just a user", and at the same time spouting various kinds of technicalities that "just a user" would have no idea about is actually another symptom of the web forum pseudo-technicalism that has infected "IT website" articles in this vein.
*nix is a technological paradigm that allows certain possibilities, the most prominent of which has historically been building "by geeks, for geeks" operating systems. In years of reading through discussions similar to this one, I have yet to see a convincing argument for why it can't possibly be used to build systems for non-geeks to use as well. And along those years, Apple provided very strong argument, if not solid proof, for the opposite, in the form of OSX.
Great, some X drivers suck. That's no excuse for losing data.
I'm also saddened that a post asking 'where is the code' as if that's a prerequisite to having an opinion on software is being nodded up on Hacker News.
Do you by chance also have an opinion on politics? Have you drafted a bill to support these opinions? No, I didn't think so.
Windows graphics drivers that suck can also make you lose data. And neither Microsoft, nor your computer vendor can prevent you from installing drivers that suck, and losing data as a consequence. The same goes with X: if you use a closed-source binary blob that the X developers cannot diagnose, fix or improve, that simply doesn't work with XVideo in a composited environment, you can't blame X for the data you lost. Or would you blame Microsoft for the data you lost because of a crappy graphics driver that they didn't ship or lead you to use?
As for "Where is the code?", my point was: without access to any in-depth technicality about how the Windows graphics stack actually manages to isolate crashes (assuming that it's actually a merit of it), claiming that Microsoft has "shown" how it should be done and all X needs to do is follow is rather off the mark. Microsoft may have implemented a high-quality graphics stack that's more stable than X, at least in certain scenarios. That doesn't mean that they have illustrated how it's done in a technical sense, or that their techniques are actually applicable to X, which has an entirely different architecture.
No, actually, they usually can't. As the article states, drivers that crash don't stop the presentation server from working. Did you read the article?
My point with the Windows graphics driver example is that if you plug untrusted / untested / uncertified / crappy software into otherwise stable software, you can't hold the latter responsible for the unpredictable behavior you may get. It's not specific to Windows, X or any other software or platform.
I disagree. Stable software is well designed enough to not let unstable software break it - you have evidence of this in the article, although you as you've mentioned you chose not to believe it.
1. Windows 7, which is indeed a great product - very polished and with a very advanced graphics stack, nevertheless has problems. I've been running it as a secondary OS for some things for a while, and it definitely exhibited problems, in particular with video playback. Media Player crashed, requiring me to reboot before I can play video again, the desktop manager crashed many times, making it impossible to do simple file operations without restarting and driver management was often very difficult and problematic. Idealizing W7 (or Vista, or OS X) does nothing to advance the state of Linux or computing in general.
2. Sure, it's absolutely fine for users to complain about low quality software, but if you want to make a difference and improve things (and presumably, if you bother to write an article about this, you do) the more effective way to do that is not to vent your anger and start a flame war, but actually deal with the real problems. Are Evolution, Totem, VLC or X.org buggy? Help identify the bugs and report them to the projects, so that they have a chance to fix them. When the fix is out, help testing it. You don't need to be a nerd or a geek or a dork or anything to do that - just a good citizen. It takes relatively little of your time, and you'll know you've actually done something to improve things, which will benefit you and the rest of the world in the future. That's not something you can do with W7 ot Vista, and that's where the power of the free software community lies.
Complaining is so easy, and can sometimes feel fun (in a very immature and destructive way), but if you're not prepared to do anything to improve the situation, don't expect it to improve itself.
1) Resizing a window shouldn't cause a crash - this is true, but very specific to his setup; most users will not experience the behavior he saw here.
2) If X crashes (which it inevitably does from time to time), it should not also kill every app you have going. This one is a huge huge problem.
I've had exactly one crash. In all that time. This machine is on 24x7 and on average has 10-15 (large) windows open on two screens (soon to be 4).
X is absolutely rock solid in my experience, but as with all anecdotal evidence that doesn't mean much.
When you start playing around with custom window managers and all kinds of other esoterics I don't doubt that it is possible to crash X (the time I did it it was when I tried to set up an X server across 4 displays on 4 different computers, http://pics.ww.com/v/jacques/projects/screen/dscf1072.jpg.ht... ).
I was pissed off but I was really asking for it.
Maybe Vista 7 should learn a few things from X...
I also like "rolling the windows up" like a window shade (available on some themes. I dunno...I just do!
This may be anecdotal evidence, but then again so is the article.
No real content apart from perhaps a few bug reports.
Sorry, but Vista does not solve that problem, I don't have any experience with windows 7 so I can't comment on that.
All I know is that even if I do something simple on a windows box it requires a reboot. Which pretty much happens every couple of days when you really work a lot with windows, which will reset the counter but will not count as a 'crash'.
But for the majority of those cases you'll have very little choice but to reach for the power button and keep it pressed for 10 very long seconds.
Again, this is anecdotal, but I have never seen windows recover from any kind of crash in a graceful way.
There are several layers to this stuff, hardware, driver, display server, window manager + applications.
If any layer 'below' your application crashes you're lucky to keep your data (whatever the operating system). Now, I don't do the things the author refers to (switching screen modes to full screen and back and stuff like that), which might easily be why I never see these issues and for him they are common.
But to suggest that in windows (where the lines between the layers are much more blurry than they should be) is 'crash proof' in any way shape or measure has me chuckling a bit.
My linux machines (servers & desktops) go down when:
- the power fails
- I have to move
- I upgrade kernels
- hardware failures (mostly disks, occasionally a power supply or a memory bank)
Other than that they're on, up & running 24x7 year after year.
How many machines are you running Vista on, anyway?
Now, I have lots of Linux crash stories. But I run a lot more Linux servers than you do, so of course I would.
We have exactly one machine running vista here, it's fairly new and it has crashed more than all our linux machines combined.
So, just out of curiosity, how many linux machines do you have ?
I won't tell you guys how to troubleshoot your crashing Vista machine, but the OS isn't at all the first place I'd look to find the problem.
Most Vista boxes don't ever crash. Mine certainly don't. On the server side of things (Windows Server versus RHEL, say) my impression is that Microsoft outcompetes Redhat on stability. Just not on cost.
Anyway, a few dozen is pretty good, more than most people have.
I figured you were owner of a large outfit that runs thousands of machines.
That's when you start to get interesting statistics.
We strip the kernels down to the minimum we need on machine installation and we always try to find out what caused a problem.
On top of that a buddy of mine wrote a piece of software he calls 'flame', which is used to manage 300 machines.
Sure, occasionally one of those will go down. But post-mortem analysis will invariably point to some piece of hardware that broke. Either a cpu, a memory chip or a drive hanging on by a hair. I think the trick to managing large numbers of servers and not being in reboot hell all the time is to find a recipe and to stick to it, and good quality monitoring tools to give you an early warning.
And if you are running on cheap non-ecc motherboards for servers that really is asking for it.
I like to sleep well :)
The last crash that I remember was in February this year, a faulty memory chip that had been registering complaints for a while in the mcelog (but due to a human error we missed it). We had just upgraded a machine that was already in production and we did not burn in the machine out of service. Stupid mistake...
We burn in our new machines religiously and we only use top quality hardware. Still, during the burn-in phase we have a good 10% hardware failures.
But once the machines pass burn in - and we really give them hell - they perform pretty good.
Since we're in anecdotal territory anyway, once during the burn in testing of an ethernet switch over the weekend we came back to the office on monday morning to find the test frozen.
The switch was no longer passing data in or out. A reboot would not revive it.
We opened it up to find a crack running straight down the middle of one of the chips... so much for that particular brand of router :)
In that order. Then I'd start poking around for OS issues.
The author suggests that windows has 'the solution' for these kinds of crashes, that is why saying but windows does it too is relevant, it somewhat negates his assertion.
If windows would really be rock solid I think I would have a different experience, and - sadly - I'm not alone in that.
What the underlying reasons are is anybodies guess, but by bitching about it it is not going to get solved.
His parting shot is:
"I'm sure the blame-game will be played thoroughly in the comments, but it will only detract from the real problem here. The Linux desktop needs a modern, robust, and advanced graphics stack, which makes sure that crashes and bugs remain isolated, without them affecting the users' work. Microsoft has shown us how it's done, now all the X world needs to do is follow."
Whereas if he would simply contact the maintainers of the code with a reproducible error and a stacktrace I'm sure they'd be happy to help.
I installed ubuntu 9.04 on my HP mini-note 2133 (not a quad-core 4GB powerhouse). I don't use evolution but everything else run perfect for me. I too installed VLC and it plays videos well enough (some minor problems when jumping forward while watching HD).
It never crashed on me. Oh wait.. it crashed 3 times after I installed conky. First time it just happened. I made it happen the second time to check, third time to cofirm.
Yeah X.org some times pisses me off but gimme a reason why I should complain? It gave me all these things for free & there should be lot's of people working to improve it.
I honor the effort of everyone who made this free OS (all the tools together) possible. I don't blame at little problems, I just point them out. I contribute when I can.
I use Ubuntu on a laptop when I'm at home (rarely) couch surfing. It's miserable. Slow redraws, down syndrom-ish user interfaces, the whole thing feels and acts cheap.
While the X protocol has certain awesome advantages, it's a miserable choice for desktop. I get and appreciate the network transparency of it all, but shit, VNC is often faster for me than forwarding X over SSH.
Are there alternatives? I dunno, but graphics drivers, displays and plumbing are distinct advantages for both Windows and OS X when it comes to desktop interaction.
Why are you using Ubuntu, then? I suspect it's more your choice of distribution and GUI environment that's at fault for your unsatisfying user experience than anything inherent to Linux or X. On FreeBSD with AHWM (instead of Ubuntu with GNOME), I don't have such issues at all. The only stuff that's slow is waiting for Firefox, OO.o, and the GIMP to open the first time I open each of them after starting the computer. On the rare occasion that I use MS Windows, by contrast, I tend to spend a lot of time waiting.
I can't stand GNOME and KDE (especially KDE 4). The sitting around and waiting for stuff to happen is far too reminiscent of MS Windows for my taste.
> I get and appreciate the network transparency of it all, but shit, VNC is often faster for me than forwarding X over SSH.
Are you using SSH compression? I mean, sure, X over SSH is slow across the Internet, even with compression, but then MS Windows Remote Desktop is no blazing-fast, realtime operation under those circumstances, either.
> displays and plumbing
I'm not sure what you mean by that.
Actually it is. I can work with remote desktop sessions over a cellphone link without having too much latency issues.
Remote Desktop is definitely a result of good engineering. Add support for local drives, printers, clipboards, USB devices etc and it's one of those very neat things which makes me love working with multiple Windows servers remotely.
1. you haven't provided a comparison with X, which is sorta the point -- so maybe X would be blazing fast in your circumstances too
2. if what you say is true, you're obviously operating under different circumstances than me (or my girlfriend who has to use RDP all the time for work)
3. I have no way of knowing if what you said is true
I've tried both Gnome and KDE, I've also tried some alternates. They all suck in comparison to Windows and OS X.
> I've tried both Gnome and KDE, I've also tried some alternates. They all suck in comparison to Windows and OS X.
In my experience, KDE (pre-4.0) and GNOME are marginally better than MS Windows, and slightly worse than MacOS X -- but most of the rest of window managers are significantly better than both MacOS X and MS Windows. Then again, if you're specifically speaking of some kind of interaction between your window manager and X forwarding, I really don't know, since I've never actually tried using KDE or GNOME in concert with X forwarding over SSH.
While I'm obviously not OK with X crashing and taking running apps with it (doesn't happen to me running arch+xmonad), it's still better than a bluescreen. Anything I was running in screen is fine, firefox will re-open my tabs, etc.
The API and the way you think about drawing in OS X match the concepts of PDF. There is a "display PDF" ability, but down at the nuts and bolts level it is just similar concepts.