星期日, 10月 15, 2006

新的microkernel approach 和benchmark 文章

在hemi看到jserv摘這一篇,所以看看。還真是不錯。說得非常仔細。
( http://os.inf.tu-dresden.de/pubs/sosp97/) The Performance of µ-Kernel-Based Systems
先是說明一下micro kernel的歷史.
第一代的u-kernel :Chorus, Mach。
第二代的 : L-4, QNX。

古老 u-kernel為人詬病之處就是效能,但是第二代的u-kenrl已經很不錯了。

所謂的 "pure" u-kernel 就是說,kernel 只提供
  • address space
  • threads
  • IPC
其他部份都交由user space的sevice application提供。

這篇文章將Linux porting到L4 上,並且調整一些server,看看實做一些到L4內,和增加一些是當的user space server 對於效能有甚麼影響。

這個porting,讓Linux Kernel 算是L4 的一個User Process (簡單的說,是一個Pager - 記憶體管理程式)。原Linux上的user program也算是L 4的user process。

這個porting 目的要保持所有ABI一致,同時說明,由於Linux source code的高度模組化,所以可以把porting到L4的動作當作是porting到另一個hardware architecture,所以只需要更動hardware dependent part (就是source code中的arch folder..)。

文章說明的東西很多:
  • L4
  • Linux
  • Linux on L 4
  • Linux on L4 的各項實做:kernel service, interrupt, user process, System call, Signaling, Scheduling, Tagged TLB, Dual Space Mistake (?),
解說了這麼多,最後說明完成的Linux on L4 完全維持binary compatibility。

接下來作調整和benchmark..
  • 先作基本的benchmark
  • 把Linux 中的pipe和RPC改為L4 中的IPC作法
  • 將Virtual Memory Operation 由Linux Server中分離出來,成為一個獨立的user space server。
最後... 這樣的micro kernel 是否可用呢....

2 則留言:

  1. 不僅能用,而且商業化了。

    請參考 LinuxDevices.com 的新聞:
    http://www.linuxdevices.com/news/NS4095436375.html
    -%
    Fluffy Spider Technology (FST) will reportedly port its user interface technology to ERTOS, a micro-kernel based real-time Linux implementation likely to be used in Qualcomm mobile phones. FST's "FancyPants" UI technology has already been embedded in a multimedia-enabled mobile terminal used in New York City taxis.
    %-

    如果兄臺有興趣的話,歡迎交流,小弟最近在做 Realtime Microkernel (nano-kernel approach) based on Linux.

    回覆刪除
  2. (哇..jserv的留言耶..)..

    除了MINIX外,我還沒真的run過任何一個microkernel的OS呢,更不用說是development了。

    Linux porting到L4後,效能雖然降低5%,但是realtime performance好像增加了喔。這一段不知道是怎麼做到的,有時間時再來track一下這個專案的code。

    但是...什麼時候才會有時間呀?最近被CE+Platformbuild 搞得焦頭爛額...什麼時候才會有時間繼續 study Linux...

    回覆刪除