Linux开发编程

学习使用Libc编程, include中各个头文件分类使用, Gcc编译器和 Make工具使用和原理。

时间 2 天

开发工具

  • 开发库libc
  • 头文件
  • 链接库
  • C编译器
  • 通过源码安装
  • Patch打补丁

编译构建

  • make
  • autoconf
  • 脚本语言

内存管理

  • 虚拟地址和物理地址
  • Linux分段分页机制
  • mm_struct 描述进程的地址空间
  • malloc用户态内存申请

进程和线程

  • 进程创建 do_fork
  • 写时复制
  • 用户线程创建

进程间通信

  • 信号
  • 命名管道
  • Socket
  • UNIX域套接字

并发

  • 原子变量Atomic
  • 自旋锁Spin_lock
  • 信号量Semaphore
  • 互斥Mutex
  • 读写锁Rw-lock
  • 抢占Preempt
  • 内存屏障MemoryBarrier

中断机制

  • 系统调用
  • 中断流程
  • SIG信号处理机制

输入输出

  • vfs 文件系统层
  • IO多路复用
  • 零拷贝技术
  • mmap共享内存虚拟地址空间
  • sendfile

网络层数据流

  • sk_buff数据结构
  • socket接口层
  • netfilter包过滤机制

调试和工具

  • 进程coredump文件
  • gdb调试
  • SystemTap
  • strace和DTrace