diff options
Diffstat (limited to 'content')
-rw-r--r-- | content/2023-01-13-xpost-dynld.md | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/content/2023-01-13-xpost-dynld.md b/content/2023-01-13-xpost-dynld.md new file mode 100644 index 0000000..4340cfc --- /dev/null +++ b/content/2023-01-13-xpost-dynld.md @@ -0,0 +1,31 @@ ++++ +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 |