To help you understand the breakdown of functionality in the kernel source tree, Table 4-1 lists each component in Figure 4-1, together with a short description of each binary element that makes up the vmlinux image.
Table 4-1. vmlinux Image Components Description
Component | Description |
---|---|
arch/arm/kernel/head.o | Kernel architecture-specific startup code. |
init_task.o | Initial thread and task structs required by kernel. |
init/built-in.o | Main kernel-initialization code. See Chapter 5. |
usr/built-in.o | Built-in initramfs image. See Chapter 5. |
arch/arm/kernel/built-in.o | Architecture-specific kernel code. |
arch/arm/mm/built-in.o | Architecture-specific memory-management code. |
arch/arm/common/built-in.o | Architecture-specific generic code. Varies by architecture. |
arch/arm/mach-ixp4xx/built-in.o | Machine-specific code, usually initialization. |
arch/arm/nwfpe/built-in.o | Architecture-specific floating point-emulation code. |
kernel/built-in.o | Common components of the kernel itself. |
mm/built-in.o | Common components of memory-management code. |
ipc/built-in.o | Interprocess communications, such as SysV IPC. |
security/built-in.o | Linux security components. |
lib/lib.a | Archive of miscellaneous helper functions. |
arch/arm/lib/lib.a | Architecture-specific common facilities. Varies by architecture. |
lib/built-in.o | Common kernel helper functions. |
drivers/built-in.o | All the built-in driversnot loadable modules. |
sound/built-in.o | Sound drivers. |
net/built-in.o | Linux networking. |
.tmp_kallsyms2.o | Symbol table. |
When we speak of the kernel proper, this vmlinux image is being referenced. As mentioned earlier, very few platforms boot this image directly. For one thing, it is almost universally compressed. At a bare minimum, a bootloader must decompress the image. Many platforms require some type of stub bolted onto the image to perform the decompression. Later in Chapter 5, you will learn how this image is packaged for different architectures, machine types, and bootloaders, and the requirements for booting it.