diff options
author | Johannes Stoelp <johannes.stoelp@gmail.com> | 2023-01-13 15:29:13 +0100 |
---|---|---|
committer | Johannes Stoelp <johannes.stoelp@gmail.com> | 2023-01-13 15:29:13 +0100 |
commit | 68a2bc627a9b1a961d9fe4a05b04eed82715ca40 (patch) | |
tree | b48f6155bdafbfc6a6b4e525a0ab5fb872f49f0a /content | |
parent | e3c00cb594a76ed5ba7e20bd2bd66edf05acc005 (diff) | |
download | blog-68a2bc627a9b1a961d9fe4a05b04eed82715ca40.tar.gz blog-68a2bc627a9b1a961d9fe4a05b04eed82715ca40.zip |
xpost: dynld
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 |