aboutsummaryrefslogtreecommitdiff
path: root/03_hello_dynld
diff options
context:
space:
mode:
Diffstat (limited to '03_hello_dynld')
-rw-r--r--03_hello_dynld/README.md15
1 files changed, 8 insertions, 7 deletions
diff --git a/03_hello_dynld/README.md b/03_hello_dynld/README.md
index e79e13a..bcee3f4 100644
--- a/03_hello_dynld/README.md
+++ b/03_hello_dynld/README.md
@@ -65,12 +65,12 @@ user_entry();
## User program
-The next step is to create the user program that will be loaded by
-the dynamic linker created in the previous section.
-For now the functionality of the user program is not important, but it
-must full-fill the requirements no to depend on any shared libraries or
+The next step is to create the user program that will be jumped to by the
+dynamic linker created above.
+For now the functionality of the user program is not really important, but it
+must full-fill the requirements to not depend on any shared libraries or
contain any relocations.
-For this purpose the following simple `no-std` program is used:
+For this purpose the following `no-std` program is used:
```c
#include <syscall.h>
#include <io.h>
@@ -90,7 +90,8 @@ section. This can be done with the following command line switch:
```bash
gcc ... -Wl,--dynamic-linker=<path> ...
```
-> The full compile and link command can be seen in the [Makefile - main](./Makefile).
+> The full compile and link command can be seen in the [Makefile - main
+> target](./Makefile).
The result can be seen in the `.interp` sections referenced by the
`PT_INTERP` segment in the program headers:
@@ -112,7 +113,7 @@ Program Headers:
```
As discussed in [01_dynamic_linking](../01_dynamic_linking/README.md)
-the `PT_INTERP` segment tells to Linux Kernel which dynamic linker to
+the `PT_INTERP` segment tells the Linux Kernel which dynamic linker to
load to handle the startup of the user executable.
When running the `./main` user program, the `dynld.so` will be loaded