OS Lifecycle

OS Lifecycle / OS 生命周期

OS Lifecycle

操作系统生命周期 主要包含几个阶段

简单描述

  • 重生/Reborn : 描述一个操作系统是如何诞生的.通过用户的反馈,功能增加,性能优化,BUG修复等,不断迭代出更加完善的操作系统.

  • 部署/Deployment : 描述操作系统软件是如何被部署安装在不同的硬件机器上.

  • 维护/Maintenance : 描述OS操作系统在使用的过程中,后端工程师是如何维护和持续提升操作系统的.

  • 优化/Optimize : 描述OS操作系统如何通过维护方法得到优化的.

他们是一个周期循环,是一个整体

重生/Reborn

  1. 一个OS镜像的组成.通常是bootloader,kernel,rootfs,oem(apps,license,repo等)组成
  2. 通过镜像制作工具(例如mkiso)可生成.img或者.iso等镜像文件
  3. bootloader对于X86来说的是bios+grub;对于arm等嵌入式架构来说通常是fastboot等
  4. kernel 直接获取上游开源的即可.kernel 也有针对不同平台的版本,有专门针对arm架构的,比x86架构的kernel要小的许多
  5. rootfs的制作可以使用debootstrap,buildroot,yocto等工具直接可以构建出一个rootfs.img. debootstap 通常是使用上游debian构建好最小rootfs,方便oem定制
  6. oem 或者不同的Linux发行版通常对桌面环境(desktop environment),仓库源,认证和证书方式做了定制. 但是底层还是借用上游的.
  7. 由于工程师手动去构建OS比较麻烦,是过程自动化,借用CI/CD工具–jenkins实现.

部署/Deployment

  1. 构建好系统镜像之后,就可以部署到不同的机器上了,主流x86和ARM.
  2. 对于X86来说, 通常刻在CD光碟上或者使用Udisk制作镜像盘,制作镜像盘后就可以给机器安装系统了. 在批量生产上,为了提高效率,通常使用PXE链接网络文件系统(NFS)的方式,进行批量部署安装机器
  3. 对于ARM来说,通常烧录的方式将镜像烧录到ROM中,并且前提已经做好了分区.(在X86中,通常是在安装的时候,才做的分区)

维护/Maintenance

  1. 操作系统架构设计时,已经考虑到了系统的后续维护,为了应对各种紧急情况.例如数据丢失与保护,或者系统变砖无法开机等等
  2. 对于数据丢失,系统有备份功能,将数据拷贝到备用的分区建立还原点,但下次不小心把数据搞丢时,可以通过恢复功能还原到原来的时间点.
  3. 对于系统变砖或者开不了机,系统背后存在另外一个备份系统,这个备份系统可以覆盖正在使用的系统使系统恢复正常. 这里的机制称为SLOT AB.可以用于系统升级,恢复还原等.
  4. 系统将来需要升级,也可以静默升级,因为存在另外一个备用系统,可以升级这个备用系统,而不影响目前系统的使用,下次重启之后,就可以直接使用升级后的系统.
  5. 升级也具备多种模式.例如全量升级(full update) , 差分升级(diff update) .差分升级更加适合在arm嵌入式操作系统的场合,因为磁盘资源有限. OTA升级方式包含以上两种方式.
  6. 对于后端工程师来说,系统出现了bug需要借助一系列维护工具分析问题的原因所在,从现象层面,定位到模块原因,再定位到代码原因,最后修正代码,重新提交到gitlab或者gerrit.

优化/Optimize

  1. 通过用户的反馈,功能增加,性能优化,BUG修复等,不断迭代出版本的操作系统.
  2. 操作系统也是代码,修正代码后,提交到gitlab和gerrit进行审核.
  3. 审核通过后Code Merge到代码分支中(片段代码融入了整体)
  4. 最后还是由jenkins自动化工具构建生成新一轮的操作系统.

周而复始…


OS Lifecycle
https://pans0ul.github.io/2022/06/26/OS-Lifecycle/
Author
pans0ul
Posted on
June 26, 2022
Licensed under