Bootstrap

深入剖析:Linux 内核与系统编程的底层原理

深入剖析:Linux 内核与系统编程的底层原理https://s.juejin.cn/ds/iPqpXf4P/

本课程全面深入地讲解了 Linux 内核与系统编程的底层原理,内容分为五大部分,每部分内容相对独立,读者可以根据自己的兴趣选择学习:

  • 基础篇
  • CPU 篇
  • 内存篇
  • IO 篇
  • 容器篇

基础篇 涵盖了从调试工具到内存管理等多个方面,具体内容包括:

  • 掌握 GDB 调试的基本操作,深入理解其工作机制和 ptrace 系统调用的应用;
  • 学习如何使用 QEMU 和 GDB 调试 Linux 内核;
  • 了解汇编语言的基础知识,从汇编视角理解 C/C++、Go 等语言;
  • 探讨同步机制和锁的实现原理,以及线程本地存储 TLS 的机制;
  • 了解 Linux 系统中的时钟源、高性能计时方法,以及零拷贝技术;
  • 学习 LD_PRELOAD 的使用和其在性能分析中的应用;
  • 分析系统调用的实现原理,掌握 ftrace 和 trace-cmd 工具的使用;
  • 手写 tcpdump。

CPU 篇 涵盖了进程和线程的管理,包括:

  • 讲解 Linux 内核中的 task_struct 结构,以及进程的状态和转换条件;
  • 介绍孤儿进程和僵尸进程,以及 Kubernetes 中的 pause 容器问题;
  • 深入理解进程上下文切换和调度算法;
  • 介绍火焰图的使用,以及 CPU 亲和性和超线程技术;
  • 通过代码示例讲解协程的实现。

内存篇 主要讲解了虚拟内存和物理内存的概念,以及内存分配和回收的机制:

  • 理解虚拟内存和物理内存的基本概念;
  • 比较 brk 和 mmap 等内存分配系统调用的原理和应用;
  • 了解进程内存分布的结构和缺页中断 PageFault;
  • 分析 Linux OOM 机制和内存分配器。

IO 篇 主要介绍了虚拟文件系统(VFS)和文件描述符的分配机制:

  • 理解 VFS 的概念和四大数据结构;
  • 了解文件描述符的分配原则和文件描述符表;
  • 剖析 epoll 源码。

容器篇 主要介绍了容器原理和网络相关的知识:

  • 讲解支撑容器实现的原理,如 cgroup、namespace、rootfs 等;
  • 介绍容器网络的基础知识;
  • 剖析内核层的 conntrack 和 iptables;
  • 讲解 DNS 和 ARP 的实现原理。

为了帮助读者全面了解课程内容,特附上课程的 思维导图

适宜人群

本课程内容广泛,适合以下人群学习:

  • 开发工程师:通过学习 Linux 内核原理,能写出更高效、更高质量的代码。
  • 运维/DevOps 工程师:深入理解 Linux 系统,有助于快速定位和解决系统问题。
  • 测试开发工程师:掌握系统编程,能更有效地开发测试工具。
  • 技术爱好者:探索 Linux 内核的奥秘,对操作系统和计算机体系结构有更深刻的认识。

深入剖析:Linux 内核与系统编程的底层原理https://s.juejin.cn/ds/iPqpXf4P/

;