# proj234-linux-upgrade-system **Repository Path**: r2018/proj234-linux-upgrade-system ## Basic Information - **Project Name**: proj234-linux-upgrade-system - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-06 - **Last Updated**: 2024-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # proj234-linux-upgrade-system # Linux的OTA升级系统 ### 项目描述 在工业控制、机器人控制领域中越来越多使用Linux嵌入式操作系统,但嵌入式linux系统在终端设备上部署之后,在更新和升级系统镜像的时候,还需要重新物理部署,不能确保最佳的操作体验和系统正常的运行时间。 为了改善linux的升级体验,建造linux的升级系统, 以能够执行linux系统安全的远程OTA升级,执行安全的离线升级,并确保linux OTA升级的健壮性和可控性。 ### 所属赛道 2024全国大学生操作系统比赛的“OS功能设计”赛道 ### 参赛要求 - 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生/研究生 - 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖 - 请遵循“2024全国大学生操作系统比赛”的章程和技术方案要求 ### 项目导师 - gitee @r2018, @tao12345 - email: liyulei@kylinos.cn, taoshusong@kylinos.cn ### 难度 中 ### 特征 - 需要了解ota升级的概念及原理 - 需要了解linux的rootfs结构及linux应用安装 - 需要了解前后台开发知识 ### 参考文档 https://blog.csdn.net/ybhuangfugui/article/details/129035811 https://www.zhihu.com/tardis/zm/art/407540981?source_id=1005 ### License GPL-3.0 ### 预期目标 **注意:下面的内容是建议内容,不要求必须全部完成。选择本项目的同学也可与导师联系,提出自己的新想法,如导师认可,可加入预期目标** **第一题:升级系统的升级功能实现** 1. 能够支持linux主要系统文件(initrd,kernel,rootfs)等linux重要文件的版本升级 2. 能够保证升级前后用户应用/配置的一致性 3. 能够保证升级异常时,检测到异常,并可以回退到系统可用状态 **第二题:升级系统基础框架功能实现** 以题目一为基础,升级系统需要追加下列功能: 1. 实现升级系统管理后台, 主要功能包括: - 实现升级包管理,支持用户上传升级包,支持升级包校验 - 实现升级任务管理,支持用户提交升级任务,支持升级任务状态查询 - 实现升级日志管理,支持用户升级日志查询 - 实现用户管理,支持用户登录、注册、权限管理 2. 实现升级系统客户端功能,主要功能包括: - 支持升级包校验、下载、安装功能,上报升级状态等 - 支持静默后台强制升级和自动检测升级功能 **(可选)第三题:升级模块扩展功能实现** 以题目二为基础,升级系统需要追加下列功能: 1. 升级功能要有更健壮的异常保护机制,要能兼容电池不足,空间不足,升级中掉电,rootfs/initrd/kernel完全坏掉等情况 2. 升级功能要有功能能保证用户应用/配置的兼容性 3. 升级功能要能支持uboot和grub两种启动方式 4. 升级功能要能支持差分升级,使升级包尽可能小 5. 升级系统管理后台要有终端管理,能查询终端的版本及硬件信息 6. 升级系统客户端要有安全机制,防止升级后台、升级包等被篡改