Mem Proxy

Introduction

Mem Proxy consists of three components:

mem-proxy - a kernel module that allows userland processes access to the kernel address space.

mem-proxyd - a daemon which allows applications running on other machines access to the mem-proxy module.

Client library - a high-level library which allows scripts to access mem-proxyd over the network.

So What is it good for?

I've used this initally to play around with the GPIO pins on my Edimax BR-6104KP. I was writing a 7-segment display driver and it was much easier to get the logic right by writing it in Python and then converting to C, than developing directly in C. Use of Python on a remote machine requires no compile->Upload->Flash->Boot cycle so is far more rapid. Since playing about with the GPIO pins I've added kmalloc() and kfree() capability, since some devices like USB controllers need to write results to DMA memory.

You could use this to prototype an MMC driver or investigate IO pins/LEDs on unknown routers. For some applications it may be that this can be used to avoid writing a driver altogether - with embedded applications the kernel->userland divide sometimes just gets in the way.

Usage instructions

If you find this useful, send me an email at: bifferos@yahoo.co.uk.