There's also an implementation of GDK, or something. (I don't completely understand GDK vs. GTK.) Take a look at the GTK+ [directfb.org] link on DirectFB's homepage. Apparently we can also run GNOME apps on DirectFB.

Not exactly. GDK is an *abstraction* layer with multiple backends, the X11 one being the most prominent. To quote from the GTK/GNOME developers' website: "Instead of directly building on top of the X Window System, GTK+ introduces an intermediate layer, GDK, which isolates GTK+ from the details of the windowing system. This simplifies things for the programmer and increases portability." See the webpage [gnome.org]. Through GDK backends, GTK has been ported to MSWindows [gimp.org] as well as DirectFB [gnome.org](see also here [directfb.org]).

That was my point. KDE shoudn't need much X11, but no KDE programmer has written any KDE apps without X11. Have you ever tried to write portable code with only one machine to test it on? It isn't easy.

While that is true, some parts of KDE do depend heavily on X11 and its API. One large part of this kscreensaver, KDE's screensaver engine. There are much smaller dependencies on X11 scattered around the rest of KDE.

Quite frankly I haven't got a clue how kscreensaver could be implemented without X11 yet, the DirectFB authors would have to implement something equivalent to the Xidle or MIT Screensaver extensions, or allow direct polling for information about the open windows/current mouse position (what kscr

Consider this: What do you really NEED X for. Try to think bigger than unix for a minute.

Yes, X has remote display. That's a really useful and flexible feature in some situations, no doubt about it. And from a technical point of view, it's extremely elegant.In reality, though, to a great many linux users, it's a neat trick that you don't necessairly NEED.

We use QT or whatever and try to design desktop systems (KDE, Gnome) which really just use X as a way to load up graphics primitives... those same systems could equally work on something else, with some great benefits in terms of speed.

From a GUI perspective, if you use all KDE apps, for instance, things have a very nice consistent feel to it. Same with gnome. When you start mixing things, plus mixing in old X apps, you just detract from an overall experience.. so let's come out with a fast, standard display system taht's NOT x.... and use X rootless for those legacy applications we need.

There is no reason why you can't run a X server over the top of a directFB desktop. This would enable applications that support the new system to run fast locally while X based Apps (remote and local) can take to the X server.

There are plenty [google.com] of X servers for Windows and MacOS [xdarwin.org] that plenty of people use already.

Yes, but I want to run the same apps on an X server on any other machine on my network. The directFB apps won't do that. Once we start down an 'applications bound to a single framebuffer' path we're all stuck using KVM switches, VNC, and similar kludges; or we have to plant our butt in front of each machine to run graphical software on it. And both options suck.

I have found that people who hate the X Window System are people who don't understand it. Many come from a PeeCee background and still don't get the idea that the network means more than 'that drive over there on a server' and HTML.

Plan 9's. The graphics, mouse and keyboard devices are standard devices that can be mounted from a remote filesystem; the advantage being the windowing system does not need to handle the network layer. And since each process has its own filesystem namespace, you have a bunch of different consoles and each program accesses its one at/dev/cons.

The entire system, including the default program that runs in the window the equivalent of xterm [Far89] with `cutting and pasting' between windows is well under 90 kilobytes of text on a Motorola 68020 processor, about half the size of the operating system kernel that supports it and a tenth the size of the X server [Sche86] without xterm.

The components of Plan 9 are connected by a common protocol based on the sharing of files. All resources in the network are implemented as file servers; programs that wish to access them connect to them over the network and communicate using ordinary file operations. An unusual aspect of Plan 9 is that the name space of a process, the set of files that can be accessed by name (for example by an open system call) is not global to all processes on a machine; distinct processes may have distinct name spaces. The system provides methods by which processes may change their name spaces, such as the ability to mount a service upon an existing directory, making the files of the service visible in the directory. (This is a different operation from its UNIX namesake.) Multiple services may be mounted upon the same directory, allowing the files from multiple services to be accessed in the same directory. Options to the mount system call control the order of searching for files in such a union directory.

8½ serves a set of files in the conventional directory/dev with names like cons, mouse, and screen. Clients of 8½ communicate with the window system by reading and writing these files. For example, a client program, such as a shell, can print text by writing its standard output, which is automatically connected to/dev/cons, or it may open and write that file explicitly. Unlike files served by a traditional file server, however, the instance of/dev/cons served in each window by 8½ is a distinct file; the per-process name spaces of Plan 9 allow 8½ to provide a unique/dev/cons to each client. This mechanism is best illustrated by the creation of a new 8½ client.

When you do run a QT or GTK app over remote connection, the remote (server) library renders the widgets to x primitives which are then sent over to the local (client) computer to display.

Why is it that (to my knowedge) nobody has done this at a higher level? If the client already has a QT library why not simply send over a 'draw widget' command to that library, creating a proxy out of the server's library.

People have done things like that,
and it sucked.
The reason is that it requires any remote machine
to have a compatible version of Qt and GTK and
every other damned toolkit someone might want to
use. This is an administration nightmare at
best, and impossible at worst. (What if you have
two apps, one on each machine, and they both
require incompatible versions of some toolkit?
Then you simply CAN'T display either
app remotely
without jacking up the other app, or adding
some overwrought version management system.
What if some app you use requires the very
latest version of its toolkit for some interesting
new widget it adds -- do you really want
that to force an upgrade on every machine
you might want to display that app on?)

To make this a little more concrete, let me
make a little analogy.
Imagine you have a web site, and you want to
push more processing to the client. So, you
change your dynamic PHP code into JavaScript
code. Since you now no longer have the power to
just say "this must run under version X of
PHP, so we're putting that on our server",
you have a choice: either make your
app run in every javascript implementation that you might encounter,
or place restrictions on what version(s) of
javascript can be used
to visit your site. If you had left it in
PHP, there would be some disadvantages (slower,
etc), but
at least you'd know it would work with any
browser.

Now, naturally, the "any browser" thing is
a myth. There are quirks with
different HTML implementations too. But this brings out an important
point. Somewhat unlike HTML,
the great thing about X11 is that
it does something really simple.
It doesn't concern itself with complex
details like what a doubleclick means,
what a button is, etc. It stays at a nice
low level. As such, it's more
easily possible to
reach a point where it's matured and it's
stable. The X11 that some person has on their machine
will be compatible with everyone else's, by
and large, because it's at a low
level and can be stable
and mostly unchanging.

So, while X11 isn't a paragon of simple,
elegant, modern, clean design, it or
something like it (with the same
goals of sticking only to universal
primitives, but maybe also with support
for changing resolutions, etc.) is a very beneficial thing
for the reasons similar to why
Swiss banks are a beneficial thing.

X has the extentions protocols/API's for that. For example 3D (openGL) was added later to extend the X protocol with more high level primitives, and there are many more.

The drawback is that such X clients only work if the remote client has the appropriate extentions loaded.

It is well possible to develop QT or GTK X extentions. However for normal uses on a LAN any 2D application is fast enough to make it totally superfluous, and thus it makes to sense to throw away compatability with all X servers. Only for 3D, for video streaming and other special applicaions it makes sense.

> Yes, X has remote display. That's a really useful and flexible feature in some situations, no doubt about it. And from a technical point of view, it's extremely elegant. In reality, though, to a great many linux users, it's a neat trick that you don't necessairly NEED.

Sure, but what about the rest of us?

> From a GUI perspective, if you use all KDE apps, for instance, things have a very nice consistent feel to it. Same with gnome. When you start mixing things, plus mixing in old X apps, you just

Network transparency is a beautiful thing. I admit, my needs are a little exotic, but I happily run my computer from several dumb terminals (stripped down laptops).

Why maintain a stable of computers when you can have one ubermachine (and of course a few cruddy ones for DNS and webcaching.) The wife has a copy of Win4Lin for Quicken and Office. And I never have to worry about being booted off the "good" computer.

Hell, with my cable tuner in the big computer I can actually watch TV over the wireless. That is of course, if I had cable. I'm practicing living on Internet and DVD's alone. Apparently I missed something called "Reality TV."

The thing is, while this is excellent advocacy, almost no one actually does this. Most people, at home, in a small business, or in a large corporation, have desktop machines, not thin client GFX servers. And they want to keep them.

There's a few legacy apps where X is required, but MS own's 90% of the desktop, and the desktop is not migrating to any *nix until the *nix's drop their 10 year old X server technology and move to something

Why do ex-windows users keept claiming this? It is utter nonsense. X window has nothing to do with slow spread of unix on the desktop.

Do you really think business users are disturbed by too little FPS for 3 D shootere?!?

Yes, Motif is ugly. But it is not ugly because of X, but just because it is ugly. X is just a way to draw on a screen (locally or remotely). It is more than fast enough for any 2D needs one might have nowadays, even through a LAN. There are enough alternatives to Motif nowadays, but no single de facto standard has established itself yet. Do you think that by removing X and its network transparency, some elegant GUI toolkit suddenly establishes itself as de facto standard? Also on a direct FB it is possible to run many GUI toolkits.

There are more than enough hardware supported (2D) X windows drivers. How can you claim that X was designed for and ran well on a 8 Mhz 68000 CPU, and does not run well on current machines which are 100 times as fast?

As for people wanting desktop machines: "people" in fact want windows machines, because that is what they know and most are not interested in computers. However most incentives for introducing unix on the desktop in companies is to save cost, therefore the IT department/architecture forces the users whether they like it or not. Thus "thin clients" are introduced. Not the pure thin clients that are only a network terminal, but those that have the apps that are used most (office suite) installed locally and all other apps remotely, and running remotely via X.

That is a great solution, because it saves the IT department loads of local support and configuration. New version? No need to distribute software to 10000 desktops, just upgrade on a couple of servers. Why do you think even Microsoft has introduced "terminal server" after years of denial? Only when citrix got really popular they had to discover that many clients (i.e. large corporations) do want a mixture of desktop and thin clients.

Summary: it is an illusion and unfounded claim that X somehow prevents a migration to desktop unix. It is not because of, but rather in spite of X windows that migration to desktop unix is slow.

Yes, Motif is ugly. But it is not ugly because of X, but just because it is ugly. X is just a way to draw on a screen (locally or remotely).

The guy who chimed in on the xfree86.org mailing list said Motif looked like it did because it was designed to use the X protocol efficiently. Everyone else on the list seemed to agree that when a "modern style" GUI is used (i.e., one that looks more like Windows), the number of draw primatives just skyrockets, and performance suffers.

It is more than fast enough for any 2D needs one might have nowadays, even through a LAN.

I've used an X server running GUI apps through a lan and performance sucked.

There are more than enough hardware supported (2D) X windows drivers.

Alan Cox on the XFree86.org list said in his experience laggy GUIs were caused by lack of 2D hardware accelleration in the drivers being used. Many 2D accelleration techniques are apparently proprietary. Someone mentioned a couple of drivers (I think for ATI) where the author had reverse engineered the 2D hardware accelleration by hand tracing through the binary Windows drivers.

Needless to say, reverse engineering drivers by reading assembly language is a tedious process that doesn't happen for every card. There are lots of drivers out there. There are not a lot of good hardware accellerated drivers.

How can you claim that X was designed for and ran well on a 8 Mhz 68000 CPU,

Don't bug me, that's what the guy from DEC said on the list. One of their targets for a server was a Macintosh Plus (remember those?), that was a new machine at the time in the lab, circa 1986 or so IIRC. When they got X performance as good as the native Mac GUI, they felt the were doing well.

and does not run well on current machines which are 100 times as fast?

The whole list agreed here that the X desktop under both Gnome (GTK) and KDE (Qt) "feels laggy". I'm still running Windows becuase of this crap, I have no idea what a heavily loaded X server currently runs like.

As for people wanting desktop machines: "people" in fact want windows machines,

People (users, whatever) will notice a difference in performance however. If you go from a fast 2GHz machine that is at your beck and call, to a server that everyone shares, you are going to hit more slowdowns on that server. The server gets loaded with lots of people, usually at crunch time. For us it was running compile jobs. The server slows down just when you need it most, repsonse time decreases, users get frustrated, and upgrading the server is a major expense and hassle.

Adding users with a PC is easy. You buy them a new PC. No other users are impacted. There's a flat per seat charge, you never have to buy extra capacity until you actually need it. Performance never varies for each user. It's predicable and therefore people just like it better.

I would like to also point out that the human eye can only see 12 frames per second. Motion pictures are shot at 24 frames per second. The picture on your CRT refreshes 60 times per second. Any difference you percieve in frame rates above 24 are in your head, above 60 are REALLY in your head because you aren't seeing them.

While I like the power that X provides and agree (at least in part) with your earlier posts, I have to call you on this one. I can see a difference between a monitor running at 60Hz

Well, there is the odd moment when it's a nuisance to not be able to run a remote X application. Like when you want to log into another system and run GVIM. But yeah, you're right, it's not worth keeping X around just for those rare circumstances, all of which have another solution.

It's worth remembering why X is a network-based system in the first place. The X server software we use now was originally meant to run only on a dedicated terminal. Some of these were actually manufactured (I think there might

"Well, there is the odd moment when it's a nuisance to not be able to run a remote X application."
For you maybe. I've worked in some very heterogenous environments where X was indispensible. I'd like to see more use of X. For example, I think it would be great if I could redirect the Tivo GUI to my desktop.

"It's worth remembering why X is a network-based system in the first place. The X server software we use now was originally meant to run only on a dedicated terminal."
X is a network based syste

From a GUI perspective, if you use all KDE apps, for instance, things have a very nice consistent feel to it. Same with gnome. When you start mixing things, plus mixing in old X apps, you just detract from an overall experience..

Umm here's an idea for you then... don't mix them! No one's forcing you to.

Instead you want to advocate a system where those of us that disagree can't mix them? Why is that?

Anyway, as you should realise but apparently don't, it won't work, because you can't force us to use it

Yes, I'd much rather have alpha channel transparency than remote display. I assume DirectFB has an alpha channel because it is so prominant on their screenshoot, but is it really or is it the fake freeX86 transparency?

This is the only piece of "eye candy" that I miss from XP/2000 and I find that it is actually useful. And why after all this time hasn't X gotten an alpha channel? It seems like a lot of poeple would like this feature. Plus it makes using a terminal soooo much easier on the eyes.

1. remote displays are the thing that makes X "slow" and "bloated"2. That X is slow and bloated in the first place (put GTK or QT on top of DirectFB and you'll see the same "slow" "bloated" behaviour)3. That remote displays are some obsolete technology that no one really uses any more? (If that's the case, then how come even Microsoft have finaly started putting the functionality into it's desktop operating systems?)

In reality, though, to a great many linux users, it's a neat trick that you don't necessairly NEED.

In the midst of citing reality, you're ignoring reality. First of all, Linux isn't the only OS that uses XFree86, X11R6, or another X11 based windowing system. Heck, it ain't even the only free OS that uses it.

Second, even supposing Linux will achieve it's goal of "World Domination", where everyone must use Linux or be branded a luser, it's still ignoring the fact that Linux is a Unix-like operating system, and to confine it to only the home based game machine is to deny it 95% of its potential.

Third, that "neat trick" doesn't cost you a damn thing if you don't need it. The only thing holding back XFree86 performance is the fact that it must operate in userland.

I've heard the phrase "why keep it of 95% of the people don't use it", referring to the remote network capabilities of X11. Well, why not turn that statement on its head? Why support SMP in Linux, if 95% of the users don't use it? Heck, why do I need snowchains for my car if 95% of the time I won't be driving in snow?

Fact of the matter is, most people using Linux, BSD or UNIX outside of the home will want and need the networking capabilities of XFree86. If you want Linux to be confined to home game machines, then go roll your own distro. But in the meantime a lot of us want the capabilities of XFree86.

Isn't this backwards, going back to a dumb (albeit accelerated) framebuffer? X does much more than just push pixels. If you take a look at how Microsoft does their gui these days, you'll find that it's a lot more like X these days than a framebuffer.

I own a zaurus and was initially impressed with the Qtopia/OPIE user interface. That is until I hit that one design flaw: They write directly to the framebuffer. This means I can't mix and match gtk programs with qt programs. This means I can't develop any non-free apps at all, since QT is GPL and that's the only thing you can run on Qtopia.

As I disected QT/E, I found that it pretty much had to duplicate many things that X does well, like windowing. Yep. And event handling and exposure stuff. Personally I think the Qtopia guys would have been much better off using the mini KDrive X server and use a modified version of QT/X11.

As soon as I can, I'm blowing away Qtopia and not going to OPIE but rather to GPE, which is based on X. A much better solution. Check out their screenshots if you don't believe me how well X fits a handheld.

My point here is that I don't think this directfb idea gives me any more advantage than X does. Sorry. Furthermore, we'd just need an X server on top of directfb anyway to run our main apps, and that is essentially duplicating the drivers that X11 already uses to talk to the framebuffer.

The best improvement I think we could bring to X11 would be a special mode where each window is a live opengl surface. That way we wouldn't need to do "exposure" events and other things. Window dragging would be silky smooth. Other 3d effects could follow. Forget the frame buffer.

I think you are missing the point.. we aren't saying "This is a drop in replacement for X".. it's NOT X. I'm saying, to build desktop GUIs, we don't necessairily need to use X as a base.Yes, that might mean that only apps written for that gui would work.. but that gui could be, say, QT (as the article is about) or something else.

See OSX for an example. Can I run X apps? Sure, if I fire up the X server. ANd they run just how you expect them to, they look the right way, and everything... but the apps that work really well use the native display library, not X.... and they work even better. And no, it's not because the X server sucks, in fact, the X server is quite good.

We are adding so much stuff on top of X we have to question if we really need what X provides, and if it can't be better provided better another way.

Ya know... most people here "get it". It doesn't change the issue of applications. It is going to be harder to get the (li|u)n(u|i)x world to switch off of X than it is to get the Windows world to switch to Linux.

Switching from Windows to Linux still provides you with probably 95% application parity (MS Office -> OpenOffice, etc). Switching from X to DFB is probably going to be along the lines of 20% application parity.

It isn't that everyone loves X (although many do), it is that DFB is not currently

Sure, average Joe Homeuser doesn't care if his GUI networks or not, any more that he uses Citrix on his home Windows box. But in the workplace where centralized configuration and personal desktop mobility are drivers of lower TCO, a network capable GUI is essential. WHy the fsck do you think companies spend all that money on the likes of Citrix anyway?

I'm in a situation where I don't have physical access to macs, but I have to develop on them. Well, since I'm not on console, most of the OS is useless to me - particularly development and debugging tools like MallocDebug. I wouldn't be in this situation if it used X11.

Unless you used some other remote display tech like VNC. Which is freely available for OSX. Apple has some remote display stuff too, but I've never used it.

"The good news is that they're not going to do that. If it ain't broke, don't fix it."

Well, considering one of the founders of the XFree86 Project (and board members) has said that the *nix desktop needs to be replaced by a direct rendered model with an X interface on top of it (exactly the same thing but with faster local rendering at the cost of nothing) I would like to call bluff on your "If it ain't broke, don't fix it."

Because according to (at least one) XFree86 founder, it is broke, and it does need to be fixed.

Don't get all hopped up over this. Assume that this go throughs. Then what will happen will be to move from X over SSH to VNC over ssh (vnc becomes a directFB). The speeds will be just fine (possibly better depending on what you are doing) as would the security. The only issue that I can think of would be the varied input devices that are possible with X that are with VNC.

I don't want a whole bloody desktop with my remote X, thanks. I want a window. I want my emacs window, or my gvim window. (I actually do use both). I want an xterm, or a commercial product like ArcGIS with a single (fast) remote window. VNC is *not* an acceptable substitute for network transparency.

And to a little more fuel to this one, using VNC requires a Framebuffer on the server(in this case the Farm running appliations, not the Display in normal X terminology), drastically increasing memory requirements.

With X the only memory needed on the server is the memory needed for the application itself, since all of it's drawing routines are done directly to the computer running the display.

Give it a try for yourself, Fire up the VNC Server on a unix system (Windows Users can't have 2 desktops on VNC anyway, so they don't get to complain), and check the memory usage for that, it should be approx Width X Height X Bits Per Pixel. (plus the overhead of VNC) Now compare that with the None needed for X, and I'll take X any day.

I don't know about your PHB, but my PHB is hornier than a three-peckered billy goat. It's the nature of the leadership type to be keen on sexual conquest. If your PHB isn't an open pervert, I'd start looking for a new job: your company or division is doomed.

I don't care how motivated or energetic you were as a teen -- you just didn't have the experience to write really good code. If you can't see the difference, you still haven't got it.

That's almost complete nonsense, but not quite. It's true, people that age usually aren't capable of doing an entire project well. They need someone with more experience to see the whole picture and sort the wheat from the chaff, to serve as something like an Editor - like Linus does for instance. But young people are perfectly capable of writing damn good code, and if you can't see that then it's you that doesn't have it - it being objectivity.

How dare he exploit that young woman like that?! Does he really think that putting a picture of a young, attractive, nubile woman in a suggestive pose is going to attract the attention of a bunch of nerds?

This is unlikly. The avarage X user (hell even the KDE fanactics) won't want to give up all the nice features of an X server. Who wants to use only QT applications? That cuts out most commerical software for linux, and most OSS.

DirectFB has a multi-application core, and also a specialized X server that runs on it. You can run GNOME on it already, adding Qt/KDE to the mix only _increases_ the number of apps that can be run on it natively.

And so far as the "features" of X... the only feature X has that DirectFB doesn't is network independence, which very few users need, and those who do can use VNC or the DirectFB X server.

While I've grown accustomed to X-Windows' ideosynchronities, I've always thought that it would be a good idea to reengineer the whole system from scratch to take advantage of today's hardware and UI concepts. X-Windows 4 has been a vast improvement, but I'm talking about something more like OS X where the whole thing is rewritten to be very smooth and responsive to user input.

If this is a step in that direction, and it sounds like it is, I'm all for a decent alternative that isn't slowed down by having to be a swiss army knife. Especially if it makes resolution switching, 3D graphics, and direct screen drawing less of a hassle.

Nobody except people who use X over the network extensively are making claims such as yours. There are many people who do extensive GUI research and programing contradicting what you are saying. the KDE and GNOME projects have both showed interest in direct rendering models. There is a HUGE project of people doing exactly what the above link says. Implementing a direct rendered GUI with an X layer atop for remote display. There is no reason that X should treat everything (including local rendering) as a network socket connection when it can talk to the hardware directly. It is just too much overhead.

People making claims that the UNIX SOCKETS for local display don't involve overhead haven't made their evidence available. if this is true, explain yourself. There is real world proof that the DirectFB model is faster for local rendering, and until XFree86 either gets its own direct rendering model built into it for 2d rendering, and all the bells and whistles that DirectFB has (alpha blending with hardware acceleration, desktop/screen resloution switching on the fly, etc), you people claiming X's faults aren't with the protocol and implementation but with drivers are all blowing hot air.

the unix desktop CAN be faster. But X/XFree86 either needs to grow with the modern desktops, or it needs to be replaced on the desktop with something that works better. Either way, competition is a good thing, and I'm glad that DirectFB is making some headway. Porting QT/Free edition to DirectFB is going to make this competition even better, and the users will win out in the end.

I'm not bashing X here. I'm simply saying that there are better methods to locally render 2D applications. They do exist. They are being developed. The X protocol and XFree86 was designed for UNIX in a client/server networked environment. This is not how most modern computers use on their 2D desktop. I'm not saying XFree86 or the X Protocol needs to go. But if it wants to be _THE_ unix desktop for everyone, it needs to take into account the growing popularity of pure-local rendering environments. (There is no argument from me against it being _THE_ unix desktop in a client/server networked environment)

People making claims that the UNIX SOCKETS for local display don't involve overhead haven't made their evidence available.

I don't think anyone has claimed that at all.

Of course there is overhead involved in that abstraction, but there is overhead plenty of places. With modern hardware it's trivial. You can run X on a 486 just fine, and if the overhead isn't too much there then why would you worry about it on a newer 'puter?

Lots of people complain about X in ignorance, because what they're complaining a

This is a myth, and an XFree86 developer, board member, and one of the founders seems to agree:

As has already been pointed out to you, said XFree86 developer has been out of touch for so long that he thought Red Hat hadn't contributed to X, and now works on Windows entirely doing AOL stuff. When he took part in the XFree-forum list, he got flamed, badly.

Nobody except people who use X over the network extensively are making claims such as yours.

Don't be so short sighted. Maybe the reason nobody uses network transparency on Windows is because it blows so many goats? Have you thought of that? Yet, Microsoft have still taken architectural backflips to make it work, see W2K Terminal Services etc. It's a lame, poor imitation of actual network transparency, but they sell it anyway.

Simply having worked in tech support, I can think of MANY times when being able to have an xterm launched to me, would have been a godsend, especially as said person could continue working while I also worked.

There is a HUGE project of people doing exactly what the above link says. Implementing a direct rendered GUI with an X layer atop for remote display

Which desktop uses that then? Cos AFAIK both MacOS X and Windows use a model similar to that of X internally. None of them are direct rendered.

People making claims that the UNIX SOCKETS for local display don't involve overhead haven't made their evidence available. if this is true, explain yourself.

Why don't you find out for yourself, instead of ranting on Slashdot? You know, there are indeed studies, performed under controlled conditions, that show the overhead of UNIX domain sockets is negligable. They even tried replacing them entirely with SHM segments at one point, but it made no difference. Domain sockets are one of the most heavily optimized IPC primitives in the kernel, and you are quite free to perform speed tests yourself. The only area that it makes any difference is when throwing large amounts of data through them, such as pixmaps (which is why we use the XSHM pixmap extension), and the memcpy may not be completed in the available timeslice. For small messages, ie the bulk of X traffic, there is no speed gain to be had.

There is real world proof that the DirectFB model is faster for local rendering

Er, that's so wrong. For most people, ie anybody without a Matrox G series card, it's far far slower.

until XFree86 either gets its own direct rendering model built into it for 2d rendering

.... which it has....

and all the bells and whistles that DirectFB has (alpha blending with hardware acceleration, desktop/screen resloution switching on the fly, etc)

..... which it also has.... oh, unless you mean the ability to pointlessly make entire windows semi-transparent so you can't read what's on them, an ability that's useful primarily for screenshots with hot babes in the background

you people claiming X's faults aren't with the protocol and implementation but with drivers are all blowing hot air.

There are faults in every area of XFree/X11, nothing is perfect. The protocol needs some changes, which are being worked on, the driver interface needs to be broken to support proper save unders, and the scheduler is a dog. Needless to say however, DirectFB isn't a perfect work of art either. It's certainly useful, but right now it's not even competitive in terms of speed or features for 90% of users.

I'm not bashing X here

LMFAO. Yes you are. You've made many, many assertions, that you would know were wrong if you had actually sat down for a couple of weekends and done some basic research into the matter, like I have done. I have read boring reports, mailing lists archives, and chatted to various people involved, and so I'm pretty sure the impressions I have are accurate. There is nothing wrong with X as a local rendering mode

I've always thought that it would be a good idea to reengineer the whole system from scratch to take advantage of today's hardware and UI concepts.

Good idea, I've thought the same thing. I wrote a GUI toolkit for X, and a window manager, so I've got a good idea of how the whole thing works. I quit working on it as I was frustrated that I couldn't do some of the neat things I see in OS-X on X (that sounds funny, doesn't it?). Soooo...

I started from scratch writing an OpenGL based display server. I'm using a lot of ideas from X, but throwing out a lot of cruft and adding lots of enhancements. All of the drawing is double-buffered -- no more Expose events!!!!:) All of the drawing is also hardware accelerated. I've figured out a way to do this very well, without context switching the gfx hardware. One possible method will allow many clients to draw at once and keep a constant framerate (by not context switching/swapping buffers within a certain timeslice, these are very costly operations).

Some of the ideas I am keeping are the idea of "internalizing" graphics buffers to the server where they can be shared among other applications. I'm also keeping the idea of a replacable window-manager like shell.

For fonts I'm using Freetype. Standard image format is png. The display is also hardware-resolution independent and colordepth independent. Right now I'm being setback by the fact that I can't get X working on my new laptop (anyone know a modeline for WUXGA+ 1920x1200@60Hz, for Compaq X1000?). For communication I'm using named pipes/shared mem.

I'd also like to implement creating server-side macros so a client can pass one command to the server and execute a whole set of drawing routines atomically. Oh, and the source is definately going to be open. Any of this sound like a good/bad idea?

Maybe it's just the nature of the post, but I looked at the DirectFB screenshots (on DirectFB.org), and I see everything from GNOME 2 to WindowMaker to the GIMP, translucency, etc., etc., while I've never heard of DirectFB before.

Great. Now let's see how I get this on my Debian... hmm... I guess it would take a whole other Debian "port".

Hey; it would be cool to combine Linux + DirectFB + GNUstep (+ "3rd party" Free SW) into a MacOSX wannabe distro. It's not a problem if that would still mean it's lacking more than half of the basic OSX functionality; it's the other, Free half that makes the thought interesting!

one of my biggest issues with linux is that X is slow and bulky. You can compare it to any other major OS is terms of Memory footprint(which is bad) The Ability to run Qt and eventually all of KDE on DirectFB is great. Should also push other toolkits to this, or maybee to evas or something.

Well did you ever consider that some of us run over 150 desktop clients off of one server using nothing but X to get the job done. X might not be the fastest rendering display in the world but it is the most powerful.

Yes, and for running desktop clients off of one server X is excellent.Running it as a local desktop it is, however, not that excellent.

So basicly, the same people who whine that Windows sucks, especially all the legacy code from the Windii of old are now whining when the *nix legacy code that is X is beeing replaced?Did I miss something? I think it's a great idea.

Q: Whenever I try to start a DirectFB application, I get the error message

Error opening/dev/tty0A: You have to be root to run DirectFB apps. The main reason is that only root is allowed to change virtual terminals.

So. In order to get the supposed benefits of DFB, you have to run apps as root? I guess maybe you could log on as a user and su the DFB apps, but that's a pain. Why should a graphics lib muck up security? That seems inherently broken to me. If it really just abstracts graphics then there should be no problem with user apps running it.

In OpenBSD, Matthieu Herrb patched XFree86 to use privilege separation [umich.edu] so that the main X process can drop root privileges and run as a normal _x11 user. The privileged portion just grants it the ability to open devices it needs and send certain signals.

There's no reason why these guys couldn't do the same if they care about security... it's not hard, just requires the OS to support descriptor passing.

Your X server also needs root access, and for much the same reasons. X needs to muck with the registers on your video card, for example. Nowadays, there's a little setuid program called "XWrapper" that gets access to everything it needs, then drops its privileges and loads the main X server on top of itself.

There is at least one project (KGI) that attempts to rationalize all this. It puts the privileged functionality in kernel space, then exposes it all in a safe manner. Linus has not been receptive to this design in the past, preferring the X mechanism.

Well, unless you want to make a major hack to the kernel itself, the only way you are going to access the Linux framebuffer is to do so as root. Just look at how X works... It has to run as root so it can spawn a basic graphical display for you to use.

I suspect (since I have not tried it myself) that the problem with the DFB apps is that they don't come with the rendering abstraction layer that X provides (think client-server model). So every application needs to be root to write directly to the framebuffe

Does anybody know how DirectFB handles key-input for languages other than US-english? Something like the stuff that gets configured with the "XkbLayout" and other similar options in the XF86Config file.Does it use the keymap from the console, or is it just hardcoded to use US-english keyboard layouts?

<sarcasm>Since everyone wants to get rid of the X11 remote networking because "95% of people don't use it", then the obvious answer to your question is "if 95% of the people can get by with US-English keyboards, then the rest of you can go suck wind".</sarcasm>

The screenshots are great, the technology is cool, but the one thing that prevents the free desktop to come true on the machine of Average Joe is the lack of applications.

Changeing the direction of the graphics environment right now isn't productive. It will delay the common use of Linux/FreeBSD on the desktop. As applications will need to be ported to the new system, instead of using that developer effort to produce new and better applications.Perhaps even that killer app that makes the difference.

One other thing, one of the the most attractive features in the X11 desktop to corporate user is the remote display facilities. This is a major advantage over windows. It makes system administration a lot cheaper as application can be installed in one place. The admin cost is much more important to this group than the cost of hardware. Even if they needed twice as fast/memoryrich hardware to get the same performance on X11 they would prefer X11.

Once free software have higher market penetration on the Desktop we can change to better technology. But first we need to kill the competition from MS and Apple. X11 is good enough to do that, especially since the average desktop PC gets more and more memory and processing power.

The technology could still prove interesting for emedded devices where memory and processing power constraints still are more common.

1) As many have said over and over, XFree86 is not slow. It runs great on a 486. Try using a faster WM.

2) Transparancy/hardware rendering. For some reason people think XFree86 needs to be tossed out completely in order to get this. Check out this interview statement from David Dawes (XFree86 developer):

David Dawes: There has been some work on a new rendering model for XFree86 that provides some more advance composition techniques (including transparency), this currently being implemented in software. For XFree86 5.0 we'll be investigating this as part of our review of rendering models, and seeing if a hardware implementation would not be more appropriate.

Ok guys. I really have to tell you, I have been using Unix on the desktop 8 hours a day everyday for about the last 3 years and though things have gotten better there is one issue I have with X and the whole Linux desktop that everybody ignores but fundamentally makes it inferior to Mac and Windows. Not that it's not good enough to be quite usefull but this is just a glaringly huge hole in the UI that doesn't get enough press.

The problem is The Clipboard (Drag And Drop, Cut and Paste Etc). It only does text! I can't cut and paste from Gimp to Open Office or Mozilla to Open Office. Here we have the two most important linux desktop application and dragging a gif from mozilla to open office doesn't work. It's just text!

I know this would be tough to implement with X Remote desktop since two applications being displayed on your X Server might be on different machines but can't we set up a drag and drop daemon on each machine that lets them talk to each other so open office on machine a could except some paste information from the machine that was running Mozilla via a xclient to xclient connection or from a low level cut and paste service that communicated from server to server? Anyway.. I hope somebody in KDE or Gnome land is listening here.

um. actually X selections are more powerful than other systems at allowing cut-n-paste and drag-n-drop of non-text. X selections let the pastee and paster negotiate on a prefered file format based on what they have to offer and what they can accept.

Just because people who write apps for X don't seem to use this functionality, don't blame X11. if the app writers are too lazy to use the power of X selections, I don't see why they would suddenly for some new system.

Personally, I consider the true multi-user nature of UNIX systems to be their greatest strength.

Getting rid of X means giving that up. It also means making our OS just like the other multi-tasking, but not mulit-user ones out there.

It is just not worth it.

I use X every day. For gaming, remote support, and various other things. The current XFree works better than any other X server I have used.

Look at OS X. It has a frame buffer. It also can have a rootless X server. All the apps for the machine target the frame buffer. None of them work well over the network.

Sure you have VNC, but that just moves the ONE desktop around.

In an X environment, you get to move anything anywhere you want to. This is where the strength of UNIX is.

Multi-user computing is valuable. It makes older hardware continue to be useful. It also allows for different computing models and resource usage.

The other Operating systems do not do this. Linux / UNIX does and it is our killer feature.

What happens when a win32 server has trouble? You get a few admins looking at the machine while one operates it. With UNIX, you get a few admins all poking at the machine at the same time working together to work through the problem!

X is not slow. DRI has fixed the 3D part of things. 2D has always been fast. The transparent windows are nice, but do we really need them more than we need to continue to build on the software base we have now?

Look at Open Office. It runs nicely over X. One machine can serve many others. Install one copy of the software, setup the environment for the end-users once and you are done! No local installs, no hassle. Upgrade once and everybody is done.

If we do a frame buffer, it needs to be truely multi-user or it is not work doing. VNC is not the same as remote application display.

For those who say most people do not use the features of X, I say you are right. Why? It's because they don't know better, not because the tech sucks.

I have several machines that all perform their various functions. Some are Linux, some are IRIX and one other one is win2k. On my Linux desktop, the IRIX and Linux are perfectly intergrated. All the machines act as one. The odd man out is win2k. I have to bring up a silly VNC window for it.

Things are getting faster in a hurry folks. X is there already. The toolkits and window managers and desktop stuff is progressing nicely.

Choice is a big part of what OSS is all about. X provides more choice and power than any other display system ever has. That is why it is still around. That is also why it should stay.

Anyone who really wants to replace X does not understand just what it does. They just want the simple system their old OS had without realizing it is part of the problem.

For anyone who doesn't understand why you would use anything other than X, take a look at
ByzantineOS [sourceforge.net], which uses
DirectFB [directfb.org]
for rendering in low powered Internet and home entertainment appliances.

Since you haven't said exactly what is bloated and buggy with XFree86, nor stated why Windows 95 is a better GUI than any other X GUI, I'll assume you're just talking out your arse.

But rather than just flame, I'll present you with some reasons why you *perceive* Windows to be better.

A) Everyone tells you it's faster. Don't laugh this one off! The average human being rivals the cow when it comes to peer pressure. I've done some tests on my dual boot Win2k/FreeBSD machine. FreeBSD with KDE can do from powerup to surfing slashdot with Konqueror in 45 seconds, while powering up under Win2k to surfing Slashdot under Internet Exploder takes 60 seconds.

B) At work we're taking a i486 embedded device running X11R5 (R5 mind you!) and redesigning it from scratch to run WinXP Embedded on a 1Ghz P4. The new system *HAS* to use DirectX, because win32 is too damn slow. It does not have the performance that the i486/X11R5 has. They can't draw realtime *labels* and *graphs* faster than 15fps without it.

C) But that's speed. There can be a noticable response difference between the two, especially if your distro was asleep at the wheel when it came to default X settings. Why is Win95 more responsive than KDE or GNOME? Because the Win95 GUI DOESN'T DO ANYTHING! Even vanilla Blackbox has a higher feature set then it does! The win95 desktop can't even handle a jpg background without resorting to an ActiveDesktop hack, but most X window managers can use any image format you throw it at, and will scale the image without aliasing to boot.

D) A Qt application is no slower or less responsive under XFree86 than the same Qt application recompiled for win32. Try it and see! In fact, the only GTK+ application I use under Windows is *slower* than its XFree86 counterpart (GIMP).

E) If you see a significant performance increase under Win95/2k/XP, it's because it's an ActiveX application. It's bypassing the GUI completely. Please reread the previous sentence and attempt to comprehend it. See my note under B. We had to use ActiveX in our project because the WinXP GUI is too slow. Linux/BSD needs an ActiveX analogue, true, but that's no reason to dump X completely. Sometimes when you're playing Quake and feeling l33t because you're using Linus instead of Windows, then you want a good direct rendering engine. But it's completely pointless when you're running Scribus or GIMP. Perhaps DirectFB can fill this role for the times it's needed.