docs/zh_CN: Add rust general-information Chinese translation

Translate .../rust/general-information.rst into Chinese.

Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Alex Shi <alexs@kernel.org>
Reviewed-by: Wu XiangCheng <bobwxc@email.cn>
Link: https://lore.kernel.org/r/b623a39e3598e9dcd8ead4efa512694716403c48.1666959529.git.siyanteng@loongson.cn
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Yanteng Si
2022-10-28 20:23:11 +08:00
committed by Jonathan Corbet
parent 73b6340222
commit 55bd06ff4a
2 changed files with 76 additions and 1 deletions

View File

@@ -0,0 +1,75 @@
.. SPDX-License-Identifier: GPL-2.0
.. include:: ../disclaimer-zh_CN.rst
:Original: Documentation/rust/general-information.rst
:翻译:
司延腾 Yanteng Si <siyanteng@loongson.cn>
基本信息
========
本文档包含了在内核中使用Rust支持时需要了解的有用信息。
代码文档
--------
Rust内核代码使用其内置的文档生成器 ``rustdoc`` 进行记录。
生成的HTML文档包括集成搜索、链接项如类型、函数、常量、源代码等。它们可以在以下地址阅读
TODO当在主线中时链接与其他文档一起生成
http://kernel.org/
这些文档也可以很容易地在本地生成和阅读。这相当快(与编译代码本身的顺序相同),而且不需要特
殊的工具或环境。这有一个额外的好处,那就是它们将根据所使用的特定内核配置进行定制。要生成它
们,请使用 ``rustdoc`` 目标,并使用编译时使用的相同调用,例如::
make LLVM=1 rustdoc
要在你的网络浏览器中本地阅读该文档,请运行如::
xdg-open rust/doc/kernel/index.html
要了解如何编写文档,请看 coding-guidelines.rst 。
额外的lints
-----------
虽然 ``rustc`` 是一个非常有用的编译器但一些额外的lints和分析可以通过 ``clippy``
一个Rust linter来实现。要启用它请将CLIPPY=1传递到用于编译的同一调用中例如::
make LLVM=1 CLIPPY=1
请注意Clippy可能会改变代码生成因此在构建产品内核时不应该启用它。
抽象和绑定
----------
抽象是用Rust代码包装来自C端的内核功能。
为了使用来自C端的函数和类型需要创建绑定。绑定是Rust对那些来自C端的函数和类型的声明。
例如人们可以在Rust中写一个 ``Mutex`` 抽象它从C端包装一个 ``Mutex结构体`` ,并
通过绑定调用其函数。
抽象并不能用于所有的内核内部API和概念但随着时间的推移我们打算扩大覆盖范围。“Leaf”
模块例如驱动程序不应该直接使用C语言的绑定。相反子系统应该根据需要提供尽可能安
全的抽象。
有条件的编译
------------
Rust代码可以访问基于内核配置的条件性编译:
.. code-block:: rust
#[cfg(CONFIG_X)] // Enabled (`y` or `m`)
#[cfg(CONFIG_X="y")] // Enabled as a built-in (`y`)
#[cfg(CONFIG_X="m")] // Enabled as a module (`m`)
#[cfg(not(CONFIG_X))] // Disabled

View File

@@ -16,10 +16,10 @@ Rust
:maxdepth: 1
quick-start
general-information
TODOList:
* general-information
* coding-guidelines
* arch-support