in fact , Now on the market and the network can be found in the computer technology books and materials , Everything is complete , Only about these three themes ( link , Load and Library
) There is a scarcity of discussion , Even if we can find some, it's just like incomplete classics , Not only is it incomplete, but many are obsolete . About the current general Windows and Liunx Links to platforms , Loading and PE/ELF Detailed analysis of documents , It's very rare . In this field , The most complete , And the most authoritative John
R. Levine Of Linkers
&Loaders, I have read this book through several times , Although it describes the linking and loading aspects completely , But it's too theoretical , The description of the actual system mechanism is too brief .


What will you learn

This book will describe in detail the popular Windows and Linux The executable files under the operating system , Target file format ; ordinary CIC++ How the program code is compiled into the object file and how the program is stored in the object file ; How are target files linked together by linkers , And form an executable file ; Symbol processing of target file at link time , How do relocation and address assignment work ; How can an executable be loaded and executed ; How does the executable map to the virtual space of a process ; What is dynamic linking , Why dynamic linking ;Windows
and Linux How to carry out dynamic link and related problems in dynamic link ; What is a heap , What is a stack : Function call conventions ; Runtime ,Glibe and MSVC
CRT Implementation analysis of : System call and AP; Finally, we realized one ourselves Mini CRT.

Basic knowledge

In this book , We try to avoid asking readers to have a lot of basic knowledge , But it is inevitable that there are some requirements . This includes the right to CIC++ Basic understanding of programming language ,x86 Fundamentals of assembly language , Basic concepts of operating system and basic programming skills and basic concepts of computer system structure .


The book is divided into 4 gross , They are as follows :

The first 1 part brief introduction

The first 1 chapter Consider the past you shall know the future

Introduce the basic background knowledge , Including hardware . operating system . Thread, etc .


The first 2 part Static link

The first 2 chapter Compiling and linking

This paper introduces the basic concepts and steps of compiling and linking .


The first 3 chapter What's in the target file

introduce COFF How to store the Japanese standard file format and source code in the target file after translation .


The first 4 chapter Static link

This paper introduces the process and steps of static linking and static library linking .


The first 5 chapter Windows PE/COFF

introduce Windows Target file and executable file format of the platform .


The first 3 part Loading and dynamic linking

The first 6 chapter Loading and process of executable file

Introduce the concept of process , Distribution of process address space and loading process of executable file mapping .


The first 7 chapter dynamic link

with Linux Under the .so The process of dynamic linking is analyzed in detail based on shared library .


The first 8 chapter Linux Organization of shared libraries

introduce Linux Distribution and organization of shared library files under .


The first 9 chapter Windows Dynamic link under

introduce Windows Under the system DLL Dynamic link mechanism .


The first 4 part Library and runtime

The first 10 chapter Memory

This paper mainly introduces heap and stack , Heap allocation algorithm , Function call stack distribution .


The first 11 chapter Runtime .

This paper mainly introduces the concept of runtime .CIC++ Runtime ,Glibe and MSVC CRT, How to implement runtime C++ Global construction and Deconstruction fread() Library function is taken as an example to analyze the runtime .


The first 12 chapter System call and API

Main introduction Linux and Windows System call and Windows Of API.


The first 13 chapter Runtime implementation

This chapter mainly implements a support heap , Basic file operation , format string , Basic input and output ,C++ new/delete. C++ string. C++ Globally constructed and destructed Mini



This 《 Programmer's self thought 》 E-books total 483 page , Friends who need the full version can get it in the following ways .

©2019-2020 Toolsou All rights reserved,
Bigtable Paper notes be based on springboot File upload for python Hundred lines of effective code to achieve Hanoi Tower Games ( Minimalist version )2019 Ladder race Lucky lottery (15 branch ) MySQL8.0MGR Single owner / Multi master installation and switching Java Function and use of reflection python Painting love A masterpiece to be handed down !Alibaba Interior products Redis In depth notes and source code data structure C Parking management of language JAVA Interview questions - Find the longest string that does not repeat ( Personal approach )