我编写的Unix-like内核 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
ssword

我编写的Unix-like内核

  •  
  •   ssword Mar 19, 2011 9599 views
    This topic created in 5526 days ago, the information mentioned may be changed or developed.
    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 replies    1970-01-01 08:00:00 +08:00
    TheOnly92
        1
    TheOnly92  
       Mar 19, 2011
    伟大的项目。精神上的支持 :)
    darasion
        2
    darasion  
       Mar 19, 2011
    niubility
    wudoo59
        3
    wudoo59  
       Mar 19, 2011
    强悍
    fanzeyi
        4
    fanzeyi  
       Mar 19, 2011
    Orz..... ssword牛....
    sogood
        5
    sogood  
       Mar 19, 2011
    再次膜拜。。。
    Livid
        6
    Livid  
    MOD
    PRO
       Mar 19, 2011
    Cool.

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