本发明涉及操作系统的启动,具体涉及一种linux设备树文件的生成与动态更新方法及系统。
背景技术:
1、arm架构是一种广泛应用于嵌入式系统的处理器架构。其设计宗旨是高性能和低功耗,在过去的几十年里得到了广泛的应用和发展。arm架构具有模块化设计、可定制性和良好的软件支持等特点,使其成为嵌入式系统领域的首选架构之一。在arm启动过程中,通常使用引导加载程序bootloader加载操作系统映像,并可以指定设备树(device treeblob, dtb)文件来描述硬件配置。在linux操作系统中,设备树(device tree)是一种描述硬件配置的数据结构,用于向操作系统提供硬件信息。设备树二进制(dtb)文件则是这种数据结构的二进制表示形式,由引导加载程序bootloader读取并传递给内核,使内核能够识别并初始化硬件设备。设备树文件牵涉面比较广,即增加了新的用于描述设备硬件信息的文本格式,又增加了编译这一文本的工具,同时引导加载程序bootloader也需要支持将编译后的设备树文件传递给 linux 内核。但是,传统的设备树文件保存在固定的位置、不可动态更改的缺点,这限制了系统的灵活性和可扩展性,并且现有技术中的设备树文件可以通过工具任意访问和修改,存在安全性不高的问题。
技术实现思路
1、本发明要解决的技术问题:针对现有技术的上述问题,提供一种linux设备树文件的生成与动态更新方法及系统,本发明旨在实现linux设备树文件的生成与动态更新,实现linux系统对硬件配置的灵活管理和动态调整。
2、为了解决上述技术问题,本发明采用的技术方案为:
3、一种linux设备树文件的生成与动态更新方法,包括下述步骤:
4、s1,获取引导加载程序bootloader传递的加密和压缩后的设备树文件;
5、s2,将加密和压缩后的设备树文件存储到指定路径后执行解密和解压;
6、s3,对解密和解压后的设备树文件进行安全验证,验证通过则跳转步骤s4;否则结束并退出;
7、s4,将解密和解压后的设备树文件传递给linux内核,使得linux内核在初始化硬件设备时根据解密和解压后的设备树文件中的硬件配置信息进行初始化;
8、s5,监测linux内核中的硬件设备的变化信息,若监测到linux内核中的硬件设备的变化信息,则根据硬件变化信息更新解密和解压后的设备树文件,并将解密和解压后的设备树文件生成安全验证信息后加密和压缩替换指定路径中存储的加密和压缩后的设备树文件,并通过设备树热插拔技术支持在不重启系统的情况下动态添加或移除硬件设备。
9、可选地,步骤s1~s5为通过linux内核代码中添加的设备树文件优化和动态更新模块实现。
10、可选地,步骤s1之前还包括在linux内核中添加的设备树文件优化和动态更新模块并进行编译,从而得到包含设备树文件优化和动态更新模块的linux内核,并将包含设备树文件优化和动态更新模块的linux内核替换系统中原有的linux内核。
11、可选地,步骤s2中存储到指定路径是指存储为/sys/firmware/fdt文件。
12、可选地,步骤s3中对解密和解压后的设备树文件进行安全验证包括从解密和解压后的设备树文件中分割提取出原始设备树文件和原始安全校验信息,对原始设备树文件计算得到计算安全校验信息,若计算安全校验信息和原始安全校验信息匹配,则判定验证通过,否则判定验证不通过。
13、可选地,步骤s5包括:
14、s5.1,监测linux内核中的硬件设备的变化信息,若监测到linux内核中的硬件设备的变化信息,则跳转步骤s5.2;
15、s5.2,输出切换到root用户更新设备树文件的提示;
16、s5.3,检测root用户的登录授权操作,若检测到root用户的登录授权操作则跳转步骤s5.4;若超时,则结束并退出;
17、s5.4,根据硬件变化信息更新解密和解压后的设备树文件,并将解密和解压后的设备树文件生成安全验证信息后加密和压缩替换指定路径中存储的加密和压缩后的设备树文件,并通过设备树热插拔技术支持在不重启系统的情况下动态添加或移除硬件设备。
18、可选地,步骤s5.1中的硬件设备的变化信息包括添加或移除硬件设备的信息。
19、此外,本发明还提供一种linux设备树文件的生成与动态更新系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述linux设备树文件的生成与动态更新方法。
20、此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,该计算机程序或指令被编程或配置以通过处理器执行所述linux设备树文件的生成与动态更新方法。
21、此外,本发明还提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被编程或配置以通过处理器执行所述linux设备树文件的生成与动态更新方法。
22、和现有技术相比,本发明主要具有下述优点:本发明包括获取引导加载程序bootloader传递的加密和压缩后的设备树文件,存储到指定路径后执行解密和解压,再进行安全验证,验证通过则传递给linux内核,使得linux内核在初始化硬件设备时根据解密和解压后的设备树文件中的硬件配置信息进行初始化;若监测到linux内核中的硬件设备的变化信息,则更新解密和解压后的设备树文件和加密和压缩后的设备树文件,并通过设备树热插拔技术支持在不重启系统的情况下动态添加或移除硬件设备,从而能够实现linux设备树文件的生成与动态更新,实现linux系统对硬件配置的灵活管理和动态调整。
1.一种linux设备树文件的生成与动态更新方法,其特征在于,包括下述步骤:
2.根据权利要求1所述的linux设备树文件的生成与动态更新方法,其特征在于,步骤s1~s5为通过linux内核代码中添加的设备树文件优化和动态更新模块实现。
3.根据权利要求2所述的linux设备树文件的生成与动态更新方法,其特征在于,步骤s1之前还包括在linux内核中添加的设备树文件优化和动态更新模块并进行编译,从而得到包含设备树文件优化和动态更新模块的linux内核,并将包含设备树文件优化和动态更新模块的linux内核替换系统中原有的linux内核。
4.根据权利要求1所述的linux设备树文件的生成与动态更新方法,其特征在于,步骤s2中存储到指定路径是指存储为/sys/firmware/fdt文件。
5.根据权利要求1所述的linux设备树文件的生成与动态更新方法,其特征在于,步骤s3中对解密和解压后的设备树文件进行安全验证包括从解密和解压后的设备树文件中分割提取出原始设备树文件和原始安全校验信息,对原始设备树文件计算得到计算安全校验信息,若计算安全校验信息和原始安全校验信息匹配,则判定验证通过,否则判定验证不通过。
6.根据权利要求1所述的linux设备树文件的生成与动态更新方法,其特征在于,步骤s5包括:
7.根据权利要求6所述的linux设备树文件的生成与动态更新方法,其特征在于,步骤s5.1中的硬件设备的变化信息包括添加或移除硬件设备的信息。
8.一种linux设备树文件的生成与动态更新系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~7中任意一项所述linux设备树文件的生成与动态更新方法。
9.一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,其特征在于,该计算机程序或指令被编程或配置以通过处理器执行权利要求1~7中任意一项所述linux设备树文件的生成与动态更新方法。
10.一种计算机程序产品,包括计算机程序或指令,其特征在于,该计算机程序或指令被编程或配置以通过处理器执行权利要求1~7中任意一项所述linux设备树文件的生成与动态更新方法。