




已阅读5页,还剩65页未读, 继续免费阅读
(计算机软件与理论专业论文)基于usbkey的efi可信引导的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 中文摘要 摘要: b i o s 是p c 产业链和技术的关键一环。由于传统b i o s 的规范性和开放性欠佳, 造成程序繁杂、安全性较差,且产品趋于垄断,已经阻碍了p c 技术的进一步发展。 b i o s 技术的革新已成为当务之急。i n t e l 公司于2 0 0 0 年开始研发e f i ( e x t e n s i b l e f i r m w a r ei n t e r f a c e ,可扩展固件接口) 。由于设计的成功,e f i 具有传统b i o s 无 可比拟的优越性,并被业界公认为下一代b i o s 规范。 目前,世界各p c 技术相关公司都在积极研究和开发e f i ,我国也于2 0 0 5 年开 始由相关部门组织,开始大规模研发以e f i 为基础的国产b i o s 。在b i o s 技术革新 之际研发下一代b i o s 不仅极具挑战性,还有利于研发具有自主知识产权的国产 b i o s ,具有深远的战略意义。 论文通过对e f i 的分析,根据e f i 的安全构架,提出了其安全引导的具体解 决方案,设计并实现了增强e f i 安全性的安全系统。论文在分析e f i 规范和e f i 部分实现源码的基础上,根据可信计算理论,设计了e f i 可信引导模型。针对传 统可信计算中使用的t p m 硬件存在的通用性问题,在该e f i 可信引导模型中,我 们使用了具有u s b 接口的u s b k e y 作为可信硬件。要想使用u s b k e y ,就必须首先能 在e f i 下实现对u s b k e y 的驱动,为此,论文对e f i 的驱动架构进行了研究,设计 并实现了e f i 下的u s b k e y 的驱动。最后根据e f i 核心阶段执行特点及安全需求, 设计并实现以u s b k e y 为硬件支持的e f i 核心阶段可信引导安全系统。 通过设计实现e f i 核心阶段可信引导安全系统,在很大程度上解决了e f i 核 心阶段的安全问题,确保了e f i 关键组件的完整性以及用户的合法性。本文针对 e f i 安全问题所提出的解决方案和安全系统的实现是一次尝试和创新,将有助于国 产b i o s 在新一代b i o s 安全问题上标准规范以及安全策略的制定。 关键词:e f i :u s b k e y ;数字签名;可信计算;可信引导;身份认证; 完整性验证 分类号:t p 3 0 9 2 a b s t r c t a b s t r a ( t 】醛i r a c i : b i o si sak e yp a r to ft h es o f t w a r ec h a i nf o rp c i t sd r a w b a c k sa n dl i m i t a t i o n so f o p e n n e s sa n dc r i t e r i am a k ei t sp o o rs e c u r i t y b i o s 1 6 - b i tn a t u r es t i f l e st h ep l a t f o r m a d v a n c e m e n tf o rt h es y s t e m st h a ta r e6 4 - b i tb a s e d i t ss p e c i f i c a t i o n sh a v en o tk e p tu p w i t ht h ee v o l u t i o no ft h et e c h n o l o g y w i t hb i n sh i r i n gt h ew a l l ,i n t e ls p e a r h e a d e dt h e e f i ( e x t e n s i b l ef i r m w a r ei n t e r f a c e ) t os o l v et h e s ep r o b l e m s e f ib m u g h tt h em o d e m c o m p u t e rs o f t w a r ea r c h i t e c t u r a lc o n c e p t si n t of i r m w a r e t h eb e n e f i t so fe f lw e r es o c o n v i n c i n gt h a tm i c r o s o f ta n dt h ei n d u s t r ym a d e i tt h en e x tg e n e r a t i o no f b i o s n o wt h ew o r l d sp c - r e l a t e dc o m p a n i e sa r ea c t i v ei nr e s e a r c h i n ga n dd e v e l o p i n g e f i o u rc o u n t r ya l s ob e g a nt oo r g a n i z el a r g e - s c a l er e s e a r c h e r sf o rt h ed e v e l o p m e n to f e f i - b a s e dd o m e s t i cb i o s i t sac h a l l e n g i n gw o r kt or e s e a r c he f i a tt h es a m et i m e ,i t s c o n d u c i v et od e v e l o pi n d e p e n d e n ti n t e l l e c t u a lp r o p e r t yr i g h t so fd o m e s t i cb i o s t h i sp a p e ri n c l u d es o m er e s e a r c ha n da n a l y s i so fe f tp r e s e n tas a f e t yb o o t s p e c i f i cs o l u t i o n sa c c o r d i n gt oi t ss e c u r i t yf r a m e w o r k d e s i g n e da n di m p l e m e n t e da s a f e t ys y s t e mt oe n h a n c es e c u r i t yo fe f i w eg o ts o m ec o m p r e h e n s i v ea n di n d e p t h u n d e r s t a n d i n go fe f ib yr e s e a r c h i n gt h ec r i t e r i aa n dc o d eo fe f i t h i sp a p e rd e s i g n e d e f it r u s t e db o o tm o d e lb yi n t r o d u c i n gt h ed i g i t a ls i g n a t u r e ,a u t h e n t i c a t i o na n dt r u s t e d c o m p u t i n ga n ds o0 1 1f r o mt h ea r e ao fi n f o r m a t i o ns e c u r i t y d e s i g n e da n di m p l e m e n t e d e f is u p p o r to nu s b k e y a tl a s tt h ew ei m p l e m e n t e dat r u s t e db o o ts e c u r i t ys y s t e mo f t h ec o r es t a g eo fe f ib y r e s e a r c h i n go nt h ee f i d r i v e rm o d u a l 。 b yd e s i g n i n gt h et r u s t e db o o ts e c u r i t ys y s t e mo ft h ec o r es t a g e so fe f i ,w e i m p r o v e dt h es e c u r i t yo fe f i t oa l a r g ee x t e n t t h ei n t e g r i t yo fk e yc o m p o n e n t so fe f i a n dt h el e g i t i m a c yo fu s e r sa r ea s s u r e d t h es o l u t i o na n dt h er e a l i z a t i o no ft h ee f i s e c u r i t ys y s t e mi sa ni n n o v a t i o n ,w h i c hw i l lh e l pi nf o r m u l a t i n gs t r a t e g i e so fd o m e s t i c b i o so nt h ei s s u eo fs t a n d a r d so fs a f e t ya n ds e c u r i t ys t r a t e g y k e y w o r d s :e f i ;u s b k e y ;d i g i h a ls i g n a t u r e :t r u s t e dc o m p u t e ;t r u s t e db o o t , a u t h e n t i c a t i o n :i n t e g r i t yv e r i f i c a t i o n 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 鸯秘 签字日期:2 叩7 年久月工 日 一名:鸯毒建 签字日期:2 眵年班日 北京交通火学硕士学位论文 独创性声明 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:李扳争 签字日期: 加。7 年z 月叫日 致谢 本论文是在导师韩臻教授和彭双河老师的精心指导下完成的。在两年半的研 究生学习期间,导师不仅在学术研究上给了我指导,还在做人、做事上给了我很 多启发和教育。导师对我们的关怀不仅体现在学术指导上,也体现在生活的细微 之处,当我们的生活与学习上遇到难题时,韩老师总是会像一盏明灯指引我们的 道路。在本文的写作期间,从选题、字斟句酌的修改,一直到最后定稿,都是倾 注了韩老师大量的心血。他严谨的治学态度和精益求精的工作精神都使我深深体 会到一个科研工作者的那份热忱与执着。 感谢我的母校交大,提供了如此丰富的学习资料供我查阅汲取。 感谢我的父母,是他们的爱让我在学习和生活中觉得充满自信和希望。 感谢我的同窗好友熊鹰,章睿,在研究过程中提供了许多帮助。感谢我的朋 友,张轶,李渊,对我无微不至的关心和照顾。 最后,感谢所有的在研期间曾给予我支持、关心和帮助的各位老师、同学和 亲朋好友,感谢他们对我的学习和论文工作所给予的无私帮助,攻读硕士学位期 间我所获得的每一点进步都是与他们的深切关怀和热情帮助分不开的。再次感谢 他们! 绪论 1 1 引言 1 绪论 b i o s ( b a s i ci n p u t o u t p u ts y s t e m ) 被称为基本输入输出系统,由低级语言一汇编 语言实现,存储在计算机主板上的只读存储器中。从p c a t 出现至今的几十年里, b i o s 作为p c 最重要的组成部分负责p c 硬件与软件的连接,负责p c 的初始化工 作以及操作系统的引导。但如此关键的技术却并未随着p c 技术的迅猛发展而发展, 如今的b i o s 在核心部分与它刚出现时没有本质上的变化。 b i o s 的一成不变和自身的许多弊端已经严重的阻碍了p c 技术的发展。首先, b i o s 在设计之初,由于设计者不知道b i o s 可以使用多久,因此在设计上留下了隐 患。如l q i o s 的设计没有制定标准的规范,而是基于以往经验的晦涩约定,这使得 不同生产商之间的b i o s 也是不同的。生产商可以随心所欲地修改和配置,而用户 通过b i o s 配置系统和诊断问题时,往往起不了太大的作用。其次,由于b i o s 没有 提供一致的标准接口,每次新硬件的出现,都要大量的修改b i o s 代码,使得b i o s 的代码实现越来越复杂。并且由于b i o s 是由汇编语言编写的,这使得代码的维护, 修改以及调试相当困难。最后由于b i o s 是在1 6 位实模式下实现,这使得它不能用 于以i t a n i u m 或x s c a l 架构为平台的机器上。 为了解决传统b i o s ( 本论文将e f ib i o s 之外的,并且用户一直在使用的b i o s 都称为传统b i o s ) 的弊端,适应p c 技术的发展,i n t e l 于2 0 0 0 年开始研发一种用于 替代传统b i o s 的新一代b i o s e f i ( e x t e n s i b l ef i r m w a r ei n t e r f a c e ) ,全称可扩展固 件接口。与传统b i o s 相比,e f i 具有不可比拟的优越性,它不但解决了传统b i o s 大部分的弊端,并且作为新一代b i o s ,它以崭新的设计理念顺应p c 技术飞速发展 的趋势,为用户提供更为强大和完善的服务。下面对e f i 做简单介绍。 1 2 e f i 简介 e f i 是一种固件,它的物理位置处于硬件,平台固件与操作系统之间【1 1 。e f i 的主体思想就是通过提供接口和服务来实现一个启动操作系统的标准环境 2 1 。可以 说e f i 被设计成一个纯粹的接口标准规范,它定义了一系列平台固件必须实现的 接口和数据结构。其目的是定义一个方法,使操作系统与平台固件间只交流必要 的信息以支持操作系统引导过程。另外,e f i 通过总结传统b i o s 的设计经验教训 北京交通人学硕士学位论文 和针对p c 技术发展的特点,进行了许多特有的设计以解决传统b i o s 遗留下的弊 端,并更好的满足p c 发展需求。下面从整体上对e f i 的设计特点作简单介绍。 首先e f i 采用模块化,c 语言风格的参数堆栈传递方式以及动态链接的形式构 建系统。这使得e f i 的实现更为简单,代码的维护及功能的扩展更为方便。同时 由于采用c 语言编写,这使得更多人可以参与e f i 的设计和开发,有利于e f i 的 不断完善和发展。 其次,e f i 在设计上将o s 从固件中抽象出来。它为平台能力定义了一系列接 口。通过这些统一的接口,e f i 在底层平台,固件执行与操作系统载入程序之间 描述了一个完整定义并且稳定的分界线。一方面,这使得编写操作系统载入程序 可以不必去了解这些接口下的平台固件技术和硬件的具体细节。并且e f i 通过提 供许多不同的接口,使得操作系统载入程序开发人员可以在一定范围内的硬件设 备上编写工作的代码,而不需要具备该范围类各硬件设备的专门知识。另一方面, 这使得各厂商在硬件和固件的开发上只要遵循e f i 制定的规范和接口约定,而不 需要了解对方的技术细节就可以进行各自相对独立的设计和开发刨。 同时,为了解决目前p c - a t 的o p t i o n r o m 中存在的问题,e f i 在设计上通 过为平台能力定义接口的方式将o p t i o n r o m 从固件中抽象出来。例如在e f i 设计 的驱动模式中,e f i 为标准的总线提供了统一的接口,如p c i 、u s b 和s c s i 。而 且这个支持总线类型的列表会随着时间而增加,这种扩展机制使得将来出现的新 总线也可以被使用。并且,通过对抽象接口的使用,使得设备驱动程序和总线驱 动程序可以不必理会那些接口下面的平台和固件。这样的设计易于平台功能的扩 展和对新设备的支持。 另外,由于增加系统新的能力或新的设备通常需要软件的支持。而在许多情 况下,在平台硬件的创新实现时,操作系统并没有提供对新功能的支持,这就要 求平台上必须有支持这些新功能的代码。传统的解决方法是在平台的制造中加入 嵌入的代码进行固件升级,如加在f l a s h 设备中。因此对这种持续稳定地存储器 的需求在快速增长。为此,e f i 设计了可共享的系统分区,这个分区是建立在大容 量的存储媒介上的。这使得固件开发人员、o e m s 、操作系统供应商和第三方在增 加新的平台能力时都可以安全的使用这个空间。 最后,e f i 在设计上充分考虑了移植性和兼容性的问题。它的系统分区结构在 设计上保留了所有现在在p c a t 启动环境中使用的结构,因此很容易构造一个单 一的系统从同一磁盘中引导原来的操作系统或符合e f i 规范的操作系统。并且, e f i 在设计上也使e f i 的实现可以使用传统b i o s 中已存在的固件代码,这将使得 e f l 开发所需的资源和时间大大降低。 除了上述介绍的e f i 设计外,e f i 还有许多与传统b i o s 不同的设计。如e f i 设 2 绪论 计在操作系统未启动时便实现许多功能。有些类似于操作系统的驱动程序提供的 功能,可以在引导过程中支持新的设备类型,或用来提高平台能力如实现容错机 制和安全机制等。有些以s h e l l 命令和e f i 外部应用程序的形式提供给用户各种使 用功能,如对e f ib i o s 进行配置设置、进行文件编写、甚至还可以上网、玩游戏。 总之,e f i 在设计上并不是对传统b i o s 的全盘否定,而是在原有基础上的升 级,它是b i o s 技术的进化而不是革新,它在设计中避免了对那些已有行业规范的 接口和结构进行重定义。e f i 中接口和结构的设计是为了尽可能减少初始化的负 担。而在接口的设计中保留了适当的抽象,以确保增加少量的代码就可以重新使 用传统b i o s 代码以实现接口。 1 3 可信计算 1 9 9 9 年i e e e 太平洋沿岸容错系统会议改名为“可信计算会议”,并于2 0 0 3 年成立了可信计算组织t c g ( t r u s t e dc o m p u t i n gg r o u p ) 。t c g 从行为角度来定义 可信性:一个实体是可信的,如果它的行为总是以所期望的方式,并朝着预期的 目标。在此定义的基础上,所谓的可信计算平台即能够提供可信计算的软硬件实 体,它能够提供系统的可用性、可靠性和信息的安全性。其基本思路是首先建立 一个信任根,信任根的可信性由物理安全和管理安全确保。再建立一条信任链, 从信任根到硬件平台,到操作系统,再到应用,一级认证一级,一级信任一级, 从而把信任扩展到整个可信计算领域。 1 4e f i 技术国内外研究现状 e f i 最初的设计是针对下代以i n t e li a - 3 2 系统架构和i t a n i u m 为平台的计算 机,但由于其设计的成功,e f i 已被业界公认为下一代b i o s 标准规范。从e f i 研 究至今,其规范的制定不断扩充和完善。e f i 版本已由最初的o 9 2 发展到最新的 1 1 0 ,并开发了e f i 实现的源代码。为了更好的推广和发展e f i ,i n t e l 于2 0 0 5 年 将e f i 提交给由i n t e l 、a d a p t e c 、a m i 、a t i 、惠普、l s i 、微软、p o w e r q u e s t 等公 司组成的u e f l ( u n i f i e de x t e n s i b e lf i r e w a r ei n t e r f a c e ) 联盟,以e f i1 1 0 为基础,负 责开发,管理和推广e f i 规范。由于e f i 规范的制定涉及到知识产权问题,因此 e f i 版本发展到1 1 0 后,再未发布其新的版本和实现代码。 由于传统b i o s 的知识产权一直被国外公司所垄断,我国不仅没有实现国产 b i o s ,并且在该技术领域也远远落后于国外。在相继实现了国产c p u 和国产操作 系统后,实现国产b i o s 势在必行。并且,在b i o s 技术更新换代之际研究e f i 以开 3 北京交通大学硕士学位论文 发国产b i o s 不仅可以使我国在该技术领域和其它国家重新回到同一起跑线上,还 能实现真正的国产p c 。掌握标准在信息领域有重大的作用,对此我国相关部门非 常重视,2 0 0 5 年国家信息产业部和国家科技部分别设立重点项目,支持发展国产 b i o s 技术与产品。2 0 0 5 年1 2 月,南京高新区管委会和中科院软件中心有限公司共 同组建了“南京e f ib i o s 及固件公共服务平台”,并在2 0 0 6 年末完成了国产e f i b i o s 原型系统的开发。2 0 0 7 年,由u e f i 联盟主办的“2 0 0 7 中国f 首届) t r e f i 技术大 会”在南京举行。目前在信息产业部、国家标准委员会的指导下,中科院软件中心 有限公司、南京百敖软件有限公司和其它许多国内计算机硬件和软件厂商,正在 积极制订我国的b i o s 规范与标准,确保在这一新兴领域,我国企业能够不受知识 产权方面的制约,能够有自主发展的环境。 1 。5 本论文研究的主要内容以及意义 本论文以i n t d 提出的e f i1 - 1 0 标准和e f i 实现源代码为研究对象,根据e f i 驱动模式实现u s b k e y 驱动程序,实现e f ib i o s 对u s b k e y 的支持。并针对e f i b i o s 执行特点,在e f i 中引入可信引导和可信计算,提出基于e f i 的可信引导模 型的设计方案,并实现该模型的核心部分。内容包括: 1 分析e f i 规范及e f i 框架实现过程,从整体上把握e f i 组织结构及实现特点和 流程。 2 重点研究e f i 驱动技术,通过对智能卡的研究和u s b 体系结构的研究改进完 善e f i 对各类u s b 设备的支持,并在e f i 实现代码中开发并实现u s b k e y 驱 动程序以实现e f i 对u s b k e y 的支持。 3 引入可信引导的思想,针对e f i 存在的安全隐患,根据e f i 执行流程以及执行 组件的特点,从整体上设计基于e f i 的可信引导模型以增强e f i 的安全性。 4 重点研究e f i 执行的核心阶段,分析其安全需求。通过引入数字签名,身份验 证以及u s b k e y ,设计e f i 核心阶段的安全策略,并遵循e f i 标准进行实现。 保证e f i 核心阶段的组件不被篡改,并以正确的顺序执行;保证用户的合法性, 防止非法用户的入侵。 5 对整个安全系统进行功能测试,评估系统的性能。 e f i 对于安全的设计只提出了大概思想,没有形成一个完整的体系,并由于 e f l 自身的种种原因,使得e f i 存在着许多安全隐患。虽然在e f l l 1 0 版本中加入 了安全相关的标准,提供了相关的抽象接口,但并不完善,也没有形成一个完整 的安全体系,更没有进行实现。e f i 目前还没一个具体可行的安全解决方案。本论 文的研究意义在于通过对e f l 规范以及e f i 执行过程的深入研究,提出了具体的 4 绪论 解决方案,并在e f i 执行过程中实现。本文设计并实现的e f i 安全系统保证了e f i 核心阶段的重要组件的完整性和组件加载顺序的正确性。保证了用户的合法性。 这在e f i 安全问题的解决上是一个创新,为我国e f ib i o s 安全标准的制定提供实 例。 1 6 论文组织结构 第一章绪论 介绍e f i 以及国内外对e f i 技术的研究现状,介绍本论文研究的主要 内容和研究意义。 第二章e f i 规范及框架实现模型 分析e f i 的组织结构以及实现过程。 第三章安全系统设计方案 针对e f i 存在的安全隐患设计基于e f i 的可信引导模型以增强e f i 的 安全性,并在e f i 执行的核心阶段设计具体安全策略 第四章e f iu s b k e y 驱动程序设计实现及应用 介绍u s b 体系结构以及e f i 中的u s b 驱动栈,提出在e f i 中u s b k e y 驱动程序的设计方案,实现对e f i u s b 栈中u s bh o s tc o n t r o l l e r 驱动 程序的改进,最后实现u s b k e y 驱动程序。 第五章基于u s b k e y 的e f i 可信引导安全系统实现 通过对u s b k e y 的使用,根据第三章的安全系统设计方案,分别实现 了完整性验证和身份验证,并对系统进行测试。 第六章工作总结与展望 总结本论文所做的工作,并对下一步工作做出展望。 5 北京交通大学硕士学位论文 2e f i 规范及框架实现模型 e f i 是一种规范,它不仅定义了一系列接口标准用于抽象硬件和描述平台能 力,还定义了b i o s 进行各种活动所必须遵循的规范。如e f i 中定义了驱动模式, 包括驱动程序的所使用接口的规范,以及b i o s 加载驱动程序所必须遵循的规范和 流程。e f ib i o s 是e f i 的代码实现,它采用c 语言编写,遵循e f i 制定的各种规 范,并以一定的执行流程来实现e f i 。 研究并开发遵循e f i 规范的b i o s ,就必须研究e f i 规范和e f i 框架实现模型。 本章首先分析研究e f i 规范的组织结构,再具体研究e f l 的代码实现。 2 1 e f i 规范 e f i 规范主要由接口,系统分区,e f ib o o ts e r v i c e s ( e f i 引导服务1 和e f i r u n t i m es e r v i c e s ( e f i 运行时服务) 等构成。通过这些组件的交互作用以完成 平台和操作系统的引导 4 1 ,图2 - 1 显示了各组件之间,以及与平台硬件和操作系统 习 i 雒m c e 8l i一 图2 - 1 e f i 结构示意【4 l 问的联系。平台固件不仅可以在e f i 系统分区中找到操作系统载入程序映像,也 可以从其它的存储设备中获得,如硬盘,c d r o m 和d v d ,或者通过网络进行远 程引导。当操作系统载入程序开始工作时,它将利用e f i 引导服务和其它规范定 义的接口来发现,理解以及初始化各种平台组件以及管理这些组件的操作系统软 件。而e f i 运行时服务在其引导阶段提供一些必要的服务。除了上述组件,e f i 6 e f i 规范及框架实现模型 结构中的重要组件还有b o o tm 姐a g e “引导管理器) 、f i r m w a r ec o r e ( 核心固件) 、 p r o t o c o l s ( 协议) 和e f id r i v e rm o d e l ( 驱动模式) 。 2 1 1e f i 引导管理器 引导管理器是e f i 中的固件策略引擎,它允许从e f i 定义的文件系统中的任 何文件中,或从e f i 定义的映像加载服务中加载e f i 应用程序或e f i 驱动程序1 4 1 。 e f i 定义了n v r a m 变量类型,在e f i 映像加载机制中起着重要作用。这类变量 包含着指向将被加载文件的指针。它还包含着用来在菜单中显示的字符串和直接 传递给e f i 应用程序的特殊应用数据。在该类型变量中还有一个或多个结构性定 义的属性值,以规定该变量在e f i 某一阶段才能被访问。另外,不同用途的n v r a m 变量还包含自己特有的数据,如有的包含e f i 加载选择变量的编号。有的包含驱 动程序加载列表等。通过对n v r a m 类型变量的改变,可以重新设置b o o tm a n a g e r 。 为了完成一次正常的机器启动,平台固件必须按照定义在n v r a m 变量中的启动 列表来启动。平台固件可以在这个启动列表中添加额外的启动选项或删除无效的 选项。 2 1 2 e f i 协议 e f i 之所以具有扩展的特性在很大程度上与协议的设计有关。协议是一个数据 结构体,通常由三部分构成:g u i d ( 全球唯一i d ) ,协议接口结构和协议服务。 g u i d 是1 2 8 位的,在e f i 中它是协议的编号,也是每个协议必须包含的。通过 g u i d ,可以在句柄数据库中找到相应协议。e f i 协议典型的含有一些指向功能函 数的指针和一些数据结构,即协议接口结构。在e f i 中,协议除了必须定义g u i d , 其它的都可以为空。协议接口结构可以只定义指针和有关功能函数的上下文而没 有具体的函数体,数据结构也可以为空,或包含数据域和服务。e f i 中与协议相关 的是句柄和句柄数据库。句柄是一个或多个协议的集合,每个旬柄在e f i 中都有 唯一的编号,该编号与句柄的类型有关。句柄中的协议都是与具体应用或服务相 关的,因此e f i 中旬柄也用来描述组件,如表2 - 1 所示。旬柄数据库是旬柄和协议 的集合,句柄的编号对应句柄数据库中的条目,每个条目都由一个或多个协议 7 北京交通大学硕士学位论文 表二1e f i 句柄类型 句柄类型描述 组件句柄描述t e f i 中可以句柄数据库中协议的组件。该句 a g e n th a n d l e柄一般由驱动模式相关的服务所使用它还包括i m a g eh a n d l e ( 映像 ( 组件句柄)句柄) ad r i v e rh d l e ( 驱动句柄) ,0 1 ad r i v e ri m a g eh a n 0 1 e ( 驱动跌 像句柄k c o n t r o l l e rh a n d l e 如果该旬柄描绘的是物理设备,则必须支持d e v i p a t h 协议, 如果描绘的是虚拟设备则相反。另外设备句柄还必须支持一个或 ( 设备句柄) 多个f o 协议以抽象对设备的访问 s e r v i c e sh a n d l e 该旬柄不支持l o a d e di m a g e 协议,d r i v e rb i n d i n gp r o t o c o l 和 d e v i c ep a t hp r o t o c o l 。它只支持为e f i 应用程序和e f i 驱动程序提 ( 服务句柄) 供服务的协议。 组成,图2 - 2 是对句柄数据库一部分的描述。句柄数据库就是一个句柄列表,而每 个句柄又是一个或多个协议的列表。另外,当协议被组件所使用时,句柄数据库 月f 吐h t - 啪 爿升升 懂篓j - 一崎一盥鲨翻一一。i 一 _ - ,i 一,一; 土 匿- 面 一* - b 一 i 嚣:篙i 一,一i 岣:一l 勰嚣 l 翟裂i 图2 - 2e f i 句柄数据库h 会生成使用该协议的组件列表以用来对这些组件的追踪。这对e f i 驱动程序的操 作十分重要,它可以使e f i 驱动程序安全的被加载、开始、停止、卸载而不会在 资源的利用上发生冲突。 协议是e f i 中最为重要的定义和设计,e f i 中几乎所有功能的实现都要基于对 它的使用,这一小节介绍的是协议的定义和结构,以及协议的集合:句柄和句柄 数据库。在e f i 驱动模式一节中将详细介绍协议的具体使用。 e f i 规范及框架实现模型 2 1 3e f i 核心固件 e f i 核心固件定义了一系列接口为已被加载的e f i 映像提供一个通用的引导 环境。通过对接口的调用可以将硬件抽象化,使得平台和操作系统可以相互独立 的进行发展和创新。在e f i 核心固件中主要提供两种服务,下面详细分析。 e h 引导服务 这些由接口功能函数定义的服务可以被运行在e f i 环境下的代码所使用。在 引导阶段,固件拥有系统资源,并通过接口函数进行控制。这些函数可以分为 “g l o b a l ”和“h a n d l e b a s e d ”两种。“g l o b a l ”函数可以访问系统服务并在所有平台上都 有效。“h a n d l e b a s e d ”函数可以访问特定的设备,但只在一些平台上有效1 4 1 。e ll 应用程序和操作系统载入程序必须使用引导提供的服务访问设备和分配内存。在 开始阶段,一个e f i 映像可以得到一个指向e l i 系统表的指针,这个表中包括引 导服务分配表和访问控制台的默认句柄。 所有引导服务的函数在e f i 操作系统载入程序取得系统控制权之前都可以被 使用,之后通过调用e x i t b o o t s e r v i c e s 0 终止b o o ts e r v i c e 。从理论上讲, e x i t b o o t s e r v i c e s 0 是为操作系统制定的,它用来表明操作系统载入程序已准备获得 平台控制权并管理所有的平台资源。在此之前,引导服务是有效的并可以被用来 帮助操作系统载入程序在预备阶段引导操作系统。一旦载入程序接过了系统的控 制权完成了操作系统的启动过程,只有运行时服务可以被调用。下面介绍引导服 务提供的主要服务。 1 e v e n t ,t i m e r ,a n dt a s kp r i o r i t ys e r v i c e 这类服务在预引导期问被用来创建事件,关闭事件,触发事件和等待事件。 以及对定时器的设置,提高或恢复任务的优先级,如表2 2 所示。 表2 - 2 事件,定时器以及任务优先级接口函数 函数名类型功能描述 c r e a t e e v e n tb o o t 创建一个事件结构 c l o s e e v e n tb o o t 关闭或秆放一个事件结构 s i g n a l e v e n t b o o t 触发事件 w a i t f o r e v e n tb o o t 停止执行赢到事件被触发 c h e c k e v e n tb o o t 检查事件是否处丁触发状态 s e t t i m e b o o t 设置事件在特定的时间内被触发 r a i s e t p lb o o t 提升任务的优先级 r e s t o r e t p lb o o t 恢复降低任务的优先级 9 j e 京交通大学硕士学位论文 c r e a t e e v e n t 0 函数用来创建一个新事件并指明事件的类型,优先级别等。e f t 中事件只有两个状态:触发和等待。事件刚被创建时,固件将其设为等待状态直 到它被触发。事件的类型也只有异步和同步两种。异步事件与定时器联系紧密, 并用来支持周期性或定时性的中断程序执行。设备驱动程序经常会用到异步事件。 如u s b 鼠标驱动程序会创建一个异步事件,使用定时器每隔一定时间就查询p c 是否收到传送的数据,以保证鼠标操作的及时性和准确性。同步事件与定时器没 有特定的联系,它被用来保证一个具体的活动会在调用一个特定的接口函数后发 生。如调用e x i t b o o t s e r v i e e s 0 函数后,一个清理事件便会发生。固件可以被清理, 因为固件内部是被了解的。但加载到系统的驱动程序却不能被清理,这就需要在 驱动程序内部创建一个同步事件,以响应驱动内部函数进行清理。c l o s e e v e n t 0 函 数用来移除调用者对事件的引用,并关闭该事件。一旦事件被关闭就不再有效了, 其它函数也不能再调用它。s i g n a l e v e n t o 函数用来触发一个事件,而w a i t f o r e v e n t 0 函数将使事件处于等待状态。它等待事件队列中任意事件被触发,一旦触发它将 清除该事件的触发状态,并指明造成返回的事件。c h e c k e v e n t 0 函数检查事件是否 处于触发状态。r a i s e t p l o j 蟊数和r e s t o r e t p l 0 i 函数都是用来调整事件的优先级。 2 内存分配服务 内存分配服务由五个函数组成,如表2 - 3 所示。它们在引导阶段被用来分配和 释放内存,以及获得系统内存映射表。这些函数的使用与e f i 内存设计的一个重 表2 - 3e f i 内存分配接口函数 函数名类型功能描述 a 1 l o c a t e p a g e s b o o t 分配特定类型的页面 f r e e p a g e s b o o t 释放已分配的页面 g e t m e m o r y m a p b o o t 返回日前引导服务内存映射 a 1 l o c a t e p o o lb o o t 分配特定类型的内存池 f r e e p o o lb o o t 释放已分配的内存池 要特征紧密相关。这个特征就是e f i 确保在预引导阶段,固件拥有系统内存映射, 它有三个主要结论: 在预引导阶段,所有组件( 包括运行的e f i 映像) 必须通过使用 a l l o e a t e p a g e s 0 、f r e e p a g e s 0 、a l l o c a t e p o o i 0 和f r e e p o o l 0 从系统中分配和 释放内存与固件协作。而固件则动态的维护这个内存映射。 在预引导阶段,执行中的e f i 映像必须,也只能使用已分配的内存。 在一个执行中的e f i 映像退出并把控制权交还给固件时,它必须释放所有 曾分配的内存。这包括所有的内存页,内存池和打开文件句柄等。固件为 加载一个映像分配内存,当该映像被卸载时固件将释放这些内存。 e f i 规范及框架实现模型 e f i 的内存在分配时会指定内存的类型,有些类型的内存在e x i t b o o t s e r v i c e 0 调用前后使用方式会有不同。系统固件必须遵循处理器特定的规则进行e f i 内存 映射,以确保操作系统来安排必要的虚拟映射。 3 协议旬柄服务 组成协议旬柄服务的函数允许使用程序将协议安装到句柄上,鉴别该句柄是 否支持给定的协议等。该服务的函数如表2 4 所示。 旬柄协议服务的大部分函数是提供给驱动程序使用的,它在很大程度上能减 少总线驱动程序和设备驱动程序的代码量,并降低它们的复杂度。提供给驱动程 序的服务分为三大类。 表2 4 协议句柄接口函数 函数名功能描述 i n s t a i i p m t o c o l i n t e t r a c e在设备句柄上安装一个协议接口 u a l n s t a l l p r o t o c o l i n t c r f a c c 从设备句柄上移除一个协议接口 r e i n s t a l l p r o t o c o l i n t e r f a c e 在设备句柄上重新安装一个协议接口 r e g i s t e r p r o t o c o l n o t i f y 注册一个事件,只要为特定协议安装一个接口,该事 件就被触发 l o c a t e h a n d k 返回一个支持特定协议的句柄队列 h a n d l e p r o t o c o l询问一个句柄是否支持特定协议 l o c a t e d e v i c e p a t h根据设备路径查找所有支持特定协议的设备 o p e n p r o t o c o l 向使用特定协议接口的组件列表添加新元素 c l o s e p r o t o c o l从使用特定协议接口的组件列表移除元素 o p c n p r o t o c o l i n f o r m a t i o n 找到当前使用特定协议接口的组件列表 c o n n e c t c o n t r o l l e r使用一系列规则去查找最适合的驱动程序去管理设 备 d i s c o n n e c t c o n t r o n e r通知驱动停止管理设备 p r o t o c o l s p e r h a n d k 重新得到安装在句柄上的协议 l o c a t e h a n d l e b u f f e r根据布找标准从句柄数据库中得剑一系列句柄, l o c a t e p r o t o c o l从句柄数据库中找到第一个支持特定协议的句柄 i i i s t a i l m u n i p l e p r o t o c o l i n t e r f a c e 在句柄上安装一个或多个协议接口 u n i n s t a n m u l t i p l e p r o t o c o l i n t e r f a c e 从句柄上卸载一个或多个协议接口 第一类用来追踪系统内不同组件对协议接口的使用。协议接口存储在句柄数据 库里,句柄数据库包含了句柄列表,每个句柄又有协议接口列表。句柄协议服务 的i n s t a l l p r o t o c o l i n t e r f a c e 0 、u n l n s t a l l p r o t o c o i i n t e r f a c e 0 、r e l n s t a l l p r o t o c o l i n t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (正式版)DB15∕T 3380-2024 《马铃薯镰刀属真菌病害检测技术规程》
- 书中的奇遇读书故事叙事作文5篇范文
- (正式版)DB15∕T 3350-2024 《饲用燕麦草霉变评价》
- 电力入场考试题及答案
- 读书破万卷写物作文10篇
- 护理专科生理学试题库及答案
- 护理人际关系面试题库及答案
- 大学以往考试题及答案
- 企业信息安全管理制度与流程手册
- 企业文化价值体系分析工具
- 别墅整装交付管理办法
- 《风景谈》课件-课件
- 实验室6S培训资料
- 小米之家培训课件
- 新版gmp指南培训课件
- 邮件沟通礼仪培训课件
- 拔罐适应症研究-洞察及研究
- 2024年药品监管业务知识技能竞赛考试题库(含答案)
- 疼痛科质量控制管理
- 低空经济八大应用场景与实践案例解析方案
- 呼吸管路处理规范与操作要点
评论
0/150
提交评论