基于嵌入式Linux的设备通常需要一种机制来更新应用程序和系统文件.例如,带有USB端口的(非联网)实验室仪器可以从USB记忆棒获得软件更新.
运行脚本将文件复制到设备内部闪存上的位置是一件简单的事情.但是,存在设备在更新过程中断电并最终失效的危险.
应用程序文件的情况稍微容易一些,因为有空间复制应用程序目录,更新一个副本,并快速交换新旧目录,最大限度地减少故障窗口.
对于内核和系统文件来说,事情更为复杂,因为它们遍布整个文件系统.
我们在文件系统中使用了硬链接和软链接来识别关键文件.我们在文件和存档上使用哈希来验证文件完整性.我们已经考虑在内核中使用紧急ramfs,以便在从更新的文件系统启动失败时提供回退.
你对这个要求有什么方法?