Porteus Kiosk File Structure

What makes Porteus Kiosk different from most linux distributions is its modular design and the use of aufs (Another Union File System) to turn modules stored in the /xzm folder on your CD/usb stick into a live operating system. All of the files that make up the live system are stored in the modules. Modules are simply folders that have been archived using SquashFS and the new LZMA2 compression algorithm (similar to .zip or .rar archives).


What we have in Porteus Kiosk are two categories of files: the files that are active and visible in your live filesystem while you are running kiosk, and the files that sit on your CD, USB drive, or hard drive, which are used to build the live filesystem when it boots up. This can make it confusing, because any files that are visible in a particular location of the live filesystem (e.g. /etc/profile) are not visible in that same exact location on your storage media. They are stored in modules instead.


How does it work?

When you first start your computer, the bootloader starts the kernel and the kernel starts the initrd. With the initrd is loaded, the system is now capable of mounting xzm modules, which make up all the other files in the Porteus kiosk system. Modules are inserted in alphanumerical order, so module 000-kernel.xzm is added first, then 001-core.xzm, etc, until the very last module. When all modules are loaded, an init script does a 'switch root' to the /union folder - a place where all modules are mounted - and booting continues like on a normal (non live) operating system.


Such a system is very flexible as programs can be added to the kiosk and removed as quickly and easily as moving the module into or outside of the /xzm folder and recreating the ISO.


Please continue reading here to find more about modules and how to create or extract them.