LINUX平台高级调试和优化(2024北京站)
创始人
2024-10-17 07:56:01
0

2024

LINUX

北京站

软件调试高级研习班 2024 北京站

LINUX 平台高级调试和优化

关于 LINUX 的资料浩如烟海,学习 LINUX 的途径也有很多,如何才能在比较短的时间里获得一个比较大的提升呢?《软件调试高级研习班 2024 北京站》将与各位 LINUX 爱好者共同探索这个问题的最佳答案。本着生动有趣、理论与实践密切结合的原则,本研习班独辟蹊径,采用封闭训练方式打造独有的沉浸式学习体验;使用调试之剑披荆斩棘,带你畅游纷繁复杂的 LINUX 世界;以格物精神,钻研代码,深挖 LINUX 系统的核心机制,这一讲求得一理,下一讲再求得一理,步步推进。

整个研习班,旨在实现三大目标:

  • 深入理解 LINUX 操作系统的基础设施和核心机制;
  • 学习开发 LINUX 程序(内核模块和应用程序)的工具和方法;
  • 学习 LINUX 平台上的调试工具和调试典型问题的方法。

本研习班由《软件调试》和《格蠹汇编》的作者张银奎主讲。

THIS IS| LINUX平台高级调试和优化

TIME 时间

线下2天:10/26 - 10/27

线上10小时:11/9

ADDRESS 地点

Beijing 北京

课程形式

  • 讲解
  • 真实案例演示
  • 动手实验

培训对象

在 Linux 平台上从事开发或测试的软件工程师和技术带头人

主办单位

  • 格蠹信息科技(上海)有限公司
  • 高端调试网站

日程梗概

DAY 0

线上直播(晚上2小时)

  • 开场
  • GDB上手与进阶

DAY 1

线下面对面

(10月26日周六全天)

  • LINUX系统大局观
  • 内核调试
  • 信号、异常和应用程序崩溃
  • 内存转储和分析

DAY 2

线下面对面

(10月27日周日全天)

  • 内存管理(内核部分)
  • 堆和内存错误、valgrind、ASAN
  • 进程管理和任务调度

DAY 3

线上直播

(11月9日周六全天)

  • 内核模块和驱动开发
  • 文件系统
  • 内核消息、Oops和Panic
  • 性能监视和调优、ftrace和perf等

课程大纲

01 LINUX 大局观 (1 小时)

课程要点 / KEY POINTS

GNU、发行版、三位一体、推动 Linux 发展的两股力量、内核源代码树、两大空间的关键部件、系统调用、strace、vdso、GNU、glibc、内核参数、观察当前内核使用的编译选项、内核文档。

02 (1.5 小时)

使用挥码枪和 NanoCode 调试 LINUX 内核

课程要点 / KEY POINTS

内核调试的挑战、CoreSight 技术基础、挥码枪的基本用法、加载符号、观察内核模块、设置断点、调用栈、观察进程和线程、常用的内核调试命令。

实战 1 使用硬件调试器

驾驭 LINUX 内核

课程要点 / KEY POINTS

使用挥码枪硬件调试器调试 GDK8 系统、将狂野的 LINUX 内核中断下来、仔细把玩。

03 GDB 精要 (1 小时)

课程要点 / KEY POINTS

为自由而生、Richard Stallman 传奇、GDB 诞生记、GDB 版本、GDB 的架构和工作原理、ptrace、命令类型、命令语法、常用命令、调试符号、DWARF、符号文件、下载 Ubuntu 的符号包和源代码、ELF 结构、readelf、寻找符号的方法、栈回溯(bt)、软件断点、硬件断点、复杂的断点命令、控制线程。

04 应用程序崩溃和转储 (1 小时)

课程要点 / KEY POINTS

信号概要、信号屏蔽、设置信号处理器、理解古老的异常处理方式、setjmp、longjmp、段错误、段错误实例介绍、core 文件、ulimit、core_pattern、ubuntu 的错误收集机制、aport、分析 core 文件、本地分析、跨机器分析、分析 core 文件的最佳实践。

实战 2 使用 GDB 调试

后台服务因段错误崩溃

课程要点 / KEY POINTS

Linux 下重要后台服务 (Daemon) 随机崩溃、深挖到底、竟然与 C 语言的规范有关、让你深刻认识 C 与 C++ 的一个大不同之处、感受著名的头文件陷阱。

熟悉如下工具和主要技能

GDB、GCC、map、dmesg、调试 Linux 应用程序、反汇编、插入代码 JIT 调试。

温习如下知识点

虚拟内存、分页机制、页表、缺页异常、段错误、空指针、AT&T 汇编和 Intel 汇编、调用规约。

05 内存管理(上)

(1.5 小时)

课程要点 / KEY POINTS

物理内存、从 core 到 DRAM、NUMA、page、pfn、页表管理、TLB、MMU、页错误、观察页错误、虚拟内存、交换分区、匿名交换和非匿名交换、进程的地址空间、vma、maps、vmstat、活跃内存和非活跃内存、内核池、从 /proc/meminfo 观察内存使用情况、meminfo 信息深入分析。

实战 3 与内存管理器对话

课程要点 / KEY POINTS

编写和修改内核驱动(LKM)、加载驱动、使用多种方式分配内存、并通过不同方式观察内存开销变化、理解内存分配的原理、关键术语、学习各种观察工具的用法。

06 内存管理(下)

(1.5 小时)

课程要点 / KEY POINTS

用户态堆、ptmalloc、arena、heap、主 arena 的布局、辅 anrena 的创建、堆块结构、分配策略、bin、bin 的组织、分配过程、释放过程、堆有关的错误、故障调试、valgrind、valgind 的工作原理、Address Sanitizer(ASan)、ASan 的工作原理、影子记录、检查过程、额外开销。

实战 4 使用 valgrind

调试典型的堆错误

课程要点 / KEY POINTS

堆很脆弱、经不起的考验有很多(溢出、多次释放、野指针等)、在 Linux 解决这些问题的最有力武器就是 valgrind、以老雷亲自编写的 GeMalloc 程序为样本、模拟各类堆错误、并使用 valgrind 一一捕获。

07 文件系统 (1.5 小时)

课程要点 / KEY POINTS

“一切皆文件”、文件系统架构、组成、文件操作、设备文件系统、使用内核调试器帮助理解文件系统、EXT FS、Reiser FS、四个核心对象、准文件系统、proc fs(原理、关键代码、重要的应用、meminfo、maps 等)、sysfs、debug fs。

实战 5 使用 LINUX 双机内核

调试探究句柄混论之谜

课程要点 / KEY POINTS

应用程序与驱动程序通信时、驱动程序总是收到错误的数据、打印出来观察、竟然是日志信息送给了驱动、使用 KGDB 分析应用层程序与驱动程序间通信的过程、分析数据混乱原因、理解虚拟文件系统、Linux 驱动程序、sysfs、标准文件等理论化。

08 任务管理 (1.5 小时)

课程要点 / KEY POINTS

进程和线程、LWP、任务结构体、一体二用、进程属性、线程结构体、内核态栈、寻找内核态栈的方法、内核态栈溢出、调度队列、观察队列长度、线程优先级、线程调度器、计算每个任务时间片的方法、选择当前运行任务的算法、strace、ps 命令的高级用法、pstree、top、使用 kernelshark 观察线程调度过程。

09 内核模块和驱动开发

(1.5 小时)

课程要点 / KEY POINTS

可加载内核模块(LKM)、init 和 exit、三类设备、字符设备、块设备、网络设备、 softirq 和 tasklets、pnp、udevinfo、系统调用、与应用通信、ioctl, 文件读写、典型设备驱动解析 eMMC、SD、USB(控制器、HUB、设备、数据传输)。

10 内核消息

(1 小时)

课程要点 / KEY POINTS

内核调试设施、printk、vprintk_emit、消息级别、消息头结构、结构化信息输出、facility、logger、syslog、console、syslogd、/dev/kmsg、隐含锁、动态控制消息输出、结构化的消息、结构化消息在 PnP 中的应用。

11 系统崩溃 (1 小时)

课程要点 / KEY POINTS

OOPS 和 Panic、Panic 的信息格式、Die、ARCH 下的实现代码、最常见的 Panic、详细解读 Oops 信息。

实战 6 分析系统 Panic 的原因

课程要点 / KEY POINTS

通过 LKM 触发内核 Oops 和 Panic(内核态栈溢出、段错误和 NMI watch dog 超时)、理解 Oops 输出、分析内核 Panic 工程、解析其来龙去脉。

12 (1.5 小时)调优和事件追踪

(ftrace 和 perf)

课程要点 / KEY POINTS

测试性能的两种基本方法、Sampling、Instrumentation、trace 机制背景、ftrace 简史、ftrace 的工作原理、追踪点、文件系统接口、user marker、启用追踪、读取 trace 数据、Kernshark、观察线程被抢时间片、观察中断处理过程、perf、perf 的典型用法、选择 CPU 的计数器、perf 使用示例(统计 page fault 来源)。

讲师介绍

张银奎

Raymond Zhang

格蠹科技创始人,微软全球最有价值技术专家(MVP),同济大学电子与信息工程学院特邀讲师,前英特尔亚太研发有限公司软件架构师。《软件调试》、《格蠹汇编》的作者,新版《十万个为什么》电子分册撰稿人之一,《程序员》杂志调试之剑栏目作者 。1996 年毕业于上海交通大学信息与控制工程系,在软件产业工作 20 年,在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。

从 2005 年开始公开讲授“Windows 内核及高级调试”课程,曾在微软的 Webcast 和各种技术会议上做过《Windows Vista 内核演进》、《调试之剑》(全球软件战役研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0 大会)、《Windows 启动过程》、《如何诊断和调试蓝屏错误》、《Windows 体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究 Windows 内部原理系列”的一部分)等。翻译(合译)作品有《现代 x86 汇编语言编程》、《21 世纪机器人》、《观止——微软创建 NT 和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。

附录 1 往届研习班部分照片

- 左右滑动查看更多 -

附录 2 报名或垂询

标准收费

标准收费:5200 元 / 每人

包括:

  • 基于 ARM CoreSight 技术的挥码枪硬件调试器一套

挥码枪官网:

https://www.nanocode.cn/#/ntp/

  • 包含 ARMv8 SoC 和 Ubuntu 系统的 GDK8 开发套件一套

  • 纸质版讲义
  • 研习班期间的午餐和茶点

课程顾问

Lisa

邮箱:lisa.long@nanocode.cn

Gary

邮箱:jiali.liu@nanocode.cn

公司付款信息

账户名称:格蠹信息科技(上海)有限公司

开户行:招商银行股份有限公司上海浦江镇支行

账号:1219 3085 8010 501

相关内容

九寨沟一酒店大堂出现蝮蛇,...
▲社交平台传出的毒蛇照片 日前,一则“九寨沟一酒店大堂惊现毒蛇...
2025-09-11 17:45:45
51Talk发布超拟人AI...
9月9日,以“对话世界 AI无界”为主题的51Talk全球语言教育...
2025-09-10 21:43:24
终身禁止!火箭军倒查九年 ...
8月28日至9月1日,火箭军后勤部采购和资产管理局发布180条公告...
2025-09-09 23:22:23
原创 ...
近期,美国与委内瑞拉的紧张局势再度升级,似乎一场战争的阴云正笼罩在...
2025-09-09 15:43:06
AI脱衣软件几百元就能永久...
话题“被AI造黄谣女运动员发声”近日冲上热搜榜,引发广泛关注。 8...
2025-09-09 14:44:07
专家建议:尽快明确AI“黄...
□ 法治日报记者 张守坤 话题“被AI造黄谣女运动员发声”近日冲上...
2025-09-09 08:23:33

热门资讯

原创 2... #春日生活好物种草季#近年来,笔记本电脑市场迎来技术爆发期,尤其在手机厂商跨界入局后,轻薄本在性能、...
AMD锐龙AI 9 HX 37... 2024年6月3日,AMD正式发布全新的锐龙AI 300系列处理器。该系列处理器一经发布就引发大家的...
5个AI模特生成软件推荐 当前AI模特生成软件市场提供了多样化的解决方案,以下是几款备受推崇的工具: 触站AI:强烈推荐!...
骁龙本这么猛?联想YOGA A... 在人人都是自媒体的时代,一部手机可以解决出镜拍摄问题,而商务出差、大量码字、图像处理等需求用笔记本则...
2023年CentOS与Ubu... CentOS与Ubuntu的市场格局与技术特性探讨 在服务器操作系统领域,CentOS与Ubuntu...
苹果macOS 15.1:允许... 苹果公司在其最新的macOS 15.1版本中,推出了一项引人注目的新功能——允许用户将Mac App...
原创 苹... 前言 IQUNIX在做好看的桌面产品上,一直都给我留下非常深刻的印象。而且早期和苹果产品的设计风格...
原创 华... 想在竞争残酷的市场中发力,必须要带来一些激进的卖点,但是随着功能特性的提升,硬件也必须要进行给力才可...
原创 华... 在2024年这个被誉为"AI元年"的关键时刻,随着生成式AI的流行,各家手机厂商都在积极备战AI手机...