一个用来学 os 的仿 Linux 内核 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ZoneN233
V2EX    分享创造

一个用来学 os 的仿 Linux 内核

  •  1
     
  •   ZoneN23 2018-12-24 19:25:00 +08:00 3960 次点击
    这是一个创建于 2490 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址:SimpleKernel

    一个内核项目,着重模块化,尽量减少后面的模块对前面模块的依赖。 面向初学者 /需要撸内核的程序猿们。 让你可以从自己感兴趣的进度开始,在已有代码的基础上完善自己的想法。

    这个项目刚开始是写着玩的,结果越陷越深。

    每个 branch 都是不同的完成进度,如果你也想自己动手完成内核中某个模块,可你从最接近的地方开始。

    已经完成的:

    • print_only

      只有打印语句,实现了 C printf() 函数的部分功能。如果从这里开始,你要完成的包括除启动在内的所有事情,包括不限于和硬件打交道的东西。

    • intr_timer

      完成了中断的设置。不需要手动设置中断等,接口都留好了,只需要改改就能实现大部分中断的处理。

    • keyboard_init

      键盘输入处理已经搞定。从这里开始,此内核已经可以对用户输入做出响应。从这里以后,就进入了内存管理,进程管理以及文件系统的部分。

    目前已经在搞内存管理了,已经完成的部分也或多或少有 bug。如果你对这个小项目有兴趣,非常欢迎发 issue。

    运行环境: linux/MacOS 我已经写好了安装所需环境的脚本,只需要执行就可以了。( 还没测试

    更多信息可以在 README 里找到。

    欢迎大家说说自己的想法。

    第 1 条附言    2020-01-17 23:34:15 +08:00

    1.17 更新:

    • 完成了初步的内存管理 只有一个简陋的无回收算法,后面再改进
    • 正在尝试写进程切换
    9 条回复    2020-01-17 23:31:01 +08:00
    sunzhenyucn
        1
    sunzhenyucn  
       2018-12-24 21:04:53 +08:00 via Android
    看了,这代码写的惊为天人,从来没有见过这么优雅的实现,看来推翻 Linus 的邪恶统治指日可待了(逃
    ZoneN233
        2
    ZoneN233  
    OP
       2018-12-25 11:36:56 +08:00
    @sunzhenyucn 干死微软!/滑稽
    1158114251
        3
    1158114251  
       2018-12-25 11:59:13 +08:00
    在学 linux 内核,向大佬看齐
    qwertqwert12345
        4
    qwertqwert12345  
       2018-12-25 15:39:55 +08:00
    事 pintos (确信)
    shm7
        5
    shm7  
       2018-12-25 21:45:21 +08:00 via iPhone
    @sunzhenyucn 人家这学着撸,还来分享找同伴,不是挺好吗?好言好语吧,我们需要这样的弟兄
    janhu9527
        6
    janhu9527  
       2018-12-26 09:11:05 +08:00
    完成度还不错,我当初只搞了一半就没空做了
    sunzhenyucn
        7
    sunzhenyucn  
       2018-12-26 09:58:14 +08:00 via Android
    @shm7 当然支持啊,偶尔还是想皮一下
    mokain
        8
    mokain  
       2018-12-27 22:18:20 +08:00
    大佬~!我就看看。。。
    ZoneN233
        9
    ZoneN233  
    OP
       2020-01-17 23:31:01 +08:00
    # 1.17 更新:
    - 完成了初步的内存管理
    只有一个简陋的无回收算法,后面再改进
    正在尝试写进程切换
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2495 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 11:46 PVG 19:46 LAX 04:46 JFK 07:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86