Chris Kanich
CS 484 HW3 blind code
2:16:18
Chris Kanich
APIs: the web is your computer
27:46
Chris Kanich
Adversarial Tracking on the Web: History Sniffing and FIngerprinting
20:37
Chris Kanich
Everything you should know about deadlock in three minutes or less
2:50
Chris Kanich
Everything you should know about race conditions in two minutes or less
1:54
Chris Kanich
Everything you should know about thread safety in 2 minutes or less
1:56
Chris Kanich
Using visual debugging and Factorio to understand multithreaded programs
23:45
Chris Kanich
How to understand & implement read-write locks and bounded buffers
17:06
Chris Kanich
The right tool for the job: when to use processes, when to use threads, and why!
19:31
Chris Kanich
Taking complete control: why IO multiplexing works well for webservers and GUIs.
24:18
Chris Kanich
Concurrency: the cause of, and solution to, lots of problems in computing.
23:38
Chris Kanich
Concurrency: what's good about it, what's hard about it.
15:55
Chris Kanich
what's the difference between processes, threads, and io multiplexing?
14:48
Chris Kanich
A system programmer's introduction to the world wide web
21:21
Chris Kanich
The Linux socket API explained
15:21
Chris Kanich
The Internet just plain DUNKS on the phone network. Here's why.
16:18
Chris Kanich
Playing nice with others: the ONE WEIRD TRICK that makes the whole Internet not explode
21:43
Chris Kanich
How do we make the Internet work? Like other hard problems! We break it down into smaller problems.
25:55
Chris Kanich
A system design approach to understanding what's so AWESOME about the Internet
14:22
Chris Kanich
understanding mmap, the workhorse behind keeping memory access efficient in linux
22:44
Chris Kanich
What does it take to design a memory allocator? Dynamic Memory Allocation System Design
22:32
Chris Kanich
what's in a heap? simple malloc implementation internals explained
36:07
Chris Kanich
What makes a dynamic memory allocator any good? Systems Programming Lectures
13:31
Chris Kanich
Demystifying Page Tables - Computer Systems Programming Course
34:54
Chris Kanich
Page tables for your page tables: understanding how multi level page tables work
18:00
Chris Kanich
The magic of the page fault: understanding demand paging of virtual memory in linux
20:36
Chris Kanich
Virtual Memory: why it's useful, why it's hard.
10:56
Chris Kanich
The magic of the page miss: understanding demand paging of virtual memory in linux
20:36
Chris Kanich
Virtual Memory: why it's useful, why it's hard.
10:56
Chris Kanich
Interacting with files in Linux
38:00
Chris Kanich
What's behind a file descriptor in Linux? Also, i/o redirection with dup2.
20:20
Chris Kanich
The file abstraction in Linux
12:56
Chris Kanich
Signal handling in Linux
53:32
Chris Kanich
Moving beyond fork() for process creation in Linux
1:01:56
Chris Kanich
Introduction to Processes in Linux
22:00
Chris Kanich
The four flavors of exceptions in OS kernels
15:53
Chris Kanich
But no really how does printf work? Syscalls & Exceptional Control Flow
18:40
Chris Kanich
PIC GOT PLT OMG: how does the procedure linkage table work in linux?
49:35
Chris Kanich
What's so good about dynamic linking anyway?
11:55
Chris Kanich
Linux Executable Symbol Relocation Explained
27:23
Chris Kanich
How do linkers resolve symbols? Systems Programming CS Lecture
33:19
Chris Kanich
Executable Linkers are basically just home theater setups
12:09
Chris Kanich
VSCode, Docker Desktop, and remote container based development environments
34:27
Chris Kanich
Tricks of the trade: git, GitHub, Gradescope
27:49
Chris Kanich
Tricks of the Trade: ssh
19:10
Chris Kanich
Tricks of the Trade: shells
27:44
Chris Kanich
Tricks of the trade: programming environments
16:33
Chris Kanich
"Tricks of the Trade" Module Introduction
7:34
Chris Kanich
CS 361 Systems Programming: Administrivia
18:37
Chris Kanich
Summer recording plans
3:17