专栏导航
上一篇:无
下一篇:无
本节内容
本专栏的设置,主要是为讲解 Linux 0.12 内核作铺垫。大概是在 2018 年的时候,我开始学习汇编语言。两周左右学完了王爽老师的 8086 汇编教材。后来,我又去看了郑刚先生的《操作系统真象还原》、李忠先生的《X86 汇编语言,从实模式到保护模式》、川合秀实先生的《30天自制操作系统》、赵炯先生的《Linux 内核完全剖析,基于 0.12 内核》等等。
赵炯先生的书,我看了好几遍,才算是大致了解了 Linux 0.12 内核部分内容。有了一点了解以后,我又尝试着去编译 0.12 内核,结果呢,总是失败,编译出来的代码,总是有问题,我也不知道问题出在哪里。现在,我也不知道问题出在哪里。
大概是在 2023年的时候,我又尝试着去编译 Linux 0.12 内核。这一次呢,我采用了新的方法。编译的时候,也遇到了一些个 bug,经过一番调试,算是把 bug 给解决了。最终呢,在 2023 年的 10 月 20 几号,我将 Linux 0.12 内核,给编译出来了。它能够运行,还能够执行少数几个简单的命令。
有机会的话,我会把我编译出来的 Linux 0.12 内核,向大家讲解。而想要讲解 Linux 0.12 内核,以及学习这个内核,一个基本功,就是要去学习 AT&T 汇编。尽管,在赵炯先生的书里面,以及在郑刚、田宇等人的书里面,都有去讲解 AT&T 汇编,但是呢,我还是建议你系统完整地学习一遍。
在学习方面,有的人喜欢用到了再学,喜欢跟着项目走,碎片化地去学习。我的话,我本人就比较喜欢系统性地去学习一些个东西。当然了,不是每一种东西都需要系统性地去学习。但是呢,还是有许多的科目,我喜欢系统学习。
如果,你像我一样,如果不是系统完整地去学习某些科目,就觉得少了点什么,那么,本专栏,应该是会很适合你的。
AT&T 汇编,这是 Linux 内核源代码里面,会采用的一种汇编语法。我们想要学习 Linux 内核,想要学习操作系统知识,想要从事系统底层开发,那么,AT&T 汇编,这会是一项重要的基本功。
本专栏,我会将其作为操作系统系列课程的一部分,来予以讲解,以培养操作系统方面的程序员。
我不是那种写书的老手,在写作本专栏的时候,我有我的参考教材。参考教材如下。
图1
这本书,算是一个绝版书了。在淘宝网上,你搜一搜,或许可以搜到。这本书的作者是美国的 Richard Blum,由马朝晖等翻译。
我这里呢,有这本书的电子版。
链接:https://pan.baidu.com/s/1BmqNW4mVqddW12JI_Q7MVQ
提取码:yhql
--来自百度网盘超级会员V4的分享
这是我的百度网盘链接了。百度网盘你应该会用吧?不会用的话,请自行搜索。
根据上面我分享的链接与提取码,你可以进入如下的界面。
图2
然后呢,依次点击进入【内核学习】、【教材与资料】文件夹,来到如下界面。
图3
在图3 的红色框线所示的部分,就是我所参考的教材的 PDF 电子书了。你可以将其下载下来,或者转存到你自己的网盘里面。这种绝版内容,还是将其保存下来为好。
对于这本书的内容,我打算全篇讲解的。但是呢,讲解的时候,我也会删减与调整部分内容。
在我写作的当前,已经有人写出了 64 位的 AT&T 汇编语言教材了。而我所参考的这本书,它里面所涉及的语法,仅仅是 32 位汇编语言的语法。
如果你想要进入系统底层的学习,那么,你应该从 16 位的汇编语言开始学起。我个人推荐的教材是王爽老师的汇编语言教材,第二版、第三版、第四版都可以。
王爽老师的汇编语言教材的截图如下。
图4
在我的网盘里,在图3 所示的界面中,我也收藏了王爽老师的汇编教材的 PDF 版本。你也可以将其保存下来的。
关于王爽老师的汇编语言教材,与之配套的视频讲解,你可以从 B 站里面搜索到的。小甲鱼的讲解就比较轻松幽默,还有另外一个人的讲解也很棒,且和教材内容非常符合。
以下链接是小甲鱼的汇编语言视频教程。
以下链接是另一位讲师的汇编语言视频教程。
两个 B 站链接,都是与王爽老师的教材相配套的。
如果,你之前从未接触过汇编语言,那么,你一定要先去学习王爽老师的汇编语言。否则,本专栏,你大概率地会看不懂。
在你有了王爽老师的汇编教材的基础以后,那么,你可以尝试着来学习本专栏的知识。
不过呢,在我这里,我也没把握,是否能够让你在学完了王爽老师的教材以后,能够顺畅地学习本专栏内容。为了使得具备了王爽汇编基础的人,能够顺利地过渡到本专栏,我还推荐你去学习一下 Windows 32 位汇编语言,推荐你看一看郑州大学的钱晓捷先生的汇编语言教材。
在这里,我再将钱晓捷先生的汇编语言教材的封面给贴出来。
图5
图6
当初,我学习汇编语言的顺序,首先呢,是去学习的王爽老师的汇编语言教材,然后呢,去学习了钱晓捷先生的汇编语言教材以及对应的中国大学 MOOC 的视频。再往后呢,我去学习了李忠先生的《X86 汇编语言,从实模式到保护模式》教材。在李忠先生的汇编教材里面,他讲了另一种汇编语言,不是 Windows 汇编,而是在 Linux 和 Windows 里面都可以使用的汇编,叫做 NASM 汇编。
个人的话呢,我倒是建议你,在学完了钱晓捷先生的 32 位汇编语言以后,也去购买李忠先生的汇编教材,看一看,不见得要将李忠先生的汇编教材都看完,但是呢,还是建议你去接触其中的一部分的内容,以便呢,你能够对 NASM 汇编语法有一个基础的了解。
在你对 NASM 汇编有了基础的了解以后,你再来学习本专栏,那将会是比较容易的了。当然了,对于 NASM 汇编,你其实也不是说,非得先学完它,然后才来学习本专栏。你也可以说,本专栏和 NASM 汇编同时学习,也是可以的。
本专栏所讲述的内容,算是一个比较偏,比较专门化的内容。如果你想要用本专栏所讲解的汇编语言,来开发应用软件,那是大可不必的。因为,现在流行的 Python、Java、C++,足够你用来开发应用程序的了。
然而,你若是想要去学习操作系统知识,学习 Linux 内核,我还是比较建议你专门来学习一下本专栏的知识的。
祝愿你在汇编语言学习的道路上,能够开心快乐,收获丰富。
专栏导航
上一篇:无
下一篇:无