作者 主題: ram disk  (閱讀 9254 次)

0 會員 與 1 訪客 正在閱讀本文。

kangta566

  • 可愛的小學生
  • *
  • 文章數: 9
    • 檢視個人資料
ram disk
« 於: 2006-04-20 21:16 »
1.在Embedded,一般我們說將root filesystem以ram disk的方式實現是指:
因為root filesystem儲存在flash內是以壓縮檔的型式,所以需以ram disk的型式
解壓縮然後存放在ram裡面?

2.那kernel是否也是以ram disk的型是解壓縮後放在ram裡面?

不曉得我的觀念是否正確,請大大們指點.....
感恩!!

andrew

  • 實習板主
  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
ram disk
« 回覆 #1 於: 2006-04-24 20:10 »
我也是新手, 這是我的看法, 如果有不嚴謹或錯誤的敘述還請個為高手說明:

for 1:
建構embedded linux所用的Ramdisk就是你開機之後所看到並且使用的filesystem,
如同你說的是製作成壓縮格式, 例如*.gz之類的,
不過事實上你可以存放在不同的媒介之中,
但應該是於開機之後, 將那個壓縮格式的Filesystem(ex: *.gz)解壓縮到RAM上,
而不是一開始就將壓縮格式存在RAM中.
為什麼? 因為解壓縮到RAM之後, 可以控制Filesystem是否為可讀寫?

for 2:
事實上Kernel與Filesystem在Embedded Linux系統中"可以是"兩個獨立的東西,
我的意思是Kernel不需要被包在Filesystem之中
不需要, 但是也是可以統一製作成一個image, 事實上, 經你這樣一問,
我目前好像也沒有看過把Kernel一起放進去Filesystem的壓縮格式中的做法,
我也沒有嘗試過這樣是否可行, 這個等待高手回答吧!
不過我想說的是kernel是kernel, Filesystem是Filesystem, 是可以分開的!
如果你玩過一些開發板所附的BSP, 應該會有感覺,
有些開發環境要你先load Kernel再load filesystem, 然後開機...

當然囉, 因為(1)所說的緣故, 你應該可以猜到Kernel本身要支援gzip的解壓縮(以gz為例)
所以編譯Kernel時要確定有選(通常預設是有的)
find /my_brain type sleepy -exec rm -rf {} \;

thyme

  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 1281
    • 檢視個人資料
Re: ram disk
« 回覆 #2 於: 2006-04-25 16:25 »
引述: "kangta566"

2.那kernel是否也是以ram disk的型是解壓縮後放在ram裡面?


一般你把 kernel 編成 bzImage 時就是壓縮的型式了,
所以你所謂的"解壓縮"後放在RAM裡是不必要的。
一般來說,由bootloader讀取kernel並執行之,之後 kernel 再 mount
root filesystem,此時bzImage已經不需要執行,所以也不必再
放入你說的"ram disk"內。