Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proofread linux kernel headers install #81

Merged
merged 1 commit into from
Jun 15, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions sources/kernel/kbuild/headers_install.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
---
status: translated
status: proofread
title: "Exporting kernel headers for use by userspace"
author: Linux Kernel Community
collector: tttturtle-russ
collected_date: 20240425
translator: RutingZhang0429
translated_date: 20240510
proofread: mudongliang
proofread_date: 20240615
link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/kbuild/headers_install.rst
---


# 导出内核头文件供用户空间使用

``make headers_install`` 命令以适合用户空间程序使用的形式导出内核的头文件
``make headers_install`` 命令以适合于用户空间程序的形式导出内核头文件

Linux 内核导出的头文件描述了用户空间程序尝试使用内核服务的 API。这些内核头文件被系统的 C 库(例如 glibc 和 uClibc)用于定义可用的系统调用,以及与这些系统调用一起使用的常量和结构。C 库的头文件包括来自 ``linux`` 子目录的内核头文件。系统的 libc 头文件通常被安装在默认位置 /usr/include,而内核头文件则在该位置的子目录下(尤其是 /usr/include/linux 和 /usr/include/asm)。
Linux 内核导出的头文件描述了用户空间程序尝试使用内核服务的 API。这些内核头文件被系统的 C 库(例如 glibc 和 uClibc)用于定义可用的系统调用,以及与这些系统调用一起使用的常量和结构。C 库的头文件包括来自 ``linux`` 子目录的内核头文件。系统的 libc 头文件通常被安装在默认位置 /usr/include,而内核头文件在该位置的子目录中(主要是 /usr/include/linux 和 /usr/include/asm)。

内核头文件向后兼容,但不向前兼容。这意味着使用旧内核头文件和C库构建的程序可以在新内核上运行(尽管它可能无法访问新功能),但使用新内核头文件构建的程序可能无法在旧内核上运行。
内核头文件向后兼容,但不向前兼容。这意味着使用旧内核头文件的 C 库构建的程序可以在新内核上运行(尽管它可能无法访问新特性),但使用新内核头文件构建的程序可能无法在旧内核上运行。

``make headers_install`` 命令可以在内核源代码的顶层目录中运行(或使用标准的树外构建)。它接受两个可选参数:
```
Expand All @@ -28,9 +30,8 @@ ARCH 表明为其生成头文件的架构,默认为当前架构。导出内核
ls -d include/asm-* | sed 's/.*-//'
```

INSTALL_HDR_PATH 表明要安装头文件的位置,默认为 ``./usr``。
INSTALL_HDR_PATH 表明头文件的安装位置,默认为 ``./usr``。

一个 ``include`` 目录会自动被创建在 INSTALL_HDR_PATH 中,头文件会被安装在 INSTALL_HDR_PATH/include 中。

内核头文件导出基础设施由 David Woodhouse <<[email protected]>> 维护。
该命令会在 INSTALL_HDR_PATH 中自动创建创建一个 ``include`` 目录,而头文件会被安装在 INSTALL_HDR_PATH/include 中。

内核头文件导出的基础设施由 David Woodhouse <<[email protected]>> 维护。
Loading