已阅读5页,还剩64页未读, 继续免费阅读
(通信与信息系统专业论文)multos卡虚拟机及编译器的研究及实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 随着智能卡与人们生活的日益相关,智能卡技术的研究开始受到关注。然而由于 传统的智能卡技术使不同厂商之间的卡互不兼容,这已成为阻碍智能卡顺利发展的一 个重点问题。动态多应用智能卡是智能卡发展的趋势,国际上普遍采用的两种动态多 应用智能卡平台分别是基于j a v a 卡技术和m u l t o s 标准的,动态多应用智能卡以其 良好的平台无关性、多应用性和应用开发简易性,在诸多领域有着广阔的应用前景。 作为m u l t o s 卡主要组成部分的m u l t o s 卡虚拟机技术,担负着将下载到卡内 的应用程序解释执行的作用,是实现m u l t o s 卡平台无关性的基础,其运行效率、 稳定性和安全性直接影响m u l t o s 卡的整体性能。因此,本论文从m u l t o s 卡的概 念和有关规范出发,对于m u u 0 s 卡虚拟机的存储管理技术、解释器技术、防火墙 技术进行了深入、系统的分析和研究,提出了卡内虚拟机的结构设计及指令集的实现。 本文根据m u l t o s 卡虚拟机的体系结构,首先设计并实现了虚拟机的内存结构, 包括虚拟机内存数据结构的设计、内存地址的转换和内存的管理。其次,设计并实现 了虚拟机解释器,虚拟机执行指令的流程,完成了全部3 1 条指令和5 4 个原语的解释 执行。同时,为提高m u l t o s 智能卡虚拟机的安全性,本文设计并实现了防火墙机 制。 对于m u l t o s 卡的开发工具编译器、汇编器、连接器的开发,本文首先在分析 编译原理的基础上,研究并实现了编译器前端的自动构造技术,能大大提高编译器的 开发效率。重点讨论了如何合理设置接口,综合运用词法、语法分析器的自动构造工 具l e x 和y a c c 。其次,汇编器实现的重点是解决源文件中可能有的后向标号引用 的地址确定问题,地址回填技术是汇编器实现的关键。最后,本文在分析连接器的工 作原理的基础上,根据虚拟机的体系结构,用简单的方法实现了把不同的目标文件中 的代码收集到一个可直接执行的文件中。 关键词:动态多应用智能卡m u l t o s 虚拟机编译器 汇编器连接器 华中科技大学硕士学位论文 a b s t r a c a st h es m a r tc a r db e c o m ep o p u l a rw i t hp e o p l e se v e r y d a yl i f e ,p e o p l eb e g i nt o m a k eg r e a te f f o r to nt h er e s e a r c h i n go fs m a r tc a r dt e c h n o l o g y b u tt h eu n c o m p a t i b i l i t y b e t w e e nd i f f e r r e n tm a n u f a c t u r e r s c a r d sh a so b s t r u c t e dt h ep r o g r e s so ft h et e c h n o l o g y t h e a r c h i t e c t u r eo fd m a c ( d y n a m i cm u l t i a p p l i c a t i o nc a r d ) s y s t e mb a s e do nj a v ac a r do r m u l t o sc a r dt e c h n o l o g y ,w i t hi t ss e c u i r y ,m u l t i a p p l i c a t a b l ea n dc o m p a t i b i l i t yh a sb e e n a p p l i e di ne v e r yw a l ko fl i f e a n di ti sb e c o m i n gav e r yi m p o r t a n td i r e c t i o na m o n gt h e m a n yt e c h n o l o g u ea n d m a r k e tt r e n d so fs m a r tc a r d a st h em o s ti m p o r t a n td e p a r t m e n to fm u l t o sc a r d ,m u l t o sc a r dv i r t u a l m a c h i n et e c h n o l o g yh a st a k e nt h er e s p o n s i b i l i t yo ft r a n s l a t i n gt h ed o w n l o a d e dc o d eo nt h e c a r d ,i t se f f i c i e n c y ,s t a b i l i t ya n ds e c u r i t ym a yd i r e c t l ye f f e c tt h ew h o l ep e r f o r m a n c eo f m u l t o sc a r d s t a r t i n gf r o mt h em u l t o sc a r d ss p e c i f i c a t i o n s ,t h i sp a p e rs t u d i e st h e r u n n i n gt e c h n o l o g yo fm u l t o sv i r t u a lm a c h i n e ,m e m o r ym a n a g e m e n tt e c h n o l o g ya n d f i r e w a l lt e c h n o l o g ya n dd e s i g n st h ec o n s t r u c t i o no fm u l t o sv i r t u a lm a c h i n e a c c o r d i n gt o t h ea r c h i t e c t u r eo fm u l t o sc a r dv i r t u a l m a c h i n e ,m e m o r y c o n s t r u c t i o ni sf i r s t b r o u g h tf o r w a r di n t h i sp a p e r , w h i c hi n c l u d e sm e m o r yd a t a c o n s t r u c t i o n ,a d d r e s st r a n s f o r mm a c h i n ea n dm e m o r ym a n a g e m e n t s e c o n d l y w ed e s i g n a n dr e a l i z em u l t o sc a r dv i r t u a lm a c h i n ei n t e r p r e t e r ,t r a n s l a t ea l l3 1i n s t r u c t i o na n d5 4 p r i m i t i v e sc o m p l e t e l y i no r d e rt oi m p r o v et h es e c u r i t yo fm u l t o sc a r dv i r t u a lm a c h i n e , w ed e s i g na n dr e a l i z ef i r e w a l lm e c h a n i s m t od e v e l o pt h ed e v e l o p m e n tt o o lo fm u l t o sc a r d ,s u c ha sc o m p i l e r ,a s s e m b l e ra n d l i n k e r ,f i r s t l y ,w es t u d i e st h ec o m p i l e rc o n s t r u c t i o np r i n c i p l e s ac o m p l i e ri st h eb a s i so f a na d v a n c e dl a n g u a g ea n dac o m p l i c a t e dp r o g r a m t h i s p a p e rm a i n l yd i s c u s s e st h e t e c h n o l o g yo na u t o 。c o n s t r u c t i o no faf r o n t - e n dc o m p i l e r ,w h i c hc a l lg r e a t l yi m p r o v et h e d e v e l o p i n ge f f i c i e n c yo fc o m p i l e rs o f t w a r e h o wt os e tu pt h ei n t e r f a c ea p p r o p r i a t e l yf o r u s i n gl e xa n dy a c ci sd i s c u s s e da sa ne m p h a s i s s e c o n d l y ,t h ee m p h a s i so f i m p l e m e n t a t i o no ft h ea s s e m b l e ri st or e s o l v et h ea d d r e s sp r o b l e ma b o u tal a b e lr e f e r e n c e p r i o rt ot h ed e f i n i t i o no ft h el a b e li t s e l f t h eb a c k p a t c ht e c h n o l o g yi sak e yt e c h n o l o g yf o r c a r r y i n go u tt h ea s s e m b l e r a tl a s t ,t h i sp a p e rd e s i g n sa n dr e a l i z e st h el i n k e rb a s e do n i i 华中科技大学硕士学位论文 p r i n c i p l e so fl i n k e ra n d t h ea r c h i t e c t u r eo fv i r t u a lm a c h i n e k e yw o r d s :d y n a m i cm u l t i a p p l i c a t i o nc a r dm u l t o sv i r t u a lm a c h i n e c o m p i l e r a s s e m b l e rl i n k e r i i l 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的 研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意 识到本声明的法律结果由本人承担。 学位论文作者签名: 日期:? 耐年,口月2 甲日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许 论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段 保存和汇编本学位论文。 保密 j ,在年解密后适用本授权书。 本论文属于, 不保密团。 ( 请在以上方框内打“4 ”) 学位论文作者签名:周易药 日期:2 p o j 年p 月2 9 日 指导教师签名:石琳,f 日期:,6 对年1 力月,4 日 华中科技大学硕士学位论文 1 绪论 1 i 智麓卡应用与挑战 智能卡又名i c ( 集成电路) 卡,英文名称为s m a r tc a r d 或i n t e g r a t e dc i r c u i tc a r d , 是法国人r o l a n dm o r e n o 于1 9 7 0 年发明的,同年日本发明家k u n i t a k aa l i m u r a 取得首 项智能卡的专利。智能卡通过嵌入至其塑料基体中硅片上的电子电路来存储和处理信 息,把微电子技术和计算机技术结合一起i ”。智能卡最先由b u l l 公司在1 9 7 6 年生产 出来,随后广泛地应用于金融、公交、社保、通讯、医疗卫生和身份证等等诸多领域, 并以惊人的速度发展,始终保持着不断扩大的趋势。到如今,智能卡已经与我们的衣、 食、住、行息息相关,在我们生活中所占的比重也越来越大。智能卡的广泛应用提高 了人们生活和工作的现代化程度。随着超大规模集成电路技术、计算机技术和信息安 全技术等的发展,智能卡技术也更成熟,并获得更为广泛的应用。 1 ) 智能卡应用 电信和银行两个行业是智能卡应用的最大领域。 电信业:智能卡在电信业中最著名的应用是手机中的s i m ( s u b s c r i b e ri d e n t i t y m o d u l e ,用户身份证模块) 卡。s i m 卡是个人身份模块,即s i m 卡中有一个i d ( 身份认证 号) 来唯一确定该卡的身份。这个号会被g s m 或者c d m a 的鉴权中心,计费中心等 使用。 银行业:银行业是智能卡展示才华的另一舞台。离线交易是智能卡的一大卖点。通 过复杂的加解密算法,和完善的密钥管理系统,p o s ( p o i n to fs a l e s ) 终端的对银行智能 卡进行离线的交易处理,而无须每次交易都用m o d e m 拨号到后台数据库进行查询。 2 ) 智能卡遇到的挑战 在智能卡使用初期,其开发主要是单个开发商的行为。尽管对智能卡的结构和通 信协议,国际规范i s 0 7 8 1 6 早己规定,但各个卡生产商对智能卡的研制都各不相同l 。 各个卡生产商对自己的智能卡操作都有自己独特的套命令集。这意味着如果a 公司 制造了一种智能卡,b 公司也制造了一种智能卡,没有一种程序能同时在这两种卡片 上运行。这个就导致智能卡的开发被限制在一个相对较小的圈子里。这些开发人员往 往只能为特定的卡片制造商和特定的卡片发行商工作【4 】。 另外智能卡存储空问相对较小,在能耗、用户反应时问和物理空间等方面受到严 格限制。必须独立地运行于一种没有系统管理功能的环境,不能出现故障。 华中科技大学硕士学位论文 早期的智能卡是单应用智能卡,即一张卡片中只有一个应用,只提供一种功能, 如公交卡上只有一个应用,只能做公交刷卡用。 随着芯片和智能卡技术的发展,单应用智能卡已不能满足社会的需求而产生了静 态多应用智能卡。静态多应用智能卡在一张卡片中同时存在多个应用,实现多个功能。 静态多应用智能卡的好处是充分利用芯片资源,节约了成本。但静态多应用智能卡中 的应用必须在卡片初始化时写好,而在其生命周期中不能更改。 1 2 智能卡技术的发展 1 2 1 “一卡多用”及多应用管理平台 为了能使一张卡片上可以同时容纳多个应用,在不同的场合使用不同的应用,同 时应用本身还可以根据需要随时下载到卡中或从卡中删除,动态多应用智能卡产生。 这给供卡方、发卡方和持卡方都带来了好处。现在我们一般讲的“一卡多用”为动态多 应用。为了方便性,需要通过开放的、非安全的网络在一张卡片中实现动态的下载、 更新和删除应用。人们发明了多应用管理平台来提供在卡片生命周期中的任何时间r 甚 至在卡片发行之后) 都具有对卡片中的应用进行动态下载、更新和删除的能力,而且可 以通过开放的、非安全的网络,比如因特网、电话线或者是a t m 来下载、更新和删除应 用。动态多应用系统管理平台由认证中心( c a ) 、卡制造商、卡发行商、服务提供商、 应用程序开发商、应用下载代理以及终端组成【5 吐1 7 1 8 】。它们之间的关系从图1 1 可以 看出: 图1 1 应用系统总体架构 华中科技大学硕士学位论文 ( 1 ) 卡发行商、应用提供商都必须向注册中心进行注册,并获得其证书。 ( 2 ) 卡制造商向卡发行商提供能够支持一卡多应用的智能卡。智能卡实现了支 持动态多应用的卡操作系统,使应用与卡操作系统分离,其包含了文件系统、安全管 理、传输管理、应用管理功能。动态多应用智能卡操作系统提供了一种中间语言c e l ( c o se x e c u t a b l el a n g u a g e ) ,可以用这种中间语言来编写智能卡上运行的应用程序。 卡操作系统还实现防止非法操作的功能,如访问卡的认证,命令与应用的合法性校验, 应用与算法注册表控制,应用防火墙等,也就是说卡制造商向卡发行商提供的卡片除 了自身的硬件部分外具有操作系统与应用抽象层( 虚拟机) 的功能【“。 ( 3 ) i c 卡由卡发行商发行给用户( 持卡者) 。 ( 4 ) 服务提供商可以委托应用程序开发商为其开发满足其需求的应用程序。应 用可以直接写成汇编形式的c e l ( c o se x e c u t a b l el a n g u a g e ) ,也可以用c 或j a v a 之 类的高级语言编写,但最终必须编译成c e l 字节码才能在虚拟机上运行。应用提供 商在得到卡片发行商的许可的情况下,向c a 认证中心注腮自己的应用,并将应用组 成应用下载单元a l u ( a p p l i c a t i o nl o a du n i t ) 供用户下载使用。 ( s ) 服务提供商在提供应用时必须与卡发行商达成协议,应用只有在得到卡发 行商许可的前提下才能够下载、更新和删除,因而在整个系统中,卡发行商具有主导 地位【2 6 】。 ( 6 ) 应用提供商可以任命其信任的应用下载代理对应用下载进行管理。 1 2 2 a 卡技术 j a v a 技术与智能卡的结合产生了j a v a 卡,j a v a 卡是一种能运行j a v a 语言程序 的智能卡,j a v a 卡技术将j a v a 语言的一个子集和优化了的智能卡运行环境结合在一 起。j a v a 卡是一种新的智能卡编程系统,它基于j a v a 语言和虚拟机,j a v a 卡程序可用 标准的j a v a 开发工具编写,但可以在智能卡中安装和执行。 j a v a 卡的体系结构| 8 - u , 1 9 , 2 0 如图1 2 所示。 j a v a 卡除硬件环境外,还包括各种软件构件,如图1 ,2 所示。 华中科技大学硕士学位论文 图1 2j a v a 卡结构示意图 a p p l e t 是j a v a 卡应用程序,一张j a v a 卡内可以包含多个j a v a 卡a p p l e t ,不 同的a p p l e t 可依靠a i d ( 应用i d 号) 来识别,并且用防火墙将他们隔离,确保各 自的独立性。由于j a v a 卡的执行环境并不支持多线程,所以工作时,一次只能执行 一个a p p l e t 。 用户指定的扩展类是安装于卡内的扩展附加类,例如,如果这张卡是g s m 网络 的s i m 卡,那么这一层就是s i m 卡所需的接口类。 j c r e 包括j a v a 卡虚拟机j c v m ( j a v a c a r dv i r t u a lm a c h i n e ) 、核心api 类库 和相关的本地方法。 j c v m 用来执行字节码和支持j a v a 语言,它的存在实现了卡接口的统一和编程 语言的统一。同时,也隐藏了不同卡片供应商在卡片底层技术上的差别。 j c v m 与j v m ( j a v av i r t u a l ma c hi n e ) 最主要的区别是j a v a 卡虚拟机的实现分 成两部分,如图1 3 所示。第一部分运行于p c 或工作站中,不在卡内,这个卡外虚拟 机叫作j a v a 卡转换器,负责所有类装载和引用解析的工作。卡内的j a v a 虚拟机部 分包括字节码翻译器,用来执行字节码和支持j a v a 语言,这两部分虚拟机通过一个 应用程序的转换文件c a p 文件进行( 接口) 数据交换,如图1 _ 3 所示。c a p 文件由卡外 虚拟机在处理过程中产生,由卡内虚拟机在执行时使用。 图1 3 分立的j c v m 结构 4 华中科技大学硕士学位论文 卡外虚拟机包括个j a v a 卡程序转换工具,这个工具用来在类装载时进行校验、 准备、优化和解析,j a v a 卡的程序转换工具实现的是j a v a 虚拟机的预取功能,在j a v a 卡平台中是一个类文件预取处理器。一个j a v a 卡应用程序引用的属于同一包的所有 类,必须打包成一个二进制文件,安装到卡内。j a v a 卡程序转换器有以下几个功能: 校验:检查程序中所用的类文件的格式、符号表是否正确,根据j a v a 卡规范进行语 言规则检查。 准备:创建表示类的虚拟机数据结构并为其分配存贮空间,创建静态域和方法区,将 静态变量值进行初始化。 解析:解析对类、方法、域的符号引用,使之成为一种在j a v a 卡中处理起来更加有效 的形式。在处理同一包内部引用时,一些优化可以在卡外进行,这和j v m 产生 ”q ui c k ”伪指令类似。( 贝, j a v a 虚拟机规范) 卡内虚拟机执行字节码、管理类和对象,提供各种j a v a 卡应用程序之间的防火墙, 提供保密数据共享。j a v a 卡虚拟机一般采用解释执行的方式,这是因为智能卡环境中 的资源很有限,不适于j i t ( j as t i n t i me ) 编译器和n e t ( na t i v e e x e c u t a b l e tr a n s l a ti o n ) 编译器的实现。 1 2 3m u l t o s 标准 m u l t o s 标准【2 1 埘1 是一个由m a o s c o 财团制定和维护的,开放的多应用智能卡 规范,它为智能卡应用提供了安全的环境。m u l t o s 标准的结构如图1 4 所示: 图1 4m u l t o s 结构示意图 华中科技大学硕士学位论文 m u u d s 操作系统为多应用智能卡提供一个应用抽象的机器,内含通讯、存储管 理等功能。由于在卡与终端进行通信时只有一个会话在执行,因而操作系统是一个单 进程的程序,不必提供多进程的管理与调度。m u l t o s 控制应用的下载和删除,应用 选择,发送接收a p d u 命令一响应,并给应用提供应用底层的硬件平台以硬件的本地 代码运行,它为m u l t o s 应用提供一个平台无关的虚拟机。在a a m 上编写并运行的 应用,可以在任何m u l t o s 卡片上运行。底层硬件的特性与实际应用无关,对于应 用来说是透明的。这使得应用不经任何代码修改就可以从一个m u l t o s 平台转移到 另一个平台。 m u l t o s a a m 位于m u l t o so s 之上,它的存在实现了应用开发接口的统一, 并且也隐藏了卡底层各个卡供应商不同的底层硬件技术;m u l t o sa a m 的原语为应 用开发人员定义了一整套编程接1 2 1 ,原语的执行所需要的环境由m u l t o s o s 提供, 基于m u l t o s 的c o s 开发商可以通过扩展m u l t o s a a m 的原语为应用开发商提供 自己的服务,从图1 4 中的m u l t o s 体系结构来看,m u l t o s 的层数要少于j a v a 卡 的层数,所以在同样的硬件平台下,它的执行效率要高于j a 、a 卡。 1 3 动态多应用智能卡国内外概况 动态多应用智能卡是智能卡发展的趋势,国际上普遍采用的两种动态多应用智能 卡平台分别是基于j a v a 卡技术和m u l t o s 标准的,二者目前都得到了广泛应用。 国内的比较多的智能卡厂商都声称自己的智能卡能够支持多应用【1 2 1 酣,但国内现 有的大多数多应用智能卡,从本质上都不是动态多应用的智能卡,它们只是把多个应 用固写在一张智能卡上,即静态多应用智能卡。虽然这种智能卡也能够支持多用途, 但与真正的动态多应用智能卡相比有着比较大的缺点: ( 1 ) 由于这些应用是固写在智能卡上的,应用很难修改,这样就不能对应用进 行升级和删除。 ( 2 ) 由于智能卡每一个应用程序都是基于固定的芯片,当芯片更换时,不得不 重新修改程序,可移植性差。 ( 3 ) 应用开发时代码之间可能会存在一定的耦合度,并且应用在智能卡上运行 时,没有有效的措旌保证应用运行的独立性。 在国内,虽然已经出现了各种各样的多应用技术,但多应用更加广泛的应用需求 对动态多应用的技术提出了更加严格的要求。对动态多应用智能卡技术的深入研究和 华中科技大学硕士学位论文 应用尚待迸一步发展。 1 4 研究m u l t o s 动态多应用智能卡的意义 动态多应用智能卡的优势在于,卡发行者可以为其客户和最终用户提供更大的方 便。不同的应用原本需要建设不同的系统平台,发行不同类型的卡,现在在统一的多 应用管理平台下,几个应用( 服务提供商) 之问能够分摊卡及系统成本。这样一来卡 内应用在其生命周期内可以更新和重复利用,用户就能享受一张卡集成多种服务并可 灵活更新所带来的便利。另一方面,提供新应用的成本降低,有助于服务提供商开发 更多应用服务品种,获得潜在的和额外的收入机会。因此,动态多应用智能卡技术为 几乎所有的智能卡应用市场带来一个诱人的增值前景。动态多应用智能卡是各国未来 的应用重点,多个国家已经或正在开展国家级的应用试点。 j a v a 卡技术使用标准工具j a v a 来开发应用程序,但一个纯粹的j a v a 卡并不支 持发行控制,因此不适合于金融应用这类安全要求高的场合。m u l t o s 标准由于使用 p k i 技术来控制发行陋j ,因而相对j a v a 在发行控制方面要安全的多。 本文通过研究m u l t o s 卡技术,引进其智能卡先进技术,推动具有国内自主版 权的动态多应用智能卡的操作系统平台的开发和应用,提高国内企业的竞争力,使中 国智能卡技术和应用逐步进入世界先进行列,正是本课题研究的意义所在。 1 5 本文主要研究工作 本文分析了j a v a 卡、m u l t o s 卡的技术特色;阐述了研究动态多应用智能卡的 意义;对m u l t o s 虚拟机的体系结构进行了深入地分析,并详细阐述了其具体的实 现;论述了m u l t o s 卡的开发工具编译器、汇编器及连接器的工作原理及实现方法。 本文的创新及贡献: ( 1 ) 结合智能卡的特殊性和动态多应用的要求提出了智能卡动态多应用虚拟机的 设计目标,分析了m u l t o s 虚拟机的体系结构,对于m u l t o s 卡虚拟机的存储管理 技术、解释器技术、防火墙技术进行了深入、系统的分析和研究,深入地剖析了其中 的核心技术。 ( 2 ) 对m u l t o s 虚拟机进行实现,重点是虚拟机的内存结构的实现、处理器对指 令解析的实现和应用防火墙的实现,解决了m u l t o s 虚拟机实现中的关键问题。 华中科技大学硕士学位论文 ( 3 ) 对m u l t o s 卡虚拟机的编译器、汇编器及连接器的工作原理及实现技术做了 深入的研究,研究并实现了编译器前端的自动构造技术,能大大提高编译器的开发效 率。重点讨论了如何合理设置接口,综合运用词法、语法分析器的自动构造工具l e x 和 y a c c 。汇编器实现的重点是解决源文件中可能有的后向标号引用的地址确定问题, 地址回填技术是汇编器实现的关键。最后,本文在分析连接嚣的工作原理的基础上, 根据虚拟机的体系结构,用简单的方法实现了连接技术。 华中科技大学硕士学位论文 2 m u l t o s 虚拟机剖析 在动态多应用智能卡操作系统中,动态多应用虚拟机是一个重要组成部分。它是 实现应用独立性和应用平台无关性的技术关键。本章首先介绍了虚拟机技术基本原 理。然后结合智能卡的特殊性和动态多应用的要求提出了动态多应用虚拟机的设计目 标,并对m u l t o s 虚拟机的结构进行了深入分析,对m u l t o s 虚拟机的重要组成部 分进行了分别阐述。 2 1 虚拟机工作原理 虚拟机是建立在实际的处理器基础上的假想计算机。它是对真实计算机资源环境 的一个抽象,它为解释性语言程序提供套完整的虚拟机接口,即定义了一个虚拟命 令集合,为解释语言开发的应用程序和计算机资源之间提供一个可移植的接口【羽。在 解释执行时,每次提交一个虚拟命令给虚拟机执行。下图为一般性虚拟机原理器: 图2 1 般性虚拟机原理器 2 2 智能卡的虚拟机的设计目标 在智能卡动态多应用系统中,智能卡引入虚拟机技术来实现应用独立性和应用平 台无关性。 动态多应用智能卡的虚拟机的设计目标,最主要的要求就是可移植性、可执行性 和安全性。 ( 1 ) 所谓“可移植性”是指实现虚拟机的代码不能束缚在用来开发它们的硬件上。 这是因为使用虚拟机最重要的好处是能够在多种平台上获得统一的软件接口。如果虚 拟机本身无法移植,那就没有使用虚拟机的价值。 ( 2 ) 所谓“可执行性”是指应用在卡片虚拟机上的可运行性,这包含三层意思: 华中科技大学硕士学位论文 首先是应用的正确执行,平台无关性;其次是虚拟机的指令和原语的代表性,这样有 利于开发高质量的应用;最后是虚拟机解释执行的效率。 ( 3 ) 所谓“安全性”就是虽然多个应用共存于张卡片,但是必须保证每个应用 都能正常工作而不受其它应用的干扰而具有“独立性”。例如:j a v a 卡技术和m u l t o s 标准通过在各个应用之间建立防火墙、隔离应用层与底层硬件平台等技术手段,都很 好地满足了这一要求。 2 3m u l t o s 虚拟机的体系结构分析 m u l t o s 虚拟机采用了面向堆栈的体系结构,定义了内存映象图( 包括存储器 结构和寄存器结构) 和输入输出机制;提供一个包含一组指令集和库函数集的标准 a p i t 2 ”。 2 3 1 内存结构分析 内存是计算机程序使用最多,最频繁的东西。把全部内存当作一个巨大的字节块 在实践中会遇到一些问题,如应用程序出错或内存不够用等情况。因此,为了让操作 系统有效地管理内存,人们采用了两种机制:内存分段和内存分页技术。这两个技术 的实现要依靠硬件层。 智能卡虚拟机的内存管理要遵循虚拟机设计目标之一:可移植性。如果虚拟机利 用计算机提供的内存分段功能来实现有关的内存保护机制,就不可避免地会限制在一 种特定的硬件平台上。因此,虚拟机只能通过纯软件来实现有关的内存保护机制。 人们发明了完全基于软件的,不依赖于硬件的内存保护机制,我在研究中找到的 是:软件沙箱和自检查代码【2 7 , 2 8 】。 软件沙箱( s a n d b o x i n g ) 从广义上讲沙箱就是为应用程序创建一个虚拟运行环境的一种手段。通过沙箱 将构造出来的进程与底层的实际系统相隔离,同时允许用户对这个进程的执行进行控 制,以便可以在该环境下运行用户的执行程序。沙箱技术是在内存分段的硬件基础上, 实现不依赖于硬件的内存保护机制。其主要工作原理是,将一块给定的内存划分成多 个内存段落,每个内存段可以单独分配使用,在各个内存段落之间的边界上采用专 用程序进行保护,而这种保护性的边界检查放在程序运行期间完成,沙箱技术的工作 1 0 华中科技大学硕士学位论文 原理如图所示。 鱼勘釜移刁4 e i j ! 奄w 狰精 碰j i 艇 。琊艟 图2 2 沙箱原理图 可以利用沙箱技术在宿主机上为每个用户程序指定一个运行空间,在程序的运行 中实现对其边界的检查和保护处理i 删。这样做为在宿主机上虚拟地运行目标机程序 提供了一种方法,并且这种方法具备可靠的安全机制。 自检查代码( p r o o f c a r r y i n gc o d e ) 自检查代码是用经过专门改进的开发工具把应用程序编译成一种特殊的格式。由 此得到的可执行代码的编码格式使运行时系统能够验证这种应用程序符合特定的安 全防护模型。这是一种能够替代沙箱技术的新技术,因为这种自我验证只在应用程序 加载到内存时进行一次,运行时系统不必反复不停地对程序代码进行检查。 j a v a 提供的字节码验证功能就是自检查代码技术的一个实际应用。内嵌在j a v a 语言中的安全构造能够在不依赖于硬件的情况下起到对内存的保护作用。对j a v a 这种 具备一定程度的平台无关性的程序设计语言来说,这种机制是至关重要的【“。 自检查代码也存在着几个不足。首先是性能方面的问题。如果往内存里加载的应 用程序很大,在它开始执行之前就会有一个相当明显的时间延迟。 自检查代码的另个不足是它无法对验证器本身的工作情况进行验证。这就好比 是一个内部没有设置监察部门的警察局。一旦验证器本身存在着问题,就可能会允许 恶意代码执行。 m u l t o s 虚拟机是通过软件沙箱技术来实现内存保护。软件沙箱是在程序运行时 进行检查,因此,m u l t o s 虚拟机的安全性要比j a v a 虚拟机高。 任何一个应用程序都有两个基本部分指令和数据。不同的内存管理技术在应 用层上的区别就在于它们是如何来划分和组织各种程序中的指令和数据的。即使是同 一种技术,也可能会有多种变体。 m u l t o s 虚拟机内存管理通过其定义的内存映象图来实现。内存映象图包括存 华中科技大学硕士学位论文 储器结构和寄存器结构。 ( 1 ) 存储器结构分析 存储器结构描述了应用能存取存储器的方法以及各种存储类型的生命周期。 下图显示的是m u l t o s 卡上物理存储器和被应用能看到的存储器( 虚拟内存) 之间的关系【2 l 】。 图2 3 存储器结构 存储器结构定义了两个独立的存储空间,一个是存放应用代码的代码空间:一个 是存放数据的数据空间,数据空间又分为静态空间、公共空间、动态空间,包含所有 可用于应用的非易失性和易失性数据。 静态空间用于虚拟机非易失性应用数据内容,即应用处理的最终结果。应用可以 通过指令对静态空间的内容进行读写,其具体的物理存储出操作系统进行管理。 公用空间用于虚拟公用交换区。公共交换区是由操作系统提供,用于i o 操作, 所有应用和读卡器都可以访问此区域中的数据。公用交换区属于易失性存储,由操作 系统启动时初始化,可以认为是种公用缓冲区,用于存储a p d u 的内容。 动态空间,既要用来存放全局性数据( 对话数据) ,也要用于虚拟机执行过程中 的堆栈运用,动态地提供局部存储。此区域中的数据是易失性数据。当应用被载入到 m u l t o s 卡中时对话数据区的大小是固定的,这些字节将直出现在动态区的底部。 当应用第一次被选择时,应用对话就开始了,直到应用被取消选择而结束。堆栈被初 始化为空,并将随着应用对堆栈压入或弹出数据而扩大和缩小。堆栈的最大尺寸被可 用的物理存储器的数量所固定,并且不能被应用保存。 m u l t o s 虚拟机( a a m ) 为每一个m u l t o s 应用提供独自的存储器空间以存储 华中科技大学硕士学位论文 代码和数据。每个m u l t o s 应用都有一个以相同方式组成的内存映象图。为保护宿 主平台,m u l t o s 卡把每一个m u l t o s 应用的内存总量固定下来。一旦代码空间、 静态空间、公用空间和动态空间得到了它们所需要的内存,就只有这么多了。这将预 防出现因应用程序把宿主机的内存蚕食殆尽而引起的崩溃。 每个应用都不能看到另一个应用的存储器。然而,公共区对所有应用是可见的。 其它所有区域是私有的,不允许一个应用读写另一个应用的私有数据,m u l t o s 设 计了应用之间的防火墙。 ( 2 ) 寄存器结构 m u l t o s 虚拟机( a m m ) 的寄存器结构描述了寄存器在m u l t o s 中使用的方 法。 寄存器由地址寄存器和控制寄存器组成。地址寄存器包括s b 、s t 、p b 、p t 、 d b 、l b 和d t ,控制寄存器包括c p 和c c r ,各自的功能描述见表2 , 1 。c p 与地址 寄存器对于虚拟机而言是物理地址,而对于下层操作系统而言是虚拟地址。 表2 1 虚拟寄存器功能描述 寄存器 功能长度( 字节) s b ( s t a t i cb a s e )静态基址,存放静态空间底部地址,总是为0 。 2 s t ( s t a t i ct o p )静态首址,存放静态空间的顶部地址,其值 2 为静态空间的长度。 p b ( p u b l i cb a s e )公共基址,存放公共空间的底部地址。 2 p t ( p u b l i ct o p ) 公共首址,存放公共空间的顶部地址。 2 d b ( d y n a m i cb a s e )动态基址,存放动态空间的底部地址。 2 l b ( l o c a lb a s e )局部基址,存放局部底地址。 2 d t ( d y n a m i ct o p )动态首址,存放动态空间的栈顶地址。 2 c p ( c o d ep o i n t e r ) 代码指针,存放下一条将被执行的指令地址。 2 c c r( c o n d i t i o n条件代码寄存器,存放与算术操作结果相一 1 c o d er e g i s t e r ) 致的标志,在条件跳转、调用和分支指令中 该寄存器被使用。 地址寄存器把地址空间划分为不同的内存段,即代码空间、静态空间、公共空间 华中科技大学硕士学位论文 一 := = = 目= ;= = = = = ;= = = = = = ;= = = = = ;自自 和动态空间,其中静态空间、公共空间、动态空间统称为数据空间。可以看出,此虚 拟机采用1 6 位寻址。代码空间和数据空间均为1 6 位寻址的空间,因而其最大的存储 量为6 4 k 。m u l t o s 虚拟机没有数据寄存器,寄存器仅用于地址指针而非数据,寄存 器被当作引用来使用,从它的偏移量中指出数据。 处理器根据指令的类型可以对数据空间中的数据进行读与写操作,而对于寄存器 而言,操作指令可以对除c p 外的8 个寄存器进行读操作,但只能对c c r 进行写操作。 对于代码空间,虚拟机通过c p 及c p 的改变实现对代码空问中指令码的访问。 对于数据空间,应用可以通过指令对各个空间的数据进行相应的操作,虚拟机支 持两种访问方式:一种方式是通过标签( t a g ,用于标识相对那一个寄存器,分别可 以相对s b 、s t 、p b 、p t 、d b 、l b 、d t ) 来指定特定空问加上相对地址的方式访问; 另一种方式是通过段地址( s e g m e n t a d d r e s s ) 来访问,段地址将数据空间作为一个整 体来进行地址编码,则p b = s t = 静态空间大小,d b = p t = 静态空间大小+ 公共空间大 小,由于公共空间大小是固定的,且当应用被选定后其静态空间大小也是固定的,因 而在一个应用中,段地址可以唯确定。 另外,对于地址寄存器,在整个应用运行期问s b 、s t 、p b 、p t 和d b 是固定不 变的,而l b 和d t 随着应用的执行,处理器会改变其值,它们之间的关系如图2 4 所示: 图2 4 地址寄存器逻辑关系 动态空间作为数据操作栈,用于存储中间结果,d t 表示数据操作栈顶。l b 表示 局部基地址,提供过程调用与局部变量管理的功能。 2 3 2 处理器分析 1 ) 处理器类型 m u l t o s 虚拟机采用了基于堆栈的处理器。基于堆栈的处理器在嵌入式系统中比 较流行,这是因为这类处理器支持比较短小的程序,在资源有限的场合也能工作得很 1 4 华中科技大学硕士学位论文 好。基于堆栈的处理器的一条指令的内存开销要比基于寄存器的对等指令少得多, 因此,对于同一个程序,为基于堆栈的处理器编译出来的代码要比为基于寄存器的处 理器编译出来的代码小好几倍。 函数调用在基于堆栈的处理器上完成得也更有效率,因为函数参数都已经被放到 堆栈里去了。在一个基于寄存器的处理器上,函数参数必须逐个收集并压入堆栈,这 就需要做更多的工作。 2 ) 指令集架构 m u l t o s 定义了其特殊的类r i s c 架构。 我们一般所说的r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p u t i n g ,精简指令集) 是在c i s c ( c o m p l e xi n s t r u c t i o ns e tc o m p u t i n g ,复杂指令集) 指令系统基础上经过优化的指令 架构,它是根据著名的8 0 2 0 法则所订立【蚓。早在上个世纪6 0 年代,计算机科学家 们发现,计算机中8 0 的任务只是动用了大约2 0 的指令,而剩下2 0 的任务才有机 会使用到其他8 0 的指令。一些过于冗余的指令严重影响到了计算机的工作效率,如 果对指令系统作相应的优化,就可以从根本上快速提高处理器的执行效率。r i s c 体 系结构的基本思路是:抓住c i s c 指令系统指令种类太多、指令格式不规范、寻址方 式太多的缺点,通过减少指令种类,规范指令格式和简化寻址方式等措施,从两大幅 度地提高处理器的性能。 结合智能卡的特殊性,m u l t o s 卡虚拟机指令设计借鉴了r i s c 减少指令种类、 简化寻址方式的思路,达到简化处理器的设计,加快指令的执行速度的目的。m u l t o s 卡定义了3 1 个操作码,6 种指令类型;支持三种寻址方式。 处理器三种寻址方式分别为:立即寻址、直接寻址和间接寻址。立即寻址是指立 即数据存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年蔬菜种植公司蔬菜农残快速检测管理制度
- xx片区城中村改造项目商业计划书
- 2026年蔬菜种植公司劳动防护用品(手套、口罩等)管理制度
- 2026年能源加工公司供应链协同平台管理制度
- 十五五规划纲要深度解读:城市群与都市圈协调发展机制创新
- 建筑清水大钢模设计与施工方法
- 数据要素价值评估:“十五五”资产化核心技术
- 2025江苏方天电力技术限公司高校毕业生招聘17人易考易错模拟试题(共500题)试卷后附参考答案
- 【正版授权】 ISO/TS 14742:2025 EN Financial services - Recommendations and requirements on cryptographic algorithms and their use
- 国考税务考试题库及答案
- 固体废物焚烧、填埋、堆肥技术及发展趋势
- 第2 课《回延安》 课件(41张PPT) 部编版语文八年级下册
- 趣味数学知识课件
- 中国特色社会主义理论与实践研究知识点整理及思考题答案
- 受污染耕地安全利用培训课件讲义
- 干挂大理石施工合同
- 黑龙江省鸡西市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 不锈钢管道安装施工方案及对策及对策
- (印刷服务项目投标)印刷服务进度控制计划、印刷服务供货运输方案
- 信用管理概论课件整书电子教案完整版教学课件全套ppt教学教程最全课件最新
- 维持性血液透析患者疼痛护理
评论
0/150
提交评论