Configuration Menu Language (CML) was used, in Linux kernel versions prior to 2.5.45, to configure the values that determine the composition and exact functionality of the kernel. Many possible variations in kernel functionality can exist; and customization is possible, for instance for the specifications of the exact hardware it will run on. It can also be tuned for administrator preferences.
CML was written by Raymond Chen in 1993.[1] Its question-and-answer interface allowed systematic selection of particular behaviors without editing multiple system files.
Eric S. Raymond wrote a menu-driven module named CML2 to replace it, but it was officially rejected. Linus Torvalds attributed the rejection in a 2007 lkml.org post to a preference for small incremental changes, and concern that the maintainer had not been involved in the rewrite. "You can't just...go do your own thing and expect it to be merged," he said, noting that Raymond "left with a splash" over the rejection.[2]
LinuxKernelConf replaced CML in kernel version 2.5.45, and remains in use for the 4.0 kernel.[3]