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

我编写的Unix-like内核

  •  
  •   ssword 2011-03-19 12:15:07 08:00 9285 次点击
    这是一个创建于 5323 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    PRO
       2011-03-19 23:09:09 +08:00
    Cool.

    从想法到目前这个实现程度用了多长时间?
    xiaovfight
        7
    iaovfight  
       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     Solana     2728 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 15:09 PVG 23:09 LAX 08:09 JFK 11:09
    Do have faith in what you're doing.
    ubao 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