oscomp / proj235-linux-upgrade-system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

proj235-linux-upgrade-system

Linux的OTA升级系统

项目描述

在工业控制、机器人控制领域中越来越多使用Linux嵌入式操作系统,但嵌入式linux系统在终端设备上部署之后,在更新和升级系统镜像的时候,还需要重新物理部署,不能确保最佳的操作体验和系统正常的运行时间。 为了改善linux的升级体验,建造linux的升级系统, 以能够执行linux系统安全的远程OTA升级,执行安全的离线升级,并确保linux OTA升级的健壮性和可控性。

所属赛道

2024全国大学生操作系统比赛的“OS功能设计”赛道

参赛要求

  • 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生/研究生
  • 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
  • 请遵循“2024全国大学生操作系统比赛”的章程和技术方案要求

项目导师

赛题分类

  • 未归类运行时支撑
  • 系统维护工具

难度

特征

  • 需要了解ota升级的概念及原理
  • 需要了解linux的rootfs结构及linux应用安装
  • 需要了解前后台开发知识

License

  • GPL-3.0

参考文档

预期目标

注意:下面的内容是建议内容,不要求必须全部完成。选择本项目的同学也可与导师联系,提出自己的新想法,如导师认可,可加入预期目标

第一题:升级系统的升级功能实现

  • 能够支持linux主要系统文件(initrd,kernel,rootfs)等linux重要文件的版本升级
  • 能够保证升级前后用户应用/配置的一致性
  • 能够保证升级异常时,检测到异常,并可以回退到系统可用状态

第二题:升级系统基础框架功能实现

以题目一为基础,升级系统需要追加下列功能:

  • 实现升级系统管理后台, 主要功能包括:
    • 实现升级包管理,支持用户上传升级包,支持升级包校验
    • 实现升级任务管理,支持用户提交升级任务,支持升级任务状态查询
    • 实现升级日志管理,支持用户升级日志查询
    • 实现用户管理,支持用户登录、注册、权限管理
  • 实现升级系统客户端功能,主要功能包括:
    • 支持升级包校验、下载、安装功能,上报升级状态等
    • 支持静默后台强制升级和自动检测升级功能

(可选)第三题:升级模块扩展功能实现

以题目二为基础,升级系统需要追加下列功能:

  • 升级功能要有更健壮的异常保护机制,要能兼容电池不足,空间不足,升级中掉电,rootfs/initrd/kernel完全坏掉等情况
  • 升级功能要有功能能保证用户应用/配置的兼容性
  • 升级功能要能支持uboot和grub两种启动方式
  • 升级功能要能支持差分升级,使升级包尽可能小
  • 升级系统管理后台要有终端管理,能查询终端的版本及硬件信息
  • 升级系统客户端要有安全机制,防止升级后台、升级包等被篡改

About