成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

第五章文件系統(tǒng)-創(chuàng)新互聯(lián)

5.1 根文件系統(tǒng)

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)白朗免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

  眾所周知,在一塊新的硬盤中安裝系統(tǒng)前必須要先分區(qū)并且格式化,然后才能裝系統(tǒng)。

 對(duì)于windows來(lái)說(shuō),分區(qū)完成以后,每個(gè)分區(qū)都是一個(gè)獨(dú)立的文件系統(tǒng)。也就意味著C盤和D盤是毫無(wú)關(guān)系的。訪問時(shí)也是各自獨(dú)立的。

 對(duì)于linux來(lái)說(shuō),所有的文件在linux主機(jī)上,若想使其能夠被訪問到,站在邏輯結(jié)構(gòu)視角上看,它必須從一個(gè)稱為根文件系統(tǒng)的位置開始,但是并不是說(shuō)所有文件必須從根開始就不需要分區(qū)了,并非如此。為了能夠?qū)崿F(xiàn)多個(gè)文件系統(tǒng)獨(dú)立管理必須要進(jìn)行分區(qū)。但是任何一個(gè)分區(qū)在分區(qū)完以后,不可以被獨(dú)立訪問,而是只能夠與現(xiàn)有的根一起被訪問。

第五章 文件系統(tǒng)

 當(dāng)內(nèi)核被啟動(dòng)加載完成以后,其不提供任何多余的可供用戶訪問的文件,同時(shí)其也不是可供用戶直接使用的有用的進(jìn)程。所以內(nèi)核必須要能夠啟動(dòng)很多外部命令,包括shell程序、各種GUI或者CLI接口等等。而這些命令通常一般都是放在某一分區(qū)之上。但是系統(tǒng)中有那么多分區(qū),內(nèi)核應(yīng)該識(shí)別哪一個(gè)呢?為了避免這種選擇上的困難,一般來(lái)說(shuō),無(wú)論分成多少個(gè)分區(qū),一定有一個(gè)作為系統(tǒng)盤的分區(qū)存在,而這個(gè)系統(tǒng)盤分區(qū)通常是內(nèi)核啟動(dòng)完以后第一個(gè)要加載的分區(qū)。

 如上圖所示,假設(shè)A分區(qū)是系統(tǒng)盤分區(qū),內(nèi)核認(rèn)為A分區(qū)是其必須第一個(gè)要加載的分區(qū),于是當(dāng)內(nèi)核啟動(dòng)完以后,為了能夠幫助啟動(dòng)各種外圍的其他程序,內(nèi)核會(huì)自行在自己的工作空間中設(shè)置一個(gè)路徑,把它稱作根。然后把A(系統(tǒng)盤)分區(qū)上的所有內(nèi)容直接關(guān)聯(lián)到根上。這也就意味著,如果要通過根路徑來(lái)訪問的任何文件其實(shí)都是在A分區(qū)上的文件。

 對(duì)于Linux來(lái)說(shuō),內(nèi)核所能識(shí)別的第一個(gè)且必須第一個(gè)加載的文件系統(tǒng)就稱作根文件系統(tǒng)(rootfs)。

 一旦A分區(qū)被內(nèi)核認(rèn)為是第一個(gè)要加載的分區(qū),那么B分區(qū)、C分區(qū)、D分區(qū)如何被訪問到?在windows中,A分區(qū)、B分區(qū)、C分區(qū)、D分區(qū)都是獨(dú)立的,想訪問哪個(gè)分區(qū)就直接去訪問。而在linux中,除A(系統(tǒng)盤)分區(qū)以外的任何分區(qū)要想被訪問到,必須與現(xiàn)有的根文件系統(tǒng)建立關(guān)聯(lián)關(guān)系。

5.2 常見的文件系統(tǒng)

  常見的文件系統(tǒng)有以下這些:

  Linux文件系統(tǒng):ext2、ext3、ext4、xfs、btrfs、reiserfs、jfs、swap

   swap:交換分區(qū)

   iso9660:光盤文件系統(tǒng)

   ext4:centos6主流的文件系統(tǒng)

   btrfs:centos7自帶的文件系統(tǒng)

   xfs:centos7上推薦使用的文件系統(tǒng)

  Windows文件系統(tǒng):fat32、ntfs

  Unix文件系統(tǒng):FFS、UFS、JFS2

  網(wǎng)絡(luò)文件系統(tǒng):NFS、CIFS

  集群文件系統(tǒng):GFS2、OCFS2

  分布式文件系統(tǒng):ceph、moosefs、mogilefs、Glusterfs、Lustre

 根據(jù)其是否支持“Journal”功能又分為以下2種文件系統(tǒng):

  日志型文件系統(tǒng):ext3、ext4、xfs、...

   日志型文件系統(tǒng)存儲(chǔ)時(shí)先在日志區(qū)寫元數(shù)據(jù),如果發(fā)生斷電,可以通過日志進(jìn)行恢復(fù)

  非日志型文件系統(tǒng):ext2、vfat

   非日志型文件系統(tǒng)存儲(chǔ)時(shí)直接在元數(shù)據(jù)區(qū)寫元數(shù)據(jù),一旦斷電,沒寫完的數(shù)據(jù)將損壞且無(wú)法恢復(fù)

 文件系統(tǒng)的組成部分:

  內(nèi)核中的模塊:ext4、xfs、vfat等;

  用戶空間的管理工具:mkfs.ext4、mkfs.xfs、mkfs.vfat等

 從上面的信息就可以看出來(lái),Linux支持眾多的文件系統(tǒng),而每一個(gè)文件系統(tǒng)的調(diào)用接口又是不一樣的,這對(duì)程序員來(lái)說(shuō)就頭疼了,如此多的文件系統(tǒng),若想針對(duì)某文件系統(tǒng)進(jìn)行編程,就必須了解眾多文件系統(tǒng)的調(diào)用接口,這樣一來(lái)就使得編程的難度大大增加。而事實(shí)上,程序員面對(duì)的并不是ext2等這類文件系統(tǒng) ,而是虛擬文件系統(tǒng)(VFS)。VFS把所有文件系統(tǒng)不同的各種調(diào)用機(jī)制統(tǒng)一在同一個(gè)調(diào)用接口上了。所以程序員不管系統(tǒng)被格式化成什么格式的,只要支持VFS,就可以直接調(diào)用VFS接口,由VFS去轉(zhuǎn)換成對(duì)特定類型的文件系統(tǒng)接口的調(diào)用。Linux眾多的文件系統(tǒng)中,只要遵循POSIX文件系統(tǒng)規(guī)范的一般都能夠被VFS所兼容。

 /proc/filesystems:當(dāng)前內(nèi)核支持的文件系統(tǒng)類型有哪些

  文件前面沒有nodev的表示是正在使用的文件系統(tǒng)

 文件系統(tǒng)的配置文件/etc/fstab:

  OS在初始時(shí),會(huì)自動(dòng)掛載此文件中定義的每個(gè)文件系統(tǒng)。這個(gè)文件的內(nèi)容格式為:

要掛載的設(shè)備    掛載點(diǎn)    文件系統(tǒng)類型    掛載選項(xiàng)    轉(zhuǎn)儲(chǔ)頻率    文件系統(tǒng)檢測(cè)次序(只有根可以為1)

 要掛載的設(shè)備可以有以下幾類:

  設(shè)備文件:/dev/sda5

  卷標(biāo):LABEL=""

  UUID:UUID=""

  偽文件系統(tǒng)名稱:proc、sysfs、devtmpfs、configfs

 掛載點(diǎn)的要求:

  a) 此目錄沒有被其它進(jìn)程使用

  b) 目錄必須事先存在

  c) 目錄中原有的文件將會(huì)暫時(shí)隱藏,卸載后可見

 轉(zhuǎn)儲(chǔ)頻率:每多少天做一次完全備份,0表示不備份,1表示每天備份,2表示每2天備份1次

 注意:swap分區(qū)的掛載點(diǎn)和文件系統(tǒng)類型都是swap。如果要讓文件系統(tǒng)自動(dòng)掛載的同時(shí)啟用某功能,比如要啟用acl功能,只需要在掛載選項(xiàng)defaults后面加上,acl即可,如defaults,acl

5.3 ext文件系統(tǒng)的布局結(jié)構(gòu)

5.3.1 數(shù)據(jù)區(qū)布局結(jié)構(gòu)

第五章 文件系統(tǒng)

 任何一個(gè)文件系統(tǒng)都由數(shù)據(jù)和元數(shù)據(jù)組成,這里以ext系統(tǒng)文件系統(tǒng)為例。

 如上圖,數(shù)據(jù)區(qū)(數(shù)據(jù)空間)會(huì)被劃分為一個(gè)個(gè)的塊組,而每個(gè)塊組當(dāng)中又包含了超級(jí)塊、塊組描述符(GDT)、塊位圖(block bitmap)、Inode位圖(inode bitmap)、Inode表(inode table)和數(shù)據(jù)塊(data blocks)。

 每個(gè)塊組有多少個(gè)塊取決于塊的大小,為了方便定位塊組中的塊于是定義了一個(gè)超級(jí)塊

 超級(jí)塊可以有多個(gè)備份,其內(nèi)容如下:

  當(dāng)前文件系統(tǒng)類型;

  當(dāng)前文件系統(tǒng)包含多少個(gè)inode;

  當(dāng)前文件系統(tǒng)共有多少個(gè)塊;

  當(dāng)前文件系統(tǒng)每個(gè)塊的大??;

  空閑磁盤塊、引用磁盤塊、空閑inode、引用inode

 使用tune2fs -l /dev/sda1命令可以看/dev/sda1的超級(jí)塊信息。

 塊組描述符表(GDT)可以有多個(gè)備份,其內(nèi)容如下:

  當(dāng)前系統(tǒng)一共有多少個(gè)塊組

  每個(gè)塊組從第幾個(gè)塊開始到第幾個(gè)塊結(jié)束

 使用dumpe2fs /dev/sda1命令不僅可以看到/dev/sda1文件系統(tǒng)的超級(jí)塊信息,還可以看到塊組描述符的信息。

5.3.2 元數(shù)據(jù)區(qū)

 元數(shù)據(jù)區(qū)包含以下內(nèi)容:

  Inode表(存儲(chǔ)inode)

  Inode bitmap(索引位圖)

  Block bitmap(塊位圖)

 能夠存儲(chǔ)單個(gè)文件所有屬性信息并以特定格式組織的存儲(chǔ)空間就稱為Inode。

 Inode就是索引節(jié)點(diǎn)(Index node)。Inode包含以下內(nèi)容:

  文件/目錄的大小;

  時(shí)間戳;

  權(quán)限;

  屬主、屬組;

  地址指針:文件使用了哪些塊存儲(chǔ)數(shù)據(jù),用指針指向?qū)?yīng)的數(shù)據(jù)塊的編號(hào)

   直接指針(直接指向數(shù)據(jù)塊)

   間接指針(指向另一個(gè)位置,另外一片連續(xù)的區(qū)域,象擴(kuò)展分區(qū)一樣)

   三級(jí)指針

 訪問任何一個(gè)文件都要先找到其對(duì)應(yīng)的inode,通過inode知道該文件的數(shù)據(jù)存儲(chǔ)在哪些塊中,然后找到對(duì)應(yīng)的塊。

 硬盤中的大多數(shù)塊必須有其編號(hào),并能夠被inode引用,才可以正常使用。

 為了實(shí)現(xiàn)inode的快速存儲(chǔ),元數(shù)據(jù)區(qū)在格式化完成以后就已經(jīng)把inode整個(gè)區(qū)間分好了,每個(gè)inode塊的大小是固定的,只不過這些inode是空閑的,沒被使用的。

 假設(shè)一個(gè)文件系統(tǒng)有100萬(wàn)個(gè)inode,那么如何區(qū)分inode是否空閑呢?

 我們假設(shè)每一個(gè)inode的前面有一個(gè)標(biāo)志位,1表示已經(jīng)使用,0表示空閑。當(dāng)要使用時(shí)就必須全局掃描,找到第一個(gè)空閑的inode,然后把要存儲(chǔ)inode信息填充其中。

 再假設(shè)數(shù)據(jù)區(qū)的每一個(gè)block塊的前面也有一個(gè)標(biāo)志位,1表示已經(jīng)使用,0表示空閑。當(dāng)要使用時(shí)也必須全局掃描,找到第一個(gè)空閑的block塊,然后把數(shù)據(jù)填充其中并建立與對(duì)應(yīng)inode的映射關(guān)系。

 假設(shè)一個(gè)文件很大,可能需要多個(gè)block塊存儲(chǔ)其數(shù)據(jù),就必須為其分配多個(gè)連續(xù)的空閑塊來(lái)存儲(chǔ),并將已使用的block的標(biāo)志位設(shè)為1;

 假設(shè)一個(gè)文件很小,可能1個(gè)block塊就可以存儲(chǔ)其數(shù)據(jù),就把其余多余的block標(biāo)志位設(shè)為0

5.3.4 位圖索引

 想一個(gè)問題,如果硬盤有100G,為了找一個(gè)空閑塊就要全盤掃描一遍,這樣的方式太低效了,為了解決這個(gè)問題于是就有了二級(jí)索引。

 由于inode的量很大,從中找一個(gè)空閑的inode會(huì)很慢,這時(shí)候可以找一個(gè)連續(xù)的存儲(chǔ)空間,對(duì)inode做一個(gè)對(duì)位標(biāo)識(shí)索引,第0位對(duì)應(yīng)編號(hào)為0的inode編號(hào),第1位對(duì)應(yīng)編號(hào)為1的inode編號(hào),以此類推。有N個(gè)二進(jìn)制位,如果這個(gè)位為1表示這個(gè)對(duì)應(yīng)的inode已被使用,這個(gè)位為0表示其對(duì)應(yīng)的Inode空閑。當(dāng)要?jiǎng)?chuàng)建inode時(shí),就不用再全盤掃描了,只需要掃描這個(gè)二級(jí)索引(對(duì)位標(biāo)識(shí)索引),如此一來(lái),效率就大大提高了。而這個(gè)二級(jí)索引就是inode位圖索引(inode bitmap)。數(shù)據(jù)區(qū)以同樣的原理就有了塊位圖(block bitmap)

 inode bitmap:對(duì)位標(biāo)識(shí)每個(gè)inode空閑與否的狀態(tài)信息

 如果整盤進(jìn)行管理,假設(shè)整盤有100萬(wàn)個(gè)塊,100萬(wàn)個(gè)塊掃描一遍也挺耗時(shí)間的。所以無(wú)論是inode位圖還是block位圖,都不是全文件系統(tǒng)管理的,而是塊組管理的。

5.3.5 文件訪問過程

 a) 查索引節(jié)點(diǎn)(Inode)

 b) 在索引節(jié)點(diǎn)中找到磁盤塊的編號(hào)

 c) 在數(shù)據(jù)區(qū)找到對(duì)應(yīng)的磁盤塊

5.3.6 目錄

第五章 文件系統(tǒng)

 文件訪問時(shí)要先查inode,但是inode表中包含很多的inode,如何確定文件對(duì)應(yīng)的Inode是哪個(gè)呢?這就是目錄的作用。

 目錄也是一個(gè)文件,存在數(shù)據(jù)區(qū)的一個(gè)塊中,目錄實(shí)質(zhì)上就是一個(gè)路徑映射。

 目錄中存儲(chǔ)著以下內(nèi)容:

 a) 一級(jí)目錄下所有的文件名列表

 b) 一級(jí)目錄下所有文件對(duì)應(yīng)的inode編號(hào)

5.3.7 文件創(chuàng)建

 a) 在元數(shù)據(jù)區(qū)找一個(gè)空閑的inode塊存儲(chǔ)inode信息

 b) 在數(shù)據(jù)區(qū)找一個(gè)或一些空閑的block塊,并將其與inode建立映射關(guān)系

 c) 把數(shù)據(jù)填充至這些block塊中

 d) 把標(biāo)志位設(shè)為1(正在使用中的狀態(tài))

5.3.8 硬鏈接

 多個(gè)文件指向同一個(gè)inode,稱之為硬鏈接。這些文件名稱可相同也可不同,不能鏈接不同文件系統(tǒng)的文件。

 硬鏈接特點(diǎn):

 a) 只能對(duì)文件創(chuàng)建,不能應(yīng)用于目錄;

 b) 不能跨文件系統(tǒng);

 c) 創(chuàng)建硬鏈接會(huì)增加文件被鏈接的次數(shù)

5.3.9 軟鏈接

 軟鏈接又叫符號(hào)鏈接,這個(gè)文件包含了另一個(gè)文件的路徑名??梢允侨我馕募蚰夸?,可以鏈接不同文件系統(tǒng)的文件。

 軟鏈接特點(diǎn):

 a) 可應(yīng)用于目錄;

 b) 可以跨文件系統(tǒng);

 c) 不會(huì)增加被鏈接文件的鏈接次數(shù);

 d) 其大小為指定的路徑所包含的字符個(gè)數(shù)

 創(chuàng)建軟鏈接:

ln [-s -v] SRC DEST

5.4 btrfs文件系統(tǒng)

5.4.1 btrfs文件系統(tǒng)介紹

 btrfs文件系統(tǒng)自centos7后開始支持。

 Btrfs(B-tree,Butter FS,Better FS),遵循GPL規(guī)范,由Oracle自2007年開始研發(fā)。

 Btrfs文件系統(tǒng)的核心特性:

 a) 支持寫時(shí)復(fù)制機(jī)制(CoW):復(fù)制、更新及替換指針,而非傳統(tǒng)的“就地”更新

 假設(shè)要修改一個(gè)文件,寫時(shí)復(fù)制機(jī)制就是先把這個(gè)文件復(fù)制一個(gè)副本出來(lái),然后對(duì)這個(gè)副本進(jìn)行修改,修改完以后將文件名的指針由指向原文件改為指向這個(gè)副本。

 如此一來(lái),原文件還在內(nèi)存中,若副本修改有誤還可以通過恢復(fù)指針指向的方法還原成原文件

 b) 多物理卷支持

 btrfs可由多個(gè)底層物理卷組成,支持RAID,以聯(lián)機(jī)“添加”、“移除”、“修改”

 c) 支持?jǐn)?shù)據(jù)及元數(shù)據(jù)校驗(yàn)碼機(jī)制(CheckSum)

 存儲(chǔ)文件時(shí),會(huì)將元數(shù)據(jù)的校驗(yàn)碼和數(shù)據(jù)的校驗(yàn)碼通過文件某些屬性擴(kuò)展給保存下來(lái)。因此文件讀取時(shí)可以很方便、快速的去檢測(cè)文件是否受損,一旦受損還會(huì)自動(dòng)嘗試進(jìn)行修復(fù)

 d) 支持子卷(sub_volume,相當(dāng)于ext系列文件系統(tǒng)的lvm/lvm2)

 可以將多個(gè)底層的物理設(shè)備(硬盤)組織成btrfs文件系統(tǒng),這個(gè)btrfs文件系統(tǒng)可以直接掛載使用,也可以在內(nèi)部創(chuàng)建子卷(就像在VG中創(chuàng)建LV一樣)

 e) 支持快照(快照是子卷的一個(gè)非完全副本,基于CoW機(jī)制實(shí)現(xiàn)的另外一個(gè)存儲(chǔ)空間剛開始為0的一個(gè)卷)

 btrfs文件系統(tǒng)直接支持快照,而ext3/ext4要想支持快照必須使用lvm2來(lái)實(shí)現(xiàn)

 可以針對(duì)單個(gè)文件做快照,也可以針對(duì)卷做快照

 還支持對(duì)做好的快照再做一次快照,做累積性快照。類似于實(shí)現(xiàn)增量備份

 f) 支持透明壓縮機(jī)制

 當(dāng)要存儲(chǔ)一個(gè)很大的文件,但又想節(jié)約空間的時(shí)候,可以把任何數(shù)據(jù)流發(fā)往btrfs文件系統(tǒng)時(shí),自動(dòng)能夠通過占據(jù)CPU時(shí)鐘周期完成數(shù)據(jù)壓縮以后存放,對(duì)用戶來(lái)說(shuō)這個(gè)過程是透明的。在讀取這些壓縮后存放的文件時(shí),能夠自動(dòng)解壓縮。

 有一個(gè)缺陷:壓縮和解壓縮會(huì)占據(jù)更多的時(shí)鐘周期

 Btrfs主要設(shè)計(jì)目標(biāo)是取代Linux早期一直使用的ext3、ext4,但事實(shí)上在ext3、ext4的缺陷暴露之后,在centos6上就提供了另外一種可用的文件系統(tǒng)(xfs)。

5.4.2 btrfs文件系統(tǒng)的實(shí)現(xiàn)

 mkfs.btrfs:創(chuàng)建btrfs文件系統(tǒng)

  -L|--label <name>:指定卷標(biāo)

  -m|--metadata <profile>:指明元數(shù)據(jù)如何存放

   Valid values are raid0,raid1,raid5,raid6,raid10,single or dup

  -d|--data <type>:指明數(shù)據(jù)如何存放

   Valid values are raid0,raid1,raid5,raid6,raid10 or single

  -O|--features <feature1>[,<feature2>...]:在格式化時(shí)直接開啟指定的功能

   A list of filesystem features turned on at mkfs time.Not all features are supported by old kernels.

   To see all features run

    mkfs.btrfs -O list-all

 常用的btrfs文件系統(tǒng)的命令:

  btrfs:管理btrfs文件系統(tǒng)

btrfs filesystem show [--mounted|--all-devices|<uuid>]    #顯示btrfs文件系統(tǒng)信息
btrfs filesystem sync <path>                              #強(qiáng)制把指定btrfs文件系統(tǒng)緩存在內(nèi)存中的數(shù)據(jù)同步到硬盤中
btrfs filesystem df <path> [<path>...]                    #查看已掛載的btrfs文件系統(tǒng)空間使用率
btrfs filesystem defragment [options] <file>|<dir> [<file>|<dir>...]     #消除磁盤碎片
btrfs filesystem resize [devid:][+/-]<size>[gkm]|[devid:]max <path>      #修改文件系統(tǒng)大小
btrfs filesystem label [<device>|<mount_point>] [<newlabel>]             #顯示或更新btrfs文件系統(tǒng)卷標(biāo)

  掛載btrfs文件系統(tǒng):

mount -t btrfs /dev/sdb MOUNT_POINT    #/dev/sdb這個(gè)位置只要是btrfs文件系統(tǒng)的底層物理卷之一,隨便寫哪個(gè)物理卷名均可

  透明壓縮機(jī)制:

mount -o compress={lzo|zlib} DEVICE MOUNT_POINT

  btrfs-convert:實(shí)現(xiàn)無(wú)損地將ext系列的文件系統(tǒng)動(dòng)態(tài)轉(zhuǎn)換成btrfs文件系統(tǒng)或?qū)trfs文件系統(tǒng)降級(jí)為ext系列的文件系統(tǒng)

  btrfsck:實(shí)現(xiàn)文件系統(tǒng)的檢測(cè)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文題目:第五章文件系統(tǒng)-創(chuàng)新互聯(lián)
本文地址:http://jinyejixie.com/article38/dijipp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、定制開發(fā)、網(wǎng)站內(nèi)鏈、手機(jī)網(wǎng)站建設(shè)微信小程序、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
铜陵市| 天峨县| 长武县| 嘉义县| 乌拉特前旗| 南宫市| 临清市| 泸州市| 郑州市| 股票| 舟曲县| 昌都县| 昌都县| 德安县| 论坛| 鹤山市| 搜索| 上饶县| 五台县| 明溪县| 临高县| 铜川市| 通化县| 增城市| 潮州市| 盐边县| 壤塘县| 达日县| 措勤县| 西城区| 吉安县| 淮南市| 合肥市| 东乌珠穆沁旗| 平定县| 海淀区| 庆城县| 康马县| 深圳市| 普洱| 荥经县|