a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

深入理解Linux內存映射機制 (1)

發布時間:  2012/8/15 18:17:27

一. 緒 論
二. X86的硬件尋址方法
三. 內核對頁表的設置
四. 實例分析映射機制

一. 緒 論
我們經常在程序的反匯編代碼中看到一些類似0x32118965這樣的地址,操作系統中稱為線性地址,或虛擬地址。虛擬地址有什么用?虛擬地址又是如何轉換為物理內存地址的呢?本章將對此作一個簡要闡述。
1.1 Linux內存尋址概述
現代意義上的操作系統都處于32位保護模式下。每個進程一般都能尋址4G的物理空間。但是我們的物理內存一般都是幾百M,進程怎么能獲得4G的物理空間呢?這就是使用了虛擬地址的好處,通常我們使用一種叫做虛擬內存的技術來實現,因為可以使用硬盤中的一部分來當作內存使用。例外一點現在操作系統都劃分為系統空間和用戶空間,使用虛擬地址可以很好的保護內核空間被用戶空間破壞。
對于虛擬地址如何轉為物理地址,這個轉換過程有操作系統和CPU共同完成. 操作系統為CPU設置好頁表。CPU通過MMU單元進行地址轉換。
1.2 瀏覽內核代碼的工具
現在的內核都很大, 因此我們需要某種工具來閱讀龐大的源代碼體系,現在的內核開發工具都選用vim ctag cscope瀏覽內核代碼,網上已有現成的makefile文件用來生成ctags/cscope/etags。
一、用法:
找一個空目錄,把附件Makefile拷貝進去。然后在該目錄中選擇性地運行如下make命令:
$ make
將處理/usr/src/linux下的源文件,在當前目錄生成ctags, cscope
注:SRCDIR用來指定內核源代碼目錄,如果沒有指定,則缺省為/usr/src/linux/
1) 只創建ctags
$ make SRCDIR=/usr/src/linux-2.6.12/ tags
2) 只創建cscope
$ make SRCDIR=/usr/src/linux-2.6.12/ cscope
3) 創建ctags和cscope
$ make SRCDIR=/usr/src/linux-2.6.12/
4) 只創建etags
$ make SRCDIR=/usr/src/linux-2.6.12/ TAGS

二、處理時包括的內核源文件:
1) 不包括drivers,sound目錄
2) 不包括無關的體系結構目錄
3) fs目錄只包括頂層目錄和ext2,proc目錄

三、最簡單的ctags命令
1) 進入
進入vim后,用
:tag func_name
跳到函數func_name
2) 看函數(identifier)
想進入光標所在的函數,用
CTRL ]
3) 回退
回退用 CTRL T

1.3 內核版本的選取
本次論文分析, 我選取的是linux-2.6.10版本的內核。最新的內核代碼為2.6.25。但是現在主流的服務器都使用的是RedHat AS4的機器,它使用2.6.9的內核。我選取2.6.10是因為它很接近2.6.9,現在紅帽企業Linux 4以Linux2.6.9內核為基礎,是最穩定、最強大的商業產品。在2004年期間,Fedora等開源項目為Linux 2.6內核技術的更加成熟提供了一個環境,這使得紅帽企業 Linux v.4內核可以提供比以前版本更多更好的

功能和算法,具體包括:
• 通用的邏輯CPU調度程序:處理多內核和超線程CPU。
• 基于對象的逆向映射虛擬內存:提高了內存受限系統的性能。
• 讀復制更新:針對操作系統數據結構的SMP算法優化。
• 多I/O調度程序:可根據應用環境進行選擇。
• 增強的SMP和NUMA支持:提高了大型服務器的性能和可擴展性。
• 網絡中斷緩和(NAPI):提高了大流量網絡的性能。
Linux 2.6 內核使用了許多技術來改進對大量內存的使用,使得 Linux 比以往任何時候都更適用于企業。包括反向映射(reverse mapping)、使用更大的內存頁、頁表條目存儲在高端內存中,以及更穩定的管理器。因此,我選取linux-2.6.10內核版本作為分析對象。

 

二. X86的硬件尋址方法
請參考Intel x86手冊^_^

 

三. 內核對頁表的設置
CPU做出映射的前提是操作系統要為其準備好內核頁表,而對于頁表的設置,內核在系統啟動的初期和系統初始化完成后都分別進行了設置。
3.1 與內存映射相關的幾個宏
這幾個宏把無符號整數轉換成對應的類型
#define __pte(x) ((pte_t) { (x) } )
#define __pmd(x) ((pmd_t) { (x) } )
#define __pgd(x) ((pgd_t) { (x) } )
#define __pgprot(x) ((pgprot_t) { (x) } )

根據x把它轉換成對應的無符號整數
#define pte_val(x) ((x).pte_low)
#define pmd_val(x) ((x).pmd)
#define pgd_val(x) ((x).pgd)
#define pgprot_val(x) ((x).pgprot)

把內核空間的線性地址轉換為物理地址
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)

把物理地址轉化為線性地址
#define __va(x) ((void *)((unsigned long)(x) PAGE_OFFSET))

x是頁表項值, 通過pte_pfn得到其對應的物理頁框號, 最后通過pfn_to_page得到對應的物理頁描述符
#define pte_page(x) pfn_to_page(pte_pfn(x))

如果對應的表項值為0, 返回1
#define pte_none(x) (!(x).pte_low)

x是頁表項值, 右移12位后得到其對應的物理頁框號
#define pte_pfn(x) ((unsigned long)(((x).pte_low >> PAGE_SHIFT)))
根據頁框號和頁表項的屬性值合并成一個頁表項值
#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))

根據頁框號和頁表項的屬性值合并成一個中間表項值
#define pfn_pmd(pfn, prot) __pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot))

向一個表項中寫入指定的值
#define set_pte(pteptr, pteval) (*(pteptr) = pteval)
#define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval)
#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
#define set_pgd(pgdptr, pgdval) (*(pgdptr) = pgdval)

根據線性地址得到高10位值, 也就是在目錄表中的索引
#define pgd_index(address) (((address)>>PGDIR_SHIFT) & (PTRS_PER_PGD-1))

根據頁描述符和屬性得到一個頁表項值
#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
3.2內核頁表的初始化
內核在進入保護模式前, 還沒有啟用分頁功能, 在這之前內核要先建立一個臨時內核

億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
   聯系:億恩小凡
   QQ:89317007
   電話:0371-63322206


本文出自:億恩科技【www.ibaoshan.net】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    欧美性爱视频第一页| 中文在线А√天堂官网| 两个奶被揉的又硬又翘是怎么回事| 纯肉无遮挡H肉动漫在线观看3D| 亚洲欧美日韩综合久久久| 人妻无码中文字幕免费视频蜜桃| 精品AV综合一区二区三区| 波多野结衣初尝黑人巨大| 亚洲欧美中文日韩V在线观看 | 你的棒棒可以桶桶我的下水道| 国产极品熟女沙发内射AV| 中国熟妇毛多多裸交视频| 无码人妻久久久久一区二区三区91 | 亚洲国产精品无码久久九九大片| 人妻插B视频一区二区三区| 极品少妇被啪到呻吟喷水| 边做饭边被躁欧美三级| 亚洲色偷偷综合亚洲av伊人| 色窝窝无码一区二区三区色欲| 久久久久亚洲AV无码专区首页网| 国产CHINESE男男GAYGAY网站| 中文在线天堂А√在线| 校园H学长含着粉嫩小奶| 欧美亚洲精品中文字幕乱码| 精东传媒一二三区进站口| 成人性生交大片免费看中文| 亚洲熟妇AV一区二区三区漫画 | 国色天香卡一卡二乱码| 被老外做的下身都肿了| 亚洲性色成人AV天堂| 私密按摩高潮熟女啪啪| 免费无码不卡视频在线观看| 国精产品W灬源码1688伊| 把腿张开老子臊烂你的动漫| 亚洲婷婷五月激情综合APP| 少妇人妻陈艳和黑人教练| 免费国产无人区码卡二卡3卡| 国产无遮挡无码很黄很污很刺激| YELLOW免费观看高清在线| 亚洲日韩乱码中文无码蜜桃| 色欲AⅤ蜜臀AV免费观看 | 亚洲欧美乱日韩乱国产| 少妇高潮叫床在线播放| 美女又大又黄WWW免费网站| 国产性生交XXXXX免费| 草莓视频APP无限观看| 伊人久久大香线蕉亚洲| 亚精区在二线三线区别99| 日本MACBOOKPRO高清| 久久丫精品国产亚洲AV不卡| 国产狂喷水潮免费网站WWW| 爱丫爱丫影院在线| 亚洲一区无码中文字幕| 乌鸦传媒一二三区| 欧美乱强伦XXXXXXXXXX| 久久99老妇伦国产熟女高清| 国产成人亚洲精品无码MP4| 99久久无色码中文字幕人妻蜜柚| 亚洲精品乱码久久久久66| 人妻av一区二区三区| 久久婷婷成人综合色综合| 国产免费AV一区二区三区| 成年女人毛片免费视频喷潮| 中国CHINESE老熟女| 亚洲成AV人片无码天堂下载| 少妇人妻14页_麻花色| 女人张开腿扒开内裤让男生桶 | 精品国产乱码久久久久久蜜桃网站 | 成人综合婷婷国产精品久久| 中文国产成人精品久久APP| 亚洲产国偷v产偷v自拍浪潮AV| 色一乱一伦一图一区二区精品| 女高中生自慰污污网站| 禁18在线观看免费网站| 国产成人A在线观看视频免费| JAPANESEHD无码专区| 一面亲上边一面膜下边56| 亚洲AV无码传区国产乱码O| 色综合久久蜜芽国产精品| 欧美成人一区二区| 久久青草免费福利资源站| 国内精品久久久久久久97牛牛| 跟40岁的少妇做一次就不硬了| JAVAPARSERHD夫妻| 在线观看国产成人AⅤ天堂| 亚洲乱码无人区卡1卡2卡3| 西西人体444WWW高清大胆| 少妇高清一区二区免费看 | 国产精品久久久久久久影院| 成年轻人电影免费 视频| 14表妺好紧没带套18分钟| 亚洲午夜无码片在线观看影院百度| 小嫩妇里面又嫩又紧| 天堂8在线新版官网| 日本亚洲色大成网站WWW久久| 女人呻吟声大了男人越有劲吗| 久久无码中文字幕免费影院| 姬小满开叉裙穿搭注意事项| 国产男男Gay做受ⅩXX高潮| 公车上双乳被老汉揉搓玩弄漫画| 拔萝卜视频免费观看高清下载| 综合亚洲另类欧美久久成人精品 | 亚洲AⅤ天堂无码专区| 日韩AV无码AV免费AV不卡| 欧美裸体XXXX| 巨熟乳波霸若妻在线播放| 狠狠色丁香久久婷婷综合_中| 国产精品久久久久久超碰| 办公室的秘密2中文字幕| 中文人妻熟妇乱又伦精品| 亚洲国产精品久久艾草纯爱| 为什么穿裙子方便打野| 日本农村大姐RAPPER| 免费观看电视在线高清| 精品一区二区三区在线成人| 国精一二三区别免费| 国产精品毛片无遮挡| 大黑大巴大战欧洲美女图片| FREE性欧美高清VIDEOS| 中文无码AV电影在线观看网站| 亚洲精品无码永久在线观看男男| 天堂资源在线官网| 欧美人妻一区二区三区| 久久综合九色综合欧美| 精品国产AⅤ一区二区三区V免费 | 一二三四视频中文字幕| 亚洲国产成人精品无码区在线观看 | 国产在线精品99一区不卡| 成人动漫在线观看| AAA少妇高潮大片免费看| 在线成本人国语视频动漫| 亚洲人成色A777777在线观| 亚洲AⅤ天堂无码专区| 玩弄JAPAN白嫩少妇HD小说| 色婷婷精品亚洲AⅤ| 全免费A级毛片免费看无码| 美女下部裸体张开腿视频| 久久精品亚洲精品无码金尊| 狠狠爱俺也去去就色| 国产精品日本一区二区不卡视频| 东北老熟女对白XXXⅩHD| А√天堂资源在线官网| 97精品伊人久久大香线蕉| 岳打开双腿开始配合交换| 亚洲中文无码人A∨在线导航| 亚洲GAY片在线GV网站| 小洁和公H文翁17| 糖心VLOG肉丝库水柚子猫| 色欲AV久久一区二区三区久 | 国产成人亚洲精品无码车A| 成人综合婷婷国产精品久久蜜臀| FREE东北熟女HD自拍| JAPANXXXXHDAV无码| 99大香伊乱码一区二区| 最新在线精品国产福利| 中国熟妇色XXXX欧美老妇多毛| 亚洲综合AV在线在线播放| 亚洲精品乱码久久久久久蜜桃图片 | 小东西好几天没弄了还能吃吗| 日本乱偷人妻中文字幕在线| 日本VPSWINDOWS怀孕| 漂亮人妻被中出中文字幕久久| 欧美大胆老熟妇乱子伦视频| 女人18毛片A级女人18水真多| 麻豆传播媒体APP大全免费版| 久久99成人精一区二区三区| 精品国品一二三产品区别在线观看 | 办公室欧美大尺寸SUV| Y1111111少妇影院| JAPANESEⅩⅩⅩHD日本| ALEXAGRACE大战黑人| 99久久免费国产精品| 最新精品国偷自产在线下载| 中国VODAFONE粗暴| 一边下奶一边吃面膜视频讲解图片| 亚洲人成色77777在线观看大| 亚洲人成网7777777国产| 亚洲精品国精品久久99热| 亚洲国产精品久久久久爰色欲| 亚洲 校园 欧美 国产 另类 | 午夜爽爽爽男女污污污网站| 午夜精品久久久久久久99热| 午夜DJ影院免费直播观看完整版| 无码人妻久久一区二区三区免费| 无码国产69精品久久久久孕妇| 太平公主秘史在线观看免费| 少妇性活BBBBBBBBB四川| 色婷婷精品久久二区二区蜜臀av| 肉感饱满中年熟妇日本| 色在线 | 国产| 舌头伸进去添的我好爽高潮欧美| 色哟哟最新在线观看入口| 少妇夜夜春夜夜爽试看视频| 色综合天天综合欧美综合| 熟妇人妻系列Av无码一区=区| 天干夜天干天天爽自慰| 玩弄三个高大的熟妇赶尸艳谈| 无码人妻精品一区二区蜜桃温柔乡 | 精品乱码一区二区三区av| 国自产拍偷拍精品啪啪模特|