一种具有应用软件硬件地址无关性的操作系统实现方法技术方案

技术编号:16379406 阅读:25 留言:0更新日期:2017-10-15 12:58
本发明专利技术提供的具有应用软件硬件地址无关性的操作系统实现方法,首先将应用软件以地址无关的方式编译生成;对不支持虚拟内存管理的嵌入式系统,设置具有硬件地址无关性的系统调用;然后操作系统通过读取应用软件的配置信息,启动应用软件;应用软件通过调用硬件地址无关性的系统调用,与硬件资源进行信息交互。使用本方法构建的嵌入式软件系统,实现了嵌入式应用控制软件的完全硬件无关性,可以实现应用软件与硬件平台支持软件分别发布,对嵌入式系统软件的开发、测试,尤其是硬件平台改进升级工作,可以降低成本,提高效率。

An operating system implementation method with application software hardware address independence

The present invention provides the operating system with independent software hardware address implementation method, first application software to address independent ways of compiler in embedded system; does not support virtual memory management, set up with system call independent hardware address; then the operating system through the read configuration information of application software, start the application software; the application software of the independent system call by calling the hardware address, exchange information and hardware resources. The embedded software system using the method of construction, to achieve a complete hardware embedded control software independence, can realize the software and hardware platform support software were released, the embedded system software development, testing, especially the hardware platform upgrade, can reduce cost, improve efficiency.

【技术实现步骤摘要】
一种具有应用软件硬件地址无关性的操作系统实现方法
本专利技术涉及一种具有应用软件硬件地址无关性的操作系统实现方法。
技术介绍
在不支持虚拟内存的嵌入式系统中,应用软件通常在编译、链接时须指定其代码和数据的装载硬件地址,如果把应用软件装在非指定地址,无法正确运行。当前的嵌入式系统中,若其处理器不支持虚拟内存管理,其软件通常都是与硬件地址相关的,编译链接时就需要指定运行的硬件地址和数据区地址。即使使用了嵌入式操作系统,由于提供的系统调用是以普通函数调用方式实现,应用软件需要知道系统调用函数的地址,所以其应用软件部分也与硬件的地址相关。实际上,这样的嵌入式系统往往是底层硬件驱动代码和应用代码是一起编译,生成一个可发布的软件文件。应用软件不能做到与硬件无关,当底层硬件变化时,需要重新编译生成整个嵌入式系统软件,重新发布。加大了软件的测试、验证、发布的成本。尤其在安全相关领域,对应用控制软件要求高,监管严,更换应用控制软件的监管、审查成本很高,仅因为硬件的一些器件代换、升级引起软件重新发布,就会带来对整个软件系统的重新审查,大大提高了该系统更新、发展的成本。
技术实现思路
本专利技术提供一种具有应用软件硬件地址无关性的操作系统实现方法,以解决现有技术存在的问题。本专利技术采用以下技术方案:具有应用软件硬件地址无关性的操作系统实现方法,将应用软件以地址无关的方式编译生成;对不支持虚拟内存管理的嵌入式系统,设置具有硬件地址无关性的系统调用;操作系统通过读取应用软件的配置信息,启动应用软件;应用软件通过调用硬件地址无关性的系统调用,与硬件资源进行信息交互。所述嵌入式系统提供的具有硬件地址无关性的系统调用,通过软件中断方式实现:嵌入式系统提供的不同系统调用对应软件中断不同的中断号,应用软件需要调用系统调用时,通过引发软件中断,将中断号及相应的系统调用所需要的参数传入操作系统内核;操作系统内核中的软件中断服务程序取出中断号及传入的参数,跳转至相应的系统调用函数并执行,函数执行结果返回给应用软件。所述的信息交互是指应用软件获取硬件资源提供的信息,或者应用软件向外发送信号。所述操作系统根据应用软件配置信息为应用软件分配其所需资源,将应用软件的代码加载至运行位置,启动应用软件运行;如果应用软件在其安装的位置运行,则不再进行加载,直接启动应用软件;所述将应用软件的代码加载至运行位置是指由存储位置拷贝到运行位置。所述将应用软件的代码加载至运行位置并启动应用软件运行后,能够进行代码的完整性、合法性检查。本专利技术的有益效果:使用本方法构建的嵌入式软件系统,实现了嵌入式应用控制软件的完全硬件无关性,可以实现应用软件与硬件平台支持软件分别发布,对嵌入式系统软件的开发、测试,尤其是硬件平台改进升级工作,可以降低成本,提高效率。附图说明图1为本专利技术的流程图。图2为本专利技术的软件架构图。图3为软中断调用示意图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细说明。应用软件硬件地址无关性,是指应用软件不限制其所装载、运行位置的硬件地址,能正确的执行。本专利技术针对不支持虚拟内存管理的嵌入式系统,无法通过现有的方式实现应用软件完全硬件地址无关、独立发布运行的问题,提出的一种解决方案,可实现应用软件与底层软件(操作系统、驱动程序)独立更新,即首先可实现应用与底层支持系统可分别升级更新,无需全部软件重新编译、更新;其次,可实现不更改原有软件情况下,通过增加应用软件,提供新的功能。具体包括:将应用软件以地址无关的方式编译生成。对不支持虚拟内存管理的嵌入式系统,设置具有硬件地址无关性的系统调用。应用软件通过调用硬件地址无关性的系统调用,进行信息交互。即,本专利技术的嵌入式软件操作系统以嵌入式操作系统加应用软件的架构方式设计,两部分分别编译、链接、发布。应用软件必须以地址无关方式编译生成。当前通常的编译器均支持地址无关方式编译,如ARM编译器提供-ropi、-rwpi编译选项用于编译生成与具体硬件地址无关的执行代码。如GCC编译器提供-fPIC选项生成地址无关的执行代码。对不支持虚拟内存管理的嵌入式系统,提供具有硬件地址无关性的系统调用。比如本实施方式以软件中断方式实现系统调用。操作系统提供的不同系统调用对应软件中断不同的中断号。应用软件需要调用系统调用时,引发软件中断,通过堆栈将中断号及相应系统调用需要的参数传入操作系统内核。操作系统内核中的软件中断服务程序取出中断号及传入的参数,跳转至相应的系统调用函数并执行,函数执行结果返回给应用软件。此种方式中,应用软件只需要知道操作系统提供的系统调用号(即软中断号),即可通过系统调用实现对硬件部件的访问,无需知道系统调用函数的具体地址。而在一个软件运行中,可粗略分为两种地址相关情况:其一是自身内部各函数及数据存储位置的地址,其二是调用外部函数的具体地址。本专利技术中,自身内部地址通过硬件地址无关的方式编译实现,数据区的基址在加载运行应用程序前已指定,内部访问都是以相对基址位置访问,这样就实现了应用软件自身内部代码与硬件地址的无关性。而调用外部函数的具体地址,本专利技术中指的是上述的系统调用,通过软中断方式实现地址无关性。如前所述,应用软件通过操作系统提供的系统调用接口交互信息,完成其功能。而上述的交互信息是指:1.应用软件获取硬件资源提供的信息,包括采集信息、通信数据等等,2.应用软件向硬件资源发送命令、数据等等。本专利技术中,操作系统通过读取应用软件配置信息,启动应用软件运行。应用软件配置信息,可以采用启动脚本或自定义格式的二进制文件描述应用软件存储位置、运行位置、运行资源要求相关信息,比如应用软件的大小、存储位置、运行位置,数据段基址等,信息的内容依据嵌入式系统具体情况而定。操作系统通过指定的位置或约定的文件名(使用文件系统时)读取应用软件配置信息。操作系统根据应用软件配置信息为应用软件分配其所需资源,加载至运行位置,设置其数据段基址等,然后可启动应用软件运行。如应用软件在其安装的位置运行,则加载步骤可省略。该加载指应用软件代码加载到运行位置。某些系统中软件的存储位置不能运行代码,需要把应用软件加载到能运行代码的存储器中。比如应用程序存储在NANDflash中,此位置不能执行代码,需要把应用软件加载到RAM中运行。由于本专利技术中应用软件具有地址无关性,其加载过程只是由存储位置拷贝到运行位置,并不进行代码的重定位。运行位置代码与执行位置代码内容是相同的,只是存储位置变化而已。因无需进行重定位,可获得在运行中对代码的完整性、合法性进行检查的有益效果。而如果进行了重定位,运行代码发生了变化,显然不能进行运行时的此类检查。上述对代码完整性、合法性的检查,是现有的对代码进行检查的方法。当软件需要重定位后再运行时,现有的检查方法只能在加载过程中或加载前进行,不能在运行过程中进行,因为进行重定位,导致运行代码发生变化,无法在运行中进行此类检查。本专利技术中的操作系统提供的系统调用是对嵌入式系统硬件资源的抽象,调用参数不涉及具体硬件信息。通过系统调用完全屏蔽了具体的硬件信息,从而使应用软件具有完全的硬件无关性。作为通过系统调用屏蔽具体硬件信息的具体实施例,例如一个嵌入式系统中要使用CAN总线进行通信,此时,硬件对象是假定的嵌入式系统中的CAN总线控本文档来自技高网...
一种具有应用软件硬件地址无关性的操作系统实现方法

【技术保护点】
具有应用软件硬件地址无关性的操作系统实现方法,其特征在于:将应用软件以地址无关的方式编译生成;对不支持虚拟内存管理的嵌入式系统,设置具有硬件地址无关性的系统调用;操作系统通过读取应用软件的配置信息,启动应用软件;应用软件通过调用硬件地址无关性的系统调用,与硬件资源进行信息交互。

【技术特征摘要】
1.具有应用软件硬件地址无关性的操作系统实现方法,其特征在于:将应用软件以地址无关的方式编译生成;对不支持虚拟内存管理的嵌入式系统,设置具有硬件地址无关性的系统调用;操作系统通过读取应用软件的配置信息,启动应用软件;应用软件通过调用硬件地址无关性的系统调用,与硬件资源进行信息交互。2.根据权利要求1所述的方法,其特征在于:所述嵌入式系统提供的具有硬件地址无关性的系统调用,通过软件中断方式实现:嵌入式系统提供的不同系统调用对应软件中断不同的中断号,应用软件需要调用系统调用时,通过引发软件中断,将中断号及相应的系统调用所需要的参数传入操作系统内核;操作系统内核中的软件中断服务程序取出中断号及传入...

【专利技术属性】
技术研发人员:杨会新张开法崔文超
申请(专利权)人:河南思维轨道交通技术研究院有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1