nanogui: Thread: new idea for microwindows client architecture


[<<] [<] Page 1 of 1 [>] [>>]
Subject: new idea for microwindows client architecture
From: Greg Haerr ####@####.####
Date: 13 Sep 1999 17:18:44 -0000
Message-Id: <01BEFDD9.24370A30.greg@censoft.com>

Gang,
	I've been studying a truly interesting piece of code lately, cross-elf v-0.2,
which allows linux, windows and dos programs to load 32 bit ELF code sections
compiled on linux and run them on other platforms.  This is realized through
cross-elf implementing an ELF relocatable loader, and resolving all imported and
exported symbols.

	After having reviewed this great piece of work (highly technical I might add)
I've come to the conclusion that it would be *perfect* for the multiple client/single
server architecture that we've been discussing on the nanogui list.  This solution
completely solves the problem of multiple clients on one machine communicating
with a graphics server on the same machine.  I think that this is where microwindows/nano
should be concentrating (let X handle the multiple machine cases for now).
In particular, this solution has the following advantages:

	o high speed
	o client binaries are *identical* on linux, win32 and DOS!
	o no network overhead or network needed (even UNIX sockets)
	o ELF format fully supported by linux tools
	o all modules seperable into .so shared objects if desired (this means
that the nano-X vs microwindows engine could just be separate .so files in the same
server...)

	To get this to run on ELKS, I would have to modify the ELF loader to support
16 bit binaries (small task) and modify the bcc/ld86 tools to support ELF format
or add the import/export info (very large task).

	With the appropriate implementation, this architecture would allow static-linking
of clients if desired, which would allow the extremely small binaries microwindows
supports today.  

	I plan on building a strawman implementation of this, so that we can move
towards separate "applications" in microwindows being loaded/unloaded as desired.
Note that we don't have to allocate another process for each application.  Ideally,
only a thread.

Comments?

Greg
[<<] [<] Page 1 of 1 [>] [>>]


Powered by ezmlm-browse 0.20.