链接:https://zhuanlan.zhihu.com/p/57815479

2017年9月《奔跑吧 Linux内核》一书出版后得到了广大Linux从业人员和爱好者(特别是从事Linux相关产品开发的工程师)的好评,也有不少高校采用该书作为研究生的Linux内核课程的参考书目。《奔跑吧 Linux内核》以实际工程中的问题为导向来分析Linux内核,很多读者认为它不太适合Linux初学者。因此,作者重新编写了一本适合Linux初学者学习Linux内核的入门教程。

2018年,中兴事件让芯片技术和操作系统变得火热起来,越来越多的人关注操作系统等基础学科。特别是Linux内核开源项目,已经成为操作系统研究和使用的典范。很多读者反映在看完《鸟哥的Linux私房菜》一书后已经能够熟练使用Linux系统,但是对Linux内核以及更深层次的技术问题仍一头雾水。《奔跑吧 Linux内核 入门篇》希望能帮助已经熟悉Linux系统使用的读者深入学习Linux内核。

今天我们有幸邀请到了《奔跑吧Linux内核 入门篇》作者笨叔叔,一起来看下他的所思所想。

Q :异步社区:可以介绍一下自己吗?目前正在做哪些事情?

笨叔叔:大家好,我是笨叔叔,我现在在上海紫竹一家小芯片公司做FAE,FAE就是客户支持。我自己从大学毕业到现在工作已经有15个年头了。我基本上是从第一份工作到现在的工作,都是和Linux相关的工作岗位。我的第一份工作是客户支持,当时Intel的xscale移动处理器很热门,我们那个时候就是做xscale处理器的开发板。在这之后,我做过一段时间的研发,现在又回到客户支持的老本行。

Q:异步社区: 恭喜您《奔跑吧Linux内核》出版1年多实现了销售与口碑双丰收,这本书出版后带给您最大的变化是什么?又是什么初衷开始创作《奔跑吧 Linux内核 入门篇》这本书,两次写书心态有什么变化吗?

笨叔叔:首先要感谢异步社区这个平台,让我可以实现自己的一个小心愿。写第一本《奔跑吧Linux内核》的初衷是想把自己多年的工作经验和总结用文字的方式记录下来。因为工作的关系,因为我是FAE嘛,常常需要面对客户的“蹂躏”。通常客户会给你一些刁钻的问题,而这些问题, FAE工作人员的通常做法是把它转发后端的研发同事来回答,而我喜欢自己研究代码,自己解决,当然不是所有的问题都能一个人解决。但是与研发同事的讨论会让自己学到很多东西。

另外,我自己有记笔记的习惯,是手写的笔记,我会把一些思考的问题和思路记录下来,这么多年来,我记录了两大本。《奔跑吧Linux内核》这本书通过奔跑卷和思考题的方式把我多年来遇到的问题、思考和总结都分享出来了,所以我感到很开心,因为这本书体现了一个FAE应有的独立思考和坚韧的品质。

《奔跑吧Linux内核》出版后得到了很多Linux工程师的喜欢,这令我感到很欣慰。但是有不少小伙伴纷纷给我留言,说这本书起点有点高,很多内容看不懂。另外也有大学老师反映书太厚,不适合作为大学本科教材,希望我可以出一本难度低一点、薄一点的书。《奔跑吧 Linux内核 入门篇》融入了很多老师给我的建议,特别是南昌大学的陈悦老师、大连理工的吴国伟老师,以及国防科大的余杰老师。还有一点就是,国内学Linux的小伙伴中有相当的一部分都学习了Linux运维相关的知识,但是从Linux运维到Linux专家之间还有一个巨大的鸿沟。希望读者在阅读完《鸟哥的Linux私房菜》之后,可以通过阅读《奔跑吧 Linux内核 入门篇》进入Linux内核的世界里,从而提升自己对Linux的理解,也为自己后面的职业发展增加实力。

第一次写《奔跑吧Linux内核》的时候,完全没有想到要出版,只是为了把自己东西用电子档案的方式记录下来。后来写的差不多了,才联系上异步社区,所以要非常感谢异步社区这个平台。第二次写书,也就是这本《奔跑吧 Linux内核 入门篇》,就是带着任务来的,反而有点忐忑不安,生怕辜负了读者和老师们的期望,也衷心希望各位读者朋友可以毫不留情地给我批评和建议,以便后续修改再版的时候可以做到更好。

Q:异步社区:《奔跑吧 Linux内核 入门篇》您最想将这本书推荐给谁看?怎么看?

笨叔叔:《奔跑吧 Linux内核 入门篇》最适合已经会安装Linux系统的读者,比如通过《鸟哥的Linux私房菜》这本书学会了安装和配置常用的Linux工具和软件服务。但如果把Linux当作产品开发平台和服务器运维平台,是远远不够的,因为我们知道国内的大公司,比如BAT,都有很强大的内核团队在维护着他们的服务器。因此,我们需要了解Linux内核的方方面面,入门篇这本书最适合Linux运维的小伙伴继续深入学习Linux系统和内核的入门教程。

另外,入门篇也适合高等院校操作系统课程的参考教材,这本书配套了70多个动手实验和将近500页的教学使用的PPT课件,以及全套的实验环境和参考代码。这本书出来之后,已经被多家高校选作操作系统课程的参考教材,比如大连理工大学、上海交通大学、南昌大学等。

同时这本书也适合各大企业作为新员工的培训教材,在出版之初,已经有多家国内的公司的研发部门经理表示采用这本书作为新员工培训教材。

自中兴事件后,国家对芯片和操作系统都非常重视。去年工信部组织了国产Linux相关的厂商进行了操作系统自主可控的资格考试,里面的考题与入门篇的实验题目相类似,所以这本书也非常适合作为Linux相关从业人员进修和考试的参考书籍。

Q:异步社区:我们关注到您也在创办自己的视频课程,写书与录制视频课程哪个挑战更大?

笨叔叔:视频课程,算是一个意外的事情。当时《奔跑吧Linux内核》出版后,不少读者纷纷留言表示对书中的内容理解起来比较困难,希望我可以出视频课程,这样方便阅读和理解书上的内容。基于这个原因,我开始尝试录制配套视频课程。视频课程和书中内容配套的,后来根据读者的需求,不断增加新的内容,比如Linux内核代码解读和导读、Vim 8工具的使用、git工具的使用,以及Kdump+crash挑战死机黑屏专题等。

Q:异步社区:国内外众多的公司和行业都采用Linux作为首选的操作系统,学习Linux操作系统的人员也越来越多。Linux 内核开发是一个让人听起来就觉得很了不起的工作,成为Linux 内核开发领域的程序员,最大的挑战是什么?职业发展路径是怎样的?

笨叔叔:没错,现在Linux系统是操作系统的绝对霸主。除了传统的服务器领域和嵌入式领域,我们可以看到越来越多的产业都在用Linux,包括工业4.0、IoT、人工智能、物联网等。可以说Linux才是操作系统的第一,不仅是装机量第一,而且参与开发的人数和公司数量也是第一。Linux的产业生态会带来很多的职位需求,Linux内核开发在这些职位当中是最有含金量的,薪水最高,发展前景也是最好的。

最新的Linux内核代码量已经远远超过了2000万行,庞大的代码量给Linux内核的学习带来了前所未有的挑战。有挑战,意味着机遇。有时我们需要问一下自己,如果没有不断挑战的能力,我们凭什么要求老板给高薪?或者说仅仅会安装Linux系统和配置一些服务,老板为什么要给我们高薪?所以,我觉得Linux内核对学习者来说充满了挑战和机遇。在中国制造2025、人工智能、物联网等发展的大趋势下,少不了Linux,大家一起加油奔跑吧!

Q:异步社区:你觉得工作中最重要的软技能是什么?为什么?

笨叔叔:软技能这个词,我是最有感触了,我现在公司的第一个老板就经常教导我们要在公司里build 自己的soft skill,在这里我要特别感谢他。这里说的soft skill包含很多,比如怎么在一个team里建立自己的leadership、怎么和自己的老板建立信任、怎么在客户和其他team里体现自己的能力,等等。在我们IT工程师的思维里,常常以技术为主导,以技术能力来评价一个人,而忽略软技能。公司是由很多人建立的群体,技术能力本身很重要,但并不是唯一的。所以,我的建议是,程序员不要以技术能力为一切来看待问题,还需要关注技术以外的一些东西。

Q:异步社区:Linux程序员的自我修养,需要哪些硬核本领?

笨叔叔:Linux涉及的东西很多,比如体系结构、C语言编程、操作系统、编译原理、汇编语言、外设芯片总线(如USB、PCIe)等。我们需要学习东西很多很多,大家加油吧!

Q:异步社区:弃 Windows 而拥抱 Linux 之后,有人预测2019年可能会是Linux年?您怎么看待这个预测?

笨叔叔:在我看来,早已经是Linux年了。Linux系统除了在PC领域被Windows打得“溃不成军”,在其他任何领域都绝对是老大,比如服务器、超级计算机、手机、嵌入式、IoT等。在操作系统领域,很难有其他的OS可以超越Linux。我觉得有两个原因,一是Linux的生态是完善的,支持的硬件是最多的,比如很多硬件厂商出来一些新东西,最先要支持的操作系统就是Linux;二是Linux的开发人员是最多的,也是最活跃的社区,有人气、有众多大公司的支持、有资金投入,这是其他任何一个社区都无法比拟的。

Q:异步社区:Linus Torvalds 于内核邮件列表(LKML)中正式宣布推出 Linux 5.0 rc1 版本,宣告Linux 进入 5.0 时代,对于Linux内核程序员有什么新的挑战?您觉得优势是什么?

笨叔叔:现在Linux内核的大版本升级已经不是因为有一些重大的特性,而是因为子版本号比较大了,所以Linux创始人Linus希望使用一个大版本号。

Linux 5.0的出现,对于所有Linux内核开发人员的最大挑战是,Linux内核代码更新速度太快,比如平均2个月一个新版本。隔几个版本之后,我们会发现有不少代码发生了变化。Linux内核是采用社区开发的方式,全球有200多家顶尖IT公司和1000多名优秀的程序员参与其中,大家可以想象一下,一个人要学会1000多人的智慧结晶,当然是挑战重重。

有资金投入,这是其他任何一个社区都无法比拟的。

Q:异步社区:异步社区:有没有写下一本书的打算?可以“剧透”一下吗?

笨叔叔:因为Linux 5.0出来了,因此打算把《奔跑吧Linux内核》更新到最新的Linux 5.0,会增加很多新特性。这些特性一部分是在Linux 4.x期间增加的特性,比如HMM等;另一部分是原来就在Linux内核里,只是《奔跑吧 Linux内核》没有讲到,比如IOMMU、VFIO、hugepage、cgroup、kdump死机等。我打算根据广大读者提的建议做比较大的改动,主要的改动是增加背景知识的部分,减少书中的代码量,把代码关键部分展现出来。另外还会增加思考题,这部分主要是从工作中提炼,还有一部分是读者提出来的疑问。

Q:异步社区:对您工作和生活帮助最大的三本书?一定要推荐的?

笨叔叔:计算机方面的图书,人民邮电出版社和异步社区里有很多经典的图书,我在这里就不一一推荐了,“计算机好图书哪里找,上异步社区”!

我想推荐两本我在过年期间看的书,是和计算机无关的书,我们这些程序员有时候可以换换脑子,这样工作会更有效率。一本是国内私募大佬但斌的书《时间的玫瑰》,这本书给我感触最大的一句话是:“巴菲特之所以伟大,不在于他在75岁的时候拥有了450亿的财富,而在于他年轻的时候想明白了许多事情,然后用一生的岁月来坚守”。对Linux的热爱,也值得我们用一生的岁月去坚守。

还有一本书是李驰的《投资是一场长途旅行》,李驰对生活和投资的理念很值得学习。书中有一句话让我印象深刻:“如何拍摄到角马渡河的壮观场面?等待。如何拍摄到海豚围猎沙丁鱼的奇观?等待。如何执到牛耳?还是等待,而且市场中通常是用99%的时间换来1%时间的惊人上涨”。这句话用在我们的人生中也是一样的,人生中99%的时间都是平淡的,但是我们一直坚持,总有一天会实现自己的小梦想。

笨叔叔著作

《奔跑吧 Linux内核 入门篇》

作者:张天飞

扫描二维码,一键购买

  • 原理+基础,从调试Linux内核到动手编写一个简单的内核模块,真正从零开始学习Linux内核。
  • 实验+案例,70余个创新实验贯穿全书,与你分享业内一线项目经验。
  • 课件+视频,教学资源丰富,视频讲解透彻,与你共享精品在线配套资源。
  • 涵盖当前Linux社区中新的开发工具和社区运作方式,反映Linux内核社区新发展。

本书是一本介绍Linux内核实践的入门书,基于Linux 4.0内核,重点讲解Linux内核的理论和实验。本书分为12章,包括Linux系统入门、Linux内核基础知识、内核编译和调试、内核模块、简单的字符设备驱动、系统调用、内存管理、进程管理、同步管理、中断管理、调试和性能优化,以及如何参与开源社区等内容。此外,本书还介绍了Linux内核社区常用的开发工具和理论,如Vim 8和git工具等。书中包括70多个实验,帮助读者深入理解Linux内核。

《奔跑吧 Linux内核 入门篇》

作者:张天飞

扫描二维码,一键购买

  • 基于Linux 4.x内核、ARM体系架构,以实际问题为导向,重点介绍Linux内核中基本常用的内存管理、进程管理、并发与同步、中断管理等模块。
  • Greg Kroah-Hartman、陈文智等众多业内专家审阅并推荐!
  • 本书内容基于Linux 4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。全书共分为6章,依次介绍了ARM体系结构、Linux内存管理、进程调度管理、并发与同步、中断管理、内核调试技巧等内容。本书的每节内容都是一个Linux内核的话题或者技术点,读者可以根据每小节前的问题进行思考,进而围绕问题进行内核源代码的分析。

专访笨叔叔:2019年可能是Linux年?(转)的更多相关文章

  1. Win10 LTSC 2019 安装和卸载 linux 子系统

    一.开启 二.下载 https://docs.microsoft.com/zh-cn/windows/wsl/install-manual   手动下载适用于 Linux 的 Windows 子系统发 ...

  2. visual studio 2019 + cmake 实现windows linux跨平台开发环境搭建

    visual studio 2019开始支持cmake跨平台开发. 以前cmake项目需要先生成vs项目,然后vs直接使用vs项目开发.现在可以直接用vs2019创建或打开cmake项目. 使用vis ...

  3. 2019.05.08 《Linux驱动开发入门与实战》

    第六章:字符设备 申请设备号---注册设备 1.字符设备的框架: 2.结构体,struct cdev: 3.字符设备的组成: 4.例子: 5.申请和释放设备号: 设备号和设备节点是什么关系.? 设备驱 ...

  4. 基于TQ2440和Qemu的GDB+串口调试(1)

    作者 彭东林 pengdonglin137@163.com   平台 TQ2440 + Linux-4.10.17 Qemu(vexpress-ca9) + Linux-4.10.17   概述 下面 ...

  5. Linuxer-"Linux开发人员自己的媒体"第五月稿件和赠书名单

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/juS3Ve/article/details/78859630 Linuxer已经从一个单纯的读者服务 ...

  6. 宋牧春: Linux设备树文件结构与解析深度分析(1) 【转】

    转自:https://mp.weixin.qq.com/s/OX-aXd5MYlE_YoZ3p32qWA 作者简介 宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot.linux.ucos ...

  7. Linux下手动获取当前调用栈

    被问到如何手动获取当前的调用栈,之前碰到过一时没记起来,现在回头整理一下. 其原理是:使用backtrace()从栈中获取当前调用各层函数调用的返回地址,backtrace_symbols()将对应地 ...

  8. Windows与Linux之间海量文件的传输与Linux下大小写敏感问题

    Windows与Linux之间海量文件的传输与Linux下大小写敏感问题 mount.cifs 支持通过网络文件系统挂载,不过需要安装cifs-utils,也可通过mount -t cifs挂载,详细 ...

  9. 查找 Linux 发行版名称、版本和内核详细信息

    作者: Sk 译者: LCTT geekpi | 2019-08-26 11:40   收藏: 1 本指南介绍了如何查找 Linux 发行版名称.版本和内核详细信息.如果你的 Linux 系统有 GU ...

随机推荐

  1. vue项目中,使用vue-awesome-swiper插件实现轮播图

    一.安装 npm install vue-awesome-swiper 二.项目中引入 import 'swiper/dist/css/swiper.css'import {swiper,swiper ...

  2. 《多线程操作之生产者消费者》(单生产单消费&多生产多消费)

    说明1:假设有一个放商品的盘子(此盘子只能放下一个商品).生产者每次生产一个商品之后,放到这个盘子里,然后唤醒消费者来消费这个面包.消费者消费完这个商品之后,就唤醒生产者生产下一个商品.前提是,只有盘 ...

  3. dubbo入门学习笔记之环境准备

    粗略的学完springcloud后由于公司的项目有用到一点dubbo,刚好手头上又有dubbo的学习资料,于是趁机相对系统的学了下duboo框架,今天开始记录下我的所学所悟;说来惭愧,今年之前,作为一 ...

  4. 第九章:Servlet工作原理解析

    9.1 从Servlet容器说起 Servlet和Servlet容器的关系,就像枪和子弹的关系,彼此依存又互相独立发展,这一切都是为了适应工业化生产.从技术角度来说,是为了解耦,通过标准化接口来互相协 ...

  5. 一个切换内外网IP地址的批处理BAT

    做了一个切换内外网的小脚本.没想到这个老的没剩几颗牙的DOS竟然功能如此强大.盛名之下名副其实啊!不亏是想当年叱咤风云的操作系统啊! 脚本内容1.建立两个TXT文件,分别按行存储内外网的IP,MASK ...

  6. mdadm语法

    mdadm命令详解及实验过程   一.概念 mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown 二.特点 ...

  7. TabLayout下划线指示器自适应文字宽度

    解决方案1: 更新design库到28.0.0-rc01 implementation 'com.android.support:design:28.0.0-rc01' 然后在TabLayout里设置 ...

  8. iOS原生 和 react native视图混编

    在iOS原生功能中加入RN,请看之前 写的 RN与iOS交互系列文章.本篇只讲下视图混编. 关键点只有二: 1.通过 RCTRootView 加载RN视图. 2.RN中,只需要AppRegistry. ...

  9. 配置trunk

    SW1 Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(c ...

  10. IDEA Maven的下载和配置

    首先去官网下载如图: 下载之后解压打开如图: 配置:1.打开conf文件夹下的settings.xml(我用的notepad++) 第55行左右加上图上的<localRepository> ...