一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于C语言虚拟机的操作系统的制作方法

2022-04-27 12:45:06 来源:中国专利 TAG:

基于c语言虚拟机的操作系统
技术领域
1.本发明涉及智能卡虚拟机领域,尤其涉及一种基于c语言虚拟机的操作系统。


背景技术:

2.目前,在智能卡领域,为了方便应用在平台间移植使用,且达到上层应用开发的简化,一般通过虚拟机来屏蔽掉底层平台的不同。现有技术中,一般以智能卡硬件系统为基础,通过软件的方式构造一个基于javacard虚拟机来支持java程序下载、安装、运行的操作系统。
3.但是,现有操作系统存在以下问题:一方面现有操作系统中的java虚拟机是由国外公司开发,因此现有操作系统不具备国内自主知识产权;另一方面现有操作系统中的java虚拟机为面向对象的使用方法,其执行速度较显缓慢,从而导致现有操作系统中的应用程序在某些平台上运行时性能不能达到最佳效果。


技术实现要素:

4.本发明的主要目的在于提供一种基于c语言虚拟机的操作系统,旨在解决现有技术中,在嵌入式开发中,缺少一种性能更高更普适于用户的基于c语言虚拟机的操作系统的技术问题。
5.本发明提供一种基于c语言虚拟机的操作系统,所述基于c语言虚拟机的操作系统包括应用编程接口层、虚拟机层以及全局平台管理层;所述应用编程接口层用于为c语言应用程序提供应用编程接口对应的系统标准库函数;所述虚拟机层用于为c语言应用程序提供运行时环境、虚拟机解释器功能,以实现相应的c语言应用程序功能;所述全局平台管理层用于下载c语言应用程序的目标二进制文件对应的下载脚本,以及实例化安装c语言应用程序。
6.可选的,所述虚拟机层由虚拟机堆栈、虚拟机字节码、运行时数据堆、虚拟机解释器组成。
7.可选的,所述虚拟机堆栈用于存储c语言应用程序的函数参数、变量、操作缓存。
8.可选的,所述运行时数据堆用于存储c语言应用程序的局部数组和结构体变量的虚拟数据集合。
9.可选的,所述虚拟机字节码包含预设个数的c语言应用程序的变量、函数以及表达式对应的伪汇编字节码。
10.可选的,所述虚拟机解释器用于循环获取、解析和执行字节码的实现函数,以实现字节码对应的c语言应用程序功能。
11.可选的,所述基于c语言虚拟机的操作系统用于c语言应用程序下载、安装与运行,其中,所述c语言应用程序中编写的代码包含c语言的变量、函数、表达式和应用编程接口的字节码。
12.可选的,在所述c语言应用程序编译过程中,将所述c语言应用程序对应的函数、变
量和表达式通过前端编译,生成语法树;将语法树根据已定义的虚拟机字节码进行后端编译,生成目标二进制文件。
13.可选的,所述全局平台管理层用于:
14.解析下载脚本对应的c语言应用程序的目标二进制文件的结构中各个组件信息;
15.基于操作系统中的已有数据对各个组件中需要链接的部分进行链接。
16.可选的,所述基于c语言虚拟机的操作系统还包括芯片硬件层、硬件抽象层、核心层;所述芯片硬件层由芯片硬件、固件库和算法库组成;所述硬件抽象层用于对所述芯片硬件层的固件库和算法库进行抽象封装,为操作系统提供统一的基本功能接口;所述核心层用于对所述硬件抽象层进行模块封装,使用所述硬件抽象层所提供的统一的基本功能接口,以实现操作系统中应用编程接口层、虚拟机层以及全局平台管理层的基本功能。
17.本发明提供一种基于c语言虚拟机的操作系统,所述基于c语言虚拟机的操作系统包括应用编程接口层、虚拟机层以及全局平台管理层;所述应用编程接口层用于为c语言应用程序提供应用编程接口对应的系统标准库函数;所述虚拟机层用于为c语言应用程序提供运行时环境、虚拟机解释器功能,以实现相应的c语言应用程序功能;所述全局平台管理层用于下载c语言应用程序的目标二进制文件对应的下载脚本,以及实例化安装c语言应用程序。本发明提供了一种性能更高更普适于用户的基于c语言虚拟机的操作系统,所述操作系统支持c语言应用程序下载、安装与运行,在保障了c语言应用程序的性能需求的同时,满足了c语言应用程序可以跨平台执行的需求。
附图说明
18.图1为本发明实施例方案中涉及的基于c语言虚拟机的操作系统的层级示意图。
19.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
20.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
21.本发明实施例提供了一种基于c语言虚拟机的操作系统。
22.参照图1,图1为本发明基于c语言虚拟机的操作系统一实施例的层级示意图。
23.在本发明基于c语言虚拟机的操作系统一实施例中,所述基于c语言虚拟机的操作系统包括应用编程接口层、虚拟机层以及全局平台管理层;所述应用编程接口层用于为c语言应用程序提供应用编程接口对应的系统标准库函数;所述虚拟机层用于为c语言应用程序提供运行时环境、虚拟机解释器功能,以实现相应的c语言应用程序功能;所述全局平台管理层用于下载c语言应用程序的目标二进制文件对应的下载脚本,以及实例化安装c语言应用程序。
24.本实施例中,所述基于c语言虚拟机的操作系统包括应用编程接口层、虚拟机层以及全局平台管理层。
25.其中,所述应用编程接口层用于为c语言应用程序提供应用编程接口对应的系统标准库函数。c语言应用程序是由开发者按照c语言规则,结合操作系统所提供的应用编程接口来编写的可执行程序。在编译器编写所述c语言应用程序的代码文件时,所编写的代码文件中所述应用编程接口的对应的系统标准库函数是由操作系统的应用编程接口层来定
义的。在c语言应用程序运行时,可以直接调用所述应用编程接口的对应的系统标准库函数,来实现对应的功能。
26.所述虚拟机层用于为c语言应用程序提供运行时环境、虚拟机解释器功能,以实现相应的c语言应用程序功能。虚拟机层是c语言应用程序在操作系统上执行的基础。在编译器编写所述c语言应用程序时,需要结合虚拟机层所定义的虚拟机字节码来对应生成c语言应用程序的代码文件。当运行所述c语言应用程序,通过虚拟机层所提供的运行时环境功能来进行c语言应用程序操作的内存读写等,其中,所述运行时环境功能包括防火墙、生命周期管理、逻辑通道管理、原子和事务机制等功能。当运行所述c语言应用程序,通过虚拟机层所提供的虚拟机解释器功能循环获取c语言应用程序的字节码,并解析和执行这些字节码,实现相应的c语言应用程序功能。
27.所述全局平台管理层用于下载c语言应用程序的目标二进制文件对应的下载脚本,以及实例化安装c语言应用程序。全局平台管理层主要用于操作系统的内容管理,包括认证、密钥管理、数据管理以及下载、安装和删除c语言应用程序的功能。所述全局平台管理层在通过编译器编写完c语言应用程序的实现代码的目标二进制文件后,将目标二进制文件通过转换工具转换成gp格式的下载脚本,再将c语言应用程序的目标二进制文件对应的下载脚本通过全局平台管理层下载到操作系统中,并实例化安装c语言应用程序。在下载安装完成后,通过操作系统的全局平台管理层管理已下载的c语言应用程序和安装的c语言应用程序实例的空间、数据和注册表信息。
28.进一步,一实施例中,所述虚拟机层由虚拟机堆栈、虚拟机字节码、运行时数据堆、虚拟机解释器组成。
29.本实施例中,所述虚拟机层由虚拟机堆栈、虚拟机字节码、运行时数据堆、虚拟机解释器组成。其中,上述虚拟机层的各组成部分分别满足c语言应用程序的编译与解释运行时的对应功能需求。
30.进一步,一实施例中,所述虚拟机堆栈用于存储c语言应用程序的函数参数、变量、操作缓存。
31.本实施例中,所述虚拟机堆栈用于存储c语言应用程序的函数参数、变量、操作缓存。其中,所述虚拟机堆栈包括:参数栈、变量栈、操作栈、方法栈、异常栈。在所述虚拟机堆栈中,所述参数栈用于传递c语言应用程序代码中的函数参数,所述函数参数由堆栈压栈输入,在c语言应用程序代码中的函数执行时从堆栈出栈获取;所述变量栈用于存储c语言应用程序代码中的函数局部变量,其中所述函数局部变量中的数组和结构体以对象索引形式存在;所述操作栈用于存储运算c语言应用程序代码中的表达式的中间结果;所述方法栈用于保存和恢复c语言应用程序代码中的函数调用时的堆栈;所述异常栈用于存储以try\catch关键字所捕获的c语言应用程序代码执行异常时的数据。
32.进一步,一实施例中,所述运行时数据堆用于存储c语言应用程序的局部数组和结构体变量的虚拟数据集合。
33.本实施例中,所述运行时数据堆用于存储c语言应用程序的局部数组和结构体变量的虚拟数据集合。所述运行时数据堆是与用户数据存储区相对应的内存空间,主要用于存储c语言应用程序代码中对应的函数局部数组和结构体变量的实际物理数据,为其虚拟对象提供临时存储空间,所述临时存储空间为系统ram区,与所述虚拟机堆栈隔离。其中,所
述c语言应用程序代码中对应的每个局部数组或结构体变量的对象索引都与运行时数据堆中的地址一一对应。所述运行时数据堆的数据内容还包括包括成员数据、虚拟数据集合安全维护数据,如上下文、大小、类型等。所述运行时数据堆能够统一变量栈中的数据结构,释放虚拟机堆栈压力,并且提供统一的虚拟数据集合结构,保证数组和结构体变量的数据安全,以及对ram数据存储和访问性能优异。
34.进一步,一实施例中,所述虚拟机字节码包含预设个数的c语言应用程序的变量、函数以及表达式对应的伪汇编字节码。
35.本实施例中,所述虚拟机字节码包含预设个数的c语言应用程序的变量、函数以及表达式对应的伪汇编字节码。c语言应用程序可以访问所存储的虚拟机字节码。其中,所述虚拟机所包含的预设个数的伪汇编字节码,在变量方面是包含基础类型的全局变量与局部变量、数组与结构体以及应用结构体;在函数方面是包含进行c语言应用程序所对应系统模块的应用编程接口的调用函数以及普通应用方法的调用函数;在表达式方面是包含c语言应用程序所对应的条件控制语句、运算操作符语句、异常捕获语句等语句。
36.其中,所述虚拟机字节码在基本c语言应用程序对应的字节码定义的基础上新增了部分特有的语言特性:第一,在变量定义时增加const关键字修饰,与存储在ram存储区的普通全局变量不同,增加const关键字修饰的全局变量存储在操作系统的nvm存储区。第二,在函数定义时增加sio关键字修饰,来区分c语言应用程序的应用函数是否允许其他c语言应用程序通过共享接口机制来访问。有sio修饰的函数表示该应用函数声明为共享接口类型,允许其他应用通过共享接口机制访问该函数;没有sio修饰的函数只能在本应用模块中使用,其他应用不能访问。第三,自定义关键字类型表示系统模块的应用编程接口中定义的特殊结构体变量类型,该结构体变量的成员对外不可见,c语言应用程序可以通过应用编程接口层的应用编程接口访问这些结构体变量。第四,异常捕获机制,支持以try\catch关键字来捕获c语言应用程序代码中的异常,捕获后由c语言应用程序处理异常。
37.进一步,一实施例中,所述虚拟机解释器用于循环获取、解析和执行字节码的实现函数,以实现字节码对应的c语言应用程序功能。
38.本实施例中,所述虚拟机解释器用于循环获取、解析和执行字节码的实现函数,以实现字节码对应的c语言应用程序功能。其具体作用流程如下:虚拟机解释器从c语言应用程序的目标二进制文件对应的下载脚本中读取字节码数据,再查找到所述字节码数据对应的代码实现函数后,调用字节码的实现函数,实现字节码对应的c语言应用程序功能。
39.进一步,一实施例中,所述基于c语言虚拟机的操作系统用于c语言应用程序下载、安装与运行,其中,所述c语言应用程序中编写的代码包含c语言的变量、函数、表达式和应用编程接口的字节码。
40.本实施例中,所述基于c语言虚拟机的操作系统用于c语言应用程序下载、安装与运行,其中,所述c语言应用程序中编写的代码包含c语言的变量、函数、表达式和应用编程接口的字节码。所述c语言应用程序中编写的代码是根据已定义的虚拟机字节码进行编译所得的。
41.进一步,一实施例中,在所述c语言应用程序编译过程中,将所述c语言应用程序对应的函数、变量和表达式通过前端编译,生成语法树;将语法树根据已定义的虚拟机字节码进行后端编译,生成目标二进制文件。
42.本实施例中,在所述c语言应用程序编译过程中,将所述c语言应用程序对应的函数、变量和表达式通过前端编译,生成语法树;将语法树根据已定义的虚拟机字节码进行后端编译,生成目标二进制文件。其中,所述c语言应用程序根据其用途分为应用模块、引用模块和系统模块。
43.应用模块的目标二进制文件是实现了运行时环境接口的代码文件集合,操作系统可以访问并调用应用模块的运行时环境接口来执行相应的应用功能。引用模块的目标二进制文件是未实现运行时环境接口的代码文件集合,操作系统不能直接访问该模块中的方法,引用模块只能由应用模块中的方法调用。系统模块的目标二进制文件是包含各种标准应用编程接口的代码文件集合,应用开发者可以在开发时直接调用系统模块中的方法,该模块支持的应用编程接口由操作系统中的应用编程接口层提供;
44.应用模块编译生成的目标二进制文件为.sc文件、.scclib文件;引用模块编译生成的目标二进制文件为.sc文件、.scclib文件;系统模块生成为.scclib文件。其中,.sc文件是可执行目标文件,编译器转换工具可将该二进制文件转换为gp格式的下载脚本;.scclib文件是链接文件,用于编译器在编译应用模块与引用模块时进行链接使用,不会产生下载脚本。
45.进一步,一实施例中,所述全局平台管理层用于:
46.解析下载脚本对应的c语言应用程序的目标二进制文件的结构中各个组件信息;
47.基于操作系统中的已有数据对各个组件中需要链接的部分进行链接。
48.本实施例中,所述全局平台管理层用于,当接收到标准gp格式的下载指令,解析下载脚本对应的c语言应用程序的目标二进制文件的结构中各个组件信息;基于操作系统中的已有数据对各个组件中需要链接的部分进行链接。链接完成后,当接收到标准gp格式的安装指令,实例化安装c语言应用程序。
49.进一步,一实施例中,所述基于c语言虚拟机的操作系统还包括芯片硬件层、硬件抽象层、核心层;所述芯片硬件层由芯片硬件、固件库和算法库组成;所述硬件抽象层用于对所述芯片硬件层的固件库和算法库进行抽象封装,为操作系统提供统一的基本功能接口;所述核心层用于对所述硬件抽象层进行模块封装,使用所述硬件抽象层所提供的统一的基本功能接口,以实现操作系统中应用编程接口层、虚拟机层以及全局平台管理层的基本功能。
50.本实施例中,所述基于c语言虚拟机的操作系统还包括芯片硬件层、硬件抽象层、核心层。
51.其中,所述芯片硬件层由芯片硬件、固件库和算法库组成。所述芯片硬件层搭载操作系统的se的硬件和固件库组成,一般芯片硬件层所包含的芯片硬件是经过安全认证的芯片,经过安全认证的芯片硬件可以保证操作系统的硬件安全功能。
52.所述硬件抽象层用于对所述芯片硬件层的固件库和算法库进行抽象封装,为操作系统提供统一的基本功能接口。在所述基于c语言虚拟机的操作系统中,所述硬件抽象层主要是提供以下基本功能接口,例如:算法接口,如des\aes加解密功能、rsa加解密和产生密钥对功能、ecc加解密、签名验签和产生密钥对功能、sha1\sha2信息摘要功能、sm1\sm4\sm7加解密功能、sm2加解密、签名验签和产生密钥对功能、sm3信息摘要功能、产生随机数功能;通信收发接口,如iso7816协议的初始化、接收和发送功能,iso14443协议的初始化、接收和
发送功能,swp协议的初始化、接收和发送功能、mifare协议的初始化、接收和发送功能;系统安全接口,如芯片安全功能初始化、系统安全存储接口、系统数据安全校验接口。
53.所述核心层用于对所述硬件抽象层进行模块封装,使用所述硬件抽象层所提供的统一的基本功能接口,以实现操作系统中应用编程接口层、虚拟机层以及全局平台管理层的基本功能。所述核心层根据应用c语言应用程序的应用编程接口要求实现如的基本功能:算法封装,主要是根据c语言应用程序的应用编程接口要求将硬件抽象层的算法接口进行统一的封装,为c语言应用程序提供各种计算模式的算法功能;apdu命令封装,在接收数据时将不同通信协议接收到的命令数据统一使用apdu格式传递给操作系统,在发送数据时将apdu数据传递给当前通信协议的发送流程;内存管理,包括nvm和ram内存,主要是提供操作系统内存的分配、回收和记录功能;内存存储和访问功能,主要是针对nvm和ram存储区的内存的读写功能,其中包括事务机制和普通读写功能。
54.本实施例中,提供一种基于c语言虚拟机的操作系统,所述基于c语言虚拟机的操作系统包括应用编程接口层、虚拟机层以及全局平台管理层;所述应用编程接口层用于为c语言应用程序提供应用编程接口对应的系统标准库函数;所述虚拟机层用于为c语言应用程序提供运行时环境、虚拟机解释器功能,以实现相应的c语言应用程序功能;所述全局平台管理层用于下载c语言应用程序的目标二进制文件对应的下载脚本,以及实例化安装c语言应用程序。本发明提供了一种性能更高更普适于用户的基于c语言虚拟机的操作系统,所述操作系统支持c语言应用程序下载、安装与运行,在保障了c语言应用程序的性能需求的同时,满足了c语言应用程序可以跨平台执行的需求。
55.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
56.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
57.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
58.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献