aboutsummaryrefslogtreecommitdiffhomepage
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/2023-01-13-xpost-dynld.md31
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