[TUHS] Abstractions

Rich Morin rdm at cfcl.com
Sun Feb 21 21:08:25 AEST 2021


> On Feb 20, 2021, at 15:09, M Douglas McIlroy <m.douglas.mcilroy at 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



More information about the TUHS mailing list