On Feb 20, 2021, at 15:09, M Douglas McIlroy
<m.douglas.mcilroy(a)dartmouth.edu> wrote:
- separation of code and data using read-only and
read/write file systems
I'll bite. How do you install code in a read-only file system?
Disclaimer: I haven't actually used Nerves myself, just watched some presentations,
read various web pages, etc. So anything I say about it is quite unreliable. And,
although that item was (sort of) true, it was obviously rather misleading if interpreted
too broadly. So, I'll try to provide some context to explain what I meant by it.
As I understand it, Nerves is intended as a build and delivery mechanism for IoT system
software. It's supposed to be possible to upgrade a deployed device without blowing
away its persistent saved state. And, if the upgrade fails, to back down to the previous
version. Also, the running code on the device should not be able to trash the system
software.
To support this, they use multiple file systems, with various updating attributes. For
example, they might have two file systems for the system software and a third one for the
persistent saved state. This lets a developer upload and boot a new copy of the system
software, but fall back to the old version if something goes wrong.
-r