On 10/16/22 11:09, Rui Li wrote:
On Sat, 15 Oct 2022 22:35:50 +0800
"wu.xiangcheng at linux.dev" <fyqznjfscvhmhtrybuyvbyjnqkkhrser@xxxxxxxxxxxxxx> wrote:
Translate .../rust/general-information.rst into Chinese.
Signed-off-by: Yanteng Si <siyanteng@xxxxxxxxxxx>
---
.../zh_CN/rust/general-information.rst | 75
+++++++++++++++++++ .../translations/zh_CN/rust/index.rst |
2 +- 2 files changed, 76 insertions(+), 1 deletion(-)
create mode 100644
Documentation/translations/zh_CN/rust/general-information.rst
diff --git
a/Documentation/translations/zh_CN/rust/general-information.rst
b/Documentation/translations/zh_CN/rust/general-information.rst new
file mode 100644 index 000000000000..58a28eb6f01d --- /dev/null
+++ b/Documentation/translations/zh_CN/rust/general-information.rst
@@ -0,0 +1,75 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/rust/general-information.rst
+
+:翻译:
+
+ 司延腾 Yanteng Si <siyanteng@xxxxxxxxxxx>
+
+
+基本信息
+========
+
+本文档包含了在内核中使用Rust支持时需要了解的有用信息。
+
+
+代码文档
+--------
+
+Rust内核代码使用其内置的文档生成器 ``rustdoc`` 进行记录。
+
+生成的HTML文档包括集成搜索、链接项(如类型、函数、常量)、源代码等。它们可以在以下地址阅读
+(TODO:当在主线中时链接,与其他文档一起生成):
+
+ http://kernel.org/
+
+这些文档也可以很容易地在本地生成和阅读。这相当快(与编译代码本身的顺序相同),而且不需要特
+殊的工具或环境。这有一个额外的好处,那就是它们将根据所使用的特定内核配置进行定制。要生成它
+们,请使用 ``rustdoc`` target,并使用编译时使用的相同调用,例如::
target -> 目标
+
+ make LLVM=1 rustdoc
+
+要在你的网络浏览器中本地阅读该文档,请运行如::
+
+ xdg-open rust/doc/kernel/index.html
+
+要了解如何编写文档,请看coding-guidelines.rst。
请看 coding-guidelines.rst 。
+
+
+额外的lints
+-----------
+
Is there any good translation for "lint" ?
+虽然 ``rustc``
是一个非常有用的编译器,但一些额外的lints和分析可以通过 ``clippy``
+(一个Rust
linter)来实现。要启用它,请将CLIPPY=1传递到用于编译的同一调用中,例如::
+
+ make LLVM=1 CLIPPY=1
+
+请注意,Clippy可能会改变代码生成,因此在构建产品内核时不应该启用它。
+
+抽象和绑定
+----------
+
+抽象是Rust代码,用于包装来自C端的内核功能。
抽象是用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
diff --git a/Documentation/translations/zh_CN/rust/index.rst
b/Documentation/translations/zh_CN/rust/index.rst index
fe884d1da353..c4d773a8a288 100644 ---
a/Documentation/translations/zh_CN/rust/index.rst +++
b/Documentation/translations/zh_CN/rust/index.rst @@ -16,10 +16,10
@@ Rust :maxdepth: 1
quick-start
+ general-information
TODOList:
-* general-information
* coding-guidelines
* arch-support
--
2.31.1
We could leave "lint" untranslated in my perspective. This may lead to a better understanding for readers.
I think so too.
Thanks,
Yanteng