CN110399174A - 一种设备管理系统及方法 - Google Patents

一种设备管理系统及方法 Download PDF

Info

Publication number
CN110399174A
CN110399174A CN201910686592.XA CN201910686592A CN110399174A CN 110399174 A CN110399174 A CN 110399174A CN 201910686592 A CN201910686592 A CN 201910686592A CN 110399174 A CN110399174 A CN 110399174A
Authority
CN
China
Prior art keywords
hardware device
driver
hardware
virtual bus
management system
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
Application number
CN201910686592.XA
Other languages
English (en)
Other versions
CN110399174B (zh
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.)
ISOFT INFRASTRUCTURE SOFTWARE CO Ltd
Original Assignee
ISOFT INFRASTRUCTURE SOFTWARE 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 ISOFT INFRASTRUCTURE SOFTWARE CO Ltd filed Critical ISOFT INFRASTRUCTURE SOFTWARE CO Ltd
Priority to CN201910686592.XA priority Critical patent/CN110399174B/zh
Publication of CN110399174A publication Critical patent/CN110399174A/zh
Application granted granted Critical
Publication of CN110399174B publication Critical patent/CN110399174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种设备管理系统及方法,属于计算机操作系统技术领域,系统包括:驱动模块,设备管理模块,检测单元,创建单元,分配单元,处理单元;方法包括:步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;步骤S2,为每个所述硬件设备创建虚拟总线;步骤S3,将虚拟总线分配给对应的驱动程序;上述技术方案有益效果是:实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。

Description

一种设备管理系统及方法
技术领域
本发明涉及计算机操作系统技术领域,尤其涉及一种设备管理系统及方法。
背景技术
微内核操作系统是一种基于微内核架构的操作系统,微内核是由一群尽可能将数量最小化的软件程序组成,它们负责提供实现一个操作系统所需要的最基本的机制与功能,比如线程管理、内存地址空间管理以及进程间通信等。微内核操作系统分为内核空间和用户空间,微内核运行在内核空间,而设备驱动程序、文件系统、网络协议等系统服务则运行在操作系统的用户空间。
设备驱动程序是一种操控硬件设备的程序,是硬件与应用程序的桥梁,用于向上层应用程序提供统一的接口,应用程序在无需了解硬件设备具体参数的情况下,通过调用设备驱动程序导出的接口便可以操纵控制硬件设备。设备驱动程序是操作系统的重要组成部分,在宏内核操作系统中,设备驱动程序运行于操作系统的内核空间,使得设备驱动程序拥有硬件设备资源的完全控制权限,可以保证操作系统性能的最大化,然而,由于设备驱动程序与内核的紧密耦合,使得如果设备驱动程序存在缺陷,将导致整个操作系统崩溃。在微内核操作系统中,由于设备驱动程序运行于操作系统的用户空间,所以不会出现上述问题,有助于加强系统的稳定性和安全性,但设备驱动程序的功能将会受到限制,比如,设备驱动程序不能直接操纵硬件设备,无法进行直接内存存取,无法直接就使用中断等,此外,由于没有相应的硬件设备管理策略,不可信的设备驱动程序将很容易恶意操纵硬件设备。
发明内容
针对现有技术中存在的上述问题,现提供一种设备管理系统,通过在用户空间中,微内核与设备驱动程序之间设置一设备管理模块,从而实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。
上述技术方案具体包括:
一种设备管理系统,其中,所述设备管理系统运行于微内核操作系统的用户空间,并包括:
驱动模块,用于通过不同的驱动程序调用所述微内核操作系统连接的相应的硬件设备;
设备管理模块,连接所述驱动模块,用于管理所述硬件设备,并为各所述驱动程序分配所述硬件设备的操作权限,所述设备管理模块具体包括:
检测单元,用于在所述设备管理模块启动时,探测所述微内核操作系统连接的所有所述硬件设备,并根据探测结果建立并维护所述设备管理系统的设备树;
创建单元,连接所述检测单元,用于根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
分配单元,连接所述创建单元,用于为各所述驱动程序分配所述虚拟总线,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的设备资源;
所述设备资源用于支持所述驱动模块与所述硬件设备之间的通信;
处理单元,用于对所述驱动模块的调用请求进行解析和处理,并将处理结果返回给所述驱动模块中相应的所述驱动程序。
优选地,其中,所述设备管理模块通过一通用接口与多个所述驱动程序相连接。
优选地,其中,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
优选地,其中,同一所述硬件设备的所述设备资源在同一时间只能由一个所述驱动程序获取。
优选地,其中,所述虚拟总线采用分层结构组织所述硬件设备。
优选地,其中,所述设备管理系统以服务的形式运行于所述用户空间。
一种设备管理方法,其中,应用于如上所述的设备管理系统,包括以下步骤:
步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;
步骤S2,根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
步骤S3,将所述虚拟总线分配给对应的驱动程序,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的资源。
优选地,其中,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
优选地,其中,同一所述硬件设备的资源在同一时间只能由一个所述驱动程序获取。
上述技术方案的有益效果在于:
供一种设备管理系统,通过在用户空间中,微内核与设备驱动程序之间设置一设备管理模块,从而实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。
附图说明
图1是本发明的较佳实施例中,一种设备管理系统的结构示意图;
图2是本发明的较佳实施例中,一种设备管理方法的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
一种设备管理系统,其中,设备管理系统运行于微内核操作系统的用户空间,并包括:
驱动模块1,用于通过不同的驱动程序调用微内核操作系统连接的相应的硬件设备;
设备管理模块2,连接驱动模块1,用于管理硬件设备,并为各驱动程序分配硬件设备的操作权限,设备管理模块具体包括:
检测单元20,用于在设备管理模块2启动时,探测微内核操作系统连接的所有硬件设备,并根据探测结果建立并维护设备管理系统的设备树;
创建单元21,连接检测单元20,用于根据设备树,为每个硬件设备创建虚拟总线,虚拟总线连接对应的硬件设备;
分配单元22,连接创建单元21,用于为各驱动程序分配虚拟总线,驱动程序通过虚拟总线获取对应的硬件设备的设备资源;
设备资源用于支持驱动模块1与硬件设备之间的通信;
处理单元23,用于对驱动模块1的调用请求进行解析和处理,并将处理结果返回给驱动模块1中相应的驱动程序。
在本发明的一个具体实施例中,驱动模块1中运行着微内核操作系统安装的各种设备驱动程序,设备管理模块2负责管理微内核操作系统平台的所有硬件设备和设备资源,同时负责为所有的设备驱动程序分配硬件设备的操作权限。而驱动模块1中的设备驱动程序则通过设备管理模块2导出的通用接口进行查询与请求设备资源,从而可以访问和操作微内核控制系统上相应的硬件设备。
在设备管理模块2启动时,检测单元20负责探测微内核操作系统平台连接的所有真实物理设备。例如,在X86机型上,系统通过扫描PCI总线来探测当前平台上连接的硬件设备,同时初始化ACPI(高级配置和电源管理接口子系统;在不支持系统运行时进行硬件探测的平台系统,可以通过设备资源描述配置文件(用于描述平台各种设备信息和资源,与Linux系统设备树类似)来探测硬件设备可用的I/O资源。
在本发明的较佳实施例中,设备管理模块2通过一通用接口与多个所述驱动程序相连接。
在本发明的一个具体实施例中,为了满足驱动模块1中不同驱动程序对驱动接口的要求,需要设计一套适合所有设备驱动程序的通用接口,具体如下:
虚拟总线接口如下
1.查询驱动程序可用虚拟总线:
lookup_vbus()。
2.遍历与查询自己虚拟总线设备:
vbus_get_device()vbus_iterate_devices()。
设备资源接口如下
1.查询物理设备资源,例如MMIO/IO端口区域、IRQ、总线号等:
lookup_resource()。
2.MMIO/IO区域资源请求与释放,确保可靠配置资源,一旦资源分配,不能由其他驱动程序使用。
request_iomem()、release_iomem();
request_ioport()、release_ioport()。
3.MMIO/IO区域映射与取消映射,设备内存区域物理地址,需要映射MMIO/IO区域到虚拟地址空间:
request_iomem_region()release_iomem_region();
request_ioport_region()release_ioport_region()。
4.中断号请求与绑定,设备中断资源绑定线程,中断信息通过IPC发送到中断处理线程
irq_request()irq_bind_thread();
irq_releace()irq_unbind_thread()。
在本发明的较佳实施例中,虚拟总线通过物理总线与对应的硬件设备相连接。
在本发明的一个具体实施例中,虚拟总线区别于物理总线,物理总线是现实存在的硬件设备总线,设备管理模块2中的创建单元21通过用于描述虚拟总线挂载的真实物理硬件设备的虚拟总线配置文件来创建虚拟总线。
在本发明的较佳实施例中,同一硬件设备的设备资源在同一时间只能由一个驱动程序获取。
在本发明的一个具体实施例中,设备管理模块2中的分配单元22具有将不同的虚拟总线授予不同的驱动程序的分配权限,而一旦设备驱动程序通过通用接口拥有了分配给自己的虚拟总线,该驱动程序便可以通过迭代查找的方式来探测该条虚拟总线上所挂载的物理硬件设备,从而获取相应的设备资源,其中设备资源包括设备内存映射I/O端口区域和设备中断请求(IRQ)等,设备资源用于支持设备驱动程序和硬件设备之间的通信,同时为了不同的驱动程序彼此之间互不干扰,同一个硬件设备的设备资源在同一时间段内只能由一个驱动程序获取。
在本发明的较佳实施例中,虚拟总线采用分层结构组织硬件设备。
在本发明的一个具体实施例中,虚拟总线采用分层(树)结构组织硬件设备,虚拟总线下存在物理总线,物理总线连接各种物理硬件设备。
在本发明的较佳实施例中,设备管理系统以服务的形式运行于用户空间。
一种设备管理方法,其特征在于,应用于如上所述的设备管理系统,包括以下步骤:
步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;
步骤S2,根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
步骤S3,将所述虚拟总线分配给对应的驱动程序,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的资源。
在本发明的较佳实施例中,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
在本发明的较佳实施例中,同一所述硬件设备的资源在同一时间只能由一个所述驱动程序获取。
上述技术方案的有益效果在于:
供一种设备管理系统,通过在用户空间中,微内核与设备驱动程序之间设置一设备管理模块,从而实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (9)

1.一种设备管理系统,其特征在于,所述设备管理系统运行于微内核操作系统的用户空间,并包括:
驱动模块,用于通过不同的驱动程序调用所述微内核操作系统连接的相应的硬件设备;
设备管理模块,连接所述驱动模块,用于管理所述硬件设备,并为各所述驱动程序分配所述硬件设备的操作权限,所述设备管理模块具体包括:
检测单元,用于在所述设备管理模块启动时,探测所述微内核操作系统连接的所有所述硬件设备,并根据探测结果建立并维护所述设备管理系统的设备树;
创建单元,连接所述检测单元,用于根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
分配单元,连接所述创建单元,用于为各所述驱动程序分配所述虚拟总线,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的设备资源;
所述设备资源用于支持所述驱动模块与所述硬件设备之间的通信;
处理单元,用于对所述驱动模块的调用请求进行解析和处理,并将处理结果返回给所述驱动模块中相应的所述驱动程序。
2.根据权利要求1所述的设备管理系统,其特征在于,所述设备管理模块通过一通用接口与多个所述驱动程序相连接。
3.根据权利要求1所述的设备管理系统,其特征在于,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
4.根据权利要求1所述的设备管理系统,其特征在于,同一所述硬件设备的所述设备资源在同一时间只能由一个所述驱动程序获取。
5.根据权利要求1所述的设备管理系统,其特征在于,所述虚拟总线采用分层结构组织所述硬件设备。
6.根据权利要求1所述的设备管理系统,其特征在于,所述设备管理系统以服务的形式运行于所述用户空间。
7.一种设备管理方法,其特征在于,应用于如权利要求1-6中任意一项所述的设备管理系统,包括以下步骤:
步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;
步骤S2,根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
步骤S3,将所述虚拟总线分配给对应的驱动程序,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的资源。
8.根据权利要求7所述的设备管理方法,其特征在于,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
9.根据权利要求7所述的设备管理方法,其特征在于,同一所述硬件设备的资源在同一时间只能由一个所述驱动程序获取。
CN201910686592.XA 2019-07-29 2019-07-29 一种设备管理系统及方法 Active CN110399174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910686592.XA CN110399174B (zh) 2019-07-29 2019-07-29 一种设备管理系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910686592.XA CN110399174B (zh) 2019-07-29 2019-07-29 一种设备管理系统及方法

Publications (2)

Publication Number Publication Date
CN110399174A true CN110399174A (zh) 2019-11-01
CN110399174B CN110399174B (zh) 2023-05-02

Family

ID=68325170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910686592.XA Active CN110399174B (zh) 2019-07-29 2019-07-29 一种设备管理系统及方法

Country Status (1)

Country Link
CN (1) CN110399174B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111885170A (zh) * 2020-07-23 2020-11-03 平安科技(深圳)有限公司 物联网控制系统的处理方法、系统、云端服务器及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101052949A (zh) * 2004-08-18 2007-10-10 扎鲁纳股份有限公司 操作系统
CN101059761A (zh) * 2006-04-20 2007-10-24 联想(北京)有限公司 一种虚拟机系统及其硬件设备访问方法
US20170357516A1 (en) * 2016-06-13 2017-12-14 Huawei Technologies Co., Ltd. System and Method for Virtual Hardware Control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101052949A (zh) * 2004-08-18 2007-10-10 扎鲁纳股份有限公司 操作系统
CN101059761A (zh) * 2006-04-20 2007-10-24 联想(北京)有限公司 一种虚拟机系统及其硬件设备访问方法
US20170357516A1 (en) * 2016-06-13 2017-12-14 Huawei Technologies Co., Ltd. System and Method for Virtual Hardware Control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵渊: "基于虚拟设备驱动技术的变电站通信控制单元" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111885170A (zh) * 2020-07-23 2020-11-03 平安科技(深圳)有限公司 物联网控制系统的处理方法、系统、云端服务器及介质

Also Published As

Publication number Publication date
CN110399174B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
JP5989862B2 (ja) セキュアなバーチャルマシン間の共有メモリ通信のためのコンピューティング装置、方法及び機械可読記憶媒体
KR102047558B1 (ko) 가상 디스크 저장 기술
JP3659062B2 (ja) 計算機システム
US20080065854A1 (en) Method and apparatus for accessing physical memory belonging to virtual machines from a user level monitor
US7558723B2 (en) Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
CN102571698B (zh) 一种虚拟机访问权限的控制方法、系统及装置
US7260702B2 (en) Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
US20100275205A1 (en) Computer machine and access control method
CN103262034B (zh) 将数据分区至虚拟机
CN103034524A (zh) 半虚拟化的虚拟gpu
KR20070083569A (ko) 운영체제
JP2009506462A (ja) 多層仮想化メカニズムを用いた階層的な仮想化
CN112035272A (zh) 进程间通信的方法、装置以及计算机设备
CN105556473A (zh) 一种i/o任务处理的方法、设备和系统
CN104503825A (zh) 一种基于kvm混合式设备虚拟化方法
JP2022522374A (ja) 割り込みイネーブルのためのセキュア・インターフェース制御ハイレベル命令インターセプト
CN110399174A (zh) 一种设备管理系统及方法
US7302547B2 (en) Method and system for supporting virtual mappings for shared firmware
KR102610717B1 (ko) 보안 인터페이스 컨트롤의 통신 인터페이스
Li et al. The Quest-V separation kernel for mixed criticality systems
CN113626131A (zh) 实现热迁移的方法、芯片、板卡和存储介质
WO2022100693A1 (zh) 一种地址转换关系的配置方法及计算机系统
WO2022083158A1 (zh) 数据处理的方法、实例以及系统
CN103617125A (zh) 内存空间的管理方法和装置
CN111813384A (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