--> ap/xxxxx


promiscuOS protocol: (promiscuOS_notes#5)

UML/promiscuOS: (tech_notes#316)

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

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.

paper2: (paper#2)

to implement:

for re-shuffling of paper circuits// thus loose sheets

Networking in Emacs Lisp (2006.12.06:1 tech_notes#315 promiscuOS_notes#4 emacs#11)

1] sans TCP:

see: httpd.el -- a web server in Emacs Lisp

at: http://www.chez.com/emarsden/downloads/


:: 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.


;; 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:


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:


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.


4] ebby - shared Emacs buffers for collaborative editing (no link)

(on this thread:

http://technomancy.us/blog/post/45 and:


and thus:

5] Distel: http://bc.tech.coop/blog/060111.html