This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorial:custom_oses:zh [2023/12/03 10:53] hfsr [什么可用?] |
tutorial:custom_oses:zh [2023/12/03 10:56] (current) hfsr [其他东西] |
||
---|---|---|---|
Line 191: | Line 191: | ||
``` | ``` | ||
- | 在 BIOS 中访问组件 | + | 在BIOS中访问组件 |
----------------- | ----------------- | ||
- | 与 OpenOS 不同,BIOS没有首选组件系统。这意味着您不能只编写 `component.redstone.setOutput`,而是必须先手动为组件创建代理对象。出于多种原因,代理对象系统是通过机器本身提供的,因此您仍然可以使用它。若要获取代理对象,请使用 `component.proxy` 方法。此函数需要你打算包装的组件地址。 您可以手动写下来,或者用 `component.list` 来获得组件的列表并从中获取。 | + | 与OpenOS不同,BIOS没有首选组件系统。这意味着你不能只写`component.redstone.setOutput`,而是必须先手动为组件创建代理对象。出于多种原因,代理对象系统是通过机器本身提供的,因此您仍然可以使用它。若要获取代理对象,请使用`component.proxy`方法。此函数需要你提供打算包装的组件地址。 您可以手动写下来,或者用`component.list`来获得组件的列表并从中获取。 |
比如说,要获得第一个红石组件,您可以执行以下操作: | 比如说,要获得第一个红石组件,您可以执行以下操作: | ||
Line 199: | Line 199: | ||
local r = component.proxy(component.list("redstone")()) | local r = component.proxy(component.list("redstone")()) | ||
``` | ``` | ||
- | 这行代码可以工作,因为 `component.list` 返回一个 Lua 迭代器——一个可重复调用来获得下一个元素的函数,当没有元素时返回`nil`。 | + | 这行代码可以工作,因为`component.list`返回一个 Lua 迭代器——一个可重复调用来获得下一个元素的函数,当没有元素时返回`nil`。 |
其他东西 | 其他东西 | ||
----------------- | ----------------- | ||
- | 当 `init.lua` 脚本返回(结束运行)的时候,计算机将会关机,所以无论您如何构建操作系统,在脚本里都需要有一个“主循环”。信号必须使用 `computer.pullSignal` 处理,您可以自由使用任何模块将此函数的功能提供给在操作系统中运行的程序——例如,这就是 OpenOS 中 `event.pull` 的作用。 | + | 当`init.lua`脚本返回(结束运行)的时候,电脑将会关机,所以无论您如何构建操作系统,在脚本里都需要有一个“主循环”。 |
+ | 信号必须使用`computer.pullSignal`处理,您可以自由使用任何模块将此函数的功能提供给在操作系统中运行的程序——例如,OpenOS中的`event.pull`就是这么操作的。 | ||
- | 您还需要在操作系统的启动流程中设置连接到电脑的组件,例如将 GPU 绑定到屏幕。 | + | 您还需要在操作系统的启动流程中设置连接到电脑的组件,例如将GPU绑定到屏幕。 |
除此之外,发挥你最疯狂的想象吧! | 除此之外,发挥你最疯狂的想象吧! |