可容忍代码错误的专用计算机系统模型_第1页
可容忍代码错误的专用计算机系统模型_第2页
可容忍代码错误的专用计算机系统模型_第3页
可容忍代码错误的专用计算机系统模型_第4页
可容忍代码错误的专用计算机系统模型_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可容忍代码错误的专用计算机系统模型    论文摘要:提出一种新的计算机体系结构模型超内核系统模型,使专用系统可以容忍代码错误,提高可生存性。并且实现了一个超内核系统开发平台,完成了网络防火墙原型系统。该网络防火墙原型系统在同样的硬件平台上比优化的Linux防火墙包转发延时少大约20。论文关键词:计算机系统模型,容错机制,超内核1.概述专用计算机系统是指针对具体应用开发的、完成某一专门任务的计算机系统,其运行的程序是固定的,通常也不需要在运行中增加新的程序。在很多领域都需要使用专用计算机系统,比如网络安全设备、工业自动化领域监测、控制用计算机系统等。专用计

2、算机系统虽然对通用性和灵活性要求低于通用计算机系统,但是对于可生存性和安全性的要求比较高。这是因为,首先专用计算机系统经常处于无人看守的状态,比如工业自动化领域中的自动监控系统,这就要求它有一定的错误容忍能力,在某些程序或者某个硬件出现问题的情况下,要能够保证整个系统还可以运转,不会彻底无法工作而造成监控完全失效;其次,专用计算机系统通常在整个应用环境中起到至关重要的作用,例如网络安全设备用于维护和保证网络系统安全,通常处在整个计算机和网络系统中特殊位置,各种各样的网络数据都会首先到达网络安全设备,它本身可能是受攻击最多的地方。设备本身的抗攻击能力是网络安全设备的一项重要性能。如果自身安全性得

3、不到保证,网络安全系统设备就无法保证被保护的网络和系统的安全。目前,专用计算机系统通常采用微内核结构的通用嵌入式操作系统。现有的各种嵌入式操作系统并不是专门为专用系统设计的,其安全机制和对错误的容忍性不能很好地满足专用系统的需要。通用的嵌入式操作系统为分层的体系结构,下层为上层提供服务,上层通过接口对下层进行功能调用。比如,许多采用Linux的防火墙都具有“硬件资源一内核一操作系统一安全应用”的4层结构。由于层与层之间有依赖关系,层与层之间的安全性能就会互相影响,应用之间也难以实现彻底隔离。只有对系统进行错误容忍的设计,为系统提供内置的保护,才能使系统具有较强的可生存能力,提供持续服务。本文针

4、对现有操作系统在实现专用系统安全功能和维护自身安全上存在的问题,提出了一种新的面向专用系统的体系结构模型:超内核系统模型。超内核系统模型针对专用系统功能单一,固定,对可生存性和安全性要求比较高的特点,实现了面向数据的系统结构和运行代码错误容忍机制,通过对应用子系统进行监控以及对应用子系统之间进行隔离和通信控制,避免系统因为某个应用程序的错误就引起崩溃,防止系统长时间处于拒绝服务状态,尤其适合应用在对安全性要求高的专用系统,比如网络防火墙、路由器等。同时,通过实验证明,在同一个硬件平台上,基于超内核的网络防火墙性能要优于linux2.4内核自带iptables防火墙。第2节介绍现有通用操作系统的

5、结构和现有系统的错误容忍机制;第3节描述超内核模型;第4节介绍基于超内核模型实现的网络防火墙原型系统以及性能测试;最后总结全文。2.相关工作情况2.1微内核结构的专用系统模型目前,专用计算机系统一般采用通用的嵌入式操作系统。比较经常使用在专用系统中的嵌入式操作系统有WindowsCE、VxWorks、QNX¨1、pSOS怛1、LynxOS¨等,这些操作系统的内核模型都是微内核结构。微内核H1是20世纪80年代产生的,由Richard Rashid在卡内基梅隆大学开发Mach操作系统时提出的。微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成,这些原语仅仅

6、包括了建立一个系统必需的几个部分,如线程管理,地址空间和进程间通信等,把其他功能(如:文件管理等)移出内核,在用户空间控制和管理。然而,基于微内核的专用系统的体系结构同普通的计算机设备的设计一致,采用的是“硬件资源一操作系统一应用”的层次结构。通用操作系统的体系结构及其安全机制适用于很多应用,但是,它们并不是专门为专用系统设计和建立的,针对专用系统的要求还存在以下几个方面的问题。(1)现有系统架构带来的安全问题使用通用操作系统的专用系统都必须接受现有的操作系统的体系结构。比如,许多采用Linux的防火墙都具有“硬件资源一内核一操作系统一安全应用”的4层结构。由于层与层之问有依赖关系,层与层之间

7、的安全性能就会互相影响。比如,不安全的内核可能会导致操作系统的不安全。在这种结构中,只要任何一个层面出现安全问题,整个安全系统就可能会崩溃。由于硬件、内核、操作系统和安全应用各层是由不同的厂家开发研制的,安全的不一致性非常明显。比如,上层应用很安全,但操作系统却漏洞百出。现有的分层结构使得应用之间的隔离不彻底。这种不彻底也会导致安全问题。网络安全设备可能会针对不同的网络或协议运行多个不同的安全应用。当多个应用共同运行在操作系统之上时,某一应用的漏洞会导致攻击者获得操作系统权限或者影响操作系统功能,进而影响到其他的所有应用,这种攻击就会很快扩散至整个系统。例如Apache的漏洞导致攻击者可以获得

8、操作系统权限,轻易地影响到系统中其他应用.基于微内核的设计在一定程度上解决了这一问题。微内核将操作系统分为多个相对独立的部分,相互之间进行一定的隔离,在一定程度上可以减少攻击影响的扩散。但系统中由服务到应用,由应用到设备,由服务到设备等之间有大量的消息需要通过内核传送,内核很难对这样大量的消息进行监控,也就没有能力保证应用之间的相互影响了。(2)通用操作系统导致安全问题由于通用操作系统的功能比较全面,代码量较大,从工程上无法保证其中没有安全漏洞。Kaspersky实验室的专家在一篇报告陆1中提到,经常用于嵌入式系统的Windows CE的安全漏洞能够被应用程序利用来获取操作系统函数的访问权限,

9、从而攻击者可以进行接收和发送文件等操作;另外,根据Coverity的检查,Linux 2.6.9内核代码也存在多个Bug。现有系统安全模型建立在可信计算基(TCB)的理念上,认为只有软件如特权管理服务和内核才能提供安全的服务。事实上,操作系统和支撑系统的软件难以为应用软件提供安全保障机制,它们本身就存在安全漏洞和设计隐患。有的黑客的攻击就是面对设备本身的,比如网络安全设备。他们利用安全设备本身的脆弱性,安全设备所使用的操作系统的安全漏洞以及安全机制的缺陷,绕过了现有的防护机制。2.2外内核结构由于传统内核实现的功能比较复杂。不可避免的漏洞为系统带来很多安全隐患,于是外内核被开发出来。外内核的目

10、标是允许应用层做所有的决定,并且让应用程序灵活地访问硬件。19941995年外内核由MIT开发出来,它不为应用程序提供抽象。外内核的目标是直接导出硬件资源,它唯一的任务是保证资源被安全地复用。然而。外内核并非可以如其所愿的那样安全、高效地导出硬件资源。外内核把导出的硬件资源和相应的应用程序进行安全绑定,安全绑定的硬件机制需要适当硬件的支持,所以实现起来有很大的局限性。安全绑定也可以通过软件实现,一些应用层代码能够被下载到内核中归J.然而,这会导致错误不能隔离的问题。另外,为了提高灵活性,外内核把硬件资源划分为很多部分,这就使得绑定、回收和放弃资源的管理很复杂,外内核中需要设定大量的机制来判断每

11、部分资源该如何分配、如何回收等等,还要通过判断不同应用的重要性来帮助决定资源如何分配。2.3错误容忍机制针对系统的错误容忍问题,国内外已经有一些相关研究。Michael M.等提出的Nooks方案¨刨是一种不改变系统结构情况下的增强措施,它在已有的操作系统中安装一个子系统用于隔离驱动程序和内核,Nooks把每个驱动程序构建为一个保护域(protection domain),并且监控每个保护域和内核之间的交互。对于异常的驱动,Nooks对其进行自动恢复。QNX software的Paul N.等人提出进程组划分的方法¨¨,进程被划分人不同组,CPU时间片按照比例分给

12、不同的组,某个组内的进程只能在给定的时间片内运行,这样使得一个组中的进程遭受DOS攻击时,不至于耗尽整个系统资源。微软2005年底发布的Singularity嵌入式操作系统¨定义了“独立软件进程(SIPs)”的概念,它有一个前提iSingularity的核心代码全部是安全代码,并且其他部分代码也都是可验证的。各部分代码(设备驱动、系统进程或应用程序)被逻辑隔离在不同的SIPs中执行,SIP之间的边界通过对代码进行语言安全检查和强制静态检查来建立。如果对某个SIP中的代码验证失败,则内核会终止这个SIP并回收资源。上述这些改进措施本质上仍然是逻辑隔离。Nooks能够在一个驱动失效的情况

13、下对它复位,但这不能阻止此驱动的错误影响到系统其他部分,所以仍未明显改善可生存性问题;QNX方案对于防范DOS攻击有显著效果,但同样不能阻止一个应用的错误导致全盘失效,因为系统中的资源和设备仍对所有应用可见;Singularity操作系统则对代码提出了很高的要求,例如内核代码绝对安全、其他代码可验证等,这在相当程度上依赖于代码的质量,而非系统提供的隔离措施。综上所述,现有的通用计算机体系结构和容错机制,不适用于专用计算机系统安全性和可生存性的要求。通用的计算机系统结构由内核管理和调配硬件资源,为上层应用提供统一接121,这有利于多个应用程序方便和灵活地操作硬件,但是内核的漏洞有可能被恶意的程序

14、利用造成整个系统的崩溃。3.容忍代码错误的计算机系统模型针对现有计算机系统中存在的问题,一种方法是频繁地为已知漏洞打补丁;另一种是根据安全需求重新设计系统。前一种方法需要在攻击成功,漏洞被成功检测到后才能进行修补,并且不能解决体系结构的缺陷带来的问题。本文考虑采用后一种方法,即系统整体结构通过重新设计和构建,安全系统平台和它所需完成的功能结合成一个整体,为计算机系统提供较为完整的安全性,并提高自身系统的可生存能力。3.1超内核系统结构基于超内核的计算机系统由可以独立完成一定功能的应用子系统与一个很小的超内核构成。如图1所示,应用子系统由应用程序以及该应用程序需要访问的服务程序链接而成,可以独立

15、地完成一定功能。比如网络防火墙系统中,数据包过滤程序和网卡驱动程序链接为数据包过滤子系统。另外,根据功能和需要,应用子系统被分配给相应的硬件资源,每个子系统可以也只能控制和管理分配给它的硬件资源,并且占据独立的内存空闻。应用子系统本身不对外提供接口,也不调用其他子系统的函数,如果要与其他子系统进行通信,必须通过超内核的消息传递来实现。因为专用系统和通用计算机系统不同,其功能比较单一和固定。因此,一些应用程序只对特定的硬件访问频繁,而很少需要访问其他硬件。所以,在超内核系统中,应用程序和需要频繁访问的硬件绑定在一起,独立完成一定的功能。当一个应用子系统需要访问其他子系统绑定的硬件时,通过消息传递

16、与相应的子系统进行通信。由于应用子系统只需要频繁访问自己绑定的硬件,各个子系统间只需要较少的通信。比如,网络防火墙系统中,进行数据包过滤的子系统只需要对网卡频繁地访问,这样就可以把过滤子系统和网卡进行绑定。子系统间通信次数减小,也有利于对整个系统进行安全监控,提高系统的安全性。超内核只负责处理子系统间基于消息的通信,并且对各个子系统进行调度。虽然在本系统中内核依然是整个系统的核心,但是它不管理任何硬件和软件资源,完成的功能也很简单,代码量很小,易于维护。另外,每个应用子系统运行时分别占据隔离的内存资源,当一个子系统出错时,错误被限制在子系统内部。3.2超内核超内核是整个系统的核心部分,负责处理

17、消息传递和各个应用子系统的调度,不对硬件进行监管和访问,功能简单并且代码量很小,易于维护。超内核的结构如图2所示。超内核主要由以下几部分构成:·消息缓存队列应用子系统之间通过消息传递进行通信,被发送的消息首先缓存在超内核的这个队列中,等待过滤检查。·调度单元通过一定的调度机制来决定哪个子系统获得CPU,进行数据处理。可以根据应用子系统待处理数据的多少来决定哪个子系统获得CPU,比如待处理消息队列长的子系统优先执行;或者当一个子系统对一个数据处理时间过长时,使其停止处理当前数据而进行下一个数据的处理。·消息传递单元对应用子系统提供SEND MESSAGE和RECEI

18、VE MESSAGE系统调用,从源子系统接收消息,以及把消息发送到目的子系统。当应用子系统需要发送消息时调用SEND MESSAGE,消息从应用子系统发送到超内核的消息缓存队列;当应用子系统接收消息时调用RECEIVE MESSAGE,从超内核的消息接收队列取走消息。·过滤单元缓存队列中所有的消息在存储到接收队列之前都要进行检查。尽管每个应用子系统都能相对独立地完成一定功能,但是子系统间的消息交换也是必要的。超内核为每个应用子系统提供一个过滤单元,当一个消息发送到超内核之后,它必须经过相应过滤单元的验证。首先,过滤单元要检查消息的格式以确保接收子系统能够识别该消息;另外,过滤单元还执

19、行一定的通信控制机制。根据专用系统的功能和实际需要,某些不可信的子系统禁止发送消息到安全性要求高的子系统,比如用户密码管理子系统。另外,过滤单元还可以对相应子系统的接收队列进行监控,当发现这个子系统的接收消息队列溢出后,便可判断该子系统未在正常的时间内从接收队列取走消息,从而判断它出现异常。过滤单元进而对出现异常的子系统进行恢复。·消息接收队列队列由每个应用子系统需要接收的消息构成。缓存队列中的消息经过过滤单元检查通过后就存到接收队列中,应用子系统从接收队列取走发送给自己的消息。过滤单元监测消息接收队列中每个应用子系统未处理的消息数目,如果在一定的时间参数内某个应用子系统未能从接收队

20、列中取走消息,则超内核就认为该子系统出现异常,并且对它进行恢复。超内核是模型的核心,负责应用子系统之间的调度和子系统间消息传递,它的错误会造成系统无法运行。但是,在超内核模型中,超内核完成的功能简单,仅仅是调度和消息传递,而不像传统内核那样还要对硬件进行监管和访问,所以超内核的代码量很小。以基于超内核模型开发的防火墙原型系统为例,包括注释和空行在内的内核程序总共870行C和c+以及汇编代码。简单的功能和很小的代码量可以使得超内核程序容易做到没有代码漏洞,另外维护简单。因为超内核非常小,可以大大减少出错的可能性,所以也不容易造成整个系统的崩溃。3.3 容错设计系统不论在何种情况下出现错误,都必须

21、满足2个条件:一个是系统中必须含有有缺陷的代码;另一个是系统中的这些代码必须要处理恶意或非恶意地引起系统错误的数据。任何一个条件不满足都不至于引起系统出错。现在的计算机体系结构中错误是面向代码的,即认为系统中的错误是由某些代码设计缺陷或者编码错误引起的。而数据只作为某个代码模块的资源进行处理,代码出错是引起系统错误的主动因素,而数据在任何情况下都是被动的。这样的体系结构带来的处理方式是:人们不断对代码进行修补,对体系结构进行改进甚至重新设计。在系统运行时,代码引起不安全情况后,系统无法自动处理。系统中的每一个进程是独立的单元,它处理的数据和操作系统无关,进程代码正常或非正常地都有可能占据全部的

22、虚拟资源,而操作系统本身却无法对这种情况进行分辨和制约,这样引起的后果往往是整个系统的崩溃。如果引起系统的错误是面向数据的,就可以认为系统中的代码在运行时是正确的,或者人们不关心代码本身的对错,认为引起系统出错的原因是某个数据。这样,系统开始运行后,通过对系统中各个部分处理数据的情况进行监控和检查,可以获得系统运行状态的信息。系统某个模块进行数据处理时,如果出现非正常现象,就抛弃该数据块,该模块回到初始的起点重新运行。这样可以保证系统不会出现崩溃现象,抛弃数据块的结果是保持系统提供持续的服务,最多引起性能的平稳降级。超内核系统的错误容忍机制设计中,应用子系统被看做是数据处理单元,接收并处理来自

23、系统外部或者其他子系统的数据。开发完成的超内核系统不依赖于代码的完全正确性,系统中的代码即使有错,也不会引起系统大范围的性能降级或者系统崩溃,错误会被制约在某一个单元内,整个系统的功能可以很快恢复。超内核系统中基于数据的错误容忍机制由2部分构成。首先,超内核通过监控应用子系统处理数据的情况对子系统进行调度、异常判断和恢复,具体有以下3个方面:·调度超内核负责监控各应用子系统的状态,根据数据流向调配和调度子系统的行为,包括运行、等待、挂起等等,决定由哪个子系统获得当前CPU的运行权。·异常判断超内核中保留所有应用子系统运行的起始点和间隔多长时间对此子系统进行状态监测的时间参数

24、,此参数由很多因素来确定,如系统策略、该子系统功能与性质、正常处理数据的时间等等。当某个应用子系统经过超内核的调配和调度获得CPU运行权以后,超内核还会保留此子系统的ID和当时正在处理的数据,并按照对它设定的时间参数进行定时监测。如果内核发现某一个子系统在时间参数所定的范围内,没有对输入的数据做足够的处理,得到正常的结果,就认为它处于非正常状态。·恢复超内核复位处于非正常状态的子系统,使其重新处理下一数据。超内核系统错误容忍机制的另一方面是,应用子系统的错误被限制在子系统内部,不会影响到其他子系统。具体有以下2个方面:·应用子系统之间在内存空间上是完全隔离的。整个系统采用线

25、性内存管理方式,某块线性内存一旦在系统创建时分配给某个子系统,该子系统就独占这块内存,不存在与其他子系统共享的问题,减少了数据更替时相互干扰的可能性。·应用子系统之间的通信是可被监控的。应用子系统不对外提供调用的接口,它们之间通过消息传递进行通信。而且发送的消息必须由超内核进行传递和检查过滤。检查可以分为2部分,首先超内核要检查消息的格式,以使碍该消息可以被接收方子系统识别;另外,超内核还要执行一定的应用子系统之间通信控制机制,根据专用系统的实际功能和安全需求,禁止某些不可信的应用子系统向安全要求高的子系统发送消息。这样,超内核通过对数据的监控调度各应用子系统,可以及时发现系统内错误

26、的部分,保持系统性能,防止系统崩溃,长时间处于拒绝服务状态。由于超内核系统的架构决定了应用子系统不需要频繁使用其他子系统管理的硬件,因此子系统间只需要比较少的通信,不会引起系统性能的下降。另外,某个应用子系统的错误通过内存隔离机制和消息过滤机制被限制在子系统内部,不会引起整个系统的崩溃。4.原型系统实现4.1开发平台为了开发原型系统,我们建立了一个开发环境,它由4个部分组成:编译器(compiler)、链接器(1inker)、烧写器(writer)、装载器(10ader)。编译器把c或者C+源文件编译成目标文件;链接器把目标文件转换为一个特定格式的磁盘映象文件。这个磁盘映象文件包含配置信息、超

27、内核代码、应用模块的可执行代码以及数据。烧写器把上述磁盘影响文件和装载代码写入IDE磁盘。这样,带有这个IDE磁盘的计算机就成为了一个超内核系统。我们的开发环境是在微软的windows操作系统下使用微软Visual Studio编译器编译出来的。为了简单性,这个开发环境只适用于Intel386处理器和其后续兼容处理器。装载器由683行汇编代码构成,链接器由3544行C+代码构成,烧写器由300行C+代码构成。编译器采用的是微软公司c+编译器。4.2原型系统实现使用上述开发环境,我们开发出一个防火墙原型系统。这个防火墙原型系统的硬件平台包括:IntelPentium3 1GI-Iz处理器,512

28、M DDR内存,2个82559 10100Mbps自适应网卡和1个串口。系统软件包括:超内核、串口应用模块和网络应用模块。系统每1118产生1次时钟中断,中断产生后超内核把收到的消息放入目的应用模块的消息队列中,并且给需要调度的模块分配时间片。从一个应用模块切换到另一个应用模块是通过CPU的任务门实现的。网络应用模块包括3个任务:2个任务处理来自2个网卡的中断,1个主任务负责消息和网络数据的处理。一个模块内所有的任务使用同样的地址空间,这样可以方便同一个模块内所有任务共享数据。防火墙原型系统几乎全部由C和C+语言开发,只有大约15的代码使用汇编语言,其中90是与机器硬件相关的部分。包括注释和空

29、行,内核程序包括870行C和C+以及汇编代码;网络模块程序包括1100行C和C+以及汇编代码;串口模块程序包括300行c和C+以及汇编代码。4.3性能测试为了测评超内核防火墙原型系统的性能,我们建立了一个Linux防火墙作为比较,超内核防火墙和Linux防火墙建立在同样的硬件平台上。我们删除了V2.4.28 Linux内核中不必要的组件,并且对其进行优化,使其适合做一个以太网桥。Window XP也被用在同样的硬件平台上进行测试。因为它难以进行优化,所以性能远不及超内核防火墙。例如,测试表明,它的包转发延时达到700tts.所以,Window XP的测试结果不在此进行比较。包转发延时是防火墙的

30、一个重要指标,它显示了防火墙的实时性,吞吐率是另一个性能特性。我们按照RFC 2544标准进行系统包转发延时和吞吐率的测试。我们使用SmaxtBits 6000B操作测试,它和SmartApplications软件一起自动完成符合RFC 1242和RFC2544定义的工业标准性能测试。(1)包转发延时使用存储转发(store and forward)方式来测试每个数据包的转发延时,也就是从数据包输入时的最后一个比特到达接收网121算起,直到这个数据包的第一个比特到达发送网口为止的间隔时间。一个测试数据流的传输率是10Mbps,在120s时间内对每个数据包进行转发延时测试,再计算平均值作为一次测

31、试的结果。测试重复进行20次。在10Mbps的传输率下,超内核系统的包转发延时比Linux系统少大约20,这表明超内核系统比优化的Linux效率更高。对于比较小的数据包,超内核系统的吞吐率优于Linux系统,这表明超内核系统的调度效率更高。然而,对于比较大的数据包超内核的吞吐率稍逊色于Linux系统,原因是我们的网络驱动没有优化为适应高传输率,这会导致一些数据包的丢失。经过测试,发现超内核系统的性能比Linux系统更加稳定。4.4容错性测试为了测试超内核系统的容错性,我们在超内核防火墙原型系统中进行了2项实验,用来测试应用子系统之间控制权转移;以及出现异常的子系统能够被超内核重启。(1)控制权

32、转移测试在超内核原型系统中,每个应用子系统在Link阶段被分配独立的代码段、数据段,且代码段和数据段是相互隔离的;不同应用子系统的代码段、数据段占据不同的物理内存空间。网络防火墙原型系统中,利用Intel x86架构CPU的特权级机制(特权级共4级,0为最高特权级,3为最低特权级)对应用子系统之间控制权转移进行保护:把最高的特权级别分配给最重要的数据段和最可信任的代码段,具有最高特权级别的数据,只能由最可信任的代码来访问;给最不重要的数据和一般的代码段分配较低的特权级别,具有最低特权级别的数据,可被具有任何特权级别的代码访问。为了测试原型系统是否实现了控制权无法从低级别子系统转移到更高级子系统

33、,我们进行了如下实验:·在Linker中,创建网络应用子系统代码段描述符时,在描述符中填入,代码段的起始地址为Ox4100000,段界限是1M.即网络应用子系统代码段在内存中被分配的空间为0x41000000x4200000.在网络应用子系统代码段描述符属性域中,把特权级DPL(descriptor privilege level)设为2.·在Linker中,创建串El应用子系统代码段描述符时,在描述符中填人,代码段的起始地址为Ox5100000,段界限是1M.即网络应用子系统代码段在内存中被分配的空间为Ox51000000x5200000.在网络应用子系统代码段描述符属性

34、域中,把特权级DPL设为1(级别高于网络应用子系统)。·在网络应用子系统代码中插入一条指令,跳转到串口应用子系统执行,该指令为:jmp fword ptr wTaskgateAddrwTaskgateAddr为目标串El子系统任务状态段的16位选择子这是x86架构保护模式下的一种间接跳转方式,指令中含有指向包含目标地址指针的任务状态段描述符的指针。·系统运行时,当网络应用子系统程序执行到这条jmp指令时,跳转无法实现,网络子系统无法继续运行,只能等待超内核将其重启。这就表示,在超内核系统中,控制权无法从低级别子系统向更高级子系统转移。(2)异常应用子系统的恢复超内核系统容错性的一个重要方面是,某个应用子系统的异常可以被及时发现,并且被恢复,从而保证系统的稳定性。网络防火墙原型系统采用了任务机制,每个子系统包含一个或者多个任务。Linker为每个任务创建TSS(任务状态段),并且在GDT(全局描述符表)中填入TSS的描述符项。TSS是每个任务的“现场”记录,保存任务现场各寄存器状态的完整映象等。网络防火墙原型系统初始化时,TSS段中的内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论