何良-lyComponent+Model+构建一个跨语言的新生态.pdfVIP

何良-lyComponent+Model+构建一个跨语言的新生态.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
构造一个跨语言跨平 台的新生态 Component Model of WebAssembly He, Liang Intel 议题 • Component Model 解决的问题 • Component Model 方案介绍 • 新 WASI Component Model 解决的问题 回顾 Wasm App 开发流程 • 使用开发者熟悉的语言编写 • 使用工具链生成 Wasm Module • 完成胶水代码 (Glue code)。包括 Runtime 初始化,Module 加载,实例 化,运行 当 Wasm App 规模变大 • 模块化 • 分离通用功能 • 基础库 (WASI)。基于能力的安全模型的潜在要求 可复用的 Wasm Module • 实现 Wasm Modules 时: • 如何使用不同语言的类型系统表达相同的逻辑概念,比如复合类型,语言 特有的类型 (Optional),编程的概念 (Async) • 如何确保经过不同的工具链的转换,解决了第一个问题的代码能产生符合 import/export 要求的 Wasm 代码 • 运行 Wasm Modules 时: • 胶水代码。定义实例化顺序,满足实例化条件 (import) • 链接 (link)的形态 链接形态 • 静态 • 自包含但扩大了不必要的冗余 • 动态 • Shared-everything。模拟 native linking (.dll, .so)的过程,所有的 modules 共享一个内存空间 • Shared-nothing。充分隔离 • 根据场景制定最适合的方案 Component Model 方案介绍 Component Model 解决什么问 题 • 实现跨语言条件下的跨模块的通讯 • Host - Module • Module - Module • 实现多 Module 之间的隔离性,并使其可配置 Component type • IDL。 .WIT • 丰富的类型。record,list,tuple,option,resource 等 • 需要由 Core Wasm Type 来表示 • Canonical ABI. 实现 Component Type 和 Core Wasm Type 之间的转 换 • Bindgen (Optional)。在 Canonical ABI 的约束下,实现不同语言对 Component type 的表示 基于 component type 的接口 • 参数和返回值需符合一致性兼容性原 则 • 参数和返回值按值传递 • Runtime 负责在不同 component 间 搬运数据 Parametric linking • 代码单元 (静态)和代码实例 (动态) • 代码单元声明的 import 必须在实例化过程中满足 • 一个代码单元可以成为另一个代码单元的 import • 优势 :隔离和虚拟化 可配置的链接形式 • 举例 : • component instance 之间 不共享线性空间 • component instance 内部 共享线性空间 简化胶水代码 • 将大部分实例化过程 (完成链接)从胶水代码中转移到 component model section 中 • (instance), (instantiate) • dummy module。重新组合来 自于不同 Module instance 和 host 的 export •

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档