免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

UPnP協(xié)議編程實踐(一)

 earthworm 2009-12-15

2002 年 6 月 01 日

本專題主要是介紹UPnP的工作原理和基本概念,包括SSDP、GENA和FXPP等基本協(xié)議,以及在Linux下如何使用Intel提供的UPnP開發(fā)包實現(xiàn)UPnP控制點和設(shè)備。本文是這個專題的第一篇,主要介紹UPnP的工作原理和基本概念。

UPnP是通用即插即用(Universal Plug and Play)的縮寫,它主要用于實現(xiàn)設(shè)備的智能互聯(lián)互通。使用UPnP協(xié)議不需要設(shè)備驅(qū)動程序,因此使用UPnP建立的網(wǎng)絡(luò)是介質(zhì)無關(guān)的,它可以運行在幾乎所有的操作系統(tǒng)平臺之上,可以使用C,C++,JAVA和VB等開發(fā)語言,使得在辦公室、家庭和其他公共場所方便地構(gòu)建設(shè)備相互聯(lián)通的網(wǎng)絡(luò)環(huán)境。

本專題主要是介紹UPnP的工作原理和基本概念,包括SSDP、GENA和FXPP等基本協(xié)議,以及在Linux下如何使用Intel提供的UPnP開發(fā)包實現(xiàn)UPnP控制點和設(shè)備。本文是這個專題的第一篇,主要介紹UPnP的工作原理和基本概念。本專題其后的部分會詳細(xì)介紹SSDP、GENA的概念,及其在UPnP中的協(xié)議實現(xiàn),最后會使用Intel的Linux開發(fā)包實現(xiàn)一個UPnP設(shè)備。

UPnP協(xié)議概述

隨著越來越多的設(shè)備聯(lián)入網(wǎng)絡(luò),對于共享設(shè)備以及共享設(shè)備提供的資源和服務(wù)的需求也越來越強烈,透明的訪問各種聯(lián)入網(wǎng)絡(luò)的資源也成為了一種非常復(fù)雜的任務(wù)。因此,在1999年,Microsoft公司開始大張旗鼓地宣傳下一代即插即用技術(shù)--通用即插即用( Universal Plug and Play,簡稱UPnP)。UPnP實際上是擴(kuò)展了傳統(tǒng)單機的設(shè)備和計算機系統(tǒng)的概念,在"零配置"的前提下提供了連網(wǎng)設(shè)備之間的發(fā)現(xiàn)、接口聲明和其他信息的交換等互動操作功能。Microsoft公司稱"UPnP將延伸到家庭中的每一個設(shè)備,它會成為個人電腦、應(yīng)用程序、智能設(shè)備集成工作所必需的框架、協(xié)議和接口標(biāo)準(zhǔn)"。

UPnP是實現(xiàn)智能設(shè)備端到端網(wǎng)絡(luò)連接的結(jié)構(gòu)。它也是一種架構(gòu)在TCP/IP和HTTP技術(shù)之上的,分布式、開放的網(wǎng)絡(luò)結(jié)構(gòu),以使得在聯(lián)網(wǎng)的設(shè)備間傳遞控制和數(shù)據(jù)。UPnP 技術(shù)實現(xiàn)了 控制點、 設(shè)備服務(wù)之間通訊的支持,并且設(shè)備和相關(guān)服務(wù)的也使用XML定義并且公布出來。使用UPnP,設(shè)備可以動態(tài)加入網(wǎng)絡(luò),自動獲得一個IP地址,向其他設(shè)備公布它的能力或者獲知其他設(shè)備的存在和服務(wù),所有這些過程都是自動完成的,此后設(shè)備能夠彼此直接通訊。

UPnP不需要設(shè)備驅(qū)動程序,因此使用UPnP建立的網(wǎng)絡(luò)是介質(zhì)無關(guān)的。同時UPnP使用標(biāo)準(zhǔn)的TCP/IP和網(wǎng)絡(luò)協(xié)議,使它能夠無縫的融入現(xiàn)有網(wǎng)絡(luò)。構(gòu)造UPnP應(yīng)用程序時可以使用任何語言,并在任何操作系統(tǒng)平臺上編譯運行。對于設(shè)備的描述,使用HTML表單表述設(shè)備控制界面。它既允許設(shè)備供應(yīng)商提供基于瀏覽器的用戶界面和編程控制接口,也允許開發(fā)人員定制自己的設(shè)備界面。






典型應(yīng)用場景

隨著PC成為網(wǎng)絡(luò)的中心并提供日益豐富的介質(zhì)和連接服務(wù),在設(shè)備與PC相連之后,越來越多的應(yīng)用將被開發(fā)出來。下面的例子只是其中很小的一部分:

  • 智能家庭網(wǎng)絡(luò)
    許多智能家居環(huán)境使用了現(xiàn)存的家庭控制網(wǎng)絡(luò),例如X10網(wǎng)絡(luò)來控制和監(jiān)控整個家居環(huán)境,比如燈光,安防和其他家庭設(shè)備。這些網(wǎng)絡(luò)可以連接PC上,但是除了PC之外,不能被其他的設(shè)備存取。使用UPnP設(shè)備可以橋接這些網(wǎng)絡(luò)成為一個網(wǎng)絡(luò),并提供用戶更多設(shè)備存取家庭網(wǎng)絡(luò)中的設(shè)備。在實現(xiàn)時也無須對X10網(wǎng)絡(luò)中的現(xiàn)有布線和設(shè)備進(jìn)行昂貴的升級,只需要將設(shè)備變成UPnP設(shè)備并能夠與控制點通訊并接受控制點的控制命令。
  • 數(shù)字音頻文件管理
    可以在PC和其他設(shè)備上播放的數(shù)字化音頻文件在近幾年正在成指數(shù)級的增長。一個家庭中,可能有幾臺計算機或者其他設(shè)備用于保存這些音頻文件。使用UPnP可以使這些分布在不同PC上的音樂庫被統(tǒng)一的管理。這些設(shè)備能被發(fā)現(xiàn)然后被其他控制點(比如個人電腦、UPnP接收器)控制。同時這些控制點也可以控制家庭中的任何一個揚聲器。
  • 數(shù)字圖片庫
    許多家庭使用數(shù)字相機拍照,或者將已有照片掃描保存,然后將這些照片上載到他們的計算機中保存。在計算機中對其進(jìn)行分類,或者以幻燈片的形式進(jìn)行顯示。隨著照片的增加,照片可能保存在多種設(shè)備或者多種介質(zhì)上,比如光盤、硬盤、Flash卡。使用UPnP技術(shù),圖片庫可以自己作為一個設(shè)備存在,并自動在網(wǎng)絡(luò)上聲明。這使得一個照片庫可能臨時為多個應(yīng)用程序使用,例如可以進(jìn)行幻燈片顯示的同時,在電子像框、機頂盒和電視上進(jìn)行顯示。






UPnP的關(guān)鍵術(shù)語

  • Auto-IP
    在Ipv4網(wǎng)絡(luò)中自動選擇一個IP地址。你可以訪問IETF文檔, http://search./internet-drafts/draft-ietf-dhc-ipv4-autoconfig-05.txt
  • DHCP
    動態(tài)主機控制協(xié)議,可以訪問 RFC 2131獲得更詳細(xì)的信息。
  • HTTPMU
    在UDP上實現(xiàn)HTTP協(xié)議的多址傳送。
  • HTTPU
    在UDP上實現(xiàn)普通的HTTP傳送協(xié)議。
  • SOAP
    簡單對象存取協(xié)議(Simple Object Access Protocol ),它是一種應(yīng)用程序之間進(jìn)行數(shù)據(jù)通訊的機制。它是一種在HTTP上使用XML發(fā)送命令并接收值的遠(yuǎn)程過程調(diào)用。
  • UPC
    通用產(chǎn)品編碼的縮寫(Universal Product Code),它由12個數(shù)字構(gòu)成,由統(tǒng)一編碼委員會(Uniform Code Council)管理。這個值可由UPnP制造商指定。
  • 單一設(shè)備名(UDN)
    單一設(shè)備名(Unique Device Name)基于UUID,每個表示一個設(shè)備。在不同的時間,對于同一個設(shè)備此值應(yīng)該是唯一的。
  • 設(shè)備
    設(shè)備是指其他服務(wù)或者是設(shè)備的容器。一個設(shè)備可以包含其他的邏輯設(shè)備。
  • 設(shè)備描述
    設(shè)備描述包含一個物理設(shè)備上所有設(shè)備一系列通用屬性,它包括服務(wù),設(shè)備結(jié)構(gòu)和設(shè)備屬性。
  • 設(shè)備類型
    設(shè)備類型的一般格式為 urn:schemas-upnp-org:device:uuid-device,uuid-device 為UPnP工作委員會定義的標(biāo)準(zhǔn)設(shè)備類型。在UPnP設(shè)備模版和設(shè)備類型之間是一一對應(yīng)的,設(shè)備制造商也可以指定其他的名字,一般格式為 urn:domain-name:device:uuid-device, uuid-device為制造商定義的標(biāo)準(zhǔn)設(shè)備類型,domain-name字段為設(shè)備制造商注冊的域名。
  • 根設(shè)備
    根設(shè)備是指處于設(shè)備樹最頂層的設(shè)備。
  • 控制點
    控制點是一個控制器,它可以檢索設(shè)備和服務(wù)描述,發(fā)送動作到服務(wù),查詢服務(wù)的狀態(tài)變量和從服務(wù)接收事件。允許用戶使用或運行一個設(shè)備,例如CD播放機,的程序可以認(rèn)為是控制點。
  • 動作
    表示客戶端發(fā)出的完成特定功能的命令。
  • 事件
    事件是指服務(wù)的狀態(tài)變量的一個或多個改變的通知。
  • 事件變量
    事件變量是指在改變一個服務(wù)的狀態(tài)變量時觸發(fā)事件的變量。任何訂閱此變量的事件源的控制點將接收到改變通知。非事件變量與事件通知沒有關(guān)系。
  • 服務(wù)
    服務(wù)是一個邏輯功能單位,服務(wù)代表動作和使用狀態(tài)變量的物理設(shè)備的部分或所有狀態(tài)。
  • 服務(wù)描述
    服務(wù)描述是指設(shè)備提供的一系列動作以及和動作相關(guān)的狀態(tài)變量。
  • 服務(wù)類型
    服務(wù)類型是表示服務(wù)的統(tǒng)一資源名。服務(wù)類型和UPnP服務(wù)模版之間是一一對應(yīng)的。UPnP任務(wù)組定義了幾種標(biāo)準(zhǔn)的服務(wù)類型。服務(wù)類型的一般格式為: urn:schemas-upnp-org:service:serviceType:version。例如,掃描儀的服務(wù)類型應(yīng)該為 urn:schemas-upnp-org:service:scanner:1。 UPnP設(shè)備制造商可以指定附加服務(wù),這樣的服務(wù)一般格式為: urn:domain-name:service:serviceType:version , domain-name字段為設(shè)備制造商注冊的域名。
  • 狀態(tài)變量
    狀態(tài)變量是用于描述服務(wù)狀態(tài)的數(shù)據(jù)片斷。






UPnP設(shè)備工作過程

UPnP定義了設(shè)備之間、設(shè)備和控制點、控制點之間通訊的協(xié)議。完整的UPnP由設(shè)備尋址、設(shè)備發(fā)現(xiàn)、設(shè)備描述、設(shè)備控制、事件通知和基于Html的描述界面幾部分構(gòu)成。UPnP設(shè)備協(xié)議棧如下圖所示:



在最高層中僅包含UPnP制造商定義的特定設(shè)備信息,緊接著UPnP工作組定義的內(nèi)容補充制造商信息。從這層往下,定義的消息為UPnP特定的消息。也就是說,這些消息定義為以下幾個協(xié)議:簡單設(shè)備發(fā)現(xiàn)協(xié)議(Simple Service Discovery Protocol ),通用事件通知結(jié)構(gòu)(General Event Notification Architecture)和 簡單對象存取協(xié)議(Simple Object Access Protocol)。這些消息使用 HTTPU或者 HTTPMU發(fā)送。這幾個部分在UPnP中的層次關(guān)系如下圖所示:



4.1 設(shè)備尋址

UPnP網(wǎng)絡(luò)的基礎(chǔ)就是TCP/IP協(xié)議族,UPnP設(shè)備能在TCP/IP協(xié)議下工作的關(guān)鍵就是正確的設(shè)備尋址。一個UPnP設(shè)備尋址的一般過程是:首先向 DHCP服務(wù)器發(fā)送DHCPDISCOVER消息,如果在指定的時間內(nèi),設(shè)備沒有收到DHCPOFFERS回應(yīng)消息,設(shè)備必須使用 Auto-IP完成IP地址的設(shè)置。使用Auto-IP時,設(shè)備在地址范圍169.254/169.16范圍中查找空閑的地址。在選中一個地址之后,設(shè)備測試此地址是否在使用。如果此地址被占用,則重復(fù)查找過程直到找到一個未被占用的地址,此過程的執(zhí)行需要底層操作系統(tǒng)的支持,地址的選擇過程應(yīng)該是隨機的以避免多個設(shè)備選擇地址時發(fā)生多次沖突。為了測試選擇的地址是否未被占用,設(shè)備必須使用地址分辨協(xié)議(ARP)。一個ARP查詢請求設(shè)置發(fā)送者的硬件地址為設(shè)備的硬件地址,發(fā)送者的IP地址為全0。設(shè)備應(yīng)該偵聽ARP查詢響應(yīng),或者是否存在具有相同IP地址的ARP查詢請求。如果發(fā)現(xiàn),設(shè)備必須嘗試新的地址。

使用Auto IP的設(shè)備必須定時檢測DHCP服務(wù)器是否存在,這可以通過定時發(fā)送DHCPDISCOVER消息實現(xiàn),如果接收到DHCPOFFERS回應(yīng)消息,設(shè)備必須釋放Auto IP分配的地址,此時設(shè)備必須取消所有的廣告消息并重新發(fā)出新的。

一個設(shè)備可以使用UPnP之外的更高層的協(xié)議,這些協(xié)議將為設(shè)備使用友好的名稱。在這種情況下,將這些友好的主機名解析為IP地址就很必要了,DNS通常是用來實現(xiàn)此功能的。使用此功能的設(shè)備可能要包含一個DNS客戶端,而且支持動態(tài)的DNS注冊,通過注冊將它自己的名字加入到地址分布圖中。

4.2 設(shè)備發(fā)現(xiàn)

一旦設(shè)備連接到網(wǎng)上并且分配了地址,就要進(jìn)行發(fā)現(xiàn)的操作了。設(shè)備發(fā)現(xiàn)是UPnP網(wǎng)絡(luò)實現(xiàn)的第一步。設(shè)備發(fā)現(xiàn)是由簡單發(fā)現(xiàn)協(xié)議SSDP(Simple Service Discovery Protocol)來定義的。在設(shè)備發(fā)現(xiàn)操作之后,控制點可以發(fā)現(xiàn)感興趣的設(shè)備,并使得控制點獲得設(shè)備能力的描述,同時控制點也可以向設(shè)備發(fā)送命令,偵聽設(shè)備狀態(tài)的改變,并將設(shè)備展示給用戶。

當(dāng)一個設(shè)備加入到網(wǎng)絡(luò)中,設(shè)備發(fā)現(xiàn)過程允許設(shè)備向網(wǎng)絡(luò)上的控制點告知它提供的服務(wù)。當(dāng)一個控制點加入到網(wǎng)絡(luò)中時,設(shè)備發(fā)現(xiàn)過程允許控制點尋找網(wǎng)絡(luò)上感興趣的設(shè)備。在這兩種情況下,基本的交換信息就是發(fā)現(xiàn)消息。發(fā)現(xiàn)消息包括設(shè)備的一些特定信息或者某項服務(wù)的信息,例如它的類型、標(biāo)識符、和指向XML設(shè)備描述文檔的指針。

在一個新設(shè)備加入網(wǎng)絡(luò)時,如果它存在多個嵌入設(shè)備,那么它將多目傳送一系列發(fā)現(xiàn)消息公開它的設(shè)備和服務(wù)。任何感興趣的控制點可以在此標(biāo)準(zhǔn)的多目地址上監(jiān)聽新服務(wù)可用通知消息。同樣,在一個控制點加入網(wǎng)絡(luò)時,它多目傳送發(fā)現(xiàn)消息尋找相關(guān)設(shè)備或服務(wù)。所有的設(shè)備必須在標(biāo)準(zhǔn)多目傳送地址上監(jiān)聽這些消息并且存在匹配的設(shè)備或服務(wù)時自動響應(yīng)發(fā)現(xiàn)消息。在設(shè)備從網(wǎng)絡(luò)中除去時,它也應(yīng)該發(fā)出一系列聲明,表示此設(shè)備包含的設(shè)備和服務(wù)已經(jīng)失效。下圖表示設(shè)備和控制點交互的一般過程:



簡單發(fā)現(xiàn)協(xié)議(SSDP)定義了在網(wǎng)絡(luò)中發(fā)現(xiàn)網(wǎng)絡(luò)服務(wù),控制點定位網(wǎng)絡(luò)上相關(guān)資源和設(shè)備在網(wǎng)絡(luò)上聲明其可用性的方法。它是建立在 HTTPUHTTPMU的基礎(chǔ)上的,用于控制設(shè)備發(fā)送聲明和離開消息,以及控制點發(fā)送的查詢消息實現(xiàn)設(shè)備發(fā)現(xiàn)操作的。簡單發(fā)現(xiàn)協(xié)議使用租用模型減少了本來是必需的系統(tǒng)開銷,網(wǎng)絡(luò)上的每一個控制點擁有網(wǎng)絡(luò)狀態(tài)的全部信息并保持著網(wǎng)絡(luò)較低的通訊量。為了增加租用模型的健壯性,簡單發(fā)現(xiàn)協(xié)議通過定期發(fā)送聲明消息的辦法保證在設(shè)備超時決定設(shè)備是否可以使用。缺省的聲明消息租用時間是30分鐘。

4.3 設(shè)備描述

UPnP網(wǎng)絡(luò)結(jié)構(gòu)的第二步是設(shè)備描述。在控制點發(fā)現(xiàn)了一個設(shè)備之后,控制點仍然對設(shè)備知之甚少,控制點可能僅僅知道設(shè)備或服務(wù)的UPnP類型,設(shè)備的UUID和設(shè)備描述的URL地址。為了讓控制點更多的了解設(shè)備和它的功能或者與設(shè)備交互,控制點必須從發(fā)現(xiàn)消息中得到設(shè)備描述的URL,通過URL取回設(shè)備描述。設(shè)備描述的一般過程:



對于一個設(shè)備的UPnP描述一般分成兩個部分:描述設(shè)備和描述設(shè)備提供的服務(wù)。UPnP對某一設(shè)備的描述以XML形式表示出來,設(shè)備描述包括制造商信息,包括模塊名稱和編號,序列號,制造商名稱,制造商網(wǎng)站的URL等等。設(shè)備描述也包括所有嵌入設(shè)備描述和URL地址集。對于一個物理設(shè)備可以包含多個邏輯設(shè)備,多個邏輯設(shè)備既可以是一個根設(shè)備其中嵌入多個設(shè)備,也可以是多個根設(shè)備的方式實現(xiàn)。設(shè)備描述是由設(shè)備制造商提供的,采用XML表述,并且遵循UPnP設(shè)備模版。此模版是由UPnP工作委員會生成的。

UPnP服務(wù)描述包括一系列命令或者動作,服務(wù)響應(yīng),動作的參數(shù)。服務(wù)的描述也包含一系列變量,這些變量描述了服務(wù)運行時刻的狀態(tài),這包括數(shù)據(jù)類型、取值范圍和事件特性的描述。服務(wù)描述也是由設(shè)備制造商提供的,采用XML方式表述,遵循UPnP服務(wù)模版。

4.4 設(shè)備控制

設(shè)備控制是UPnP網(wǎng)絡(luò)的第三步。在接收設(shè)備和服務(wù)描述之后,控制點可以向這些服務(wù)發(fā)出動作,同時控制點也可以輪詢服務(wù)的狀態(tài)變量值。發(fā)出動作實質(zhì)上是一種遠(yuǎn)程過程調(diào)用,控制點將動作送到設(shè)備服務(wù),在動作完成之后,服務(wù)返回相應(yīng)的結(jié)果。設(shè)備控制的一般過程如下圖:



為了控制一個設(shè)備,控制點向設(shè)備服務(wù)發(fā)出一個動作。這一般通過向服務(wù)的控制URL地址發(fā)送一個適當(dāng)?shù)目刂葡?,而服?wù)則做出相應(yīng)的響應(yīng)。動作的效果可以通過改變一個描述服務(wù)運行狀態(tài)的變量。在這些狀態(tài)變量改變時,時間將發(fā)送到所有相關(guān)的控制點??刂泣c也會輪詢服務(wù)的狀態(tài)變量值以獲得狀態(tài)變量的當(dāng)前值,與發(fā)出一個動作的過程相似,控制點向服務(wù)的控制URL發(fā)送一個適當(dāng)?shù)牟樵兿?,而服?wù)則返回相應(yīng)的變量值。每個服務(wù)必須保持狀態(tài)變量的一致性,以便控制點能夠輪詢并接收到有意義的值。

4.5 設(shè)備事件

設(shè)備事件是UPnP網(wǎng)絡(luò)的第四步。一個服務(wù)的UPnP描述包括服務(wù)響應(yīng)的動作列表和運行時模擬服務(wù)狀態(tài)的變量列表。當(dāng)這些變量改變時,服務(wù)就會發(fā)布更新,則控制點就會收到設(shè)備事件。設(shè)備事件發(fā)送的一般過程如下圖:



為了訂閱事件,訂閱者發(fā)送一個訂閱消息。如果出版者收到此消息,它將以這個訂閱的持續(xù)時間作為響應(yīng)。為了保持訂閱,訂閱者必須在訂閱到期之前進(jìn)行續(xù)訂。在訂閱者不需要出版者發(fā)送的事件時,訂閱者必須取消這個訂閱。出版者通過發(fā)送事件消息提醒訂閱者狀態(tài)變量改變。事件消息包含多個狀態(tài)變量的名字和這些變量的當(dāng)前值。在訂閱者第一次訂閱時,需要發(fā)送初始化事件消息,這個事件包含所有事件變量的名和值并且允許訂閱者出示化服務(wù)變量值。為了支持多個控制點,在動作生效之后所有訂閱者都將接到通知。事件消息使用HTTP協(xié)議傳送,事件詳細(xì)定義在通用事件通知結(jié)構(gòu)(General Event Notification Architecture)協(xié)議中。

4.6 設(shè)備表征

設(shè)備表征是UPnP設(shè)備的最后一步。如果設(shè)備有表征的URL,那么控制點就能通過URL得到頁面,在瀏覽器中裝載頁面,并使得用戶根據(jù)頁面提供的功能控制設(shè)備或者瀏覽設(shè)備狀態(tài)。它具體能完成到什么與設(shè)備和表征頁面的功能有關(guān)。

設(shè)備表征包含在設(shè)備描述的presentationURL字段。設(shè)備表征可以完全由設(shè)備制造商提供,它采用HTML頁的形式,使用HTTP進(jìn)行發(fā)布。



參考資料

UPnP協(xié)議:
UPnP協(xié)議文檔的相關(guān)信息保存在 http://www./resources/目錄下。

Auto IP配置協(xié)議:
協(xié)議原文參考 http://www./download/draft-ietf-zeroconf-ipv4-linklocal-01-Apr.txt

SSDP協(xié)議:
簡單服務(wù)發(fā)現(xiàn)協(xié)議,協(xié)議原文參考 http://www./download/draft_cai_ssdp_v1_03.txt

HTTPU和HTTPMU:
在UDP上實現(xiàn)HTTP協(xié)議傳送以及HTTP協(xié)議多址傳送。協(xié)議規(guī)范參考 http://www./download/draft-goland-http-udp-04.txt

GENA:
通用事件通知結(jié)構(gòu),協(xié)議原文參考 http://www./download/draft-cohen-gena-client-01.txt

XML 規(guī)范:
擴(kuò)展標(biāo)記語言,W3C組織標(biāo)準(zhǔn)文檔 http://www./xml。

SOAP:
簡單對象存取協(xié)議(Simple Object Access Protocol ),協(xié)議原文可以參考 http://www./TR/SOAP/

RFC 2616:
關(guān)于超文本傳輸協(xié)議(HTTP 1.1)原文IETF的RFC文檔 http://www./rfc/rfc2616.txt?number=2616

RFC 2131:
關(guān)于動態(tài)主機控制協(xié)議(DHCP)的 RFC文檔, http://www./rfc/rfc2616.txt?number=2131



關(guān)于作者

 

于辰濤,一直從事Linux/Unix系統(tǒng)的開發(fā)工作,對Linux系統(tǒng)配置和底層程序開發(fā)具有一定經(jīng)驗,現(xiàn)從事嵌入式系統(tǒng)的開發(fā)工作。歡迎您可以通過電子郵件 scuyct@hotmail.net跟他聯(lián)系。希望能與更多的朋友交流關(guān)于Linux方面的知識。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多