From 48dbe3390c675be71c59d87a6088cb2f61acc48d Mon Sep 17 00:00:00 2001 From: johannst Date: Wed, 28 Apr 2021 23:29:03 +0200 Subject: updated README with repo description --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 1b33861..372cd06 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,26 @@ # dynld +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: +1. [Ch 01 dynamic linking](./01_dynamic_linking): + Brief introduction to dynamic linking. +1. [Ch 02 process initialization](./02_process_init): + Building a `no-std` executable and exploring the initial process state. +1. [Ch 03 dynamic linker skeleton](./03_hello_dynld): + Building a skeleton for the dynamic linker which can run a `statically + linked no-std` executable. +1. [Ch 04 dynld no-std](./04_dynld_nostd): + Building a dynamic linker `dynld` which can initialize the execution + environment for a `no-std` executable with a shared library dependency. + ## License This project is licensed under the [MIT](LICENSE) license. -- cgit v1.2.3