色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從進程的角度看內存

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-30 18:02 ? 次閱讀

在windows下的可執行文件的格式為.exe,而Linux的下的是ELF。這是一種文件格式,就是告訴你文件是怎么存儲的。

整個ELF的圖看看

圖片

這些內容和內核空間定義也差不多。

代碼段(.text):程序源代碼編譯后的機器指令被存放在這個代碼段里。

數據段(.data):存放已初始化的全局變量和已初始化的局部靜態變量。

bss段(.bss):用來存放未初始化的全局變量以及未初始化的局部靜態變量。

寫一個程序,其實是依賴很多的其他的程序,因此自己寫的程序需要編譯鏈接后才能使用。

時起到輔助作用,暫時先不用關注它們。程序在編譯鏈接時會盡量把相同權限屬性的段分配在同一個空間里,例如,把可讀可執行的段放在一起,包括代碼段、init段等;把可讀可寫的段放在一起,包括.data段和.bss段等。ELF把這些屬性相似并且鏈接在一起的段叫作分段(Segment),進程在裝載時是按照這些分段來映射可執行文件的。

描述這些分段的結構叫作程序頭(Program Header),它描述了ELF文件是如何映射到進程地址空間的,這是我們比較關心的。

可以使用objdump或者readelf工具來查看ELF文件包含哪些段。

我們可以通過“readelf -l”命令來查看這些程序頭。

在看的時候主要關注LOAD類型的分段,其他的都是在LOAD的時候起到輔助作用。

這是都是靜態的。

在如果你想去看看靜態的,可以通過proc文件系統來看看Linux內核的運行情況。每個進程運行之后,在/proc/pid/maps節點會列出當前進程的地址映射情況。

圖片

第1行中顯示了地址0x10000~0x870000這段進程地址空間,它的屬性是只讀并且可執行的,由此我們知道它是代碼段,也就是之前看到的代碼段的程序頭。

第2行中顯示了地址0x96000~0x98000,它的屬性是可讀可寫的進程地址空間,也就是我們之前看到的數據段的程序頭。

第 3 行中顯示了地址0x98000~0xbb000,這段進程地址空間叫作堆空間(Heap),也就是通常使用malloc分配的內存,大小是140KB。test進程主要使用malloc分配100KB的內存,這里看到Linux內核會分配比100KB稍微大一點的內存空間。

第4行顯示test進程的棧(stack)空間。

第5行是Sigpage的進程地址空間,Sigpage是ARM體系結構中特有的頁面。

第6行是ARM中高端映射的異常向量(vectors)。

這里說的進程地址空間,在 Linux 內核中使用一個叫作 VMA的術語來描述,它是vm_area_struct數據結構的簡稱,在虛擬內存管理部分會詳細介紹它。另外,/proc/pid/smaps節點會提供更多的地址映射的細節,以代碼段的VMA和堆的VMA為例。

另外,/proc/pid/smaps節點會提供更多的地址映射的細節,以代碼段的VMA和堆的VMA為例。

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1381

    瀏覽量

    40364
  • Linux
    +關注

    關注

    87

    文章

    11336

    瀏覽量

    210100
  • 內存
    +關注

    關注

    8

    文章

    3047

    瀏覽量

    74207
  • 代碼
    +關注

    關注

    30

    文章

    4819

    瀏覽量

    68879
收藏 人收藏

    評論

    相關推薦

    Linux 內核的角度談線程棧和進程

    虛擬地址通過頁表(Page Table)映射到物理內存,頁表由操作系統維護,并被處理器的內存管理單元(MMU)硬件引用。 每個進程都擁有一套屬于它自己的頁表,因此對于每個進程而言都好像
    的頭像 發表于 09-25 15:23 ?2515次閱讀
    <b class='flag-5'>從</b> Linux 內核的<b class='flag-5'>角度</b>談線程棧和<b class='flag-5'>進程</b>棧

    如何EMI角度PCB layout 法規

    ` 如何EMI角度PCB layout 法規如何從EMI角度PCB Layout 法則有以下幾個重點Point 1: 先了解導線或傳輸線的幅射或天線效應 對應國際法規EMI幅射量
    發表于 02-19 18:36

    Linux上對進程進行內存分析和內存泄漏定位

    。(棧)5、采用mmap方式映射到虛擬地址空間中的內存段這是我的機器上,redis 進程的情況,第一行:r-xp可知其權限為只讀、可執行,該段內存地址對應于執行文件的代碼段,程序的代
    發表于 07-09 08:15

    架構的角度如何寫好代碼 + 我的思考

    架構漫談(八):架構的角度如何寫好代碼 + 我的思考
    發表于 06-18 06:16

    如何安全的角度自動駕駛

    安全的角度自動駕駛
    發表于 01-25 06:42

    步進電機驅動IC的角度步進電機

    步進電機驅動IC的角度步進電機,歸納相關知識點。一、單極性與雙極性電機: 單極性電機,由單極性IC驅動。其一端接Vcc,另一端由IC控制連接或斷開。 而雙極性電機,由雙極性IC驅動。雙端都由IC控制。二、單極性電機的內部結構
    發表于 08-31 06:31

    進程間通信之共享內存

    8.5.1 共享內存概述 可以說,共享內存是一種最為高效的進程間通信方式。因為進程可以直接讀寫內存,不需要任何數據的復制。為了在多個
    發表于 10-18 16:08 ?1次下載
    <b class='flag-5'>進程</b>間通信之共享<b class='flag-5'>內存</b>

    純粹軟件技術的角度Windows CE

    純粹軟件技術的角度Windows CE,則可以說Windows CE就是嵌入式的Windows,雖然Windows CE不是微軟唯一的一款嵌入式操作系統產品,但無疑是最有代表性的一款。在純粹技術的方面,Windows CE和
    的頭像 發表于 09-30 09:43 ?2581次閱讀
    <b class='flag-5'>從</b>純粹軟件技術的<b class='flag-5'>角度</b><b class='flag-5'>看</b>Windows CE

    編譯原理的角度C語言如何轉換成匯編語言的?

    編譯原理的角度C語言是如何轉換成匯編語言的?
    的頭像 發表于 02-25 15:52 ?2702次閱讀
    <b class='flag-5'>從</b>編譯原理的<b class='flag-5'>角度</b><b class='flag-5'>看</b>C語言如何轉換成匯編語言的?

    進程虛擬內存布局以及進程的虛擬內存分配釋放流程,涉及的代碼

    我們計劃通過一系列文章來介紹虛擬內存分配/釋放,缺頁處理,內存壓縮/回收,內存分配器等知識,梳理虛擬內存的管理。本章節結合代碼介紹進程虛擬
    的頭像 發表于 06-28 09:38 ?4190次閱讀

    鴻蒙內核源碼分析:進程是內核的資源管理單元

    系統的角度進程是資源管理單元。進程可以使用或等待CPU、使用內存空間等系統資源,并獨立于其
    發表于 11-24 17:52 ?23次下載
    鴻蒙內核源碼分析:<b class='flag-5'>進程</b>是內核的資源管理單元

    SMT焊接角度BGA封裝的優勢

    smt焊接的角度,BGA芯片的貼裝公差為0.3mm,比以往的QFP芯片的貼裝精度要求0.08mm要低得多。一般來講在小拇指大小甚至更小的空間上做SMT貼片打樣貼裝,那么更大的貼裝公差就意味著更高的可靠性和貼裝精度。
    的頭像 發表于 07-11 10:47 ?589次閱讀

    摩托車怎么就干不過小電驢了?線路板的角度差別

    摩托車怎么就干不過小電驢了?線路板的角度差別
    的頭像 發表于 10-30 16:06 ?580次閱讀

    軟件角度看看內存

    關于內存軟件的角度去查看,其實作為一個軟件程序員,大多數對這個維度的接觸還是蠻多的。linux中有個free命令,其就是查看系統內存的情況。 free命令的選項也比較簡單,常用的參
    的頭像 發表于 10-30 17:41 ?748次閱讀
    <b class='flag-5'>從</b>軟件<b class='flag-5'>角度</b>看看<b class='flag-5'>內存</b>

    線程、進程、多線程、多進程和多任務之間有何關系?

    進程是程序執行時的一個實例,即它是程序已經執行到課中程度的數據結構的匯集。內核的觀點進程的目的就是擔當分配系統資源(CPU時間、內存
    的頭像 發表于 01-11 13:39 ?389次閱讀
    線程、<b class='flag-5'>進程</b>、多線程、多<b class='flag-5'>進程</b>和多任務之間有何關系?
    主站蜘蛛池模板: 97精品国产高清在线看入口| 99热在线观看| 波野结衣qvod| 内射白嫩少妇超碰| 主播蜜汁丝袜精品自拍| 九九久久久| 亚洲人成网站在线播放| 黄色日本女人| 伊人免费在线| 恋夜秀场支持安卓版全部视频国产 | 国产精品你懂得| 玩弄人妻少妇500系列网址| 国产精品99久久久久久AV| 性色AV一区二区三区V视界影院| 国产精品久久久久久久久久免费 | 亚洲中文字幕无码爆乳APP| 久久99re66热这里只有精品| 一个人免费观看完整视频日本| 久久九九免费| 99RE6这里只有精品国产AV| 人妻美妇疯狂迎合| 国产极品白嫩超清在线观看 | 色聚网久久综合| 国产精品久久久久久久A片冻果| 午夜色情影院色a国产| 含羞草传媒在线观看| 伊人伊人影院| 欧美人妇无码精品久久| 国产成人久久精品AV| 亚洲精品成人| 毛篇片在线观看| 朝鲜女人性猛交| 驯服有夫之妇HD中字日本| 久久黄色大片| YELLOW在线观看高清视频免费| 同居了嫂子在线观看| 精品午夜久久福利大片免费| 99久久综合| 亚州天堂在线视频av| 伦理片天堂eeuss影院| 丰满人妻妇伦又伦精品APP国产|