arker 发表于 2006-6-15 16:19:21

发现了一个用C++写的仿UNIX操作系统内核

UnixLite 是用C++写的 ,兼容unix/linux的os。使用OpenSource, GPL授权。一個完整,可用的OS,通常需要兩部份: kernel 和 Application。
UnixLite 只包含kernel的部份 (就像Linux一樣)。

這個kernel 大部分都是用C++寫的,但是他使用 uClibc,而不是 glibc,所以size會小很多。(所以也不會有一些複雜的standard template libarary....我猜的 :P )

UnixLite 實做了一些linux常用的system call (所以不是全部? 所以不是posix complait?)。和linux是 binary compatible,有些 gnu的軟體已經 ported成功了。

UnixLite 現在的目標是實做一個教學目的用的Unix 系統,將來,UnixLite或許會作為一個soft-realtime的 embedded OS。

UnixLite 是一個小而完整的Unix系統,並且附有完整的說明文件,對於想瞭解OS的學生和programmer來說是一個很好的學習環境。

功能上,UnixLite和Minix的差異是UnixLite支援Paging,但是Minix沒有。
(minux386 好像就有了...)

由於以C++實做,以OO方式設計,UnixLite大約只有20000行程式,kernel 也看起來比較modular 和易於瞭解,
Technical Features

    * 支援paging 和flat memory model (幾乎和linux一樣)。
    * 實做約80個posix system call
    * Binary compatible with Linux
    * run bash/gcc, 和一些UNIX tools
    * 基本的TCP/IP,足以執行簡單的http server
    * 約20000行程式
    * 以C++寫作,模組化且易於擴充
    * Minix的32-bit filesystem

從網站上看來,文件還沒有很多,但是已經提供 qemu的 image作測試。

FAQ部份說了更多..

    * unixlite不是microkernel
    * 原來要能使用glibc,kernel 要implement的api 要更多,這是他採用uclibc的另一個原因。
    * 只用到c++的一點基本語法。沒有用到:
          o Exception
          o 多重繼承
          o run time type id
          o operator overload (new, delete除外)
          o template.

大概看的一下source code,果然比minix容易瞭解一些(或許是因為還是0.2版的關係吧..)。

unixlite的主页: www.unixlite.org

WeiMingzhi 发表于 2006-6-15 19:04:37

页: [1]
查看完整版本: 发现了一个用C++写的仿UNIX操作系统内核