用于提供通用操作系统的方法和系统的制作方法

文档序号:6537165阅读:119来源:国知局
专利名称:用于提供通用操作系统的方法和系统的制作方法
技术领域
本发明涉及用于提供支持各种操作系统配置的通用操作系统特征集的方法和系统。
背景技术
计算机操作系统是整体式的,并且包括组件与模块之间的许多复杂的相互依赖性。操作系统组件基于等级关系互相依赖。在等级上层中的组件比在下层中的组件所依赖的组件数量更多些。属于等级下层的组件不依赖于更高层的组件。其结果是,操作系统中的下层组件可访问的操作系统可用服务的数量较少些。
随着操作系统规模的增长,测试变得越来越昂贵。当操作系统包括大量的复杂依赖组件时,去除或更改一个组件的效果就难以理解了。当组件之间的依赖性数量减少时,测试的有效性即得到改进。
大量复杂的依赖性是在操作系统开发周期中缺乏依赖性管理的结果。需要一种途径来建立具有有限数量的依赖组件的通用操作系统。

发明内容
描述了用于提供支持各种操作系统配置的通用操作系统特征集的方法和系统。对通用操作系统特征集加以组织以提供可用于众多装置和配置方法的最小存储器覆盖区(footprint)。通用操作系统包括提供对可靠性验证的集成组件加以选择的操作系统组件之间的依赖性。通用操作系统包括为各种操作系统场景提供功能性的应用程序接口(API)集。
本发明的方法包括定义操作系统组件;标识操作系统组件的依赖性;创建组件组使一个组中的组件共享共同的依赖性;建立组件组之间的依赖性规则;以及实施依赖性规则。
用来提供通用操作系统的示例性系统包括硬件抽象层(hardware abstractionlayer)、内核(kernel)、操作系统动态链接库层、子系统动态链接库层、以及网络层。硬件抽象层提供与硬件装置的交互。内核依赖于硬件抽象层,并向操作系统组件提供基本服务。操作系统动态链接库、子系统动态链接库、以及网络层都依赖于内核。操作系统动态链接库层包括用来执行操作系统应用程序的功能库。子系统动态链接库支持应用程序接口,使得应用程序接口受基本操作系统组件的限制。网络层支持操作系统应用程序的网络通信功能性。


图1显示了本发明可在其中实现的示例性计算环境。
图2示出了根据本发明通用操作系统的示例性功能框图。
图3是根据本发明示出用来把整体式操作系统转换成通用操作系统的过程的操作流程图。
具体实施例方式
简言之,本发明涉及用于提供支持各种操作系统配置的通用操作系统特征集的方法和系统。通用操作系统特征集被组织成提供可应用于众多装置和配置方法的最小存储器覆盖区。通用操作系统包括提供对可靠性生效的集成组件选择的操作系统组件之间的依赖性。通用操作系统包括为各种操作系统场景提供功能性的应用程序接口(API)集。
说明性操作环境参照图1,用来实现本发明的一示例性系统包括诸如计算装置100的计算装置。基本配置包括虚线102内的那些组件。在基本配置中,计算装置100通常包括至少一个处理单元104和系统存储器106。取决于计算装置的准确配置和类型,系统存储器106可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等等)、或两者的某些组合。系统存储器106通常包括操作系统108、一个或多个应用程序110,也可包括程序数据112。
计算装置100可具有附加特征或功能。例如,计算装置100还可包括诸如磁盘、光盘、或可移动闪存模块的其它数据存储装置(可移动和/或不可移动)。这种附加存储器在图1由可移动存储器114和不可移动存储器116示出。计算机存储介质可以包括用来存储诸如计算机可读指令、数据结构、程序模块、或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。系统存储器106、可移动存储114和不可移动存储116都是计算机存储介质的示例。计算机存储介质包括,但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化通用盘(DVD)或其它光学存储器、磁卡、磁带、磁盘存储器或其它磁性存储装置、或可用来存储所需信息并可由计算装置100访问的任何其它介质。任何这种计算机存储介质可以是装置100的一部分。计算装置100还可具有诸如键盘、鼠标、笔、语音输入装置、触摸输入装置等等的输入装置118。还可包括诸如显示器、扬声器、打印机等等的输出装置120。这些装置都是本领域技术人员众所周知的,在此无需赘述。
计算装置100还可包含使装置能与其它计算装置124诸如经网络进行通信的通信连接122。通信连接122是通信介质的一个示例。通信介质通常体现为计算机可读指令、数据结构、程序模块、或其它诸如载波或其它传输机制的已调制数据信号中的信号,并包括任何信息传递介质。作为示例,而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其它无线介质的无线介质。在此所用的术语计算机可读介质包括存储介质和通信介质。
通用操作系统通用操作系统提供可在每个操作系统配置中使用的可靠基层。通用操作系统代表最少的基本应用程序接口(API)集。任何写入API集的软件也兼容该操作系统的所有配置。例如,对照API集写成的测试代码在所有操作系统条件下都是可执行的。可应用测试过程来对操作系统及其它目标平台测试性能、强度以及完整的API覆盖面。用来测试操作系统组件的代码取决于基于通用操作系统的测试平台。因而,可轻松开发测试代码并能保证操作系统的可靠性。
通过对所有嵌入配置共享的稳定平台的集中测试,通用操作系统增加了嵌入运行时的一般可靠性。测试过程可拆分成组件,从而可测试操作系统组件的核心组。通过添加更多组件可扩展测试。例如,每个操作系统组件可单独进行测试以确定每个组件是否可与核心的操作协调一致。
通用操作系统提供基于组件的工程工具(engineering tool)。例如,可使用通用操作系统来建立最小的验证组件清单的可能配置(即最小覆盖区)。通用操作系统提供积极的覆盖区削减,导致嵌入原始设备制造商(OEM)的材料成本下降。通用操作系统的可靠性和最小覆盖区很适合创建固定功能服务器。创建固定功能服务器的重要优点是降低客户的总体持有成本。通用操作系统的组件可由对操作系统结构上层具有依赖性的组件提供服务(即置入缺陷修改、被较新版本替换等等)。
基于验证通用操作系统的各种分析,通用操作系统改进围绕核心操作系统(包括存储器、启动性能、以及API集)的文档。经改进的文档提高了OEM和独立的软件供应商对操作系统特性的理解。
通用操作系统作为预启动(pre-boot)操作系统进行操作。通过把操作系统的预建定制图像置入目标硬件来安装通用操作系统。一旦通用操作系统被安装到计算装置中,通用操作系统应用程序就可安装位于通用操作系统上层的操作系统剩余部分,或安装操作系统的不同版本。
通过能够从诸如数字化压缩盘(CD)的只读介质启动,通用操作系统可协助系统复原。可把整个操作系统安装在CD上。如果安装在硬盘上的系统崩溃,通过用CD上操作系统重新启动机器,可复原操作系统。然而,通过重新启动安装在CD上最小的操作系统子集,可更快地复原系统。通用操作系统提供一个复原安装在硬盘上的操作系统的平台。在一实施例中,通用操作系统可从插入通用串行总线端口的可移动闪存模块启动。
图2示出了根据本发明通用操作系统的功能框图。通用操作系统200是包括所有操作系统配置都需要的核心操作系统特征的基元。然而,通用操作系统200不包括操作系统的任何硬件体系结构专用特征。通用操作系统200代表其上可建立操作系统将来版本的基层。通用操作系统200还提供用来开发其它操作系统产品的标准基元。
通用操作系统的核心功能性由硬件抽象层(HAL)202和内核204提供。HAL202是使通用操作系统200能与一般或抽象层上硬件装置交互的编程层。可从内核204或装置驱动软件调用HAL 202。
内核204是通用操作系统200的中央模块。当启动通用操作系统200时,内核204是载入的第一个组件。载入后,内核204保留在主存储器中。内核204提供通用操作系统200中其它组件所需要的基本服务。内核204依赖于HAL 202。内核包括并依赖于装置驱动软件206和文件系统208。文件系统208提供使其它操作系统组件和应用程序能与存储器文件交互而成为文件群集的抽象。内核204和其它装置驱动软件的一部分从文件系统208载入。
装置驱动软件206包括控制诸如打印机、盘驱动器或键盘的装置的程序。在一实施例中,需要有装置驱动软件206才可创建包含通用操作系统200的可启动系统。可使用某些类的装置驱动软件来创建通用操作系统200的可启动版本。这些类包括系统装置、存储装置、用户接口装置以及网络装置的装置驱动软件。然而,装置驱动软件的类不是通用操作系统基元的一部分。装置驱动软件类是后来通过建立过程添加的以创建可安装的通用操作系统。
内核204之上的编程层包括操作系统动态链接库(DLL)210、子系统DLL 212、以及网络层214。操作系统DLL 210包括可由应用程序使用的操作系统支持的可执行功能库。例如,WindowsNT DLL是WindowsNT应用程序使用的可执行功能库。DLL可由若干个应用程序同时使用。某些DLL随操作系统提供,并对任意应用程序可用。其它DLL可为特定应用程序编写,并与该应用程序一起被载入。
子系统DLL 212提供对为应用程序提供功能的API的支持。在一实施例中,API可以是WIN 32。通用操作系统200将API限制到基本组件。通用操作系统200所支持的基本API集包括存储器管理(KERNEL)216、图形设备接口(GDI)218、用户接口因素(USER)220、以及安全和加密应用程序(ADVAPI)222。
KERNEL 216支持许多不同存储器管理功能,包括原子功能、通信端口支持、控制台支持、调试支持、装置I/O、DLL功能、错误处理、文件I/O、文件映射、文件系统功能、处理和等效功能、邮件槽(slot)、存储器管理、国家语言支持、经命名管道(pipe)、过程和线程、资源载入、字符串、结构化例外处理、同步、系统信息、时间功能、工具帮助功能、万国码(unicode)和字符集。
GDI 218所支持的功能包括以下操作系统特征位图、画笔、剪辑、色彩、装置上下文、填充形状、字体和文本、线条和曲线、元文件、路径、笔、打印和区域。
USER 220支持以下操作系统特征按钮功能和消息、^符号管理、剪贴板支持、组合框功能、坐标空间和变换功能、光标管理、对话框消息、动态数据交换、动态数据交换管理、编辑控制、勾、图标载入、键盘加速器、键盘输入、列表框控制、菜单控制、视窗消息和消息队列、鼠标输入、多个显示器支持、多文档界面、涂画和绘制、原始输入、矩形功能、资源载入(例如图标)、滚动条、字符串功能、系统信息功能、注销、定时器功能、视窗管理、视窗类登记、以及视窗属性功能。
以下功能由ADVAPI 222支持访问检查、安全描述器相关功能、过程管理功能、登记功能、服务管理功能、系统关闭功能、以及事件追踪功能。
网络层214提供功能使子系统DLL 212中的应用程序能与网络通信。网络层214包括传输控制协议/网际协议(TCP/IP)堆栈224、动态主机配置协议(DHCP)客户机226、自动专用IP寻址(AutoIP)228、域名系统(DNS)客户机230、以及TCP/IP上的网络基本输入输出操作系统(NetBT)232。通用操作系统200使用网络层214来测试核心组件的网络属性。
TCP/IP堆栈224支持包括用来连接因特网上客户机的通信协议。TCP/IP是用来在网络上传输数据的标准。TCP/IP堆栈224实现IP的当前版本(IPv4)以及诸如Ipv6的将来IP版本。IP安全(IPSec)集成于TCP/IP堆栈224内。IPSec是支持IP层上信息包安全交换的一组协议。
TCP/IP堆栈224实现若干个协议,包括用户数据报协议(UDP)、因特网控制信息协议(ICMP)、以及地址解析协议(ARP)。UDP提供在IP网络上发送和接收数据报的直接方式。ICMP支持包含错误、控制、以及指示消息的信息包。ARP把IP地址转换成物理地址。TCP/IP堆栈也支持IP多点传送。
DHCP客户机226提供用来从DHCP服务器把动态IP地址分配给网络上的装置的协议。DHCP客户机226包含用来获取多点传送组地址分配的多点传送动态客户机应用程序协议。AutoIP 228提供功能性,使得DHCP客户机226在得不到DHCP服务器时,自动地自分配IP地址。
NetBT 232是为局域网(LAN)添加专用功能的API。如果在网络上得不到DNS服务器,则通过广播名字解析经由NetBT 232来定位其它计算机。NetBT 232还支持需要NetBT接口和名字解析的旧版应用程序。
通用操作系统200在DLL 210、212和网络层214之上的各层包括Winsock(Windows软插座接口)234、登录客户机236、本地安全验证服务器(LSASS)238、组件对象模型(COM)240、运行库(RTL)242、服务控制管理器(SCM)模块、会话管理服务器(SMSS)246、即插即用(PnP)服务器248、以及远程过程调用(RPC)250。外壳252是通用操作系统200的最外层。外壳252是任选的,由于应用程序可替代其位置。
Winsock 234是用来开发通过TCP/IP协议可与其它计算装置通信的程序的API。Winsock功能性包括在通用操作系统200中是因为几乎每个计算装置都有网络接口。
登录客户机236提供功能性,使得本地用户或网络用户能够登录通用操作系统200。登录客户机236包括对照本地安全账户管理器(SAM)验证了用户后建立用户身份所需的最少功能。登录客户机236是通用操作系统200的任选组件,因为并不是所有的装置都需要用户登录。
LSASS 238提供诸如密码学和数字化证书的安全应用的基本功能性。LSASS238根据SAM进行验证并支持本地登录能力。LSASS 238从登录客户机236接收验证请求,并调用适当的验证包以执行账户校验和确认。关联于登录客户机236的用户接口(UI)与登录客户机/LSASS过程交互以登录用户。通用操作系统200可用本地登录所需的最少量的安全包启动。
COM 240是用来建立基于组件的应用程序的软件构架。COM对象是各自都有唯一标识的离散组件,它们揭示允许应用程序和其它组件访问其特征的接口。RTL242包括在执行期间绑定一程序的例程库。SCM模块244控制服务的开始和终止。由于DHCP 226和DNS 230是作为服务操作的,所以SCM模块244是必需的。
SMSS 246是用来管理多个子系统会话和用户会话的会话管理器。PnP管理器248支持控制检测到的硬件所需的驱动程序的即插即用安装。PnP管理器248是硬件相关特征但不是体系结构特异性的。由于某些装置是不兼容PnP的,所以PnP管理器248是可任选组件。
RPC 250是使一台计算机上的程序能执行在服务器上的或者在同一计算机的不同过程上的代码的协议。使用RPC 250,系统开发者不需要为服务器开发专用过程。客户机程序向服务器发送带有适当变量的消息,并且服务器返回包含被执行代码结果的消息。
通用操作系统200可作为开发工具用于组件化测试和基于组件的单元测试。组件化涉及理解和减少组件之间的依赖性以使操作系统的整体性弱化。通过提供帮助操作系统从整体式系统转换成组件式系统的框架,组件分组改进了操作系统的可服务性。通用操作系统200提供了组件式系统的高可靠性的基本操作系统。
通用操作系统200通过定义组件组所倚赖的基本操作系统层来创建组件组。把组件分成组消除了常规操作系统的整体式结构(monolithic structure)。取决于组件在操作系统中所驻留的层,可提供适当的标题子集,使组件不依赖于上层的组件。
用来创建通用操作系统的过程参照图3进行描述。通用操作系统通过管理操作系统组件之间的依赖性来创建。过程从方框300开始,在那里标准操作系统有许多互相依赖的组件。在方框310,通过确定每个组件的功能来提供组件定义。过程移到方框320。
在方框320,通过确定每个组件在操作系统整体式结构中的位置来标识组件的相互依赖性。过程移到方框330。
在方框330,标识那些代表有含义基元的用来使目标场景可行的组件组。每个组中的组件共享共同的依赖性。组件组的创建解除了组件之间的依赖性。例如,每个USER、GDI和KERNEL DLL中的组件都可能依赖于外壳中的另一组件。在此例中,通过在外壳中创建一个组件组(例如,新的DLL),这三个依赖性即被消除。新的DLL包括执行三个组件所需要的最少数量的API。因而,使用新DLL中的API子集可执行每个组件。在另一实施例中,通过更改源代码使上层依赖性不再存在,来解除组件间相互依赖性。过程继续到方框340。
在方框340,建立了组件组之间的依赖性规则。依赖性规则确定对于每个组件和组件组哪个依赖性是适当的。依赖性规则使操作系统组件之间存在的依赖性数量减为最少。过程移到方框350。
在方框350,实施组件组之间的依赖性规则。依赖性规则的实施防止组件有不需要的依赖性。依赖性规则的实施保证DLL的有效使用。过程在方框360结束。
以上说明书、实例和数据提供了对本发明组件的使用和制造的完整描述。由于可制作本发明的许多实施例而不背离本发明的精神和范围,本发明驻留于所附权利要求书中。
权利要求
1.一种提供通用操作系统的方法,其特征在于,包括定义操作系统组件;标识所述操作系统组件的依赖性;创建组件组,使得一个组中的操作系统组件共享共同依赖性;建立所述组件组之间的依赖性规则,使每个操作系统组件依赖于最少数量的其它操作系统组件;以及实施所述依赖性规则,使得操作系统组件的执行涉及最少数量的其它操作系统组件的执行,其中所述通用操作系统提供被配置成支持所述操作系统组件的基本操作系统层。
2.如权利要求1所述的方法,其特征在于,创建组件组减少了所述操作系统组件之间的依赖性。
3.如权利要求1所述的方法,其特征在于,通过提供帮助将所述操作系统从整体式系统转换成组件式系统的框架,创建组件组改进了操作系统的可服务性。
4.如权利要求1所述的方法,其特征在于,创建组件组还包括提供标题子集,使得操作系统组件之间的依赖性减少。
5.如权利要求1所述的方法,其特征在于,标识依赖性还包括确定所述操作系统组件在所述操作系统结构中的位置。
6.一种系统,其特征在于,包括一通用操作系统,其根据减少依赖性的方法而构建,所述方法包括定义操作系统组件;标识所述操作系统组件的依赖性;创建组件组,使得一个组中的操作系统组件共享共同依赖性;建立所述组件组之间的依赖性规则,使每个操作系统组件依赖于最少数量的其它操作系统组件;以及实施所述依赖性规则,使操作系统组件的执行涉及最少数量的其它操作系统组件的执行,其中所述通用操作系统提供被配置成支持所述操作系统组件的基本操作系统层。
7.如权利要求6所述的系统,其特征在于,还包括被安排成提供所述操作系统组件和硬件装置之间的接口的硬件抽象层。
8.如权利要求6所述的系统,其特征在于,还包括被安排成向所述操作系统组件提供服务的内核。
9.如权利要求6所述的系统,其特征在于,还包括具有用来执行操作系统应用程序的功能的操作系统动态链接库。
10.如权利要求6所述的系统,其特征在于,还包括被安排成支持应用程序接口使得所述应用程序接口受基本操作系统组件的限制的子系统动态链接库层。
11.如权利要求6所述的系统,其特征在于,还包括网络层,其被安排成支持操作系统应用程序的网络通信功能性,其还被安排成测试所述操作系统组件的网络属性。
12.一种通用操作系统,其特征在于,包括一硬件抽象层,其被安排成提供操作系统组件和硬件装置之间的接口;一内核,其依赖于所述硬件抽象层、并被安排成提供对所述操作系统组件的服务;一操作系统动态链接库,其依赖于所述内核并包括用来执行操作系统应用程序的功能库;一子系统动态链接库,其依赖于所述内核并被安排成支持应用程序接口使所述应用程序接口受基本操作系统组件的限制;以及一网络层,其依赖于所述内核并被安排成支持操作系统应用程序的网络通信功能性;其中所述内核、所述操作系统动态链接库、子系统动态链接库层、以及网络层都被安排成使所述操作系统组件之间依赖性的数量为最少。
13.如权利要求12所述的系统,其特征在于,所述内核包括一文件系统,其被安排成从存储介质中载入数据;以及用来控制所述硬件装置的装置驱动软件。
14.如权利要求12所述的系统,其特征在于,所述应用程序接口包括用于存储器管理、通信设备接口、用户接口要素、通信程序、以及安全和加密应用的动态链接库。
15.如权利要求12所述的系统,其特征在于,所述网络层包括传输控制协议/网际协议(TCP/IP)栈、动态主机配置协议客户机、自动专用IP寻址、域名系统客户机、以及TCP/IP上的网络基本输入输出操作系统。
16.如权利要求12所述的系统,其特征在于,所述网络层测试所述操作系统组件的网络属性。
17.如权利要求12所述的系统,其特征在于,还包括一登录客户机,其被安排成提供用来许可用户登录所述通用操作系统的功能性。
18.如权利要求12所述的系统,其特征在于,还包括提供安全应用基本功能性的本地安全验证服务器。
19.如权利要求12所述的系统,其特征在于,还包括一组件对象模块,其被安排成提供用来建立基于组件的应用程序的软件体系结构。
20.如权利要求12所述的系统,其特征在于,还包括一运行库,其包括在执行时被绑定在一程序上的例程库。
21.如权利要求12所述的系统,其特征在于,还包括被安排成提供操作系统服务管理的服务控制管理器模块。
22.如权利要求12所述的系统,其特征在于,还包括被安排成管理多个用户会话的会话管理服务器。
23.如权利要求12所述的系统,其特征在于,还包括被安排成支持装置驱动软件的即插即用安装的即插即用管理器。
24.如权利要求12所述的系统,其特征在于,还包括一远程过程调用基础结构,其被安排成使过程能够调用另一过程中的代码。
全文摘要
描述了用于提供支持各种操作系统配置的通用操作系统特征集的方法和系统。通用操作系统特征集被组织起来以提供可应用于众多装置和配置方法的最小存储器覆盖区。通用操作系统包括提供对可靠性生效的集成组件选择的操作系统组件之间的依赖性。通用操作系统包括为各种操作系统场景提供功能性的应用程序接口组。
文档编号G06F7/00GK1673957SQ200510051919
公开日2005年9月28日 申请日期2005年2月18日 优先权日2004年2月20日
发明者D·J·德索扎, M·R·蒋, P·M·威尔森, R·A·普莱彻 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1