在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux進(jìn)程間通信趣味介紹

深圳東裕光大 ? 來源:編程技術(shù)宇宙 ? 作者:軒轅之風(fēng)O ? 2021-08-27 10:28 ? 次閱讀

?月黑風(fēng)高夜,突然聽得咣當(dāng)一聲,Web服務(wù)器的目錄下冒出了兩個文件,弄出了不小的聲響。這兩個家伙一胖一瘦,鬼鬼祟祟,潛入這臺計算機,不知要搞什么名堂。“二弟,一會兒咱們按照計劃好的運行起來,分頭行事,你等我信號,拿到數(shù)據(jù)后趕緊撤”,胖子對瘦子說到。“老大,這地方我不熟悉,我怎么等你信號?咱們得想個聯(lián)系方式,一會兒通信使用”,瘦子說到。“這個不用擔(dān)心,主人都交代好了”,胖子一邊說,一邊從背后拿出一本 《Linux進(jìn)程間通信手冊》 翻了起來。

信號

翻開手冊的第一頁,上面寫著:信號——Signal,兩個家伙開始認(rèn)真研究起來。片刻之后,胖子程序說道:“唉,這個不行,往后翻吧!”瘦子程序不解,問道:“咋就不行啦?”“你看這里,手冊上說了,信號是Linux上的一種軟中斷通信機制,可以向指定進(jìn)程發(fā)送通知,總共有64種信號,不過這個信號只能作為通知使用,沒辦法傳輸數(shù)據(jù)”

“沒法傳輸數(shù)據(jù)?那這玩意有什么用?”“還是有用啊,可以通知某個進(jìn)程發(fā)生了什么事件,比如kill命令就是利用這個信號來告知進(jìn)程退出從而實現(xiàn)殺進(jìn)程的效果的”“原來如此”,瘦子程序若有所思的點了點頭,此時胖子已經(jīng)翻到了手冊的第二頁。

socket

“你看,手冊上寫了,可以用socket”,胖子說到。“socket?那不是網(wǎng)絡(luò)通信使用的嗎?”,瘦子有些疑惑。“是啊,不過咱們一樣可以用來在本地計算機通信,把連接的IP地址換成127.0.0.1就行了”“感覺有點太招搖了,咱們計算機內(nèi)部進(jìn)程通信,數(shù)據(jù)還要經(jīng)過網(wǎng)卡,很容易被發(fā)現(xiàn)的!”“不會不會,手冊上說了,127.0.0.1是本地回環(huán)地址,數(shù)據(jù)在協(xié)議棧就進(jìn)行轉(zhuǎn)發(fā)了,根本不會到達(dá)網(wǎng)卡”

“那抓包能抓到咱們通信嗎?”“嗯,讓我看看···手冊上說,可以在虛擬的回環(huán)網(wǎng)卡lo上抓到數(shù)據(jù)”“還是算了吧,咱干這事得悄悄進(jìn)行,不能留下痕跡,你再看看還有沒有別的招”聽瘦子這么一說,胖子倒也覺得有理,便在手冊上繼續(xù)翻了起來。

匿名管道

“哎,有了有了,這個叫匿名管道的,聽起來就比較隱秘,應(yīng)該不會被發(fā)現(xiàn)。”瘦子接過手冊,看了起來。這倆盯著手冊上的兩個圖研究了半天,總算弄明白了,所謂匿名管道不過是內(nèi)核中的一段緩沖區(qū),提供了讀寫兩個口子,通過fork創(chuàng)建子進(jìn)程后,子進(jìn)程繼承了父進(jìn)程的管道信息,兩邊只要約定好,一個讀,一個寫,就能實現(xiàn)通信了。

“老大,這匿名管道是單向的,咱們要通信,得整兩根管道才行,一個你寫我讀,一個我寫你讀”“看起來挺靠譜,就這么干!”,二人達(dá)成了一致。胖子程序率先運行起來,隨后創(chuàng)建了兩個管道,一個用來發(fā)送消息,一個用來接收消息。接著執(zhí)行fork,將瘦子程序也運行了起來。

時間過的很快,轉(zhuǎn)眼已是深夜,隨著計算機被關(guān)掉,兩個家伙的進(jìn)程也都退出了。半夜無人之際,硬盤中這兩個家伙開始吵起來了。“你是怎么回事?我給你發(fā)消息怎么也不回,害得我一連發(fā)了一堆消息,最后把管道塞滿了,我都阻塞了!”,胖子程序氣憤地說道。“嗨!別提了,主人給我寫的程序有bug,今天運行的時候不小心崩潰了,等我再次起來時,發(fā)現(xiàn)管道不見了,什么情況啊?”,瘦子程序說完嘆了一口氣。“那肯定不行,這匿名管道需要有親緣關(guān)系的進(jìn)程繼承后才能通信,你用別的方式運行起來,肯定看不到我創(chuàng)建的管道啊!”“這匿名管道用起來太麻煩了,看看還有沒有別的通信方式?”胖子程序又掏出了手冊,翻了起來。

消息隊列

“有了有了,這里還寫了兩種方式:命名管道、消息隊列”,胖子程序說到。“命名管道?跟匿名管道有什么區(qū)別嗎?”“命名管道有名字,有了名字就不限有親緣關(guān)系的進(jìn)程才能通信了,只要使用這個名字,都能打開管道通信,這下你就算掛了重啟也能跟我聯(lián)系上了”“那消息隊列又是什么東西?”“額,讓我看一下”“給我也看看”,瘦子程序湊了上去,一起看了起來。

過了一會兒,瘦子程序說道:“我看明白了,這消息隊列是內(nèi)核中的一個消息鏈表,按照消息塊組織,比那管道全是二進(jìn)制數(shù)據(jù)流堆積在一起好用多了”“有道理,而且這消息還可以指定類型,這樣咱們倆就不用弄兩個管道,一個消息隊列就行了,咱們倆使用不同的消息類型,可省了不少事兒啊!”“那咱們就用消息隊列吧,別用那什么管道了”“好,就這么干!”兩個家伙一拍即合,準(zhǔn)備第二天再大干一場。第二天,計算機啟動后,它們又偷偷的運行了起來。這一次用上了消息隊列,聯(lián)絡(luò)起來方便了不少。

共享內(nèi)存

不知過了多久,那瘦子進(jìn)程總算來信兒了,胖子從消息隊列中取出一看,只見上面寫著:

“老大,我拿到了數(shù)據(jù)了,需要你來處理一下,不過這數(shù)據(jù)體量有點大,用管道和消息隊列傳輸效率都太低了,有無辦法快速把數(shù)據(jù)傳送給你,盼速回。”

胖子進(jìn)程心里一陣歡喜,數(shù)據(jù)拿到了,總算可以回去交差了。不過怎么樣快速把數(shù)據(jù)傳送過來呢,心里又犯起了嘀咕。此時,胖子進(jìn)程又一次拿出手冊,翻到了最后一頁,發(fā)現(xiàn)了一個叫“共享內(nèi)存”的東西,仿佛像抓住了救命稻草一般,仔細(xì)研究了起來。片刻之后,胖子的臉上露出了笑容,隨后寫下了一條消息給瘦子進(jìn)程發(fā)送了過去。卻說這瘦子進(jìn)程正在焦急等待消息中,收到老大的回信后,趕緊取出來看:

二弟,主人的手冊中提到,可以使用共享內(nèi)存進(jìn)行進(jìn)程間通信。我準(zhǔn)備了幾個內(nèi)存頁面,你將它們映射到你的進(jìn)程地址空間中,咱們就能共享這一片內(nèi)存,你寫的數(shù)據(jù)我能立即看到,我寫的你也能立即看到,雖然咱們各自讀寫的地址不同,但實際上是訪問的同一片物理內(nèi)存頁面,比管道和消息隊列效率高多了!

不過為了防止咱們一起讀寫發(fā)生沖突,需要配合信號量一起使用,用它來實現(xiàn)進(jìn)程間同步。具體的使用方法如下:············盼速回!

瘦子進(jìn)程看完,心中大喜!趕緊通過消息隊列發(fā)了一封回信。隨后,通過老大交代的方法開始操作起來,打開共享、映射掛載一氣呵成。再接著,將數(shù)據(jù)一股腦兒寫到了共享的內(nèi)存頁面中。大功告成之后,便退出了進(jìn)程,按照計劃準(zhǔn)備撤退,卻不見了胖子的蹤跡,既無進(jìn)程也無文件。“這家伙難道拋下我一個人跑了?”正想著,突然“嗡”的一聲,瘦子的程序文件也沒了。卻看那文件目錄之下,只留了一卷《Linux進(jìn)程間通信手冊》···

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6184

    瀏覽量

    137504
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11479

    瀏覽量

    213081
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9730

    瀏覽量

    87473
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3115

    瀏覽量

    75073

原文標(biāo)題:就很突然,電腦里多出了一個文件......

文章出處:【微信號:sztonyu,微信公眾號:深圳東裕光大】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統(tǒng)中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務(wù),如管理文件和目錄、操作進(jìn)程、網(wǎng)絡(luò)通信、軟件安裝等。
    的頭像 發(fā)表于 05-03 18:08 ?1004次閱讀

    Linux后臺進(jìn)程管理詳解

    當(dāng)我們在終端或控制臺工作時,可能不希望由于運行一個作業(yè)而占住了屏幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對于密集訪問磁盤的進(jìn)程,我們更希望它能夠在每天的非負(fù)荷高峰時間段運行(例如凌晨)。為了使這些進(jìn)程能夠在后臺運行,也就是說不在終端屏幕上運行,有幾種選擇方法可
    的頭像 發(fā)表于 04-25 11:04 ?310次閱讀
    <b class='flag-5'>Linux</b>后臺<b class='flag-5'>進(jìn)程</b>管理詳解

    Linux系統(tǒng)進(jìn)程管理入門指南

    Linux 系統(tǒng)中,進(jìn)程是正在運行的程序的實例。理解進(jìn)程的管理、查看和控制對于系統(tǒng)管理員和開發(fā)者來說非常重要
    的頭像 發(fā)表于 04-22 14:34 ?338次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>進(jìn)程</b>管理入門指南

    Linux系統(tǒng)中通過預(yù)留物理內(nèi)存實現(xiàn)ARM與FPGA高效通信的方法

    管理子系統(tǒng)管理。因此,需要預(yù)留一部分物理內(nèi)存,使其不被內(nèi)核管理。接下來將為大家詳細(xì)介紹Linux 系統(tǒng)中通過預(yù)留物理內(nèi)存實現(xiàn) ARM 與 FPGA 高效通信的方法,預(yù)留物理內(nèi)存包括
    的頭像 發(fā)表于 04-16 13:42 ?598次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)中通過預(yù)留物理內(nèi)存實現(xiàn)ARM與FPGA高效<b class='flag-5'>通信</b>的方法

    Linux進(jìn)程狀態(tài)詳解

    進(jìn)程狀態(tài)是task_struct內(nèi)的一個整數(shù);進(jìn)行:進(jìn)程在調(diào)度隊列中,進(jìn)程的狀態(tài)都是running,阻塞:等待某種設(shè)備或者資源就緒。進(jìn)程是一個隊列,設(shè)備也是一個隊列,當(dāng)我們讀磁盤,讀網(wǎng)
    的頭像 發(fā)表于 04-01 09:46 ?345次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>進(jìn)程</b>狀態(tài)詳解

    STM32雙核H7核如何通信

    STM32雙核H7核通信的方法,主要是CM7和CM4之間如何進(jìn)行數(shù)據(jù)傳遞
    發(fā)表于 03-12 07:34

    分享!基于NXP i.MX 8M Plus平臺的OpenAMP核通信方案

    在嵌入式系統(tǒng)領(lǐng)域,隨著技術(shù)不斷發(fā)展,對于系統(tǒng)性能和功能要求日益提高。核通信作為提升系統(tǒng)整體效能的關(guān)鍵技術(shù),成為了關(guān)注焦點。今天,我們和大家分享一個OpenAMP非對稱架構(gòu)核通信方案
    的頭像 發(fā)表于 02-27 10:44 ?454次閱讀
    分享!基于NXP i.MX 8M Plus平臺的OpenAMP核<b class='flag-5'>間</b><b class='flag-5'>通信</b>方案

    深入解析Linux程序與進(jìn)程

    什么是程序 一組計算機能識別和執(zhí)行的指令,用于指導(dǎo)計算機執(zhí)行特定任務(wù)或解決特定問題。程序通常由代碼、數(shù)據(jù)和資源文件組成,涉及語法、算法和數(shù)據(jù)結(jié)構(gòu)。為二進(jìn)制文件 什么是進(jìn)程 是一個具有獨立功能的程序
    的頭像 發(fā)表于 12-18 11:01 ?430次閱讀
    深入解析<b class='flag-5'>Linux</b>程序與<b class='flag-5'>進(jìn)程</b>

    深入Linux進(jìn)程管理:提升效率與穩(wěn)定性的關(guān)鍵方法

    基本概述 2.進(jìn)程狀態(tài) 3.進(jìn)程優(yōu)先級 4.進(jìn)程命令 5. 控制作業(yè) 6.進(jìn)程通信 7.使用信
    的頭像 發(fā)表于 11-22 11:05 ?718次閱讀
    深入<b class='flag-5'>Linux</b><b class='flag-5'>進(jìn)程</b>管理:提升效率與穩(wěn)定性的關(guān)鍵方法

    一文搞懂Linux進(jìn)程的睡眠和喚醒

    ): 進(jìn)程在等待某個條件滿足(如I/O操作),可以被信號喚醒。 Linux通過內(nèi)核提供的系統(tǒng)調(diào)用來控制進(jìn)程的睡眠。常用的系統(tǒng)調(diào)用有: sleep(): 使進(jìn)程暫停指定的秒數(shù)。 usl
    發(fā)表于 11-04 15:15

    Linux網(wǎng)絡(luò)基礎(chǔ)知識總結(jié)

    同 CPU、內(nèi)存以及 I/O 一樣,網(wǎng)絡(luò)也是 Linux 系統(tǒng)最核心的功能。 網(wǎng)絡(luò)是一種把不同計算機或網(wǎng)絡(luò)設(shè)備連接到一起的技術(shù),它本質(zhì)上是一種進(jìn)程通信方式,特別是跨系統(tǒng)的
    的頭像 發(fā)表于 10-28 10:42 ?614次閱讀
    <b class='flag-5'>Linux</b>網(wǎng)絡(luò)基礎(chǔ)知識總結(jié)

    Linux lsof命令的基本用法

    linux 系統(tǒng)中,一切皆文件。通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。所以 lsof 命令不僅可以查看進(jìn)程打開的文件、目錄,還可以查看進(jìn)程監(jiān)聽的端口等 socket 相關(guān)的信息。本文將
    的頭像 發(fā)表于 10-23 11:52 ?1177次閱讀
    <b class='flag-5'>Linux</b> lsof命令的基本用法

    Linux用戶身份與進(jìn)程權(quán)限詳解

    在學(xué)習(xí) Linux 系統(tǒng)權(quán)限相關(guān)的主題時,我們首先關(guān)注的基本都是文件的 ugo 權(quán)限。ugo 權(quán)限信息是文件的屬性,它指明了用戶與文件之間的關(guān)系。但是真正操作文件的卻是進(jìn)程,也就是說用戶所擁有的文件
    的頭像 發(fā)表于 10-23 11:41 ?724次閱讀
    <b class='flag-5'>Linux</b>用戶身份與<b class='flag-5'>進(jìn)程</b>權(quán)限詳解

    深入探討Linux進(jìn)程調(diào)度器

    Linux操作系統(tǒng)作為一個開源且廣泛應(yīng)用的操作系統(tǒng),其內(nèi)核設(shè)計包含了許多核心功能,而進(jìn)程調(diào)度器(Scheduler)就是其中一個至關(guān)重要的模塊。進(jìn)程調(diào)度器負(fù)責(zé)決定在任何給定的時刻哪個進(jìn)程
    的頭像 發(fā)表于 08-13 13:36 ?1228次閱讀
    深入探討<b class='flag-5'>Linux</b>的<b class='flag-5'>進(jìn)程</b>調(diào)度器

    工業(yè)控制設(shè)備主要有哪些有線通信技術(shù)?

    ? ? ? 工業(yè)控制設(shè)備的有線通信技術(shù)是實現(xiàn)工業(yè)自動化和智能制造的關(guān)鍵技術(shù)之一。隨著工業(yè)4.0和智能制造的快速發(fā)展,工業(yè)控制設(shè)備通信技術(shù)也在不斷地更新和升級。以下是對工業(yè)控制設(shè)備
    的頭像 發(fā)表于 06-23 16:38 ?1419次閱讀
    主站蜘蛛池模板: 亚洲精品老司机综合影院 | 又粗又长又大真舒服好爽漫画 | 国产福利乳摇在线播放 | 亚洲成人黄色 | 一色屋成人免费精品网站 | 一级做α爰片久久毛片 | 色五夜婷婷 | 激情六月丁香婷婷 | 在线另类| 日韩高清特级特黄毛片 | 在线麻豆国产传媒60在线观看 | 成人久久网站 | 被啪漫画羞羞漫画 | 免费播放黄色 | 男人天堂资源网 | 五月天婷婷在线播放 | 亚洲伊人久久大香线蕉影院 | 国产精品1区2区3区 国产精品1区2区3区在线播放 | 亚洲在线a | 精品一区二区三区免费毛片爱 | cijilu刺激 国产免费的 | 看片久久| 天堂网www在线观看 天堂网www在线资源中文 | 天天色天天射天天操 | 婷婷在线观看香蕉五月天 | 国产一区二区丁香婷婷 | 美女扒开尿囗给男生桶爽 | 亚洲淫视频 | 日本三区四区免费高清不卡 | 午夜视频高清在线aaa | 看全色黄大色大片免费 | 成人sese| 日本不卡在线视频 | 欧美人与动性行为网站免费 | 手机看高清特黄a大片 | 国产精品美女一级在线观看 | 午夜视频免费看 | 日本5级床片全免费 | 性色a| 午夜精品久视频在线观看 | 正在播放亚洲一区 |