Updated documentation
All checks were successful
/ test (push) Successful in 15s

This commit is contained in:
Eduard Urbach 2025-07-05 14:43:53 +02:00
parent ec4f774b64
commit a1634554bf
Signed by: akyoto
GPG key ID: 49226B848C78F6C8

View file

@ -4,12 +4,12 @@
1. ELF header [0x00 : 0x40] 1. ELF header [0x00 : 0x40]
2. Program headers [0x40 : 0xB0] 2. Program headers [0x40 : 0xB0]
3. Padding 3. String table
4. Executable code [0x1000 : ...] 4. Section headers
5. Padding 5. Padding
6. Read-only data [0x2000 : ...] 6. Executable code [0x1000 : ...]
7. String table 7. Padding
8. Section headers 8. Read-only data [0x2000 : ...]
## Entry point ## Entry point
@ -20,16 +20,10 @@ The executables are compiled as position-independent executables (PIE). Therefor
To ensure that execution permissions are properly applied, To ensure that execution permissions are properly applied,
the code section and the data section are aligned on page boundaries. Permissions like read, write and execute can only be applied to an entire page in memory. the code section and the data section are aligned on page boundaries. Permissions like read, write and execute can only be applied to an entire page in memory.
## Initialization in Linux
ELF loader:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/binfmt_elf.c
ELF register definitions:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/include/asm/elf.h
## Links ## Links
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/binfmt_elf.c
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/include/asm/elf.h
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/elf.h - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/elf.h
- https://lwn.net/Articles/631631/ - https://lwn.net/Articles/631631/
- https://en.wikipedia.org/wiki/Executable_and_Linkable_Format - https://en.wikipedia.org/wiki/Executable_and_Linkable_Format