Êíèãà: Embedded Linux Primer: A Practical, Real-World Approach

4.2.3. The Kernel Proper: vmlinux

4.2.3. The Kernel Proper: vmlinux

Notice this line in Listing 4-2 :

LD /arch/arm/boot/compressed/vmlinux

The vmlinux file is the actual kernel proper. It is a fully stand-alone, monolithic image. No unresolved external references exist within the vmlinux binary. When caused to execute in the proper context (by a bootloader designed to boot the Linux kernel), it boots the board on which it is running, leaving a completely functional kernel.

In keeping with the philosophy that to understand a system one must first understand its parts, let's look at the construction of the vmlinux kernel object. Listing 4-3 reproduces the actual link stage of the build process that resulted in the vmlinux ELF object. We have formatted it with line breaks (indicated by the UNIX line-continuation character, '') to make it more readable, but otherwise it is the exact output produced by the vmlinux link step in the build process from Listing 4-2. If you were building the kernel by hand, this is the link command you would issue from the command line.

Listing 4-3. Link Stage: vmlinux

xscale_be-ld -EB  -p --no-undefined -X -o vmlinux   
-T arch/arm/kernel/vmlinux.lds                      
arch/arm/kernel/head.o                              
arch/arm/kernel/init_task.o                         
init/built-in.o                                     
--start-group                                       
usr/built-in.o                                      
arch/arm/kernel/built-in.o                          
arch/arm/mm/built-in.o                              
arch/arm/common/built-in.o                          
arch/arm/mach-ixp4xx/built-in.o                     
arch/arm/nwfpe/built-in.o                           
kernel/built-in.o                                   
mm/built-in.o                                       
fs/built-in.o                                       
ipc/built-in.o                                      
security/built-in.o                                 
crypto/built-in.o                                   
lib/lib.a                                           
arch/arm/lib/lib.a                                  
lib/built-in.o                                      
arch/arm/lib/built-in.o                             
drivers/built-in.o                                  
sound/built-in.o                                    
net/built-in.o                                      
--end-group                                         
.tmp_kallsyms2.o

Îãëàâëåíèå êíèãè


Ãåíåðàöèÿ: 0.032. Çàïðîñîâ Ê ÁÄ/Cache: 0 / 0
ïîäåëèòüñÿ
Ââåðõ Âíèç