• <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片在线观看野外av| 国产免费av片在线观看野外av| 欧美日本中文国产一区发布| 黄色视频不卡| 大陆偷拍与自拍| 欧美精品人与动牲交sv欧美| 欧美精品一区二区免费开放| 日本wwww免费看| 亚洲综合色网址| 亚洲欧美日韩高清在线视频| 在线观看免费高清a一片| 老司机在亚洲福利影院| 老司机靠b影院| 免费看a级黄色片| videosex国产| 首页视频小说图片口味搜索| 无限看片的www在线观看| 亚洲精品在线观看二区| 国产亚洲精品久久久久5区| 免费不卡黄色视频| 一本综合久久免费| 亚洲欧美色中文字幕在线| 亚洲av日韩精品久久久久久密| 中文欧美无线码| 久久热在线av| 悠悠久久av| 国产精品国产av在线观看| 天天操日日干夜夜撸| 欧美丝袜亚洲另类 | 日韩三级视频一区二区三区| 不卡av一区二区三区| 成人永久免费在线观看视频| 又黄又爽又免费观看的视频| 亚洲中文字幕日韩| 午夜免费成人在线视频| 久久精品aⅴ一区二区三区四区| 欧美激情极品国产一区二区三区| 黄频高清免费视频| 91国产中文字幕| 欧美丝袜亚洲另类 | 一级毛片女人18水好多| 久久精品亚洲精品国产色婷小说| 一边摸一边做爽爽视频免费| 女人高潮潮喷娇喘18禁视频| 久久天堂一区二区三区四区| 男女下面插进去视频免费观看| 91麻豆av在线| 国产精品一区二区精品视频观看| 免费在线观看完整版高清| 99riav亚洲国产免费| 正在播放国产对白刺激| 一进一出抽搐gif免费好疼 | 国产极品粉嫩免费观看在线| 日韩免费高清中文字幕av| 国产日韩欧美亚洲二区| 国内毛片毛片毛片毛片毛片| 亚洲精品国产一区二区精华液| 亚洲自偷自拍图片 自拍| 天天躁狠狠躁夜夜躁狠狠躁| 1024视频免费在线观看| 欧美最黄视频在线播放免费 | 午夜福利视频在线观看免费| 高清黄色对白视频在线免费看| 成年女人毛片免费观看观看9 | 天天添夜夜摸| 久久久国产一区二区| 免费在线观看视频国产中文字幕亚洲| 啦啦啦免费观看视频1| 免费人成视频x8x8入口观看| 国产精品 欧美亚洲| 亚洲一区二区三区不卡视频| 老司机亚洲免费影院| 亚洲精品成人av观看孕妇| 乱人伦中国视频| 久久亚洲精品不卡| 岛国毛片在线播放| 电影成人av| 一进一出抽搐动态| 国内久久婷婷六月综合欲色啪| 亚洲av成人一区二区三| 丰满饥渴人妻一区二区三| 在线视频色国产色| 精品乱码久久久久久99久播| 男女免费视频国产| 久久香蕉激情| 午夜成年电影在线免费观看| netflix在线观看网站| 妹子高潮喷水视频| 一区福利在线观看| 后天国语完整版免费观看| 国产精品一区二区免费欧美| 日韩欧美国产一区二区入口| 久久人妻福利社区极品人妻图片| 免费av中文字幕在线| 国产精品国产高清国产av | 国产伦人伦偷精品视频| 在线视频色国产色| av中文乱码字幕在线| 久久精品国产清高在天天线| 亚洲七黄色美女视频| 久久精品成人免费网站| 99久久国产精品久久久| 久久久久视频综合| 色尼玛亚洲综合影院| 亚洲一区二区三区不卡视频| 热re99久久精品国产66热6| 亚洲国产精品sss在线观看 | 欧美成人午夜精品| 搡老岳熟女国产| 美女高潮到喷水免费观看| 这个男人来自地球电影免费观看| 国产成人欧美在线观看 | 深夜精品福利| 一边摸一边抽搐一进一小说 | 男女午夜视频在线观看| 国产真人三级小视频在线观看| av在线播放免费不卡| 精品人妻熟女毛片av久久网站| 精品福利永久在线观看| 国产麻豆69| 黄片播放在线免费| 成年人午夜在线观看视频| 男人舔女人的私密视频| 精品国产美女av久久久久小说| 天堂中文最新版在线下载| 超色免费av| 亚洲精品国产一区二区精华液| av电影中文网址| 老熟妇仑乱视频hdxx| 80岁老熟妇乱子伦牲交| 久久国产精品大桥未久av| 黄片大片在线免费观看| 人人澡人人妻人| 纯流量卡能插随身wifi吗| 亚洲av电影在线进入| 精品欧美一区二区三区在线| 飞空精品影院首页| cao死你这个sao货| 丁香六月欧美| 一区福利在线观看| 久久这里只有精品19| 岛国在线观看网站| 亚洲精品美女久久av网站| x7x7x7水蜜桃| 成年人午夜在线观看视频| 欧美激情 高清一区二区三区| 欧美日韩福利视频一区二区| 777久久人妻少妇嫩草av网站| 99精品欧美一区二区三区四区| 99久久国产精品久久久| 少妇 在线观看| 成年人免费黄色播放视频| 99热网站在线观看| 国产亚洲一区二区精品| 男女之事视频高清在线观看| 亚洲情色 制服丝袜| 亚洲 国产 在线| 国产av精品麻豆| 美女扒开内裤让男人捅视频| 中文字幕制服av| 香蕉丝袜av| 成人18禁在线播放| av天堂在线播放| 欧美精品人与动牲交sv欧美| 一区二区三区国产精品乱码| 国产av一区二区精品久久| 成人黄色视频免费在线看| 亚洲一区二区三区不卡视频| 99国产精品免费福利视频| 免费不卡黄色视频| 亚洲精品中文字幕在线视频| cao死你这个sao货| 国产成人啪精品午夜网站| xxxhd国产人妻xxx| 俄罗斯特黄特色一大片| 久久久久久久久久久久大奶| 99久久国产精品久久久| 91精品国产国语对白视频| 亚洲熟女毛片儿| 一进一出好大好爽视频| 久久99一区二区三区| 日本撒尿小便嘘嘘汇集6| 高潮久久久久久久久久久不卡| 国产亚洲精品久久久久久毛片 | 精品国产一区二区久久| 欧美最黄视频在线播放免费 | 欧美不卡视频在线免费观看 | 黑人巨大精品欧美一区二区mp4| 一本一本久久a久久精品综合妖精| 中国美女看黄片| 色综合欧美亚洲国产小说| 色婷婷久久久亚洲欧美| 午夜影院日韩av| 叶爱在线成人免费视频播放| 女人精品久久久久毛片| 成人永久免费在线观看视频| 亚洲少妇的诱惑av| 欧美日韩乱码在线| 夜夜夜夜夜久久久久| 日日爽夜夜爽网站| netflix在线观看网站| 成人国产一区最新在线观看| 国产亚洲精品第一综合不卡| 女性生殖器流出的白浆| 一进一出抽搐动态| 成人精品一区二区免费| 丝瓜视频免费看黄片| 国产精品av久久久久免费| 熟女少妇亚洲综合色aaa.| 亚洲国产欧美日韩在线播放| 人成视频在线观看免费观看| 久久精品国产综合久久久| 国产91精品成人一区二区三区| 日本vs欧美在线观看视频| 午夜两性在线视频| 久久久久久久久久久久大奶| 国产精品久久久久成人av| 久久中文看片网| 久久久国产成人精品二区 | 天堂动漫精品| 男女高潮啪啪啪动态图| 精品一区二区三卡| 老司机午夜十八禁免费视频| 欧美日韩亚洲高清精品| 国产精品久久久久久人妻精品电影| 看片在线看免费视频| 精品人妻在线不人妻| 国产成人av教育| 久久国产精品影院| 亚洲欧美一区二区三区黑人| 亚洲av成人一区二区三| 99在线人妻在线中文字幕 | 老汉色av国产亚洲站长工具| www.熟女人妻精品国产| 国产真人三级小视频在线观看| 欧美日韩一级在线毛片| 妹子高潮喷水视频| 久久精品成人免费网站| 老熟妇乱子伦视频在线观看| 国内毛片毛片毛片毛片毛片| 国产成人精品久久二区二区免费| 99国产精品免费福利视频| 国产男女内射视频| 亚洲第一av免费看| av片东京热男人的天堂| 国产精品综合久久久久久久免费 | 他把我摸到了高潮在线观看| 美女扒开内裤让男人捅视频| 亚洲第一av免费看| 18禁裸乳无遮挡动漫免费视频| 免费在线观看影片大全网站| 在线观看免费日韩欧美大片| 变态另类成人亚洲欧美熟女 | 女人久久www免费人成看片| 国产精品欧美亚洲77777| 婷婷精品国产亚洲av在线 | 精品亚洲成国产av| 三级毛片av免费| 在线观看www视频免费| 天天操日日干夜夜撸| 久久精品国产综合久久久| 十八禁网站免费在线| 欧美中文综合在线视频| 亚洲成人免费av在线播放| 男人操女人黄网站| 亚洲精品在线美女| 国产精品偷伦视频观看了| 欧美日韩国产mv在线观看视频| 一区福利在线观看| 丝袜人妻中文字幕| 狂野欧美激情性xxxx| 99久久99久久久精品蜜桃| 日韩精品免费视频一区二区三区| 波多野结衣一区麻豆| 欧美乱码精品一区二区三区| 国产在线观看jvid| 在线看a的网站| 成人国语在线视频| 欧美激情久久久久久爽电影 | 国产1区2区3区精品| 午夜影院日韩av| 这个男人来自地球电影免费观看| 看免费av毛片| 涩涩av久久男人的天堂| 精品免费久久久久久久清纯 | 另类亚洲欧美激情| 久久九九热精品免费| 久久 成人 亚洲| 日韩成人在线观看一区二区三区| 电影成人av| 窝窝影院91人妻| 久久国产精品男人的天堂亚洲| 两性夫妻黄色片| 免费在线观看视频国产中文字幕亚洲| 午夜福利在线免费观看网站| 看黄色毛片网站| 欧美黑人欧美精品刺激| 男女高潮啪啪啪动态图| 在线观看免费视频网站a站| 女人被狂操c到高潮| 欧美+亚洲+日韩+国产| a在线观看视频网站| 下体分泌物呈黄色| 久久99一区二区三区| 午夜福利影视在线免费观看| 国产精品av久久久久免费| 国精品久久久久久国模美| 午夜免费观看网址| 成人18禁高潮啪啪吃奶动态图| 国产主播在线观看一区二区| 国产精品欧美亚洲77777| 欧美在线黄色| 精品午夜福利视频在线观看一区| 精品久久久久久,| 精品国产一区二区久久| 国产在线一区二区三区精| av福利片在线| 中文字幕制服av| 国产精品成人在线| 亚洲三区欧美一区| 成人手机av| 麻豆成人av在线观看| 夜夜爽天天搞| 变态另类成人亚洲欧美熟女 | 叶爱在线成人免费视频播放| 亚洲专区字幕在线| 黄色视频,在线免费观看| 久久 成人 亚洲| 久久久水蜜桃国产精品网| 搡老乐熟女国产| 国产又色又爽无遮挡免费看| 婷婷丁香在线五月| 一级a爱片免费观看的视频| 国产成人免费观看mmmm| 男女午夜视频在线观看| 日本wwww免费看| 成人国产一区最新在线观看| 很黄的视频免费| 久久久久久久国产电影| 18禁黄网站禁片午夜丰满| ponron亚洲| 青草久久国产| 欧美另类亚洲清纯唯美| 一区福利在线观看| 伦理电影免费视频| 亚洲第一青青草原| 亚洲精品久久午夜乱码| av有码第一页| 在线观看舔阴道视频| 国产免费现黄频在线看| 亚洲欧美一区二区三区久久| 国产伦人伦偷精品视频| 激情在线观看视频在线高清 | 国产精品98久久久久久宅男小说| 视频在线观看一区二区三区| 一区二区三区激情视频| 亚洲色图 男人天堂 中文字幕| 亚洲中文字幕日韩| 麻豆国产av国片精品| 丝袜在线中文字幕| 一进一出抽搐动态| 国产亚洲精品第一综合不卡| 成年女人毛片免费观看观看9 | 国产熟女午夜一区二区三区| 三上悠亚av全集在线观看| 久久久国产成人免费| 成人av一区二区三区在线看| 黄色片一级片一级黄色片| 男人舔女人的私密视频| 两人在一起打扑克的视频| 国产日韩欧美亚洲二区| 亚洲成国产人片在线观看| 国产成人系列免费观看| 国产激情久久老熟女| 日韩精品免费视频一区二区三区| 伦理电影免费视频| 99国产精品免费福利视频| 脱女人内裤的视频| 色94色欧美一区二区| 王馨瑶露胸无遮挡在线观看| 国产伦人伦偷精品视频| 97人妻天天添夜夜摸| 国产精品久久视频播放| 妹子高潮喷水视频| 人人妻人人澡人人看| 日韩欧美国产一区二区入口| 久久精品国产99精品国产亚洲性色 | 成人黄色视频免费在线看| 飞空精品影院首页| aaaaa片日本免费| 91成人精品电影| 久久草成人影院| av在线播放免费不卡| 黑人猛操日本美女一级片| 国产一卡二卡三卡精品| 欧美最黄视频在线播放免费 | 欧美在线一区亚洲| 亚洲精品成人av观看孕妇| 在线观看免费日韩欧美大片| 午夜精品国产一区二区电影| 亚洲欧美激情综合另类| 亚洲欧美色中文字幕在线| 欧美日韩亚洲国产一区二区在线观看 | 欧美日韩乱码在线| 777久久人妻少妇嫩草av网站| 免费看十八禁软件| 999精品在线视频| 国产极品粉嫩免费观看在线| 午夜福利视频在线观看免费| 欧洲精品卡2卡3卡4卡5卡区| 一本一本久久a久久精品综合妖精| 人妻丰满熟妇av一区二区三区 | 最新美女视频免费是黄的| 中文字幕人妻丝袜一区二区| 一区二区三区国产精品乱码| 精品免费久久久久久久清纯 | 亚洲人成电影免费在线| 村上凉子中文字幕在线| 日韩欧美在线二视频 | 亚洲国产欧美网| 免费观看人在逋| 成年人午夜在线观看视频| 一边摸一边抽搐一进一小说 | 久久久国产成人精品二区 | 中国美女看黄片| 999久久久精品免费观看国产| 中文字幕人妻熟女乱码| 国产男靠女视频免费网站| 精品久久蜜臀av无| 国产一卡二卡三卡精品| 丁香六月欧美| 51午夜福利影视在线观看| 国产精品1区2区在线观看. | 亚洲欧美激情在线| 99精品久久久久人妻精品| 十八禁高潮呻吟视频| 欧美成人免费av一区二区三区 | 自拍欧美九色日韩亚洲蝌蚪91| 午夜福利一区二区在线看| 国产日韩一区二区三区精品不卡| 视频区欧美日本亚洲| 成人永久免费在线观看视频| 亚洲欧美激情综合另类| 国产男靠女视频免费网站| 大片电影免费在线观看免费| 99热只有精品国产| 亚洲中文日韩欧美视频| 51午夜福利影视在线观看| 在线观看66精品国产| 丝袜人妻中文字幕| 成人国产一区最新在线观看| 人妻久久中文字幕网| 久久狼人影院| 大片电影免费在线观看免费| 精品一区二区三卡| 国产单亲对白刺激| 日韩制服丝袜自拍偷拍| 在线观看午夜福利视频| 老司机亚洲免费影院| 久久久水蜜桃国产精品网| 免费在线观看日本一区| 国产三级黄色录像| 免费观看精品视频网站| 在线永久观看黄色视频| 在线av久久热| 亚洲av成人不卡在线观看播放网| 欧美色视频一区免费| 国产一区二区三区视频了| 一区二区三区精品91| 国产精品免费视频内射| 国产精品久久久久久人妻精品电影| 两性午夜刺激爽爽歪歪视频在线观看 | 色播在线永久视频| 日本黄色日本黄色录像| 精品第一国产精品| av视频免费观看在线观看| svipshipincom国产片| 国产又爽黄色视频| 国产精品亚洲av一区麻豆| 十八禁高潮呻吟视频| 热99re8久久精品国产| 纯流量卡能插随身wifi吗| 操出白浆在线播放| 久久久久久人人人人人| 十分钟在线观看高清视频www| 一区二区日韩欧美中文字幕| 中文字幕av电影在线播放| 51午夜福利影视在线观看| 黄网站色视频无遮挡免费观看| 久99久视频精品免费| 国产在线观看jvid| 50天的宝宝边吃奶边哭怎么回事| 日韩欧美免费精品| 丰满饥渴人妻一区二区三| 日本vs欧美在线观看视频| 欧美黑人精品巨大| 啦啦啦视频在线资源免费观看| 日本a在线网址| 精品一区二区三区视频在线观看免费 | 两人在一起打扑克的视频| 自线自在国产av| 国产极品粉嫩免费观看在线| 三上悠亚av全集在线观看| 午夜精品久久久久久毛片777| 黄色 视频免费看| 久9热在线精品视频| 国产高清视频在线播放一区| 久99久视频精品免费| 男人舔女人的私密视频| 无人区码免费观看不卡| 成人国产一区最新在线观看| 99久久国产精品久久久| av线在线观看网站| 三级毛片av免费| 亚洲精品在线观看二区| 成人特级黄色片久久久久久久| 高清毛片免费观看视频网站 | 日韩欧美国产一区二区入口| 黑人猛操日本美女一级片| 日韩熟女老妇一区二区性免费视频| www日本在线高清视频| 91国产中文字幕| 色在线成人网| 淫妇啪啪啪对白视频| 午夜亚洲福利在线播放| 婷婷成人精品国产| 777米奇影视久久| 久久久久精品人妻al黑| 亚洲一区中文字幕在线| 日本一区二区免费在线视频| 人妻 亚洲 视频| 丝袜美足系列| 中亚洲国语对白在线视频| 午夜精品国产一区二区电影| 午夜成年电影在线免费观看| 亚洲av电影在线进入| 精品少妇一区二区三区视频日本电影| 色婷婷av一区二区三区视频| 久久中文看片网| 欧美乱色亚洲激情| 欧美日韩视频精品一区| 国产又色又爽无遮挡免费看| 久久国产亚洲av麻豆专区| av超薄肉色丝袜交足视频| 日韩免费av在线播放| 亚洲avbb在线观看| 久久精品人人爽人人爽视色| 精品少妇一区二区三区视频日本电影| 亚洲成a人片在线一区二区| 亚洲第一青青草原| 两性午夜刺激爽爽歪歪视频在线观看 | 日韩一卡2卡3卡4卡2021年| 少妇被粗大的猛进出69影院| 色综合婷婷激情| 18在线观看网站| 免费黄频网站在线观看国产| 国产精品一区二区免费欧美| 亚洲七黄色美女视频| 中文字幕制服av| svipshipincom国产片| 成在线人永久免费视频| 国产99白浆流出| 欧美成人免费av一区二区三区 | 欧美久久黑人一区二区| 亚洲欧美一区二区三区黑人| 三上悠亚av全集在线观看| 国产精品欧美亚洲77777| 日韩视频一区二区在线观看| 日本黄色视频三级网站网址 | 男女床上黄色一级片免费看| 岛国在线观看网站| 久久久精品国产亚洲av高清涩受| 欧美老熟妇乱子伦牲交| 老司机深夜福利视频在线观看| 69精品国产乱码久久久| 久久精品国产亚洲av香蕉五月 | 一边摸一边抽搐一进一小说 | 91大片在线观看| 一夜夜www| 女人被躁到高潮嗷嗷叫费观| 色尼玛亚洲综合影院| 香蕉丝袜av| 午夜视频精品福利| 亚洲精品国产色婷婷电影| 中文字幕人妻丝袜制服| 国产高清视频在线播放一区| 高清在线国产一区| 免费女性裸体啪啪无遮挡网站| 国产高清视频在线播放一区| 黄色丝袜av网址大全| 久久人妻熟女aⅴ| 男人舔女人的私密视频| 最近最新中文字幕大全电影3 | 丝袜美足系列| 久久性视频一级片| 一区福利在线观看| 女人爽到高潮嗷嗷叫在线视频| 国产av又大| 国产主播在线观看一区二区| 香蕉久久夜色| 欧美日韩一级在线毛片| 国产不卡av网站在线观看| 欧美 亚洲 国产 日韩一| 99久久国产精品久久久| 午夜福利,免费看| 美女国产高潮福利片在线看| 日本vs欧美在线观看视频| 老汉色av国产亚洲站长工具| 久久国产精品影院| 99久久综合精品五月天人人|