These last few years, I have been working on an experimentation platform called WalT. From the user point of view, a WalT platform is a set of remotely managed nodes where you can deploy an operating system (so-called WalT image), run a distributed experiment, and collect experiment logs.

WalT architecture

WalT relies on docker for easy packaging, modification, and sharing (on the docker hub). of WalT images. The sharing aspect makes experiments easily reproducible. Nodes are low cost single-board-computers (Raspberry Pi B/B+, support for other hardware should come soon). The WalT platform is itself very easily reproducible (it is made of low cost components, free and open source software, and installation is automated). You can set up your own in a few minutes.

You can get more info on the WalT website. We presented WalT at a seminar recently, our talk material (pdf file and two videos) is available on the resources page.

The International Obfuscated C Code Contest (IOCCC) started in 1984. Candidates have to propose a C program doing something interesting in the most obfuscated way possible. (There are a few rules to follow, most notably limits abouts the source code size.)

I first heard about this contest many years ago, I think it was around 2003, because Fabrice Bellard (author of qemu, tcc, some maths-related things, etc.) mentions on his website he won it in 2002. Looking at the winning entries, I was really impressed.

This year, I decided to give it a try myself. And this was apparently a good idea!

The source code and related comments of the winning entries for 2015 are not published yet. They should be published in a few weeks.

I wrote a tool called debootstick that was just accepted in Debian: see here.

Thanks to Alessio Treglia for mentoring!

debootstick allows to generate bootable systems (i.e. LiveUSB systems) easily. For example, debootstick can be used to turn a docker image into a bootable USB.

The other tools of this kind cannot be used in this kind of scenario because their process includes the generation of the OS content. On the contrary, debootstick takes a directory containing such an existing system as input. This makes debootstick good at collaborating with other tools (debootstrap, docker, etc.).

You can get more info about debootstick on its github page and wiki.

This article has 2 parts:

  • Part 1 describes the various uses of filesystems. For example, the stacking of various filesystems used in LiveCD or LiveUSB systems is described. Then the article explains how to modify a system of this kind. Another example is the setup of an NFS share in order to boot raspberry pi boards through the network; the article describes how to abstract the different hardware architecture at the server and at the client, and how to manage the concurrent access to the NFS share.
  • Part 2 shows that it is not so hard to implement your own filesystem.

Both parts are available in GNU/Linux Magazine 168 (february 2014) (p.20 and p.76).

Update: These articles are now available online for free: part 1 and part 2.

I wrote an article that was just published in Open Silicium 6 (march / april / may 2013, in french).

The main topic is the reverse engineering.

After a short intro to sensor networks research, it describes how I could get around a problem with a flasher tool.

Update: This article is now available online for free.