YoVDO

Shared Libraries in Windows and Linux - Linking and Loading Deep Dive

Offered By: cpponsea via YouTube

Tags

C++ Courses Linux Courses Windows Courses Binary Analysis Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the intricacies of shared libraries in Windows and Linux operating systems in this comprehensive conference talk from C++ on Sea 2023. Dive deep into linking and loading operations, examining binary structures, clarifying static vs dynamic linkage, and highlighting the differences between Linux and Windows. Learn how to decipher complex linker error messages and gain a thorough understanding of import data sections, library interfaces, resolution timing, and symbol visibility. Discover solutions for process-wide singletons, circular library dependencies, and symbol overriding. Investigate the Procedure Linkage Table (PLT) and its absence in Windows, compare function pointers, and explore the relationship between C++ and shared libraries. Ideal for developers seeking to enhance their knowledge of low-level programming concepts and troubleshoot linking issues effectively.

Syllabus

Intro
Intro to Linking in 3 slides, #1
Import data section
idata section layout
Import Library
Windows Schematic Interface
Linux import sections
Linux Schematic Interface
Resolution Time
Linux: Intermediate Summary
How to form a process-wide singleton?
Can you have circular library dependencies?
Can a shared-library symbol be overridden from an executable?
Procedure Linkage Table (PLT)
Comparing Func Ptrs
Windows .idata section
No analogue mechanism in Windows
Symbol Visibility - Windows
Symbol Visibility - Linux
Component Map
C++ and Shared Libs
Resources


Taught by

cpponsea

Related Courses

Computer Graphics
University of California, San Diego via edX
Intro to Parallel Programming
Nvidia via Udacity
Initiation à la programmation (en C++)
École Polytechnique Fédérale de Lausanne via Coursera
C++ For C Programmers, Part A
University of California, Santa Cruz via Coursera
Introduction à la programmation orientée objet (en C++)
École Polytechnique Fédérale de Lausanne via Coursera