Draft:Linux kernel build system
The Linux kernel build system is the process by which the Linux kernel is compiled.[1]
Kconfig
[edit]| Linux kernel build system | |
|---|---|
| Release | October 30, 2002 |
| Included with | Linux kernel, coreboot, Das U-Boot, Zephyr (operating system) |
| Predecessor | Configuration Menu Language |
Kconfig is an interpreted domain-specific language for specifying software configurability, originally introduced in 2002 as part of version 2.4.45 of the Linux kernel[5] and succeeding Configuration Menu Language. The graphical frontend is provided by the menuconfig tool for user selection of configuration options.
Kconfig is used to specify configuration options available to the user.[6] For example, the following line specifies a boolean option with the frontend prompt "Networking support":
bool "Networking support"
Adoption by other software
[edit]Kconfig has also been adopted by other notable software such as the coreboot firmware,[7] the Das U-Boot bootloader,[8] Zephyr[9], as well as BusyBox.[10]
It is not uncommon for these projects to add their own extensions to the Kconfig language used in the Linux kernel; for example, Zephyr's version of Kconfig adds support for pathname globbing in source statements.
Kbuild
[edit]This section is empty. You can help by adding to it. (September 2026) |
Configuration
[edit]| menuconfig | |
|---|---|
menuconfig for Linux version 4.4.2 | |
| Written in | C |
| Operating system | Linux |
| Type | Build automation tool |
| License | GNU General Public License |
| Website | www |
The Linux kernel can be configured using a few similar tools, known collectively as *config (as they are all Makefile targets ending in config). These include config (a plain text question-and-answer utility), menuconfig and nconfig (using text-based GUI), xconfig (using Qt), gconfig (using GTK), and oldconfig (asks only about questions not already answered; used when upgrading from one kernel version to another).[11][6]
The *config utilities use the Kconfig language internally.
References
[edit]- ↑ https://www.kernel.org/doc/html/v7.2/kbuild/index.html
- ↑ https://elias-kuiter.de/torte-research/
- ↑ https://dl.acm.org/doi/abs/10.5555/2392896.2392897
- ↑ https://dl.acm.org/doi/10.1002/smr.1595
- ↑ "Development kernel 2.5.45 released". LWN.net. 31 October 2002. Retrieved 15 August 2026.
- 1 2 https://www.kernel.org/doc/html/v7.2/kbuild/kconfig.html
- ↑ "Kconfig in coreboot". coreboot Documentation. coreboot. Retrieved 15 August 2026.
- ↑ "Kconfig in U-Boot". Das U-Boot Documentation. The U-Boot Project. Retrieved 15 August 2026.
- ↑ https://docs.zephyrproject.org/latest/build/kconfig/extensions.html
- ↑ "The Buildroot user manual". Buildroot. § 18.13, Infrastructure for packages using kconfig for configuration files. Retrieved 15 August 2026.
- ↑ https://www.kernel.org/doc/html/v7.2/admin-guide/README.html#configuring-the-kernel