How C Works on Linux

本书计划探讨C语言的工作原理,从汇编到C语言的发展历程,再到C编译器内部工作方式、链接过程、程序在内存中的布局等。此外,还将涉及ELF文件格式、binutils工具集、libc标准库实现细节,以及动态链接器ld.so的功能和技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I don't know if I'm crazy or what. I've been thinking about writing a book on how C works because I couldn't find any book like that when I worked on porting gcc/binutils. Althoug there are pieces of information out there on the web, I guess that it will be great to put all relevant information together for easy reference in one book. Right now I am a little suspicious. I don't know if C programers will bother to buy and read it.

 

Whatever, here are the list of topics from the top of my mind:

 

Preface

1. From Assembly to C

  1.1 dark age: programming in assembly is painful

  1.2 renaissance: C is for fun

2. C Compiler

  2.1 chicken or the egg: C compiler implemented in C

  2.2 C program translation

  2.3 static vs dynamic linking

3. From C back to Assembly

  3.1 dark side of debugging: only disassembled code

  3.2 ABI (Application Binary Interface): function call frame, parameter passing, register allocation etc

4. ELF & binutils

  4.1 layout of binary program in file

5. libc

  5.1 minimal mylibc

  5.2 glibc internals

6. ld.so

  6.1 GOT, what GOT?

  6.2 PLT

7. Bonus: Garbage collection

  Can we make it work for C programs?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值