2. The Boot Loader

  • ELF : Executable Linkable Format
  • ELF binary
    • ELF header
    • program header table : load될 program section의 list를 담고 있다.
    • program sections : .text .rodata .data .bss …
  • VMA (Virtual Memory Address) : Link address. 해당 section이 load 되어야 하는 주소
  • LMA (Load Memory Address) : Load address. 해당 section이 실행될 주소

  • Boot sector의 load address와 link address는 같다 (0x7c00)
  • Kernel의 load address와 link address는 다르다
    • load address : 0x00100000 - boot loader가 실제로 커널을 올리는 physical memory address (ROM BIOS의 바로 위)
    • link address : 0xf0100000 or 0x80100000 - 커널 코드가 실행될 곳
  • e_entry in ELF header : 프로그램의 entry point의 link address