项目地址:SimpleKernel
一个内核项目,着重模块化,尽量减少后面的模块对前面模块的依赖。 面向初学者 /需要撸内核的程序猿们。 让你可以从自己感兴趣的进度开始,在已有代码的基础上完善自己的想法。
这个项目刚开始是写着玩的,结果越陷越深。
每个 branch 都是不同的完成进度,如果你也想自己动手完成内核中某个模块,可你从最接近的地方开始。
已经完成的:
print_only
只有打印语句,实现了 C printf() 函数的部分功能。如果从这里开始,你要完成的包括除启动在内的所有事情,包括不限于和硬件打交道的东西。
intr_timer
完成了中断的设置。不需要手动设置中断等,接口都留好了,只需要改改就能实现大部分中断的处理。
keyboard_init
键盘输入处理已经搞定。从这里开始,此内核已经可以对用户输入做出响应。从这里以后,就进入了内存管理,进程管理以及文件系统的部分。
目前已经在搞内存管理了,已经完成的部分也或多或少有 bug。如果你对这个小项目有兴趣,非常欢迎发 issue。
运行环境: linux/MacOS 我已经写好了安装所需环境的脚本,只需要执行就可以了。( 还没测试
更多信息可以在 README 里找到。
欢迎大家说说自己的想法。
1.17 更新:
1
sunzhenyucn 2018-12-24 21:04:53 +08:00 via Android
看了,这代码写的惊为天人,从来没有见过这么优雅的实现,看来推翻 Linus 的邪恶统治指日可待了(逃
|
2
ZoneN233 OP @sunzhenyucn 干死微软!/滑稽
|
3
1158114251 2018-12-25 11:59:13 +08:00
在学 linux 内核,向大佬看齐
|
4
qwertqwert12345 2018-12-25 15:39:55 +08:00
事 pintos (确信)
|
5
shm7 2018-12-25 21:45:21 +08:00 via iPhone
@sunzhenyucn 人家这学着撸,还来分享找同伴,不是挺好吗?好言好语吧,我们需要这样的弟兄
|
6
janhu9527 2018-12-26 09:11:05 +08:00
完成度还不错,我当初只搞了一半就没空做了
|
7
sunzhenyucn 2018-12-26 09:58:14 +08:00 via Android
@shm7 当然支持啊,偶尔还是想皮一下😘
|
8
mokain 2018-12-27 22:18:20 +08:00
大佬~!我就看看。。。
|
9
ZoneN233 OP # 1.17 更新:
- 完成了初步的内存管理 只有一个简陋的无回收算法,后面再改进 正在尝试写进程切换 |