CN117931483A - 操作系统及生成方法、电子设备、存储介质和程序产品 - Google Patents

操作系统及生成方法、电子设备、存储介质和程序产品 Download PDF

Info

Publication number
CN117931483A
CN117931483A CN202410325839.6A CN202410325839A CN117931483A CN 117931483 A CN117931483 A CN 117931483A CN 202410325839 A CN202410325839 A CN 202410325839A CN 117931483 A CN117931483 A CN 117931483A
Authority
CN
China
Prior art keywords
module
micro
operating system
kernel
microkernel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410325839.6A
Other languages
English (en)
Inventor
王春锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Contemporary Amperex Technology Co Ltd
Original Assignee
Contemporary Amperex Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Contemporary Amperex Technology Co Ltd filed Critical Contemporary Amperex Technology Co Ltd
Priority to CN202410325839.6A priority Critical patent/CN117931483A/zh
Publication of CN117931483A publication Critical patent/CN117931483A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请提供一种操作系统及生成方法、电子设备、存储介质和程序产品。操作系统包括微内核模块、微服务模块和云端配置模块,微内核模块与微服务模块之间进行通信,所述云端配置模块与所述微服务模块通信连接,其中:微内核模块,用于向微服务模块提供至少一个内核对象;所述云端配置模块,用于基于代码生成引擎生成配置代码,并发送至所述微服务模块;微服务模块,用于调用至少一个内核对象中的目标内核对象,并基于所述配置代码生成目标内核对象对应的目标服务,将目标服务发送给外部的应用程序模块。如此,基于微服务模块和微内核模块架构的操作系统,其具备安全、可靠、易扩展易移植的特性,提升了操作系统的容错能力。

Description

操作系统及生成方法、电子设备、存储介质和程序产品
技术领域
本申请涉及操作系统技术领域,具体地,涉及一种操作系统及生成方法、电子设备、存储介质和程序产品。
背景技术
汽车开放系统架构(Automotive Open System Architecture,AUTOSAR)标准是一种面向汽车电子系统开发的全球标准化架构,基于AUTOSAR标准构建的一些操作系统,如混合抢占实时多任务操作系统MICROSAR,已经广泛的应用于汽车电子领域。
然而,目前基于AUTOSAR标准构建的一些操作系统仍然沿用宏内核架构,将大量功能集中在内核态实现,导致内核过度膨胀臃肿,不仅增大了对代码库的维护难度,还使得这种操作系统的可移植性较差。
发明内容
本申请主要提供一种操作系统及生成方法、电子设备、存储介质和程序产品,使基于微服务模块和微内核模块架构的操作系统,具备安全、可靠、易扩展易移植的特性,提升了操作系统的容错能力。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供一种操作系统,操作系统包括微内核模块、微服务模块和云端配置模块,微内核模块与微服务模块之间进行通信,云端配置模块与微服务模块通信连接,其中:
微内核模块,用于向微服务模块提供至少一个内核对象;
云端配置模块,用于基于代码生成引擎生成配置代码,并发送至微服务模块;
微服务模块,用于调用至少一个内核对象中的目标内核对象,并基于配置代码生成目标内核对象对应的目标服务,将目标服务发送给外部的应用程序模块。
通过上述技术手段,将操作系统的尽可能多的功能实现由内核态移至用户态的微服务模块,再通过微服务模块调用至少一个内核对象中的目标内核对象,生成目标服务并提供给外部的应用程序模块,以实现符合AUTOSAR标准的操作系统。使操作系统能够具备安全、可靠、易扩展易移植、高性能轻量化的特性,提升了操作系统的容错能力。而且,云端配置模块将符合AUTOSAR标准的操作系统通过配置化实现,使多核操作系统的开发完全摆脱了对手写代码的依赖,开发工具一体化,使得开发的多核操作系统安全性更高。
在一些实施例中,微服务模块包括第一调度单元,第一调度单元与云端配置模块连接,其中:第一调度单元,用于接收云端配置模块发送的配置代码,以及用于基于配置代码和目标内核对象生成目标服务,将目标服务发送给外部的应用程序模块。
通过上述技术手段,以内核、服务中可插拔组件为核心,在可视化环境中创建可配置、可管理的配置代码,并存储在第一调度单元中。从而使多核操作系统的开发完全摆脱了对手写代码的依赖,开发工具一体化,使得开发的多核操作系统安全性更高。
在一些实施例中,代码生成引擎,用于对第一网页请求进行解析,确定至少一个临时文件,并根据至少一个临时文件生成配置代码;其中,第一网页请求是基于用户在可视化页面上的配置操作生成的。
通过上述技术手段,代码生成引擎能够使用户在可视化环境中创建可配置、可管理的配置代码,使多核操作系统的开发完全摆脱了对手写代码的依赖,提高多核操作系统的开发效率。
在一些实施例中,微服务模块还包括进程管理单元,其中:进程管理单元,用于初始化应用程序模块的至少一个进程,并通过启动进程调用微内核模块中的调度模块,控制进程的启动操作,或者通过停止进程调用微内核模块中的调度模块,控制进程的停止操作;其中,进程至少还包括任务进程、事件进程和中断进程。
通过上述技术手段,由进程管理单元调用微内核模块中的调度模块,控制微内核模块中进程的启动、停止、初始化等操作,以实现对微内核模块中执行进程的管理和控制,提高了多核操作系统的效率。
在一些实施例中,微服务模块还包括任务管理单元,其中:任务管理单元,用于通过切换任务调用微内核模块中的线程模块,控制任务进程之间的进程切换操作,或者通过激活任务调用微内核模块中的线程模块,控制任务进程的激活操作,或者通过终止任务调用微内核模块中的线程模块,控制任务进程的终止操作。
通过上述技术手段,由任务管理单元调用微内核模块中的线程模块和调度模块,控制微内核模块中任务的切换、激活、终止等操作,以实现对微内核模块中执行任务的管理和控制,提高了多核操作系统的效率。
在一些实施例中,微服务模块还包括事件管理单元,其中:事件管理单元,用于通过发送事件调用微内核模块中的事件模块,控制事件进程的发送操作,或者通过接收事件调用微内核模块中的事件模块,控制事件进程的接收操作,或者通过清除事件调用微内核模块中的事件模块,控制事件进程的清除操作。
通过上述技术手段,由事件管理单元调用微内核模块中的事件模块,控制微内核模块中事件的发送、接收、清除等操作,以实现对微内核模块中执行事件的管理和控制,提高了多核操作系统的效率。
在一些实施例中,微服务模块还包括告警管理单元、多核管理单元、中断管理单元、内存保护单元和资源管理单元中的至少一项。
通过上述技术手段,微服务模块中还包括其他模块,实现不同的功能,从而使多核操作系统符合AUTOSAR标准,实现AUTOSAR操作系统的功能。
在一些实施例中,微内核模块,还用于接收微服务模块发送的第一调用请求,以及基于第一调用请求,为每一个基础任务标记优先级并执行调度操作;其中,第一调用请求是微服务模块向微内核模块分配基础任务时生成的;或者,微内核模块,还用于接收微服务模块发送的第二调用请求,以及基于第二调用请求,为每一个扩展任务确定调度方式并进行调度操作;其中,第二调用请求是微服务模块向微内核模块分配扩展任务时生成的。
通过上述技术手段,微服务模块对于基础任务和扩展任务使用不同的方式进行调度,提高了任务执行和调度的效率,进而提高了多核操作系统的效率。
在一些实施例中,操作系统还包括组件与服务模块,组件与服务模块和微服务模块之间进行通信,其中:组件与服务模块包括:设备框架单元、命令行界面单元和网络框架单元中的至少一项。
通过上述技术手段,多核操作系统还提供组件与服务模块,以供上层的应用程序模块或外设等进行调用,完善了多核操作系统的功能,提供了多核操作系统的处理能力。
第二方面,本申请实施例提供了一种操作系统的生成方法,生成方法包括:
基于AUTOSAR标准生成微服务模块和微内核模块,微服务模块用于在符合AUTOSAR标准的环境下运行,并实现多核操作系统的功能;
基于微服务模块对微内核模块相应的内核接口进行封装;
获取云端配置模块的代码生成引擎,代码生成引擎用于将用户对微服务模块中的配置以及对微内核模块的调用过程生成与微服务模块相一致的配置代码;
基于微服务模块、微内核模块、内核接口和代码生成引擎,生成操作系统;
其中,在操作系统中,微内核模块用于向微服务模块提供至少一个内核对象,云端配置模块用于基于代码生成引擎生成配置代码,并发送至微服务模块,微服务模块用于调用至少一个内核对象中的目标内核对象,并基于配置代码生成目标内核对象对应的目标服务,将目标服务发送给外部的应用程序模块。
通过上述技术手段,采用微内核模块与微服务模块相结合的结构生成多核操作系统,可以向应用程序模块提供符合AUTOSAR标准的一致性接口,使多核操作系统具备轻量级、安全性、低功耗、组件丰富、快速开发等关键能力。
在一些实施例中,基于AUTOSAR标准生成微服务模块和微内核模块,包括:
基于AUTOSAR标准生成包含多核操作系统中多个对象的微服务模块和微内核模块。
通过上述技术手段,基于AUTOSAR标准生成微服务模块和微内核模块,从而使多核操作系统不仅符合AUTOSAR标准,还具备安全、易扩展移植等特性。
在一些实施例中,基于AUTOSAR标准生成包含多核操作系统中多个对象的微服务模块,包括:
生成第一调度单元,第一调度单元用于管理微服务模块中的各个对象参数初始化、对象启停、应用初始化、中断初始化以及外部接口调用;
基于AUTOSAR标准生成微服务模块中多个对象的数据结构;
基于第一调度单元和微服务模块中多个对象的数据结构生成微服务模块。
通过上述技术手段,能够生成符合AUTOSAR标准的微服务模块,不仅简化软硬件开发过程,提升多核操作系统的处理效率和响应速度。
在一些实施例中,基于AUTOSAR标准生成包含多核操作系统中多个对象的微内核模块,包括:
生成第二调度单元,第二调度单元用于管理微内核模块中的各个内核参数初始化、内核启停、当前核获取以及内核调度;
基于AUTOSAR标准生成微内核模块中多个对象的数据结构;
基于第二调度单元和微内核模块中多个对象的数据结构生成微内核模块。
通过上述技术手段,能够生成符合AUTOSAR标准的微内核模块,采用这种结构的多核操作系统,不仅简化软硬件开发过程,提升多核操作系统的处理效率和响应速度。
在一些实施例中,获取云端配置模块的代码生成引擎,包括:
生成多种配置文件生成模板,不同的配置文件生成模板对应不同的编译器;
基于配置文件生成模板,生成代码生成引擎。
通过上述技术手段,用户通过在可视化环境中生成配置代码,使多核操作系统的开发完全摆脱了对手写代码的依赖,进而使得开发的多核操作系统具备更高的安全性和稳定性。
第三方面,本申请实施例提供了一种电子设备,电子设备包括存储器和处理器,其中:
存储器,用于存储能够在处理器上运行的计算机程序;
处理器,用于执行存储器中的计算机程序,以实现如第二方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第二方面所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,包括计算机程序或指令,计算机程序或指令被处理器执行时,实现如第二方面所述的方法。
本申请提供了一种操作系统及生成方法、电子设备、存储介质和程序产品,将操作系统的尽可能多的功能实现由内核态移至用户态的微服务模块,再通过微服务模块调用至少一个内核对象中的目标内核对象,生成目标服务并提供给外部的应用程序模块,以实现符合AUTOSAR标准的操作系统。使操作系统能够具备安全、可靠、易扩展易移植、高性能轻量化的特性,提升了操作系统的容错能力。
附图说明
图1为本申请实施例提供的一种操作系统的组成结构示意图一;
图2为本申请实施例提供的一种操作系统的组成结构示意图二;
图3为本申请实施例提供的一种代码生成引擎的工作流程示意图;
图4为本申请实施例提供的一种微服务模块的组成结构示意图;
图5为本申请实施例提供的一种进程管理单元的工作流程示意图;
图6为本申请实施例提供的一种任务管理单元的工作流程示意图;
图7为本申请实施例提供的一种任务管理单元的数据结构示意图;
图8为本申请实施例提供的一种事件管理单元的工作流程示意图;
图9为本申请实施例提供的一种微内核模块的硬件设计示意图;
图10为本申请实施例提供的一种微内核模块的调度流程设计示意图;
图11为本申请实施例提供的一种操作系统的组成结构示意图三;
图12为本申请实施例提供的一种操作系统的生成方法步骤流程示意图一;
图13为本申请实施例提供的一种操作系统的生成方法步骤流程示意图二;
图14为本申请实施例提供的一种操作系统的生成方法步骤流程示意图三;
图15为本申请实施例提供的一种操作系统的生成方法步骤流程示意图四;
图16为本申请实施例提供的一种电子设备的具体硬件结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
AUTOSAR标准是由全球各家汽车制造商、零部件供应商以及各种研究、服务机构共同参与的一种汽车电子系统的合作开发框架,它组织定义了汽车电控单元硬件驱动程序的接口规范,可以统一不同芯片相同模块的程序接口和调用。相关技术中,一些基于AUTOSAR标准构建的操作系统,如MICROSAR操作系统、RTA操作系统和EB Tresos安全操作系统等,都是目前广泛使用的车载操作系统。
其中,MICROSAR操作系统是一种混合抢占实时多任务操作系统,完全符合AUTOSAR标准。MICROSAR操作系统的主体思想是使得软件设计得更易于管理,软件系统更易于移植、裁剪,以及更好的维护性和质量保证。因此,MICROSAR操作系统具有静态操作系统、完全抢占、事件触发、功能和大小可配置等特点。
在软件定义汽车大趋势下,芯片+操作系统+中间件+应用算法软件+数据是实现智能汽车的关键,操作系统是汽车生态发展的灵魂。目前,符合AUTOSAR标准的操作系统往往依赖于开发企业的特殊硬件与运行环境进行开发,购买的代码包难以直接应用于国内的生产的芯片。并且,一些基于AUTOSAR标准构建的操作系统,如MICROSAR操作系统将大量功能集中在内核态实现,内核处于特权级,各种应用处于非特权级,导致内核过度膨胀臃肿,不仅增大了对代码库的维护难度,还使得这种操作系统的可移植性较差。
基于上述技术问题,本申请实施例提供了一种操作系统及生成方法、电子设备、存储介质和程序产品,将操作系统的尽可能多的功能实现由内核态移至用户态的微服务模块,再通过微服务模块调用至少一个内核对象中的目标内核对象,生成目标服务并提供给外部的应用程序模块,以实现符合AUTOSAR标准的操作系统。使操作系统能够具备安全、可靠、易扩展易移植、高性能轻量化的特性,提升了操作系统的容错能力。
下面通过附图及具体实施例对本发明做进一步的详细说明。
图1为本申请实施例提供的一种操作系统的组成结构示意图一。如图1所示,操作系统10包括微内核模块101、微服务模块102和云端配置模块106,微内核模块101与微服务模块102之间进行通信,云端配置模块106与微服务模块102通信连接,其中:
在本申请实施例中,微内核模块101是运行在芯片的硬件抽象层上的模块。将操作系统10中部分非核心的功能从内核中拆分出来,作为一个独立的服务,即微服务模块102,以用户态运行于单独的进程中,同时,内核中仅保留最核心的功能,这部分的功能称为微内核模块101,以内核态运行于内核中。微内核模块101与微服务模块102之间以进程间通信(InterProcess Communication,IPC)的方式或其他微内核模块101提供的消息传递机制进行通信。
示例性地,在本申请实施例中,微内核模块101可以为微内核,微服务模块102可以为微服务。
需要说明的是,本申请实施例中操作系统10的设计基于AUTOSAR软件架构,符合AUTOSAR操作系统标准要求,将各功能模块进行解耦和复用后,设计生成了微内核模块101和微服务模块102。
微内核模块101,用于向微服务模块102提供至少一个内核对象。
在本申请实施例中,微内核模块101运行于内核态,是一种能够向微服务模块102提供必要服务的操作系统内核。
微内核模块101中可以包括至少一个内核对象,其中,如图2所示,内核对象可以是多线程单元1011、事件单元1012、调度单元1013、信号量单元1014、邮箱单元1015、消息队列单元1016、定时器单元1017、内存管理单元1018等,这些对象是多核操作系统中最基本、核心的部分,能够用来对存储资源进行管理、实现与更底层的硬件的紧密相关的处理,进程、线程间的调度、中断处理等功能。
可以理解,微内核模块101中还可以包括其他对象,具体可以基于微服务模块102需要实现的功能进行设计,以满足微服务模块102调度的需要。
云端配置模块106,用于基于代码生成引擎1061生成配置代码,并发送至微服务模块102。
在本申请实施例中,云端配置模块106也可以称为云端配置系统,可以是运行在云端,与微服务模块102通过网络进行相互通信的模块。
云端配置模块106上可以运行代码生成引擎1061,代码生成引擎1061可以根据目标内核对象的内核接口103,确定微服务模块102调用该内核接口103需要实现的功能,生成对应的配置代码2,并发送至微服务模块102。其中,配置代码可以是能够实现微服务模块102中的各种功能的程序代码,例如图2所示的进程管理单元1022的功能、任务管理单元1023的功能、告警管理单元1024的功能等。
需要说明的是,云端配置模块106生成的配置代码是符合AUTOSAR标准的,且符合内核接口103的标准,即能通过内核接口103与微内核模块101进行通信。
微服务模块102,用于调用至少一个内核对象中的目标内核对象,并基于配置代码生成目标内核对象对应的目标服务,将目标服务发送给外部的应用程序模块105。
在本申请实施例中,微服务模块102运行于用户态,可以是用于对微内核模块101中的事件、任务、进程或对象进行管理的模块。
微服务模块102可以通过微内核模块101提供的内核接口103来与微内核模块101进行通信。需要说明的是,微内核模块101通过不同的内核接口103调用的内核对象不相同。
在本申请实施例中,微服务模块102、微内核模块101、内核接口103及运行时环境(Runtime Environment,RTE)模块104,即AUTOSAR运行时环境,共同构成了本申请实施例提供的一种多核操作系统,这种多核操作系统能够运行在多芯片,即多核组成的硬件上。
在本申请实施例中,云端配置模块106可以预先根据目标内核对象的内核接口103,确定微服务模块102需要实现的功能,对应于每一个功能生成对应的配置代码,并存储在微服务模块102中,或者实时的根据需要生成配置代码由云端配置模块发送至微服务模块102使用。当操作系统10基于应用程序模块105需要调用目标服务的需求,需要实现微服务模块102实现目标服务的功能时,微服务模块102可运行对应的配置代码。
其中,外部的应用程序模块105可以是运行于AUTOSAR操作系统上的应用程序,这些应用程序基于符合AUTOSAR标准的接口与操作系统10进行通信,如外部的应用程序通过RTE模块104向微服务模块102发送请求消息,请求调用目标服务时,微服务模块102可以基于该请求确定需要调用的目标内核对象。由于微服务模块102可用于管理微内核模块101中的对象。因此,微服务模块102在运行目标服务对应的配置代码后,该配置代码实现微服务模块102中某一单元的相应功能,该单元通过内核接口103调用该目标内核对象,将目标内核对象进行处理后,打包成目标服务,供应用程序模块105调用。
本申请实施例提供了一种操作系统,将操作系统的尽可能多的功能实现由内核态移至用户态的微服务模块,再通过微服务模块调用至少一个内核对象中的目标内核对象,生成目标服务并提供给外部的应用程序模块,以实现符合AUTOSAR标准的操作系统。使操作系统能够具备安全、可靠、易扩展易移植、高性能轻量化的特性,提升了操作系统的容错能力。而且,云端配置模块将符合AUTOSAR标准的操作系统通过配置化实现,使多核操作系统的开发完全摆脱了对手写代码的依赖,开发工具一体化使得开发的多核操作系统安全性更高。
在本申请的又一实施例中,图2为本申请实施例提供的一种操作系统的组成结构示意图二。如图2所示,微服务模块102包括第一调度单元1021,第一调度单元1021与云端配置模块106连接,其中:第一调度单元1021,用于接收云端配置模块106发送的配置代码,以及用于基于配置代码和目标内核对象生成目标服务,将目标服务发送给外部的应用程序模块105。
其中,第一调度单元1021,也可以称为CEOS调度器。当第一调度单元1021在微服务模块102中以进程的方式运行时,也可以称为CEOS服务。
CEOS服务以AUTOSAR操作系统中相关对象,例如Core、Application、Task、Interrupt Service、Alarm、Counter、Resource等为输出目标,以微内核模块101提供的模块内核接口103,即API接口为输入对象,通过云端配置模块106生成微服务模块102的配置代码,实现AUTOSAR操作系统功能。
如前述,对于微服务模块102来说,不同的单元对应于不同的配置代码。云端配置模块106在生成所有单元对应的配置代码后,可将其存储至第一调度单元1021中。这样,微服务模块102通过RTE模块104收到应用程序模块105需要调用目标服务的请求后,第一调度单元1021可确定需要实现的功能,然后将存储的对应于实现该功能的配置代码进行调度和运行,基于该配置代码通过内核接口103调用目标内核对象。进一步地,第一调度单元1021将目标内核对象进行处理,并基于配置代码生成目标服务,以供应用程序模块105进行调用。
可以理解,基于上述说明,第一调度单元1021是用于管理微内核模块101中的多个对象的。第一调度单元1021可将微内核模块101中的对象通过内核接口103调用过来后,对外部的应用程序模块105提供符合AUTOSAR标准的多核操作系统的功能。
在一些实施例中,继续参阅图2,代码生成引擎1061,用于对第一网页请求进行解析,确定至少一个临时文件,并根据至少一个临时文件生成配置代码;其中,第一网页请求是基于用户在可视化页面上的配置操作生成的。
用户可以根据微内核模块101提供的内核接口103,确定需要实现的微服务模块102的功能,在可视化页面上通过点击操作配置实现该功能需要的属性和方法,以及各方法或属性之间的继承关系。完成配置操作后,用户点击确认,可生成第一网页请求,也可称为Ajax请求。其中,第一网页请求可以是以Json配置文件的方式呈现,或者也可以是以其他方式,在此不做具体限定。
图3为本申请实施例提供的一种代码生成引擎的工作流程示意图。如图3所示,用户完成配置操作201后,生成第一网页请求。代码生成引擎1061可进一步对第一网页请求进行报文解析202操作,例如,可采用文档对象模型(Document Object Model,DOM)解析的方法,提取第一网页请求中的XML信息,生成图3中所示的多个临时文件203,示例性地,临时文件203可以包括Ceos Process.cexml 2031、Ceos Task.cexml 2032、Ceos.Isr.cexml2033、Ceos Alarm.cexml 2034、Ceos Event.cexml 2035、Ceos Core.cexml 2036、CeosBasic.cexml 2037等,也可称为CEXML文件。可以理解,微服务模块102中不同的单元对应的配置代码不相同,因而用户执行的配置操作也不相同,对第一网页请求进行解析生成的CEXML文件也不相同。
进一步地,可将微服务模块102中不同单元对应的CEXML文件均载入到内存,组成一棵DOM树。在本申请实施例中,DOM树是由图3中CEXML文件所在的一列临时文件组成的。
然后,代码生成引擎中1051的生成模块204可以根据DOM树中节点以及节点之间的关系,解析CEXML文件,进一步根据微内核模块101提供的内核接口103,如进程-Process2041、任务-Task 2042、中断-Isr 2043、告警-Alarm 2044、事件-Event 2045、内核-Core2046、基础-Basic 2047、接口-Rte 2048等,配置相应的属性和方法,生成配置代码205,示例性地,配置代码205可以包括Ceos ProcessCfa.hCeos Process PBcfa.c 2051、CeosTask Cfa.h Ceos Task PBcfa.c 2052、Ceos Isr CfahCeos Isr Pbcfac Ceos_Bsp_EntryAsm_PBcfg.asm2053、Ceos AlarmCfahCeos AlarmPBcta.c 2054、CeosEventCfa.hCeos Event PBcfa.c. 2055、Ceos Core Cfa.hCeosCore PBcfa.c 2056、CeosCfa.hCeos Types Cfa.h 2057、Ceos Rte.hCeos Rte OsApp.c 2058等。
需要说明的是,可视化页面可以设置在云端配置模块上,也可以设置在其他与云端配置模块通信连接的终端设备上。并且,代码生成引擎1061可以同时向多个用户呈现同一可视化页面,供多个用户在同一可视化页面上同时进行配置操作,以配置微服务模块102中实现同一功能的单元;或者,代码生成引擎1061还可以同时向多个用户呈现不同的可视化页面,以使多个用户同步配置微服务模块102中实现不同功能的单元。
本申请实施例提供了一种操作系统,以微内核模块、微服务模块中可插拔组件为核心,在可视化环境中创建可配置、可管理的配置代码。云端配置模块将符合AUTOSAR标准的操作系统通过配置化实现,使多核操作系统的开发完全摆脱了对手写代码的依赖,开发工具一体化使得开发的多核操作系统安全性更高。
在本申请的又一实施例中,继续参阅图2,微服务模块102还包括进程管理单元1022,其中:
进程管理单元1022,用于初始化应用程序模块105的至少一个进程,并通过启动进程调用微内核模块101中的调度模块,控制进程的启动操作,或者通过停止进程调用微内核模块101中的调度模块,控制进程的停止操作。
其中,进程至少还包括任务进程、事件进程和中断进程。
图4为本申请实施例提供的一种微服务模块的组成结构示意图。如图4所示,微服务模块102中的多个具有不同功能的单元是以“进程”的方式运行在微服务模块102中的,也可以是以“服务”的方式运行在微服务模块102中。示例性地,图2中的任务管理单元1023在微服务模块102中运行时,以任务服务10212的方式存在。OS服务107在微服务模块102中运行时,以OS应用服务10211的方式存在。相应地,中断管理单元1027在微服务模块102中运行时,以中断服务10213的方式存在;资源管理单元1029在微服务模块102中运行时,以资源服务10214的方式存在;事件管理单元1025在微服务模块102中运行时,以事件服务10215的方式存在;多核管理单元1026在微服务模块102中运行时,以内核管理10216的方式存在;告警管理单元1024在微服务模块102中运行时,以告警服务10217的方式存在。需要说明的是,图4所示仅为图2中微服务模块中包括的部分单元运行时的示意图。
进一步地,RTE模块104为图2中RTE模块104,也可以称为AUTOSAR运行期系统,应用程序模块105通过RTE模块104与微服务模块102中运行的进程或服务进行交互。
需要说明的是,考虑到安全因素,微服务模块102中的对象在运行时通过内核动态加载成服务实例。微服务模块102中包括注册到内核的服务,能够通过RTE模块104与应用程序模块105进行交互,并通过内核接口103调用微内核模块101中的内核对象。OS服务107中包括未注册到内核的服务,可通过内核接口103与微内核模块101中的内核对象进行交互。
图5为本申请实施例提供的一种进程管理单元的工作流程示意图。如图5所示,进程管理单元1022可以通过启动进程10222、停止进程10223和初始化进程10221等进程,用于管理微内核模块101中的进程。
其中,进程管理单元1022的数据结构中包含的属性和方法如下表1所示:表1
在本申请实施例中,微服务模块102中的第一调度单元1021调度运行进程管理单元1022的配置代码,根据应用程序模块105的运行时的服务需求,对生成的任务进程10224、事件进程10226或中断进程10225通过初始化进程10221进行执行初始化操作。还可以运行该配置代码调用微内核模块101中的调度模块,即图5中的内核调度模块1019,将上述进程分配至微内核模块101运行,并进一步通过进程管理单元1022实现对微内核模块101中运行的这些进程管理的功能。具体地,微服务模块102可通过启动进程10222调用微内核模块101中的内核调度模块1019,以及通过停止进程10223调用微内核模块101中的内核调度模块1019,以使内核调度模块1019执行控制微内核模块101中运行进程的启停的操作。
需要说明的是,进程管理单元1022还可以初始化其他类型的进程。上述初始化进程10221、启动进程10222、停止进程10223均为进程管理单元1022运行时在微服务模块102中的运行,用于管理微内核模块101中进程运行的相关进程。
在一些实施例中,如图2所示,微服务模块102还包括任务管理单元1023,其中:任务管理单元1023,用于通过切换任务10232调用微内核模块101中的线程模块,控制任务进程之间的进程切换操作,或者通过激活任务10234调用微内核模块101中的线程模块,控制任务进程的激活操作,或者通过终止任务10233调用微内核模块中的线程模块,控制任务进程的终止操作。
在本申请实施例中,图6为本申请实施例提供的一种任务管理单元的工作流程示意图。如图6所示,任务管理单元1023可以通过静态初始化任务10231对上述任务进程进行静态初始化操作。并通过切换任务10232、激活任务10234、终止任务10233等,控制微服务模块102执行相应的操作。
图7为本申请实施例提供的一种任务管理单元的数据结构示意图。如图7所示,任务管理单元1023的数据结构表301可包括多个属性以及多个属性各自对应的方法,其中,对于“栈分配”这一属性,可采用任务栈设计原则302对微内核模块101运行的任务进行进程管理。其中,任务栈设计原则302可以包括:(1)采用内存池管理,由底入顶。(2)未用部分用DEADDEAD填充。(3)最小不能小于32bit。也就是说,多核操作系统可以预先为任务管理单元1023分配一块内存池,并以栈的方式设计这块内存,每个任务进程完成静态初始化操作后,通过向任务管理单元1023申请,由任务管理单元1023为其分配栈,并在初始化栈时将未分配给任务进程的栈使用关键字DEADDEAD进行填充。如此,能够通过识别关键字,观察栈的使用量,以及是否有栈溢出的情况,便于对栈的使用有一个全面的统计。
对于数据结构表301中“任务句柄”这一属性,可由线程句柄303来实现,示例性地,线程句柄303可以包括对象(rt_object)3031、对象列表(list)3032、线程列表(tlist)3033、线程当前栈的位置(sp)3034、线程函数地址(entry)3035、内存栈的地址(stack_addr)3036、内存栈的大小(stack_size)3037、错误代码(error)3038、初始化优先级(init_priority)3039等,其中,对象3031可以包括名字(nanme)30311、类型(type)30312和标志位(flags)30313。
在本申请实施例中,微服务模块102中的第一调度单元1021调度任务管理单元1023的配置代码,通过调用微内核模块101中的线程模块,即图6中的内核线程模块10110,实现静态初始化任务10231对任务进程的静态初始化操作。
进一步地,在任务进程的不同运行周期,第一调度单元1021调度运行任务管理单元1023中切换任务10232,由切换任务10232调用微内核模块101中的线程模块和微内核模块101中的调度模块,即图6中的内核线程模块10110和内核调度模块1019,实现对不同的任务进程之间的切换操作;或者,第一调度单元1021调度运行任务管理单元1023中的终止任务10233,由终止任务10233调用微内核模块101中的内核线程模块10110和内核调度模块1019,实现对任务进程的终止操作;或者,第一调度单元1021调度运行任务管理单元1023中的激活任务10234,由激活任务10234调用微内核模块101中的内核线程模块10110和内核调度模块1019,实现对任务进程的激活操作。
需要说明的是,上述静态初始化任务10231、切换任务10232、终止任务10233、激活任务10234在微服务模块102中可以进程的方式运行,并执行相关的调用操作。
在一些实施例中,如图2所示,微服务模块102还包括事件管理单元1025,其中:事件管理单元1025,用于通过发送事件10252调用微内核模块101中的事件模块,控制事件进程的发送操作,或者通过接收事件10253调用微内核模块101中的事件模块,控制事件进程的接收操作,或者通过清除事件10254调用微内核模块101中的事件模块,控制事件进程的清除操作。
图8为本申请实施例提供的一种事件管理单元的工作流程示意图。如图8所示,事件管理单元1025可以通过静态初始化事件10251、发送事件10252、接收事件10253以及清除事件10254等,管理微内核模块101中的进程。
其中,事件管理单元1025的数据结构设计时可以包含多个属性以及各自对应的方法,其中,多个属性可以包括ID、Event名称、Event句柄等。
在本申请实施例中,微服务模块102中的第一调度单元1021调度运行事件管理单元1025的配置代码,通过调用微内核模块101中的事件模块,即图8中所示的内核事件模块10111,实现静态初始化事件10251对事件进程的静态初始化操作。
进一步地,根据事件进程的运行特征,在事件进程的不同运行时期,第一调度单元1021调度运行事件管理单元1025中的发送事件10252,由发送事件10252调用微内核模块101中的内核事件模块10111,实现对事件进程的发送操作;或者,第一调度单元1021调度运行事件管理单元1025中的接收事件10253,由接收事件10253调用微内核模块101中的内核事件模块10111,实现对事件进程的接收操作;或者,第一调度单元1021调度运行事件管理单元1025中的清除事件10254,由清除事件10254调用微内核模块101中的内核事件模块10111,实现对事件进程的清除操作。
需要说明的是,上述静态初始化事件10251、发送事件10252、接收事件10253、清除事件10254在微服务模块102中可以进程的方式运行,并执行相关的调用操作。
在一些实施例中,如图2所示,微服务模块102还包括告警管理单元1024、多核管理单元1026、中断管理单元1027、内存保护单元1028和资源管理单元1029中的至少一项。
在本申请实施例中,微服务模块102中还可以包括用于处理告警相关进程的告警管理单元1024(或称为Alarm管理单元)、用于管理、控制进程在多个核上运行的多核管理单元1026、用于处理中断相关进程的中断管理单元1027、用于检查资源防止内存溢出的内存保护单元1028,用于管理内存资源、硬件资源等资源分配的资源管理单元1029等,这些单元都是通过调用微内核模块101提供的内核接口103来管理、控制微内核模块101对于进程、任务、事件等的执行过程。
还需要说明的是,微服务模块102中还可以包括其他单元,用于实现符合AUTOSAR标准的多核操作系统的功能。可以理解,对于上述微服务模块102中包含的单元以及其他单元,第一调度单元1021在调度运行其对应的配置代码时,每一单元都可能包括不同的进程,这些进程通过内核接口103调用微内核模块101中的相应模块,来执行相应的操作,以实现微服务模块102中调用的该模块的单元所需向应用程序模块105提供的功能。
本申请实施例提供了一种操作系统,由微服务模块中的不同单元根据不同的进程调用微内核模块的相应接口,以实现对微内核模块中执行进程的管理和控制,实现了对中断等进程的快速处理,提高了多核操作系统的效率。
在本申请的又一实施例中,图9为本申请实施例提供的一种微内核模块的硬件设计示意图。微内核模块101是在由至少一个芯片组成的内核芯片上运行的,因此,为保障多核操作系统在内核芯片的正常运行,实现符合AUTOSAR标准的多核操作系统的功能,需要对微内核模块101的架构进行设计。
如图9所示,微内核模块101的硬件抽象层可划分为libcpu抽象层L1、操作系统运行的基本环境层L2以及开发环境层L3三层。其中,libcpu抽象层L1可以是中央处理器(Central Processing Unit,CPU)的架构设计,包括全局中断开关函数L11、线程上下文切换L12、时钟节拍配置L13、Cache处理L14等功能的相关实现和具体执行。对于操作系统运行的基本环境层L2,该层可用于提供板级支持包(Board Support Package),具体可以包括CPU内部寄存器L21、编译器支持L22、时钟驱动L23、中断控制器驱动L24、向量表初始化L25等功能的相关实现和具体执行。对于开发环境层L3,可以包括GHS(Green Hills Software)编译选项修改L31、链接文件L32等功能的相关实现和具体执行。
微内核模块101采用面向对象的设计思想进行设计,将系统级的基础设施都设计为一种内核对象。在设计生成微内核模块101的过程中,首先,设计微内核模块101的硬件组成如上述图9所示。进一步地,可以基于下述实施例,为微内核模块101设计符合AUTOSAR标准的调度方式,以进行任务调度。
在一些实施例中,图10为本申请实施例提供的一种微内核模块的调度流程设计示意图。如图10所示,微内核模块101,还用于接收微服务模块102发送的第一调用请求,以及基于第一调用请求,为每一个基础任务401标记优先级并执行调度操作;其中,第一调用请求是微服务模块102向微内核模块101分配基础任务401时生成的。
在本申请实施例中,调度功能是微内核模块101的核心功能之一,也就是负责任务之间进行切换和执行的功能。如图10所示,微内核模块可101以用于调度、执行微服务模块向其发布的、符合AUTOSAR标准的基础任务401或扩展任务402,其中,这些基础任务401附在微服务模块102向微内核模块101发送的第一调用请求中,这些扩展任务402附在微服务模块102向微内核模块101发送的第二调用请求中。
其中,基础任务401可以理解为微内核模块101一次就能够执行完的任务,扩展任务402可以理解为需要微内核模块101一直执行的任务。基础任务401可以归类为初始化任务403(Init Task)或周期任务404(Periodic Task),扩展任务402可以归类为周期任务404或事件任务405(Event Task)。
对于基础任务401,其运行时存在运行状态4013(Running)、就绪状态4012(Ready)和挂起状态4011(Suspend)三种不同的状态。微内核模块101收到基础任务401后,开始调度(Start)并运行基础任务401,使基础任务401进入运行状态4013。处于运行状态4013的基础任务401可能被高优先级的基础任务401或被中断、被抢占(Preemt)从而进入就绪状态4012,且同一芯片内核中任意时刻只会存在一个基础任务401处于运行状态4013,任务结束后终止,(Terminate)将自己挂起进入挂起状态4011。用户触发任务(Active)后,处于就绪状态4012的基础任务401由微内核模块101决定是否进入运行状态4013。
由于AUTOSAR标准规定,任务是基于优先级进行调度的,因此,微内核模块101可以为每一个基础任务401分配优先级。对于基础任务401,设计其调度原则为:根据微内核模块101的优先级分配原则,0为最高优先级,基础任务401按微内核模块101的执行顺序或微服务模块102向微内核模块101分配任务的顺序,从0向后分配优先级。从而实现微内核模块101对基础任务401基于优先级的调度。
或者,微内核模块101,还用于接收微服务模块102发送的第二调用请求,以及基于第二调用请求,为每一个扩展任务402确定调度方式并进行调度操作;其中,第二调用请求是微服务模块102向微内核模块101分配扩展任务时生成的。
在本申请实施例中,如图10所示,与上述基础任务401相比,扩展任务402多了一个等待状态4024(Waiting)。当扩展任务402的运行需要等待某一或某些事件被置位时,扩展任务402就可以进入就绪状态4012,等待满足条件后就进入运行状态4013。
如前述,根据AUTOSAR标准规定,任务是基于优先级进行调度的,因此,微内核模块101可以为每一个扩展任务402分配优先级。对于扩展任务402,其调度策略可以为:微内核模块101提供了信号量、事件集、互斥量线程间同步的三种方式对扩展任务402的执行的优先级进行设计,以为微服务模块102提供服务。在本申请实施例中,扩展任务402中的任务或事件处理优先级可以事件集的方式确定。
本申请实施例提供一种操作系统,微服务模块对于基础任务和扩展任务使用不同的方式进行调度,提高了任务执行和调度的效率和多核操作系统的效率。
在本申请的又一实施例中,图11为本申请实施例提供的一种操作系统的组成结构示意图三。如图11所示,操作系统10还包括组件与服务模块108,组件与服务模块108和微服务模块102之间进行通信,其中:组件与服务模块108包括:设备框架单元1081、命令行界面单元1082和网络框架单元1083中的至少一项。
在本申请实施例中,如图11所示,多核操作系统10运行在内核芯片109上,内核芯片109可以是例如E3、CCFC2007、KUNGFU等芯片中的其中一个或多个芯片。
多核操作系统10还可以包括组件与服务模块108,该模块可以用于为上层的应用程序模块105进行调用,除了多核操作系统10,还可能包括外设、组件等,通过调用组件与服务模块108,进而调用微服务模块102,实现对外设、组件等的控制和管理。
本申请实施例提供了一种操作系统,还提供组件与服务模块,以供上层的应用程序模块或外设等进行调用,完善了多核操作系统的功能,提高了多核操作系统的处理能力。
在本申请的又一实施例中,图12为本申请实施例提供的一种操作系统的生成方法步骤流程示意图一。如图12所示,该生成方法可以包括如下步骤:
S501,基于AUTOSAR标准生成微服务模块和微内核模块。
其中,微服务模块用于在符合AUTOSAR标准的环境下运行,并实现多核操作系统的功能。
需要说明的是,微服务模块可以是基于AUTOSAR标准构建的,用于通过调用微内核模块提供的内核接口调用微内核模块中的相应模块,使微内核模块执行相应的模块,从而对微内核模块进行控制和管理,以实现符合AUTOSAR标准的多核操作系统的功能。
S502,基于微服务模块对微内核模块相应的内核接口进行封装。
在本申请实施例中,可将微内核模块提供的内核接口进行封装,作为应用程序编程接口(Application Programming Interface,API)包,提供给微服务模块进行调用。
S503,获取云端配置模块的代码生成引擎。
其中,代码生成引擎用于将用户对微服务模块中的配置以及对微内核模块的调用过程生成与微服务模块相一致的配置代码。
在本申请实施例中,代码生成引擎可以基于需要生成的配置代码的类型、格式、语法等进行构建,生成如前述实施例中用于生成配置代码的代码生成引擎。该代码生成引擎可以用于基于微服务模块对微内核模块的调用接口进行调用的调用过程,为微服务模块中运行该调用过程的单元进行配置,以使微服务模块实现符合AUTOSAR标准的多核操作系统的功能。
S504,基于微服务模块、微内核模块、内核接口和代码生成引擎,生成操作系统。
其中,在操作系统中,微内核模块用于向微服务模块提供至少一个内核对象,云端配置模块用于基于代码生成引擎生成配置代码,并发送至微服务模块,微服务模块用于调用至少一个内核对象中的目标内核对象,并基于配置代码生成目标内核对象对应的目标服务,将目标服务发送给外部的应用程序模块。
在生成了上述符合AUTOSAR标准的微服务模块、微内核模块,以及将微内核模块提供给微服务模块的内核接口进行封装,并使用云端配置模块上的代码生成引擎生成实现微服务模块中功能的配置代码,并将这些配置代码载入微服务模块中的第一调度单元,由第一调度单元根据应用程序模块进行调度和运行后,就生成了一个能够运行在多核芯片上的多核操作系统,该多核操作系统符合AUTOSAR标准,实现了AUTOSAR操作系统的全部或部分功能。
本申请实施例提供了一种操作系统的生成方法,采用微内核模块与微服务模块相结合的结构生成多核操作系统,可以向应用程序模块提供符合AUTOSAR标准的一致性接口,使多核操作系统具备轻量级、安全性、低功耗、组件丰富、快速开发等关键能力。
在本申请的又一实施例中,上述基于AUTOSAR标准生成微服务模块和微内核模块,可以包括:基于AUTOSAR标准生成包含多核操作系统中多个对象的微服务模块和微内核模块。
在本申请实施例中,设计微内核模块和微服务模块时,以使微服务模块中的每个单元,都能够通过内核接口调用微内核模块中相应的模块,实现符合AUTOSAR标准的操作系统的功能为基本设计要求。
在一些实施例中,图13为本申请实施例提供的一种操作系统的生成方法步骤流程示意图二。如图13所示,上述基于AUTOSAR标准生成包含多核操作系统中多个对象的微服务模块的步骤,可以包括如下步骤:
S601,生成第一调度单元。
其中,第一调度单元用于管理微服务模块中的各个对象参数初始化、对象启停、应用初始化、中断初始化以及外部接口调用。
在本申请实施例中,如前述,第一调度单元也可以称为CEOS调度器,第一调度单元可以基于微内核模块提供的内核接口生成,用于调度和运行微服务模块中的配置代码,从而实现对微内核模块中进程执行情况的管理。
需要说明的是,第一调度单元还可以用于通过调用微服务模块的内核接口,实现对微服务模块中的各个对象参数初始化、对象启停或进程启停、应用初始化或进程初始化、中断初始化等功能。以及对组件与服务模块、应用程序模块或其他上层应用提供接口调用的功能。
S602,基于AUTOSAR标准生成微服务模块中多个对象的数据结构。
在本申请实施例中,在生成微服务模块的过程中,参照微服务模块需要实现的符合AUTOSAR标准的多核操作系统的功能,确定微服务模块中的各个单元需要实现的功能。进一步基于此设计微服务模块中各单元在符合AUTOSAR标准的情况下需包含的属性和方法,以此确定各单元的数据结构。示例性地,进程管理单元、任务管理单元、事件管理单元等单元的数据结构的具体实现可参照前述配置代码。
S603,基于第一调度单元和微服务模块中多个对象的数据结构生成微服务模块。
在本申请实施例中,在生成微内核模块的过程中,通过生成第一调度单元,以实现对微服务模块中的多个单元进行调度。因此,云端配置模块中的代码生成引擎可基于上述各单元的数据结构,生成实现各单元的功能的配置代码。进而结合第一调度单元和各单元的配置代码,就生成了微服务模块。由该微服务模块实现符合AUTOSAR标准的多核操作系统的功能。
在一些实施例中,图14为本申请实施例提供的一种操作系统的生成方法步骤流程示意图三。如图14所示,上述基于AUTOSAR标准生成包含多核操作系统中多个对象的微内核模块的步骤,可以包括如下步骤:
S701,生成第二调度单元。
其中,第二调度单元用于管理微内核模块中的各个内核参数初始化、内核启停、当前核获取以及内核调度。
在本申请实施例中,参照微服务模块的生成过程,在生成微内核模块的过程中,首先生成第二调度单元。其中,第二调度单元可用于实现对微内核模块中的多个基础任务、扩展任务或进程、事件等的执行顺序进行调度,并控制执行的启动和停止。
需要说明的是,第二调度单元还可以用于在微服务模块分配进程或任务后,执行参数初始化,以及,控制任务或进程在哪一内核上执行。
S702,基于AUTOSAR标准生成微内核模块中多个对象的数据结构。
在本申请实施例中,在生成微内核模块的过程中,参照微内核模块需要实现的符合AUTOSAR标准的多核操作系统的功能,确定微内核模块中的各个单元需要实现的功能。进一步基于此设计微内核模块中各单元在符合AUTOSAR标准的情况下需包含的属性和方法,以此确定各单元的数据结构。
S703,基于第二调度单元和微内核模块中多个对象的数据结构生成微内核模块。
在本申请实施例中,第二调度单元用于对微内核模块中的任务执行进行调度,即控制微内核模块中各单元的功能执行。因此,可将微内核模块中多个对象的数据结构生成的多个单元,结合第二调度单元,共同生成微内核模块。
在一些实施例中,图15为本申请实施例提供的一种操作系统的生成方法的步骤流程示意图四。如图15所示,上述获取云端配置模块的代码生成引擎的步骤,可以包括如下步骤:
S801,生成多种配置文件生成模板,不同的配置文件生成模板对应不同的编译器。
在本申请实施例中,配置文件生成模板可以预先存储在如图3所示的代码生成引擎的生成模块中,用于生成配置代码。
需要说明的是,不同的配置文件生成模板包含不同的属性和方法,用于实现不同的功能。并且,对于同一功能,还可以根据编译环境的需要,为其匹配相应语言的配置文件生成模板。
S802,基于配置文件生成模板,生成代码生成引擎。
如上述图3所示,代码生成引擎对用户的配置操作生成的第一网页请求进行解析,生成多个临时文件。代码生成引擎中的生成模块中包含多个配置文件生成模板,能够根据这些临时文件需要实现的功能,为其匹配能够实现相应功能的配置文件生成模板。
本申请实施例提供一种操作系统的生成方法,能够生成符合AUTOSAR标准的微内核模块和微服务模块,采用这种结构的多核操作系统,不仅简化软硬件开发过程,提升多核操作系统的处理效率和响应速度。
在本申请的又一实施例中,基于前述的操作系统和操作系统的生成方法,在本申请实施例中,对多核操作系统的功能和各模块的设计过程进行详细说明:
在本申请实施例中,以微内核和微服务为例,如上述图11所示,基于国产芯片的AUTOSAR操作系统的实现,按AUTOSAR操作系统标准要求,设计整体软件基于AUTOSAR软件架构,实现各功能模块的解耦和复用,分为微服务和微内核两部分。在一些可选的实施例中,还包括组件与服务模块。
首先,对于微服务的架构设计如上述图4所示。第一调度单元,即CEOS调度器在微服务中运行时对应的CEOS服务以实现AUTOSAR操作系统中相关对象,例如Core、Application、Task、Interrupt Service、Alarm、Counter、Resource等为输出目标,以微内核提供的内核接口,即API接口为输入对象,由云端配置模块生成微服务的配置代码,从而实现AUTOSAR操作系统的功能。
在本申请实施例中,应用程序模块通过RTE模块与微服务进行交互。需要说明的是,微服务通过内核动态加载成服务实例,只有注册到内核的微服务才具备提供RTE功能。
对于微服务中各单元的功能设计示例如上述图5、图6以及图8所示,可以理解,对于微服务中其他单元,均可参照上述功能设计示例进行具体设计。
其次,对于微内核,可采用面向对象的设计思想进行设计,将系统级的基础设计都设计为一种内核对象。具体地,可按以下两步骤对微内核进行设计:
第一步,国产芯片硬件抽象层实现。以图9所示的架构设计硬件抽象层的结构,以支撑微内核的运行。
第二步,微内核中的基础调度方式设计。参照上述图10所示的方式设计基础任务和扩展任务的调度原则,设计微内核执行微服务分配的任务的顺序。
最后,“一站式”云端配置模块设计。本申请实施例提供的多核操作系统的云端配置模块专注于解决现有技术中车载嵌入式操作系统的开发效率低下、技术复杂、需求多变、维护困难等现状,以可插拔组件为核心实现操作系统的自动化开发,使用户能够在可视化环境中创建可配置、可管理的企业级应用。不仅把AUTOSAR操作系统通过配置化实现,使AUTOSAR操作系统的开发完全摆脱了对手写代码的依赖,开发工具一体化使得操作系统更具安全性和稳定性。
其中,代码生成引擎的处理逻辑如上述图3所示,代码生成引擎采用DOM解析,将CEOS各模块的CEXML文件载入到内存,组成一棵DOM树,通过节点为以及节点之间的关系来解析CEXML文件。
综上,现有技术中,AUTOSAR操作系统的中断管理复杂,响应慢,且中断方式开发复杂,项目间模块不好复用。而本申请实施例提供的多核操作系统通过设计一套具有微服务、微内核的框架解决了这些问题。微服务为了实现符合AUTOSAR标准的多核操作系统更快响应中断提出了一种新的设计思路。通过借鉴已成功应用的微服务理念,在多核操作系统中通过设计微服务、微内核的架构来实现对中断的快速处理。本申请实施例还采用动态设计技术,获取芯片中域的核中断号来遍历多核操作系统中定义好的中断服务列表,快速区分不同核的微服务标志,快速响应。
本申请实施例提供了一种基于多核的国产芯片上实现的微服务和微内核架构的AUTOSAR操作系统设计方法,通过设计符合AUTOSAR标准的微服务和微内核的多核操作系统,以完成国产芯片的操作系统开发。通过开展对微内核的研究,将尽可能多的功能移出内核态至用户态,使多核操作系统在国产芯片上易于扩展移植,具备安全、可靠等特性,提升操作系统容错能力。相比于购买的代码包而言,本申请实施例提供的多核操作系统软件优势明显。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现前述实施例中任一项所述的方法的步骤。
基于上述计算机可读存储介质,图16为本申请实施例提供的一种电子设备的具体硬件结构示意图。如图16所示,电子设备12可以包括:通信接口1201、存储器1202和处理器1203;各个组件通过总线系统1204耦合在一起。可理解,总线系统1204用于实现这些组件之间的连接通信。总线系统1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图16中将各种总线都标为总线系统1204。其中:
通信接口1201,用于在与供电设备之间进行收发信息过程中,信号的接收和发送;
存储器1202,用于存储能够在处理器1203上运行的计算机程序;
处理器1203,用于在运行所述计算机程序时,执行:
基于AUTOSAR标准生成微服务模块和微内核模块,微服务模块用于,在符合AUTOSAR标准的环境下运行,并实现多核操作系统的功能;基于微服务模块对微内核模块相应的内核接口进行封装;获取云端配置模块的代码生成引擎,代码生成引擎用于将用户对微服务模块中的配置以及对微内核模块的调用过程生成与微服务模块相一致的配置代码;基于微服务模块、微内核模块、内核接口和代码生成引擎,生成操作系统;其中,在操作系统中,微内核模块用于向微服务模块提供至少一个内核对象,云端配置模块用于基于代码生成引擎生成配置代码,并发送至微服务模块,微服务模块用于调用至少一个内核对象中的目标内核对象,并基于配置代码生成目标内核对象对应的目标服务,将目标服务发送给外部的应用程序模块。
可以理解,本申请实施例中的存储器1202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步链动态随机存取存储器(Synchronous link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器1202旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器1203可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1203中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1203可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1202,处理器1203读取存储器1202中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field- Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,处理器1203还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的操作系统的生成方法中的步骤。
应理解,以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种操作系统,其特征在于,所述操作系统包括微内核模块、微服务模块和云端配置模块,所述微内核模块与所述微服务模块之间进行通信,所述云端配置模块与所述微服务模块通信连接,其中:
所述微内核模块,用于向所述微服务模块提供至少一个内核对象;
所述云端配置模块,用于基于代码生成引擎生成配置代码,并发送至所述微服务模块;
所述微服务模块,用于调用所述至少一个内核对象中的目标内核对象,并基于所述配置代码生成所述目标内核对象对应的目标服务,将所述目标服务发送给外部的应用程序模块。
2.根据权利要求1所述的操作系统,其特征在于,所述微服务模块包括第一调度单元,所述第一调度单元与所述云端配置模块连接,其中:
所述第一调度单元,用于接收所述云端配置模块发送的所述配置代码,以及用于基于所述配置代码和所述目标内核对象生成所述目标服务,将所述目标服务发送给外部的应用程序模块。
3.根据权利要求1所述的操作系统,其特征在于,
所述代码生成引擎,用于对第一网页请求进行解析,确定至少一个临时文件,并根据所述至少一个临时文件生成所述配置代码;其中,所述第一网页请求是基于用户在可视化页面上的配置操作生成的。
4.根据权利要求1所述的操作系统,其特征在于,所述微服务模块还包括进程管理单元,其中:
所述进程管理单元,用于初始化所述应用程序模块的至少一个进程,并通过启动进程调用所述微内核模块中的调度模块,控制所述进程的启动操作,或者通过停止进程调用所述微内核模块中的调度模块,控制所述进程的停止操作;其中,所述进程至少还包括任务进程、事件进程和中断进程。
5.根据权利要求4所述的操作系统,其特征在于,所述微服务模块还包括任务管理单元,其中:
所述任务管理单元,用于通过切换任务调用微内核模块中的线程模块,控制所述任务进程之间的进程切换操作,或者通过激活任务调用微内核模块中的线程模块,控制所述任务进程的激活操作,或者通过终止任务调用微内核模块中的线程模块,控制所述任务进程的终止操作。
6.根据权利要求4所述的操作系统,其特征在于,所述微服务模块还包括事件管理单元,其中:
所述事件管理单元,用于通过发送事件调用微内核模块中的事件模块,控制所述事件进程的发送操作,或者通过接收事件调用微内核模块中的事件模块,控制所述事件进程的接收操作,或者通过清除事件调用微内核模块中的事件模块,控制所述事件进程的清除操作。
7.根据权利要求6所述的操作系统,其特征在于,所述微服务模块还包括告警管理单元、多核管理单元、中断管理单元、内存保护单元和资源管理单元中的至少一项。
8.根据权利要求1至7中任一项所述的操作系统,其特征在于,
所述微内核模块,还用于接收所述微服务模块发送的第一调用请求,以及基于所述第一调用请求,为每一个基础任务标记优先级并执行调度操作;其中,所述第一调用请求是所述微服务模块向所述微内核模块分配所述基础任务时生成的;或者,所述微内核模块,还用于接收所述微服务模块发送的第二调用请求,以及基于所述第二调用请求,为每一个扩展任务确定调度方式并进行调度操作;其中,所述第二调用请求是所述微服务模块向所述微内核模块分配所述扩展任务时生成的。
9.根据权利要求1至7中任一项所述的操作系统,其特征在于,所述操作系统还包括组件与服务模块,所述组件与服务模块和所述微服务模块之间进行通信,其中:
所述组件与服务模块包括:设备框架单元、命令行界面单元和网络框架单元中的至少一项。
10.一种操作系统的生成方法,其特征在于,所述生成方法包括:
基于AUTOSAR标准生成微服务模块和微内核模块,所述微服务模块用于在符合所述AUTOSAR标准的环境下运行,并实现多核操作系统的功能;
基于所述微服务模块对所述微内核模块相应的内核接口进行封装;
获取云端配置模块的代码生成引擎,所述代码生成引擎用于将用户对所述微服务模块中的配置以及对所述微内核模块的调用过程生成与所述微服务模块相一致的配置代码;
基于所述微服务模块、所述微内核模块、所述内核接口和所述代码生成引擎,生成所述操作系统;
其中,在所述操作系统中,所述微内核模块用于向所述微服务模块提供至少一个内核对象,所述云端配置模块用于基于代码生成引擎生成配置代码,并发送至所述微服务模块,所述微服务模块用于调用所述至少一个内核对象中的目标内核对象,并基于所述配置代码生成所述目标内核对象对应的目标服务,将所述目标服务发送给外部的应用程序模块。
11.根据权利要求10所述的方法,其特征在于,所述基于AUTOSAR标准生成微服务模块和微内核模块,包括:
基于所述AUTOSAR标准生成包含多核操作系统中多个对象的微服务模块和微内核模块。
12.根据权利要求11所述的方法,其特征在于,所述基于所述AUTOSAR标准生成包含多核操作系统中多个对象的微服务模块,包括:
生成第一调度单元,所述第一调度单元用于管理所述微服务模块中的各个对象参数初始化、对象启停、应用初始化、中断初始化以及外部接口调用;
基于所述AUTOSAR标准生成所述微服务模块中多个对象的数据结构;
基于所述第一调度单元和所述微服务模块中多个对象的数据结构生成所述微服务模块。
13.根据权利要求11所述的方法,其特征在于,所述基于所述AUTOSAR标准生成包含多核操作系统中多个对象的微内核模块,包括:
生成第二调度单元,所述第二调度单元用于管理所述微内核模块中的各个内核参数初始化、内核启停、当前核获取以及内核调度;
基于所述AUTOSAR标准生成所述微内核模块中多个对象的数据结构;
基于所述第二调度单元和所述微内核模块中多个对象的数据结构生成所述微内核模块。
14.根据权利要求10至13中任一项所述的生成方法,其特征在于,所述获取云端配置模块的代码生成引擎,包括:
生成多种配置文件生成模板,不同的配置文件生成模板对应不同的编译器;
基于所述配置文件生成模板,生成所述代码生成引擎。
15.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,其中:
所述存储器,用于存储能够在所述处理器上运行的计算机程序;
所述处理器,用于执行所述存储器中的所述计算机程序,以实现如权利要求10至14中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求10至14中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现如权利要求10至14中任一项所述的方法。
CN202410325839.6A 2024-03-21 2024-03-21 操作系统及生成方法、电子设备、存储介质和程序产品 Pending CN117931483A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410325839.6A CN117931483A (zh) 2024-03-21 2024-03-21 操作系统及生成方法、电子设备、存储介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410325839.6A CN117931483A (zh) 2024-03-21 2024-03-21 操作系统及生成方法、电子设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
CN117931483A true CN117931483A (zh) 2024-04-26

Family

ID=90752326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410325839.6A Pending CN117931483A (zh) 2024-03-21 2024-03-21 操作系统及生成方法、电子设备、存储介质和程序产品

Country Status (1)

Country Link
CN (1) CN117931483A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112055091A (zh) * 2020-09-11 2020-12-08 华人运通(上海)云计算科技有限公司 车载微服务架构、车载模块的通信方法和装置
US20210089280A1 (en) * 2019-09-13 2021-03-25 Dspace Digital Signal Processing And Control Engineering Gmbh Method for generating source code with service-based communication
CN115048080A (zh) * 2022-05-24 2022-09-13 福建省农业科学院科技干部培训中心 一种基于大数据的科技特派员服务云平台构建系统
CN115826938A (zh) * 2022-01-29 2023-03-21 宁德时代新能源科技股份有限公司 实时操作系统的生成、使用方法及装置、电子设备、介质
CN116578524A (zh) * 2023-07-12 2023-08-11 宁德时代新能源科技股份有限公司 多核控制器、控制方法、车辆控制系统及可读存储介质
CN117319261A (zh) * 2022-06-23 2023-12-29 华为技术有限公司 一种基于autosar的管理方法、设备及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210089280A1 (en) * 2019-09-13 2021-03-25 Dspace Digital Signal Processing And Control Engineering Gmbh Method for generating source code with service-based communication
CN112055091A (zh) * 2020-09-11 2020-12-08 华人运通(上海)云计算科技有限公司 车载微服务架构、车载模块的通信方法和装置
CN115826938A (zh) * 2022-01-29 2023-03-21 宁德时代新能源科技股份有限公司 实时操作系统的生成、使用方法及装置、电子设备、介质
CN115048080A (zh) * 2022-05-24 2022-09-13 福建省农业科学院科技干部培训中心 一种基于大数据的科技特派员服务云平台构建系统
CN117319261A (zh) * 2022-06-23 2023-12-29 华为技术有限公司 一种基于autosar的管理方法、设备及系统
CN116578524A (zh) * 2023-07-12 2023-08-11 宁德时代新能源科技股份有限公司 多核控制器、控制方法、车辆控制系统及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高惠民: "汽车电子电气架构的"前世、今生和未来"(四)", 《汽车维修与保养》, no. 1, 31 January 2024 (2024-01-31), pages 53 - 56 *

Similar Documents

Publication Publication Date Title
KR100898315B1 (ko) 인핸스드 런타임 호스팅
CN109002362B (zh) 一种服务方法、装置、系统以及电子设备
CN109144710B (zh) 资源调度方法、装置及计算机可读存储介质
CN108062252B (zh) 一种信息交互方法、对象管理方法及装置和系统
JP5367816B2 (ja) オペレーションの保護モードスケジューリング
WO2018161813A1 (zh) 一种资源加载方法及装置
KR101366402B1 (ko) 가상 실행 시스템 및 가상 실행 시스템의 성능 향상 방법
JP5496683B2 (ja) カスタマイズ方法及びコンピュータシステム
US20140033208A1 (en) Method and device for loading application program
CN111880866B (zh) 跨进程回调执行方法、装置、设备及存储介质
JP2004536382A (ja) 置換可能なサービス品質機能のあるネットワーク通信チャネルコンポーネントを選択するために、置換可能なコンポーネントを用いるシステム、方法及び製造物
CN112219196B (zh) 表示用于无暂停垃圾收集的激活帧的方法和装置
CN111209046A (zh) 一种面向多任务处理的嵌入式sparc处理器操作系统设计方法
CN114327930A (zh) 用于异构多核核间通信的系统架构和系统架构的运行方法
KR20150114444A (ko) 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템
CN113190282A (zh) 安卓运行环境构建的方法及装置
US11010144B2 (en) System and method for runtime adaptable applications
CN110659104A (zh) 一种业务监控方法及相关设备
CN112667305A (zh) 页面展示方法及装置
CN108647087B (zh) 实现php内核可重入的方法、装置、服务器和存储介质
CN117931483A (zh) 操作系统及生成方法、电子设备、存储介质和程序产品
US8276165B2 (en) Continuation-based runtime callback invocation
CN109739666A (zh) 单例方法的跨进程调用方法、装置、设备及存储介质
CN114911538A (zh) 一种运行系统的启动方法及计算设备
Qu et al. Design of Mini Multi-Process Micro-Kernel Embedded OS on ARM

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination