openKylin 2.0揭秘 - 新一代不可变系统的设计与实现
在之前文章中,我们向大家揭秘了什么是不可变系统以及不可变系统相较于传统操作系统具有哪些优势。今天我们继续向大家深入揭秘openKylin不可变系统的特性具体是如何设计和实现的!
UpdateManager SIG基于OSTree技术为原生openKylin操作系统设计并实现了不可变操作系统特性,同时,为尽可能保障在安装、启动、UI界面和用户操作等方面与传统操作系统保持一致,还在文件系统结构、安装方式、启动流程、版本控制方式和版本存储库等特性方面进行了针对OSTree技术特点的设计改造。具体如下:
openKylin不可变系统的目录结构与传统Linux发行版相比有一些不同,主要体现在采用OSTree管理文件系统版本、强调不可变系统的特性以及将用户程序和数据都视为不可变的。这些设计使得其在系统稳定性和可靠性方面有所提升。具体实现如下: ➢ /usr /usr及其下面的所有内容都是只读的。 /usr /bin → /usr/bin /lib → /usr/lib /lib64 → /usr/lib64 /sbin → /usr/sbin ➢ /var 系统运行时状态的存储位置。/var目录是用于存储可变数据的位置,包括各种应用程序的文件、日志、缓存和运行时数据。同时将/home和/root目录,存放至data分区 /media -> var/run/media。 /mnt -> var/mnt /opt -> var/opt /root -> data/root /home->data/home /srv -> var/srv ➢ /sysroot 文件系统根目录,类似于传统Linux中的/目录,使用/sysroot作为其文件系统的根目录,与传统Linux发行版中的/目录有所不同。 ➢ /ostree OSTree在/ostree目录下安装部署,但最终还是要控制系统的/boot目录。这种方式是通过Boot Loader来实现的。当部署一个分支时,会生成/boot/loader/entries/ostree-1- OSTree使用存储库来存储系统的版本控制数据,存储库中包含了系统的不同分支和快照,以及与版本控制相关的元数据。通过存储库,系统管理员可以方便地管理和维护系统的版本。 openKylin社区UpdateManager SIG小组,致力于新一代操作系统不可变系统相关技术研发,包括系统架构、OStree、系统更新组件等,提供不可变系统相关的技术规划、设计、开发、维护和系统升级等服务。openKylin基于OStree的不可变系统将成为数字化未来的重要引领者,为用户带来更加稳定、安全和高效的数字化体验。 SIG主页: https://gitee.com/openkylin/community/tree/master/sig/UpdateManager