共計(jì) 1740 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
本篇內(nèi)容介紹了“l(fā)inux 中 rpc 指的是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在 linux 中,rpc 是遠(yuǎn)程過程調(diào)用的意思,是 Reomote Procedure Call 的縮寫,特指一種隱藏了過程調(diào)用時(shí)實(shí)際通信細(xì)節(jié)的 IPC 方法;linux 中通過 RPC 可以充分利用非共享內(nèi)存的多處理器環(huán)境,提高系統(tǒng)資源的利用率。
本教程操作環(huán)境:linux7.3 系統(tǒng)、Dell G3 電腦。
linux 中 rpc 是什么意思
RPC:(Reomote Procedure Call) 遠(yuǎn)程過程調(diào)用
RPC(Remote Procedure Call)中文全稱遠(yuǎn)程過程調(diào)用,在 Linux 里有個(gè) rpcbind 軟件,是 rpc 的一個(gè)簡(jiǎn)單應(yīng)用例子,是和網(wǎng)絡(luò)存儲(chǔ) NFS 相關(guān)的軟件,用戶要想找到 NFS 存儲(chǔ),必須通過先訪問 RPCBIND 才行。
特指一種隱藏了過程調(diào)用時(shí)實(shí)際通信細(xì)節(jié)的 IPC 方法。客戶端將調(diào)用一個(gè)本地方法,而這個(gè)本地方法則是負(fù)責(zé)透明的與遠(yuǎn)程服務(wù)端進(jìn)行過程間通信。這個(gè)本地方法會(huì)講相關(guān)參數(shù)順序打包到一個(gè)消息中,然后把這個(gè)消息發(fā)送給服務(wù)端提供的方法,服務(wù)端的方法會(huì)從消息中解出序列化發(fā)出來的參數(shù),然后執(zhí)行,最后仍以同樣的方式將方法的返回值發(fā)送給客戶端。
通過 RPC 我們可以充分利用非共享內(nèi)存的多處理器環(huán)境(例如通過局域網(wǎng)連接的多臺(tái)工作站), 這樣可以簡(jiǎn)便地將你的應(yīng)用分布在多臺(tái)工作站上,應(yīng)用程序就像運(yùn)行在一個(gè)多處理器的計(jì)算機(jī)上一樣。你可以方便的實(shí)現(xiàn)過程代碼共享,提高系統(tǒng)資源的利用率,也可以將以大量數(shù)值處理的操作放在處理能力較強(qiáng)的系統(tǒng)上運(yùn)行,從而減輕前端機(jī)的負(fù)擔(dān)。
擴(kuò)展知識(shí):
IPC:(Inter Process Communication)跨進(jìn)程通信
這個(gè)概念泛指進(jìn)程之間任何形式的通信行為,是個(gè)可以拿來到處套的術(shù)語。它不僅包括各種形式的消息傳遞,還可以指共享資源,以及同步對(duì)象 [mutex 或者其他類似的東西,即確保安全的并發(fā)訪問共享資源(也就是防止兩個(gè)或兩個(gè)以上的對(duì)象同事對(duì)同一個(gè)數(shù)據(jù)成員進(jìn)行修改,從而導(dǎo)致數(shù)據(jù)被破壞,或者競(jìng)爭(zhēng)條件下同事讀 / 寫數(shù)據(jù)而導(dǎo)致錯(cuò)誤的情況發(fā)生)] 的東西。
LPC(Local Procedure Call)
LPC 是“本地過程調(diào)用(Local Procedure Call)”的縮寫。所謂“本地過程調(diào)用”是與“遠(yuǎn)程過程調(diào)用”即 RPC 相對(duì)而言的。RPC 是廣義的,RPC 可以發(fā)生在不同的主機(jī)之間,也可以發(fā)生在同一臺(tái)主機(jī)上,發(fā)生在同一臺(tái)主機(jī)上就是 LPC。所以在 Unix 語境下就沒有 LPC 這一說,即使發(fā)生在同一臺(tái)主機(jī)上也稱為 RPC。
在歷史上,RPC 是“開放軟件基金會(huì)(OSF)”設(shè)計(jì)和提出的一種用以實(shí)現(xiàn)“Unix 分布計(jì)算環(huán)境(Unix DCE)”的標(biāo)準(zhǔn)。實(shí)際上,微軟的 DCOM 技術(shù),就是建立在 RPC 基礎(chǔ)上的。Win2000 的 RPC 可以采用 TCP/IP、SPX、NetBIOS、命名管道、以及“本地”作為底層的通信手段,這“本地”就是 LPC。
另一方面,Windows 是一個(gè)帶有許多微內(nèi)核系統(tǒng)特征的操作系統(tǒng)(盡管它的內(nèi)核不是微內(nèi)核),系統(tǒng)中有不少“系統(tǒng)級(jí)”的服務(wù)進(jìn)程,例如大家已經(jīng)熟知的 csrss、管理用戶登錄的“本地安全認(rèn)證服務(wù)”進(jìn)程 LSASS 等等,用戶進(jìn)程以及微軟提供的系統(tǒng)工具軟件經(jīng)常需要調(diào)用由這些服務(wù)進(jìn)程提供的服務(wù),這里 LPC 就起著重要的作用。
LPC 的基礎(chǔ)是一種稱為“端口 (Port)”的進(jìn)程間通信機(jī)制,類似于本地的(Unix 域的)Socket。這種 Port 機(jī)制提供了面向報(bào)文傳遞(message passing) 的進(jìn)程間通信,而 LPC 則是建立在這個(gè)基礎(chǔ)上的高層機(jī)制,目的是提供跨進(jìn)程的過程調(diào)用。注意這里所謂“跨進(jìn)程的過程調(diào)用”不同于以前所說的“跨進(jìn)程操作”。前者是雙方有約定、遵循一定規(guī)程的、有控制的服務(wù)提供,被調(diào)用者在向外提供一些什么服務(wù)、即提供哪些函數(shù)調(diào)用方面是自主的,而后者則可以是在不知不覺之間的被利用、被操縱。前者是良性的,而后者可以是惡性的。
“l(fā)inux 中 rpc 指的是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實(shí)用文章!