Zircon内核线程比较少-FuchsiaOS中文社区.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Zircon内核线程比较少-FuchsiaOS中文社区.PDF

Fuchsia简介 许中兴 xu_zhong_xing@163.com Fuchsia的来历 • 多年的Android, ChromeOS开发经验⼀⽅⾯让Google在操作系统⽅⾯ 积累了⾜够多的⼈才和组件,另⼀⽅⾯也充分认识到了Linux kernel很 多的局限性 • Fuchsia是⼀个全新的操作系统的统称。Google挑选了⼀系列它认为合 适的技术和组件进⼊这个操作系统,⽐如:微内核,基于能⼒的访问控 制,Vulkan图形接⼝,3D桌⾯渲染Scenic,Flutter应⽤开发框架。⽬前 ⽀持的编程语⾔是:C/C++, Go, Rust, Dart • Google2016年中放出了所有的代码,但是没有正式宣布这个项⽬的⽬ 标,开发社区⽬前有⼀个IRC频道进⾏交流 • ⽀持的架构是X86-64和ARM 64 ,⽀持的设备从IoT到服务器 现代通⽤、开放OS需要⾯对的⽅ ⾯ • 上游硬件⼚商 • 下游应⽤开发者 • 设备友商 • ⽤户 • ⿊客 Fuchsia解决现代OS痛点 • 原⽣进程沙箱,解决应⽤安全和分发问题(⿊客) • Linux: namespace, control group, unionfs = docker • 稳定的驱动接⼝,硬件⼚商可独⽴维护硬件驱动(硬件) • 系统模块化,分层,设备⼚商可以灵活定制专有系统(友商) • 基于Vulkan和物理渲染的纯3D UI,全局光照(⽤户) • Flutter应⽤开发框架(开发者) 关于进程沙箱,Fuchsia重新思考 三个Unix的基础抽象机制 • 全局⽂件系统 • ⽤户 • 进程的创建 全局⽂件系统 • 在Unix⾥,存在⼀个全局的根⽂件系统 • 它是每个进程共享的基础资源 • ⽂件系统涵盖了⾮⽂件资源:/proc, /sys, .. • ⽹络是例外 • 在Fuchsia⾥,没有全局根⽂件系统 • ⽂件和⽂件系统成为⼀个局部概念(局限在每个⽂件系统进程⾥),从⽽在进程内核数据结构⾥ 没有file • ⽤namespace来定义⼀个进程能够访问的资源 • 每个name (路径)对应⼀个资源进程channel 的handle • “/“ - root vfs service handle, “/dev” - dev fs service handle, “/net/dns” - DNS service handle User • 在Unix中,user本来是⽤作不同的⽤户登录共享服务器的机制 • user是真正的⽤户 • 后来主要⽤作权限控制,弱化的沙箱机制 • 在Fuchsia中,在底层(Zircon, Garnet)没有⽤户的概念 • ⽤namespace来控制进程能够访问的资源 • Capability-based access control • 从⽽在进程⾥没有uid 进程的创建 • 在Unix中,新的进程由⽼的进程fork⽽来 • 新的进程继承⽗进程的全部资源 • ⼀种偷懒的设计 • 在Fuchsia中,新进程的创建需要从头开始 • 创建process, thread • ⽗进程建⽴初始的namespace到资源channel handle的映射 • 调⽤process_start显式的告诉内核新的进程可以跑了 • 在Fuchsia内核的process数据结构⾥,没有file和uid 仿佛是专⻔针对漏洞利⽤作出的设 计 • 典型的漏洞利⽤步骤 • fork()/exec()开反向shell • 继承uid(或者通过获得root uid进⾏提权)获得泛在授权 • 访问全局⽂件系统 • 在Fuchsia⾥,以上机制全都不存在 • 创建进程时显式建⽴root nam

文档评论(0)

zcbsj + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档