diff --git a/Documentation/translations/zh_CN/kernel-hacking/hacking.rst b/Documentation/translations/zh_CN/kernel-hacking/hacking.rst
index 80d5d0ed75a5..ab974faddecf 100644
--- a/Documentation/translations/zh_CN/kernel-hacking/hacking.rst
+++ b/Documentation/translations/zh_CN/kernel-hacking/hacking.rst
@@ -6,24 +6,24 @@
吴想成 Wu XiangCheng <[email protected]>
-========================
-内核操弄(Hacking)指北
-========================
+==============
+内核骇客指北
+==============
:作者: Rusty Russell
引言
=====
-欢迎咱优雅的读者们来阅读Rusty的非常不靠谱的Linux内核操弄指南。本文描述了
-内核代码的常见例程和一般要求:其目标是引导有经验的C程序员入门Linux内核开发。
-我回避了实现细节:这是代码要做的,也忽略了很多有用的例程。
+欢迎咱优雅的读者们来阅读Rusty的非常不靠谱的Linux内核骇客(Hacking)指南。本文
+描述了内核代码的常见例程和一般要求:其目标是引导有经验的C程序员入门Linux内核
+开发。我回避了实现细节:这是代码要做的,也忽略了很多有用的例程。
在你读这篇文章之前,请理解我从来没有想过要写这篇文章,因为我的资历太低了;
但我一直想读这样的文章,自己写是唯一的方法。我希望它能成长为一个最佳实践、
通用起点和其他信息的汇编。
-参与者
+玩家
=======
在任何时候,系统中的每个CPU都可以:
@@ -45,7 +45,7 @@
用户上下文
------------
-用户上下文是指当您从系统调用或其他trap进入时:就像用户空间一样,您可以被更
+用户上下文是指当您从系统调用或其他陷阱进入时:就像用户空间一样,您可以被更
重要的任务和中断抢占。您可以通过调用 :c:func:`schedule()` 进行睡眠。
.. note::
@@ -58,7 +58,7 @@
.. warning::
请注意,如果您禁用了抢占或软中断(见下文),:c:func:`in_interrupt()` 会
- 返回假真值。
+ 返回假阳性。
硬件中断(Hard IRQs)
----------------------
@@ -72,7 +72,7 @@
.. warning::
- 请注意,如果中断被禁用,这将返回假真值(见下文)。
+ 请注意,如果中断被禁用,这将返回假阳性(见下文)。
软件中断上下文:软中断(Softirqs)与子任务(Tasklets)
-------------------------------------------------------
@@ -84,7 +84,7 @@
部”(BHs)机制,无法利用多个CPU的优势。在从那些一团糟的就电脑切换过来后不久,
我们放弃了这个限制,转而使用“软中断”。
-``include/linux/interrupt.h`` 列出了不同的软IRQ。定时器软中断是一个非常重要
+``include/linux/interrupt.h`` 列出了不同的软中断。定时器软中断是一个非常重要
的软中断( ``include/linux/timer.h`` ):您可以注册它以在给定时间后为您调用
函数。
@@ -104,7 +104,7 @@
.. warning::
注意,如果持有 :ref:`bottom half lock <local_bh_disable_zh>` 锁,这将返回
- 假真值。
+ 假阳性。
一些基本规则
================
@@ -146,7 +146,7 @@ Linux内核是可移植的
如果您的程序所做的只是读取或写入一些参数,请考虑实现 :c:func:`sysfs()` 接口。
-在输入输出控制中,您处于进程的用户上下文。出现错误时,返回一个否定的错误参数
+在输入输出控制中,您处于进程的用户上下文。出现错误时,返回一个负的错误参数
(errno,请参阅 ``include/uapi/asm-generic/errno-base.h`` 、
``include/uapi/asm-generic/errno.h`` 和 ``include/linux/errno.h`` ),否则返
回0。
@@ -188,7 +188,7 @@ Provide mechanism not policy”。
``GFP_ATOMIC`` 的内存分配函数。
您应该始终打开 ``CONFIG_DEBUG_ATOMIC_SLEEP`` 项来编译内核,如果您违反这些
-规则,它将警告您。如果你 **真的** 违反了规则,你最终会锁住你的框框。
+规则,它将警告您。如果你 **真的** 违反了规则,你最终会锁住你的电脑。
真的会这样。
@@ -250,8 +250,8 @@ Provide mechanism not policy”。
【是的,这个愚蠢的接口真心让我尴尬。火爆的口水仗大概每年都会发生。
—— Rusty Russell】
-函数可以隐式睡眠。它不应该在用户上下文之外调用(没有意义)、调用时禁用中断或
-获得自旋锁。
+这些函数可以隐式睡眠。它不应该在用户上下文之外调用(没有意义)、调用时禁用中断
+或获得自旋锁。
:c:func:`kmalloc()`/:c:func:`kfree()`
-------------------------------------
@@ -443,7 +443,7 @@ CPU上运行。
调用 :c:func:`wake_up()` ( ``include/linux/wait.h`` ),它将唤醒队列中的所有
进程。例外情况:如果有一个进程设置了 ``TASK_EXCLUSIVE`` ,队列的其余部分将不
-会被唤醒。这个基本函数的其他变体也可以在同一个头中使用。
+会被唤醒。这个基本函数的其他变体也可以在同一个头文件中使用。
原子操作
=========
@@ -517,7 +517,7 @@ Documentation/core-api/symbol-namespaces.rst 。
双向链表 ``include/linux/list.h``
-----------------------------------
-内核头中曾经有三组链表程序,但这一组是赢家。如果你对一个单链表没有特别迫切的
+内核头文件中曾经有三组链表程序,但这一组是赢家。如果你对一个单链表没有特别迫切的
需求,那么这是一个不错的选择。
通常 :c:func:`list_for_each_entry()` 很有用。
@@ -531,7 +531,7 @@ Documentation/core-api/symbol-namespaces.rst 。
使用 :c:func:`ERR_PTR()` ( ``include/linux/err.h`` )将负错误值编码到指针中,
然后使用 :c:func:`IS_ERR()` 和 :c:func:`PTR_ERR()` 将其再取出:避免为错误值
-使用单独的指针参数。难顶,但是个很好的方式。
+使用单独的指针参数。挺讨厌的,但的确是个好方式。
破坏编译
----------
diff --git a/Documentation/translations/zh_CN/kernel-hacking/index.rst b/Documentation/translations/zh_CN/kernel-hacking/index.rst
index e356d72a9f05..df530de2278d 100644
--- a/Documentation/translations/zh_CN/kernel-hacking/index.rst
+++ b/Documentation/translations/zh_CN/kernel-hacking/index.rst
@@ -8,9 +8,9 @@
吴想成 Wu XiangCheng <[email protected]>
-========================
-内核操弄(Hacking)指南
-========================
+=============
+内核骇客指南
+=============
.. toctree::
:maxdepth: 2