Re: [wmii] wmii Q's (python bindings & attaching windows)

From: Anselm R. Garbe <>
Date: Tue, 1 Nov 2005 15:31:27 +0100

On Tue, Nov 01, 2005 at 11:53:26AM +0000, David Tweed wrote:
> This is a sort of plan9 as actually working on Linux
> question: can someone point me to an idiots guide
> about how all the components in utilising 9p within an
> application fit togther, particularly for the purposes
> of application configuration? All the stuff I've found

The acme paper of Rob contained some details, but not
9P-specific ones, just more architectural things, and the
plumbing paper mentions similiar things as well.

> on the web is the "compressed conference stuff" that
> doesn't clearly tell me how the kernel, 9pserver,
> 9pclient, libixp/libixp2, application code all fit
> together. (This isn't a criticism; I just can't figure
> out the low-level details.) Also, looking over the

To clarify things, the old libixp is not 9P compliant and never
spoke 9P, it was much simplier and maybe sth like a Unix-File-IO
alike userland library, which adapted some ideas from 9P. In
contrast to that, libixp2 (which will be called libixp in future
when the old one can be dropped) will speak 9P completely and
provide a select() loop based general purpose server interface
and a simple client interface (which is already done, wmir2 uses
it already and you can browse 9P fileservers with wmir2, like
acme from plan9port).

> wmii codebase it appears that you don't use the 9p
> interface to set normal variables in your program but
> rather you lookup the pseudo file in the 9p filesystem
> each time the application code wants to use a

That is the old way, the new way is currently under heavy
development, first thing which will speak 9P this week is
wmibar2.c, there you'll see, that the Qid-addressing is used to
map the data structure into an filesystem representation
directly and if you read/write something, you write into the
struct/variable directly.

> variable. Is this (a) right and (b) any reason not use

The old approach with a pseudo ramfs as interface for internal
stuff was handy, but contained several overhead, which will be
removed now. Though I must admit, that the code gets harder to
understand in future without knowing 9P details, because it
might look magic to an average C programmer that function calls
and data manipulation is done through an adequate Qid addressing.


 Anselm R. Garbe  ><><  ><><  GPG key: 0D73F361
Received on Tue Nov 01 2005 - 15:31:27 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:59:25 UTC