成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關注微信公眾號

解讀和分析Linux核心源碼的兩種方法
2007-03-08   中國IT實驗室

方法之二:以程序流程為線索,一線串珠

從表面上看,Linux的源碼就象一團扎亂無章的亂麻,其實它是一個組織得有條有理的蛛網。要把整個結構分析清楚,除了找出線頭,還得理順各個部分之間的關系,有條不紊的一點一點的分析。

所謂以程序流程為線索、一線串珠,就是指根據程序的執行流程,把程序執行過程所涉及到的代碼分析清楚。這種方法最典型的應用有兩個:一是系統的初始化過程;二是應用程序的執行流程:從程序的裝載,到運行,一直到程序的退出。

為了簡便起見,遵從循序漸進的原理,現就系統的初始化過程來具體的介紹這種方法。系統的初始化流程包括:系統引導,實模式下的初始化,保護模式下的初始化共三個部分。下面將一一介紹。

Linux系統的常見引導方式有兩種:Lilo引導和Loadin引導;同時linux內核也自帶了一個bootsect-loader。由于它只能實現linux的引導,不像前兩個那樣具有很大的靈活性(lilo可實現多重引導、loadin可在dos下引導linux),所以在普通應用場合實際上很少使用bootsect-loader。當然,bootsect-loader也具有它自己的優點:短小沒有多余的代碼、附帶在內核源碼中、是內核源碼的有機組成部分,等等。

bootsect-loader在內和源碼中對應的程序是 /Arch/i386/boot/bootsect.S 。下面將主要是針對此文件進行的分析。

幾個相關文件:

  
  <1> /Arch/i386/boot/bootsect.S 
  
  <2> /include/linux/config.h 
  
  <3> /include/asm/boot.h 
  
  <4> /include/linux/autoconf.h

  

引導過程分析:

對于Intel x86 PC , 開啟電源后, 機器就會開始執行ROM BIOS的一系列系統測試動作,包括檢查RAM,keyboard,顯示器,軟硬磁盤等等。執行完bios的系統測試之后,緊接著控制權會轉移給ROM中的啟動程序(ROM bootstrap routine);這個程序會將磁盤上的第0軌第0扇區(叫boot sector或MBR ,系統的引導程序就放在此處)讀入內存中,并放到自0x07C0:0x0000開始的512個字節處;然后處理機將跳到此處開始執行這一引導程序;也即裝入MBR中的引導程序后, CS:IP = 0x07C0:0x0000 。加電后處理機運行在與8086相兼容的實模式下。

如果要用bootsect-loader進行系統引導,則必須把bootsect.S編譯連接后對應的二進制代碼置于MBR; 當ROM BIOS 把bootsect.S編譯連接后對應的二進制代碼裝入內存后,機器的控制權就完全轉交給bootsect; 也就是說,bootsect將是第一個被讀入內存中并執行的程序。

熱詞搜索:

上一篇:解讀和分析Linux核心源碼的兩種方法 1
下一篇:LINUX常用的系統狀態查詢命令

分享到: 收藏
主站蜘蛛池模板: 江湖大风暴| 许天奇个人资料| 廖君| 护士诱惑| 北京卫视今日电视剧| 暗恋桃花源剧本| 殴美影院| 孕妇照几个月拍最好| 肢体的诱惑电影| 人民的名义电视剧免费版| 青蛙王子 电影| 永远少年电影免费播放| 艾娜| 安泽豪个人资料| 李顺大造屋| trainspotting| 韩国电影《爱欲》| 山楂树之恋35集免费观看电视剧| 肥皂泡节选阅读理解答案三年级| 抗日电影免费| 玛丽与魔女之花| 蜡笔小新日语| 乱世伦情 电影| 电影疯狂| 动漫秀场| 明日战记| 下海 电视剧| 谭咏麟个人资料简介| 基兰·拉奥| 夏的词语| 鸡毛信电影| 五亿探长雷洛传| 天机太阴在命宫| 恶搞之家第2季| 迷失之城剧情介绍| 宝力龟龟| 电视剧暗夜与黎明剧情介绍| 回到十八岁| 田中敦子| 暖男电视剧30集全集免费| 日本无毛|