You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# 结束语 | 第一次看内核代码,我也很懵逼
你好,我是邵亚方。
我们的专栏就要接近尾声了, 一路走来, 非常感谢你的支持。我在这里想跟你分享一下我学习Linux内核的经历, 希望我的个人经历能够给你带来一些启发。
我在从事Linux内核开发工作之前, 几乎没有接触过Linux内核源码, 只是对Linux操作系统略微了解一些, 这还得益于大学期间Ubuntu的流行。那个时候我对什么都感到好奇, 看到Ubuntu忽然流行起来, 就在自己的电脑上也安装了Windows+Ubuntu双系统, 天天折腾Linux命令和一些Ubuntu的使用技巧。然后没过多久, 我就觉得自己是一个Linux专家了, 开始在一些论坛上“指指点点”, 觉得自己无所不能。
我们说, 从0到1是一个从无到有的过程, 对于发明创造来说这很难, 但对于学习新东西而言, 从0到1就相对容易了。不过, 我那个时候把“学习”当成了“发明创造”, 认为自己跨越了从0到1的阶段, 就算是突破了学习Linux最难的部分, 再往后就会顺其自然。
直到我开始实现一个Linux内核特性, 才意识到自己对Linux的认知有多么肤浅。我之前掌握的那些Linux知识, 只是让我从0迈出了一小步, 而后面实际上还有99步要走。好在我及时意识到了自己的狂妄自大, 开始埋头对照着Linux内核源码学习《深入Linux内核》这本书。在我的师傅手把手的指导以及周围同事的热心帮助下, 我终于实现了Linux内核特性。
后来, 在我能够独立实现Linux内核特性后, 我又开始飘了, 认为自己是Linux内核专家了。没错, 我又在犯之前的错误, 以为掌握一个新技能, 只要从0迈向1就是突破了最难的部分, 剩下的路就会一马平川。
这种狂妄自大一直伴随着我, 直到我开始参与Linux社区的工作。当我与来自世界各地的开发者们讨论问题时, 我再一次发现自己对Linux内核的认知有多肤浅。这并不是说我周围的同事不如社区里的开发者, 而是我的同事们会在我遇到困难时帮助我一起想办法解决, 与Linux社区的开发者们打交道则不同, 我需要自己解决他们的质疑。
当然, Linux内核社区是很开放的, 里面也有很多既热心又谦逊的人帮助你。与他们打交道越多, 讨论的越多, 你就越会觉得自己对Linux内核的认知很肤浅。有时候, 为了反驳他们的质疑, 甚至只是为了单纯指出他们逻辑上的缺陷, 我会去看大量的内核代码, 写大量的内核代码以及大量的测试用例……每当Linux内核子系统的maintainer承认他们的观点是错的, 而我的观点是正确的时候, 我都会感觉很快乐, 因为自己的努力没有白费。
不过, 即便如此, 我并不觉得自己对Linux内核的理解已经到了多么深刻的地步, 因为我知道我还在从1到99的道路上艰难前进着, 我也不知道自己到底走了多少步, 不过, 这对我来说已经不重要了。俗话说, 事不过三, 你会发现我的心态已经变了, 我不再犯之前的错误了。
我只是想告诉你, 对于Linux的学习者而言, 从0到1真的是最简单的一步, 往后的每一步会越来越难。走完99步之后, 你可能才开始面临最艰难的那一步。也许当你从第99步正式跨越到第100步时, 就能够发明创造一个新的东西了? 就像Linus向社区发布Linux内核的第一个版本一样, 他从0到1创造了Linux。而我们不断地对它学习、研究, 在壮大Linux的同时, 也在走着自己的0到99步。至于我们从99迈向100时究竟会实现怎样的突破, 我并不清楚, 因为我自己还没有达到这样的境界, 不过, 未来的你和我或许有机会能验证它。
最后,再次感谢你一路以来的支持与陪伴,我们后会有期!
《Linux内核技术实战课》就要结束了, 这里有一份[毕业问卷](https://jinshuju.net/f/mwe1E9),题目不多,希望你能花两分钟填一下。十分期待能听到你说一说,你对这个课程的想法和建议。
[![ ](https://static001.geekbang.org/resource/image/38/52/38d6dbba408db9d4a3fe34857de5d652.jpg?wh=1142*801 )](https://jinshuju.net/f/mwe1E9)