一种国产平台BIOS启动EXT文件系统的方法与流程

文档序号:16133937发布日期:2018-12-01 00:41阅读:344来源:国知局

本发明涉及计算机bios设计技术,尤其涉及一种国产平台bios启动ext文件系统的方法。



背景技术:

现国产平台操作系统均都基于linux内核进行开发,其文件系统大多采用ext文件系统。

ext文件系统将分区分成多个块组,块组包含以下几个部分。超级块:这个区域记载了数据块和索引节点总量、可用量、每个块和索引节点的大小、日志系统的大小、文件系统的挂载时间等数据。组描述符:记录了超级块、数据块位图、数据块的起止块。索引节点位图:记录了所有索引节点的占用情况、每次写入文件前先要查找这个位图、确定使用的空索引节点。数据位图和其含义类似。索引节点表:记录了所有文件夹、文件的属性和数据块存储号,查找到文件的索引节点后就可以获得数据存储的块号,一次性将数据全部读取出来。数据块:实际存储数据的地方,ext2中每个块的大小可以为1k,2k,4k。

但开源bios平台如udk只支持fat,并没有对linux系统原生态文件系统ext进行支持。



技术实现要素:

为了解决以上技术问题,本发明提出了一种国产平台bios启动ext文件系统的方法。通过在udk开源bios中开发ext驱动,实现国产平台bios直接采用ext文件系统引导操作系统,其有利于国产平台自主化发展和提高其兼容性。

根据ext文件系统需要实现超组块,块描述符,索引节点,文件目录项等数据结构。同时实现识别文件系统、打开文件、读取文件和关闭文件系统函数,将其封装成ext驱动。

在ext驱动入口处安装uefidrivermode的drvierbinding协议和componentname协议,用于驱动的安装和卸载。drvierbinding协议的核心是support、start和stop这三个成员函数。support函数用于检测一个设备是否支持ext驱动,start用于将ext安装到设备上,stop用于将驱动从设备上卸载。在start函数中,读取superblock,并根据其字段判断该分区是否支持ext文件系统,若是便将ext解析函数封装为一个ext协议,并安装在该控制器上。

在bootoption枚举函数中,检索各个装有ext协议的控制器是否有我们所需要的bootloader,如果有为其注册boororder选项。当用户设置此boororder为第一选项时,在loadimage中,添加使用ext驱动数据读取程序段,用于读取ext文件系统中的osloader,以启动操作系统。

附图说明

图1是ext文件系统结构示意图;

图2是ext文件数据结构示意图。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

本发明设计对计算机bios设计,计算机设备包括服务器、笔记本、平板电脑、台式机等;主要适用于基于uefi架构的bios进行设计。

本发明的操作步骤为:

1).封装ext驱动,因为其会为很多控制器提供驱动,所以类型选择uefi_driver。

2).在驱动入口处,安装binding协议。

3).在supported函数中,规定非装有diskio和blockio的控制器不得进入。

4).在start函数中,读取superblock,并根据其字段判断该分区是否支持ext文件系统,若是便将ext解析函数封装为一个ext协议,并安装在该控制器上。

5).在bootoption枚举函数中,检索各个装有ext协议的控制器是否有所需要的bootloader,如果有,便为其注册boororder选项。

6).在loadimage中,在fat读取程序段下面,添加ext数据读取程序段。



技术特征:

技术总结
本发明提供一种国产平台BIOS启动EXT文件系统的方法,属于计算机BIOS设计领域,本发明根据EXT文件系统需要实现超组块,块描述符,索引节点,文件目录项的数据结构,同时实现识别文件系统、打开文件、读取文件和关闭文件系统函数,将其封装成EXT驱动;在UDK开源BIOS中开发EXT驱动,实现国产平台BIOS直接采用EXT文件系统引导操作系统。

技术研发人员:赵瑞东;陈亮甫;吴登勇;刘文颖
受保护的技术使用者:山东超越数控电子股份有限公司
技术研发日:2018.06.08
技术公布日:2018.11.30
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1