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

操作系统原理(Operating Systems)
Peking University via Coursera
工程圖學 2D CAD 專題
National Taiwan University via Coursera
IT Support: Troubleshooting Microsoft Office
Microsoft via edX
Operating Systems and You: Becoming a Power User
Google via Coursera
How to Install Android Studio
Udacity