Ramdisk簡介以及嵌入式Linux上實現
Sam多年前在剛接觸Linux時第一個專案是個DVR專案,此專案當時誰作誰辭職。在Sam加入之前,幾乎已經換了3撥人了。Sam作為一個外行加入其中,並最終幾乎重寫了所有模組,雖然現在想來程式架構和程式碼質量相當不好。但總算把東西給作出來了。呵呵,閒話不說,回到主題:在那個專案中,我們一些頻繁修改的檔案,放置於Ramdisk中,一方面加快訪問速度,另一方面也防止檔案寫壞。
Ramdisk簡單的來說,就是用記憶體模擬為硬碟,並在其上儲存臨時檔案(因為重新啟動後,檔案會消失)
Ramdisk技術在Windows,Linux下均可實現。Windows下可選用類似RAMDISK4G這樣的軟體實現。Linux下,則需要Kernel配置。我們主要關注Linux下實現。
0. 準備工作:
在Linux下建立Ramdisk,需要mkfs.ext2。但Sam遇到的嵌入式平臺並不支援。最簡單的方法當然是重新編譯busybox.
#cd busybox
#make menuconfig
Linux System Utilities ---> [*] mkfs_ext2
#make
編譯出busybox.
執行之:
#./busybox mkfs.ext2
發現可用。
1.Kernel配置支援Ramdisk:
#make menuconfig
Device Drivers ---> [*] Block devices ---><M> RAM block device support
選擇將其編譯為modules.
(4096) Default RAM disk size (kbytes)
預設值為4096。所以Ramdisk預設為4M.
想要建立150M Ramdisk. 設定為:153600(1024*150) kbytes
2.建立Ramdisk:
當Kernel有Ramdisk support支援時,就會有/dev/ramX這樣的裝置。裝置未被格式化時,不佔記憶體,也不能被使用。
#./busybox mkfs.ext2 /dev/ram0 //此時才真正可用,並佔用預設大小記憶體。執行此命令時,系統會顯示這個塊裝置具體有多大。
#mount /dev/ram0 /tmp
3. 建立指定大小的Ramdisk:
3.
其實記憶體檔案系統中最方便的是:tmpfs.
建立方便,也可以隨意改變大小。
用法:
先建立掛載點。
#mkdir /data/game
#mount Game_Tmpfs /data/game -t tmpfs -o -o size=10m
建立了一個名為:Game_Tmpfs,大小為10M, 掛載點為/data/game的記憶體檔案系統。
給定名字Game_Tmpfs的優點是,在mount 或df中可以很容易找到自己的記憶體檔案系統。
Wget用法:
busybox的wget很不好用。可以下載並交叉編譯。
#CC=arm-hisiv200-linux-gnueabi-gcc ./configure --host=arm-linux --without-ssl
#make
wget username:[email protected]/dir/filename.ext
wget -rm --ftp-user=public --ftp-password=3dijoy ftp://ftp.3dijoy.com/To_BCM/
相關推薦
Ramdisk簡介以及嵌入式Linux上實現
Sam多年前在剛接觸Linux時第一個專案是個DVR專案,此專案當時誰作誰辭職。在Sam加入之前,幾乎已經換了3撥人了。Sam作為一個外行加入其中,並最終幾乎重寫了所有模組,雖然現在想來程式架構和程式碼質量相當不好。但總算把東西給作出來了。呵呵,閒話不說,回到主題:在
嵌入式Linux上通過boa服務器實現cgi/html的web上網【轉】
但是 資料 mail 並發 work 資源 原因 基礎 err 轉自:http://blog.csdn.net/tianmohust/article/details/6595996 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 嵌入式Linux上通
TCP/IP原理、基礎以及在Linux上的實現(轉)
導言:本篇作為理論基礎,將向我們講述TCP/IP的基本原理以及重要的協議細節,並在此基礎上介紹了TCP/IP在LINUX上的實現。 OSI參考模型及TCP/IP參考模型OSI模型(open system interconnection reference model)是
如何在Linux上實現:Eureka服務的開機自啟動?
參數 src class blog nohup echo 創建文件 too hup 【問題描述】 由於最近在使用Spring Eureka的註冊中心服務,而辦公室每天晚上要斷電,每天早上過來後需要手工啟動Eureka服務非常麻煩。 需要實現:開機自動該服務的功能。
嵌入式Linux上移植unzip工具
16px 文件 bsp ont div 嵌入 for .gz .tar.gz 由於busybox編譯出來的unzip不支持有密碼的壓縮包解壓,因此基於unzip60源碼包,交叉編譯一個嵌入式Linux上的unzip工具。 1.下載地址是: http://sourcefo
Linux上實現ssh免密碼登陸遠程服務器
Linux上實現ssh免密碼登陸遠程服務平常使用ssh登陸遠程服務器時,都需要使用輸入密碼,希望可以實現通過密鑰登陸而免除輸入密碼,從而可以為以後實現批量自動部署主機做好準備。 環境如下: IP地址 操作系統 服務器端 10.0.0.10 CentOS 6.5 x86 客戶端 10.0.0
Flutter入門學習:Flutter簡介以及在macOS上搭建Flutter開發環境
前言 眾所周知,一個移動客戶端一般都會有iOS和Android兩個版本,作為一個移動端的開發人員你肯定有過這樣的想法:能不能有個程式語言直接寫一套程式碼可以直接在iOS和Android系統上執行呢?現在這個問題已經得到解決,Google推出的Flutter,可以快速在iOS和Android上構建高質量的原生
CentOS 下安裝openOffice,並在Linux上實現office轉PDF
安裝openOffice 前提是系統已經安裝好java環境,網上很多需要解除安裝系統自帶java環境的,我覺得沒必要,直接使用也ok。 進入下載的openOffice所在目錄,執行(tar -zxvf Apache_OpenOffice_4.1.5_Linux
基於mini2440嵌入式linux上整合一套Domoticz智慧家居系統(七)交叉編譯paho.mqtt.embedded-c庫和嵌入式linux樣例程式
本篇將把paho.mqtt.embedded-c官方的原始碼交叉編譯成資料包封裝庫和應用程式兩部分,並把樣例應用程式在mini2440上執行。 一、首先編譯MQTT協議包封裝庫: 解壓paho.mqtt.embedded-c-master.zip之後,進入目
基於mini2440嵌入式linux上整合一套Domoticz智慧家居系統(四)交叉編譯OpenSSL、c-ares、e2fsprogs和mosquitto
本篇主旨是編譯安裝mosquitto,其他的庫是它的依賴庫。後面我們交叉編譯的程式都將放置在主機的”/usr/local/arm/”目錄中,以區別主機本地的應用程式。 我的mimi2440的根檔案系統是PC端VMWare上linux中的nfs,這樣比較容易除錯
如何在嵌入式Linux上開發一個語音通訊解決方案
開發一個語音通訊解決方案是一個軟體專案。既然是軟體專案,就要有相應的計劃:有多少功能,安排多少軟體工程師去做,這些工程師在這一領域的經驗如何,是否需要培訓,要多長時間做完,中間有幾個主要的milestone等。我們曾經四個人花了近一年時間開發了一個語音解決方案,成功通過驗收,各項關鍵指標(語音質量、單向時延)
嵌入式linux上測試遠端伺服器的某個埠是否可達
最近在做ftp上傳相機中的檔案時,遇到超時問題。相機中,原本有ftpput的應用,於是就在程式中直接使用ftpput來上傳相機中的視訊和圖片。 ftpput使用方法為: BusyBox v1.20.2 (2015-10-22 14:48:06 HKT) multi-
利用forever在Linux上實現Node.js專案自啟動
在一臺計算機上手動跑Node專案簡單,node xx.js就搞定了,想讓Node專案後臺執行,雖然不能直接用node命令搞定,但是在安裝了forever這個包以後,還是很輕鬆的。不過要是在遠端伺服器上構建Node專案,如果沒法自啟動,一旦伺服器重啟,那麼專案必須通過管理員遠
【OpenCV移植系列】02. OpenCV 1.0 在嵌入式Linux 上的移植
1. OpenCV簡介 OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平臺計算機視覺庫,可以執行在Linux、Windows和Mac OS作業系統上。它輕量級而且高效——由一
在ARM-linux上實現4G模組PPP撥號上網
轉自 http://blog.sina.com.cn/s/blog_7880d3350102wb92.html 在ARM平臺上實現4G模組的PPP撥號上網,參考網上的資料和自己的理解,從一無所知到開發完成花了一週多。最後看到ARM板ping通www.baidu.com時甚
Linux上實現Mysql的主從複製(為Mycat讀寫分離作準備)
今天做不成的事,明天也不會做好。 各位同學大家好,今天給大家分享一下資料庫的主從複製和讀寫分離。為什麼我們要做這些呢:我們知道,隨著專案使用者併發量的增加,應用層通過各種第三方技術以及微服務架構達到了需求,但是瓶頸會卡在的資料庫上;因此,我們
如何在Linux上實現檔案系統的自動檢查和修復?
平常Linux管理方面最重要的任務之一就是,檢查檔案系統的完整性。Linux檔案系統有可能在各種各樣的情況下受到損壞,比如系統崩潰、突然斷電、磁碟斷開,或者檔案節點(i-node)不小心被覆蓋等等。因此,定期檢查檔案系統的完整性是個好主意,以便儘量減小檔案系統受到損壞的風
撥開迷霧|嵌入式Linux上的應用程式開發只有高手才能完成?
好訊息:新年大促!《微控制器與嵌入式系統應用》2017全年電子刊合集僅售29.9!歡迎大家進入嵌
在Linux上實現將檔案隱藏到影象中
Steganography(隱寫術)是一個寬泛的話題。這個教程只涉及如何將檔案掩藏到影象檔案中,這也是St
Linux好玩兒的命令(RHEL/CentOS上實現)
linux、好玩的命令今天是端午節,祝大家端午節快樂! 在linux系統上,有很多好玩兒的命令,但大多數都是在Ubuntu/debian系列發行版上可以安裝,在紅帽系統上能安裝的很少;今天,我給大家介紹幾個在RHEL/CentOS系列發行版上可以安裝的好玩兒的linux命令 1.火車(sl命令)sl命令原意