Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial:custom_oses:zh [2023/12/03 10:52]
hfsr [引导启动]
tutorial:custom_oses:zh [2023/12/03 10:56] (current)
hfsr [其他东西]
Line 16: Line 16:
 什么可用? 什么可用?
 ----------------- -----------------
-Wiki 上记录了一些库,它们实际上是 OpenOS 的一部分,所以当你实现自己的操作系统时这些库无法使用。最值得注意的是,包括 `io``package` 和 `filesystem` 库。有关 ​init 脚本中可用内容的明确参考,请查看系统内核或[[https://​github.com/​MightyPirates/​OpenComputers/​blob/​master-MC1.12/​src/​main/​resources/​assets/​opencomputers/​lua/​machine.lua|你当前OpenComputer模组版本对应的machine.lua脚本](英文)。 以下列表不能保证完整性与/​或时效性!+Wiki 上记录了一些库,它们实际上是 OpenOS 的一部分,所以当你实现自己的操作系统时这些库无法使用。最值得注意的是,其中包括`io``package`和`filesystem`库。要获取init脚本中可用内容的明确参考,请查看系统内核代码或[[https://​github.com/​MightyPirates/​OpenComputers/​blob/​master-MC1.12/​src/​main/​resources/​assets/​opencomputers/​lua/​machine.lua|你当前OpenComputer模组版本对应的machine.lua脚本](英文)。 以下列表不能保证完整性与/​或时效性!
  
 ```lua ```lua
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绑定到屏幕。
  
 除此之外,发挥你最疯狂的想象吧! 除此之外,发挥你最疯狂的想象吧!