Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a403fddcaf54610f

Jump to content

Draft:Linux kernel build system

From Wikipedia, the free encyclopedia

The Linux kernel build system is the process by which the Linux kernel is compiled.[1]

Kconfig

[edit]

[2][3][4]

Linux kernel build system
ReleaseOctober 30, 2002; 23 years ago (2002-10-30)
Included withLinux kernel, coreboot, Das U-Boot, Zephyr (operating system)
PredecessorConfiguration 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]

Configuration

[edit]
menuconfig
Written inC
Operating systemLinux
TypeBuild automation tool
LicenseGNU General Public License
Websitewww.kernel.org

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]
  1. ↑ https://www.kernel.org/doc/html/v7.2/kbuild/index.html
  2. ↑ https://elias-kuiter.de/torte-research/
  3. ↑ https://dl.acm.org/doi/abs/10.5555/2392896.2392897
  4. ↑ https://dl.acm.org/doi/10.1002/smr.1595
  5. ↑ "Development kernel 2.5.45 released". LWN.net. 31 October 2002. Retrieved 15 August 2026.
  6. 1 2 https://www.kernel.org/doc/html/v7.2/kbuild/kconfig.html
  7. ↑ "Kconfig in coreboot". coreboot Documentation. coreboot. Retrieved 15 August 2026.
  8. ↑ "Kconfig in U-Boot". Das U-Boot Documentation. The U-Boot Project. Retrieved 15 August 2026.
  9. ↑ https://docs.zephyrproject.org/latest/build/kconfig/extensions.html
  10. ↑ "The Buildroot user manual". Buildroot. § 18.13, Infrastructure for packages using kconfig for configuration files. Retrieved 15 August 2026.
  11. ↑ https://www.kernel.org/doc/html/v7.2/admin-guide/README.html#configuring-the-kernel