发现了一个用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
页:
[1]