[發(fā)明專利]一種Linux系統(tǒng)中使用閃存保存系統(tǒng)配置的方法有效
| 申請?zhí)枺?/td> | 201010171231.0 | 申請日: | 2010-05-11 |
| 公開(公告)號: | CN102243602A | 公開(公告)日: | 2011-11-16 |
| 發(fā)明(設(shè)計(jì))人: | 張志同 | 申請(專利權(quán))人: | 西安龍飛軟件有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 710000 陜西省西安市高新區(qū)科*** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 linux 系統(tǒng) 使用 閃存 保存 系統(tǒng)配置 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域,尤其涉及一種在Linux系統(tǒng)中基于建立在閃存上可讀寫文件系統(tǒng)的可靠保存系統(tǒng)配置的方法。
背景技術(shù)
目前以閃存作為存儲介質(zhì)的嵌入式系統(tǒng)保存系統(tǒng)配置的方法基本上有兩種,一種是通過MTD接口直接操作閃存分區(qū),將系統(tǒng)配置保存在固定的MTD分區(qū)中;另一種是將系統(tǒng)配置保存在可讀寫的文件系統(tǒng)中,使用已有的數(shù)據(jù)庫保存系統(tǒng)配置。第一種方法需要自行設(shè)計(jì)配置項(xiàng)的結(jié)構(gòu)以及查詢方法,并且很難實(shí)現(xiàn)閃存的磨損均衡處理,尤其對于NAND類型的閃存,如果保存系統(tǒng)配置的分區(qū)出現(xiàn)壞塊將導(dǎo)致整個(gè)系統(tǒng)配置損壞,另外,閃存一般是按塊擦寫的,如果在擦寫過程中設(shè)備斷電將導(dǎo)致系統(tǒng)配置需要全部恢復(fù);第二種方法利用了閃存文件系統(tǒng)的磨損均衡功能,但仍面臨擦寫過程中斷電使全部系統(tǒng)配置需要恢復(fù)的問題。
發(fā)明內(nèi)容
為了解決現(xiàn)有系統(tǒng)配置管理方式的不足,本發(fā)明提出了一種在Linux系統(tǒng)下基于建立在閃存上的可讀寫文件系統(tǒng)的可靠保存系統(tǒng)配置的方法。此方法主要利用了文件系統(tǒng)自身的文件查找、對閃存的磨損均衡處理的特性,以兩個(gè)不同的目錄保存系統(tǒng)當(dāng)前配置和系統(tǒng)配置備份,并且將每個(gè)配置項(xiàng)保存到一個(gè)單獨(dú)的文件來實(shí)現(xiàn)的,保證了單個(gè)配置項(xiàng)文件的損壞不會影響到其他配置項(xiàng)。這種方法的具體實(shí)現(xiàn)步驟如下:
(1)系統(tǒng)配置的配置項(xiàng)和配置項(xiàng)的默認(rèn)值以文本文件的方式保存在系統(tǒng)中,將此文件保存在一個(gè)固定位置,管理配置項(xiàng)時(shí)只從此文件讀取數(shù)據(jù)而不會對此文件進(jìn)行寫操作,以保證在個(gè)別配置項(xiàng)損壞時(shí)進(jìn)行恢復(fù)。
(2)設(shè)備啟動(dòng)時(shí)對系統(tǒng)配置進(jìn)行初始化,初始化的過程包括:首先檢查系統(tǒng)當(dāng)前配置和系統(tǒng)配置備份目錄是否存在,如果不存在則創(chuàng)建;然后遍歷系統(tǒng)默認(rèn)配置文件中的所有配置項(xiàng),用open函數(shù)打開系統(tǒng)當(dāng)前配置目錄和系統(tǒng)配置備份目錄中的配置項(xiàng)文件,用此函數(shù)的返回值判斷配置項(xiàng)文件是否存在或是否正常,如果兩個(gè)目錄中文件都正常且相同則繼續(xù)判斷下一個(gè)配置項(xiàng);如果兩個(gè)目錄中文件都正常但不相同,則用系統(tǒng)當(dāng)前配置目錄中的配置項(xiàng)恢復(fù)系統(tǒng)配置備份目錄中的配置項(xiàng);如果一個(gè)目錄中的文件不存在或出現(xiàn)異常,則用另一個(gè)目錄中的文件進(jìn)行恢復(fù);如果兩個(gè)目錄中的文件都不存在或出現(xiàn)異常,在用系統(tǒng)默認(rèn)配置文件中的默認(rèn)配置恢復(fù)這兩個(gè)目錄中的配置項(xiàng)。
(3)系統(tǒng)運(yùn)行過程中需要讀取一個(gè)配置項(xiàng)的當(dāng)前值時(shí),只需要讀取系統(tǒng)當(dāng)前配置目錄中的配置項(xiàng)文件;如果此文件出現(xiàn)異常,則讀取系統(tǒng)配置備份目錄中的配置項(xiàng)文件;如果這兩個(gè)文件都存在問題,則讀取系統(tǒng)默認(rèn)配置文件中的默認(rèn)值。
(4)系統(tǒng)運(yùn)行過程中需要設(shè)置一個(gè)配置項(xiàng)的值時(shí),需要先設(shè)置系統(tǒng)當(dāng)前配置目錄中的配置項(xiàng),再設(shè)置系統(tǒng)配置備份目錄中的配置項(xiàng),這樣可以保證如果在設(shè)置兩個(gè)文件的過渡時(shí)刻發(fā)生斷電時(shí),系統(tǒng)初始化時(shí)可以恢復(fù)到最新配置。
本發(fā)明的有益效果是:實(shí)現(xiàn)了利用閃存保存配置信息時(shí),對閃存操作的磨損均衡處理,解決了壞塊及閃存擦寫過程中系統(tǒng)斷電導(dǎo)致的系統(tǒng)配置損壞的問題。
本發(fā)明的優(yōu)點(diǎn)是:和具體閃存類型無關(guān),NOR和NAND閃存都適用;便于移植,可以應(yīng)用于YAFFS2和JFFS2等建立在閃存上的文件系統(tǒng)。
附圖說明
圖1是本發(fā)明系統(tǒng)配置結(jié)構(gòu)示意圖;
圖2是本發(fā)明初始化系統(tǒng)配置的流程圖。
實(shí)施方法
下面結(jié)合附圖進(jìn)一步說明本發(fā)明是如何實(shí)現(xiàn)的:
實(shí)現(xiàn)一個(gè)配置管理函數(shù)庫,通過此函數(shù)庫操作默認(rèn)配置文件、當(dāng)前配置和備份配置。
系統(tǒng)的初始化進(jìn)程需要對系統(tǒng)配置進(jìn)行初始化,初始化流程如圖2所示。首先枚舉默認(rèn)配置文件中的配置項(xiàng),通過配置項(xiàng)的名稱打開當(dāng)前配置下對應(yīng)文件并進(jìn)行檢查,如果文件正常則對備份配置中的配置項(xiàng)進(jìn)行檢查,如果備份配置項(xiàng)正常則比較兩個(gè)配置項(xiàng)的值,如果值相同則繼續(xù)處理下一個(gè)配置項(xiàng),如果備份配置項(xiàng)異?;蛑挡煌谟卯?dāng)前配置項(xiàng)覆蓋備份配置項(xiàng);如果當(dāng)前配置項(xiàng)異常在檢查備份配置項(xiàng),如果備份配置項(xiàng)正常則用備份配置項(xiàng)恢復(fù)當(dāng)前配置項(xiàng);如果兩個(gè)配置項(xiàng)均異常則根據(jù)默認(rèn)配置創(chuàng)建配置項(xiàng)。
其他進(jìn)程必須等待系統(tǒng)配置初始化完成后才能對配置信息進(jìn)行讀寫。對于同一個(gè)配置項(xiàng),如果同時(shí)存在超過一個(gè)讀寫請求則通過文件讀寫鎖來保證文件內(nèi)容的完整性。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于西安龍飛軟件有限公司,未經(jīng)西安龍飛軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010171231.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- LINUX內(nèi)核動(dòng)態(tài)加載方法
- 一種Linux嵌入式系統(tǒng)的安全啟動(dòng)方法
- 一種加快嵌入式Linux系統(tǒng)啟動(dòng)的方法
- Linux文件系統(tǒng)的多點(diǎn)備份和實(shí)時(shí)保護(hù)方法
- 基于硬件的Linux軟件開發(fā)系統(tǒng)及其構(gòu)建方法
- 將VxWorks任務(wù)移植到Linux的方法及裝置
- 一種Linux內(nèi)核接管socket鏈接的方法和裝置
- 一種Linux系統(tǒng)的備份和還原方法
- 一種基于Linux系統(tǒng)盤的寫過濾系統(tǒng)和方法
- 一種基于Linux系統(tǒng)盤的熱插拔方法和系統(tǒng)





