• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于多標(biāo)簽的內(nèi)核配置圖及其應(yīng)用

    2021-04-01 01:19:24侯朋朋武延軍于佳耕苗玉霞
    計算機研究與發(fā)展 2021年3期
    關(guān)鍵詞:可視化

    侯朋朋 張 珩 武延軍 于佳耕 邰 陽 苗玉霞

    1(智能軟件研究中心(中國科學(xué)院軟件研究所) 北京 100190) 2(中國科學(xué)院大學(xué) 北京 100049)

    (pengpeng@iscas.ac.cn)

    Linux作為開源軟件基石其應(yīng)用場景廣泛,從資源匱乏的邊緣計算到云計算中心、超算中心均有廣泛應(yīng)用,不同應(yīng)用場景需求各異,如邊緣計算場景更關(guān)注內(nèi)核大小,超算中心場景更關(guān)注系統(tǒng)性能.為適應(yīng)復(fù)雜的應(yīng)用場景,Linux提供了數(shù)量巨大的內(nèi)核配置項便于靈活設(shè)置個性化內(nèi)核.內(nèi)核配置項覆蓋廣泛,涉及體系架構(gòu)、文件系統(tǒng)、內(nèi)存管理、安全加密、驅(qū)動設(shè)置等.內(nèi)核配置項可使能或禁用內(nèi)核模塊或機制,如CONFIG_USB設(shè)置為Y(yes)M(model)則表示將USB模塊直接編譯或以可加載模塊的方式進入內(nèi)核,設(shè)置為N(no)則在內(nèi)核編譯時禁用該模塊.除Y(yes)M(model)N(no)外,內(nèi)核配置項值也可設(shè)置為其他值,如設(shè)置默認(rèn)IO調(diào)度策略時可將CONFIG_DEFAULT_IOSCHED設(shè)置為“cfq”或“deadline”.

    Linux內(nèi)核靈活的配置項機制在內(nèi)核裁剪、內(nèi)核安全增強、內(nèi)核性能優(yōu)化等應(yīng)用場景中均有廣泛應(yīng)用.以內(nèi)核性能優(yōu)化為例,Ren等人[1]基于Ubuntu的v3.0至v4.20內(nèi)核版本的研究發(fā)現(xiàn),造成Linux內(nèi)核性能下降的原因有11項,其中涉及到內(nèi)核配置項有8項,且涉及內(nèi)核配置項帶來的性能損失大于其他因素,通過調(diào)整內(nèi)核配置項值等操作可將Redis,Apache,Nginx工作負(fù)載提高56%,33%,34%.

    雖然Linux內(nèi)核提供了靈活、全面的內(nèi)核配置項,但正確使用這些配置項門檻高,難度大.配置項的數(shù)量巨大且增長快速,配置項的默認(rèn)值在不同內(nèi)核版本中經(jīng)常改變,即使專業(yè)的內(nèi)核團隊要能夠正確設(shè)置配置項也面臨很多挑戰(zhàn).如圖1所示[2],橫軸表示Linux內(nèi)核版本號,縱軸表示內(nèi)核配置項數(shù)量.

    Fig. 1 Kernel configuration item growth trend圖1 內(nèi)核配置項增長趨勢

    內(nèi)核v5.3版本有15 000多個內(nèi)核配置項,從內(nèi)核v4.0版本到v5.3版本間增長了3 000多個配置項.Ubuntu內(nèi)核4.16版本中已設(shè)置的內(nèi)核配置項有7 520項,而當(dāng)前Linux內(nèi)核代碼仍在快速增長,平均每小時接受8.5次代碼提交[3],可預(yù)見內(nèi)核配置項的數(shù)量會同步增長.為了適應(yīng)新硬件、新場景,內(nèi)核配置項值需要適時進行調(diào)整,如Ubuntu v3.1版本和v3.0版本的配置文件相比,刪除配置項100項,新增配置項117項,此外還有13個配置項的值變更[4].專業(yè)的內(nèi)核團隊在設(shè)置內(nèi)核配置項時也會出現(xiàn)錯誤,Ubuntu曾在v3.10版本中無意打開配置項CONFIG_CONTEXT_TRACKING_FORCE,該配置項的錯誤設(shè)置導(dǎo)致系統(tǒng)性能下降,直到v3.16版本中該配置項才被修復(fù)[5-7].

    針對當(dāng)前內(nèi)核配置項數(shù)量巨大、難以理解、設(shè)置困難等問題,提出了一種基于多標(biāo)簽的內(nèi)核配置圖,該圖包含內(nèi)核配置項間的依賴關(guān)系(從中可得到父配置項標(biāo)簽和子配置項標(biāo)簽)、功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽和配置項使能率(配置項在各個內(nèi)核版本中的使能(enable)比例)標(biāo)簽.其中依賴關(guān)系屬于配置項之間的關(guān)系,使能率標(biāo)簽屬于配置項自身屬性,功能標(biāo)簽、性能標(biāo)簽和安全標(biāo)簽不僅是配置項屬性,也可以通過此3種標(biāo)簽為不同的內(nèi)核配置項建立關(guān)聯(lián)關(guān)系.該內(nèi)核配置圖可輔助內(nèi)核開發(fā)人員高效理解和設(shè)置內(nèi)核配置項,在內(nèi)核啟動優(yōu)化、內(nèi)核裁剪、內(nèi)核安全增強、內(nèi)核性能優(yōu)化、內(nèi)核配置項異常檢測,內(nèi)核配置項智能問答和內(nèi)核配置項推薦等場景均可應(yīng)用.該內(nèi)核配置圖提供了可視化功能,更加直觀、高效、人性化.此外,本文將內(nèi)核配置圖應(yīng)用到檢索場景,設(shè)計了面向內(nèi)核配置項的檢索框架KCIR(kernel config information retrieval),該框架基于內(nèi)核配置圖中的標(biāo)簽信息和依賴關(guān)系分別對查詢語句和內(nèi)核配置項描述文本進行了擴展.實驗表明與傳統(tǒng)檢索框架相比,KCIR對檢索效果提升顯著,通過對KCIR的有效性評估驗證了內(nèi)核配置圖在實際應(yīng)用中的有效性.

    本文的主要貢獻包括3個方面:

    1) 提出一種基于多標(biāo)簽的內(nèi)核配置圖,包含內(nèi)核配置項的依賴關(guān)系、功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽,此外還包含了基于內(nèi)核社區(qū)和主流發(fā)行版(Ubuntu和Fedora)的各個內(nèi)核版本的使能率.

    2) 提供內(nèi)核配置圖的可視化功能:配置項間的依賴關(guān)系可視化,基于標(biāo)簽的內(nèi)核配置項聚類可視化,圍繞配置項的多標(biāo)簽可視化.

    3) 基于內(nèi)核配置圖實現(xiàn)了面向內(nèi)核配置項的檢索框架KCIR,并通過與傳統(tǒng)檢索框架的對比實驗,表明KCIR對檢索效果有顯著的提升.

    1 基于多標(biāo)簽的內(nèi)核配置圖的設(shè)計和實現(xiàn)

    內(nèi)核配置圖包含配置項間的依賴關(guān)系、功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽以及基于內(nèi)核社區(qū)和主流發(fā)行版(Ubuntu和Fedora)的使能率標(biāo)簽,其中依賴關(guān)系屬于配置項之間的關(guān)系,使能率標(biāo)簽屬于配置項自身屬性,功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽這3種標(biāo)簽則兼顧了配置項屬性也為不同的配置項建立了關(guān)聯(lián)關(guān)系.

    1) 內(nèi)核配置項間依賴關(guān)系.內(nèi)核系統(tǒng)中模塊間依賴關(guān)系廣泛存在,如文件系統(tǒng)Ext4,XFS等均依賴于VFS(virtual file system)模塊,同時模塊內(nèi)的子模塊間也存在依賴關(guān)系,如配置項CONFIG_EXT4_FS提供對Ext4文件系統(tǒng)[8]的支持,配置項CONFIG_EXT4_FS_SECURITY提供Ext4安全標(biāo)簽功能,只有配置項CONFIG_EXT4_FS使能后,配置項CONFIG_EXT4_FS_SECURITY才能生效.內(nèi)核配置項可能依賴于多個配置項,同時也可能存在多個配置項依賴于該內(nèi)核配置項.為了便于后續(xù)描述,我們定義2個關(guān)鍵詞:

    定義1.父配置項.將當(dāng)前配置項直接依賴的配置項稱為其父配置項.

    定義2.子配置項.直接依賴于當(dāng)前配置項的內(nèi)核配置項稱為其子配置項.

    基于依賴關(guān)系可為當(dāng)前配置項創(chuàng)建其父配置項標(biāo)簽和子配置項標(biāo)簽.

    2) 功能標(biāo)簽.即根據(jù)內(nèi)核配置項功能特征為其創(chuàng)建1個或者多個標(biāo)簽,如配置項CONFIG_NETFILTER_NETLINK_LOG涉及到了網(wǎng)絡(luò)和日志2方面的功能,為其創(chuàng)建“network”和“l(fā)og”2個標(biāo)簽.

    3) 性能標(biāo)簽.即根據(jù)內(nèi)核配置項性能特性為配置項創(chuàng)建1個或者多個標(biāo)簽.若內(nèi)核配置項會影響系統(tǒng)的性能,不論該影響為正面影響或負(fù)面影響,均為其創(chuàng)建性能標(biāo)簽.性能標(biāo)簽主要包含CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)4種.

    4) 安全標(biāo)簽.該標(biāo)簽涉及的內(nèi)核配置項有2類.一類配置項自身屬于安全增強機制,如配置項CONFIG_SECURI TY_NETWORK本身就是安全機制的一部分;另一類配置項包含潛在的安全缺陷,如CONFIG_KVM涉及的KVM(kernel-based virtual machine)模塊暴露過CVE-2019-19332等漏洞.

    5) 使能率標(biāo)簽.即包括基于內(nèi)核社區(qū)[9]的使能率和基于發(fā)行版的使能率.內(nèi)核配置項若未設(shè)置則默認(rèn)是禁用的,只有經(jīng)過使能(enable)的配置項才能生效,如將配置項設(shè)置為Y(yes)或M(model).基于各內(nèi)核版本中該配置項的使能情況計算出該配置項的使能率,使能率是量化配置項在實際應(yīng)用中重要性的一個指標(biāo).將內(nèi)核社區(qū)和主流發(fā)行版(Ubuntu和Fedora)區(qū)別對待是因為即使對同一內(nèi)核配置項,兩者的使能狀態(tài)會有不同,如配置項CONFIG_RCU_TRACE在內(nèi)核社區(qū)發(fā)布的4.15版本中使能,而Ubuntu的內(nèi)核4.15版本中禁用;反之,配置項CONFIG_INTEL_IDLE在Ubuntu發(fā)布的內(nèi)核4.15版本中使能,而在內(nèi)核社區(qū)的版本中禁用.

    內(nèi)核配置圖中的功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽和使能率標(biāo)簽屬于傳統(tǒng)標(biāo)簽,其值是屬性值;通過內(nèi)核配置項間的依賴關(guān)系得到的父配置項和子配置項屬于特殊標(biāo)簽,該類標(biāo)簽本身是內(nèi)核配置項,而不是純粹的屬性值.

    內(nèi)核配置項間關(guān)聯(lián).如圖2(a)所示,內(nèi)核配置項間的關(guān)聯(lián)關(guān)系主要通過依賴關(guān)系和3種標(biāo)簽(功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽)建立.其中有向?qū)嵕€表示依賴關(guān)系,由父配置項指向子配置項;虛線關(guān)聯(lián)的內(nèi)核配置項屬于同一標(biāo)簽,不同的虛線表示不同的標(biāo)簽類型,可以通過標(biāo)簽將沒有依賴關(guān)系的配置項聯(lián)系起來.內(nèi)核配置圖通過依賴關(guān)系和多種標(biāo)簽為配置項之間建立多元的關(guān)聯(lián)關(guān)系.內(nèi)核配置圖為配置項從不同維度建立關(guān)聯(lián)關(guān)系,挖掘配置項之間更深層次的關(guān)系,其要比傳統(tǒng)的樹結(jié)構(gòu)組織方式更加豐富.

    內(nèi)核配置項自身屬性.如圖2(b)所示,內(nèi)核配置項屬性主要包括父配置項標(biāo)簽(CONFIG_FATHER)、子配置項標(biāo)簽(CONFIG_SON1,CONFIG_SON2)、功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽、使能率,圍繞配置項提供不同維度的屬性信息,在開發(fā)人員使能或者禁用該配置項時可輔助決策.

    Fig. 2 Schematic diagram of kernel configuration items圖2 內(nèi)核配置示意圖

    內(nèi)核配置圖提供可視化功能,包括依賴關(guān)系可視化、功能標(biāo)簽聚類可視化、性能標(biāo)簽聚類可視化、安全標(biāo)簽聚類可視化和圍繞內(nèi)核配置項的多標(biāo)簽可視化,其可以輔助內(nèi)核開發(fā)人員高效的理解和設(shè)置內(nèi)核配置項,在內(nèi)核啟動優(yōu)化、內(nèi)核裁剪、內(nèi)核安全增強、內(nèi)核性能優(yōu)化、內(nèi)核配置項異常檢測、內(nèi)核配置項智能問答、內(nèi)核配置項推薦等場景均可應(yīng)用.

    1.1 依賴關(guān)系

    將內(nèi)核配置項集合設(shè)為S={C1,C2,…,Cn},其中Ci表示第i個配置項,n表示集合中內(nèi)核配置項的數(shù)目,依賴關(guān)系D定義為集合S上的二元關(guān)系,對于任意2個配置項Ci和Cj,且Ci,Cj∈S,若Ci的狀態(tài)改變會影響Cj的狀態(tài),則配置項Cj依賴于配置項Ci,其依賴關(guān)系D定義為D={Cj,Ci|Ci,Cj∈S}.內(nèi)核配置項間的依賴關(guān)系D是基于內(nèi)核的Kconfig文件[10]抽取,內(nèi)核配置項在Kconfig文件中的定義如圖3所示,涉及到依賴關(guān)系的關(guān)鍵字有“depends on”“select”“imply”.其中“depends on”表示當(dāng)前配置項依賴于其他配置項,CONFIG_NAME依賴CONFIG_A,即CONFIG_A為CONFIG_NAME的父配置項.“select”表示反向依賴關(guān)系即CONFIG_B依賴于CONFIG_NAME,即CONFIG_B為其子依賴項.“imply”是弱化版的“select”,表示反向依賴關(guān)系但強制性較弱.本文基于“depends on”“select”“imply”三個關(guān)鍵字構(gòu)建配置項間的依賴關(guān)系.一個配置項可以有多個父配置項和多個子配置項,創(chuàng)建的內(nèi)核配置項依賴關(guān)系圖是一個有向無環(huán)圖.

    Fig. 3 Configuration item definition in Kconfig圖3 Kconfig中內(nèi)核配置項定義

    基于依賴關(guān)系可獲取內(nèi)核配置項的父配置項和子配置項,父子配置項可看作特殊標(biāo)簽,其本身是內(nèi)核配置項,同時也是當(dāng)前配置項的標(biāo)簽.基于父子配置項通過遞歸操作可進一步得到其祖父配置項和子孫配置項,依賴關(guān)系具有傳遞性.在內(nèi)核裁剪、內(nèi)核優(yōu)化等應(yīng)用場景中,通常需要使能或禁用某內(nèi)核配置項,基于依賴關(guān)系便于獲取當(dāng)前配置項的所有子孫配置項,利于分析該配置項變更的影響范圍,如CONFIG_AUDIT配置項表示內(nèi)核審計功能,若使能該配置項會給系統(tǒng)調(diào)用帶來性能開銷,但基于依賴關(guān)系易知SELinux[11]等安全機制均依賴于該配置項,若啟用SELinux相關(guān)安全機制則不能禁用CONFIG_AUDIT配置項.此外,子孫配置項數(shù)目也是衡量配置項重要性的一個指標(biāo),若某內(nèi)核配置項有30個子孫配置項,則其重要性通常大于沒有子孫的內(nèi)核配置項.

    構(gòu)建內(nèi)核配置項間依賴關(guān)系時需關(guān)注不同體系架構(gòu)帶來的依賴關(guān)系差異,否則會引入潛在錯誤依賴信息.同一個內(nèi)核配置項在不同平臺下定義經(jīng)常有差異,如圖4中為內(nèi)核配置項CONFIG_ARCH_HIBERNATION_POSSIBLE在ARM和ARM64架構(gòu)下的定義,該配置項在ARM架構(gòu)下依賴于配置項CONFIG_MMU,在ARM64架構(gòu)下依賴于CONFIG_CPU_PM.若忽略不同架構(gòu)差異則會引入錯誤的依賴關(guān)系,甚至導(dǎo)致依賴關(guān)系圖從有向無環(huán)圖變?yōu)橛邢蛴协h(huán)圖,而有向有環(huán)圖會導(dǎo)致創(chuàng)建或獲取依賴關(guān)系時陷入死循環(huán),程序崩潰.

    如圖5所示,依賴關(guān)系構(gòu)成一個有向有環(huán)的循環(huán)圖(由父配置項指向子配置項),為了清晰展示圖中省略了配置項的名稱前綴“CONFIG_”,依賴關(guān)系中的“comm”表示該依賴關(guān)系屬于多個體系架構(gòu)的公共依賴關(guān)系,“ARM”表示該依賴關(guān)系針對ARM架構(gòu),“ARM64”表示該依賴關(guān)系針對ARM64架構(gòu).圖5中產(chǎn)生循環(huán)的原因是將內(nèi)核配置項CONFIG_CPU_PM和CONFIG_ARCH_HIBERNATION_POSSIBLE在ARM64架構(gòu)中存在的依賴關(guān)系引入到ARM架構(gòu)的依賴關(guān)系圖中,而如圖4所示,基于ARM架構(gòu)的內(nèi)核配置項定義中此兩者并不存在依賴關(guān)系.

    Fig. 4 CONFIG_ARCH_HIBERNATION_POSSIBLE under different architectures圖4 不同架構(gòu)下內(nèi)核配置項CONFIG_ARCH_HIBERNATIO_POSSIBLE定義

    Fig. 5 Diagram of abnormal kernel configuration dependencies圖5 內(nèi)核配置項異常依賴關(guān)系圖

    1.2 功能標(biāo)簽

    功能標(biāo)簽是基于內(nèi)核配置項的功能描述生成的標(biāo)簽,其功能描述主要從內(nèi)核自帶的Kconfig,Documents,Git log等文檔中抽取.功能標(biāo)簽的類型不僅包含內(nèi)核模塊中常見的機制如Filesystem(文件系統(tǒng))、Memory manage(內(nèi)存管理),也包括非模塊功能如Log(日志)、Debug(調(diào)試)等標(biāo)簽,部分功能標(biāo)簽示例如表1.一個內(nèi)核配置項可以有多個功能標(biāo)簽,如CONFIG_BFQ_CGROUP_DEBUG涉及Debug,Schedule,Cgroup這3個標(biāo)簽.

    Table 1 Function Label Example表1 功能標(biāo)簽示例

    功能標(biāo)簽等信息和依賴關(guān)系相互補充.很多內(nèi)核配置項間沒有依賴關(guān)系,但是存在其他潛在關(guān)聯(lián).如配置項CONFIG_XEN_MCE_LOG涉及Xen日志功能,配置項CONFIG_SCSI_LOGGING涉及SCSI(small computer system interface)日志功能,從依賴關(guān)系分析,CONFIG_XEN_MCE_LOG和CONFIG_SCSI_LOGGIN沒有依賴關(guān)系,但是兩者均涉及日志功能,可通過標(biāo)簽“Log”將2個配置項關(guān)聯(lián).相比依賴關(guān)系中的直觀聯(lián)系,標(biāo)簽更能深層挖掘出配置項間的潛在關(guān)聯(lián)關(guān)系.

    內(nèi)核配置項采取多標(biāo)簽策略而不是分類策略是由于Linux內(nèi)核功能復(fù)雜,很多功能模塊或者機制并不能清晰歸為某一類別,如內(nèi)核源碼文件夾中Ceph在Fs和Net目錄下均有子目錄;Bluetooth在Drivers和Net目錄下均有子目錄.配置項存在同樣問題,一個配置項通常涉及多個子模塊或機制.以CONFIG_PCI_XEN為例,其既可以歸為Xen子類別,也可以歸為PCI(peripheral component interconnect)子類別.內(nèi)核配置項分類時,從不同角度會將配置項分入不同的類別,難以處理跨模塊的配置項,而標(biāo)簽方式更加靈活,可以通過多標(biāo)簽將跨模塊的配置項關(guān)聯(lián)起來.

    內(nèi)核配置項數(shù)量巨大,僅Ubuntu 4.16版本中使能的有7 520個配置項,人工創(chuàng)建多標(biāo)簽工作量大、易出錯.可借助Scikit-learn[12]中的多標(biāo)簽算法(如OneVsRest策略+支持向量機算法)來輔助多標(biāo)簽的生成:首先Linux專家創(chuàng)建標(biāo)簽并為每個標(biāo)簽挑選初始配置項,然后依據(jù)多標(biāo)簽算法為剩余配置項生成標(biāo)簽.在后續(xù)的性能標(biāo)簽和安全標(biāo)簽中均可借助Scikit-learn中的多標(biāo)簽算法輔助創(chuàng)建標(biāo)簽.

    1.3 性能標(biāo)簽

    研究顯示內(nèi)核配置項的錯誤設(shè)置已是當(dāng)前內(nèi)核性能降低的主要原因,Ren等人[1]發(fā)現(xiàn)內(nèi)核配置項的錯誤設(shè)置會導(dǎo)致核心系統(tǒng)調(diào)用性能降低或波動,很多系統(tǒng)調(diào)用性能相比老版本顯著下降,如poll,mmap,select等系統(tǒng)調(diào)用在內(nèi)核V4.20比內(nèi)核V4.0版本性能開銷成本增長了100%.內(nèi)核配置項對于系統(tǒng)性能影響很大,且內(nèi)核系統(tǒng)很難優(yōu)化,Red Hat和Suse通常需要6~18個月來優(yōu)化上游Linux內(nèi)核的性能[1];Google組織100多名工程師團隊對數(shù)據(jù)中心的內(nèi)核進行性能調(diào)優(yōu),對每個新內(nèi)核的優(yōu)化需要6~18個月的時間[1].為了輔助內(nèi)核開發(fā)者通過配置項調(diào)試系統(tǒng)性能,本節(jié)針對配置項創(chuàng)建性能標(biāo)簽.

    本文基于Linux內(nèi)核提供的Kconfig,Documents,Git log等信息,評估配置項對系統(tǒng)性能的影響并生成標(biāo)簽,性能標(biāo)簽主要分為4種:內(nèi)存、磁盤、網(wǎng)絡(luò)、CPU.若某內(nèi)核配置項對內(nèi)存、磁盤、網(wǎng)絡(luò)、CPU中的某一種或多種硬件資源性能有提高或降低,則為該配置項貼上相應(yīng)的標(biāo)簽.性能標(biāo)簽示例如表2所示:

    Table 2 Performance Label Example表2 性能標(biāo)簽示例

    本文對內(nèi)核配置項的性能影響沒有依據(jù)性能提升或降低進一步創(chuàng)建標(biāo)簽,因為并非所有配置項對性能的影響都很明確,很多配置項對性能的影響與其使用的具體應(yīng)用場景緊密相關(guān).一些內(nèi)核配置項對系統(tǒng)性能的影響比較明確,如CONFIG_AIO配置項支持異步IO,常被高性能多線程使用,使能后有利于提高CPU的性能,CONFIG_CONTEXT_TRACKING_FORCE配置項負(fù)責(zé)上下文的強制跟蹤,該配置項使能后將會降低系統(tǒng)調(diào)用性能.另一些內(nèi)核配置項對系統(tǒng)性能影響比較模糊,需要根據(jù)硬件環(huán)境、應(yīng)用場景才能確定.如通過配置項CONFIG_DEFAULT_IOSCHED將IO調(diào)度策略設(shè)置為CFQ(completely fair queuing),該調(diào)度策略有利于提高傳統(tǒng)機械磁盤的性能,但對SSD硬盤并不是最優(yōu)調(diào)度策略,該配置項對系統(tǒng)性能的影響跟硬件緊密相關(guān);配置項CONFIG_PARAVIRT_SPINLOCKS支持半虛擬化自旋鎖,使能該配置項后可以提高KVMXen虛擬機CPU性能,但對宿主機性能有負(fù)面影響,該配置項帶來的性能影響跟應(yīng)用場景緊密相關(guān).

    1.4 安全標(biāo)簽

    內(nèi)核配置項對系統(tǒng)安全的影響有2種:

    1) 配置項涉及安全模塊或機制,使能該配置項后即為內(nèi)核提供相關(guān)安全機制,該類為安全增強標(biāo)簽;

    2) 配置項關(guān)聯(lián)的功能模塊本身存在潛在的安全隱患,使能該配置項后會將該模塊中的安全隱患引入內(nèi)核,該類為安全削弱標(biāo)簽.

    2種安全標(biāo)簽分類基于內(nèi)核的Kconfig,Docu-ments,Git log信息以及CVE(common vulnerabilities & exposures)[13]信息.

    1) 安全增強標(biāo)簽.Linux內(nèi)核核心安全機制均需要配置項支持,如SELinux機制需要CONFIG_SECURITY_SELINUX支持;AppArmor安全機制需要配置項CONFIG_SECURITY_APPARMOR支持.對系統(tǒng)安全有增強作用的內(nèi)核配置項示例如表3所示,相關(guān)配置項使能后,其相關(guān)的安全機制會編譯進內(nèi)核,否則內(nèi)核無法提供相關(guān)安全機制.安全增強標(biāo)簽有助于內(nèi)核工程師判斷該內(nèi)核配置項對系統(tǒng)安全的影響.

    Table 3 Security Enhancement Configuration Example表3 安全增強配置項示例

    2) 安全削弱標(biāo)簽.一些模塊包含潛在的系統(tǒng)漏洞,如KVM模塊存在CVE-2019-14821系統(tǒng)漏洞,該漏洞可能導(dǎo)致主機內(nèi)核崩潰,配置項CONFIG_KVM_GUEST使能后KVM模塊會編譯進內(nèi)核,從而將該潛在漏洞引入內(nèi)核.對系統(tǒng)安全有削弱作用的內(nèi)核配置項的示例如表4所示,安全削弱標(biāo)簽可輔助內(nèi)核工程師根據(jù)應(yīng)用場景對配置項進行設(shè)置,如應(yīng)用場景為邊緣計算,則可考慮禁用CONFIG_KVM_GUEST避免安全隱患;如應(yīng)用場景為云計算則應(yīng)確認(rèn)KVM模塊中的潛在漏洞都已修復(fù).

    Table 4 Security Weaken Configuration Example表4 安全削弱配置項示例

    1.5 使能率標(biāo)簽

    內(nèi)核配置項的依賴關(guān)系和其他標(biāo)簽均依據(jù)配置項本身的客觀特性創(chuàng)建,未從實踐應(yīng)用的角度對配置項進行分析.提出內(nèi)核配置項使能率,該指標(biāo)對配置項在實踐中使能情況進行統(tǒng)計,從實際應(yīng)用角度衡量配置項的重要性.內(nèi)核配置項的使能狀態(tài)在不同版本中通常會有改變,如配置項CONFIG_UEVENT_HELPER在內(nèi)核社區(qū)發(fā)布的v3.16至v5.1版本中均為使能狀態(tài),而在v5.2,v5.3,v5.4版本中則禁用.此外不同內(nèi)核配置項間的使能率差異顯著,如Ubuntu發(fā)行版v3.0至v4.20總計41個版本中,配置項CONFIG_KVM_GUEST均被使能,配置項CONFIG_IIO_HRTIMER_TRIGGER總計被使能14次,配置項CONFIG_IIO_STM32_TIMER_TRIGGER被使能0次.內(nèi)核配置項的使能率反映其在所有內(nèi)核版本中總的使能情況.內(nèi)核配置項使能率越高,則認(rèn)為其重要性越高,反之則認(rèn)為其重要性越低.內(nèi)核配置項使能率從實踐應(yīng)用角度為內(nèi)核配置項的重要性提供一個可量化參考指標(biāo).

    內(nèi)核配置項使能率以各內(nèi)核版本中的配置項的使能狀態(tài)為基礎(chǔ),同時基于內(nèi)核版本的發(fā)布時間引入時間權(quán)重.新版本的內(nèi)核配置項的設(shè)置更適應(yīng)當(dāng)前硬件特性和功能需求,其參考價值大于老版本內(nèi)核中的設(shè)置,因此新版本的權(quán)重大于老版本的權(quán)重.為了對不同內(nèi)核版本的權(quán)重進行量化,本文引入了牛頓冷卻定律,該定律描述物體溫度隨著時間的衰減情況,在計算機領(lǐng)域常被用來量化文章熱度隨著時間的衰減情況[14]等場景,本節(jié)利用該定律計算內(nèi)核版本隨時間衰減后的權(quán)重.內(nèi)核版本vi的權(quán)重wi計算為

    wi=wcur×exp(-α×(tcur-ti)),

    (1)

    其中,wcur表示最新發(fā)行版權(quán)重,默認(rèn)值為1,tcur表示當(dāng)前最新版本號,ti表示內(nèi)核版本vi的版本號,α為衰減因子,當(dāng)有新的內(nèi)核版本發(fā)布時,所有老版本的權(quán)重均會衰減.引入權(quán)重后的配置項使能率(config enable rate, CER)RCER計算公式為

    (2)

    其中,RCER表示內(nèi)核配置項基于各個內(nèi)核版本計算出的使能率,enable為配置項在版本vi中的使能值,若配置項在該版本中使能則enable=1,否則enable=0.

    本文分別基于內(nèi)核社區(qū)和主流發(fā)行版(Ubuntu和Fedora)發(fā)布的內(nèi)核版本計算內(nèi)核配置項使能率.

    1) 基于內(nèi)核社區(qū)的使能率.Linux內(nèi)核社區(qū)是Linux內(nèi)核最權(quán)威研發(fā)機構(gòu),負(fù)責(zé)Linux內(nèi)核版本的開發(fā)、維護和發(fā)布.該社區(qū)聚集了最權(quán)威的內(nèi)核開發(fā)人員,且有嚴(yán)格的開發(fā)流程保障內(nèi)核代碼質(zhì)量,所以內(nèi)核社區(qū)發(fā)布版中的配置項設(shè)置具有極高的權(quán)威性和參考價值,因此本文基于內(nèi)核社區(qū)發(fā)布的各版本計算內(nèi)核配置項使能率.

    雖然內(nèi)核社區(qū)發(fā)布的版本具有極高權(quán)威性,但由于內(nèi)核應(yīng)用場景廣泛,從簡易IC卡到超級計算機均有應(yīng)用,為覆蓋復(fù)雜的應(yīng)用場景,內(nèi)核社區(qū)對配置項設(shè)置時通常比較保守,故本文還參考了Ubuntu和Fedora發(fā)行版的內(nèi)核配置項設(shè)置.

    2) 基于主流發(fā)行版使能率.主流發(fā)行版選擇了Ubuntu和Fedora,Ubuntu是服務(wù)器市場應(yīng)用最廣泛的Linux發(fā)行版[15],且在個人用戶市場占據(jù)較大的份額.Fedora由全球最大開源軟件公司紅帽支持開發(fā),其特色為追求并吸納最新技術(shù),該發(fā)行版也是RHELCentos系發(fā)行版的試驗田.發(fā)行版針對內(nèi)核進行多方面調(diào)整和優(yōu)化,很多配置項的設(shè)置與內(nèi)核社區(qū)存在差異.如內(nèi)核配置項CONFIG_BLK_DEV_RAM_SIZE負(fù)責(zé)設(shè)置RamDisk的大小,內(nèi)核社區(qū)為適應(yīng)資源匱乏的應(yīng)用場景如邊緣計算,將其設(shè)置為16 384,Ubuntu的應(yīng)用場景資源通常比較充足,因此將其設(shè)置為65 536;選擇磁盤調(diào)度策略時,內(nèi)核社區(qū)使能內(nèi)核配置項CONFIG_IOSCHED_CFQ,選擇對傳統(tǒng)機械磁盤友好的策略CFQ,而Fedora新版本中使能內(nèi)核配置項CONFIG_IOSCHED_BFQ選擇對新興固態(tài)SSD硬盤更友好的BFQ(budget fair queueing)策略.基于Ubuntu和Fedora發(fā)行版的使能率可以從實踐應(yīng)用角度為內(nèi)核開發(fā)者提供參考.

    內(nèi)核配置圖中包含了內(nèi)核配置項的依賴關(guān)系、功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽、使能率的信息,可廣泛應(yīng)用在很多場景,如內(nèi)核優(yōu)化時可借助內(nèi)核配置圖的性能標(biāo)簽對內(nèi)核配置項進行篩選;內(nèi)核裁剪時可借助內(nèi)核配置圖的依賴關(guān)系了解禁用某配置項帶來的影響;內(nèi)核編譯失敗時可借助內(nèi)核配置項使能率輔助檢查配置項設(shè)置是否異常.此外,內(nèi)核配置圖在內(nèi)核配置項的推薦、檢索、智能問答等場景也可應(yīng)用.下一節(jié)將以內(nèi)核配置圖在內(nèi)核配置項檢索場景應(yīng)用為例,進一步說明和驗證內(nèi)核配置圖在實際應(yīng)用中的有效性和實用性.

    2 內(nèi)核配置圖在檢索場景中的應(yīng)用

    本節(jié)將以內(nèi)核配置圖在內(nèi)核配置項檢索場景中的應(yīng)用為例,說明內(nèi)核配置圖的實用性.當(dāng)前Linux內(nèi)核v5.3版本已有超過15 000個配置項,導(dǎo)致內(nèi)核工程師很難熟悉和掌握,查找目標(biāo)配置項時存在時間成本高、效率低的問題.主流Linux發(fā)行版自帶的搜索工具apropos等僅支持對于本地命令、文本等搜索,并不支持內(nèi)核配置項的搜索,且Linux現(xiàn)有的文本內(nèi)容檢索工具都是關(guān)鍵字匹配,檢索效果不佳,為高效查詢內(nèi)核配置項,本節(jié)基于內(nèi)核配置圖實現(xiàn)了一個面向內(nèi)核配置項的本地檢索框KCIR.

    傳統(tǒng)信息檢索框架如圖6(a)所示,將查詢語句query和內(nèi)核配置項的描述文檔config_doc作為入?yún)?經(jīng)過相似度算法計算得到查詢語句和配置項的相似度.本文基于內(nèi)核配置圖提出檢索框架KCIR,該框架的優(yōu)化主要包括查詢語句擴展和配置項描述信息文檔擴展.

    1) 查詢語句擴展.研究表明,用戶輸入的查詢語句通常較短,包含關(guān)鍵字平均僅有2.4個單詞[16],只有約25%的查詢語句能夠清晰表達用戶意圖[17],即使用戶清楚自己查詢目的,也通常無法輸入準(zhǔn)確的查詢關(guān)鍵字[16],本文借助內(nèi)核配置圖對于查詢語句進行擴展,有助于提高查詢效果.

    qenhance=qinit∪lchosen.

    (3)

    2) 內(nèi)核配置項描述信息擴展.配置項的描述信息主要來源于Linux內(nèi)核官方自帶的Kconfig及Documents等文檔,相比第三方信息源,內(nèi)核官方文檔更加專業(yè)可信,但存在自然語言中不可避免的語義模糊、描述不夠準(zhǔn)確等問題.

    基于內(nèi)核配置圖中的依賴關(guān)系對配置項描述信息進行擴展:從配置項依賴關(guān)系圖中可獲得當(dāng)前配置項的父子配置項信息,可使用父子配置項描述信息對當(dāng)前配置項的描述信息進行補充和擴展.如內(nèi)核配置項CONFIG_MEMCG_SWAP跟Cgroup的內(nèi)存功能緊密相關(guān),但其在Kconfig中描述信息不夠充分,如圖7所示,其描述信息中缺少“memory”等相關(guān)關(guān)鍵字,其父配置項CONFIG_MEMCG和其子配置項CONFIG_MEMCG_SWAP_ENABLED在Kconfig中的描述如圖7,其中包含“memory”等關(guān)鍵字,父子配置項描述信息可對配置項CONFIG_MEMCG_SWAP的描述信息進行補充.

    Fig. 6 Configuration item retrieval tool architecture圖6 內(nèi)核配置項檢索工具架構(gòu)

    將配置項本身的描述信息稱為局部配置項信息,將融合了父子配置項的描述信息稱為全局配置項信息,CONFIG_MEMCG_SWAP的全局配置項信息擴展示意圖如圖7所示.在檢索時分別基于局部和全局的配置項描述信息進行相似度計算,然后將兩者得到的相似度加權(quán)相加,得到最終相似度.

    基于查詢語句擴展和內(nèi)核配置項描述文檔擴展后的檢索框架KCIR的邏輯架構(gòu)圖如圖6(b)所示.首先將初始查詢語句qinit擴展后得到新查詢語句qenhance,將qenhance和配置項局部描述信息dlocal通過相似度算法得到相似度分?jǐn)?shù)Slocal,將qenhance和配置項全局描述信息dglobal經(jīng)過同樣的相似度算法得到相似度得分Sglocal,最后基于Slocal和Sglobal得到混合后相似度分?jǐn)?shù)Smix.

    Slocal=sim(dlocal,qenhance),

    (4)

    Sglobal=sim(dglobal,qenhance),

    (5)

    Smix=δ×Slocal+(1-δ)×Sglobal,δ∈(0,1),

    (6)

    其中,式(4)(5)中的相似度算法sim可以是傳統(tǒng)算法如TF-IDF(term frequency-inverse document frequency)[18]或基于深度學(xué)習(xí)算法DSSM(deep structured semantic models)[19]等.

    此外,若實際場景中更注重應(yīng)用頻率較高的內(nèi)核配置項,則可基于配置項使能率對內(nèi)核配置項設(shè)置權(quán)重.應(yīng)用頻率越高的內(nèi)核配置項的使能率越高,則其權(quán)重越高.

    本節(jié)以檢索場景為例描述了內(nèi)核配置圖在實踐中的應(yīng)用,基于內(nèi)核配置圖實現(xiàn)了檢索框架KCIR,該框架主要優(yōu)化點是:1)使用功能標(biāo)簽對查詢語句進行了擴展;2)使用依賴關(guān)系對配置項的描述文檔進行擴展.

    3 實驗與評估

    3.1 內(nèi)核配置圖可視化

    內(nèi)核配置圖提供的可視化功能包括依賴關(guān)系的可視化、功能標(biāo)簽聚類可視化、性能標(biāo)簽聚類可視化、安全標(biāo)簽聚類可視化、內(nèi)核配置項的多標(biāo)簽可視化.鑒于很多內(nèi)核配置項名較長,如CONFIG_ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD和CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT,為了展示更清楚,可視化圖中省略了內(nèi)核配置項的前綴“CONFIG_”.由于內(nèi)核配置項數(shù)量巨大,為了較清晰地顯示相關(guān)可視化信息細(xì)節(jié),對可視化圖進行適當(dāng)簡化.

    1) 依賴關(guān)系可視化.在實際應(yīng)用中常需要了解某一內(nèi)核配置項的依賴關(guān)系,以評估該內(nèi)核配置項的影響,因此提供了配置項依賴關(guān)系可視化.對某一內(nèi)核配置項,可根據(jù)設(shè)置的祖先配置項和子孫配置項的遞歸深度對其依賴關(guān)系進行可視化展示,默認(rèn)可視化顯示當(dāng)前配置項的父配置項和其所有子孫配置項.圖8為內(nèi)核配置項CONFIG_CPU_FREQ的依賴關(guān)系可視化圖,有向連接從父配置項指向其子配置項,圖8中顯示了內(nèi)核配置項CONFIG_CPU_FREQ的直系父配置項CONFIG_SCHED_MC_PRIO和14個子孫配置項.從圖8中也可看出依賴關(guān)系并不符合樹結(jié)構(gòu)邏輯,樹結(jié)構(gòu)一般僅有1個父節(jié)點,而圖8中配置項CONFIG_CPU_FREQ_GOV_ATTR_SET有2個父節(jié)點CONFIG_CPU_FREQ_GOV_COMMON和CONFIG_CPU_FREQ_GOV_SCHEDUTIL.

    Fig. 8 Visualization of CONFIG_CPU_FREQ dependency圖8 CONFIG_CPU_FREQ依賴關(guān)系可視化圖

    2) 功能標(biāo)簽聚類可視化.功能標(biāo)簽聚類可視化主要圍繞功能標(biāo)簽顯示相關(guān)內(nèi)核配置項,如圖9所示.在圖9中以實線六邊形表示功能標(biāo)簽,Cgroup(控制組)、Debug(調(diào)試)、Sched(調(diào)度)分別表示3個功能標(biāo)簽.一個內(nèi)核配置項可有多個相關(guān)標(biāo)簽,如配置項CONFIG_BFQ_CGROUP_DEBUG同時和Cgroup,Debug,Sched這3個標(biāo)簽均有關(guān)聯(lián).

    Fig. 9 Visualization of function label圖9 功能標(biāo)簽聚類可視化圖

    3) 性能標(biāo)簽聚類可視化.性能標(biāo)簽聚類可視化主要圍繞CPU、內(nèi)存、網(wǎng)絡(luò)、硬盤4個維度顯示相關(guān)內(nèi)核配置項.以CPU性能標(biāo)簽為例,如圖10所示,以虛線橢圓表示性能標(biāo)簽,CPU標(biāo)簽關(guān)聯(lián)的內(nèi)核配置項均和CPU性能相關(guān),如配置項CONFIG_SCHED_MC針對多核CPU進行調(diào)度策略優(yōu)化.

    Fig. 10 Visualization of CPU label圖10 CPU標(biāo)簽聚類可視化圖

    4) 安全標(biāo)簽聚類可視化.安全標(biāo)簽分為2個子標(biāo)簽,即安全增強標(biāo)簽和安全削弱標(biāo)簽.安全增強標(biāo)簽如圖11,secur_en表示安全增強,跟該標(biāo)簽關(guān)聯(lián)的內(nèi)核配置項均對系統(tǒng)安全有積極意義,如配置項CONFIG_SECCOMP使能則允許使用SECCOMP技術(shù)安全的運行非信任代碼.安全削弱標(biāo)簽如圖12,secur_wk表示安全削弱,跟該標(biāo)簽關(guān)聯(lián)的內(nèi)核配置項存在潛在的安全漏洞,如配置項CONFIG_KVM存在過CVE-2019-7221漏洞.

    Fig. 11 Visualization of security enhanced label圖11 安全增強標(biāo)簽可視化示意圖

    Fig. 12 Visualization of security weakened label圖12 安全削弱標(biāo)簽可視化圖

    Fig. 13 Multi-label visualization of CONFIG_BFQ_GROUP_IOSCHED圖13 CONFIG_BFQ_GROUP_IOSCHED多標(biāo)簽可視化圖

    5) 內(nèi)核配置項多標(biāo)簽可視化.多標(biāo)簽可視化主要包括父配置項標(biāo)簽、子配置項標(biāo)簽、功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽、使能率.以內(nèi)核配置項CONFIG_BFQ_GROUP_IOSCHED為例,其多標(biāo)簽可視化圖如圖13所示,該配置項對于Disk(硬盤)性能(虛線橢圓)有影響,其功能標(biāo)簽(實線六邊形)涉及Cgroup和Sched,其父節(jié)點包括配置項CONFIG_BLK_CGROUP和CONFIG_IOSCHED_BFQ,子配置項為CONFIG_BFQ_CGROUP_DEBUG.以實線橢圓標(biāo)簽表示使能率,其中“0.00L”中的L表示Linux社區(qū),0.00為相應(yīng)使能率;“0.40U”中U表示Ubuntu,“0.56F”中的F表示Fedora.因此圖13中的0.00L_0.40U_0.56F表示該配置項在內(nèi)核社區(qū)中的使能率為0,在Ubuntu發(fā)行版中加權(quán)后的使能率為0.40,在Fedora發(fā)行版中加權(quán)后的使能率為0.56.內(nèi)核社區(qū)的內(nèi)核配置項策略比較保守,更傾向選擇傳統(tǒng)調(diào)度策略CFQ而不是對新興SSD硬盤更友好的BFQ策略,因此基于內(nèi)核社區(qū)的內(nèi)核配置項CONFIG_BFQ_GROUP_IOSCHED的使能率為0,Ubuntu發(fā)行版對SSD硬盤提供了一定的支持,其對內(nèi)核配置項CONFIG_BFQ_GROUP_IOSCHED的使能率高于內(nèi)核社區(qū),Fedora發(fā)行版更傾向于新技術(shù)的應(yīng)用,在新版本中均選擇策略BFQ,因此對內(nèi)核配置項CONFIG_BFQ_GROUP_IOSCHED的使能率較高.

    內(nèi)核配置項CONFIG_BFQ_GROUP_IOSCHED不涉及安全相關(guān)特性,故圖13中并沒有安全標(biāo)簽,我們以配置項CONFIG_SECURITY_SELINUX多標(biāo)簽可視化圖為例展示安全標(biāo)簽,如圖14所示,其中虛線六邊形標(biāo)簽為安全標(biāo)簽,標(biāo)簽secur_en表示該配置項對安全有增強作用,標(biāo)簽secur_wk表示該配置項涉及潛在安全隱患,隱患信息為CVE-2017-2618.

    Fig. 14 Multi-label visualization of CONFIG_SECURITY_SELINUX圖14 CONFIG_SECURITY_SELINUX多標(biāo)簽可視化圖

    3.2 內(nèi)核配置圖在檢索中應(yīng)用評估

    本節(jié)對基于內(nèi)核配置圖的面向內(nèi)核配置項的檢索框架KCIR進行評估,KCIR邏輯架構(gòu)如圖6(b)所示,該框架分別對查詢語句和配置項描述文本進行擴展增強,適用于多種文本相似度算法.本節(jié)分別基于4個具有代表性文本相似度算法VSM[20],LSI[21],Word2vce[22],DSSM[19]對KCIR和傳統(tǒng)檢索框架進行對比評估.本實驗中KCIR的局部配置文本和全局配置文本的權(quán)重值即式(6)中統(tǒng)一設(shè)置δ=0.3.

    1) VSM(vector space model)算法.VSM是20世紀(jì)70年代被提出,是信息檢索中的經(jīng)典檢索算法,該算法將文本內(nèi)容的處理簡化為向量空間中的向量運算,以空間上的相似度表達語義的相似度.本實驗中VSM算法沒有設(shè)置超參數(shù).

    2) LSI(latent semantic indexing)算法.LSI是主題模型的代表算法,簡單實用、邏輯清晰,基于奇異值分解得到主題模型,同時解決詞義的問題.本實驗中LSI算法中的主題參數(shù)設(shè)置為500.

    3) Word2vec算法.Word2vec是詞嵌入代表算法,該算法可將詞語映射為詞向量,其核心思想是利用簡單神經(jīng)網(wǎng)絡(luò)對詞的上下文訓(xùn)練得到詞的向量化表示.可基于詞向量計算文本間的相似度.本實驗中Word2vec算法中的特征維度設(shè)置為71,移動窗口設(shè)置為10,采用skip-gram訓(xùn)練算法.

    4) DSSM算法.DSSM是基于深度神經(jīng)網(wǎng)絡(luò)計算文本相似度的代表算法,基于深度神經(jīng)網(wǎng)絡(luò)把查詢和文本轉(zhuǎn)化為低緯語義向量,并通過余弦相似度計算2個語義向量的距離,此外根據(jù)用戶的點擊進行有監(jiān)督學(xué)習(xí),最終訓(xùn)練出語義相似度模型.本實驗使用微軟提供的基于DSSM模型已訓(xùn)練好的文本轉(zhuǎn)化向量工具[23]對查詢和文本進行轉(zhuǎn)換.

    本文基于4個算法進行實驗評估,介紹實驗中的基準(zhǔn)數(shù)據(jù).

    1) 基準(zhǔn)數(shù)據(jù).當(dāng)前針對文本相似度評估有很多可用的數(shù)據(jù)集,但已有的數(shù)據(jù)集如新聞數(shù)據(jù)和內(nèi)核配置項的文本數(shù)據(jù)特征差異較大,針對內(nèi)核配置項檢索缺少可用的基準(zhǔn)數(shù)據(jù)集,因此我們邀請Linux專家提供了一個針對內(nèi)核配置項的包含178條query-doc數(shù)據(jù)的數(shù)據(jù)集,該數(shù)據(jù)集覆蓋內(nèi)存、虛擬化、文件系統(tǒng)、網(wǎng)絡(luò)、進程、安全、電源、調(diào)試等內(nèi)核模塊,平均每個模塊20條左右基準(zhǔn)數(shù)據(jù).基于該數(shù)據(jù)對檢索結(jié)果評估.該基準(zhǔn)數(shù)據(jù)格式如表5所示,包含查詢語句和相應(yīng)的目標(biāo)配置項.

    Table 5 query-doc Example表5 query-doc示例

    2) 評估指標(biāo).在基準(zhǔn)數(shù)據(jù)中,每組基準(zhǔn)數(shù)據(jù)包含查詢語句和目標(biāo)配置項信息,本實驗將查詢語句作為入?yún)?查看返回的TopK結(jié)果中是否包含目標(biāo)配置項,若包含則該query-doc為命中狀態(tài),統(tǒng)計命中狀態(tài)的query-doc條目數(shù)量作為評估指標(biāo),其中TopK的K取值分別為1,3,5,7,9.

    3) 結(jié)果分析.本實驗使用的基準(zhǔn)為傳統(tǒng)檢索框架,其邏輯架構(gòu)圖如圖6(a)所示,使用該框架與本文提出的KCIR框架對比評估.檢索框架KCIR主要包含2點優(yōu)化策略:

    1) 基于內(nèi)核配置圖中的標(biāo)簽對查詢擴展;

    2) 基于內(nèi)核配置圖中的依賴關(guān)系對內(nèi)核配置項描述信息擴展.

    評估時首先對KCIR中的2個優(yōu)化策略分別評估,然后對KCIR進行總評估.實驗使用內(nèi)核社區(qū)發(fā)布的v5.4版本內(nèi)核,基于VSM,LSI,Word2vec,DSSM這4個相似度算法分別對檢索框架KCIR和傳統(tǒng)檢索框架進行對比評估,以驗證框架KCIR的有效性.

    基于VSM算法評估結(jié)果如圖15所示,對于TopK(1,3,5,7,9)分別統(tǒng)計:傳統(tǒng)檢索框架、KCIR中查詢擴展優(yōu)化、KCIR中描述文檔擴展優(yōu)化、KCIR框架(綜合查詢擴展和描述文檔擴展)共4種情況的檢索結(jié)果,其中傳統(tǒng)檢索框架作為基準(zhǔn)數(shù)據(jù).從圖15易知KCIR的查詢擴展和描述文檔擴展策略均可提高檢索效果.與傳統(tǒng)檢索框架相比,KCIR中的查詢擴展策略可將TopK命中率提升5.26%~18.18%,KCIR中的描述文檔擴展策略可將TopK的命中率提升3.92%~7.27%,KCIR檢索框架可將TopK命中率提升8.27%~27.27%.

    Fig. 15 Retrieval results based VSM圖15 基于VSM算法評估結(jié)果

    Fig. 16 Retrieval results based LSI圖16 基于LSI算法評估結(jié)果

    基于LSI算法評估結(jié)果如圖16所示,與傳統(tǒng)檢索框架相比,KCIR中的查詢擴展策略可將TopK命中率提升9.70%~14.28%,KCIR中的描述文檔擴展策略可將TopK的命中率提升10.67%~15.71%,KCIR檢索框架可將TopK命中率提升14.00%~30.00%.

    基于Word2vec算法評估結(jié)果如圖17所示,與傳統(tǒng)檢索框架相比,KCIR中的查詢擴展策略可將TopK命中率提升3.09%~15.87%,KCIR中的描述文檔擴展策略在Top1上帶來了4.44%的下降,在Top3~Top9將命中率提升5.00%~12.79%,KCIR檢索框架可將TopK命中率提升6.66%~22.22%.

    Fig. 17 Retrieval results based Word2vec圖17 基于Word2vec算法評估結(jié)果

    基于DSSM算法評估結(jié)果如圖18所示,與傳統(tǒng)檢索框架相比,KCIR中的查詢擴展策略可將TopK命中率提升0.00%~14.51%,KCIR中的描述文檔擴展策略可將TopK的命中率提升4.34%~11.29%,KCIR檢索框架可將TopK命中率提升6.08%~29.03%.

    Fig. 18 Retrieval results based DSSM圖18 基于DSSM算法評估結(jié)果

    本文研究點是檢索框架而不是具體算法的改進優(yōu)化,重點關(guān)注檢索框架KCIR和傳統(tǒng)檢索框架的對比分析.通過4個相似度算法的評估可見,與傳統(tǒng)檢索框架相比,基于內(nèi)核配置圖的檢索框架KCIR對檢索效果有顯著提升:將基于VSM算法的TopK命中率提升了8.27%~27.27%,將基于LSI算法的TopK命中率提升了14.00%~30.00%,將基于Word2vec算法的TopK命中率提升了6.66%~22.22%,將基于DSSM算法的TopK命中率提升了6.08%~29.03%.

    4 下一步工作

    在內(nèi)核裁剪、內(nèi)核優(yōu)化等場景常需要對內(nèi)核定制化的設(shè)置和修改,內(nèi)核配置項數(shù)量巨大,人工修改會引入一些錯誤的設(shè)置[24],并對系統(tǒng)造成嚴(yán)重負(fù)面影響,如CONFIG_CONTEXT_TRACKING_FORCE設(shè)置不當(dāng)會嚴(yán)重影響系統(tǒng)的性能.基于內(nèi)核配置圖可對修改后的配置項值進行異常檢測,從內(nèi)核配置圖中可抽取配置項的多種特征信息如基于內(nèi)核社區(qū)和發(fā)行版的使能率、子孫配置項數(shù)量等,然后借助異常檢測算法如Isolation Forest算法等對內(nèi)核配置項進行異常檢測并生成最終的檢測報告表,示例如表6所示,表6包含了配置項當(dāng)前的設(shè)置值、核心特征數(shù)據(jù)以及最后的檢測建議(是否).

    Table 6 Example of Abnormal Detection Report表6 異常檢測報告示例

    5 相關(guān)工作

    5.1 內(nèi)核配置項

    當(dāng)前針對內(nèi)核配置項的研究工作比較多元,研究者從配置文件Kconfig語法、內(nèi)核配置項對Linux系統(tǒng)性能和安全的影響、內(nèi)核配置項和源代碼的關(guān)聯(lián)等不同角度進行多樣化研究.文獻[25]中,El-Sharkawy等人對內(nèi)核配置項的定義文件Kconfig語義進行分析,發(fā)現(xiàn)Kconfig存在語義模糊的現(xiàn)象,且說明文檔中對于一些特殊情況缺少相關(guān)描述.此外他們對現(xiàn)有的Kconfig分析工具的有效性進行了評估,分析結(jié)果有助于Kconfig分析工具的改進.文獻[1]中,Ren等人對Ubuntu v3.0至v4.20橫跨7年的不同內(nèi)核版本的系統(tǒng)調(diào)用性能進行分析對比,發(fā)現(xiàn)內(nèi)核配置項的錯誤設(shè)置是導(dǎo)致系統(tǒng)性能波動或下降的重要原因,同時Linux內(nèi)核優(yōu)化成本很高,并不適合個人或小團隊去做.文獻[2]中,Acher等人針對內(nèi)核構(gòu)建中出現(xiàn)的因內(nèi)核配置項錯誤設(shè)置導(dǎo)致的構(gòu)建失敗問題,提出了一個TuxML工具框架,該框架可以輔助內(nèi)核配置項的設(shè)置,避免內(nèi)核構(gòu)建錯誤.文獻[26]中,Walch等人提出了一個基于SAT的內(nèi)核配置項形式化分析方法,該方法幫助開發(fā)者了解內(nèi)核配置項的相關(guān)問題,如針對特定架構(gòu)的處理器哪些選項是必須配置的,哪些選項是不能設(shè)置的.文獻[27]中,Ziegle等人對內(nèi)核配置項和其影響到的代碼文件的關(guān)聯(lián)關(guān)系進行分析,發(fā)現(xiàn)大部分內(nèi)核配置項僅影響較少的代碼文件,僅有少數(shù)內(nèi)核配置項會影響到幾乎所有代碼文件.文獻[24]中,Melo等人對內(nèi)核配置項的相關(guān)警告進行分析,通過對40萬條警告信息進行統(tǒng)計和分類,發(fā)現(xiàn)Linux中包含大量與內(nèi)核配置項相關(guān)的警告,且很多警告對系統(tǒng)影響嚴(yán)重.文獻[28]中,Acher等人對基于內(nèi)核配置項的內(nèi)核裁剪進行研究,發(fā)現(xiàn)基于機器學(xué)習(xí)對配置項進行設(shè)置時由于內(nèi)核配置項數(shù)量巨大,導(dǎo)致算法搜索空間隨之變大,對于配置項的預(yù)測結(jié)果誤差很大;當(dāng)縮小內(nèi)核配置項的范圍后可有效提高內(nèi)核配置項的預(yù)測,并對內(nèi)核裁剪提供幫助.

    5.2 Linux檢索工具

    當(dāng)前針對Linux的檢索工具基本可以分為2類:1)針對文本內(nèi)容的檢索工具;2)針對文件名的檢索工具.文本內(nèi)容檢索的代表工具有Grep[29]和Apropos[30].Grep是本地查詢工具,在指定目錄和文件中根據(jù)關(guān)鍵字進行匹配,Apropos根據(jù)關(guān)鍵字在系統(tǒng)的文檔和手冊中進行匹配,跟Grep相比,Apropos有2個區(qū)別:1)Apropos不需要指定目標(biāo)目錄和文件,搜索范圍為系統(tǒng)自帶的文檔和手冊;2)Apropos的檢索目標(biāo)是命令行或者函數(shù)等,查詢相關(guān)幫助文檔.Grep和Apropos均是系統(tǒng)自帶的本地檢索工具.文件名檢索的代表工具有Find[31],Locate[32],Fsearch[33],這些工具主要基于關(guān)鍵字對文件名進行匹配,而不是文本內(nèi)容檢索.Find根據(jù)用戶指定目錄進行檢索,Locate和Fsearch會進行整個系統(tǒng)檢索.此外還有專有檢索工具如Which[34]專門搜索系統(tǒng)命令的絕對路徑地址,Lawall等人[35]針對Linux驅(qū)動信息檢索進行了研究.當(dāng)前還沒有針對內(nèi)核配置項的檢索工具,現(xiàn)有Linux檢索工具并沒有針對內(nèi)核配置項的數(shù)據(jù)特征(如配置項間存在依賴關(guān)系)進行優(yōu)化,本文基于內(nèi)核配置圖,提出了針對內(nèi)核配置項的檢索框架KCIR,該框架屬于文本內(nèi)容檢索.

    6 總結(jié)與展望

    本文提出了一種基于多標(biāo)簽的內(nèi)核配置圖(1)基于多標(biāo)簽的內(nèi)核配置項及KCIR的開源版本代碼參見https:gitee.comkcirkcir,該圖包含內(nèi)核配置項的依賴關(guān)系(從中可得父配置項和子配置項標(biāo)簽)、功能標(biāo)簽、性能標(biāo)簽、安全標(biāo)簽、配置項使能率標(biāo)簽.此外,內(nèi)核配置圖提供可視化功能,更加直觀、高效、人性化.該內(nèi)核配置圖在內(nèi)核裁剪、內(nèi)核安全增強、內(nèi)核性能優(yōu)化、內(nèi)核配置項異常檢測、內(nèi)核配置項智能問答和內(nèi)核配置項推薦等場景均可應(yīng)用.為了驗證內(nèi)核配置圖在實際應(yīng)用中的有效性,將內(nèi)核配置圖應(yīng)用到檢索場景,設(shè)計實現(xiàn)了面向內(nèi)核配置項的檢索框架KCIR,該框架使用內(nèi)核配置圖對查詢和配置項文本信息分別擴展,實驗評估表明該框架相比傳統(tǒng)的檢索框架可顯著提升檢索效果,也從實踐角度證明內(nèi)核配置圖的有效性和實用性.未來工作中,將內(nèi)核配置圖的信息進一步增強,如添加內(nèi)核配置項帶來空間大小信息,同時將內(nèi)核配置圖應(yīng)用到更多的場景,如內(nèi)核配置項異常值檢測等.

    猜你喜歡
    可視化
    無錫市“三項舉措”探索執(zhí)法可視化新路徑
    基于CiteSpace的足三里穴研究可視化分析
    自然資源可視化決策系統(tǒng)
    北京測繪(2022年6期)2022-08-01 09:19:06
    三維可視化信息管理系統(tǒng)在選煤生產(chǎn)中的應(yīng)用
    思維可視化
    師道·教研(2022年1期)2022-03-12 05:46:47
    基于Power BI的油田注水運行動態(tài)分析與可視化展示
    云南化工(2021年8期)2021-12-21 06:37:54
    自然資源可視化決策系統(tǒng)
    北京測繪(2021年7期)2021-07-28 07:01:18
    基于CGAL和OpenGL的海底地形三維可視化
    可視化閱讀:新媒體語境下信息可視化新趨勢
    “融評”:黨媒評論的可視化創(chuàng)新
    傳媒評論(2019年4期)2019-07-13 05:49:14
    欧美日韩福利视频一区二区| 国产极品粉嫩免费观看在线| 宅男免费午夜| 999久久久精品免费观看国产| 国产精品一区二区免费欧美 | 男女高潮啪啪啪动态图| 亚洲精品久久久久久婷婷小说| 人妻一区二区av| 18禁观看日本| 一本久久精品| 欧美中文综合在线视频| 欧美日韩成人在线一区二区| 亚洲成av片中文字幕在线观看| 免费在线观看影片大全网站| 精品国产乱子伦一区二区三区 | 亚洲国产精品成人久久小说| 青春草亚洲视频在线观看| 大香蕉久久成人网| 亚洲中文av在线| 久久久国产欧美日韩av| 一边摸一边抽搐一进一出视频| 男女国产视频网站| 黄片大片在线免费观看| 欧美激情极品国产一区二区三区| 丝瓜视频免费看黄片| 久久久久网色| 国产高清国产精品国产三级| 欧美人与性动交α欧美精品济南到| 成在线人永久免费视频| 亚洲国产毛片av蜜桃av| 欧美日韩精品网址| 欧美精品av麻豆av| 精品国产乱码久久久久久小说| 国产伦人伦偷精品视频| av视频免费观看在线观看| 亚洲欧美精品综合一区二区三区| 精品国内亚洲2022精品成人 | 精品第一国产精品| 人人妻人人澡人人看| 91av网站免费观看| 久热这里只有精品99| 黑人巨大精品欧美一区二区mp4| 高清av免费在线| 国产不卡av网站在线观看| 免费在线观看日本一区| 在线av久久热| 99国产精品一区二区蜜桃av | 男女国产视频网站| 国产成人av教育| 天天操日日干夜夜撸| 99精品欧美一区二区三区四区| 女人高潮潮喷娇喘18禁视频| 精品福利观看| 亚洲欧美日韩高清在线视频 | 在线观看免费午夜福利视频| 日韩大片免费观看网站| 欧美另类一区| 丰满迷人的少妇在线观看| 色精品久久人妻99蜜桃| 国产欧美亚洲国产| 国产精品久久久av美女十八| 欧美成人午夜精品| 午夜福利视频在线观看免费| 99久久99久久久精品蜜桃| 亚洲精品国产av成人精品| 久久人人爽人人片av| 超碰成人久久| 精品国内亚洲2022精品成人 | 搡老熟女国产l中国老女人| 久久久久精品国产欧美久久久 | 精品一区二区三区av网在线观看 | 成年人免费黄色播放视频| 天天影视国产精品| 午夜视频精品福利| 国产老妇伦熟女老妇高清| xxxhd国产人妻xxx| 色综合欧美亚洲国产小说| 后天国语完整版免费观看| 国产免费福利视频在线观看| 欧美日本中文国产一区发布| 亚洲国产看品久久| 韩国精品一区二区三区| 一边摸一边做爽爽视频免费| netflix在线观看网站| 亚洲情色 制服丝袜| 精品久久蜜臀av无| 国产熟女午夜一区二区三区| 免费高清在线观看日韩| 日韩欧美一区视频在线观看| 麻豆乱淫一区二区| 国产免费一区二区三区四区乱码| 免费久久久久久久精品成人欧美视频| tocl精华| 国产av精品麻豆| 他把我摸到了高潮在线观看 | 50天的宝宝边吃奶边哭怎么回事| 99热国产这里只有精品6| 中文字幕人妻丝袜制服| 99国产精品免费福利视频| 国产亚洲av片在线观看秒播厂| 成年人午夜在线观看视频| 成人影院久久| 国产一区二区在线观看av| 亚洲av国产av综合av卡| 日韩熟女老妇一区二区性免费视频| 欧美97在线视频| 免费在线观看影片大全网站| 色婷婷久久久亚洲欧美| 久久99热这里只频精品6学生| 久久久久视频综合| 男人操女人黄网站| 亚洲欧美精品自产自拍| 亚洲成av片中文字幕在线观看| 国产在线观看jvid| 少妇粗大呻吟视频| av免费在线观看网站| 中文字幕高清在线视频| 亚洲欧洲精品一区二区精品久久久| 99香蕉大伊视频| 亚洲av欧美aⅴ国产| 国产精品一区二区在线观看99| 少妇被粗大的猛进出69影院| 成人国产一区最新在线观看| av线在线观看网站| 青春草视频在线免费观看| 亚洲精品美女久久av网站| 国产欧美日韩一区二区三 | 一个人免费看片子| 一级毛片女人18水好多| 中国美女看黄片| 精品少妇黑人巨大在线播放| 精品视频人人做人人爽| 午夜福利视频在线观看免费| 18禁观看日本| 丝袜在线中文字幕| 日韩一区二区三区影片| av免费在线观看网站| 色老头精品视频在线观看| av国产精品久久久久影院| 亚洲欧洲精品一区二区精品久久久| 国产区一区二久久| 亚洲人成电影免费在线| 国产色视频综合| 久久天躁狠狠躁夜夜2o2o| 人成视频在线观看免费观看| 99精国产麻豆久久婷婷| 国产成人精品在线电影| 国产视频一区二区在线看| 国产精品久久久久成人av| 一区二区三区四区激情视频| 女人爽到高潮嗷嗷叫在线视频| 美女主播在线视频| 中文欧美无线码| 啪啪无遮挡十八禁网站| 久久人妻熟女aⅴ| 久久中文字幕一级| 90打野战视频偷拍视频| 亚洲,欧美精品.| 亚洲精品久久成人aⅴ小说| 男人添女人高潮全过程视频| 天天躁狠狠躁夜夜躁狠狠躁| 国产深夜福利视频在线观看| 久久久久久人人人人人| 侵犯人妻中文字幕一二三四区| 9热在线视频观看99| 色老头精品视频在线观看| 老司机亚洲免费影院| 中文字幕精品免费在线观看视频| netflix在线观看网站| 91九色精品人成在线观看| 精品高清国产在线一区| 午夜福利视频精品| 一级毛片精品| 91精品国产国语对白视频| 啦啦啦视频在线资源免费观看| 亚洲 欧美一区二区三区| 久久青草综合色| 啦啦啦在线免费观看视频4| 国精品久久久久久国模美| 丁香六月欧美| 国产1区2区3区精品| 精品高清国产在线一区| 9191精品国产免费久久| 午夜日韩欧美国产| 欧美日韩国产mv在线观看视频| 亚洲国产欧美网| 一本综合久久免费| 免费日韩欧美在线观看| 手机成人av网站| 久热爱精品视频在线9| 侵犯人妻中文字幕一二三四区| 亚洲欧美激情在线| 蜜桃国产av成人99| 中文字幕制服av| 91字幕亚洲| 精品人妻1区二区| 在线观看一区二区三区激情| 日韩 欧美 亚洲 中文字幕| 日韩欧美一区视频在线观看| kizo精华| 国产欧美亚洲国产| 成年人黄色毛片网站| 日韩一卡2卡3卡4卡2021年| 黄色a级毛片大全视频| 女人精品久久久久毛片| av福利片在线| 最新在线观看一区二区三区| 久久久久视频综合| 美女扒开内裤让男人捅视频| 国产人伦9x9x在线观看| 天堂8中文在线网| 久久国产亚洲av麻豆专区| 精品国产国语对白av| 不卡av一区二区三区| 午夜激情av网站| 久久久久久免费高清国产稀缺| 免费在线观看影片大全网站| 狠狠精品人妻久久久久久综合| 亚洲少妇的诱惑av| 巨乳人妻的诱惑在线观看| 日本精品一区二区三区蜜桃| www.自偷自拍.com| 久久久久久人人人人人| 老司机亚洲免费影院| 亚洲精品成人av观看孕妇| 国产高清视频在线播放一区 | 国产精品成人在线| 精品国产一区二区久久| 老司机午夜福利在线观看视频 | 久久99一区二区三区| 亚洲一区二区三区欧美精品| 亚洲熟女精品中文字幕| 国产成人av教育| 91麻豆av在线| 久久午夜综合久久蜜桃| 啦啦啦视频在线资源免费观看| 一区二区三区乱码不卡18| 九色亚洲精品在线播放| 久久久久久免费高清国产稀缺| 黑人巨大精品欧美一区二区蜜桃| 亚洲第一av免费看| 欧美老熟妇乱子伦牲交| 成人免费观看视频高清| 亚洲欧美精品自产自拍| 如日韩欧美国产精品一区二区三区| 丰满少妇做爰视频| 国产精品久久久久成人av| 国产亚洲av高清不卡| 成年av动漫网址| 美女中出高潮动态图| 91精品三级在线观看| 久久人妻福利社区极品人妻图片| 亚洲激情五月婷婷啪啪| 18禁黄网站禁片午夜丰满| 91麻豆av在线| 午夜免费鲁丝| 欧美 亚洲 国产 日韩一| 亚洲欧美日韩另类电影网站| 亚洲全国av大片| 美女午夜性视频免费| a级片在线免费高清观看视频| 亚洲av日韩精品久久久久久密| 亚洲一码二码三码区别大吗| 香蕉国产在线看| 最新在线观看一区二区三区| 国产精品一区二区在线不卡| 99久久综合免费| 777久久人妻少妇嫩草av网站| 婷婷成人精品国产| 国产精品久久久av美女十八| 国产精品二区激情视频| 性色av乱码一区二区三区2| 日本av免费视频播放| 精品久久久久久电影网| 免费av中文字幕在线| 亚洲成人手机| 国产精品免费视频内射| 国产在线一区二区三区精| 少妇被粗大的猛进出69影院| 久久女婷五月综合色啪小说| 亚洲精品自拍成人| 性少妇av在线| 国产一区二区 视频在线| 91九色精品人成在线观看| 欧美成人午夜精品| 免费黄频网站在线观看国产| 亚洲国产精品999| 视频在线观看一区二区三区| 久久久国产一区二区| 亚洲成人免费电影在线观看| 午夜福利,免费看| 精品熟女少妇八av免费久了| 精品国内亚洲2022精品成人 | 波多野结衣av一区二区av| 国产精品二区激情视频| 最近最新中文字幕大全免费视频| 国产熟女午夜一区二区三区| 免费久久久久久久精品成人欧美视频| 99国产精品99久久久久| 久久人人爽人人片av| 国产亚洲av片在线观看秒播厂| 亚洲久久久国产精品| 高清黄色对白视频在线免费看| 亚洲人成电影免费在线| 精品一区在线观看国产| 一本大道久久a久久精品| 亚洲国产欧美日韩在线播放| 精品视频人人做人人爽| 久久国产精品大桥未久av| 大香蕉久久成人网| 大片电影免费在线观看免费| 午夜福利视频精品| 亚洲三区欧美一区| 少妇精品久久久久久久| 欧美激情极品国产一区二区三区| 亚洲精品自拍成人| 亚洲第一欧美日韩一区二区三区 | 中文欧美无线码| 亚洲国产中文字幕在线视频| 欧美日韩国产mv在线观看视频| 不卡一级毛片| 一区二区日韩欧美中文字幕| 午夜福利免费观看在线| 中文欧美无线码| svipshipincom国产片| 女人爽到高潮嗷嗷叫在线视频| 亚洲国产欧美日韩在线播放| 国产欧美日韩一区二区三 | 在线观看免费午夜福利视频| 国产区一区二久久| 国产激情久久老熟女| 天堂8中文在线网| 久久 成人 亚洲| 妹子高潮喷水视频| 一区福利在线观看| 日韩欧美免费精品| 男女国产视频网站| 三上悠亚av全集在线观看| 日韩熟女老妇一区二区性免费视频| 国产精品 国内视频| 久久久国产一区二区| 老司机靠b影院| 少妇被粗大的猛进出69影院| 欧美xxⅹ黑人| 久久热在线av| 在线亚洲精品国产二区图片欧美| 久久av网站| 亚洲av国产av综合av卡| 亚洲avbb在线观看| 亚洲va日本ⅴa欧美va伊人久久 | 19禁男女啪啪无遮挡网站| 亚洲国产欧美在线一区| 在线观看舔阴道视频| 久久人人97超碰香蕉20202| 一二三四社区在线视频社区8| 亚洲精品久久久久久婷婷小说| √禁漫天堂资源中文www| 色老头精品视频在线观看| 国产一区有黄有色的免费视频| 91九色精品人成在线观看| 久久狼人影院| 精品熟女少妇八av免费久了| 国产日韩一区二区三区精品不卡| 亚洲专区国产一区二区| 国产淫语在线视频| 最近最新中文字幕大全免费视频| 夜夜夜夜夜久久久久| 99久久99久久久精品蜜桃| 丝瓜视频免费看黄片| 成人亚洲精品一区在线观看| 中文字幕人妻熟女乱码| 一级毛片女人18水好多| 美女视频免费永久观看网站| 深夜精品福利| 日本av免费视频播放| 国产一区二区 视频在线| 国产日韩欧美视频二区| 91麻豆精品激情在线观看国产 | 天天操日日干夜夜撸| 欧美另类亚洲清纯唯美| 男人爽女人下面视频在线观看| 精品国产一区二区三区四区第35| 51午夜福利影视在线观看| 自拍欧美九色日韩亚洲蝌蚪91| 久久精品亚洲熟妇少妇任你| 亚洲欧美色中文字幕在线| 俄罗斯特黄特色一大片| 国产成人免费观看mmmm| 亚洲专区字幕在线| 国产在线观看jvid| 大型av网站在线播放| 久久ye,这里只有精品| 新久久久久国产一级毛片| 成人黄色视频免费在线看| 女人爽到高潮嗷嗷叫在线视频| 青春草视频在线免费观看| 欧美在线一区亚洲| 欧美国产精品一级二级三级| 久热爱精品视频在线9| 国产欧美日韩一区二区三 | 美女扒开内裤让男人捅视频| 欧美精品亚洲一区二区| 久久天堂一区二区三区四区| 免费人妻精品一区二区三区视频| 精品第一国产精品| 黄色 视频免费看| 岛国毛片在线播放| 亚洲国产av新网站| 午夜福利影视在线免费观看| 在线观看人妻少妇| 亚洲av国产av综合av卡| 成人18禁高潮啪啪吃奶动态图| 亚洲中文字幕日韩| 亚洲国产日韩一区二区| 三级毛片av免费| 国产亚洲精品一区二区www | e午夜精品久久久久久久| 欧美 亚洲 国产 日韩一| 成年动漫av网址| 日韩大码丰满熟妇| 一级毛片女人18水好多| 好男人电影高清在线观看| 国产有黄有色有爽视频| 久久久国产一区二区| 日韩一区二区三区影片| 久久久久精品人妻al黑| 精品一区二区三区四区五区乱码| 人妻人人澡人人爽人人| 久久精品熟女亚洲av麻豆精品| 又大又爽又粗| av在线播放精品| 国产野战对白在线观看| 日日爽夜夜爽网站| 侵犯人妻中文字幕一二三四区| 男女床上黄色一级片免费看| 女警被强在线播放| 超碰成人久久| 蜜桃在线观看..| bbb黄色大片| 无限看片的www在线观看| 精品人妻在线不人妻| tocl精华| 亚洲欧美一区二区三区久久| 美女中出高潮动态图| 亚洲五月婷婷丁香| 大片免费播放器 马上看| av在线app专区| 亚洲国产欧美一区二区综合| 黄片播放在线免费| 亚洲精品一区蜜桃| 老鸭窝网址在线观看| 看免费av毛片| 无遮挡黄片免费观看| 亚洲一区二区三区欧美精品| 中文字幕av电影在线播放| 免费黄频网站在线观看国产| 一级,二级,三级黄色视频| av国产精品久久久久影院| 波多野结衣av一区二区av| 久久精品成人免费网站| 亚洲色图综合在线观看| 欧美av亚洲av综合av国产av| 亚洲国产欧美一区二区综合| 精品一区二区三区av网在线观看 | 一区二区三区四区激情视频| 波多野结衣av一区二区av| 久久精品成人免费网站| 午夜福利视频精品| 成年动漫av网址| 中文字幕人妻熟女乱码| 老司机亚洲免费影院| 男女床上黄色一级片免费看| 国产区一区二久久| 亚洲成人免费电影在线观看| 午夜福利免费观看在线| 欧美另类亚洲清纯唯美| 免费在线观看影片大全网站| 性色av乱码一区二区三区2| 久久人人爽av亚洲精品天堂| 精品亚洲成a人片在线观看| 日韩大码丰满熟妇| 在线观看舔阴道视频| 国产欧美日韩一区二区三 | 日韩大码丰满熟妇| 岛国在线观看网站| 久久国产精品影院| 嫩草影视91久久| 久久99一区二区三区| 黄色怎么调成土黄色| 在线观看一区二区三区激情| 成人黄色视频免费在线看| 激情视频va一区二区三区| 一区二区三区精品91| 啦啦啦啦在线视频资源| 国产熟女午夜一区二区三区| 亚洲精品中文字幕在线视频| 亚洲美女黄色视频免费看| 欧美亚洲日本最大视频资源| 五月开心婷婷网| 一级毛片电影观看| 日韩制服丝袜自拍偷拍| 久久精品成人免费网站| 天天躁日日躁夜夜躁夜夜| 亚洲av美国av| 可以免费在线观看a视频的电影网站| 婷婷成人精品国产| 精品福利永久在线观看| 色播在线永久视频| 久久av网站| 国产亚洲欧美精品永久| 亚洲专区中文字幕在线| 亚洲av国产av综合av卡| 一区二区三区乱码不卡18| 99re6热这里在线精品视频| 午夜激情久久久久久久| 三上悠亚av全集在线观看| 午夜福利在线观看吧| 亚洲精品国产av成人精品| 国产一区二区三区综合在线观看| www.精华液| 在线观看人妻少妇| 欧美日韩福利视频一区二区| 又紧又爽又黄一区二区| 欧美激情高清一区二区三区| 窝窝影院91人妻| 国产又色又爽无遮挡免| av片东京热男人的天堂| 丝袜在线中文字幕| 视频在线观看一区二区三区| 亚洲自偷自拍图片 自拍| 19禁男女啪啪无遮挡网站| 亚洲精品国产色婷婷电影| 亚洲欧美色中文字幕在线| 热99re8久久精品国产| 秋霞在线观看毛片| 亚洲av日韩在线播放| 9191精品国产免费久久| 国产欧美日韩精品亚洲av| www.熟女人妻精品国产| 免费少妇av软件| 性少妇av在线| 在线亚洲精品国产二区图片欧美| 丝袜人妻中文字幕| 亚洲一区中文字幕在线| 俄罗斯特黄特色一大片| 丁香六月欧美| 日本精品一区二区三区蜜桃| √禁漫天堂资源中文www| 国产一区有黄有色的免费视频| 99久久国产精品久久久| 国产无遮挡羞羞视频在线观看| 色精品久久人妻99蜜桃| 色婷婷久久久亚洲欧美| 最近中文字幕2019免费版| 久久 成人 亚洲| 国产欧美日韩精品亚洲av| 亚洲国产精品一区三区| 欧美变态另类bdsm刘玥| 高清av免费在线| tube8黄色片| 操美女的视频在线观看| 亚洲全国av大片| 欧美成狂野欧美在线观看| 国产视频一区二区在线看| 电影成人av| 国产精品久久久久久精品电影小说| 欧美激情高清一区二区三区| 亚洲av成人一区二区三| 女人久久www免费人成看片| 久久青草综合色| 国产精品二区激情视频| 青春草亚洲视频在线观看| 在线永久观看黄色视频| 法律面前人人平等表现在哪些方面 | 亚洲欧美精品综合一区二区三区| 性色av乱码一区二区三区2| 亚洲欧美一区二区三区久久| 久久久国产精品麻豆| 国产成人免费无遮挡视频| 亚洲国产日韩一区二区| 看免费av毛片| 捣出白浆h1v1| 亚洲精品久久午夜乱码| 亚洲成av片中文字幕在线观看| 精品第一国产精品| 亚洲国产日韩一区二区| 精品少妇内射三级| 亚洲欧美精品自产自拍| 一二三四在线观看免费中文在| 后天国语完整版免费观看| 欧美亚洲日本最大视频资源| 欧美精品一区二区免费开放| 动漫黄色视频在线观看| 两性夫妻黄色片| 不卡一级毛片| 免费观看a级毛片全部| 黄色 视频免费看| 午夜精品久久久久久毛片777| 美女视频免费永久观看网站| tocl精华| 亚洲国产成人一精品久久久| 在线观看免费午夜福利视频| 久久久久久久国产电影| 18禁黄网站禁片午夜丰满| 男人舔女人的私密视频| 国产国语露脸激情在线看| www.自偷自拍.com| 99久久精品国产亚洲精品| 男女午夜视频在线观看| 首页视频小说图片口味搜索| 天天影视国产精品| 熟女少妇亚洲综合色aaa.| 80岁老熟妇乱子伦牲交| 国产精品一区二区在线不卡| 美女高潮喷水抽搐中文字幕|