This repository contains studies about process initialization
and dynamic linking
on Linux(x86_64). It is mainly used for personal studies, but may be
useful to some random internet user.
All studies and discussions assume the following environment:
- Arch:
x86_64
- OS:
Linux Kernel
- System ABI:
SystemV x86_64 ABI
- BinFMT:
ELF
The studies are structured as follows:
- Ch 01 dynamic linking: Brief introduction to dynamic linking.
- Ch 02 process initialization:
Building a
no-std
executable and exploring the initial process state. - Ch 03 dynamic linker skeleton:
Building a skeleton for the dynamic linker which can run a
statically linked no-std
executable. - Ch 04 dynld no-std:
Building a dynamic linker
dynld
which can initialize the execution environment for ano-std
executable with a shared library dependency.
This project is licensed under the MIT license.