2:38Programming = Modifying Memory
2:38Programming = Modifying Memory
2:38Programming = Modifying Memory
5:45Brief note on the compiler warnings
5:45Brief note on the compiler warnings
5:45Brief note on the compiler warnings
6:35Okay: Where are the bits?
6:35Okay: Where are the bits?
6:35Okay: Where are the bits?
8:05Pointers. C lets you talk about memory.
8:05Pointers. C lets you talk about memory.
8:05Pointers. C lets you talk about memory.
9:55The syntax of Pointers: * and &
9:55The syntax of Pointers: * and &
9:55The syntax of Pointers: * and &
12:01Memory addresses, Virtual Memory
12:01Memory addresses, Virtual Memory
12:01Memory addresses, Virtual Memory
15:11How Virtual Memory Works
15:11How Virtual Memory Works
15:11How Virtual Memory Works
17:39The consequences of Virtual Memory
17:39The consequences of Virtual Memory
17:39The consequences of Virtual Memory
18:40Looking at pointers in the watch window
18:40Looking at pointers in the watch window
18:40Looking at pointers in the watch window
22:13Changing memory manually via the debugger
22:13Changing memory manually via the debugger
22:13Changing memory manually via the debugger
23:34C: the power of no protection
23:34C: the power of no protection
23:34C: the power of no protection
24:23A caveat: can't touch memory you don't own yet
24:23A caveat: can't touch memory you don't own yet
24:23A caveat: can't touch memory you don't own yet
25:27Getting close to the metal is awesome
25:27Getting close to the metal is awesome
25:27Getting close to the metal is awesome
26:16Where did this initial memory come from?
26:16Where did this initial memory come from?
26:16Where did this initial memory come from?
28:11Why the stack makes sense (calls and returns)
28:11Why the stack makes sense (calls and returns)
28:11Why the stack makes sense (calls and returns)
31:11Let's watch the stack go
31:11Let's watch the stack go
31:11Let's watch the stack go
33:32Debug mode memory cruft
33:32Debug mode memory cruft
33:32Debug mode memory cruft
36:17Memory moving around (Stack randomization / ASLR)
36:17Memory moving around (Stack randomization / ASLR)
36:17Memory moving around (Stack randomization / ASLR)
38:19Everything we'll do is about touching memory
38:19Everything we'll do is about touching memory
38:19Everything we'll do is about touching memory
38:38Memory control = super powers
38:38Memory control = super powers
38:38Memory control = super powers
39:04Where code is in memory [n.b. watch the q&a to see this work]
39:04Where code is in memory [n.b. watch the q&a to see this work]
39:04Where code is in memory [n.b. watch the q&a to see this work]
43:45Centimeters matter to CPUs (thanks, speed of light!)
43:45Centimeters matter to CPUs (thanks, speed of light!)
43:45Centimeters matter to CPUs (thanks, speed of light!)
50:35Why it's important to know that
50:35Why it's important to know that
50:35Why it's important to know that
51:36Applying the same idea to PCIe
51:36Applying the same idea to PCIe
51:36Applying the same idea to PCIe
52:40Latency vs. Throughput/Bandwidth
52:40Latency vs. Throughput/Bandwidth
52:40Latency vs. Throughput/Bandwidth
1:00:51The cache miss, and the horror of... the swap!
1:00:51The cache miss, and the horror of... the swap!
1:00:51The cache miss, and the horror of... the swap!
1:03:07One more time, today's moral: everything we do is poking memory
1:03:07One more time, today's moral: everything we do is poking memory
1:03:07One more time, today's moral: everything we do is poking memory