Save this video — free

ECE344 Fall 2026 (Sec 1) Lec 3 - Libraries

Jon Eyolfson · 53:02 · Watch on YouTube

ECE344 Fall 2026 (Sec 1) Lec 3 - Libraries Watch on YouTube →

Overview

Jon Eyolfson defines an operating system as a kernel plus the libraries required by its applications, explaining why Android and Debian can share the Linux kernel yet remain distinct systems. He compares dynamic `.so` and static `.a` libraries, demonstrates how changing a C struct’s layout can break a dynamic library’s ABI, and shows how tools such as `ldd`, `LD_PRELOAD`, Valgrind, and AddressSanitizer help inspect programs and memory use.

Key takeaways

Chapters

0:00 Operating Systems Include Application Libraries, Not Just Kernels
10:59 Dynamic Libraries Share Code at Runtime
15:00 Static Libraries Embed Code and Trade Updates for Independence
19:26 C Struct Layout Is Part of a Dynamic Library’s ABI
25:50 A Mismatched Point Library Reverses Direct Field Reads
34:00 Opaque Structs Protect Library Internals from ABI Breakage
36:20 Semantic Versioning Signals Compatibility Changes
38:17 LD_PRELOAD and Memory Tools Reveal Allocation Behavior
45:51 C Library Functions Buffer and Extend System Calls
48:09 Atexit Cleanup and the Costs of Library Compatibility

Keep these chapters and the full searchable transcript in your own library.

Summary, takeaways, and chapters were generated by AI from the video's transcript and may contain errors. The video belongs to its creator, Jon Eyolfson.

Want the full transcript?

Save this video in YouTube Collector to get its complete searchable transcript, your own AI summaries, and a library that keeps every video you collect in one place.