+++ title = "xpost: Dynamic linker studies (dynld)" [taxonomies] tags = ["elf", "linux", "x86"] +++ This is a cross post to some **dynamic linker studies** that I did in the past and hosted on github [>> dynld <<][dynld]. The focus was to understand the **process initialization** and to implement a minimal **dynamic linker**, which can run a binary with a single shared library dependency. Minimal, because the linker just implements what is required to explore the concepts of dynamic linking. In the repository the studies are structured as: - [ch1][dynld-ch1]: introduction to dynamic linking - [ch2][dynld-ch2]: exploring initial process state - [ch3][dynld-ch3]: create a skeleton for the dynamic linker - [ch4][dynld-ch4]: build the final dynamic linker (which can load a binary with a single shared library dependency) All the experiments target the Linux (x86_64) environment, however going to a different ISA, e.g Linux (arm) can be achieved quiet "easily" once the general concepts are understood. [dynld]: https://github.com/johannst/dynld [dynld-ch1]: https://github.com/johannst/dynld/tree/main/01_dynamic_linking [dynld-ch2]: https://github.com/johannst/dynld/tree/main/02_process_init [dynld-ch3]: https://github.com/johannst/dynld/tree/main/03_hello_dynld [dynld-ch4]: https://github.com/johannst/dynld/tree/main/04_dynld_nostd