嵌入式內(nèi)存數(shù)據(jù)庫(kù)引擎的研究與設(shè)計(jì)
1 嵌入式內(nèi)存數(shù)據(jù)庫(kù)技術(shù)發(fā)展的現(xiàn)狀
本文引用地址:http://m.butianyuan.cn/article/104904.htm數(shù)據(jù)庫(kù)理論與技術(shù)的發(fā)展極其迅速,其應(yīng)用日益廣泛,在當(dāng)今的信息社會(huì)中,它幾乎無(wú)所不在。以關(guān)系型為代表的三大經(jīng)典(層次、網(wǎng)狀、關(guān)系)型數(shù)據(jù)庫(kù)在傳統(tǒng)的(商務(wù)和管理的事務(wù)型)應(yīng)用領(lǐng)域獲得了極大成功,然而它們?cè)诂F(xiàn)代的(非傳統(tǒng))工程和時(shí)間關(guān)鍵型應(yīng)用面前卻顯得軟弱無(wú)力,面臨著新的嚴(yán)峻的挑戰(zhàn),由此而導(dǎo)致了嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的產(chǎn)生和發(fā)展。在實(shí)時(shí)應(yīng)用中,事務(wù)在運(yùn)行前的操作邏輯(操作類(lèi)型、順序等)、數(shù)據(jù)集及其結(jié)構(gòu)、行為以及時(shí)間的相關(guān)性等都是可預(yù)分析的。然而,對(duì)磁盤(pán)數(shù)據(jù)庫(kù)而言,數(shù)據(jù)的I/O 是造成事務(wù)執(zhí)行時(shí)間不確定、預(yù)報(bào)不準(zhǔn)確的關(guān)鍵因素。為此,要求以大內(nèi)存作為實(shí)時(shí)數(shù)據(jù)庫(kù)的主要存儲(chǔ)介質(zhì),使一個(gè)事務(wù)在活動(dòng)期間沒(méi)有I/O, 以達(dá)到較準(zhǔn)確的預(yù)報(bào),從而滿足實(shí)時(shí)事務(wù)的定時(shí)限制。但這要解決兩個(gè)問(wèn)題,就是適當(dāng)?shù)臄?shù)據(jù)安置和適時(shí)的內(nèi)外存交換。隨著內(nèi)存技術(shù)的高速發(fā)展,內(nèi)存數(shù)據(jù)庫(kù)技術(shù)日益成熟,在非實(shí)時(shí)系統(tǒng)中也得到了廣泛的應(yīng)用。
內(nèi)存數(shù)據(jù)庫(kù)(MMDB)把數(shù)據(jù)庫(kù)的主拷貝(即“工作版本”)常駐在內(nèi)存,使系統(tǒng)性能得到了極大的提高。但是,由于所有操作直接作用于內(nèi)存中的數(shù)據(jù)庫(kù)主拷貝上,數(shù)據(jù)庫(kù)極易受到操作系統(tǒng)和應(yīng)用軟件錯(cuò)誤造成的破壞,而且,數(shù)據(jù)庫(kù)恢復(fù)所包含的I/O 操作(如做日志、備份等)在事務(wù)運(yùn)行不需要I/O 操作的內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)中也顯得極為突出。因此,內(nèi)存數(shù)據(jù)庫(kù)的恢復(fù)機(jī)制對(duì)系統(tǒng)性能有重要的影響作用,內(nèi)存數(shù)據(jù)庫(kù)的恢復(fù)較之傳統(tǒng)的磁盤(pán)數(shù)據(jù)庫(kù)的恢復(fù)要復(fù)雜得多,也關(guān)鍵得多。數(shù)據(jù)恢復(fù)是內(nèi)存數(shù)據(jù)庫(kù)可靠、實(shí)用的關(guān)鍵,恢復(fù)技術(shù)的研究已成為MMDB 研究領(lǐng)域最熱門(mén)的課題。
2 內(nèi)存數(shù)據(jù)庫(kù)的定義
內(nèi)存數(shù)據(jù)庫(kù)的定義不應(yīng)涉及內(nèi)存的大小、存取數(shù)據(jù)所需I/O 的多少、數(shù)據(jù)何時(shí)進(jìn)入及怎樣才能留駐內(nèi)存等這些具體的實(shí)現(xiàn)技術(shù),而只包含數(shù)據(jù)庫(kù)常駐內(nèi)存(而不是磁盤(pán))、事務(wù)(不是系統(tǒng))的數(shù)據(jù)存取只涉及內(nèi)存的意思。其本質(zhì)特征是其“主拷貝”或“工作版本”常駐內(nèi)存,即活動(dòng)事務(wù)只與實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)的內(nèi)存拷貝打交道。顯然,它要求較大的內(nèi)存量,但并不要求任何時(shí)刻整個(gè)數(shù)據(jù)庫(kù)都能存放在內(nèi)存,即內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)還是要處理I/O。傳統(tǒng)的磁盤(pán)數(shù)據(jù)庫(kù)即使緩沖區(qū)足夠大,以致可以容納所有數(shù)據(jù)也不能算是一個(gè)MMDB。因?yàn)樗轻槍?duì)磁盤(pán)特性、在數(shù)據(jù)庫(kù)常駐磁盤(pán)的假定下設(shè)計(jì)的。例如,索引結(jié)構(gòu)還是針對(duì)磁盤(pán)存取的,數(shù)據(jù)的存取仍必須經(jīng)過(guò)緩沖區(qū)管理等。內(nèi)存數(shù)據(jù)庫(kù)的組織與管理要求新的適于內(nèi)存特點(diǎn)的數(shù)據(jù)結(jié)構(gòu)和算法,對(duì)于數(shù)據(jù)的組織與安置、數(shù)據(jù)庫(kù)存取、內(nèi)外存數(shù)據(jù)交換、查詢(xún)處理及優(yōu)化、并發(fā)控制及數(shù)據(jù)庫(kù)恢復(fù)都需要研究新的策略與機(jī)制。
內(nèi)存數(shù)據(jù)庫(kù)是一個(gè)較新的研究領(lǐng)域,結(jié)合各方面參考,現(xiàn)給出如下定義:
定義:設(shè)有數(shù)據(jù)庫(kù)DB,DBM(t)是t 時(shí)刻DB 在內(nèi)存中的數(shù)據(jù)集,DBM(t)真包含于DB; T S 為所有事務(wù)的集合,A T(t)是t 時(shí)刻的活動(dòng)事務(wù)集,A T(t)真包含于T S;D t(T)為T(mén) 在t 時(shí)刻的操作數(shù)據(jù)集,D t(T)真包含于DB;若在任一時(shí)刻t,均有:
對(duì)任一事務(wù)有T∈A T(t),D t(T)真包含于DBM(t)成立,則稱(chēng)DB 為一個(gè)內(nèi)存數(shù)據(jù)庫(kù),簡(jiǎn)記為MMDB 。
按此定義,MMDB 的“工作版本”(當(dāng)然也可以是整個(gè)數(shù)據(jù)庫(kù))常駐內(nèi)存,任何一個(gè)事務(wù)在執(zhí)行過(guò)程中沒(méi)有內(nèi)外存間的數(shù)據(jù)I/O。顯然,它需要一定的內(nèi)存容量,但并不要求整個(gè)數(shù)據(jù)庫(kù)都必須常駐在內(nèi)存。
3 內(nèi)存數(shù)據(jù)庫(kù)的特點(diǎn)
3.1 內(nèi)存數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)的組織和管理一個(gè)MMDB的邏輯整體主要由兩個(gè)部分構(gòu)成,即內(nèi)存版本與外存版本。 主存儲(chǔ)器是易失內(nèi)存,它存放MMDB的“工作版本”。它在邏輯上被劃分為若干分區(qū),一
個(gè)分區(qū)用來(lái)存放一個(gè)關(guān)系的數(shù)據(jù)。每個(gè)分區(qū)又物理地由若干相互鏈接的塊組成。一塊是一個(gè)固定長(zhǎng)度的連續(xù)區(qū)域,它是內(nèi)外存I/O的單位,也是內(nèi)存分配、回收以及對(duì)MMDB進(jìn)行恢復(fù)的單位。索引與數(shù)據(jù)記錄分離存放。
NV-RAM(NO Vola tile RAM)兼有內(nèi)存讀寫(xiě)速度快和在后備電池維護(hù)的情況下非易失的特點(diǎn),但價(jià)格昂貴,不便插拔,廣泛用于嵌入式系統(tǒng),并可與Flash-RAM配合使用,充當(dāng)Flash-RAM 寫(xiě)緩沖區(qū)。NV-RAM是主存儲(chǔ)器的拓延,目前可用UPS、固態(tài)磁盤(pán)或磁盤(pán)Cache等實(shí)現(xiàn)。主存數(shù)據(jù)與NV-RAM數(shù)據(jù)一起統(tǒng)稱(chēng)為MMDB的“內(nèi)存版本”。
磁盤(pán)存儲(chǔ)器用來(lái)存放未在內(nèi)存的那一部分?jǐn)?shù)據(jù)庫(kù)數(shù)據(jù),同時(shí)也用作數(shù)據(jù)庫(kù)恢復(fù)的備份,我們稱(chēng)之為“外存版本”。為便于實(shí)現(xiàn)內(nèi)外存間的數(shù)據(jù)交換,可將磁盤(pán)數(shù)據(jù)在邏輯上劃分為與內(nèi)存塊同樣長(zhǎng)度的定長(zhǎng)塊,建立相同類(lèi)型的索引。
3.2 事務(wù)處理
當(dāng)內(nèi)存數(shù)據(jù)庫(kù)用于非實(shí)時(shí)系統(tǒng)時(shí),除了日志和系統(tǒng)恢復(fù)的具體方式跟傳統(tǒng)數(shù)據(jù)庫(kù)差異比較大以外,事務(wù)處理過(guò)程與傳統(tǒng)數(shù)據(jù)庫(kù)的事務(wù)處理相似;然而,當(dāng)內(nèi)存數(shù)據(jù)庫(kù)用于實(shí)時(shí)系統(tǒng)時(shí),既實(shí)時(shí)內(nèi)存數(shù)據(jù)庫(kù)中,事務(wù)處理由于受到了時(shí)間上的限制,傳統(tǒng)數(shù)據(jù)庫(kù)的事務(wù)處理已經(jīng)不再適用。傳統(tǒng)的“ACID” 的事務(wù)概念及模型對(duì)實(shí)時(shí)事務(wù)不適合。實(shí)時(shí)事務(wù)表現(xiàn)出了許多不同的特征,如實(shí)時(shí)性和相關(guān)性。雖然實(shí)時(shí)事務(wù)的正確性與傳統(tǒng)事務(wù)一樣,也包括數(shù)據(jù)庫(kù)狀態(tài)正確性和事務(wù)執(zhí)行正確性?xún)蓚€(gè)方面,但其含義與內(nèi)容有很大的不同。在實(shí)時(shí)事務(wù)中,數(shù)據(jù)庫(kù)狀態(tài)正確性包含內(nèi)部一致性和時(shí)間一致性,事務(wù)執(zhí)行正確性則包含其結(jié)果正確性、行為正確性、結(jié)構(gòu)正確性和時(shí)間正確性等。事務(wù)調(diào)度也要采取相關(guān)的實(shí)時(shí)調(diào)度算法。本文中討論的內(nèi)存數(shù)據(jù)庫(kù)引擎針對(duì)非實(shí)時(shí)系統(tǒng)。
3. 3 系統(tǒng)恢復(fù)
數(shù)據(jù)庫(kù)的備份是數(shù)據(jù)庫(kù)的副本以及一些控制信息,在出現(xiàn)故障的情況下,可以隨時(shí)用它進(jìn)行恢復(fù)。數(shù)據(jù)庫(kù)備份最小化了數(shù)據(jù)丟失,能夠讓您使用恢復(fù)過(guò)程,從備份副本中重新構(gòu)造失敗的數(shù)據(jù)庫(kù)。有多種類(lèi)型的失敗導(dǎo)致需要恢復(fù)數(shù)據(jù)庫(kù)。其中包括語(yǔ)句失敗、用戶(hù)錯(cuò)誤、進(jìn)程失敗、數(shù)據(jù)庫(kù)實(shí)例失敗、媒介失敗等。但不是所有類(lèi)型的失敗都需要進(jìn)行人工交互。但是,在內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)中,由于所有操作都直接作用于內(nèi)存中的數(shù)據(jù)庫(kù)主拷貝上,數(shù)據(jù)庫(kù)極易受到操作系統(tǒng)和應(yīng)用軟件錯(cuò)誤造成的破壞,因此MMDB的恢復(fù)技術(shù)如備份、檢驗(yàn)點(diǎn)(Checkpoint)和重啟動(dòng)(restart)等都較常規(guī)的磁盤(pán)數(shù)據(jù)庫(kù)(DRDB)復(fù)雜。人們從體系結(jié)構(gòu)、事務(wù)提交、日志系統(tǒng)到備份、檢驗(yàn)點(diǎn)算法等各個(gè)方面進(jìn)行了大量的研究和探索。日志管理是內(nèi)存數(shù)據(jù)庫(kù)恢復(fù)機(jī)制中至關(guān)重要的一環(huán)。由于內(nèi)存有易失性,日志最好保存于另一穩(wěn)妥的介質(zhì)上(如磁盤(pán)、非易失內(nèi)存等),而對(duì)日志的I/O操作又將在某種程度上影響MMDB的性能,可能成為瓶頸影響系統(tǒng)的事務(wù)吞吐量。為此,人們研究了各種各樣的解決辦法,比如構(gòu)造非易失內(nèi)存用于保存部分日志;采用“成組提交”的技術(shù),使用影子內(nèi)存技術(shù)等來(lái)解決日志瓶頸問(wèn)題。在檢驗(yàn)點(diǎn)方面,為了提高系統(tǒng)效率,通常力圖使檢驗(yàn)點(diǎn)操作和事務(wù)處理同時(shí)進(jìn)行。為了提高速度指標(biāo)和綜合性能,MMDB系統(tǒng)往往利用附加的硬件設(shè)備如非易失內(nèi)存、專(zhuān)用的日志處理器、檢驗(yàn)點(diǎn)處理器等來(lái)支持高效、快速的數(shù)據(jù)恢復(fù)。
4 面向3G平臺(tái)嵌入式內(nèi)存數(shù)據(jù)庫(kù)引擎的設(shè)計(jì)
4.1 3G平臺(tái)中數(shù)據(jù)庫(kù)子系統(tǒng)整體架構(gòu)
4.1.1 數(shù)據(jù)庫(kù)系統(tǒng)各功能模塊在3G平臺(tái)系統(tǒng)中的位置 3G軟件平臺(tái)包括圖1所示的除OS和BSP外的6大軟件子系統(tǒng)。
圖1 3G 軟件平臺(tái)系統(tǒng)分布圖
DataBase 子系統(tǒng)負(fù)責(zé)管理平臺(tái)的物理資源和平臺(tái)實(shí)現(xiàn)的信令、協(xié)議的配置信息,同時(shí)向其它子系統(tǒng)提供數(shù)據(jù)庫(kù)訪問(wèn)接口。它工作于操作系統(tǒng)之上。 承載子系統(tǒng)向業(yè)務(wù)子系統(tǒng)、信令子系統(tǒng)、OAM和網(wǎng)管子系統(tǒng)提供ATM、IP、等方面的承載服務(wù)。它工作于操作系統(tǒng)和DataBase 子系統(tǒng)之上。 信令子系統(tǒng)實(shí)現(xiàn)窄帶No.7 信令、寬帶No.7 信令、IP信令、網(wǎng)關(guān)控制信令,向業(yè)務(wù)處理子系統(tǒng)提供服務(wù)。它工作于操作系統(tǒng)、DataBase子系統(tǒng)和承載子系統(tǒng)之上。 系統(tǒng)控制子系統(tǒng)負(fù)責(zé)對(duì)整個(gè)系統(tǒng)的監(jiān)控、啟動(dòng)、版本下載等。它工作于操作系統(tǒng)和DataBase 子系統(tǒng)之上。
OAM 和網(wǎng)管子系統(tǒng)提供平臺(tái)與網(wǎng)管后臺(tái)的統(tǒng)一接口,負(fù)責(zé)對(duì)平臺(tái)的協(xié)議、信令進(jìn)行配置和管理,以及提供必要的統(tǒng)計(jì)數(shù)據(jù)。它工作于操作系統(tǒng)、承載子系統(tǒng)、DataBase子系統(tǒng)之上。
業(yè)務(wù)處理子系統(tǒng)實(shí)現(xiàn)系統(tǒng)提供的各種業(yè)務(wù)。它工作于操作系統(tǒng)、承載子系統(tǒng)、信令子系統(tǒng)、DataBase子系統(tǒng)之上。
數(shù)據(jù)庫(kù)子系統(tǒng)分布在3G 平臺(tái)各處理器上。從結(jié)構(gòu)上看數(shù)據(jù)庫(kù)子系統(tǒng)屬于分布式數(shù)據(jù)庫(kù)系統(tǒng);主要為平臺(tái)各個(gè)子系統(tǒng)提供數(shù)據(jù)支持,并為將來(lái)其上的擴(kuò)展業(yè)務(wù)提供支持易擴(kuò)充機(jī)制的數(shù)據(jù)庫(kù)模型。
4.1.2 數(shù)據(jù)庫(kù)子系統(tǒng)內(nèi)部模塊劃分
數(shù)據(jù)庫(kù)子系統(tǒng)內(nèi)部劃分五大功能模塊,支持?jǐn)?shù)據(jù)來(lái)源為RAM、FLASH、硬盤(pán)特定格式以及商用數(shù)據(jù)庫(kù)等多種介質(zhì)。五大功能模塊分別是:輸入輸出模塊、對(duì)象管理模塊、業(yè)務(wù)處理模塊、維護(hù)管理模塊及平臺(tái)系統(tǒng)工具包。
輸入輸出模塊(I/O模塊)負(fù)責(zé)完成整個(gè)平臺(tái)所有與硬件介質(zhì)相關(guān)的數(shù)據(jù)、裝載、轉(zhuǎn)儲(chǔ)、存儲(chǔ)空間管理等等相關(guān)功能。
對(duì)象管理模塊是整個(gè)平臺(tái)的核心模塊(DBCORE),完成主體功能,即對(duì)內(nèi)存數(shù)據(jù)、表、索引、鎖等等系列對(duì)象的核心組織功能,對(duì)整個(gè)系統(tǒng)的性能高低有決定性的影響。提供簡(jiǎn)易的內(nèi)部并發(fā)控制手段。
業(yè)務(wù)處理模塊是針對(duì)數(shù)據(jù)庫(kù)平臺(tái)的用戶(hù)提供的使用接口層,完成對(duì)內(nèi)存數(shù)據(jù)庫(kù)的訪問(wèn)服務(wù)??梢灾С諥PI 方式及類(lèi)SQL 訪問(wèn)方式。支持分布式數(shù)據(jù)訪問(wèn)方式。 維護(hù)管理模塊完成對(duì)整個(gè)平臺(tái)系統(tǒng)的監(jiān)控及管理,包括探針、告警、日志、實(shí)時(shí)業(yè)務(wù)跟
蹤、遠(yuǎn)程網(wǎng)絡(luò)訪問(wèn)等等系列功能的實(shí)施。 平臺(tái)系統(tǒng)工具包針對(duì)各模塊均有完善的工具支持,具體如下: 介質(zhì)層工具:各類(lèi)特定介質(zhì)的數(shù)據(jù)存儲(chǔ)文件檢索、修改、生成。 對(duì)象管理模塊工具:根據(jù)對(duì)象屬性區(qū)別性選擇生成主體程序框架,若無(wú)特殊要求,生成
的代碼可直接用于對(duì)象管理。 I/O 模塊工具:根據(jù)內(nèi)存數(shù)據(jù)庫(kù)分布模型,生成數(shù)據(jù)裝載、轉(zhuǎn)儲(chǔ)及內(nèi)存數(shù)據(jù)存儲(chǔ)空間
管理等框架代碼;業(yè)務(wù)處理子系統(tǒng)工具,常規(guī)API 代碼生成。 維護(hù)管理模塊工具:接口跟蹤、日志等輸出文件的檢索、管理工具。 其他:各類(lèi)對(duì)象(表、索引……)設(shè)計(jì)及相關(guān)說(shuō)明文檔生成。
4. 2 系統(tǒng)對(duì)象設(shè)計(jì)原理和處理流程 本子系統(tǒng)是按照面對(duì)對(duì)象的方法進(jìn)行設(shè)計(jì)的,因此在敘述系統(tǒng)處理流程時(shí)以子系統(tǒng)的各個(gè)對(duì)象為主線,而同步流程和監(jiān)控流程設(shè)計(jì)上有其自身特點(diǎn),對(duì)它們的敘述以過(guò)程為主線。
本子系統(tǒng)的數(shù)據(jù)分為數(shù)據(jù)表、索引、隊(duì)列、同步實(shí)例、監(jiān)控實(shí)例、單向資源隊(duì)列六大類(lèi)。其中數(shù)據(jù)表為數(shù)據(jù)庫(kù)組織的核心,然后為數(shù)據(jù)定位的方便建立索引,為資源管理的方便建立了隊(duì)列,出于數(shù)據(jù)同步的需要建立了同步實(shí)例,出于資源監(jiān)控的需要,建立了監(jiān)控實(shí)例,而單向資源隊(duì)列作為輔助數(shù)據(jù)表和同步實(shí)例的內(nèi)存管理之用。
以上除單向資源隊(duì)列外每一類(lèi)數(shù)據(jù)都定義為系統(tǒng)的數(shù)據(jù)對(duì)象類(lèi),系統(tǒng)對(duì)于同一對(duì)象類(lèi)的數(shù)據(jù)統(tǒng)一定義,統(tǒng)一管理。一個(gè)具體的數(shù)據(jù)對(duì)象稱(chēng)為某一數(shù)據(jù)對(duì)象類(lèi)的數(shù)據(jù)實(shí)例。系統(tǒng)為表、索引、隊(duì)列、同步、監(jiān)控的所有數(shù)據(jù)實(shí)例統(tǒng)一分配唯一一個(gè)32 位整數(shù)加以標(biāo)識(shí),稱(chēng)為數(shù)據(jù)實(shí)例句柄。對(duì)數(shù)據(jù)實(shí)例的存取都是通過(guò)數(shù)據(jù)實(shí)例句柄進(jìn)行的。采用這種方式的一個(gè)優(yōu)點(diǎn)是數(shù)據(jù)管理的穩(wěn)定性不隨著數(shù)據(jù)實(shí)例的增加而變化,有利于系統(tǒng)的穩(wěn)定。另一個(gè)優(yōu)點(diǎn)是便于數(shù)據(jù)對(duì)象類(lèi)的擴(kuò)充,由于不同數(shù)據(jù)對(duì)象類(lèi)別分別管理,數(shù)據(jù)對(duì)象類(lèi)之間的獨(dú)立性確保在擴(kuò)充數(shù)據(jù)對(duì)象類(lèi)后,不破壞原有數(shù)據(jù)的安全性。
單向資源隊(duì)列作為在表對(duì)象和同步對(duì)象內(nèi)部使用的對(duì)象。沒(méi)有統(tǒng)一分配句柄,相關(guān)的表通過(guò)保存單向資源隊(duì)列對(duì)象的指針實(shí)現(xiàn)操作。
5 小結(jié):
本文作者創(chuàng)新點(diǎn)是本文首先介紹了嵌入式內(nèi)存數(shù)據(jù)庫(kù)技術(shù)現(xiàn)狀,然后簡(jiǎn)單介紹了內(nèi)存數(shù)據(jù)庫(kù)技術(shù)的特點(diǎn)等并提出了一個(gè)適用于3G平臺(tái)的嵌入式內(nèi)存數(shù)據(jù)庫(kù)引擎,隨著計(jì)算機(jī)技術(shù)的高速發(fā)展和人們對(duì)信息處理速度不斷增長(zhǎng)的需求,大容量的內(nèi)存數(shù)據(jù)庫(kù)和經(jīng)過(guò)精簡(jiǎn)的嵌入式內(nèi)存數(shù)據(jù)庫(kù)將會(huì)有越來(lái)越大的應(yīng)用空間。目前,還沒(méi)有比較好的通用的嵌入式內(nèi)存數(shù)據(jù)庫(kù)產(chǎn)品,進(jìn)行這方面的開(kāi)發(fā)和實(shí)現(xiàn)將會(huì)有很大的市場(chǎng)潛力和空間。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論