From d59dca0ee1983057f3f03e588fd50f9488ae9fa7 Mon Sep 17 00:00:00 2001 From: johannst Date: Wed, 25 Nov 2020 17:48:51 +0100 Subject: ch01 list few dyn linker tasks --- 01_dynamic_linking/README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/01_dynamic_linking/README.md b/01_dynamic_linking/README.md index 6c0dd5d..b80d055 100644 --- a/01_dynamic_linking/README.md +++ b/01_dynamic_linking/README.md @@ -20,12 +20,15 @@ over to the mapped program which then executes. ``` A dynamically linked program on the other hand needs to specify a `dynamic -linker` which is basically a runtime interpreter. The Linux Kernel will additionally load -that interpreter into the virtual address space and give control to the -interpreter rather than the user program. -The interpreter will prepare the execution environment for the user program by -for example loading dependencies and running initialization routines. After the -environment is set up the dynamic linker passes control to the user program. +linker` which is basically a runtime interpreter. The Linux Kernel will +additionally load that interpreter into the virtual address space and give +control to the interpreter rather than the user program. +The interpreter will prepare the execution environment for the user program +and pass control to it afterwards. +Typical tasks of the interpreter are: +- loading shared objects into memory +- performing re-location +- running initialization routines ```text @vm @vm | | | | -- cgit v1.2.3