Linux 内核深度剖析与实践

课程简介

Linux 作为最成功的开源项目,无论是在客户端还是在服务器端都发挥着无可替代的作用。本课程主要从嵌入式领域对 Linux 架构进行剖析。目前由于网上关于设备树的资料比较少,很多人不会用设备树,所以本课程先从设备树开始深度剖析内核的最底层;然后对内核的设备模型机制进行讲解,让读者理解 Linux 驱动的来龙去脉;接着手把手和读者一起定制一个开发板实践案例;最后和读者分享在工作中常用的调试技巧。本课程课后会留下练习题及源码链接,希望读者能够理论结合实践真实受用。

具体实践案例:

  • 动手写一个开发板
  • 编写第一个 Linux 驱动
  • 源代码分享

作者简介

刘盼,Linux 内核贡献者、CSDN 博客专家,活跃于各大创客社区,个人公众号《人人都是极客》,精通 ARM+Linux+Android 的嵌入式开发。智道科技联合创始人,目前专注于嵌入式领域的人工智能研究。

课程内容

导读:课程概要

为什么要学习 Linux

Linux 内核深度剖析与实践_第1张图片

首先 Linux 是开源免费的,用户不需要为此交付任何费用,世界各地有数百万志愿者为 Linux 提供了技术支持和软件更新,这使得 Linux 无论是在桌面还是在服务器端都是其他 OS 无法企及的。世界上最快的超级计算机 90% 以上都在用 Linux,说明 Linux 更快。

占领移动终端半壁江山的 Android 系统,其底层也是基于 Linux 内核实现的。云计算、自动驾驶、物联网等终端基本都是在使用 Linux 系统。可以说 Linux 是在 IT 领域使用最广的一项技术,掌握了 Linux 基本不会太担心技术更新带来的职业困惑,因为 Linux 的职业机会涵盖了桌面应用开发,内核和设备驱动开发,Web 开发和部署等。下从英特尔芯片厂商,上至阿里互联网公司,都会对 Linux 人才有巨大的需求。

所以如果你喜欢极客精神,可以根据自己的需要修改源代码,DIY 一套操作系统。如果喜欢开源社区的文化,崇尚自由,相信开放的 Linux 是最好的选择。如果你有一颗寻根问底的心,想知道底层内核实现的来龙去脉,那 Linux 就是最接近灵魂深处的地方。

Linux 的学习路线

Linux 内核深度剖析与实践_第2张图片

可以将 Linux 的学习路线大体分为以上三级,对于初学者主要是掌握 Linux 系统的操作,熟练使用相应命令。中级阶段可以对 Linux 系统进行网络管理、磁盘管理、安全优化等需求进行操作,算是初级的升级版。高级主要是需要进行 Linux 的开发工作,开发对象分为两个方向,一个是服务器端,如大数据、云计算等都属于这个领域,还有就是终端产品的开发,如手机、汽车等。

这个课程有什么特色

有些读者可能会有疑问:Linux 的技术文章网上有很多,为什么非要花钱选择这个系列课程?其实很高兴有这个疑问,说明有此疑问的读者对阅读内容是有要求的。

  • 虽然很多博客专栏都有 Linux 的学习心得,但丰富的网络资源也使得信息碎片化严重,此次教程站在读者容易理解的角度一层一层剖析 Linux,让读者有系统化的深入理解,形成知识体系。

  • 另外,内核每年都在升级,有些使用方式已经发生变化,比如设备树是 Linux 驱动获取资源的最新方式,关于设备树的内容网上几乎没有深入的讲解。本教程全部采用当前最新的正式版本进行教学。

  • 除了理论教程外,每节课程会给读者留几个问题,读者可以通过读者圈与我进行答疑互动。另外课程中提到的示例代码 Github 都会开源给大家。

本课程大纲

  • Linux 总线、设备、驱动模型的探究
  • Linux 设备树(DTS)的深入理解及练习题
  • Linux 的启动流程
  • Linux 设备和驱动的相遇
  • 动手定制一个开发板案例
  • Linux 调试调优技术
  • 如何向 Linux 内核提交代码

首先结合总线、设备、驱动模型的探究彻底理清驱动的来龙去脉。然后从设备树入手,模拟一个电路板,上面有中断控制器、GPIO 控制器、I2C 控制器、SPI 控制器、以太网控制器等,并根据这个电路板从头到尾构建一个 DTS 文件。

接着实践手把手和读者一起定制一个开发板案例,搞清楚进程运行的本质。然后通过系统调用课程的讲解理解应用层是如何访问内核的。

然后介绍在项目中经常用到的调试手段。

最后手把手教你如何在内核社区提交自己的 Pathch。

相信通过此系列的课程讲解,读者会从实际调试操作理解 Linux 从上层是如何一层层调用到内核到驱动的,相信掌握本课程的知识点绝对是你通往架构师的必经之路。

本教程使用到的学习资源

内核及库

  • kernel.org
  • wiki

微信公众号

Linux 内核深度剖析与实践_第3张图片

第01课:Linux 总线、设备、驱动模型的探究
第02课:Linux 设备树(DTS)的深入理解
第03课:Linux 的启动流程
第04课:Linux 设备和驱动的相遇
第05课:动手定制一个开发板案例
第06课:Linux 调试调优技术
第07课:如何向 Linux 内核提交代码

阅读全文: http://gitbook.cn/gitchat/column/5a17839b13c02f4a35ca3d4f

你可能感兴趣的:(Linux 内核深度剖析与实践)