1] kernel level (which could also include some kind of dissolution at the network level).
2] application or user level -
and the 1] 2] boundary as leakage = UML (User Mode Linux) - kernel as userland app
quick UML notes:
1] grabbed a 2.6.19 kernel from: http://ftp.ca.kernel.org/linux/kernel/v2.6/
bunzip2 linux-2.6.19.tar.bz2 tar xvf linux-2.6.19.tar cd linux-2.6.19 make defconfig ARCH=um ## default configuration make ARCH=um
2] Results in... linux. Then run ./linux
3] No filesystem!
So, relying on [[http://www.informatimago.com/linux/emacs-on-user-mode-linux.html][Emacs on UML]] we can make a filesystem as follows:
cd ~/uml dd if=/dev/zero of=root_fs_emacs bs=1k count=200k yes y|mke2fs root_fs_emacs # note that yes command outputs string y repeatedly mkdir /emacs mount -o loop root_fs_emacs /emacs cd /emacs ln -s . emacs # we create this link to simplify config --prefix of emacs cp -a /dev dev # we boldly copy the whole /dev mkdir etc sbin tmp # some other directories not installed by emacs cat >etc/fstab <<EOF /dev/ubd0 / ext2 defaults 0 1 EOF
4] Following steps to statically link Emacs-22 fails:
: warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc/i386-redhat-linux/3.4.2/../../../libc.a(mktime.o)(.rodata+0x0): multiple definition of `__mon_yday' mktime.o(.rodata+0x0): first defined here /usr/lib/gcc/i386-redhat-linux/3.4.2/../../../libc.a(mktime.o)(.text+0x0): In function `__mktime_internal': : multiple definition of `__mktime_internal' mktime.o(.text+0x373): first defined here /usr/bin/ld: Warning: size of symbol `__mktime_internal' changed from 1502 in mktime.o to 2546 in /usr/lib/gcc/i386-redhat-linux/3.4.2/../../../libc.a(mktime.o) collect2: ld returned 1 exit status make[1]: *** [temacs] Error 1 make[1]: Leaving directory `/root/emacs-22.0.91/src' make: *** [src] Error 2
5] Filesystems from uml/sourceforge eg.tomsrtbt fail at INIT or elsewhere - construct from scratch.
to implement:
for re-shuffling of paper circuits// thus loose sheets
1] sans TCP:
see: httpd.el -- a web server in Emacs Lisp
at: http://www.chez.com/emarsden/downloads/
notes:
:: Since Emacs does not (yet!) provide server sockets, you ;; need a helper program to bind to the socket and forward requests. ;; There are two ways of doing this: use a service like inetd to ;; launch a fresh emacs instance for each incoming request, or use a ;; program which forwards requests via gnuserv. The second method ;; obviously provides better performance.
eg:
;; 8080 stream tcp nowait.10000 nobody /usr/bin/emacs emacs -batch \ ;; -l /path/to/httpd.el -f httpd-serve
or use httpd-serve Python script... (from where?)
or see:
muse-http.el file that can turn Emacs into a webserver, much like the emacs-wiki-httpd.el module, except that it doesn't need an external Python script.
muse-http handles requests by way of httpd.el later version:
http://sacha.free.net.ph/notebook/emacs/muse/httpd.el
with lines:
(defun httpd-start (&optional port) (interactive (list (read-input "Serve Web requests on port: " "8080"))) (if (null port) (setq port 8080) (if (stringp port) (setq port (string-to-int port)))) (if httpd-process (delete-process httpd-process)) (setq httpd-process (open-network-stream-server "httpd" (generate-new-buffer "httpd") port nil 'httpd-serve)) (if (eq (process-status httpd-process) 'listen) (message "httpd.el is listening on port %d" port)))see also:
http://www.emacswiki.org/cgi-bin/wiki/rcirc.el
2] In GNU Emacs reference manual:
Emacs Lisp programs can open TCP network connections to other processes on the same machine or other machines. A network connection is handled by Lisp much like a subprocess, and is represented by a process object. However, the process you are communicating with is not a child of the Emacs process, so you can't kill it or send it signals. All you can do is send and receive data. delete-process closes the connection, but does not kill the process at the other end; that process must decide what to do about closure of the connection.
3] Gnuclient and gnuserv:
Gnuserv: It allows arbitrary Emacs Lisp commands to be sent to an Emacs process running either on the local machine or on another machine on the network.
http://linuxgazette.net/issue29/marsden.html
4] ebby - shared Emacs buffers for collaborative editing (no link)
(on this thread:
http://technomancy.us/blog/post/45 and:
http://bc.tech.coop/blog/060509.html)
and thus:
5] Distel: http://bc.tech.coop/blog/060111.html