解读 alchemy 技术,加上个人理解
2012-05-04 11:33
267 查看
针对 adobe 公司停止开发移动版Flash Player以后,从我了解的内容上看,flash 端的构架是个问题,为了支撑 native code 引入了一个叫 Alchemy 技术,事实上是在为原来的 LLVM 虚拟机的基础上又托管了一个虚拟机,***M2 将负责实时的把本地代码翻译成中间件,再由
LLVM 转译成机器码。
这种设计在嵌入式上有很大的瓶颈,什么瓶颈大家也看到了。adobe 想让大家使用 flash
做出够炫的 3D 游戏,但是 flash 无法做到像 C# 那样,直接中间语言到 native 的互动甚至是硬件层,也没有像 J***A 的 JVM 技术去映射,而这个问题最大的可能出现,就是自己的虚拟机内核是一面墙。
解读
alchemy 技术:adobe 的 alchemy 技术事实上引用了 freebsd 的内核,然后把你写的代码,根本 freebsd api 抽象成中间件,再由 freebsd 内核接口实现到各个操作平台上。 说白了,就是你写的代码,要根本不同的平台去映射一下实现,前端是他们的代理层,也就是所谓的虚拟机。跨平台的原理就是在此。
前端是
as3 的解析器,as3 的解析器会转换成中间件,再由中间件映射到系统的二进制,c++ 的部分也会在此转换成中间件,只是走了一套不同的解析器工作。最终实现 flash 的整个动作。
当然理论是你只能使用
freebsd 提供的 api 来书写你所要完成的 c++ 代码,之后会有 flash 的虚拟机抽象成 win32 的接口来适应 windows 平台。举个例子,虽然你在 alchemy 中实现了 posix 的 pthread_create, 但是在解析器中依然会把你变成 __beginthreadex。
LLVM 转译成机器码。
这种设计在嵌入式上有很大的瓶颈,什么瓶颈大家也看到了。adobe 想让大家使用 flash
做出够炫的 3D 游戏,但是 flash 无法做到像 C# 那样,直接中间语言到 native 的互动甚至是硬件层,也没有像 J***A 的 JVM 技术去映射,而这个问题最大的可能出现,就是自己的虚拟机内核是一面墙。
解读
alchemy 技术:adobe 的 alchemy 技术事实上引用了 freebsd 的内核,然后把你写的代码,根本 freebsd api 抽象成中间件,再由 freebsd 内核接口实现到各个操作平台上。 说白了,就是你写的代码,要根本不同的平台去映射一下实现,前端是他们的代理层,也就是所谓的虚拟机。跨平台的原理就是在此。
前端是
as3 的解析器,as3 的解析器会转换成中间件,再由中间件映射到系统的二进制,c++ 的部分也会在此转换成中间件,只是走了一套不同的解析器工作。最终实现 flash 的整个动作。
当然理论是你只能使用
freebsd 提供的 api 来书写你所要完成的 c++ 代码,之后会有 flash 的虚拟机抽象成 win32 的接口来适应 windows 平台。举个例子,虽然你在 alchemy 中实现了 posix 的 pthread_create, 但是在解析器中依然会把你变成 __beginthreadex。
相关文章推荐
- 安卓下Camera技术总结----(个人理解)
- 关于技术美术的一些个人理解
- 人工智能阅读理解是如何打破人类记录? 解读阿里iDST SLQA 技术
- 个人理解下推荐给菜鸟学习的关于java的基础技术
- [CDN 技术] squid是否支持http1.1和对KeepAlive支持的个人理解
- 个人理解SPI技术的优缺点
- 对于html,css,javascript技术的个人理解
- 线程池技术个人理解以及c语言的简单实现
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- 机器阅读理解打破人类记录,解读阿里iDST SLQA 技术
- 个人理解的Windows漏洞利用技术发展史
- beanstalkd协议解读(中文翻译加个人理解)
- google开发新人入职100天,聊聊自己的经验&教训 个人对编程和开发的理解 技术发展路线
- Zookeeper的个人理解(非专业技术角度 只是方便于理解)
- storm Tutorial 的解读 + 个人理解
- javascript 简单的个人理解(前端技术)
- 利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)
- 局域网、交换机原理、VLAN技术个人理解、Trunk技术
- 技术点个人理解
- 区块链的技术原理个人理解