原文路径:fuchsia/docs/the-book/hub.md

hub是什么意思?

hub是zircon 自我检查的门户。它使工具能够在运行时访问有关realms(本文翻译为领域)和component(本文翻译为组件)实例的详细结构信息,例如names,job和process ids以及published services。

译者注:类似于linux proc 和sysfs系统

组织形式

hub被组织为目录和文件树,在运行时描述各个领域和组件实例。

hub的结构大多是只读的。无法创建,重命名,删除或以其他方式修改构成hub本身结构的目录和文件。但是, 组件实例的outgoing目录可能包括一些可变目录,文件和服务,客户端可以通过hub访问它们。

译者注:outgoing目录是组件对外publish的目录(里面最重要的就是对外提供的服务)

hub的结构是可观察的。客户端可以观察文件系统更改,例如正在添加或删除目录表示相关领域的创建或销毁。

hub的结构受范围限制。越深层次的hub目录树的范围是限制越具体的对象。例如,在打开表示领域的目录后,客户端可以获取有关领域本身、其子领域及其组件实例的信息,但它无法获取有关领域父级的任何信息。这种结构使得更容易约束特定客户端可以访问的hub部分。

组织结构

hub的组织结构如下:

<realm name> / <realm id> /×××       :领域目录整体结构(包含领域相关信息的只读目录。根领域的目录通常mount在root development shell中的/hub上。后面对“xxx”部分再进行细分。)

                                              name:领域名称(包含域的名称的只读文件,UTF-8,不带填充或终结符。)

                                              job-id:领域的job ID(一个只读文件,包含领域job的koid,十进制ASCII,没有填充或终止符。)

                                              svc:领域的服务(包含此领域可用的所有服务。ls命令只显示在该领域中直接创建的服务。)

                                              r /×××:子领域列表(包含子领域列表的只读目录。)

                                              r / <child realm name> / <child realm id> /×××:(子领域目录整体结构信息。)

                                              c /×××:组件实例列表(包含组件实例列表的只读目录。)

                                              c / <component name> / \ <component instance id> /×××:组件实例目录(包含有关组件的信息的只读目录。)

                                                                                                                                       name:组件的名称(只包含组件名称的只读文件,采用UTF-8,不带填充或终止符。)

                                                                                                                                        args:组件的原始命令行参数(包含组件原始命令行参数的只读文件,采用UTF-8,不带填充或终止符。)

                                                                                                                                        url:组件的URL(包含组件url的只读文件)

                                                                                                                                        job-id:组件的作业ID(一个只读文件,包含组件job的koid,十进制ASCII,没有填充或终止符。多个组件实例可以在同一job中共存。组件也可以创建自己的新工作,这里没有反映出来。)

                                                                                                                                        process-id:组件的进程ID(一个只读文件,包含组件进程的koid,十进制ASCII,没有填充或终止符。多个组件实例可以在同一个进程中共存。组件也可以创建自己的新进程,这里没有反映出来。)

                                                                                                                                        system_objects:系统级组件检查(显示符合Inspect API的对象的目录树。该目录树由系统管理,以公开有关组件的系统级信息。)

                                                                                                                                        in /×××:组件的传入命名空间(一个目录树,公开由其父组件提供给组件的对象,或者由组件框架环境提供的对象。)

                                                                                                                                        in / svc:组件的传入服务目录(包含组件可用服务的目录(来自其父组件或组件框架)。这映射到/svc组件自己的命名空间中。)

                                                                                                                                       out /×××:组件的out目录(包含组件已导出的对象的目录,例如其服务。如果组件不导出任何内容,则可能不存在。可能包含读写对象。)

                                                                                                                                       out / process public:组件的导出公共对象目录(包含组件已导出到其主机的对象的目录,例如其服务。可能包含读写对象。)

                                                                                                                                        out / ctrl:组件的导出控制对象目录(包含组件为领域生命周期控制提供给领域管理器的对象的目录。可能包含读写对象。)

                                                                                                                                        out / debug:组件的导出调试对象目录(包含组件为调试目的而发布的对象的目录,例如内省文件和服务。可能包含读写对象。)

                                                                                                                                        out / objects:组件的导出结构化对象(显示符合Inspect API的对象的目录树。该目录树由组件本身公开,以允许检查特定于组件的数据。)

                                                                                                                                        c /×××:子组件实例列表(包含子组件实例列表的只读目录。这仅针对runner组件的生成。)

举例:

拿sysmgr创建的嵌套realm为例,其目录结构如下:

sys/4611
sys/4611/r
sys/4611/name
sys/4611/job-id
sys/4611/job
sys/4611/c
sys/4611/c/crashpad_analyzer.cmx
sys/4611/c/crashpad_analyzer.cmx/8905
sys/4611/c/crashpad_analyzer.cmx/8905/name
sys/4611/c/crashpad_analyzer.cmx/8905/url
sys/4611/c/crashpad_analyzer.cmx/8905/args
sys/4611/c/crashpad_analyzer.cmx/8905/job-id
sys/4611/c/crashpad_analyzer.cmx/8905/process-id
sys/4611/c/crashpad_analyzer.cmx/8905/system_objects
sys/4611/c/crashpad_analyzer.cmx/8905/system_objects/fuchsia.inspect.Inspect
sys/4611/c/crashpad_analyzer.cmx/8905/in
sys/4611/c/crashpad_analyzer.cmx/8905/in/svc
sys/4611/c/crashpad_analyzer.cmx/8905/in/svc/fuchsia.net.SocketProvider
sys/4611/c/crashpad_analyzer.cmx/8905/in/svc/fuchsia.logger.LogSink
sys/4611/c/crashpad_analyzer.cmx/8905/out
sys/4611/c/crashpad_analyzer.cmx/8905/out/public
sys/4611/c/crashpad_analyzer.cmx/8905/out/public/fuchsia.crash.Analyzer
sys/4611/c/crashpad_analyzer.cmx/8905/out/debug
sys/4611/c/crashpad_analyzer.cmx/8905/out/ctrl
sys/4611/svc
sys/4611/svc/fuchsia.sys.Loader
sys/4611/svc/fuchsia.sys.Environment
sys/4611/svc/fuchsia.sys.Launcher
sys/4611/svc/fuchsia.process.Launcher
sys/4611/svc/fuchsia.process.Resolver
sys/4611/svc/fuchsia.crash.Analyzer

根realm的目录结构稍微有点区别:没有了进程号作为的realm id,直接挂在了根shell的/hub目录下。

fuchsia hub文件系统相关推荐

  1. Fuchsia OS 将推送给所有第一代 Nest Hub 设备

    于2016年曝光,2021年5月正式官宣向部分第一代 Nest Hub 推出 Fuchsia OS,随着升级用户越来越多,Google 在上周提交了一个支持界面,向所有第一代 Nest Hub 设备用 ...

  2. Fuchsia OS 现已支持第二代 Nest Hub

    谷歌神秘新系统 Fuchsia 正在悄悄普及到更多设备中.作为 Android 的非 Linux 替代品,Fuchsia 已经逐渐在 Google 的自有智能显示器上进行了推广,首先是第一代 Nest ...

  3. Google Pixel 3 XL 将可运行 Fuchsia 系统

    早先我们已经知道 Google Home Hub 和 Pixelbook 已经获得某种程度的 Fuchsia OS 支持.在那个时候,我们就期待什么时候我们会看到 Google Pixel 系列手机的 ...

  4. 鸿蒙系统gpl,华为鸿蒙最大的对手现身!谷歌正式推送Fuchsia OS,或替代安卓

    可能是看到了华为鸿蒙的进展神速,谷歌在近日也正式开始了Fuchsia OS的推送. 5月25日,谷歌Fuchsia OS项目负责人在社交媒体上公开喊话:"今天是个重要的日子,我们发布了新的操 ...

  5. Hi3516A开发-- UBI 文件系统使用指南

    这篇文章在 Hi3516A V100R001C01SPC050\02.Only for Reference\02.software\documents_cn\UBI 文件系统使用指南.pdf 拿出来只 ...

  6. Docker文件系统实战

    在本文中,我们来实战构建一个Docker镜像,然后实例化容器,在Docker的生命周期中详细分析一下Docker的文件存储情况和DockerFile优化策略. 在开始实战之前,我们先介绍一个概念,联合 ...

  7. 网易实战分享|Docker文件系统实战

    文|网易云信资深应用开发工程师 在本文中,我们来实战构建一个Docker镜像,然后实例化容器,在Docker的生命周期中详细分析一下Docker的文件存储情况和DockerFile优化策略. 在开始实 ...

  8. 文件系统_Docker文件系统实战

    关键词:Docker 联合文件系统 镜像 容器 云信私有化 在本文中,我们来实战构建一个Docker镜像,然后实例化容器,在Docker的生命周期中详细分析一下Docker的文件存储情况和Docker ...

  9. 制作根文件系统出现错误:No init found

    问题: 1.构建最小根文件系统时,出现错误: Warning: unable to open an initial console. Failed to execute /linuxrc. Attem ...

最新文章

  1. setTimeout、setInterval、promise、async/await的顺序详解(多种情况,非常详细~)
  2. 转:字体集选择font-family
  3. 02.规划过程组表格-需求管理计划
  4. Idea中启动tomcat服务,提示缺少一个tcnative-1.dll文件
  5. html5缓动下拉菜单,HTML5 Canvas鼠标跟随的缓动效果
  6. Vegas轻松get制作动态背景技能
  7. java怎么写脚本_一名资深牛人写的Java脚本编程指南
  8. java http 401_401 API请求状态错误
  9. Linux错误:warning: here-document at line 5 delimited by end-of-file (wanted `EOF`
  10. 五 . css系列之文本段落属性及应用
  11. 有事的一天,小事一大堆......
  12. SysTick系统滴答定时器
  13. es 集群 number_of_shards、number_of_replicas
  14. windows下延时函数
  15. 实现正六边形、圆形及带倒角正六边形的头像显示
  16. SQL Server数据库创建数据库、用户、表和插入数据(Transact-SQL)
  17. 数据结构与算法——中缀表达式转后缀表达式
  18. round-off and truncation error(舍入和截断误差)
  19. grep怎样匹配tab键
  20. Windows Server 活动目录功能

热门文章

  1. 2023年全国最新二级建造师精选真题及答案46
  2. cesium实现车辆行驶在路线上
  3. C# 编写的 64位操作系统 - MOOS
  4. 第一个完整页面来啦~小米官网
  5. python抢mac微信红包群_要抢红包?Python来帮你~
  6. 广东公需科目公需课十四五答案考试查询器
  7. archlinux+i3wm安装与配置
  8. JavaScript: 多维数组的几个注意点
  9. 记一次挖矿病毒应急处置全过程挖矿处置基本操作
  10. 调查报告:创意行业是否为远程办公做好准备?