You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
/* Based on Bare Bones tutorial on OSDev wiki */ |
|
|
|
/* The bootloader will look at this image and start execution at the symbol |
|
designated as the entry point. */ |
|
ENTRY(_start) |
|
|
|
/* Tell where the various sections of the object files will be put in the final |
|
kernel image. */ |
|
SECTIONS |
|
{ |
|
/* Begin putting sections at 1 MiB, a conventional place for kernels to be |
|
loaded at by the bootloader. */ |
|
. = 1M; |
|
|
|
/* First put the multiboot header, as it is required to be put very early |
|
early in the image or the bootloader won't recognize the file format. |
|
Next we'll put the .text section. */ |
|
.text BLOCK(4K) : ALIGN(4K) |
|
{ |
|
*(.multiboot) |
|
*(.text) |
|
} |
|
|
|
/* Read-only data. */ |
|
.rodata BLOCK(4K) : ALIGN(4K) |
|
{ |
|
*(.rodata) |
|
} |
|
|
|
/* Read-write data (initialized) */ |
|
.data BLOCK(4K) : ALIGN(4K) |
|
{ |
|
*(.data) |
|
} |
|
|
|
/* Read-write data (uninitialized) and stack */ |
|
.bss BLOCK(4K) : ALIGN(4K) |
|
{ |
|
*(COMMON) |
|
*(.bss) |
|
} |
|
|
|
/* The compiler may produce other sections, by default it will put them in |
|
a segment with the same name. Simply add stuff here as needed. */ |
|
}
|
|
|