羽夏看Linux内核——简述
写在前面
此系列是本人一个字一个字码出来的,包括示例和实验截图。如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。
前言
这个教程是给想涉足而不知道怎么学习 Linux 内核的同志写的,也是给我自己写的,催促巩固我的学习成果。
在这篇开始之前,我距离上一篇我认为好的博文已经有好几个月了。一是有自己有很多有关前途未来的事情,毕竟再过一年是要毕业的人了,这块忙了半个多月;二是去搞 Deepin 上开源基础软件建设上去了,感觉成果不错,做了我最有成就感的“羽云十六进制编辑器”,有一些使用人群了,也上了商店,当了版主,当然还有 GIF 编辑器“羽云 GIF 编辑器”,这个比较糙,毕竟到了我不太擅长的地方,不过用还是没问题的。
其实在这个暑假之前,我一直想搞搞 Linux 内核的。既然有了 Win 内核的基础,我 clone 了一份 Deepin 的代码,信心十足的想开一份教程,结果,我感觉我自己有点心急吃热豆腐了,发现学习方式和理论有很大的不同之处,尤其是代码量,看的就头疼,这辈子是不可能了。
为了学 Linux 内核,我各处找适合自己的资料,走了一些弯路,也浪费了一些时间,消磨了一些热情。自己的事情忙完了,开源项目也算是结束了,决定静下心来,回归博客园,开始知识的输入和输出。
本系列教程基于的 Linux 内核0.11版本,正和很多教程一样,至于原因,当你看到现在 Linux 的代码量你就能明白。
Linux 0.11 的内核代码虽然只有约两万行,但却是一个实实在在、不折不扣的现代操作系统。因为它具有现代操作系统最重要的特征——支持实时多任务,所以必然支持保护和分页……而且它还是后续版本的真正的始祖,有着内在的、紧密的传承关系。读者更容易看清设计者最初的、最根本的设计意图和设计指导思想。 ——《 Linux 内核的设计艺术》
如果你之前学过我的《羽夏看Win系统内核》,本教程应该学起来更容易一些。一是保护模式和分页相关知识,你最起码有了基础,当然,本系列肯定不能少,学过的可以当做复习;二是我的教程写作风格你也有了熟悉,就像老师带学生一样,如果是学生面对新的老师,还需要一定的适应时间。
我的学习环境是 Deepin ,使用的软件你的系统可能没有适配,建议找替代品,毕竟类似的软件肯定有,顶多不方便,如果是Win就当我没说。
知识储备
学习本教程需要大量的扎实的基础储备和热情毅力,毕竟这个是自学,没有人来监督你。需要的基础和能力要求如下:
C/C++语言的基础Intel x86系列汇编基础,并且会使用Intel和AT&T汇编- 对于
位(bit)具有明确的认识 - 长久的毅力和时间
- 认真把每一个实验做完且做对的付出
- 微机原理(最好有)
如果想具有看汇编如C语言,看C语言如汇编的能力,可以参考我的 羽夏看C语言系列教程 ,也可以看别的教程;对于AT&T汇编不熟悉的,可以参考我的 羽夏笔记—— AT&T 与 GCC ,别的教程也可。我再提醒一句:不做实验,你是弄不懂的,不做到最后就是半瓶醋水平,说啥都会,但一做就不会。
主目录
- 羽夏看Linux内核——简述(本篇介绍)
- 羽夏看Linux内核——环境搭建
- 羽夏看Linux内核——启动那些事
- 羽夏看Linux内核——段相关入门知识
- 羽夏看Linux内核——门相关入门知识
- 羽夏看Linux内核——中断与分页相关入门知识
- 羽夏看Linux内核——引导启动(上)
- 羽夏看Linux内核——引导启动(下)
- 羽夏看Linux内核——内核初始化
- (正在更新中……)
装备
> 必须
- Linux 0.11 源码
- Bochs 源码(一个 x86 硬件平台的开源模拟器)
- 代码阅读工具(记事本都可)
> 选用
- Intel白皮书,用来当字典用的,在讲解保护模式的所有知识点都在里面
参考书
- 《操作系统真像还原》【如果是小白强烈推荐,不过最好也有点计算机基础】
- 《Linux 内核的设计艺术》 第二版
- 《Linux 内核0.11完全注释》 第三版(修正)
下载资源
Intel 白皮书可能不太好搞,这个我是花 CSDN 40多积分下的:Intel白皮书英文版全卷 — — 密码:copt 。
以上资源都可以到官方下载,这里我就说说如何下载 Linux 内核源码和 Bochs 源码,其它的应该好搜。
Linux 内核源码
在浏览器地址栏把下面这个地址拷贝进去回车:
https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/old-versions/
如下图所示:

箭头所指的就是我们所需内核代码的压缩包,下载解压就可以了。
Bochs 源码
在浏览器地址栏把下面这个地址拷贝进去回车:
https://sourceforge.net/projects/bochs/files/bochs/2.4.5/
如下图所示:

由于我是 Linux 系统( Deepin 是基于 Linux 的),所以下载上图红框的内容,至于编译安装请到下一篇环境搭建介绍。
下一篇
羽夏看Linux内核——简述的更多相关文章
- 羽夏看Linux内核——门相关入门知识
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 羽夏看Linux内核——中断与分页相关入门知识
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 羽夏看Linux内核——引导启动(上)
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 羽夏看Linux内核——引导启动(下)
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 羽夏看Linux内核——段相关入门知识
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 羽夏看Linux内核——环境搭建
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 羽夏看Linux内核——启动那些事
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 羽夏看Win系统内核——简述
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- (一)羽夏看C语言——简述
"羽夏看C语言"介绍什么 本系列从汇编的角度,比较翔实的介绍C语言.C++和C其实是一样的东西,C++的编译器只是更强大,更能帮助我们写代码,例如模板.没有特殊说明,本系列不会 ...
- 羽夏看Win系统内核——驱动篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
随机推荐
- KingbaseES V8R6集群运维案例--cluster模式备份sys_backup.sh init故障
KingbaseES V8R6集群运维案例--cluster模式备份sys_backup.sh init故障 案例说明: 通过脚本方式部署KingbaseES V8R6集群后,在'cluster'模式 ...
- KingbaseES 原生XML系列五--XML关系表函数
KingbaseES 原生XML系列五--XML关系表函数(QUERY_TO_XML,TABLE_TO_XML,XMLTABLE) XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据 ...
- Python 潮流周刊第 44 期(摘要)+ 赠书 5 本《明解Python算法与数据结构》
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- Notion笔记汉化
Notion笔记汉化 参考:https://github.com/Reamd7/notion-zh_CN 关注我的订阅号[靠谱杨阅读人生]回复[Notion]获取中文包 1.进入notion的安装路径 ...
- 【AI】『Suno』哎呦不错呦,AI界的周董,快来创作你的歌曲吧!
前言 缘由 Suno AI的旋风终于还是吹到了音乐圈 事情起因: 朋友说他练习时长两天半,用Suno发布了首张AI音乐专辑.震惊之余,第一反应是音乐圈门槛也这么低了,什么妖魔鬼怪都可以进军了嘛! 好奇 ...
- #线段树#洛谷 4269 [USACO18FEB]Snow Boots G
题目传送门 分析 模型转换一下,能通过当且仅当最长的无法通过段小于 \(d\),(这点应该是此题的精华吧) 那么按照最大深度从小到大排序,双指针在线段树上删除无法通过段,求最长区间即可 代码 #inc ...
- #模拟#B 字串修改
题目 有两个字符串\(s,t\),其中\(s\)只包含小写字母以及 *,\(t\)只包含小写字母. 你可以进行任意多次操作,每次选择\(s\)中的一个 *,将它修改为任意多个(可以是0个)它的前一个字 ...
- 使用OHOS SDK构建freetype
参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone https://github.com/freetype/freetype.git ...
- 提升面试成功率:深入理解 C++ 11 新特性
C++11是C++语言的一个重大更新,引入了许多新特性,包括自动类型推导.lambda表达式.右值引用.智能指针等等.这些新特性使得C++更加现代化.高效.易用.也是面试容很容易被问到一个问题,下面我 ...
- 聊聊ChatGLM3多用户并发API调用的问题
转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote 背景 目前在公司内部4张A10的GPU服务器上部署了ChatGLM3开源模型:然后部署了官方默认的web_ ...