【技术实现步骤摘要】
一种基于微内核操作系统的ELF加载方法
[0001]本专利技术涉及计算机
,特别是涉及一种基于微内核操作系统的
ELF
加载方法
。
技术介绍
[0002]可执行与可链接格式
(Executable andLinkable Format
,
ELF)
文件,是一种常见的二进制文件格式,用于存储可执行程序
、
共享库和内核模块等,最初是由
UNIX
系统实验室
(UNIX System Laboratories
,
USL)
开发并发布的,作为应用程序二进制接口
(ApplicationBinary Interface
,
ABI)
的一部分
。ELF
文件格式主要包含三种类型,可重定位文件
(Relocatable File)
:包含适合于与其他目标文件链接来创建可执行文件或者共享目标文件的代码和数据;可执行文件
(Executable File)
:包含适合于执行的一个程序,此文件规定了如何创建一个程序的进程映像;共享目标文件
(Shared ObjectFile)
:包含可在两种上下文中链接的代码和数据
。
[0003]ELF
加载过程主要分为以下关键步骤:
[0004](1)
内核空间准备:在加载
ELF
文件之前,内核会为进程分配内核空
【技术保护点】
【技术特征摘要】
1.
一种基于微内核操作系统的
ELF
加载方法,其特征在于,包括:获取
ELF
加载任务线程上
ELF
文件的文件描述符;从所述文件描述符中读取
ELF
文件头;对所述
ELF
文件头进行检查,并当所述
ELF
文件头通过检查后,从所述
ELF
文件头中读取各段表信息和各节表信息;根据所述段表信息和所述节表信息,获取代码段在
ELF
文件中的位置和大小,以及数据段在
ELF
文件中位置和大小;根据代码段的大小确定需要的闪存的空间大小和代码段存放到所述闪存的起始地址;将代码段需要闪存的空间大小和代码段存放到所述闪存的起始地址存放到第一结构体;根据数据段的大小确定需要的静态随机存储器的空间大小和数据段存放到静态随机存储器的起始地址;将数据段需要静态随机存储器的空间大小和数据段存放到静态随机存储器的起始地址存放到第二结构体;根据数据段在
ELF
文件中位置和大小,申请动态内存读取数据段;根据
ELF
文件中动态段的信息对读取的数据段包含的数据对象的地址进行重定位;将重定位后的数据段,根据所述第二结构体存储的信息拷贝到静态随机存储器;根据所述第一结构体存储的信息,将所述代码段拷贝到闪存;设置所述
ELF
文件加载后的应用程序入口
。2.
根据权利要求1所述的基于微内核操作系统的
ELF
加载方法,其特征在于,所述
ELF
文件头通过检查的条件包括:
e_type
为
ET_DYN。3.
根据权利要求1所述的基于微内核操作系统的
ELF
加载方法,其特征在于,将重定位后的数据段,根据...
【专利技术属性】
技术研发人员:廖斌,肖堃,袁超,王银涛,
申请(专利权)人:四川赛纽斯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。