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

    面向操作系統(tǒng)版本構(gòu)建的軟件包依賴關(guān)系分析*

    2021-11-22 08:55:36俊,周凱,任怡,朱浩,秦瑩,王
    關(guān)鍵詞:出度開源倉庫

    馬 俊,周 凱,任 怡,朱 浩,秦 瑩,王 靜

    (國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院, 湖南 長(zhǎng)沙 410073)

    1 引言

    軟件發(fā)行管理(Software Release Management)在大型軟件工程開發(fā)中的作用越來越重要[1],同時(shí)由于大型軟件組件構(gòu)建和相互關(guān)系復(fù)雜,經(jīng)常會(huì)由于某個(gè)組件的更新升級(jí)導(dǎo)致整個(gè)軟件系統(tǒng)失效或者崩潰[2]。操作系統(tǒng)作為最復(fù)雜的基礎(chǔ)軟件系統(tǒng)之一,其版本構(gòu)建和發(fā)行管理中面臨的這類問題更加突出。

    近年來,Linux類操作系統(tǒng)在服務(wù)器和桌面領(lǐng)域愈發(fā)普及與流行,系統(tǒng)復(fù)雜性也隨著軟件規(guī)模的增加而劇增。至2020年,僅內(nèi)核代碼已經(jīng)超過2 500萬行,包含超過61 000個(gè)文件[3],而一個(gè)典型的Ubuntu發(fā)行版本對(duì)應(yīng)軟件倉庫中開源軟件或組件的數(shù)量也超過3萬個(gè),二進(jìn)制軟件包數(shù)量超過6萬個(gè)。為了便于組織管理和維護(hù),Linux系統(tǒng)中的應(yīng)用軟件以特定格式的軟件包進(jìn)行組織,通過軟件包的各種屬性描述軟件包之間的相互關(guān)系,并提供管理工具(如Ubuntu的DPKG和APT工具、CentOS的RPM和YUM工具等)便于用戶安裝、升級(jí)與卸載軟件。在軟件包的相互關(guān)系中,依賴關(guān)系主要體現(xiàn)了一個(gè)軟件的安裝和執(zhí)行依賴于另一個(gè)軟件提供的運(yùn)行庫或服務(wù)接口等。操作系統(tǒng)在進(jìn)行發(fā)行版本構(gòu)建時(shí),除了依據(jù)必要功能選擇核心組件的軟件包,還必須將組件依賴的軟件包集成到版本中,提供一個(gè)依賴關(guān)系自洽的閉包。因此,依賴關(guān)系對(duì)于操作系統(tǒng)版本構(gòu)建和系統(tǒng)的定制裁剪至關(guān)重要。

    從開源社區(qū)中Linux系列操作系統(tǒng)發(fā)行版本的組成來看,不同使用場(chǎng)景與功能特性需求的差異,會(huì)導(dǎo)致選取軟件包的范圍和數(shù)量不同。表1選取開源社區(qū)發(fā)行版本活躍度統(tǒng)計(jì)網(wǎng)站Distrowatch[4]上近3個(gè)月(2020.08~2020.11)點(diǎn)擊率排名靠前的操作系統(tǒng)進(jìn)行分析,可以大致看出:以Ubuntu為基礎(chǔ)衍生出了眾多集成不同桌面環(huán)境和工具的桌面操作系統(tǒng)版本,而服務(wù)器操作系統(tǒng)版本則會(huì)選擇相對(duì)固定的桌面環(huán)境。進(jìn)一步選取比較有代表性的Ubuntu和CentOS的不同版本對(duì)軟件包數(shù)量進(jìn)行分析,如圖1所示,可以看出:桌面版本與服務(wù)器版本在軟件包的數(shù)量上存在非常大的差異。同時(shí),由于很多的開源軟件更新頻繁,軟件之間的依賴等關(guān)系復(fù)雜,基于這些軟件包構(gòu)建的操作系統(tǒng)也要不斷迭代升級(jí),從而使操作系統(tǒng)發(fā)行版本構(gòu)建的碎片化問題突出。因此,如何從軟件倉庫選取合適的軟件包,平衡軟件包數(shù)量與系統(tǒng)可靠性之間的關(guān)系是操作系統(tǒng)發(fā)行版本構(gòu)建和發(fā)布管理時(shí)需要重點(diǎn)關(guān)注的問題。

    Table 1 Analysis on composition and characteristics of typical of operating system distribution表1 典型操作系統(tǒng)發(fā)行版本組成特點(diǎn)分析

    Figure 1 Built-in packages of different Linux distributions圖1 不同發(fā)行版本默認(rèn)包含的軟件包數(shù)量統(tǒng)計(jì)

    目前,操作系統(tǒng)版本構(gòu)建主要是從工程實(shí)現(xiàn)角度基于歷史經(jīng)驗(yàn)進(jìn)行軟件包的選擇和集成,相應(yīng)的理論分析和支持不足。本文通過依賴關(guān)系構(gòu)建軟件包之間的關(guān)系圖,建立了基于依賴關(guān)系的操作系統(tǒng)版本構(gòu)建模型,并通過對(duì)典型Ubuntu發(fā)行版本以及對(duì)應(yīng)軟件倉庫的軟件包關(guān)系特征進(jìn)行統(tǒng)計(jì),結(jié)合功能分類進(jìn)行分析,對(duì)模型有效性進(jìn)行驗(yàn)證的同時(shí),總結(jié)了幾條操作系統(tǒng)版本構(gòu)建和系統(tǒng)裁剪定制的指導(dǎo)原則。

    2 相關(guān)工作

    軟件發(fā)行管理最早是由van der Hoek等人[1]提出的,并在2003年提出了基于組件的軟件發(fā)行管理,指出依賴是軟件發(fā)行管理的核心[5]。而依賴關(guān)系分析在大型軟件工程活動(dòng)中也成為了重要研究熱點(diǎn),覆蓋包括軟件理解、測(cè)試、調(diào)試、維護(hù)和開發(fā)等各個(gè)環(huán)節(jié)[6]。

    依賴關(guān)系的建模方式主要包括利用結(jié)構(gòu)矩陣、SAT、特性圖以及復(fù)雜網(wǎng)絡(luò)等。Sangal等人[7]首次提出了依賴結(jié)構(gòu)矩陣DSM(Dependency Structure Matrix)模型,用于描述軟件構(gòu)件間的依賴關(guān)系。Laval等人[8]提出了EDSM(Enriched Dependency Source Matrix),通過擴(kuò)展DSM能夠判斷出軟件包之間的循環(huán)依賴。類似研究還有設(shè)計(jì)結(jié)構(gòu)矩陣(Design Structure Matrix)[9]和域映射矩陣(Domain Mapping Matrix)等[11]。在開源操作系統(tǒng)的研究中,Wang等人[11]提出一種分析Linux操作系統(tǒng)發(fā)行包依賴關(guān)系圖的方法,從復(fù)雜網(wǎng)絡(luò)和復(fù)雜系統(tǒng)的角度對(duì)開源操作系統(tǒng)進(jìn)行研究,將開源操作系統(tǒng)抽象為軟件網(wǎng)絡(luò),并且從全局的角度來探索和發(fā)現(xiàn)開源操作系統(tǒng)的結(jié)構(gòu)特征與演化規(guī)律。葉安達(dá)[12]則用圖論思想分析源碼包之間的依賴關(guān)系,研究源碼包之間的拓?fù)潢P(guān)系,給出鏈?zhǔn)揭蕾囮P(guān)系的源碼包的最佳編譯順序。

    從軟件包的依賴關(guān)系的研究目的來看,目前的研究主要包括:依賴關(guān)系改善、依賴關(guān)系提取、依賴完整性檢測(cè)[13]、包管理相關(guān)(安裝、升級(jí)、分發(fā))[14]和探究軟件系統(tǒng)生態(tài)等。其中改善與解決軟件依賴關(guān)系的研究主要關(guān)注SAT求解與軟件包關(guān)系管理。例如,顧昊等人[15]對(duì)軟件包依賴問題進(jìn)行了分析與歸納,給出了該問題的形式化描述,并提出了一套將軟件包依賴問題轉(zhuǎn)變?yōu)?SAT問題的基本映射規(guī)則,最后結(jié)合MiniSAT給出了基本的求解算法。Mancinelli等人[2]則集中于包管理工具,通過探索給定包的依賴需求,執(zhí)行正確安裝所需的所有步驟,自動(dòng)找到丟失的依賴包,并自動(dòng)下載安裝這些包。

    還有部分研究將依賴關(guān)系與相應(yīng)系統(tǒng)軟件及其生態(tài)相結(jié)合。例如,聚焦于依賴關(guān)系相關(guān)的軟件包生態(tài)與演進(jìn)的依賴關(guān)系分析[16],關(guān)注理解復(fù)雜系統(tǒng)中組件間的關(guān)系以更好地管理復(fù)雜軟件系統(tǒng)[4,17]等。

    上述工作主要是以開源操作系統(tǒng)軟件包為元素的依賴關(guān)系分析,目的是評(píng)估系統(tǒng)的兼容性,便于進(jìn)行軟件包的組織管理,很少有直接面向操作系統(tǒng)版本構(gòu)建和定制裁剪的分析與研究。

    在操作系統(tǒng)版本構(gòu)建和定制裁剪方面,標(biāo)準(zhǔn)化組織與產(chǎn)業(yè)界在工程實(shí)踐中積累了很多經(jīng)驗(yàn)和行之有效的規(guī)則。從系統(tǒng)構(gòu)建來看,Debootstrap[17]可以用來構(gòu)建最小系統(tǒng)集合,維持最基本的系統(tǒng)功能運(yùn)行,開發(fā)者可以基于最小系統(tǒng)通過增加軟件包及其依賴定制構(gòu)建版本。從軟件包的選擇來看,Linux為代表的開源社區(qū)將軟件包進(jìn)行分級(jí),例如Ubuntu的Priority屬性將軟件包分為Required、Important等不同優(yōu)先級(jí)以區(qū)分軟件包在系統(tǒng)中的必要程度,系統(tǒng)構(gòu)建時(shí)可以根據(jù)需要選擇不同等級(jí)的軟件包。Red Hat為此建立一個(gè)用來區(qū)分軟件包兼容程度的分層框架,根據(jù)軟件包的演化兼容情況劃分了4個(gè)兼容性等級(jí)[18],指導(dǎo)開發(fā)者選擇開發(fā)依賴的組件,并且在最新的8.0版本中通過引入AppStream對(duì)不同功能的包劃分管道進(jìn)行分類選擇和管理[19]??偟膩砜?,版本構(gòu)建領(lǐng)域長(zhǎng)久以來工程實(shí)踐的經(jīng)驗(yàn)都先于理論分析的指導(dǎo)。

    3 基于依賴關(guān)系的版本構(gòu)建模型

    操作系統(tǒng)版本構(gòu)建過程一般是基于一個(gè)初始的軟件包列表,根據(jù)依賴關(guān)系把相關(guān)的支撐軟件包集成,最終構(gòu)建為一個(gè)版本鏡像提供給用戶進(jìn)行安裝使用。從圖論角度來看,軟件包及其依賴關(guān)系構(gòu)成了復(fù)雜的有向圖,通過分析有向圖的特性可以在一定程度上了解軟件包依賴關(guān)系的規(guī)律。為更好地分析軟件包依賴關(guān)系與操作系統(tǒng)版本構(gòu)建之間的聯(lián)系,以及操作系統(tǒng)版本構(gòu)建的過程和原理,本文給出基于依賴關(guān)系的操作系統(tǒng)版本構(gòu)建模型。

    依賴關(guān)系主要體現(xiàn)在軟件包之間,因此下面給出操作系統(tǒng)的軟件包依賴關(guān)系的定義:

    定義1(軟件包依賴關(guān)系) 依賴關(guān)系用一個(gè)二元組eij=(vi,vj)表示,即軟件包vi依賴軟件包vj,等價(jià)于如果要安裝軟件包vi,需要提前或同時(shí)安裝vj。

    在軟件包依賴關(guān)系模型的基礎(chǔ)上,定義依賴關(guān)系圖模型如定義2所示:

    定義2(依賴關(guān)系圖) 依賴關(guān)系圖模型是一個(gè)二元組G=(V,E),表示一組軟件包節(jié)點(diǎn)及其依賴關(guān)系,其中V表示軟件包節(jié)點(diǎn)的集合,E表示V中節(jié)點(diǎn)之間的依賴關(guān)系的集合。

    通過軟件包依賴關(guān)系和依賴關(guān)系圖的定義,可以更好地描述操作系統(tǒng)版本和對(duì)應(yīng)的軟件倉庫。軟件倉庫通常用于對(duì)特定版本或者應(yīng)用場(chǎng)景所需要的一系列軟件包進(jìn)行組織管理,可以包含操作系統(tǒng)發(fā)行版本沒有默認(rèn)集成的各種軟件包。軟件包倉庫定義如定義3所示:

    定義3(軟件倉庫) 用二元組Grespo=(Vall,Eall)表示一個(gè)操作系統(tǒng)發(fā)行版本對(duì)應(yīng)的軟件倉庫,其中,Vall表示當(dāng)前操作系統(tǒng)發(fā)行版本支持的所有軟件包,Eall表示依賴關(guān)系的集合。

    為方便論述,將軟件包vi依賴的軟件包的集合用D(vi)表示,且?vj∈D(vi),?eij=(vi,vj)。與軟件倉庫模型相比,操作系統(tǒng)特定版本模型多了一組限定條件,其定義如定義4所示:

    定義4(操作系統(tǒng)發(fā)行版本) 用二元組Gdist=(Vdist,Edist)表示一個(gè)操作系統(tǒng)發(fā)行版本,其中Vdist表示當(dāng)前操作系統(tǒng)發(fā)行版本中集成的所有軟件包,Edist表示依賴關(guān)系的集合。

    上述4個(gè)定義從軟件包及其依賴關(guān)系角度描述了操作系統(tǒng)發(fā)行版本與對(duì)應(yīng)的軟件倉庫模型。從定義可知Gdist?Grespo。由于發(fā)行版本必須保證自帶的所有軟件包都能夠正常安裝運(yùn)行,因此很容易得到操作系統(tǒng)發(fā)行版本的依賴關(guān)系滿足完備性。

    定理1(發(fā)行版本依賴關(guān)系完備性) 給定操作系統(tǒng)發(fā)行版本Gdist=(Vdist,Edist),?vi∈Vdist,D(vi)?Vdist。

    發(fā)行版本依賴關(guān)系的完備性保證了發(fā)行版本自身可以獨(dú)立完成安裝和運(yùn)行,而不需要額外的軟件倉庫支持。在開源操作系統(tǒng)發(fā)展的早期,由于光盤容量限制,有些發(fā)行版本會(huì)將操作系統(tǒng)的安裝鏡像保存在一張光盤中,而將包含其依賴的軟件倉庫保存在另外一張或者多張光盤中,在這種情況下,發(fā)行版本的概念是同時(shí)包含了安裝光盤和軟件倉庫光盤。

    從上述定義和定理也可以知道,操作系統(tǒng)發(fā)行版本的軟件包集合根據(jù)功能需求的不同,其大小范圍也會(huì)有差異。其基本的構(gòu)建過程通常是基于一個(gè)初始的基礎(chǔ)軟件包列表將每個(gè)包依賴的軟件包都集成進(jìn)來,如此不斷迭代,形成完備的軟件包集合。其中比較關(guān)鍵的一步就是根據(jù)依賴關(guān)系把相關(guān)的支撐軟件包找到,為了簡(jiǎn)化流程,將該步驟封裝,本文提出軟件包依賴析取算法PullDepends。

    算法1軟件包依賴析取算法PullDepends

    輸入:vi。//package

    輸出:V。//a group of packages

    PullDepends(vi)

    1.V={};

    2.Vnext=D(vi);

    3.forvjinVnext

    4.ifvjnot inV

    5.V=V∪{vj};

    6.Vnext=Vnext∪D(vj);

    7.returnV.

    PullDepends的主要思路是通過循環(huán)檢測(cè)獲取安裝特定軟件包所需的所有軟件包的集合。輸入一個(gè)軟件包,得到軟件包集合D(vi)并遍歷,繼續(xù)得到這些軟件包的支撐軟件包,最終該算法返回一個(gè)軟件包的集合V,V為安裝特定軟件包vi所需要的所有依賴軟件包的集合。

    該算法是通過Vnext的動(dòng)態(tài)變化避免了遞歸調(diào)用和重復(fù)性判斷,從算法的執(zhí)行過程來看,D(vi)實(shí)際上是從vi出發(fā)的依賴關(guān)系樹的所有子節(jié)點(diǎn),因此上述算法的效率與該依賴關(guān)系樹的深度有較大的關(guān)聯(lián)。為此,引入依賴深度的概念。

    定義5(依賴深度) 軟件包的依賴深度用Depth(vi)表示,Depth(vi)=maxvj{distance(vi,vj)}。

    依賴深度可以反映一個(gè)軟件包在操作系統(tǒng)構(gòu)建中所處的維度層次,對(duì)于版本構(gòu)建時(shí)軟件包的選擇以及版本構(gòu)建算法的分析具有重要參考意義。

    基于上述軟件包依賴析取算法可以實(shí)現(xiàn)基于依賴關(guān)系的版本構(gòu)建算法BuildSystem。該算法的輸入為一組特定軟件包集合V0,這些軟件包是構(gòu)建操作系統(tǒng)版本需要的基礎(chǔ)軟件包列表集合。V是通過依賴關(guān)系獲得的所有需要增加的軟件包集合,所有V的集合最終組成一個(gè)特定的推薦操作系統(tǒng)發(fā)行版本S。

    算法2版本構(gòu)建算法BuildSystem

    輸入:V0。//a group of packages including base packages and specific packages

    輸出:S。//a specific operating system version

    1.V={};

    2.forvkinV0

    3.Vk=PullDepends(vk);

    4.V=V∪Vk;

    5.ReturnS=V0∪V.

    4 基于依賴關(guān)系的版本構(gòu)建分析系統(tǒng)

    第3節(jié)中的定義和模型為分析版本構(gòu)建過程提供了理論依據(jù)。本節(jié)將以此為基礎(chǔ),以典型操作系統(tǒng)版本和軟件倉庫的軟件包及依賴關(guān)系數(shù)據(jù)為依據(jù),設(shè)計(jì)和實(shí)現(xiàn)一套基于依賴關(guān)系的版本構(gòu)建分析系統(tǒng),并根據(jù)系統(tǒng)分析統(tǒng)計(jì)的結(jié)果與實(shí)際發(fā)行版本的組成進(jìn)行比較,從而分析總結(jié)出典型版本構(gòu)建的規(guī)律。

    基于依賴關(guān)系的版本構(gòu)建分析系統(tǒng)總體結(jié)構(gòu)如圖2所示。該系統(tǒng)主要由數(shù)據(jù)解析模塊、數(shù)據(jù)分析模塊和數(shù)據(jù)展示模塊3部分構(gòu)成。

    Figure 2 Analysis system for distribution building based on dependency relationship圖2 基于依賴關(guān)系的版本構(gòu)建分析系統(tǒng)

    4.1 數(shù)據(jù)來源

    本文以優(yōu)麒麟開源操作系統(tǒng)18.04版本為例,選取該版本在倉庫中的信息列表,并將數(shù)據(jù)持久化到軟件倉庫數(shù)據(jù)庫中。同時(shí)選取Ubuntu桌面版和服務(wù)器版等典型版本軟件包數(shù)據(jù)作為對(duì)比驗(yàn)證的數(shù)據(jù)來源。

    4.2 數(shù)據(jù)解析模塊

    數(shù)據(jù)解析模塊實(shí)現(xiàn)從外部數(shù)據(jù)解析導(dǎo)入到本地?cái)?shù)據(jù)庫的過程。為記錄描述軟件包及依賴關(guān)系的數(shù)據(jù),本文設(shè)計(jì)構(gòu)建了3個(gè)數(shù)據(jù)庫表,如表2所示。其中,Package表存放所有的軟件包信息,即Vall;Relation表存放提取出來的關(guān)系,對(duì)應(yīng)模型中的Eall;Degree表存放解析后的數(shù)據(jù),包括出入度等屬性。

    圖3是數(shù)據(jù)解析的主要流程。首先從優(yōu)麒麟的軟件倉庫中提取相關(guān)字段并保存到Package表中,該表存儲(chǔ)軟件倉庫中所有軟件包信息。然后提取記錄中的依賴關(guān)系并逐條保存到Relation表中。最后利用python中的networkx庫實(shí)現(xiàn)已有信息的解析,得到諸如出度、入度和依賴深度等屬性并存入Degree表中。對(duì)于2個(gè)實(shí)驗(yàn)操作系統(tǒng)版本,主要提取系統(tǒng)中已有軟件包的信息。

    Figure 3 Process of dealing dependency realtionship圖3 數(shù)據(jù)解析過程

    4.3 數(shù)據(jù)分析模塊與展示模塊

    本文主要利用統(tǒng)計(jì)分析方法,重點(diǎn)對(duì)優(yōu)先級(jí)、所屬類別屬性、出入度和依賴深度等屬性和特性進(jìn)行統(tǒng)計(jì)分析和對(duì)比驗(yàn)證,并結(jié)合模型算法對(duì)版本構(gòu)建過程進(jìn)行模擬比較。

    數(shù)據(jù)展示模塊主要包括數(shù)據(jù)可視化,并借助自動(dòng)化腳本且結(jié)合已有知識(shí)庫進(jìn)行人工分析。其中可視化部分利用python批量生成特定gephi格式文件,并通過Gephi工具與Echart進(jìn)行結(jié)果展示。

    5 實(shí)驗(yàn)與結(jié)果分析

    5.1 數(shù)據(jù)統(tǒng)計(jì)

    本文統(tǒng)計(jì)的系統(tǒng)軟件倉庫包括60 861個(gè)軟件包節(jié)點(diǎn)和250 608條軟件包之間的依賴關(guān)系,并以此為基礎(chǔ)進(jìn)行關(guān)鍵特性的統(tǒng)計(jì)分析。

    5.1.1 基于軟件包入度的統(tǒng)計(jì)

    軟件包的入度表示該軟件包被其他軟件包依賴的次數(shù),入度越大,該軟件包被依賴的次數(shù)越多。入度在很大程度上也是軟件包對(duì)其他軟件影響程度的一個(gè)體現(xiàn)。從版本構(gòu)建上來說,對(duì)其他軟件包影響比較大的軟件包應(yīng)該盡量集成到版本中。圖4所示是整個(gè)軟件倉庫中軟件包的入度總體分布情況。

    Figure 4 Statistic graph of in_degree圖4 入度區(qū)間分布統(tǒng)計(jì)圖

    從圖4中可以看出,超過95%的軟件包入度都集中于10以下,特別是入度為0的軟件包超過了一半,這類軟件包通常都是直接面向用戶提供服務(wù)的軟件或者組件。另外有少數(shù)軟件包的入度特別大,甚至超過1 000,這些通常都是操作系統(tǒng)版本制作需要重點(diǎn)關(guān)注和默認(rèn)集成的。為進(jìn)一步分析這類軟件包的情況,本文統(tǒng)計(jì)了入度超過2 000的軟件包,如表3所示。

    Table 3 Software packages with in_degree more than 2000表3 入度超過2 000的軟件包

    這些軟件包基本上都是系統(tǒng)組成最基礎(chǔ)的庫或者語言解釋支持。如libc6包,它包含了標(biāo)準(zhǔn)C庫的共享版本,被操作系統(tǒng)中近1/3的軟件包直接依賴,是幾乎所有的程序都會(huì)使用的標(biāo)準(zhǔn)庫。其他大部分軟件包為lib庫,為系統(tǒng)重要基礎(chǔ)軟件如C語言編譯器、x11等提供函數(shù)庫,如libstdc++6、libgcc1為源碼包gcc-8構(gòu)建的c++庫和gcc支持庫。

    5.1.2 基于軟件包出度的統(tǒng)計(jì)

    軟件包的出度表示該軟件包依賴其他軟件包的數(shù)目,出度大則表示其依賴的軟件包多。從軟件包的發(fā)行維護(hù)來說,它依賴的軟件包中任意一個(gè)出現(xiàn)變動(dòng),如版本的變化或者軟件包內(nèi)部函數(shù)名的變更等,都可能導(dǎo)致該軟件包出現(xiàn)兼容性問題,因此在版本構(gòu)建和軟件包維護(hù)過程中應(yīng)該重點(diǎn)關(guān)注。如圖5所示為系統(tǒng)軟件包出度的分布統(tǒng)計(jì)。

    Figure 5 Statistic graph of out_degree圖5 出度分布統(tǒng)計(jì)圖

    與入度相比而言,出度的分布跨度要小很多,最大出度不超過200,超過98%的軟件包的出度在20以內(nèi),也間接表明了軟件設(shè)計(jì)的一個(gè)要求,軟件包內(nèi)部緊密連接,軟件包之間松耦合。從統(tǒng)計(jì)來看,出度在0~5的軟件包數(shù)量比較多,這與開源軟件本身提供的開發(fā)庫相對(duì)分散和多樣有關(guān),也是當(dāng)前開源生態(tài)建立和維護(hù)比較困難的重要因素。

    通過對(duì)出度超過100的軟件包分析發(fā)現(xiàn),出度大的軟件包一般都是偏應(yīng)用層面的軟件包,如桌面環(huán)境、瀏覽器的測(cè)試組件等,作為非必須安裝項(xiàng),可由用戶根據(jù)自身需求進(jìn)行選擇。安裝這類軟件的同時(shí)也需要安裝大量的依賴軟件包,這也是桌面版本通常都比服務(wù)器版本的軟件包數(shù)量多的主要原因。

    5.1.3 依賴深度的統(tǒng)計(jì)

    軟件包的出度通常反映其直接依賴的軟件包情況,而被依賴軟件包的下一級(jí)依賴關(guān)系則由被依賴軟件包進(jìn)行維護(hù),這種管理方式減少了軟件安裝時(shí)依賴的檢測(cè)判斷,但也給軟件的正常執(zhí)行埋下了隱患。例如某一級(jí)軟件包的依賴關(guān)系出現(xiàn)異常難易被上一級(jí)的軟件包檢測(cè)。目前版本構(gòu)建過程缺少對(duì)多級(jí)依賴關(guān)系的直觀衡量,而依賴深度可以作為參考。

    表4是依賴深度排名前10的軟件包數(shù)據(jù)統(tǒng)計(jì)。目前統(tǒng)計(jì)的軟件倉庫中軟件包依賴深度最大不超過20,而且依賴深度大的軟件包主要是偏上層應(yīng)用的軟件。

    Table 4 Statistics of top 10 dependency depth表4 依賴深度前10的統(tǒng)計(jì)

    從版本構(gòu)建來看,某個(gè)軟件包的依賴深度越大,將其引入版本中時(shí)需要構(gòu)建的軟件棧就會(huì)越長(zhǎng),會(huì)導(dǎo)致版本的管理維護(hù)越復(fù)雜,特別是軟件棧中間組件版本變化對(duì)整個(gè)系統(tǒng)兼容性的影響也會(huì)越大,這也是目前開源發(fā)行版本碎片化嚴(yán)重的一個(gè)原因。因此,版本的構(gòu)建應(yīng)該盡量選擇依賴深度較小的軟件包。

    5.1.4 基于軟件包優(yōu)先級(jí)的統(tǒng)計(jì)

    包的優(yōu)先級(jí)完全由它直接提供給用戶的功能決定,優(yōu)先級(jí)高的軟件包通常只會(huì)被同級(jí)別優(yōu)先級(jí)與低級(jí)別優(yōu)先級(jí)軟件包所依賴,換而言之,優(yōu)先級(jí)高的包將處于依賴關(guān)系圖中偏底層的位置。如表5所示展示了優(yōu)麒麟軟件倉庫中軟件包的優(yōu)先級(jí)和在系統(tǒng)中所占比重。

    Table 5 Number distribution of software packages with different priorities表5 不同優(yōu)先級(jí)的軟件包數(shù)量分布

    從平均入度來看,Required類型的平均入度遠(yuǎn)高于其他類型優(yōu)先級(jí),其次Important優(yōu)先級(jí)的平均入度為151.39,優(yōu)先級(jí)的平均入度也與優(yōu)先級(jí)的劃分相對(duì)應(yīng):優(yōu)先級(jí)越高,入度越高,被依賴的程度越深。同樣,平均出度作為當(dāng)前類別軟件包依賴其他軟件包的平均程度,也表明Required類型軟件包作為必備軟件包在系統(tǒng)中一般都是被依賴的角色。在操作系統(tǒng)版本構(gòu)建中,Required和Important類型優(yōu)先級(jí)的軟件包通常需要首先被開發(fā)者考慮。

    5.2 典型系統(tǒng)印證

    本文選擇Ubuntu-18.04.5-live-server-amd64(以下簡(jiǎn)稱服務(wù)器版本)和Ubuntu-18.04.5-desktop-amd64(以下簡(jiǎn)稱桌面版本)2個(gè)版本進(jìn)行驗(yàn)證。

    5.2.1 依賴出入度與版本構(gòu)建關(guān)系

    圖6所示為不同范圍入度的軟件包系統(tǒng)中所占比重。從圖6中可以看到,操作系統(tǒng)中軟件包的入度從0~50到大于1 000都有分布,并且系統(tǒng)中入度小于50的軟件包占所有軟件包80%左右,這類軟件包即使入度不是很高,但也為系統(tǒng)的正常運(yùn)行提供重要支撐。

    Figure 6 Proportion of software packages in different in_degree intervals in systems圖6 不同入度區(qū)間軟件包數(shù)量在系統(tǒng)中所占比重

    在出入度為0的軟件包中,服務(wù)器版本含有4個(gè),包括崩潰檢測(cè)報(bào)告功能的相關(guān)腳本、bash的補(bǔ)充工具、krb5的語言包和ncurses-base。桌面版本中額外多了字體、主題等相關(guān)的軟件包。因此,單個(gè)軟件包的入度低并不能說明該軟件包對(duì)系統(tǒng)不重要。在入度超過1 000的13個(gè)軟件包中,與軟件倉庫相比,桌面版本缺少2個(gè)編程類庫包,服務(wù)器版本缺少3個(gè)編程語言類軟件包和qt5核心軟件包。語言類軟件包如python、ruby等由于本身廣泛的使用而有著極高的出入度,但對(duì)于構(gòu)建一個(gè)基礎(chǔ)系統(tǒng)來說并不是必需考慮的軟件包。

    結(jié)論1單個(gè)軟件包的出入度不能作為衡量系統(tǒng)版本能否正常運(yùn)行的指標(biāo),但高入度的軟件包依舊是版本構(gòu)建需要重點(diǎn)關(guān)注的。入度為0的軟件包通常是直接向用戶提供功能的組件,在系統(tǒng)構(gòu)建時(shí)可以根據(jù)功能需求進(jìn)行選擇。

    5.2.2 優(yōu)先級(jí)分類與版本構(gòu)建關(guān)系

    圖7展示了2個(gè)實(shí)驗(yàn)版本不同優(yōu)先級(jí)下的軟件包數(shù)量。2個(gè)系統(tǒng)中,Required、Important和Standard 3種優(yōu)先級(jí)的軟件包數(shù)量與軟件倉庫一致,系統(tǒng)中軟件包數(shù)量的差異主要體現(xiàn)在Optional與Extra中軟件包的不同。在服務(wù)器版本中,Extra的軟件包主要與云實(shí)例功能模塊相關(guān)。Optional中的軟件包主要有l(wèi)ib和python 2類軟件包,其中l(wèi)ib主要是優(yōu)先級(jí)高的軟件包支持庫,python類別軟件包則提供了核心組件的python接口和功能模塊。這2類軟件包為系統(tǒng)中必要功能模塊提供支持,需要根據(jù)實(shí)際情況進(jìn)行選擇。

    Figure 7 Classification of software packages with different version圖7 不同版本的軟件包分類

    結(jié)論2在系統(tǒng)版本構(gòu)建過程中,根據(jù)系統(tǒng)基礎(chǔ)功能需求,優(yōu)先級(jí)為Required、Important和Standard的軟件包通常會(huì)加入版本,其他屬性的軟件包可以根據(jù)需求功能自由選擇。如果是做精簡(jiǎn)定制裁剪,一些常用的命令工具則可以根據(jù)情況裁剪,因此針對(duì)系統(tǒng)裁剪需要提供更詳細(xì)的分類標(biāo)記。

    6 結(jié)束語

    本文從依賴關(guān)系角度對(duì)操作系統(tǒng)版本構(gòu)建過程建立了基礎(chǔ)模型,并以優(yōu)麒麟18.04軟件倉庫的實(shí)際數(shù)據(jù)和Ubuntu典型服務(wù)器及桌面2個(gè)版本的實(shí)際數(shù)據(jù)為參考,進(jìn)行了軟件包依賴關(guān)系出入度、優(yōu)先級(jí)和依賴深度等屬性的統(tǒng)計(jì)和對(duì)比驗(yàn)證,總結(jié)給出了出入度、優(yōu)先級(jí)等屬性對(duì)版本構(gòu)建的影響規(guī)律,對(duì)于操作系統(tǒng)研發(fā)和版本構(gòu)建人員具有一定的指導(dǎo)意義,也為從理論上進(jìn)行版本的自動(dòng)分析和大規(guī)模軟件包的屬性及標(biāo)記分析奠定了基礎(chǔ)。

    從實(shí)際分析來看,軟件包的出入度在一定程度上依賴于軟件包開發(fā)和維護(hù)人員的經(jīng)驗(yàn),可能存在冗余依賴或者缺少依賴的問題,后續(xù)將結(jié)合依賴深度和優(yōu)先級(jí)等屬性和標(biāo)記,對(duì)軟件包的屬性標(biāo)記規(guī)律和準(zhǔn)確性進(jìn)行挖掘分析,并結(jié)合典型軟件包及CentOS等更多典型操作系統(tǒng)版本的演化進(jìn)行數(shù)據(jù)分析,為操作系統(tǒng)版本構(gòu)建和裁剪、軟件兼容性評(píng)估以及故障關(guān)聯(lián)性分析等提供理論和數(shù)據(jù)支撐。

    猜你喜歡
    出度開源倉庫
    倉庫里的小偷
    填滿倉庫的方法
    四行倉庫的悲壯往事
    五毛錢能買多少頭牛
    大家說:開源、人工智能及創(chuàng)新
    開源中國(guó)開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
    開源計(jì)算機(jī)輔助翻譯工具研究
    消防設(shè)備
    羅通定口腔崩解片的溶出度研究
    阿莫西林克拉維酸鉀片溶出度對(duì)比研究
    亚洲 欧美一区二区三区| 婷婷精品国产亚洲av在线| 午夜成年电影在线免费观看| 欧美乱妇无乱码| 听说在线观看完整版免费高清| 亚洲激情在线av| 97碰自拍视频| 又粗又爽又猛毛片免费看| 妹子高潮喷水视频| 香蕉久久夜色| 成人一区二区视频在线观看| 国产精品亚洲av一区麻豆| 国产精品美女特级片免费视频播放器 | www.999成人在线观看| 国产真人三级小视频在线观看| 亚洲真实伦在线观看| 亚洲人成网站在线播放欧美日韩| 国产熟女xx| 欧美性长视频在线观看| 国产亚洲精品av在线| 国产精品野战在线观看| 午夜福利成人在线免费观看| 亚洲一区高清亚洲精品| 国产成人一区二区三区免费视频网站| 精品欧美国产一区二区三| 亚洲欧美日韩高清专用| 制服丝袜大香蕉在线| 女生性感内裤真人,穿戴方法视频| 久久精品国产亚洲av香蕉五月| 人人妻人人澡欧美一区二区| 身体一侧抽搐| 精品国产超薄肉色丝袜足j| 亚洲色图av天堂| 在线观看舔阴道视频| 777久久人妻少妇嫩草av网站| 国产av麻豆久久久久久久| 亚洲第一欧美日韩一区二区三区| 久久天躁狠狠躁夜夜2o2o| 嫩草影院精品99| 久久精品aⅴ一区二区三区四区| 国产蜜桃级精品一区二区三区| 国产精品久久久久久亚洲av鲁大| 国产精品久久久久久久电影 | 美女扒开内裤让男人捅视频| 99在线视频只有这里精品首页| 国产高清视频在线观看网站| 免费在线观看影片大全网站| 观看免费一级毛片| 亚洲人与动物交配视频| 国模一区二区三区四区视频 | 亚洲乱码一区二区免费版| 国产亚洲av高清不卡| 小说图片视频综合网站| 成人高潮视频无遮挡免费网站| 国产成+人综合+亚洲专区| 久久伊人香网站| 午夜精品久久久久久毛片777| cao死你这个sao货| 一夜夜www| 一二三四社区在线视频社区8| 巨乳人妻的诱惑在线观看| 日本黄大片高清| 亚洲av五月六月丁香网| 在线十欧美十亚洲十日本专区| 国产1区2区3区精品| 可以在线观看毛片的网站| 午夜成年电影在线免费观看| 可以免费在线观看a视频的电影网站| 精品无人区乱码1区二区| 91国产中文字幕| av超薄肉色丝袜交足视频| 搡老妇女老女人老熟妇| 叶爱在线成人免费视频播放| a级毛片a级免费在线| 女生性感内裤真人,穿戴方法视频| 国产欧美日韩一区二区三| www日本黄色视频网| 亚洲真实伦在线观看| 国产私拍福利视频在线观看| 亚洲国产精品sss在线观看| 亚洲真实伦在线观看| 国产精品久久久久久精品电影| 久久人妻av系列| 男女床上黄色一级片免费看| 亚洲精品久久成人aⅴ小说| 男女做爰动态图高潮gif福利片| 久久国产乱子伦精品免费另类| 国产精品影院久久| 国产男靠女视频免费网站| 此物有八面人人有两片| 精品国产亚洲在线| 色av中文字幕| 狂野欧美激情性xxxx| 国产成人一区二区三区免费视频网站| 久久久国产成人免费| 亚洲色图 男人天堂 中文字幕| 国产精华一区二区三区| 亚洲精品久久国产高清桃花| 久久精品成人免费网站| 久久精品成人免费网站| 亚洲第一欧美日韩一区二区三区| 国产成人啪精品午夜网站| 亚洲av中文字字幕乱码综合| 女同久久另类99精品国产91| 一级a爱片免费观看的视频| 亚洲九九香蕉| 久久午夜亚洲精品久久| 热99re8久久精品国产| 中出人妻视频一区二区| 欧美色欧美亚洲另类二区| 日韩大码丰满熟妇| 免费在线观看完整版高清| 天天躁夜夜躁狠狠躁躁| 国产亚洲av高清不卡| 国产伦在线观看视频一区| 看免费av毛片| 99久久国产精品久久久| 成熟少妇高潮喷水视频| 观看免费一级毛片| 欧美日韩国产亚洲二区| 日韩国内少妇激情av| 少妇熟女aⅴ在线视频| 夜夜看夜夜爽夜夜摸| 少妇人妻一区二区三区视频| 天天躁狠狠躁夜夜躁狠狠躁| 国产在线观看jvid| 午夜影院日韩av| 一区福利在线观看| 在线观看一区二区三区| 精品乱码久久久久久99久播| 久久精品aⅴ一区二区三区四区| 久久久国产欧美日韩av| 美女免费视频网站| 免费电影在线观看免费观看| 久久久水蜜桃国产精品网| 19禁男女啪啪无遮挡网站| 久久久久久大精品| 国产成人精品久久二区二区91| 久久久久久大精品| 国产蜜桃级精品一区二区三区| 精华霜和精华液先用哪个| 少妇人妻一区二区三区视频| 国产一区在线观看成人免费| 久久精品夜夜夜夜夜久久蜜豆 | 天天躁狠狠躁夜夜躁狠狠躁| 国产三级中文精品| 日韩精品青青久久久久久| 波多野结衣高清无吗| 国产精品综合久久久久久久免费| 国产亚洲精品久久久久久毛片| 天天一区二区日本电影三级| 看黄色毛片网站| 中文字幕久久专区| 黑人欧美特级aaaaaa片| 色尼玛亚洲综合影院| 九色国产91popny在线| 天堂影院成人在线观看| 成人三级做爰电影| 午夜福利在线观看吧| 长腿黑丝高跟| 日本a在线网址| 一本久久中文字幕| 久9热在线精品视频| 国产成人av教育| 亚洲一区高清亚洲精品| www.熟女人妻精品国产| 啦啦啦韩国在线观看视频| 国产亚洲精品综合一区在线观看 | 18禁观看日本| 丁香欧美五月| 国产精品,欧美在线| 亚洲人成77777在线视频| 欧美乱色亚洲激情| 一进一出抽搐gif免费好疼| 久久中文看片网| 免费搜索国产男女视频| 女警被强在线播放| 老司机福利观看| 成人一区二区视频在线观看| 欧美不卡视频在线免费观看 | 成在线人永久免费视频| 久久精品国产亚洲av高清一级| 黄片大片在线免费观看| 在线观看免费午夜福利视频| 熟女少妇亚洲综合色aaa.| 精品国内亚洲2022精品成人| 99精品在免费线老司机午夜| 人妻丰满熟妇av一区二区三区| 久久午夜综合久久蜜桃| 精品久久久久久久人妻蜜臀av| 亚洲国产日韩欧美精品在线观看 | 久久精品夜夜夜夜夜久久蜜豆 | 99国产综合亚洲精品| 99久久无色码亚洲精品果冻| 国产成人影院久久av| 三级毛片av免费| 性欧美人与动物交配| 中文在线观看免费www的网站 | 国产一区在线观看成人免费| 欧美黑人精品巨大| 色综合站精品国产| 日本免费a在线| 日韩高清综合在线| 久9热在线精品视频| 狂野欧美激情性xxxx| 一级毛片女人18水好多| 99久久99久久久精品蜜桃| 99国产精品一区二区三区| 亚洲av五月六月丁香网| 成人av一区二区三区在线看| 亚洲精品在线观看二区| 国产蜜桃级精品一区二区三区| 美女高潮喷水抽搐中文字幕| 麻豆国产97在线/欧美 | 男插女下体视频免费在线播放| 两性夫妻黄色片| 亚洲成a人片在线一区二区| 欧洲精品卡2卡3卡4卡5卡区| 欧美久久黑人一区二区| 中文字幕高清在线视频| 欧美日韩国产亚洲二区| 久久久久国产精品人妻aⅴ院| 日本黄大片高清| 亚洲乱码一区二区免费版| 久久这里只有精品中国| 亚洲精品国产精品久久久不卡| 免费看美女性在线毛片视频| 丝袜人妻中文字幕| 久久这里只有精品19| 午夜成年电影在线免费观看| 日日爽夜夜爽网站| 亚洲最大成人中文| 在线观看www视频免费| 99国产极品粉嫩在线观看| 国产免费av片在线观看野外av| 亚洲精品国产精品久久久不卡| 舔av片在线| 99久久无色码亚洲精品果冻| 久久性视频一级片| 久久久精品国产亚洲av高清涩受| 又爽又黄无遮挡网站| 夜夜躁狠狠躁天天躁| 超碰成人久久| 成人特级黄色片久久久久久久| 每晚都被弄得嗷嗷叫到高潮| 美女大奶头视频| 五月玫瑰六月丁香| 日韩欧美免费精品| 国产成人影院久久av| 免费在线观看亚洲国产| 亚洲第一电影网av| 91九色精品人成在线观看| 久久香蕉精品热| 欧美又色又爽又黄视频| 久久精品国产亚洲av香蕉五月| 欧美日韩中文字幕国产精品一区二区三区| 欧美成人性av电影在线观看| 在线观看日韩欧美| 丰满人妻熟妇乱又伦精品不卡| 少妇熟女aⅴ在线视频| 亚洲成人精品中文字幕电影| 国产亚洲精品久久久久5区| 99久久综合精品五月天人人| 岛国在线观看网站| 身体一侧抽搐| 男女下面进入的视频免费午夜| 久久久国产精品麻豆| 麻豆av在线久日| 国产单亲对白刺激| 一级毛片精品| 国产黄片美女视频| av天堂在线播放| 我要搜黄色片| 午夜精品久久久久久毛片777| 老司机午夜福利在线观看视频| 亚洲人成网站高清观看| 欧美 亚洲 国产 日韩一| 亚洲精品在线观看二区| 宅男免费午夜| 久久人妻福利社区极品人妻图片| 久久天躁狠狠躁夜夜2o2o| 无人区码免费观看不卡| www.精华液| 好看av亚洲va欧美ⅴa在| 成人特级黄色片久久久久久久| av国产免费在线观看| 精品久久久久久久毛片微露脸| 久久午夜亚洲精品久久| 亚洲国产中文字幕在线视频| 波多野结衣巨乳人妻| 久久婷婷成人综合色麻豆| 国产精品久久久人人做人人爽| 69av精品久久久久久| 久久久国产成人精品二区| 中文字幕av在线有码专区| 日本免费一区二区三区高清不卡| 少妇被粗大的猛进出69影院| 51午夜福利影视在线观看| 热99re8久久精品国产| 免费观看精品视频网站| 精品国产亚洲在线| 哪里可以看免费的av片| 久久久国产成人免费| www.熟女人妻精品国产| 在线观看免费视频日本深夜| 国产主播在线观看一区二区| 国产成人精品久久二区二区91| 国产日本99.免费观看| 欧美绝顶高潮抽搐喷水| 999久久久精品免费观看国产| 日韩欧美一区二区三区在线观看| 国产亚洲精品久久久久5区| 国产区一区二久久| 国产伦一二天堂av在线观看| 无遮挡黄片免费观看| 性色av乱码一区二区三区2| 午夜精品久久久久久毛片777| 中文字幕久久专区| 成人av一区二区三区在线看| 亚洲精品美女久久av网站| 国产av又大| 窝窝影院91人妻| 天天躁夜夜躁狠狠躁躁| 国产一区二区三区在线臀色熟女| 日本一区二区免费在线视频| 国产激情偷乱视频一区二区| 亚洲中文字幕一区二区三区有码在线看 | 欧美成人免费av一区二区三区| 韩国av一区二区三区四区| 亚洲美女黄片视频| 亚洲一码二码三码区别大吗| 久久久久精品国产欧美久久久| 中文亚洲av片在线观看爽| 99久久精品热视频| 日日干狠狠操夜夜爽| 熟女少妇亚洲综合色aaa.| 国产乱人伦免费视频| 国产精品免费一区二区三区在线| 久久香蕉激情| 少妇熟女aⅴ在线视频| 亚洲国产欧洲综合997久久,| 国产精品亚洲av一区麻豆| 成人特级黄色片久久久久久久| АⅤ资源中文在线天堂| 色尼玛亚洲综合影院| 国产99白浆流出| 精品国产乱码久久久久久男人| 日本撒尿小便嘘嘘汇集6| 亚洲国产精品合色在线| 国产精品香港三级国产av潘金莲| 午夜福利在线观看吧| 正在播放国产对白刺激| 三级国产精品欧美在线观看 | 中文字幕人妻丝袜一区二区| 欧美色视频一区免费| 搡老熟女国产l中国老女人| 天天躁狠狠躁夜夜躁狠狠躁| 欧美黑人巨大hd| 欧美国产日韩亚洲一区| 999精品在线视频| 国产精品日韩av在线免费观看| 成年免费大片在线观看| 搡老熟女国产l中国老女人| 美女大奶头视频| 国模一区二区三区四区视频 | 欧美国产日韩亚洲一区| 精品福利观看| 精品乱码久久久久久99久播| 欧美日韩福利视频一区二区| 日日摸夜夜添夜夜添小说| 人妻夜夜爽99麻豆av| 亚洲国产欧美人成| 亚洲成a人片在线一区二区| 可以在线观看毛片的网站| 亚洲 国产 在线| 极品教师在线免费播放| 两人在一起打扑克的视频| 欧美日韩瑟瑟在线播放| 一进一出好大好爽视频| 非洲黑人性xxxx精品又粗又长| 久久久久免费精品人妻一区二区| 美女大奶头视频| 这个男人来自地球电影免费观看| 日日摸夜夜添夜夜添小说| 亚洲成人中文字幕在线播放| 91成年电影在线观看| 国产日本99.免费观看| 757午夜福利合集在线观看| 国产一区在线观看成人免费| 免费看十八禁软件| 精品一区二区三区av网在线观看| 好男人电影高清在线观看| 国产高清有码在线观看视频 | 搡老熟女国产l中国老女人| 村上凉子中文字幕在线| 免费搜索国产男女视频| 91大片在线观看| 午夜视频精品福利| 免费观看人在逋| 亚洲精品国产一区二区精华液| 亚洲国产高清在线一区二区三| 亚洲激情在线av| 成人国语在线视频| 日本黄大片高清| 天堂动漫精品| 给我免费播放毛片高清在线观看| 日日夜夜操网爽| 亚洲精品一区av在线观看| 50天的宝宝边吃奶边哭怎么回事| 亚洲专区国产一区二区| 亚洲国产欧洲综合997久久,| www国产在线视频色| 国产精品久久久久久久电影 | 国内久久婷婷六月综合欲色啪| 免费无遮挡裸体视频| 国产亚洲欧美在线一区二区| 丰满人妻熟妇乱又伦精品不卡| 国产爱豆传媒在线观看 | 欧美色欧美亚洲另类二区| 又黄又爽又免费观看的视频| 久久欧美精品欧美久久欧美| 久久精品综合一区二区三区| 中出人妻视频一区二区| 黄色成人免费大全| 黄色视频不卡| 国产成人av教育| 欧美成人性av电影在线观看| 一级毛片高清免费大全| 男人舔女人下体高潮全视频| 首页视频小说图片口味搜索| 男人舔奶头视频| 可以在线观看的亚洲视频| 两个人的视频大全免费| 这个男人来自地球电影免费观看| 久久久久国产精品人妻aⅴ院| 一个人免费在线观看的高清视频| 日本一本二区三区精品| 男女下面进入的视频免费午夜| 99久久精品国产亚洲精品| 999精品在线视频| 亚洲国产欧美一区二区综合| 欧美精品啪啪一区二区三区| 搡老妇女老女人老熟妇| 成人永久免费在线观看视频| 欧美黄色片欧美黄色片| 中文在线观看免费www的网站 | 18禁黄网站禁片午夜丰满| 国产视频一区二区在线看| 久久久久久久精品吃奶| 老司机深夜福利视频在线观看| 久久久精品欧美日韩精品| 精品久久久久久久人妻蜜臀av| 亚洲精品色激情综合| xxx96com| 日韩欧美一区二区三区在线观看| 老司机午夜福利在线观看视频| 亚洲乱码一区二区免费版| 久久天躁狠狠躁夜夜2o2o| 一本综合久久免费| 99精品欧美一区二区三区四区| 国产成人av教育| 欧美不卡视频在线免费观看 | 高潮久久久久久久久久久不卡| 一区福利在线观看| 色av中文字幕| 少妇人妻一区二区三区视频| 99久久国产精品久久久| 亚洲熟女毛片儿| 欧美在线一区亚洲| 国产午夜精品论理片| 极品教师在线免费播放| 亚洲av成人一区二区三| 99热只有精品国产| 国产高清videossex| 精品电影一区二区在线| www.www免费av| 手机成人av网站| 天天添夜夜摸| 亚洲av电影不卡..在线观看| 悠悠久久av| 欧美成人性av电影在线观看| 黑人操中国人逼视频| av有码第一页| 91大片在线观看| 少妇人妻一区二区三区视频| 国内精品久久久久久久电影| 日本黄色视频三级网站网址| 天天添夜夜摸| 欧美久久黑人一区二区| 一级a爱片免费观看的视频| 青草久久国产| 精品福利观看| 少妇裸体淫交视频免费看高清 | 国产精品99久久99久久久不卡| 丝袜美腿诱惑在线| 亚洲中文日韩欧美视频| 99在线人妻在线中文字幕| 精品欧美一区二区三区在线| 精品电影一区二区在线| 成年人黄色毛片网站| 动漫黄色视频在线观看| 男女视频在线观看网站免费 | 听说在线观看完整版免费高清| 国产av麻豆久久久久久久| 变态另类丝袜制服| 精品一区二区三区av网在线观看| 久久中文看片网| www.熟女人妻精品国产| 国内揄拍国产精品人妻在线| 欧美中文日本在线观看视频| 村上凉子中文字幕在线| 精品无人区乱码1区二区| 欧美日本视频| videosex国产| 搡老熟女国产l中国老女人| 亚洲性夜色夜夜综合| 国产精品野战在线观看| 十八禁网站免费在线| 99热这里只有是精品50| 国产精品,欧美在线| 在线播放国产精品三级| 99re在线观看精品视频| av片东京热男人的天堂| 国产av在哪里看| 欧美色欧美亚洲另类二区| 好男人电影高清在线观看| bbb黄色大片| 久久久久久九九精品二区国产 | 久久香蕉精品热| 午夜福利视频1000在线观看| 久久精品91蜜桃| 国产亚洲av嫩草精品影院| 亚洲中文字幕日韩| 久久九九热精品免费| 成人特级黄色片久久久久久久| 91国产中文字幕| 老汉色∧v一级毛片| 欧美人与性动交α欧美精品济南到| 人妻夜夜爽99麻豆av| 好男人在线观看高清免费视频| 不卡一级毛片| 久久香蕉激情| 黄色 视频免费看| 露出奶头的视频| 啦啦啦韩国在线观看视频| 亚洲18禁久久av| 国产精品一区二区免费欧美| 久久这里只有精品中国| 人妻久久中文字幕网| 亚洲国产精品sss在线观看| 免费在线观看亚洲国产| 嫩草影视91久久| 99精品久久久久人妻精品| 动漫黄色视频在线观看| 日韩欧美国产在线观看| 三级国产精品欧美在线观看 | 亚洲成av人片免费观看| 国产亚洲av高清不卡| 久久久久九九精品影院| 一区二区三区激情视频| 久久久久九九精品影院| 亚洲成人免费电影在线观看| 十八禁人妻一区二区| 成人特级黄色片久久久久久久| 日本一二三区视频观看| 天天一区二区日本电影三级| 亚洲黑人精品在线| 亚洲欧美精品综合一区二区三区| 精品久久久久久久末码| 一级黄色大片毛片| 国产成人影院久久av| 国产午夜福利久久久久久| 制服诱惑二区| 黄色 视频免费看| 亚洲成人久久爱视频| 2021天堂中文幕一二区在线观| 亚洲第一欧美日韩一区二区三区| 国产精品香港三级国产av潘金莲| 欧美另类亚洲清纯唯美| 久久中文看片网| 黄色毛片三级朝国网站| 最近视频中文字幕2019在线8| 欧美精品啪啪一区二区三区| 母亲3免费完整高清在线观看| 国产精品98久久久久久宅男小说| 又大又爽又粗| 熟女电影av网| 禁无遮挡网站| 午夜视频精品福利| 久久久久久亚洲精品国产蜜桃av| 亚洲国产精品sss在线观看| 99热这里只有精品一区 | 亚洲一区中文字幕在线| 国产精品 国内视频| 又紧又爽又黄一区二区| 高清毛片免费观看视频网站| 精品国产超薄肉色丝袜足j| 好男人在线观看高清免费视频| 999久久久国产精品视频| 成年免费大片在线观看| 亚洲精品久久成人aⅴ小说| 中文在线观看免费www的网站 | 级片在线观看| 久久久水蜜桃国产精品网| 欧美乱码精品一区二区三区| 一级片免费观看大全| 欧美一区二区精品小视频在线| 又爽又黄无遮挡网站| 国产精品免费一区二区三区在线| 99精品在免费线老司机午夜| 久久人妻福利社区极品人妻图片| 777久久人妻少妇嫩草av网站| 麻豆国产av国片精品| 国产av在哪里看| 成人18禁在线播放|