CN111124522A - 一种微内核及宏内核混合的方法及系统 - Google Patents
一种微内核及宏内核混合的方法及系统 Download PDFInfo
- Publication number
- CN111124522A CN111124522A CN202010247915.8A CN202010247915A CN111124522A CN 111124522 A CN111124522 A CN 111124522A CN 202010247915 A CN202010247915 A CN 202010247915A CN 111124522 A CN111124522 A CN 111124522A
- Authority
- CN
- China
- Prior art keywords
- hardware
- loading
- node
- memory
- kernel
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种微内核及宏内核混合的方法及系统,通过微内核及宏内核混合的方法,提高操作系统的内核性能及稳定性,支持宏内核重链接,可将其他模块合并到宏内核,从而提高了操作系统的灵活性;加快了操作系统的启动速度,可快速启动以支持用户操作,降低了操作系统启动的等待时间,并且有宏内核运行效率高的优点,提高了操作系统的稳定性优选地,提升了系统的安全性很低,并且使整个操作系统的加载时间加快。
Description
技术领域
本公开涉及操作系统技术领域、计算机内核调度领域,具体涉及一种微内核及宏内核混合的方法及系统,以适用于灵活可变并具有高性能内核的操作系统。
背景技术
在现有操作系统的内核技术中,通常以微内核和宏内核为基础。内核具有小巧快速的优点,各功能模块间耦合小,便于维护与修改,各功能模块作为单独进程运行在特权级,相互间采用IPC通信,微内核可以较容易移植到新的硬件平台;宏内核优点是模块间调用效率高,性能好,各功能模块均置于内核中,模块间耦合度高,各模块的变化均需重编译内核,所有内核功能模块均运行在一个单独的地址空间,功能间通信采用直接的函数调用。
以上技术的缺点是,微内核因其他各模块均处于内核外,模块间通信效率不高,性能受到影响;宏内核相对庞大臃肿,各功能模块均置于内核中,模块间耦合度太高,维护与修改难度高,内核稳定性差、系统异崩溃。
发明内容
为解决上述问题,本公开提供一种微内核及宏内核混合的方法及系统,通过微内核及宏内核混合的方法,提高操作系统的内核性能及稳定性,支持宏内核重链接,可将其他模块合并到宏内核,从而提高了操作系统的灵活性。
为了实现上述目的,根据本公开的一方面,提供一种微内核及宏内核混合的方法,所述方法包括以下步骤:
注:本公开中的S100、S200~ S800等步骤标号,并不代表特定顺序,仅仅是作为步骤之间的区分标记。
初始化阶段:
当普通个人电脑、终端设备开机,启动运行操作系统的加载:
S100:调用操作系统的微内核加载基础功能模块,并启动微内核检测模块生成物理内存的镜像文件:如果为首次启动,即检测到操作系统首次运行;
定义物理内存的内核区的载入条件为Core_load,初值Core_load =FALSE;
定义物理内存的用户区的载入条件为Normal_load,初值Normal_load =FALSE;
其中,内核区也可以称为系统区;注:物理内存在操作系统的技术领域中一般划分为内核区和用户区,也称为内核空间和用户空间;
上述载入条件为TRUE或FALSE,TRUE为真,即允许载入;FALSE为假,不允许载入;例如Core_load =FALSE,表示不允许载入物理内存的内核区。
从进程的角度,将物理内存的地址空间划分为内核区和用户区,启动微内核检测模块,微内核检测模块用于按照预先设定的顺序加载内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块,并依次记录内存管理模块的加载时间为A1和所需内存容量为M1、任务管理模块的加载时间为A2和所需内存容量为M2、基本文件系统的加载时间为A3和所需内存容量为M3、底层硬件驱动的加载时间为A4和所需内存容量为M4、图形化模块的加载时间为A5和所需内存容量为M5;
其中,按照预先设定的顺序加载内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块的方法为以下子步骤:
S101:打开A20地址总线,支持1M以上内存;
S102:切换处理器的实模式为保护模式;
S103:执行内存管理模块,将内存进行分页管理;
S104:执行任务管理模块,支持多任务调度管理;
S105:执行基本文件系统,以支持文件管理功能;
S106:执行底层硬件驱动,以提供对操作系统运行最重要的硬件支持;
S107:启动图形化模块,启动操作系统的桌面,以支持用户的输入输出操作。
S200:令内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块的加载顺序中的节点(加载每个模块、系统或系统加载的阶段)分别为第一节点、第二节点、第三节点、第四节点、第五节点;令第一节点为N1、第二节点为N2、第三节点为N3、第四节点为N4、第五节点为N5,按照树形结构的广度优先搜索进行构建启动序列;,按照树形结构的广度优先搜索(WFS)进行构建启动序列;其中,加载顺序中的节点的意义为加载顺序中的各个环节(环节包括:内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块);其中,N1为根节点(启动点),N2、N3、N4为与根节点N1随机连接的第二层叶子结点;N5为目的叶子节点(结束点);
构建启动序列并用邻接表的存储结构存储各个启动序列及与N1、N2、N3、N4、N5对应的A1、A2、A3、A4、A5和M1、M2、M3、M4、M5;
例如以下的构建启动序列(即启动序列1-启动序列15),启动序列中包含了多组启动顺序,每个启动顺序为加载的先后顺序,例如:启动顺序<N1, N2>表示N1加载完成后N2进行加载,即N1加载完成后才加载N2;
启动序列1:<N1, N2>、<N1, N3>、<N1, N4>、<N2, N5>;
启动序列2:<N1, N2>、<N1, N3>、<N1, N4>、<N3, N5>;
启动序列3:<N1, N2>、<N1, N3>、<N1, N4>、<N4, N5>;
启动序列4:<N1, N2>、<N2, N3>、<N2, N4>、<N2, N5>;
启动序列5:<N1, N2>、<N2, N3>、<N2, N4>、<N3, N5>;
启动序列6:<N1, N2>、<N2, N3>、<N2, N4>、<N4, N5>;
启动序列7:<N1, N2>、<N2, N3>、<N3, N4>、<N3, N5>;
启动序列8:<N1, N2>、<N2, N3>、<N3, N4>、<N4, N5>;
启动序列9:<N1, N2>、<N1, N4>、<N4, N3>、<N3, N5>;
启动序列10:<N1, N3>、<N1, N4>、<N1, N2>、<N2, N5>;
启动序列11:<N1, N3>、<N3, N2>、<N2, N4>、<N4, N5>;
启动序列12:<N1, N3>、<N1, N2>、<N2, N4>、<N4, N5>;
启动序列13:<N1, N3>、<N1, N4>、<N4, N2>、<N4, N5>;
启动序列14:<N1, N3>、<N1, N2>、<N3, N4>、<N2, N5>;
启动序列15:<N1, N3>、<N1, N2>、<N2, N4>、<N2, N5>;
S300,计算各个启动序列中的最优启动序列;
其中,计算各个启动序列中的最优路径的方法为以下子步骤:
S301:从启动序列的根节点N1出发,依次求启动序列中节点Ni的占用内存最小并且最
快起始时间Ne(i) ,令Ne(1)为节点N1加载完成的时间,则,其中,在Ai和Mi后方的i为序号,i= 2,
..., 4, Max为求最大值,Min为求最小值;与节点Ni对应的为Mi,比如当i=2时,Ni为N2;j为
2时,Mj为M2;同理Ai为A1、A2、A3、A4;
S302:当节点Ni的Ne(i)小于内核区的系统容忍阈值,则标记节点Ni的Core_load =TRUE,否则标记节点Ni的Normal_load = TRUE;系统容忍阈值一般设置为所有节点Ne(i)的算术平均值;例如:节点Ni的Core_load =FALSE,表示不允许节点Ni载入物理内存的内核区,节点Ni的Normal_load = TRUE,表示允许节点Ni载入物理内存的用户区。
S303:计算在不推迟整个启动过程所需要的时间的前提下节点Ni的最迟必须开始
的时间Nl(i) ,令Nl(1)为节点N1加载开始的时间,则,其中,在Ai和Mi后方的i为序号,i
= 2, ..., 4;
S304:如果节点Ni的Core_load =TRUE,即Ni已经满足内核区的载入条件,则判断Ni的Nl(i)是否大于内核容忍阈值,当节点Ni的Nl(i)大于内核区的系统容忍阈值,则标记节点Ni的Core_load =FALSE;令节点Ni的Normal_load = TRUE;内核容忍阈值一般设置为所有节点Nl(i)的算术平均值;
S305:依次扫描所有的启动序列,选择节点Ni的Core_load =TRUE最多,即满足内核区的载入条件最多的启动序列作为预选序列;
S306:环路检测:如果得到的预选序列中节点的个数小于所有启动序列的中节点个数的平均值,则说明启动序列中有环,则不能求出最优启动序列,则结束并发出异常,否则为判定为无环,并将该启动序列作为最优启动序列。
S400:按照最优启动序列的启动顺序重新启动;
S500:启动完成后,生成物理内存的镜像文件,并保存于存储设备中;
其中,物理内存的镜像文件至少包括物理内存的各个分页和/或分段及其对应的页表和/或段表,物理内存的镜像文件为当前状态下物理内存中所有的分页和已经加载的操作系统各个模块的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“分页”(pages);当不需要该分页的数据时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。
进一步地,当系统再次重启时,如果存在物理内存的镜像文件,内存直接读取并加载物理内存镜像文件,将存储器中的镜像文件直接映射到内存中,即从物理内存镜像文件加载数据到虚拟硬盘,恢复生成物理内存镜像文件时的物理内存的状态,从而实现快速启动效果;
进一步地,当系统再次重启时,如果不存在物理内存的镜像文件,或者如果发现当前设备的硬件与硬件配置文件中硬件不一致(不完全一致),则执行S400-S500重新生成物理内存的镜像文件。
进一步地,如果由于上一次系统由于异常断电、宕机等原因未能正常生成镜像文件,则重新执行S100-S500进行生成物理内存的镜像文件。
启动阶段:
S600:按照最优启动序列的启动顺序重新启动;
S700:调用基础功能模块加载宏内核,并将控制权交给宏内核;
S800:宏内核运行硬件虚拟层,进行硬件驱动加载;
S900:加载系统虚拟层完成操作系统的启动。
进一步地,在S100中,所述操作系统包括微内核和宏内核(大内核),所述微内核包括基础功能模块;其中,所述基础功能模块包括内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块,底层硬件驱动包括鼠标、监视器、键盘、大容量存储器、显示器、网络连接驱动;任务管理模块用于执行任务调度,内存管理模块用于执行内存的管理,基本文件系统即文件系统,是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法;图形化模块为操作系统的图形界面的显示。
进一步地,在S100中,所述微内核是一种能够提供必要服务的操作系统内核;其中这些必要的服务包括任务,线程,交互进程通信以及内存管理等等。所有服务(包括设备驱动)在用户模式下运行,内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空间中实现。在应用程序和硬件的通信中,内核进程和内存管理的极小的服务,而客户端程序和运行在用户空间的服务通过消息的传递来建立通信,它们之间不会有直接的交互,这样一来,微内核中的执行速度相对就比较慢了,这是微内核架构的一个缺点。
进一步地,在S101中,所述A20总线是专门用来转换地址总线的第二十一位;在引导操作系统时,先打开A20总线以统计和测试所有的系统内存;在BIOS准备将计算机的控制权交给操作系统时会先将A20总线关闭。激活A20总线是保护模式在引导阶段的步骤之一,通常在引导程序将控制权交给操作系统的微内核之前完成。
进一步地,在S700中,调用基础功能模块加载宏内核,并将控制权交给宏内核的方法包括以下步骤:
S701:调用最优启动序列,运行启动序列中加载顺序中的各个节点,依次设为D1、D2、D3、D4、D5,此时微内核启动流程结束;
S702:D5将内核控制权转交给宏内核,即使D5跳转到宏内核的入口点;
S703:在宏内核的初始化流程后跳转到用户态程序继续运行。
优选地,在目前的操作系统,验证数字签名的步骤往往会导致系统延迟,如果加载无数字签名,这样会使得系统的安全性很低,并且使整个操作系统的加载时间变慢,为此,以下步骤为解决方案。
进一步地,在S800中,宏内核运行硬件虚拟层,进行硬件驱动加载的方法包括以下步骤:
S801:读取硬件虚拟层中所有硬件驱动程序的安全标记块;
S802:依次加载硬件虚拟层中的各个硬件驱动程序,如果硬件驱动程序有数字签名且驱动程序标记为正常,则直接进行加载硬件驱动程序;否则转到S803;
S803:对硬件驱动程序进行强制数字签名,并将此硬件驱动程序标记置为测试;
S804:加载驱动程序标记为测试的硬件驱动程序,操作系统加载完成后开始计算硬件的工作量证明中的总工作时间;如果操作系统在加载阈值的次数内发生异常,则将此硬件驱动程序标记置为不兼容,发出硬件驱动程序不兼容的信息;
S805:当硬件的工作量证明中的硬件在当前操作系统中加载的次数大于加载阈值并且硬件在当前操作系统中的总工作时间大于稳定时间阈值,则将此硬件驱动程序标记置为正常;其中,稳定时间阈值一般设置为30分钟,可以在[1,240]分钟之间人工调整; 其中,加载阈值一般设置为2次。
进一步地,在S800中,硬件虚拟层包括多个硬件驱动程序,每个硬件驱动程序中记录多个安全标记块;所述安全标记块是一种记录操作系统中与当前硬件驱动程序相兼容的硬件驱动程序的序号的数据结构,反映了当前硬件的驱动程序与当前系统的兼容性是否具有数字签名;所有参与硬件虚拟层加载的硬件驱动程序中安全标记块包含以下4个部分:硬件id(硬件驱动程序对应硬件的唯一标识符)、硬件的工作量证明(硬件驱动程序对应硬件的工作量证明形成的哈希散列)、驱动程序标记、数字签名;
所述硬件的工作量证明包括硬件在当前操作系统中加载的次数和硬件在当前操作系统中的总工作时间,具体形式为SHA256哈希值。例如,硬件的工作量证明为[34,600 Min],即操作系统加载所述硬件34次,硬件在操作系统加载后累计工作时长为600分钟(Min),则其SHA256哈希值为:03339281309c1df7169de93fc6f68ecd858557cb18a38d5b7eddfe843524eae0。
所述驱动程序标记包括不兼容、测试、正常这些标记。
进一步地,在S800中,所述硬件虚拟层,也称为硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。
进一步地,在S700中,所述宏内核用于管理用户程序和硬件之间的系统资源,代表内核进程运行代码;当用户进程经过系统调用或者中断进入到内核态时,宏内核代表它运行代码;宏内核需要管理的资源多于微内核,其大小就相对大一些了。在宏内核架构当中,内核管理着CPU调度,内存管理,文件管理和系统调用等各模块的工作,由于用户服务和内核服务被实现在同一空间中,这样在执行速度上要比微内核快。
进一步地,在S800中,硬件虚拟层是位于操作系统的宏内核与硬件电路之间的接口层,其目的在于将硬件抽象化;它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。硬件抽象层是一个编程层,允许计算机操作系统在逻辑层而不是硬件层与硬件设备交互。操作系统核心或者硬件驱动程序都可以调用硬件抽象层。无论哪种情况,调用程序都不用了解硬件的具体设计细节,只需要给出抽象层所需的参数即可。
进一步地,系统虚拟层也称操作系统层虚拟化,此为现有的成熟技术不再赘述,将操作系统内核虚拟化,可以允许使用者空间软件物件被分割成几个独立的单元,在内核中运行,而不是只有一个单一物件运行;这个软件物件,也被称为是一个容器,虚拟引擎,虚拟专用服务器。对每个行程的拥有者与使用者来说,使用的服务器程序,看起来就像是自己专用的。
本发明还提供了一种微内核及宏内核混合的系统,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
微内核加载单元,用于调用操作系统的微内核加载基础功能模块;
宏内核加载单元,用于微内核调用基础功能模块加载宏内核,并将控制权交给宏内核;
驱动加载单元,用于宏内核运行硬件虚拟层,进行硬件驱动加载;
系统虚拟单元,用于加载系统虚拟层完成操作系统的启动。
本公开的有益效果为:本公开提供一种微内核及宏内核混合的方法及系统,加快了操作系统的启动速度,可快速启动以支持用户操作,降低了操作系统启动的等待时间,并且有宏内核运行效率高的优点,提高了操作系统的稳定性。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为操作系统初始化阶段的流程图;
图2所示为操作系统启动阶段的流程图;
图3所示为一种微内核及宏内核混合的系统结构图。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的图1所示为操作系统初始化阶段的流程图,下面结合图1来阐述根据本公开的实施方式的一种微内核及宏内核混合的方法。
初始化阶段:
当运行在普通个人电脑、终端设备上:
S100:如果为首次启动,即检测到操作系统首次运行;
定义物理内存的内核区的载入条件为Core_load,初值Core_load =FALSE;
定义物理内存的用户区的载入条件为Normal_load,初值Normal_load =FALSE;
其中,内核区也可以称为系统区;注:物理内存在操作系统的技术领域中一般划分为内核区和用户区,也称为内核空间和用户空间;
上述载入条件为TRUE或FALSE,TRUE为真,即允许载入;FALSE为假,不允许载入;
从进程的角度,将物理内存的地址空间划分为内核区和用户区,启动微内核检测模块,微内核检测模块用于按照预先设定的顺序加载内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块,并依次记录内存管理模块的加载时间为A1和所需内存容量M1、任务管理模块的加载时间为A2和所需内存容量M2、基本文件系统的加载时间为A3和所需内存容量M3、底层硬件驱动的加载时间为A4和所需内存容量M4、图形化模块的加载时间为A5和所需内存容量M5;
其中,按照预先设定的顺序加载内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块的方法为以下子步骤:
S101:打开A20地址总线,支持1M以上内存;
S102:切换处理器的实模式为保护模式;
S103:执行内存管理模块,将内存进行分页管理;
S104:执行任务管理模块,支持多任务调度管理;
S105:执行基本文件系统,以支持文件管理功能;
S106:执行底层硬件驱动,以提供对操作系统运行最重要的硬件支持;
S107:启动图形化模块,启动操作系统的桌面,以支持用户的输入输出操作。
S200:将N1、N2、N3、N4、N5作为依次与内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块对应的节点,按照树形结构的广度优先搜索(WFS)进行构建启动序列;其中,N1为根节点(启动点),N2、N3、N4为与根节点N1随机连接的第二层叶子结点;N5为目的叶子节点(结束点);
构建启动序列并用邻接表的存储结构存储各个启动序列及与N1、N2、N3、N4、N5对应的A1、A2、A3、A4、A5和M1、M2、M3、M4、M5;
例如以下的构建启动序列(即启动序列1-启动序列15),其中:<N1, N2>表示N1与N2进行连接,即N1加载完成后才加载N2;
启动序列1:<N1, N2>、<N1, N3>、<N1, N4>、<N2, N5>;
启动序列2:<N1, N2>、<N1, N3>、<N1, N4>、<N3, N5>;
启动序列3:<N1, N2>、<N1, N3>、<N1, N4>、<N4, N5>;
启动序列4:<N1, N2>、<N2, N3>、<N2, N4>、<N2, N5>;
启动序列5:<N1, N2>、<N2, N3>、<N2, N4>、<N3, N5>;
启动序列6:<N1, N2>、<N2, N3>、<N2, N4>、<N4, N5>;
启动序列7:<N1, N2>、<N2, N3>、<N3, N4>、<N3, N5>;
启动序列8:<N1, N2>、<N2, N3>、<N3, N4>、<N4, N5>;
启动序列9:<N1, N2>、<N1, N4>、<N4, N3>、<N3, N5>;
启动序列10:<N1, N3>、<N1, N4>、<N1, N2>、<N2, N5>;
启动序列11:<N1, N3>、<N3, N2>、<N2, N4>、<N4, N5>;
启动序列12:<N1, N3>、<N1, N2>、<N2, N4>、<N4, N5>;
启动序列13:<N1, N3>、<N1, N4>、<N4, N2>、<N4, N5>;
启动序列14:<N1, N3>、<N1, N2>、<N3, N4>、<N2, N5>;
启动序列15:<N1, N3>、<N1, N2>、<N2, N4>、<N2, N5>;
S300:计算各个启动序列中的最优启动序列;
其中,计算各个启动序列中的最优路径的方法为以下子步骤:
S301:从根节点N1出发,依次求启动序列中节点Ni的占用内存最小与最快起始时间Ne
(i) ,令Ne(1)为节点N1加载完成的时间,则,i= 2, ..., 4,Max为求最大值,Min
为求最小值;与节点Ni对应的为Mi,比如当i=2时,Ni为N2;j为2时,Mj为M2;
S302:当节点Ni的Ne(i)小于内核区的系统容忍阈值,则标记节点Ni的Core_load =TRUE,否则标记节点Ni的Normal_load = TRUE;系统容忍阈值一般设置为所有节点Ne(i)的算术平均值;
S304:如果节点Ni的Core_load =TRUE,即Ni已经满足内核区的载入条件,则判断Ni的Nl(i)是否大于内核容忍阈值,当节点Ni的Nl(i)大于内核区的系统容忍阈值,则标记节点Ni的Core_load =FALSE;令节点Ni的Normal_load = TRUE;内核容忍阈值一般设置为所有节点Nl(i)的算术平均值;
S305:依次扫描所有的启动序列,选择节点Ni的Core_load =TRUE最多,即满足内核区的载入条件最多的启动序列,将该启动序列作为预选序列;
S306:环路检测:如果得到的预选序列中节点的个数小于所有启动序列的中节点个数的平均值,则说明启动序列中有环,则不能求出最优启动序列,则结束并发出异常,否则为判定为无环,并将该启动序列作为最优启动序列。
S400:按照最优启动序列的启动顺序重新启动;
S500:启动完成后,生成物理内存的镜像文件,并保存于存储设备中;
其中,物理内存的镜像文件至少包括物理内存的各个分页和/或分段及其对应的页表和/或段表,物理内存的镜像文件为当前状态下物理内存中所有的分页和已经加载的操作系统各个模块的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“分页”(pages);当不需要该分页的数据时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。
进一步地,当系统再次重启时,如果存在物理内存的镜像文件,内存直接读取并加载物理内存镜像文件,将存储器中的镜像文件直接映射到内存中,即从物理内存镜像文件加载数据到虚拟硬盘,恢复生成物理内存镜像文件时的物理内存的状态,从而实现快速启动效果;
进一步地,当系统再次重启时,如果不存在物理内存的镜像文件,或者如果发现当前设备的硬件与硬件配置文件中硬件不一致(不完全一致),则执行S400-S500重新生成物理内存的镜像文件。
进一步地,如果由于上一次系统由于异常断电、宕机等原因未能正常生成镜像文件,则重新执行S100-S500进行生成物理内存的镜像文件。
如图2所示为操作系统启动阶段的流程图,以下为启动阶段的步骤:
启动阶段:
S600:按照最优启动序列的启动顺序重新启动;
S700:调用基础功能模块加载宏内核,并将控制权交给宏内核;
S800:宏内核运行硬件虚拟层,进行硬件驱动加载;
S900:加载系统虚拟层完成操作系统的启动。
进一步地,在S100中,所述操作系统包括微内核和宏内核(大内核),所述微内核包括基础功能模块;其中,所述基础功能模块包括内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块,底层硬件驱动包括鼠标、监视器、键盘、大容量存储器、显示器、网络连接驱动;任务管理模块用于执行任务调度,内存管理模块用于执行内存的管理,基本文件系统即文件系统,是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法;图形化模块为操作系统的图形界面的显示。
进一步地,在S100中,所述微内核是一种能够提供必要服务的操作系统内核;其中这些必要的服务包括任务,线程,交互进程通信以及内存管理等等。所有服务(包括设备驱动)在用户模式下运行,内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空间中实现。在应用程序和硬件的通信中,内核进程和内存管理的极小的服务,而客户端程序和运行在用户空间的服务通过消息的传递来建立通信,它们之间不会有直接的交互,这样一来,微内核中的执行速度相对就比较慢了,这是微内核架构的一个缺点。
进一步地,在S101中,所述A20总线是专门用来转换地址总线的第二十一位;在引导操作系统时,先打开A20总线以统计和测试所有的系统内存;在BIOS准备将计算机的控制权交给操作系统时会先将A20总线关闭。激活A20总线是保护模式在引导阶段的步骤之一,通常在引导程序将控制权交给操作系统的微内核之前完成。
进一步地,在S700中,调用基础功能模块加载宏内核,并将控制权交给宏内核的方法包括以下步骤:
S701:调用最优启动序列,运行启动序列中加载顺序中的各个节点,依次设为D1、D2、D3、D4、D5,此时微内核启动流程结束;
S702:D5将内核控制权转交给宏内核,即使D5跳转到宏内核的入口点;
S703:在宏内核的初始化流程后跳转到用户态程序继续运行。
优选地,在目前的操作系统,验证数字签名的步骤往往会导致系统延迟,如果加载无数字签名,这样会使得系统的安全性很低,并且使整个操作系统的加载时间变慢,为此,以下步骤为解决方案。
进一步地,在S800中,宏内核运行硬件虚拟层,进行硬件驱动加载的方法包括以下步骤:
S801:读取硬件虚拟层中所有硬件驱动程序的安全标记块;
S802:依次加载硬件虚拟层中的各个硬件驱动程序,如果硬件驱动程序有数字签名且驱动程序标记为正常,则直接进行加载硬件驱动程序;否则转到S803;
S803:对硬件驱动程序进行强制数字签名,并将此硬件驱动程序标记置为测试;
S804:加载驱动程序标记为测试的硬件驱动程序,操作系统加载完成后开始计算硬件的工作量证明中的总工作时间;如果操作系统在加载阈值的次数内发生异常,则将此硬件驱动程序标记置为不兼容,发出硬件驱动程序不兼容的信息;
S805:当硬件的工作量证明中的硬件在当前操作系统中加载的次数大于加载阈值并且硬件在当前操作系统中的总工作时间大于稳定时间阈值,则将此硬件驱动程序标记置为正常;其中,稳定时间阈值一般设置为30分钟,可以在[1,240]分钟之间人工调整; 其中,加载阈值一般设置为2次。
进一步地,在S800中,硬件虚拟层包括多个硬件驱动程序,每个硬件驱动程序中记录多个安全标记块;所述安全标记块是一种记录操作系统中与当前硬件驱动程序相兼容的硬件驱动程序的序号的数据结构,反映了当前硬件的驱动程序与当前系统的兼容性是否具有数字签名;所有参与硬件虚拟层加载的硬件驱动程序中安全标记块包含以下4个部分:硬件id(硬件驱动程序对应硬件的唯一标识符)、硬件的工作量证明(硬件驱动程序对应硬件的工作量证明形成的哈希散列)、驱动程序标记、数字签名;
所述硬件的工作量证明包括硬件在当前操作系统中加载的次数和硬件在当前操作系统中的总工作时间,具体形式为SHA256哈希值。例如,硬件的工作量证明为[34,600 Min],即操作系统加载所述硬件34次,硬件在操作系统加载后累计工作时长为600分钟(Min),则其SHA256哈希值为:03339281309c1df7169de93fc6f68ecd858557cb18a38d5b7eddfe843524eae0。
所述驱动程序标记包括不兼容、测试、正常这些标记。
进一步地,在S800中,所述硬件虚拟层,也称为硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。
进一步地,在S700中,所述宏内核用于管理用户程序和硬件之间的系统资源,代表内核进程运行代码;当用户进程经过系统调用或者中断进入到内核态时,宏内核代表它运行代码;宏内核需要管理的资源多于微内核,其大小就相对大一些了。在宏内核架构当中,内核管理着CPU调度,内存管理,文件管理和系统调用等各模块的工作,由于用户服务和内核服务被实现在同一空间中,这样在执行速度上要比微内核快。
进一步地,在S800中,硬件虚拟层是位于操作系统的宏内核与硬件电路之间的接口层,其目的在于将硬件抽象化;它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。硬件抽象层是一个编程层,允许计算机操作系统在逻辑层而不是硬件层与硬件设备交互。操作系统核心或者硬件驱动程序都可以调用硬件抽象层。无论哪种情况,调用程序都不用了解硬件的具体设计细节,只需要给出抽象层所需的参数即可。
进一步地,系统虚拟层也称操作系统层虚拟化,将操作系统内核虚拟化,可以允许使用者空间软件物件被分割成几个独立的单元,在内核中运行,而不是只有一个单一物件运行;这个软件物件,也被称为是一个容器,虚拟引擎,虚拟专用服务器。对每个行程的拥有者与使用者来说,他们使用的服务器程式,看起来就像是自己专用的。
优选地,通过以下HTML类的伪代码(部分关键性代码)表示一种微内核及宏内核混合的方法:
注释://调用操作系统的微内核加载基础功能模块
<Function Name="DwlSILoadKernel2">
<Argument Name="ka" />
<Argument Name="ks" />
<FunctionBody>
<Variant Name="kr" Type="INT32" DefaultValue="0" />
<DwlInvoke Function="DwlKlAllocMem4K">
<InvokeResult Value="kr" />
<Parameter Value="ka" />
<Parameter Value="ks" />
</DwlInvoke>
<If>
<Condition>
<DwlInvoke Function="DwlHandleValid">
<InvokeResult Value="kr" />
</DwlInvoke>
</Condition>
<IfFalse>
<CoreReturn />
</IfFalse>
</If>
<DwlInvoke Function="DwlSILoadKernelCore">
<InvokeResult Value="kr" />
<Parameter Value="ka" />
<Parameter Value="DWLKRNL2.CDT" />
</DwlInvoke>
<If>
<Condition>
<DwlInvoke Function="DwlHandleValid">
<InvokeResult Value="kr" />
</DwlInvoke>
</Condition>
<IfFalse>
<CoreReturn />
</IfFalse>
</If>
<DwlInvoke Function="DwlKlCheckCplKernel2">
<InvokeResult Value="kr" />
<Parameter Value="ka" />
</DwlInvoke>
<If>
<Condition>
<DwlInvoke Function="DwlHandleValid">
<InvokeResult Value="kr" />
</DwlInvoke>
</Condition>
<IfTrue>
<DwlInvoke Function="DwlKlCplKernel2">
<InvokeResult Value="kr" />
<Parameter Value="ka" />
</DwlInvoke>
</IfTrue>
</If>
<DwlInvoke Function="DwlKlUnfordKernel2">
<InvokeResult Value="kr" />
<Parameter Value="ka" />
</DwlInvoke>
<If>
<Condition>
<DwlInvoke Function="DwlHandleValid">
<InvokeResult Value="kr" />
</DwlInvoke>
</Condition>
<IfFalse>
<CoreReturn />
</IfFalse>
</If>
注释://微内核调用基础功能模块加载宏内核,并将控制权交给宏内核;
<DwlInvoke Function="DwlSITransferKernel">
<InvokeResult Value="kr" />
<Parameter Value="ka" />
<Parameter Value="knlinfo" />
</DwlInvoke>
<Assign To="kr" Value="true" />
<CoreReturn Value="kr" />
</FunctionBody>
注释://用于宏内核运行硬件虚拟层,进行硬件驱动加载;
<Function Name="DwlSILoadKernelCore">
<Argument Name="kernel2Addr" />
<Argument Name="kernel2File" />
<FunctionBody>
<Variant Name="kernel2" Type="DwlFile" />
<Variant Name="fc" Type="INT32" DefaultValue="0" />
<Variant Name="fl" Type="INT32" DefaultValue="0" />
<DwlInvoke Function="DwlKlOpenFile">
<InvokeResult Value="kernel2" />
<Parameter Value="kernel2File" />
</DwlInvoke>。
本公开的实施例提供的一种微内核及宏内核混合的系统,如图3所示为本公开的一种微内核及宏内核混合的系统结构图,该实施例的一种微内核及宏内核混合的系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种微内核及宏内核混合的系统实施例中的步骤。
所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
微内核加载单元,用于调用操作系统的微内核加载基础功能模块;
宏内核加载单元,用于微内核调用基础功能模块加载宏内核,并将控制权交给宏内核;
驱动加载单元,用于宏内核运行硬件虚拟层,进行硬件驱动加载;
系统虚拟单元,用于加载系统虚拟层完成操作系统的启动。
所述一种微内核及宏内核混合的系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种微内核及宏内核混合的系统,可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种微内核及宏内核混合的系统的示例,并不构成对一种微内核及宏内核混合的系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种微内核及宏内核混合的系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种微内核及宏内核混合的系统运行系统的控制中心,利用各种接口和线路连接整个一种微内核及宏内核混合的系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种微内核及宏内核混合的系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(SecureDigital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。
Claims (9)
1.一种微内核及宏内核混合的方法,其特征在于,所述方法包括以下步骤:
初始化阶段:
S100:按照预先设定的顺序加载内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块,并依次记录内存管理模块的加载时间为A1和所需内存容量为M1、任务管理模块的加载时间为A2和所需内存容量为M2、基本文件系统的加载时间为A3和所需内存容量为M3、底层硬件驱动的加载时间为A4和所需内存容量为M4、图形化模块的加载时间为A5和所需内存容量为M5;
S200:令内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块的加载顺序中的节点分别为第一节点、第二节点、第三节点、第四节点、第五节点;令第一节点为N1、第二节点为N2、第三节点为N3、第四节点为N4、第五节点为N5,按照树形结构的广度优先搜索进行构建启动序列;其中,加载顺序中的节点的意义为加载顺序中的各个环节,环节包括:内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块;其中,N1为根节点,N2、N3、N4为与根节点N1随机连接的第二层叶子结点;N5为目的叶子节点;
构建启动序列并用邻接表的存储结构存储各个启动序列及与N1、N2、N3、N4、N5对应的A1、A2、A3、A4、A5和M1、M2、M3、M4、M5;
S300:计算各个启动序列中的最优启动序列;
S400:按照最优启动序列的启动顺序重新启动;
S500:启动完成后,生成物理内存的镜像文件并保存;
启动阶段:
S600:按照最优启动序列的启动顺序重新启动;
S700:调用基础功能模块加载宏内核,并将控制权交给宏内核;
S800:宏内核运行硬件虚拟层,进行硬件驱动加载;
S900:加载系统虚拟层完成操作系统的启动。
2.根据权利要求1所述的一种微内核及宏内核混合的方法,其特征在于,在S100中,按照预先设定的顺序加载内存管理模块、任务管理模块、基本文件系统、底层硬件驱动、图形化模块的方法为以下子步骤:
S101:打开A20地址总线;
S102:切换处理器的实模式为保护模式;
S103:执行内存管理模块,将内存进行分页管理;
S104:执行任务管理模块,支持多任务调度管理;
S105:执行基本文件系统,以支持文件管理功能;
S106:执行底层硬件驱动,以提供对操作系统运行最重要的硬件支持;
S107:启动图形化模块,启动操作系统的桌面,以支持用户的输入输出操作。
3.根据权利要求1所述的一种微内核及宏内核混合的方法,其特征在于,在S300中,计算各个启动序列中的最优路径的方法为以下子步骤:
S301:从根节点N1出发,依次求启动序列中节点Ni的占用内存最小与最快起始时间Ne
(i) ,令Ne(1)为节点N1加载完成的时间,则,i= 2, ..., 4,Max为求最大值,
Min为求最小值;与节点Ni对应的为Mi;
定义物理内存的内核区的载入条件为Core_load,初值Core_load =FALSE;
定义物理内存的用户区的载入条件为Normal_load,初值Normal_load =FALSE;
上述载入条件Core_load或Normal_load为TRUE或FALSE,TRUE为真,即允许载入;FALSE为假,不允许载入;
S302:当节点Ni的Ne(i)小于内核区的系统容忍阈值,则标记节点Ni的Core_load =TRUE,否则标记节点Ni的Normal_load = TRUE;系统容忍阈值设置为所有节点Ne(i)的算术平均值;
S304:如果节点Ni的Core_load =TRUE,即Ni已经满足内核区的载入条件,则判断Ni的Nl(i)是否大于内核容忍阈值,当节点Ni的Nl(i)大于内核区的系统容忍阈值,则标记节点Ni的Core_load =FALSE;令节点Ni的Normal_load = TRUE;内核容忍阈值设置为所有节点Nl(i)的算术平均值;
S305:依次扫描所有的启动序列,选择节点Ni的Core_load =TRUE最多,即满足内核区的载入条件最多的启动序列,将该启动序列作为预选序列;
S306:环路检测:如果得到的预选序列中节点的个数小于所有启动序列的中节点个数的平均值,则说明启动序列中有环,则不能求出最优启动序列,则结束并发出异常,否则为判定为无环,并将该启动序列作为最优启动序列。
4.根据权利要求1所述的一种微内核及宏内核混合的方法,其特征在于,在S500中,物理内存的镜像文件至少包括物理内存的各个分页和/或分段及其对应的页表和/或段表,物理内存的镜像文件为当前状态下物理内存中所有的分页和已经加载的操作系统各个模块的数据;操作系统会将辅助存储器中的数据分区成固定大小的区块,称为分页;当不需要该分页的数据时,将分页由主存移到辅助存储器;当需要时,再将数据取回,加载主存中;相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐;分页是磁盘和内存间传输数据块的最小单位。
5.根据权利要求1所述的一种微内核及宏内核混合的方法,其特征在于,在S600中,当系统再次重启时,如果存在物理内存的镜像文件,内存直接读取并加载物理内存镜像文件,将存储器中的镜像文件直接映射到内存中,即从物理内存镜像文件加载数据到虚拟硬盘,恢复生成物理内存镜像文件时的物理内存的状态,从而实现快速启动效果;当系统再次重启时,如果不存在物理内存的镜像文件,或者如果发现当前设备的硬件与硬件配置文件中硬件不一致,则执行S400-S500重新生成物理内存的镜像文件。
6.根据权利要求1所述的一种微内核及宏内核混合的方法,其特征在于,在S500中,如果由于上一次系统由于异常断电、宕机的原因未能正常生成镜像文件,则重新执行S100-S500进行生成物理内存的镜像文件。
7.根据权利要求1所述的一种微内核及宏内核混合的方法,其特征在于,在S700中,调用基础功能模块加载宏内核,并将控制权交给宏内核的方法包括以下步骤:
S701:调用最优启动序列,运行启动序列中加载顺序中的各个节点,依次设为D1、D2、D3、D4、D5,此时微内核启动流程结束;
S702:D5将内核控制权转交给宏内核,即使D5跳转到宏内核的入口点;
S703:在宏内核的初始化流程后跳转到用户态程序继续运行。
8.根据权利要求1所述的一种微内核及宏内核混合的方法,其特征在于,在S800中,宏内核运行硬件虚拟层,进行硬件驱动加载的方法包括以下步骤:
S801:读取硬件虚拟层中所有硬件驱动程序的安全标记块;
S802:依次加载硬件虚拟层中的各个硬件驱动程序,如果硬件驱动程序有数字签名且驱动程序标记为正常,则直接进行加载硬件驱动程序;否则转到S803;
S803:对硬件驱动程序进行强制数字签名,并将此硬件驱动程序标记置为测试;
S804:加载驱动程序标记为测试的硬件驱动程序,操作系统加载完成后开始计算硬件的工作量证明中的总工作时间;如果操作系统在加载阈值的次数内发生异常,则将此硬件驱动程序标记置为不兼容,发出硬件驱动程序不兼容的信息;
S805:当硬件的工作量证明中的硬件在当前操作系统中加载的次数大于加载阈值并且硬件在当前操作系统中的总工作时间大于稳定时间阈值,则将此硬件驱动程序标记置为正常;其中,稳定时间阈值设置为30分钟,可以在[1,240]分钟之间人工调整; 其中,加载阈值设置为2次;
其中,硬件虚拟层包括多个硬件驱动程序,每个硬件驱动程序中记录多个安全标记块;所述安全标记块是一种记录操作系统中与当前硬件驱动程序相兼容的硬件驱动程序的序号的数据结构,反映了当前硬件的驱动程序与当前系统的兼容性是否具有数字签名;所有参与硬件虚拟层加载的硬件驱动程序中安全标记块包含以下4个部分:硬件id、硬件的工作量证明、驱动程序标记、数字签名;所述硬件的工作量证明包括硬件在当前操作系统中加载的次数和硬件在当前操作系统中的总工作时间,具体形式为SHA256哈希值,所述驱动程序标记包括不兼容、测试、正常。
9.一种微内核及宏内核混合的系统,其特征在于,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
微内核加载单元,用于调用操作系统的微内核加载基础功能模块;
宏内核加载单元,用于微内核调用基础功能模块加载宏内核,并将控制权交给宏内核;
驱动加载单元,用于宏内核运行硬件虚拟层,进行硬件驱动加载;
系统虚拟单元,用于加载系统虚拟层完成操作系统的启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247915.8A CN111124522B (zh) | 2020-04-01 | 2020-04-01 | 一种微内核及宏内核混合的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247915.8A CN111124522B (zh) | 2020-04-01 | 2020-04-01 | 一种微内核及宏内核混合的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124522A true CN111124522A (zh) | 2020-05-08 |
CN111124522B CN111124522B (zh) | 2020-08-04 |
Family
ID=70493975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010247915.8A Active CN111124522B (zh) | 2020-04-01 | 2020-04-01 | 一种微内核及宏内核混合的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124522B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11972265B2 (en) | 2022-04-22 | 2024-04-30 | Red Hat, Inc. | Parallel booting operating system |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04153823A (ja) * | 1990-10-18 | 1992-05-27 | Sankyo Seiki Mfg Co Ltd | Scsiインターフェース付ドライブ装置 |
CN1535528A (zh) * | 2001-07-09 | 2004-10-06 | �Ƚ�װ�ù�˾ | 具有安全驱动程序的外围设备 |
CN101038545A (zh) * | 2006-11-10 | 2007-09-19 | 清华大学 | 操作系统内核构件跨域运行的方法 |
CN101441594A (zh) * | 2007-11-23 | 2009-05-27 | 英业达股份有限公司 | 计算机硬件装置测试方法 |
CN101630261A (zh) * | 2008-07-16 | 2010-01-20 | 鸿富锦精密工业(深圳)有限公司 | 网络附加存储系统及其启动方法 |
CN101763286A (zh) * | 2008-12-22 | 2010-06-30 | 国际商业机器公司 | 用于在混合系统中跨平台转移工作负载的系统和方法 |
US7840964B2 (en) * | 2005-12-30 | 2010-11-23 | Intel Corporation | Mechanism to transition control between components in a virtual machine environment |
CN104050137A (zh) * | 2013-03-13 | 2014-09-17 | 华为技术有限公司 | 一种异构操作系统中内核运行的方法及装置 |
US20140351637A1 (en) * | 2010-11-18 | 2014-11-27 | International Business Machines Corporation | Executing a kernel device driver as a user space process |
CN107066894A (zh) * | 2017-03-09 | 2017-08-18 | 天地融科技股份有限公司 | 一种多功能智能密钥设备及其操作指令执行方法和装置 |
CN109522720A (zh) * | 2018-11-29 | 2019-03-26 | 北京元心科技有限公司 | 动态度量的方法、装置、电子设备及计算机可读存储介质 |
CN110912693A (zh) * | 2019-11-22 | 2020-03-24 | 福建金密网络安全测评技术有限公司 | 一种数字证书格式合规性检测系统 |
-
2020
- 2020-04-01 CN CN202010247915.8A patent/CN111124522B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04153823A (ja) * | 1990-10-18 | 1992-05-27 | Sankyo Seiki Mfg Co Ltd | Scsiインターフェース付ドライブ装置 |
CN1535528A (zh) * | 2001-07-09 | 2004-10-06 | �Ƚ�װ�ù�˾ | 具有安全驱动程序的外围设备 |
US7840964B2 (en) * | 2005-12-30 | 2010-11-23 | Intel Corporation | Mechanism to transition control between components in a virtual machine environment |
CN101038545A (zh) * | 2006-11-10 | 2007-09-19 | 清华大学 | 操作系统内核构件跨域运行的方法 |
CN101441594A (zh) * | 2007-11-23 | 2009-05-27 | 英业达股份有限公司 | 计算机硬件装置测试方法 |
CN101630261A (zh) * | 2008-07-16 | 2010-01-20 | 鸿富锦精密工业(深圳)有限公司 | 网络附加存储系统及其启动方法 |
CN101763286A (zh) * | 2008-12-22 | 2010-06-30 | 国际商业机器公司 | 用于在混合系统中跨平台转移工作负载的系统和方法 |
US20140351637A1 (en) * | 2010-11-18 | 2014-11-27 | International Business Machines Corporation | Executing a kernel device driver as a user space process |
CN104050137A (zh) * | 2013-03-13 | 2014-09-17 | 华为技术有限公司 | 一种异构操作系统中内核运行的方法及装置 |
CN107066894A (zh) * | 2017-03-09 | 2017-08-18 | 天地融科技股份有限公司 | 一种多功能智能密钥设备及其操作指令执行方法和装置 |
CN109522720A (zh) * | 2018-11-29 | 2019-03-26 | 北京元心科技有限公司 | 动态度量的方法、装置、电子设备及计算机可读存储介质 |
CN110912693A (zh) * | 2019-11-22 | 2020-03-24 | 福建金密网络安全测评技术有限公司 | 一种数字证书格式合规性检测系统 |
Non-Patent Citations (3)
Title |
---|
张智 等: "Windows x64无签名驱动程序运行方法", 《微电子学与计算机》 * |
李宏 等: "服务体模型与操作系统内核设计技术", 《计算机研究与发展》 * |
李朱峰: "《Linux 2.6嵌入式系统开发与实践》", 31 May 2010, 北京航空航天大学出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11972265B2 (en) | 2022-04-22 | 2024-04-30 | Red Hat, Inc. | Parallel booting operating system |
Also Published As
Publication number | Publication date |
---|---|
CN111124522B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101255382B1 (ko) | 운영체제에 친숙한 부트로더 | |
US8914606B2 (en) | System and method for soft partitioning a computer system | |
US7568090B2 (en) | Speedy boot for computer systems | |
WO2013152660A1 (zh) | 加速操作系统启动的方法、装置、终端及计算机存储介质 | |
US7454547B1 (en) | Data exchange between a runtime environment and a computer firmware in a multi-processor computing system | |
CN110704161B (zh) | 虚拟机创建方法、装置及计算机设备 | |
US20190227918A1 (en) | Method for allocating memory resources, chip and non-transitory readable medium | |
JP2012252576A (ja) | 情報処理装置、起動方法およびプログラム | |
EP2504759A1 (en) | Method and system for enabling access to functionality provided by resources outside of an operating system environment | |
CN114168271A (zh) | 一种任务调度方法、电子设备及存储介质 | |
CN112925606B (zh) | 一种内存管理方法、装置及设备 | |
CN111124522B (zh) | 一种微内核及宏内核混合的方法及系统 | |
JP2001290665A (ja) | プロセッサシステム | |
CN110753040A (zh) | 一种请求处理的方法及装置 | |
WO2024109540A1 (zh) | 芯片电路、处理器的启动方法及服务器 | |
WO2024119930A1 (zh) | 调度方法、装置、计算机设备和存储介质 | |
CN114817107B (zh) | Pcie设备切换系统、方法、装置、计算机设备和存储介质 | |
CN110096366B (zh) | 一种异构内存系统的配置方法、装置及服务器 | |
CN110083469B (zh) | 一种异构硬件组织运行统一内核方法及系统 | |
CN112764822A (zh) | 操作系统启动方法、装置、设备及介质 | |
US9086895B1 (en) | Controlling hardware driver selection | |
CN116303154B (zh) | 用于数据处理单元的基地址寄存器资源分配方法及介质 | |
CN109960567A (zh) | 半导体设备 | |
CN117519908B (zh) | 一种虚拟机热迁移方法、计算机设备及介质 | |
CN111538540B (zh) | 一种加快嵌入式系统启动速度的方法及其嵌入式系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |