Top Banner

of 12

Embedded Linux Kernel make with compressed boot.pdf

Jul 06, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    1/12

    Embedded Linux:Embedded Linux:

    Kernel MakeKernel Make (compressed with boot)(compressed with boot)

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    2/12

    http://network.hanbat.ac.kr Embedded Linux 2

      kernelkernel

    in $(!"#%)

    & make

    '' $(!"#%) 

    linux ( 

    mlinux) 

    .

    & ile linux

    EL* +2'bit L,- executable danced %,0 Machines %M ersion 1staticall linked not stripped

     

    kernel : *ile se3uence

    head'arm., orhead'arm'dsc21., arch/armnommu/kernel

    main.c init/

    ..

    .

    .

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    3/12

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    4/12

    http://network.hanbat.ac.kr Embedded Linux =

    Linux architecture'independent initiali>ationLinux architecture'independent initiali>ation

    %eer http://www.linuxdoc.or9/?!@!/Linux'nit'?!@!'A.html

     

    main.c/start8kernel() 

    setup8arch() setup8processor()

    setup8architecture(machine8arch8tpe)

    init8bootmem8node(B) ree8bootmem(B) pa9in98init(B)

    trap8init() init8%7() /C initiali>e %7 handler C/ sched8init()

    sotir38init()

    time8init()D /C initiali>e timer C/

    console8init()

    init8modules() kmem8cache8init() mem8init()

    mount initrd (mabe)

    B

    cpu8idle()D

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    5/12

    http://network.hanbat.ac.kr Embedded Linux A

      kernelkernel (not completed)(not completed)

    *(.text.init)8stext 88init8be9in

    *(.proc.info)

    88proc8ino8be9in

    *(.arch.info)88proc8ino8end 88arch8ino8be9in

    *(.data.init)

    *(.setup.init)

    *(.initcall.init)

    88arch8ino8end

    88setup8start

    88setup8end 88initcall8start

    x1

    x =4F.init

    *(.text)8text

    ...

    *(__ex_table)

    88start888ex8table

    *(__ksymtab)88stop888ex8table 88start888ksmtab

    *(__kallsyms)88stop888ksmtab 88start888kallsms

    *(.got)88stop888kallsms

    8etext

    .text

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    6/12

    http://network.hanbat.ac.kr Embedded Linux

    boot/compressed/mlinuxboot/compressed/mlinux   boot/>ma9eboot/>ma9e

     

    kernel

    (pi99.o)

    misc.o

    head.o

    o b Gcop 2

    9 > ip.  ld

     

    ,

    in ...boot/compressed/

    $(!"#%)/arch/armnommu/boot/compressed/mlinux

    >ma9eo b Gcop

     2

    $(!"#%)/arch/armnommu/boot/>ma9e

    head'arm., orhead'arm'dsc21.,

    main.c

    ..

    .

     

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    7/12http://network.hanbat.ac.kr Embedded Linux

    $(!"#%)/arch/armnommu/boot/compressed/mlinux$(!"#%)/arch/armnommu/boot/compressed/mlinux

    C(.start)C(.text)C(.ixup)

    C(.9nu.warnin9)C(.rodata)

    C(.rodata.C)C(.9lue8:)C(.9lue8:t)

    L!#8##% 8load8addr

    EH8,% 8text 8start

    pi99.oinput8data

    C(.data)input8data8end 8etext

    text

    data

    C(.bss)8edata -,,8,% 88bss8start

    bss

    C(.stack)8end

    stack

    user8stack sp (initiall)

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    8/12http://network.hanbat.ac.kr Embedded Linux I

    *lash ma9e*lash ma9e

    >$ma9e  l d kernel.o

    initrd

       l  d

    initrd.o

    init.o lash kernel.o initrd.o%M kernel.oin .../boot/bootp/

    ...boot/bootp/bootp(*lash   )

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    9/12http://network.hanbat.ac.kr Embedded Linux F

    !erall *lash ma9e!erall *lash ma9e

     

    kernel(pi99.o)

    misc.o

    head.o 

    ,

    in ...boot/compressed/

    init.olash kernel.o initrd.o%M

    kernel.o

    in .../boot/bootp/

    initrd.o

    kernel.ohead'arm., or

    head'arm'dsc21.,

    main.c

    .

    .

    .

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    10/12http://network.hanbat.ac.kr Embedded Linux 14

    -ootin9 ,cenario (1)-ootin9 ,cenario (1)

     

    kernel(pi99.o)

    misc.o

    head.o 

    ,

    in ...boot/compressed/

    init.olash kernel.o initrd.o

    %M kernel.oin .../boot/bootp/

    initrd.o

    kernel.o

    bootblock

    *lash %M

    (1)

    head'arm., or

    head'arm'dsc21.,

    main.c

    .

    .

    .

    (1) power'on boot block pc

    lash init.o.

    (pc r454 r15Juni3uearchitecture K MM6 o #'cacheo .

    head'arm., .)

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    11/12http://network.hanbat.ac.kr Embedded Linux 11

    -ootin9 ,cenario (2)-ootin9 ,cenario (2)

     kernel

    (pi99.o)

    misc.o

    head.o 

    ,

    in ...boot/compressed/

    init.o

    initrd.o

    kernel.o

    bootblock

    *lash %M

     

    kernel(pi99.o)

    misc.o

    head.o

    initrd.o

    (2 )

    (2) *lash init.o kernel.o

    initrd.o %M kernel.o

    .

    head'arm., or

    head'arm'dsc21.,

    main.c

    .

    .

    .

  • 8/17/2019 Embedded Linux Kernel make with compressed boot.pdf

    12/12http://network.hanbat.ac.kr Embedded Linux 12

    -ootin9 ,cenario (+)-ootin9 ,cenario (+)

    (+) head.o  

    .

     

    kernel(pi99.o)

    misc.o

    head.o 

    ,

    in ...boot/compressed/

    init.o

    initrd.o

    kernel.o

    bootblock

    *lash %M

     

    kernel

    (pi99.o)

    misc.o

    head.o

    initrd.o

     

    kernel

    (+)

    head'arm., orhead'arm'dsc21.,

    main.c

    .

    .

    .