这个工程的目标是梳理《Linux源码剖析》的知识点并从0.12版本的源码中抠出部分代码构建一个
能用现代linux发行版方便编译的迷你系统,从而验证各个知识点
- 《Linux源码剖析》最新的电子版
- linux 0.1x源码
- oldlinux官网
- 《ORANGE'S:一个操作系统的实现》
感谢赵炯博士,感谢于渊老师,感谢川合秀实先生,并致以最高的敬意!
- 大量参考linux0.12的设计思路建立demo,有助于之后阅读linux源码
- 将尽可能多的linux中汇编实现的代码用c重新实现,提高可读性,降低学习成本
- 使用docker编译,使得编译环境极易搭建
git clone https://github.com/freelw/LanOS.git
cd LanOS
./make_os.sh
dantadeMacBook-Pro:yard danta$ git clone https://github.com/freelw/LanOS.git
Cloning into 'LanOS'...
remote: Enumerating objects: 517, done.
remote: Counting objects: 100% (517/517), done.
remote: Compressing objects: 100% (322/322), done.
remote: Total 1316 (delta 304), reused 379 (delta 181), pack-reused 799
Receiving objects: 100% (1316/1316), 2.78 MiB | 42.00 KiB/s, done.
Resolving deltas: 100% (788/788), done.
dantadeMacBook-Pro:yard danta$ cd LanOS
dantadeMacBook-Pro:LanOS danta$ ./make_os.sh
builing lan os...
cleaning temp files...
file [a.vfd] is our os image with a simple ramdisk filesystem.
- 如何编译和运行demo
- 梳理linux0.12知识点系列 之 让汇编到C不再遥远
- 梳理linux0.12知识点系列 之 a20地址线
- 梳理linux0.12知识点系列 之 8259A的初始化和时钟中断
- 8259A原理详细说明
- 网上相关资料整理
print_str 实现done 20200224print_num 实现done 20200224lan_fs 实现done 20200224exec 实现done 20200224exit 实现done 20200304