`
prec
  • 浏览: 64622 次
  • 性别: Icon_minigender_1
  • 来自: 互联网
最近访客 更多访客>>
社区版块
存档分类
最新评论

[tamarin系列之1] tamarin简介

阅读更多

本系列主要是用来研究AVM2和Tamarine相关的技术应用。

 

 一、相关概念 (灰色部分选自 http://www.ibm.com/developerworks/cn/web/wa-actionscript/index.html) 在 2006 年 11 月 7 日,Adobe Systems 宣布将 ActionScript Virtual Machine 的代码捐献给 Mozilla Foundation。因此,Mozilla 启动了一个新的开放源码项目 Tamarin。Adobe 和 Mozilla 希望以此促进这种创建 Web 应用程序的标准化语言的推广。

Tamarin 项目的目标是实现一个高性能的开放源码的 ECMAScript 第四版(ES4)语言规范实现。Mozilla 在 SpiderMonkey 中使用 Tamarin Virtual Machine,SpiderMonkey 是 Firefox 和其他基于 Mozilla 的产品中嵌入的核心 JavaScript 引擎。Adobe 将继续在 Adobe Flash Player 中的 ActionScript Virtual Machine 中使用这些代码。

Tamarin Virtual Machine 当前实现 ECMAScript 第三版语言标准(这是 JavaScript、Adobe ActionScript 和 Microsoft Jscript 采用的标准),还支持 ES4 中建议的一些新语言特性。社区正在开发 ES4 的开放源码实现,Adobe 和 Mozilla 希望以此促进这种创建 Web 应用程序的标准化语言的推广。Tamarin 项目的目标是帮助开发人员创建可以跨多个平台的效果丰富的高度交互性的用户体验。

Tamarin 将支持 ECMAScript 第四版(或者说 “JavaScript 2”)语言,并将集成进 Mozilla 2 项目中的 SpiderMonkey,预期在 2008 年发布。

Mozilla 的开放源码项目团队刚刚开始开发 Tamarin,它的一些目标技术包括:

    * 1. 将 Tamarin VM 和垃圾收集器集成进 SpiderMonkey 中
    * 2. 使用 SpiderMonkey 编译器生成 Tamarin 的代码
    * 3. 将即时编译器移植到新的硬件平台
    * 4. 完成 ECMAScript 4 编译器
    从以上概述,我们可以对Tamarin有一个初步的认识。虽然Tamarin实现的是一个ES4引擎,但这个项目对我们认识AVM2虚拟机和实现Flex下的脚本解析器活脚本引擎绝对有重要的意义。 下面我们来看一张图:

 

                                                              图描述了AVM2框架的各个部分和各部分之间的关系。

 

    可以看出,是的Flash Player 9有JIT complier,同时,它也有Interpreter,并且一切都建立在.abc之上。

    随着Flash Player以后的版本将基于tamarine平台,将会有更多的脚本语言能够参与进来,包括目前tamaine的ES4,AS3(Action Monkey)和Iron系列(见IronMonkey, 可能包括IronPython,IronRuby,IronPHP等),到此,像不像.NET framework的感觉了? 甚至还要代替IE的JavaScript、VBScript客户端脚本(见ScreamingMonkey)。

     好了,前景先简单介绍到这里,下面,让我们进入tamarine及其AVM2相关的世界中吧。

 

 

 二、获得tamarin

 

     我们可以用多种途径很轻松的获得tamarin。由于tamarin项目没有release,目前还只是模型阶段。

     1、我们可以用mercurial的命令:

                                                            hg clone http://hg.mozilla.org/tamarin-tracing/

                                                            (没有hg的,可以用APT来安装,sudo apt-get install mercurial)

 

   2、可以直接用浏览器从http://hg.mozilla.org/tamarin-tracing/上点击gz或zip链接来下载。

    下载完毕后,就可以编译了。

     这里注意编译环境:

     1、在WINDOWS下,通过项目文件夹\platform\win32下的avmplus_9.sln或avm_plus_8.sln打开整个项目。

          注意解决方案中有zlib,而tamarin源码包并没有包括zlib, 去相关网站下载zlib源码,并配置好路径即可。

          编译时,core文件夹下的ErrorCostants.cpp可能出错,这个文件是错误信息常量表,可能是因为字符集的问题,我的解决方案很简单,删除多余的语言,只留en,即数组只留en。其他全部去掉,这样编译就通过了,反正这个文件没什么大用。

 

     2、在LINUX下编译,最好建立一个空的文件夹,然后编译:

          mkdir build

          cd build

         ../tamarin-tracing/configure --enable-shell  --enable-debugger

        编译最好加 --enable-shell  --enable-debugger这两个选项,否则,嘿嘿,第一个不加是不会有可执行的shell的,至于第二个不加,调试,汇编都不会有。

 

      configure后生成Makefile文件。然后就可以make了。make后会生成shell目录,里面就有我们最终想要的avmshell这个Interpreter了。

 

     3、测试一下:首先作一个hello.as 内容为print ("Hello world");

         然后用Flex-sdk的asc.jar:

          java -jar asc.jar hello.as

         显示 hello.abc, 84 bytes written

         ls一下,可以看到hello.abc

         然后./avmshell hello.abc

          输出结果Hello world

 

     好了,今天简单介绍这些作为进入tamarin世界的热身运用,下一期,我们来深入了解avmshell这个shell工具

 

 ==============================================

 

由于资料较少,肯定会有遗漏,错误和要补充的地方,欢迎大家讨论并指正。  

 

================================================================

新增源码SVN: svn://svnhost.cn/tamarin-tracing

分享到:
评论

相关推荐

    PyPI 官网下载 | tamarin-utils-0.14.5.tar.gz

    **PyPI 官网下载 | tamarin-utils-0.14.5.tar.gz** 这个压缩包文件`tamarin-utils-0.14.5.tar.gz`来源于Python的官方软件仓库PyPI(Python Package Index),它是一个包含众多Python库的地方,方便开发者下载和分享...

    tamarin-prover入门级介绍

    1. 协议分析的挑战 在过去的二十年里,安全协议的符号分析已经取得了显著的研究成果,工具在检测协议漏洞和证明其安全性方面发挥了重要作用。然而,理论模型与实际可分析模型之间仍然存在巨大差距。Tamarin Prover...

    tamarin-prover:Tamarin证明程序的主要源代码存储库,用于安全协议验证-Verification code source code

    Tamarin证明者资料库 本自述文件描述了Tamarin证明者用于安全协议验证的存储库的组织。 它的目标受众是Tamarin证明者的感兴趣的用户和将来的开发人员。 有关Tamarin证明器的安装和使用说明,请参见手册的第2章: : ...

    网络安全协议形式化分析验证工具Tamarin的用户手册

    1. **工具介绍**:Tamarin由The Tamarin Team开发,旨在为安全协议提供精确的形式化建模和自动证明。它结合了自动推理和交互式定理证明,可以处理复杂的协议行为和加密机制。 2. **安装方式**:手册详细介绍了在...

    PyPI 官网下载 | tamarin-utils-0.15.1.tar.gz

    它可能包含了一系列用于容器编排、微服务管理、服务发现等功能的工具,有助于开发者更好地适应和利用云环境。 Python库的结构通常是模块化的,`tamarin-utils-0.15.1`的压缩包内部可能包含以下组成部分: 1. **源...

    基于Tamarin的5G AKA协议形式化分析及其改进方法_.pdf

    1. 5G AKA 协议的形式化建模 本文首先基于 3GPP TS 33.501v17.0.0 版本,完成了对 5G AKA 协议及期望其满足的安全性质的形式化建模。安全性质包括保密性质和 Lowe 鉴权性质。保密性质包括安全锚点密钥 KSEAF 和长期...

    PyPI 官网下载 | tamarin-utils-0.8.5.tar.gz

    `tamarin-utils`正是针对这样的需求而设计的,它提供了一系列与Zookeeper交互的Python接口,使得开发者可以更方便地在Python代码中使用Zookeeper的服务。这包括但不限于创建、删除、更新Zookeeper节点,以及监视节点...

    tamarin:小而简单的 Ruby Web 服务器

    gem 'tamarin' 然后执行: $ bundle 或者自己安装: $ gem install tamarin 用法 运行服务器: bundle exec ruby lib / tamarin 然后,在其他终端运行: curl http : //localhost :3030 贡献 分叉它( )...

    Python库 | tamarin-utils-0.15.4.tar.gz

    1. **文件操作**:提供了一套简洁的接口来处理文件和目录的操作,如创建、读写、移动、删除等,使得文件管理变得更加简单易行。 2. **数据处理**:包含了数据清洗、转换、分析的基础功能,适合于处理各种结构化和非...

    EMVerify:Tamarin模型和EMV分析

    EM验证 这是EMV标准的模型,是我们IEEE S&P 2021论文EMV标准:Break,Fix,Verify的补充材料。 有关这项工作的详细信息,请访问 。... :GNU脚本,用于生成目标模型并对其进行Tamarin分析。 *.oracle

    EMVerify-PAN-routing:Tamarin模型和EMV非接触式分析

    是GNU脚本,用于生成目标模型并对其进行Tamarin分析。 *.oracle是证明支持的*.oracle 。 包含自动生成的目标模型( .spthy )及其证明( .proof )。 以HTML格式显示分析结果。 包含有用的脚本: 是一个Python...

    Tamarin HD Wallpapers Game Theme-crx插件

    包括Tamarin的HD图像动作冒险视频游戏。 对于Banjo Kazooie Donkey Kong和Mario 64的粉丝! 包括Tamarin的高清图像,动作冒险视频游戏。 对于Banjo Kazooie,Donkey Kong和Mario 64的粉丝! 我们总是更新图像,以便...

    thane:用于 MSOY 的 Tamarin VM 的修改版本

    Thane 是 Tamarin ( ) 的一个轻微修改版本,具有部分 Flash Player 兼容层,主要用 ActionScript 编写,并带有一点原生胶水。 引擎本身被修改为在 x86_64 架构下的 Unix 平台上运行。 现有的 Windows/64 支持已扩展...

    安全协议形式化分析

    2. **SSL/TLS协议**:这是Internet上最常用的安全协议之一,用于保护Web通信的安全。SSL/TLS协议位于应用层和传输层之间,主要由两部分组成: - 上层协议:包括TLS握手协议、TLS密码变化协议和TLS警告协议。 - ...

    monkey数据集(monkey.org)

    1. **数据加载**:首先,我们需要使用Python的`zipfile`库或者类似工具来解压包含"data"和"full"两个文件的压缩包。解压后,我们将这两个文件加载到内存或合适的数据处理库,如Pandas DataFrame。 2. **数据探索**...

    2021高考英语一轮复习课时作业7Unit7TheSea北师大版必修3

    1. Drayton Manor Theme Park位于斯塔福德郡,这里有新的Tamarin Trail,游客可以近距离接触猴子群。公园内还有欧洲唯一的Thomas Land,增加了新的游乐设施,包括站立式过山车Shockwave和54米高的Drop Tower ...

    flash内部机制

    - **AVM1 (ActionScript虚拟机)**:用于解释执行ActionScript 1和2版本的代码。 - **AVM2 (Tamarin)**:支持ActionScript 3版本的代码,并通过即时编译技术提高执行效率。 #### 四、SWF文件的发展历史 随着Flash...

    redtamarin, 在 命令行/server 端,运行 AS3.zip

    redtamarin, 在 命令行/server 端,运行 AS3 redtamarin简而言之,redtamarin是基于 Tamarin项目( 例如。 Flash Player 虚拟机),并允许在命令行上运行AS3代码。因为Tamarin只支持,( 对象,array,等等 ),...

Global site tag (gtag.js) - Google Analytics