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

一个用来学 os 的仿 Linux 内核

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

    项目地址: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   ·   实用小工具   ·   5702 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 08:54 · PVG 16:54 · LAX 00:54 · JFK 03:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.