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

我编写的Unix-like内核

  •  
  •   ssword · 2011-03-19 12:15:07 +08:00 · 8920 次点击
    这是一个创建于 5002 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/Fleurer/fleurix

    一个雏形的Unix-like内核。

    37个系统调用,七千行C,二百多行汇编,在bochs之上。诚然还脱不去“玩具”的标签,不过也算完成了它的设计目标,那就是跑起来 :)

    Fleurix已经有了:
    - minix v1的文件系统。原理简单,而且可以利用linux下的mkfs.minix,fsck.minix等工具。
    - fork()/exec()/exit()等等。a.out的可执行格式,实现了写时复制与请求调页。
    信号。
    - 一个纯分页的内存管理系统,每个进程4gb的地址空间,共享128mb的内核地址空间。至少比Linux0.11中的段页式内存管理方式更加灵活。
    - 一个简单的kmalloc()(可惜没大用上)。
    - 一个简单的终端。

    不足:
    - 没有管道
    - 没有swap
    - 还不是基于POSIX
    - 不支持硬盘分区
    - 只支持128mb的物理内存
    所以在真机上可能不靠谱 :(


    -
    hope you like it :)
    32 条回复    1970-01-01 08:00:00 +08:00
    TheOnly92
        1
    TheOnly92  
       2011-03-19 12:28:42 +08:00
    伟大的项目。精神上的支持 :)
    darasion
        2
    darasion  
       2011-03-19 13:17:14 +08:00
    niubility
    wudoo59
        3
    wudoo59  
       2011-03-19 22:33:22 +08:00
    强悍
    fanzeyi
        4
    fanzeyi  
       2011-03-19 22:45:17 +08:00
    Orz..... ssword牛....
    sogood
        5
    sogood  
       2011-03-19 23:00:02 +08:00
    再次膜拜。。。
    Livid
        6
    Livid  
    MOD
       2011-03-19 23:09:09 +08:00
    Cool.

    从想法到目前这个实现程度用了多长时间?
    xiaovfight
        7
    xiaovfight  
       2011-03-19 23:14:43 +08:00
    无比崇敬!膜拜orz
    xiluo
        8
    xiluo  
       2011-03-19 23:33:26 +08:00
    传说中的Finus
    Paranoid
        9
    Paranoid  
       2011-03-20 00:01:55 +08:00
    只有膜拜的份,唉,差距呀.
    gonghao
        10
    gonghao  
       2011-03-20 00:12:45 +08:00
    速来膜拜~~真是崇拜楼主大神啊~~~
    chone
        11
    chone  
       2011-03-20 02:48:33 +08:00
    支持。。算起来自己不写c好久了
    zztczcx
        12
    zztczcx  
       2011-03-20 07:43:19 +08:00
    膜拜,曾照着别人的写都有困难,内核真不是好研究的。
    ssword
        13
    ssword  
    OP
       2011-03-20 18:55:55 +08:00
    @Livid 最早是去年五月照着书上写了一个简单的bootloader,当时也没打算把它写成内核。
    然后实在没事情做,就从这个bootloader开始试探着一步步做了下来。中间遇到个诡异bug停了两个月,算上的话一共九个月左右 :)
    ssword
        14
    ssword  
    OP
       2011-03-20 19:02:00 +08:00
    @zztczcx 确实需要花很多时间。有很多细节不是很好把握,到现在依然还有很多地方不明白。好在资料非常的多,也有相当多的源码可以参考。不过总的来说在现在搞内核,已经要比Linus当年容易得多了
    zztczcx
        15
    zztczcx  
       2011-03-20 19:12:53 +08:00
    @ssword 九个月啊,真是不容易啊, 曾经因为一个网卡驱动白白耗了一个月,最后那个项目的人也都散了,自己也没在投精力,现在急着在学javascript,等一阵子再做嵌入式了。
    gfreezy
        16
    gfreezy  
       2011-04-09 10:45:43 +08:00
    @ssword 买了本《Orange‘s 一个操作系统的实现》,照着书,一步一步的往下做呢,实现多进程了。
    操作系统好晦涩。。。
    xmbaozi
        17
    xmbaozi  
       2011-04-09 13:58:58 +08:00
    内牛满面
    dreampuf
        18
    dreampuf  
       2011-04-10 16:44:48 +08:00
    求解析博文.
    ssword
        19
    ssword  
    OP
       2011-04-14 17:44:26 +08:00
    @dreampuf 写教程也是个大坑呢...最近有点浮躁,等静下心来会系统地写些东西 :)
    qichuan
        20
    qichuan  
       2011-04-20 14:35:38 +08:00
    加油
    blankyao
        21
    blankyao  
       2011-04-20 14:39:14 +08:00
    真帅气
    panlilu
        22
    panlilu  
       2011-04-20 14:39:29 +08:00
    cool~膜拜
    tomyiyun
        23
    tomyiyun  
       2011-04-20 14:43:38 +08:00
    膜拜……
    kelvin_fly
        24
    kelvin_fly  
       2012-04-25 22:31:37 +08:00
    强悍。俺在学嵌入式linux中…… 不知道神马时候能到这境界……
    chlx
        25
    chlx  
       2012-04-25 22:59:53 +08:00
    佩服。。LZ的blog也很帅
    udonmai
        26
    udonmai  
       2012-04-25 23:02:24 +08:00
    Orz... 好棒~
    acgism
        27
    acgism  
       2012-04-25 23:16:40 +08:00
    Cool!
    lossdante
        28
    lossdante  
       2012-04-25 23:31:13 +08:00
    lz受我一拜
    thedevil7
        29
    thedevil7  
       2012-04-25 23:48:39 +08:00
    Orz...
    evlos
        30
    evlos  
       2012-04-25 23:52:39 +08:00
    太给力了 O_O
    reus
        31
    reus  
       2012-04-26 01:09:49 +08:00
    膜拜巨巨,巨巨我也要学 T_T
    join
        32
    join  
       2012-04-26 01:40:24 +08:00
    楼主可以参照linus的方法,在github开源. 然后聚集一堆人开发我们国人的操作系统. 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1177 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:04 · PVG 07:04 · LAX 15:04 · JFK 18:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.