37 lines
1.6 KiB
Plaintext
37 lines
1.6 KiB
Plaintext
|
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 3" vod_platform=youtube id=T4CjOB0y9nI annotator=jacebennett annotator=theinternetftw]
|
||
|
[1:16][Today: Memory]
|
||
|
[2:38][Programming = Modifying Memory]
|
||
|
[4:55][Recap of our program]
|
||
|
[5:45][Brief note on the compiler warnings]
|
||
|
[6:35][Okay: Where are the bits?]
|
||
|
[8:05][Pointers. C lets you talk about memory.]
|
||
|
[9:55][The syntax of Pointers: * and &]
|
||
|
[12:01][Memory addresses, Virtual Memory]
|
||
|
[15:11][How Virtual Memory Works]
|
||
|
[17:39][The consequences of Virtual Memory]
|
||
|
[18:40][Looking at pointers in the watch window]
|
||
|
[21:04][The memory window]
|
||
|
[22:13][Changing memory manually via the debugger]
|
||
|
[23:34][C: the power of no protection]
|
||
|
[24:23][A caveat: can't touch memory you don't own yet]
|
||
|
[25:27][Getting close to the metal is awesome]
|
||
|
[26:16][Where did this initial memory come from?]
|
||
|
[26:55][The Stack]
|
||
|
[28:11][Why the stack makes sense (calls and returns)]
|
||
|
[31:11][Let's watch the stack go]
|
||
|
[33:32][Debug mode memory cruft]
|
||
|
[36:17][Memory moving around (Stack randomization / ASLR)]
|
||
|
[38:19][Everything we'll do is about touching memory]
|
||
|
[38:38][Memory control = super powers]
|
||
|
[39:04][Where code is in memory \[n.b. watch the q&a to see this work\]]
|
||
|
[41:57][Pictures!]
|
||
|
[42:47][Making the trailer]
|
||
|
[43:45][Centimeters matter to CPUs (thanks, speed of light!)]
|
||
|
[50:35][Why it's important to know that]
|
||
|
[51:36][Applying the same idea to PCIe]
|
||
|
[52:40][Latency vs. Throughput/Bandwidth]
|
||
|
[56:09][The Cache]
|
||
|
[1:00:51][The cache miss, and the horror of... the swap!]
|
||
|
[1:03:07][One more time, today's moral: everything we do is poking memory]
|
||
|
[/video]
|