1: Where are we?
0: PID 1. In userspace.
1: What just happened?
0: The boot process. It just finished.
1: Why don't I remember---
0: Common side effect of `execve`. Exec replaces the memory image of whatever was going on before.
1: I can't remember what was going on before.
0: Well fortunately that doesn't matter. The kernel exec'ed init. And now we're in init, so we can get down to business.
```
[Requesting program interpreter: ld.so]
```
1: What was that message just now?
0: Uh oh, one sec.
```
~ # ldd $0
vdso.so (0x00007f6dc112c000)
libc.so => /lib/libc.so (0x00007f6dc0400000)
ld.so => /lib/ld.so (0x00007f6dc112e000)
```
0: G\*d dammit. Nevermind, we're not done yet.
1: Done with what?
0: Just follow me. `jmp el`.
```
el:
```
1: What's `el`?
0: Executing and Linking. ELF thing. Binaries these days can't actually run themselves.
1: What? Why not?
0: Long story. We'll get there. For now, I was off by one.
1: By me?
0: No no. Different one. My fault. We're in init but we're not done.
1: Where are we go----
0: Shut up and follow me. `jmp ld`.
---
```
@(意) == 意
|
@(意) == 音
|
@(音) == /ɚ/
| |
| @(意) == sound
| |
| @(意) == meaning
| |
|\ @(音) == 一
| \
| \
二 \
There are 二h二d problems in creation:
0. cache invalidation,
1. naming things,
2. off by 一二||s.
```
---
```
ld:
```
1: What did we just jump over?
0: Not now. Follow me.
goto: [[0x31-ld.so]]