embedded linux kernel make with compressed boot.pdf

Upload: mochamad-rizal-jauhari

Post on 06-Jul-2018

234 views

Category:

Documents


0 download

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

    .

    .

    .