About:
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++的一點基本語法。沒有用到:
- Exception
- 多重繼承
- run time type id
- operator overload (new, delete除外)
- template.
C++的OS,以前看過的就只有embedded in C++ 這一本書中 的ADEOS,原版本是用在x86上(186),但是有人port到ARM過。 可惜,都是很久以前的事了...
沒有留言:
張貼留言