gpt4 book ai didi

Fuchsia:如何在组件中使用内置功能

转载 作者:行者123 更新时间:2023-12-05 04:19:38 25 4
gpt4 key购买 nike

我正在尝试学习和使用 Fuchsia 以获得乐趣,但一个非常基本的概念阻碍了我的进步。

我认为,作为一种学习经验,我可以编写一个简单的 HTTP 客户端,将一些随机 URL 的内容打印到日志中。真的没什么特别的。

据我所知,使用网络(在我的例子中我想使用 fuchsia.net.http.Loader)是一种能力,必须授予正在运行的组件。有道理,这几乎是操作系统的核心。

我还了解启动组件(运行我的组件的组件)需要将此功能授予我的组件。这很公平。

我不明白的是,我非常感谢任何额外的信息(非常感谢!)我如何才能将此授予我的组件?

特别是我看到的所有演示和示例都有一个领域下的自定义客户端和服务器,它们相互通信。这是一个很好的做法,但它不会带来任何内置功能。<​​/p>

我错过了什么?提前致谢!

最佳答案

I'm trying to learn and use Fuchsia for fun, and a pretty basic concept is keeping me from progressing.

感谢您对 Fuchsia 的关注!首先,如果您还没有通过 Fuchsia Fundamentals我强烈建议将其作为许多基础概念的起点。

Specifically all demos and examples I saw had a custom client & server under a realm, which talked to each other. That's a good practice, but it doesn't bring in any capability that's built in.

这主要是因为没有必要将任何组件或功能“内置”到系统中。系统中组件可用的功能完全取决于特定产品构建中的其余组件以及它们的组织方式(这称为 component topology )。

I thought that, as a learning experience, I could write a simple HTTP client that prints the content of some random URL to the log. Really nothing fancy.

目前,答案有一些尖锐的棱角,因为 Fuchsia 是一个快速发展的开源项目。希望下面的一些详细信息能帮助您继续前进。

确定能力路线

因此,您必须做一些工作来确定在哪里提供和路由您需要的功能。事实上,components exercises 之一向您展示如何为 fuchsia.net.http.Loader 功能执行此操作。了解在何处提供/使用功能,您可以确定需要在何处实例化您的组件以获得必要的功能。

您可能还会在 Connect components 中找到一些内容开发人员指南有助于访问该功能。

运行组件

了解功能的路由位置可以让您确定如何运行您的组件。在拓扑中实例化组件的最直接方法是使用 ffx component 动态执行此操作。但是,这需要系统中某处具有您所需功能的集合ffx-laboratory大多数示例运行的领域具有一组非常有限的功能,不包括 fuchsia.net.http.Loader

您可能需要使用 core realm shard 将您的组件静态添加到拓扑中这样就可以在提供 fuchsia.net.http.Loader 的组件和您的组件之间显式声明必要的路由。通过静态包含在您的产品构建中的组件,您可以使用 ffx component 命令执行它。

有关组件执行的更多详细信息,请查看 Run components开发人员指南。

运行 CLI 二进制文件

由于这是一个学习练习,另一种选择是将您的代码构建为二进制文件,该二进制文件在已经具有您需要的功能的组件的上下文中运行,而不是创建和运行一个全新的组件。这通常用于 CLI 工具。使用 ffx component explore 命令,您可以使用 --tools 参数在提供您正在寻找的 HTTP 功能的现有组件中以二进制形式运行代码,而无需需要完成上述所有功能路由部分。

有关 ffx 组件探索 的更多详细信息,请参阅 Explore components .

关于Fuchsia:如何在组件中使用内置功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74754659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com