OS Lifecycle
OS Lifecycle / OS 生命周期
操作系统生命周期 主要包含几个阶段
简单描述
重生/Reborn : 描述一个操作系统是如何诞生的.通过用户的反馈,功能增加,性能优化,BUG修复等,不断迭代出更加完善的操作系统.
部署/Deployment : 描述操作系统软件是如何被部署安装在不同的硬件机器上.
维护/Maintenance : 描述OS操作系统在使用的过程中,后端工程师是如何维护和持续提升操作系统的.
优化/Optimize : 描述OS操作系统如何通过维护方法得到优化的.
他们是一个周期循环,是一个整体
重生/Reborn
- 一个OS镜像的组成.通常是bootloader,kernel,rootfs,oem(apps,license,repo等)组成
- 通过镜像制作工具(例如mkiso)可生成.img或者.iso等镜像文件
- bootloader对于X86来说的是bios+grub;对于arm等嵌入式架构来说通常是fastboot等
- kernel 直接获取上游开源的即可.kernel 也有针对不同平台的版本,有专门针对arm架构的,比x86架构的kernel要小的许多
- rootfs的制作可以使用debootstrap,buildroot,yocto等工具直接可以构建出一个rootfs.img. debootstap 通常是使用上游debian构建好最小rootfs,方便oem定制
- oem 或者不同的Linux发行版通常对桌面环境(desktop environment),仓库源,认证和证书方式做了定制. 但是底层还是借用上游的.
- 由于工程师手动去构建OS比较麻烦,是过程自动化,借用CI/CD工具–jenkins实现.
部署/Deployment
- 构建好系统镜像之后,就可以部署到不同的机器上了,主流x86和ARM.
- 对于X86来说, 通常刻在CD光碟上或者使用Udisk制作镜像盘,制作镜像盘后就可以给机器安装系统了. 在批量生产上,为了提高效率,通常使用PXE链接网络文件系统(NFS)的方式,进行批量部署安装机器
- 对于ARM来说,通常烧录的方式将镜像烧录到ROM中,并且前提已经做好了分区.(在X86中,通常是在安装的时候,才做的分区)
维护/Maintenance
- 操作系统架构设计时,已经考虑到了系统的后续维护,为了应对各种紧急情况.例如数据丢失与保护,或者系统变砖无法开机等等
- 对于数据丢失,系统有备份功能,将数据拷贝到备用的分区建立还原点,但下次不小心把数据搞丢时,可以通过恢复功能还原到原来的时间点.
- 对于系统变砖或者开不了机,系统背后存在另外一个备份系统,这个备份系统可以覆盖正在使用的系统使系统恢复正常. 这里的机制称为SLOT AB.可以用于系统升级,恢复还原等.
- 系统将来需要升级,也可以静默升级,因为存在另外一个备用系统,可以升级这个备用系统,而不影响目前系统的使用,下次重启之后,就可以直接使用升级后的系统.
- 升级也具备多种模式.例如全量升级(full update) , 差分升级(diff update) .差分升级更加适合在arm嵌入式操作系统的场合,因为磁盘资源有限. OTA升级方式包含以上两种方式.
- 对于后端工程师来说,系统出现了bug需要借助一系列维护工具分析问题的原因所在,从现象层面,定位到模块原因,再定位到代码原因,最后修正代码,重新提交到gitlab或者gerrit.
优化/Optimize
- 通过用户的反馈,功能增加,性能优化,BUG修复等,不断迭代出版本的操作系统.
- 操作系统也是代码,修正代码后,提交到gitlab和gerrit进行审核.
- 审核通过后Code Merge到代码分支中(片段代码融入了整体)
- 最后还是由jenkins自动化工具构建生成新一轮的操作系统.
周而复始…
OS Lifecycle
https://pans0ul.github.io/2022/06/26/OS-Lifecycle/