my diploma thesis is now officially finished, and so I thought it's
time to release the piece of software that we (Daniel Spörri and I)
came up with. As I'd mentioned on the m0n0wall-dev mailing list
before, the initial idea was to port the existing functionality of
m0n0wall to the new architecture described in an earlier term paper
(http://m0n0.ch/wall/development.php - yes, I know, most of it still
hasn't been translated yet...). However, that wasn't permissible, and
anyway, it would probably have been too much work in the available
time, what with all the documentation that had to be written as well.
So instead, we settled on applying the new concept/architecture to a
software package for (FreeBSD based) wireless access points. The
result is called "m0n0AP" and uses a core daemon written in C++ that
can load modules (also written in C++) dynamically at runtime. All
external communication (such as between the core and the GUI) is done
via XML-RPC over HTTP, and there are other gimmicks as well (such as
certificate-based digital signatures on modules and system images,
meta/dependency information in XML files, a neat PHP-based web
If you're feeling really adventurous, you can download a CF/HD image
that should run on most generic PCs, WRAPs and Soekrises here:
http://m0n0.ch/ap/m0n0ap-preview1.img (13.6 MB)
Note that at least a 256 MB disk is required due to the generous
partition layout and the fact that it doesn't use a compressed MFS
root file system (unlike m0n0wall). Also, only Atheros-based radios
are supported. The default user name/password is admin/mono.
Let me stress that this software is in an experimental stage, and
it's not clear whether any further development will be done on it.
It's simply intended to be a working practical example of the
proposed new architecture.
The source code (or rather a dump of the repository) is available here:
Now - after writing all the code for m0n0AP, I'm not sure whether the
new architecture would be a good fit for m0n0wall. It would be a huge
amount of work to port all existing functionality, and at least to
me, the advantages of modularizing everything are not evident. So for
the time being, I think it's best to try to come up with a stable
m0n0wall 1.3 based on the old architecture, and then maybe think
about major changes again.