Moin moin...
ich beschäftige mich seit längerem mal wieder mit dem Thema und habe direkt ein Problem, bzw. eine Frage...
Wie sieht es mit der Sektion .data aus? Muss diese immer da sein? Könnte das nicht existieren der Sektion .data eventuell auch mit einem Fehler im Linkerscript zusammen hängen?
mein objdump sieht nämlich so aus, und das hat mich doch etwas verwirrt, da nur .text und .bss vorhanden sind:
kernel.elf: file format elf32-i386
kernel.elf
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0010000c
Program Header:
LOAD off 0x00001000 vaddr 0x00100000 paddr 0x00100000 align 2**12
filesz 0x0000002c memsz 0x00002030 flags rwx
STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x00000000 memsz 0x00000000 flags rwx
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000002c 00100000 00100000 00001000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .bss 00002004 0010002c 0010002c 0000102c 2**2
ALLOC
SYMBOL TABLE:
00100000 l d .text 00000000 .text
0010002c l d .bss 00000000 .bss
0010202c l .bss 00000000 _sys_stack
00100019 l .text 00000000 stop
00000000 l df *ABS* 00000000 init.c
00100000 g *ABS* 00000000 kernel_phys_start_address
0010002c g .bss 00000000 _sbss
00102030 g *ABS* 00000000 kernel_end_address
00102030 g .bss 00000000 _ebss
00100000 g *ABS* 00000000 KERNEL_VMA
00000000 g *ABS* 00000000 KERNEL_VOFFSET
00002030 g *ABS* 00000000 kernel_size
00100000 g *ABS* 00000000 kernel_start_address
00100000 g *ABS* 00000000 KERNEL_LMA
0010202c g O .bss 00000004 globalData
0010000c g .text 00000000 loader
00102030 g *ABS* 00000000 kernel_phys_end_address
0010001c g F .text 00000010 vKernelInit
Viel ist nicht da. Es gibt eine C-Funktion, die nichts macht außer einer Endlosschleife und einen Startup-Code, der diese C-Funktion lädt...
Grüße Christian