blob: b6821cc557daa5f660fb69f15cf84320ce8c6c1d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
% 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.
|