LWN.net Logo

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

From:  Ingo Molnar <mingo-AT-elte.hu>
To:  Alexander Graf <agraf-AT-suse.de>
Subject:  Re: [RFC] Unify KVM kernel-space and user-space code into a single project
Date:  Mon, 22 Mar 2010 21:21:44 +0100
Cc:  "Daniel P. Berrange" <berrange-AT-redhat.com>, Anthony Liguori <anthony-AT-codemonkey.ws>, Avi Kivity <avi-AT-redhat.com>, Pekka Enberg <penberg-AT-cs.helsinki.fi>, Yanmin Zhang <yanmin_zhang-AT-linux.intel.com>, Peter Zijlstra <a.p.zijlstra-AT-chello.nl>, Sheng Yang <sheng-AT-linux.intel.com>, LKML Mailing List <linux-kernel-AT-vger.kernel.org>, kvm-devel General <kvm-AT-vger.kernel.org>, Marcelo Tosatti <mtosatti-AT-redhat.com>, oerg Roedel <joro-AT-8bytes.org>, Jes Sorensen <Jes.Sorensen-AT-redhat.com>, Gleb Natapov <gleb-AT-redhat.com>, Zachary Amsden <zamsden-AT-redhat.com>, Arnaldo Carvalho de Melo <acme-AT-redhat.com>, Fr?d?ric Weisbecker <fweisbec-AT-gmail.com>, Gregory Haskins <ghaskins-AT-novell.com>
Archive-link:  Article, Thread


* Alexander Graf <agraf@suse.de> wrote:

> > Furthermore, another negative effect is that many times features are 
> > implemented not in their technically best way, but in a way to keep them 
> > local to the project that originates them. This is done to keep deployment 
> > latencies and general contribution overhead down to a minimum. The moment 
> > you have to work with yet another project, the overhead adds up.
> 
> I disagree there. Keeping things local and self-contained has been the UNIX 
> secret. It works really well as long as the boundaries are well defined.

The 'UNIX secret' works for text driven pipelined commands where we are 
essentially programming via narrow ASCII input of mathematical logic.

It doesnt work for a GUI that is a 2D/3D environment of millions of pixels, 
shaped by human visual perception of prettiness, familiarity and efficiency.

> The problem we're facing is that we're simply lacking an active GUI / 
> desktop user development community. We have desktop users, but nobody feels 
> like tackling the issue of doing a great GUI project while talking to 
> qemu-devel about his needs.

Have you made thoughts about why that might be so?

I think it's because of what i outlined above - that you are trying to apply 
the "UNIX secret" to GUIs - and that is a mistake.

A good GUI is almost at the _exact opposite spectrum_ of good command-line 
tool: tightly integrated, with 'layering violations' designed into it all over 
the place:

  look i can paste the text from an editor straight into a firefox form. I
  didnt go through any hiearchy of layers, i just took the shortest path 
  between the apps!

In other words: in a GUI the output controls the design, for command-line 
tools the design controls the output.

It is no wonder Unix always had its problems with creating good GUIs that are 
efficient to humans. A good GUI works like the human brain, and the human 
brain does not mind 'layering violations' when that gets it a more efficient 
result.

> > So developers rather go for the quicker (yet inferior) hack within the 
> > sub-project they have best access to.
> 
> Well - not necessarily hacks. It's more about project boundaries. Nothing is 
> bad about that. You wouldn't want "ls" implemented in the Linux kernel 
> either, right? :-)

I guess you are talking to the wrong person as i actually have implemented ls 
functionality in the kernel, using async IO concepts and extreme threading ;-) 
It was a bit crazy, but was also the fastest FTP server ever running on this 
planet.

	Ingo


(Log in to post comments)

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Posted Mar 25, 2010 4:58 UTC (Thu) by Tara_Li (subscriber, #26706) [Link]

I kind of like the split that developed with CD/DVD tools - commandline tools did the nuts & bolts stuff, with all kinds of fancy switches to handle super-insane specialized needs, then the GUI people wrote nice GUIs for them, which did little of the actual *WORK*, but let the user have a nice pretty way to set things up.

Personally, I kind of like the thought of wget | html2bitmap | display

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Posted Mar 25, 2010 16:59 UTC (Thu) by xav (guest, #18536) [Link]

Personally, I kind of like the thought of wget | html2bitmap | display
Good luck using any modern interacive web page with that.

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Posted Mar 25, 2010 18:22 UTC (Thu) by Tara_Li (subscriber, #26706) [Link]

Oh, I'll admit it does have its downsides for interactivity. But really, why not decouple the retrieval code from the display/UI?

I do think, however, that webpages have gotten a bit ... too over-done. I don't really think the *USER* needs pixel-level placement of each element, as can be specified in the web page. It's the designers who want you to see *EXACTLY* what they see, that need that cruft. And it leads to them thinking too much in terms of paper pages, with margins, and font faces/sizes hard-coded, and images placed just so in the middle of the page...

And I cringe every time I hear someone talking about PDF being the perfect format for e-books. Maybe we need to do away with the term e-books. They're not printed on pages, they're not limited to a specific form-factor..

Ah, well, I've crawled into a completely different direction. Back to my point - I think we really need to get back to decoupling the engines from the dashboards of our software.

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Posted Mar 25, 2010 20:33 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link]

"But really, why not decouple the retrieval code from the display/UI?"

It's decoupled inside the browser process. What are you going to achieve by splitting it into a separate process? How are you going to handle timeouts and failures? How about DNS prefetching? How about a certificate validation?

Etc.

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Posted Mar 26, 2010 13:13 UTC (Fri) by Spudd86 (guest, #51683) [Link]

Well Chrome does split it into a seperate process...

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Posted Mar 31, 2010 7:57 UTC (Wed) by massimiliano (subscriber, #3048) [Link]

Well Chrome does split it into a seperate process...

AFAIK, this is not true.

Chrome keeps each "tab" (which you could think of as a "browsing session") into its own process, but the network access, the visual rendering and the Javascript processing for each tab run together inside the same "tab process".

And the process separation was not done to make Chrome simpler to use, or simpler to develop: it actually generates a lot of technical complication. But it has been done to make it more secure, so those technical complications are acceptable.

you need to look at the uzbl project

Posted Mar 27, 2010 19:27 UTC (Sat) by dlang (✭ supporter ✭, #313) [Link]

http://www.uzbl.org/
they are doing exactly what you are wanting, splitting up the browser into separate components.

you need to look at the uzbl project

Posted Mar 27, 2010 19:56 UTC (Sat) by jake (editor, #205) [Link]

FWIW, we looked at Uzbl back in July.

jake

Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Posted Mar 27, 2010 21:11 UTC (Sat) by k8to (subscriber, #15413) [Link]

I achieve this decoupling. It's called an HTTP proxy.

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds