記憶體上的linux
http://blog.linux.org.tw/~jserv/archives/001954.html[@more@]記憶體的速度大家都知道,在記憶體上執行的系統不僅速度快,還可以脫離儲存介質,例如光碟啟動時,可以把光碟拿出來; u盤啟動時,則可以拔下u盤。當然,如果執行的是隻讀的檔案系統,要支援儲存資料的話,就需要儲存介質了,可以把資料儲存到硬碟/u盤上。
經過摸索,有2個辦法可以達到目的 :
1 是把整個系統做成initrd. initrd本來就是小檔案系統
用cpio把整個系統做成initrd,系統只要2個檔案就可以啟動了,一個核心vmlinuz,二是initrd.gz。
普通的initrd的主要用途是用來載入一些驅動,並找到真實的檔案系統,最後切換根,起到一箇中介的作用。而這裡的initrd則不切換根了,直接執行/sbin/init。
發行版SliTaz, pudlinux也有一個版本xpud 就是這種方式。
但是initrd太大的話,loader(grub/syslinux)載入要花很長時間,還有個問題就是cpio不是裝置,儲存資料很麻煩,反正我沒想到辦法。 那位高手指點指點吧。
2 是在initrd中使用tmpfs技術把壓縮的檔案系統複製到記憶體中執行。
tmpfs 是一個檔案系統,而它又是使用RAM,可以很好解決在記憶體中執行,而又支援儲存資料。
看下面幾行指令碼就可以大概瞭解:
經過摸索,有2個辦法可以達到目的 :
1 是把整個系統做成initrd. initrd本來就是小檔案系統
用cpio把整個系統做成initrd,系統只要2個檔案就可以啟動了,一個核心vmlinuz,二是initrd.gz。
普通的initrd的主要用途是用來載入一些驅動,並找到真實的檔案系統,最後切換根,起到一箇中介的作用。而這裡的initrd則不切換根了,直接執行/sbin/init。
發行版SliTaz, pudlinux也有一個版本xpud 就是這種方式。
但是initrd太大的話,loader(grub/syslinux)載入要花很長時間,還有個問題就是cpio不是裝置,儲存資料很麻煩,反正我沒想到辦法。 那位高手指點指點吧。
2 是在initrd中使用tmpfs技術把壓縮的檔案系統複製到記憶體中執行。
tmpfs 是一個檔案系統,而它又是使用RAM,可以很好解決在記憶體中執行,而又支援儲存資料。
看下面幾行指令碼就可以大概瞭解:
程式碼:
mkdir /store
mount -t tmpfs -o size=200M none /store
mkdir /store/iso
cp -a /iso_dir/*.iso /store/iso
/sbin/losetup /dev/loop6 /store/iso/*.iso
mount -t tmpfs -o size=200M none /store
mkdir /store/iso
cp -a /iso_dir/*.iso /store/iso
/sbin/losetup /dev/loop6 /store/iso/*.iso
==============================
拿 RAM 當硬碟來用(RAM Disk)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9697/viewspace-1031802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SoC上的記憶體記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- Linux 記憶體管理:記憶體對映Linux記憶體
- linux的記憶體管理Linux記憶體
- Linux上執行記憶體中的指令碼和程式Linux記憶體指令碼
- 獲取linux可用記憶體 剩餘記憶體Linux記憶體
- Linux共享記憶體的管理Linux記憶體
- Linux中的記憶體管理Linux記憶體
- 【Linux】Linux 的快取記憶體Linux快取記憶體
- 清理linux記憶體Linux記憶體
- linux記憶體管理Linux記憶體
- LINUX 記憶體管理Linux記憶體
- linux共享記憶體Linux記憶體
- Linux記憶體使用的體會(轉)Linux記憶體
- Linux在X86上的虛擬記憶體管理(轉)Linux記憶體
- 如何檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體Linux記憶體
- Linux的記憶體分頁管理Linux記憶體
- Linux 的記憶體分頁管理Linux記憶體
- 手工清除linux中的記憶體Linux記憶體
- linux記憶體的真正含義Linux記憶體
- 解析Linux中的記憶體使用Linux記憶體
- 用 Bash 指令碼監控 Linux 上的記憶體使用情況指令碼Linux記憶體
- 在 Linux 上如何清除記憶體的 Cache、Buffer 和交換空間Linux記憶體
- Linux 虛擬記憶體Linux記憶體
- Linux共享記憶體(二)Linux記憶體
- Linux 使用記憶體分析Linux記憶體
- linux記憶體機制Linux記憶體
- linux釋放記憶體Linux記憶體
- Linux 記憶體管理: KmallocLinux記憶體
- Linux記憶體管理:VmallocLinux記憶體
- Linux記憶體管理:MallocLinux記憶體
- Linux記憶體管理:DMALinux記憶體
- Linux記憶體洩露案例分析和記憶體管理分享Linux記憶體洩露
- Flutter 上的記憶體洩漏監控Flutter記憶體
- Linux讀寫實體記憶體Linux記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- Linux記憶體子系統——Locking Pages(記憶體鎖定)Linux記憶體
- Linux記憶體點滴:使用者程式記憶體空間Linux記憶體