CN1801086A - 应用于Java操作系统中设备支持的实现方法 - Google Patents
应用于Java操作系统中设备支持的实现方法 Download PDFInfo
- Publication number
- CN1801086A CN1801086A CN 200610049140 CN200610049140A CN1801086A CN 1801086 A CN1801086 A CN 1801086A CN 200610049140 CN200610049140 CN 200610049140 CN 200610049140 A CN200610049140 A CN 200610049140A CN 1801086 A CN1801086 A CN 1801086A
- Authority
- CN
- China
- Prior art keywords
- equipment
- interface
- bus
- driver
- java
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000006870 function Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用于Java操作系统中设备支持的实现方法。本发明是以分层管理的方式,采用面向对象的方法在Java操作系统中实现了即插即用的设备支持方法,把设备支持系统划分为设备接口、设备总线接口、设备驱动程序和设备应用程序接口四个层次,每个层次都作为操作系统中的一个对象来实现,并通过设备搜寻器和设备-驱动映射器的协助自动搜寻连接到设备总线上的设备,自动加以识别和注册,具有高度的适应性和可扩展性,能够很好地支持设备的热插拔。
Description
技术领域
本发明涉及Java操作系统,尤其是涉及一种应用于Java操作系统中设备支持的实现方法。
背景技术
设备支持是整个操作系统中最为繁琐复杂的部分。各种不同类型不同厂家不同型号的设备都需要分别加以特殊处理,并且新设备层出不穷,使得设计一种广泛适应于各种设备的设备支持方法异常困难。
为了方便设计,目前的操作系统往往把设备划分为几个大类,对每一类分别加以处理。
按照输入输出特性,设备可以划分为输入型外围设备、输出型外围设备和存储型外围设备三类。按照输入输出信息交换的单位,则可以划分为字符设备和块设备。输入型外围设备和输出型外围设备一般为字符设备,它与内存进行信息交换的单位是字节,即一次交换1个或多个字节。所谓块是连续信息所组成的一个区域,块设备则一次与内存交换的一个或几个块的信息,存储型外围设备一般为块设备。
存储型外围设备又可以划分为顺序存取存储设备和直接存取存储设备。顺序存取存储设备严格依赖信息的物理位置进行定位和读写,如磁带。直接存取存储设备的重要特性是存取任何一个物理块所需的事件几乎不依赖于此信息的位置,如磁盘。不同的设备用不同的方法加以支持。
一般来说,普通操作系统把设备支持功能组织为如下三个部分:
1)输入输出中断处理程序(底层)。
2)设备驱动程序。
3)与设备无关的操作系统输入输出软件。
输入输出中断处理程序负责设备的异常事件处理、通知操作系统设备操作成功等;设备驱动程序是操作系统的核心组成部分,负责具体设备的初始化、读写、状态设置等操作;与设备无关的操作系统输入输出软件则屏蔽了具体设备的一些特性,尽量把不同设备都封装为统一的形式。比如Unix系统中把设备都当作文件来处理。
但是现有的方法在适应性和可扩展性上还有很大的缺陷。整个设备支持功能的分层过于粗略,而能够实现统一接口的只有“与设备无关的操作系统输入输出软件”这一部分,于是需要有大量的重复代码用于针对每个具体设备进行专门处理,缺乏适应性和可扩展性,从而对热插拔也不能很好的进行支持。
发明内容
本发明的目的在于提供一种应用于Java操作系统中设备支持的实现方法。
本发明解决其技术问题所采用的技术方案如下:
1)分为四层的管理体系:
设备接口:对硬件设备的抽象,对硬件设备进行封装,拥有唯一的标识符并提供对硬件设备进行操作的接口;
设备总线接口:对硬件总线的抽象,对硬件总线进行封装,提供总线间和总线与设备间连接的接口;
设备驱动程序接口:具体实现了设备的具体功能,并以设备接口作为外壳向设备应用程序接口提供支持;
设备应用程序接口:通过设备接口实现系统Java操作系统中的设备访问的功能调用,并对外部应用程序提供公共接口;
2)面向对象的实现方法,设备接口、设备总线接口、设备驱动程序和设备应用程序接口都是Java操作系统中的对象,根据应用的总线、接入的具体设备和对应的设备驱动,以及应用程序而实例化;
3)两个辅助模块:
设备搜寻器:对总线上挂载的设备进行识别、实例化,并向设备管理器注册该设备的信息;
设备-驱动映射器:自动搜索设备所需的驱动程序,并将该设备映射到其驱动程序上,使该设备拥有自己的驱动程序。
本发明具有的有益效果是:首先,因为采用了面向对象的设计方法,所以具备高度的适应性和可扩展性,对各种不同的设备甚至未来的设备都可以提供一致的接口,不需要对整个设备支持方法作重大改变;其次,用设备应用程序接口替代了普通操作系统中的访问设备的系统调用,并且把设备应用程序接口设计为设备接口对象的成员函数,从而可以采用统一的方法实现不同的具体特备的访问,相比较普通操作系统,具有更好的可扩展性;第三,对即插即用和热插拔用统一的方法进行支持,因而简化了设计,并且可以支持几乎所有设备的热插拔。
附图说明
图1是本发明的流程图;
图2是本发明的体系结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
本发明按照上述四层管理体系和两个辅助模块来布局。下面将就本体系作详细介绍。
1)分为四层的管理体系和两个辅助模块,参见附图2:
①分为四层的管理体系:
I.设备接口:对硬件设备的抽象,对硬件设备进行封装,拥有唯一的标识符并提供对硬件设备进行操作的接口。本发明中采用了面向对象的方法,设备接口是Java操作系统中的对象,每个设备接口都根据相应设备而实例化为一个对象,抽象出具体硬件设备的功能,对外表现为一个标准的设备,可以对它进行各种访问操作。
II.设备总线接口:对硬件总线的抽象,对硬件总线进行封装,提供总线间和总线与设备间连接的接口。本发明采面向对象的方法针对每个设备总线都实例化一个相应的对象,抽象出具体的硬件总线,对外表现为一个标准的设备总线,可以跟设备接口相连,也可以跟其它总线相连。
III.设备驱动程序:具体实现了设备的具体功能,并以设备接口作为外壳向设备应用程序接口提供支持。设备驱动程序负责具体设备的读写、状态设置、出错处理、缓冲处理等,跟普通操作系统中的驱动类似。
IV.设备应用程序接口:通过设备接口实现系统Java操作系统中的设备访问的功能调用,并对外部应用程序提供公共接口。设备应用程序接口也是采用面向对象的方法,对外部应用程序提供统一的操作接口,其内部则通过设备的驱动程序实现了对外的接口。本发明中,因为设备接口是采用面向对象的方法实现,所以很自然的,设备的应用程序接口就是设备接口提供的操作。也就是说,每个设备接口都是一个对象,而设备应用程序接口作为设备对外部程序提供的操作,则是其相应的对象的成员函数。这种方法保证了对每个设备接口对象的应用程序接口调用都是正确的,并且都可以通过统一的方式实现不同的功能。
②两个辅助模块:
I.设备搜寻器:对总线上挂载的设备进行识别、实例化,并注册该设备的信息。设备搜寻器在系统启动时用于初始化各个设备;在运行时如果有新设备连接到设备总线上,即热插拔时,则用于识别该设备。
II.设备-驱动映射器:自动搜索设备所需的驱动程序,并将该设备映射到其驱动程序上,使该设备拥有自己的驱动程序。
2)设备初始化过程,参见图1:
①系统运行之后,先初始化设备总线。系统按照编号从低到高依次识别出每条设备总线,为每条总线建立一个“设备总线接口”对象,并初始化该对象。对象的初始化信息包括总线编号、总线可挂载设备数目、与其相连的总线的编号等。
②识别总线上的设备。设备总线初始化之后,由设备搜寻器按照挂载点的编号从低到高依次识别出连接在总线上的每个设备,将这些设备登记在设备管理器中。设备管理器用来登记注册管理设备所需的所有信息。
③实例化设备接口。设备被识别登记之后,设备搜寻器负责进一步为每个设备建立一个“设备接口”对象,并初始化该对象。对象的初始化信息包括设备识别号、设备类型、设备应用程序接口信息等。
④驱动程序映射。完成上述的设备接口对象初始化后,设备-驱动映射器根据设备识别号、设备类型以及设备应用程序接口所属类型为该设备找到一个合适的驱动程序,并将该驱动程序设置为对应设备接口对象的成员函数,从而使该设备拥有自己的驱动程序。
从②到④是为每个设备按顺序执行的。也就是说,先为第一个设备执行一遍②、③、④,再为第二个设备执行一遍②、③、④,接着为第三个设备执行,依次类推,直到所有设备都初始化完成。
3)设备热插拔过程,参见图1:
①在系统运行时,如果有新设备连接到设备总线上,则总线会发出一个中断,告知CPU有新设备加入。于是设备搜寻器就负责搜索设备总线上的设备,找到新设备后,就按照前面所述第2)步的步骤,从②开始,依次执行③和④,完成新设备的初始化工作。
②在系统运行时,如果有设备从设备总线上拔出,则总线会发出一个中断,告知CPU有设备退出。设备搜寻器根据退出的设备所在的总线以及它在该设备总线上的位置,从设备管理器中查出该设备的相关信息,然后删除这些信息。因为Java操作系统具有垃圾收集功能,所以该设备之前所占用的资源会被自动释放。这就完成了设备的删除工作。
从这里可以看到,本发明中对设备热插拔的支持跟对设备即插即用的支持采用了几乎完全一样的方法。
现有一计算机,有两条设备总线1和2,2连接在1上;又有三个设备A、B、C,其中A、B连接到总线1上,C连接到总线2上;a、b、c分别是A、B、C所需要的驱动程序。
现在这个计算机上安装了应用了本发明的Java操作系统。系统加电启动后,经过最初的自检和操作系统引导,就进入
1)设备初始化阶段:
①识别和初始化总线。首先初始化总线1,为总线1建立总线接口对象X,并在X中写入总线1的编号、可挂载设备数目和跟总线1相连接的总线的编号,即总线2;接着初始化总线2,为总线2建立总线接口对象Y,并在Y中写入总线2的编号、可挂载设备数目和跟总线2相连接的总线的编号,即总线1。
②识别总线上的设备。首先识别总线1上的设备A,然后将A的信息,主要包括A的设备识别号,即A,和A所处的位置,即总线1上的第1个设备,写入设备管理器。
③实例化设备A的设备接口。创建一个设备接口对象U,并用设备识别号、设备类型、设备应用程序接口信息等作为参数初始化U。
④驱动程序映射。设备-驱动映射器根据U中所记录的A的设备识别号、设备类型以及设备应用程序接口等信息在设备驱动程序库中找到合适的程序a,并将a设置为U的成员函数。
这样就完成了设备A的初始化工作,接着设备搜寻器再依次找到B和C,然后分别为它们执行前面的②、③、④三个步骤,完成初始化过程。
2)设备热插拔:
现在又有一个设备D在系统运行中接入总线2的位置2,于是总线2上发出一个中断,通知CPU有一个新设备加入。设备搜寻器检查总线2的位置2,识别出设备D,于是就对D执行前面步骤1)的②、③、④三个步骤,完成新设备的初始化工作。
现在假设设备B在系统运行中被拔出,于是总线1上发出一个中断,通知CPU有一个设备退出。于是设备搜寻器就根据退出设备的位置,即总线1的位置2,从设备管理器中查找到相应的设备为B。然后设备搜寻器就从设备管理器中删除设备B的信息。这样就完成设备的删除工作。
本Java操作系统软件已经向中华人民共和国版权局申请计算机软件著作权登记。
Claims (1)
1、一种应用于Java操作系统中设备支持的实现方法,其特征在于:
1)分为四层的管理体系:
设备接口:对硬件设备的抽象,对硬件设备进行封装,拥有唯一的标识符并提供对硬件设备进行操作的接口;
设备总线接口:对硬件总线的抽象,对硬件总线进行封装,提供总线间和总线与设备间连接的接口;
设备驱动程序接口:具体实现了设备的具体功能,并以设备接口作为外壳向设备应用程序接口提供支持;
设备应用程序接口:通过设备接口实现系统Java操作系统中的设备访问的功能调用,并对外部应用程序提供公共接口;
2)面向对象的实现方法,设备接口、设备总线接口、设备驱动程序和设备应用程序接口都是Java操作系统中的对象,根据应用的总线、接入的具体设备和对应的设备驱动,以及应用程序而实例化;
3)两个辅助模块:
设备搜寻器:对总线上挂载的设备进行识别、实例化,并向设备管理器注册该设备的信息;
设备-驱动映射器:自动搜索设备所需的驱动程序,并将该设备映射到其驱动程序上,使该设备拥有自己的驱动程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610049140 CN1801086A (zh) | 2006-01-17 | 2006-01-17 | 应用于Java操作系统中设备支持的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610049140 CN1801086A (zh) | 2006-01-17 | 2006-01-17 | 应用于Java操作系统中设备支持的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1801086A true CN1801086A (zh) | 2006-07-12 |
Family
ID=36811117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610049140 Pending CN1801086A (zh) | 2006-01-17 | 2006-01-17 | 应用于Java操作系统中设备支持的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1801086A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484174B2 (en) | 2008-03-20 | 2013-07-09 | Microsoft Corporation | Computing environment representation |
US8572033B2 (en) | 2008-03-20 | 2013-10-29 | Microsoft Corporation | Computing environment configuration |
US9135279B2 (en) | 2007-05-04 | 2015-09-15 | Microsoft Technology Licensing, Llc | Mesh-managing data across a distributed set of devices |
CN105045733A (zh) * | 2015-07-09 | 2015-11-11 | 上海联彤网络通讯技术有限公司 | 设备驱动装置及方法 |
US9298747B2 (en) | 2008-03-20 | 2016-03-29 | Microsoft Technology Licensing, Llc | Deployable, consistent, and extensible computing environment platform |
US9753712B2 (en) | 2008-03-20 | 2017-09-05 | Microsoft Technology Licensing, Llc | Application management within deployable object hierarchy |
CN110943968A (zh) * | 2018-09-25 | 2020-03-31 | 杭州海康威视系统技术有限公司 | 一种设备接入控制方法及设备接入组件 |
-
2006
- 2006-01-17 CN CN 200610049140 patent/CN1801086A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135279B2 (en) | 2007-05-04 | 2015-09-15 | Microsoft Technology Licensing, Llc | Mesh-managing data across a distributed set of devices |
US8484174B2 (en) | 2008-03-20 | 2013-07-09 | Microsoft Corporation | Computing environment representation |
US8572033B2 (en) | 2008-03-20 | 2013-10-29 | Microsoft Corporation | Computing environment configuration |
US9298747B2 (en) | 2008-03-20 | 2016-03-29 | Microsoft Technology Licensing, Llc | Deployable, consistent, and extensible computing environment platform |
US9332063B2 (en) | 2008-03-20 | 2016-05-03 | Microsoft Technology Licensing, Llc | Versatile application configuration for deployable computing environments |
US9753712B2 (en) | 2008-03-20 | 2017-09-05 | Microsoft Technology Licensing, Llc | Application management within deployable object hierarchy |
US10514901B2 (en) | 2008-03-20 | 2019-12-24 | Microsoft Technology Licensing, Llc | Application management within deployable object hierarchy |
CN105045733A (zh) * | 2015-07-09 | 2015-11-11 | 上海联彤网络通讯技术有限公司 | 设备驱动装置及方法 |
CN105045733B (zh) * | 2015-07-09 | 2018-08-21 | 上海联彤网络通讯技术有限公司 | 设备驱动装置及方法 |
CN110943968A (zh) * | 2018-09-25 | 2020-03-31 | 杭州海康威视系统技术有限公司 | 一种设备接入控制方法及设备接入组件 |
CN110943968B (zh) * | 2018-09-25 | 2022-04-26 | 杭州海康威视系统技术有限公司 | 一种设备接入控制方法及设备接入组件 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1801086A (zh) | 应用于Java操作系统中设备支持的实现方法 | |
CN1825283A (zh) | 嵌入式操作系统硬件镜像启动优化的实现方法 | |
EP0371942A2 (en) | System and method for interfacing in computer systems | |
CN1833225A (zh) | 控制虚拟机的方法和系统 | |
CN1959640A (zh) | 在软件包管理系统将用户进程表示为软件包的系统和方法 | |
CN1317653C (zh) | 一种数据库连接的高效管理方法 | |
CN1160247A (zh) | 高效利用空间的对象加锁的系统和方法 | |
CN1231734A (zh) | 在类数据交换环境中提供动态数据引用的系统和方法 | |
CN1534478A (zh) | 重定位在多线程计算机中共享的计算机数据的设备和方法 | |
CN1993676A (zh) | 发现数据处理系统内的硬件的方法和设备 | |
CN107766039B (zh) | 从Java对象中存取属性值的方法、服务器及存储介质 | |
CN1818869A (zh) | 嵌入式操作系统镜像启动的启动优化方法 | |
CN1955893A (zh) | 媒体分享装置 | |
CN1740997A (zh) | 网络设备及其外围器件互连资源的分配方法 | |
CN100342353C (zh) | 嵌入式操作系统中进程映射实现方法 | |
CN1794170A (zh) | 一种基于统一建模语言的电信领域建模工具及建模方法 | |
CN1160618C (zh) | 可编程控制器 | |
CN1317846C (zh) | 实现内外网络物理隔离的方法及其装置 | |
CN1264090C (zh) | 调用构件对象功能的智能指针的封装方法 | |
CN1100299C (zh) | 面向对象系统中对被保护对象进行访问控制的系统和方法 | |
CN1749957A (zh) | 一种面向图形绘制引擎的io中间件装置 | |
CN1889038A (zh) | 以类为单位的远程构件生命周期的管理方法 | |
CN1955890A (zh) | 一种提高hid设备通讯速度的方法 | |
CN1967483A (zh) | 使用转移中修改虚拟化设备自描述信息的方法 | |
CN1245685C (zh) | 基于构件的操作系统动态设备驱动的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |