% Building Murphy compatible embedded Linux systems % Gilad Ben-Yossef (gilad@codefidence.com) It's 2:00 a.m. An embedded Linux system in the ladies' room of an Albuquerque gas station is being updated remotely. Just as the last bytes hit the flash, disaster strikes---the power fails. Now what? The regular way of updating the configuration or performing software upgrade of Linux systems is a \textit{nonsequitur} in the embedded space. Still, many developers use these methods, or worse, for lack of a better alternative. This talk introduces a better alternative---a framework for safe remote configuration and software upgrade of a Linux system that supports atomic transactions, parallel, interactive and programmed updates, and multiple software versions with rollback and all using using such ``novel'' concepts as POSIX \ident{rename(2)}, Linux \ident{pivot_root(2)}, and the initrd/initramfs mechanism.