日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

詳解Linux內核定義的常量

出處:互聯(lián)網    發(fā)布于:2011-09-04 13:44:48

   引言 

   操作系統(tǒng)是一個用來和硬件打交道并為用戶程序提供一個有限服務集的低級支撐軟件。一個計算機系統(tǒng)是一個硬件和軟件的共生體,它們互相依賴,不可分割。計算機的硬件,含有外圍設備、處理器、內存、硬盤和其他的電子設備組成計算機的發(fā)動機。但是沒有軟件來操作和控制它,自身是不能工作的。完成這個控制工作的軟件就稱為操作系統(tǒng),在Linux的術語中被稱為“內核”,也可以稱為“”。Linux內核的主要模塊(或組件)分以下幾個部分:存儲管理、CPU和進程管理、文件系統(tǒng)、設備管理和驅動、網絡通信,以及系統(tǒng)的初始化(引導)、系統(tǒng)調用等。今天我們要了解的是Linux內核定義的常量。希望能給大家?guī)韼椭?

    1 初始定義

  定義了你的機器上的地址轉換__virt_to_phys()。這個宏用于把虛擬地址轉換為一個物理地址。通常情況下:phys = virt - PAGE_OFFSET PHYS_OFFSET

  2 解壓縮符號

  l ZTEXTADDR

  解壓縮器的地址地址。由于當你調用解壓縮器代碼時,通常關閉MMU,因此這里并不討論虛擬地址和物理地址的問題。通常你在這個地址處調用內核,開始引導內核。它不需要在RAM中,只需要位于FLASH或其他只讀或讀/寫的可尋址的存儲設備中。

  l ZBSSADDR

  解壓縮器的初始化為0的工作區(qū)的起始地址。必須位于RAM中,解壓縮器會替你把它初始化為0,此外,需要關閉MMU。

  l ZRELADDR

  解壓縮內核將被寫入的地址和終的執(zhí)行地址。必須滿足:

  __virt_to_phys(TEXTADDR) == ZRELADDR

  內核的開始部分被編碼為與位置無關的代碼。

  l INITRD_PHYS

  放置初始RAM盤的物理地址。僅當你使用bootpImage時相關(這是一種非常老的param_struct結構)

  l INITRD_VIRT

  初始RAM盤的虛擬地址。必須滿足:

  __virt_to_phys(INITRD_VIRT) == INITRD_PHYS

  l PARAMS_PHYS

  param_struct 結構體或tag lis的物理地址,用于給定內核執(zhí)行環(huán)境下的不同參數(shù)。

  3 內核符號

  l PHYS_OFFSET

  RAM個BANK的物理地址地址。

  l PAGE_OFFSET

  RAM個BANK的虛擬地址地址。在內核引導階段,虛擬地址PAGE_OFFSE將被映射為物理地址PHYS_OFFSET,它應該與TASK_SIZE具有相同的值。

  l TASK_SIZE

  一個用戶進程的值,單位為byte。用戶空間的堆棧從這個地址處向下增長。

  任何一個低于TASK_SIZE的虛擬地址對用戶進程來說都是不可見的,因此,內核通過進程偏移對每個進行進行動態(tài)的管理。我把這叫做用戶段。任何高于TASK_SIZE的對所有進程都是相同的,稱之為內核段。(換句話說,你不能把IO映射放在低于TASK_SIZE和PAGE_OFFSET的位置處。)

  l TEXTADDR

  內核的虛擬起始地址,通常為PAGE_OFFSET 0x8000。內核映射必須在此結束。

  l DATAADDR

  內核數(shù)據(jù)段的虛擬地址,不能在使用解壓縮器的情況下定義。

  l VMALLOC_START

  l VMALLOC_END

  用于限制vmalloc( )區(qū)域的虛擬地址。此地址必須位于內核段。 通常,vmalloc( )區(qū)域在的虛擬RAM地址以上開始VMALLOC_OFFSET字節(jié)。

  l VMALLOC_OFFSET

  Offset normally incorporated into VMALLOC_START to provide a hole between virtual RAM and the vmalloc area. We do this to allow out of bounds memory accesses (eg, something writing off the end of the mapped memory map) to be caught. Normally set to 8MB.

  4 構架相關的宏

  l BOOT_MEM(pram,pio,vio)

  pram——指定了RAM起始的物理地址,必須始終存在,并應等于PHYS_OFFSET。

  pio——是供arch/arm/kernel/debug-armv.S中的調試宏使用的,包含IO的8 MB區(qū)域的物理地址。

  vio——是8MB調試區(qū)域的虛擬地址。

  這個調試區(qū)域將被位于代碼中(通過MAPIO函數(shù))的隨后的構架相關代碼再次進行初始化。

  l BOOT_PARAMS

  參見 PARAMS_PHYS.

  l FIXUP(func)

  機器相關的修正,在存儲子系統(tǒng)被初始化前運行。

  l MAPIO(func)

  機器相關的函數(shù),用于IO區(qū)域的映射(包括上面的調試區(qū))。

  l INITIRQ(func)

  用于初始化中斷的機器相關的函數(shù)。

  5 關于Linux內核

  Linux是的自由電腦操作系統(tǒng)內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。Linux早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構上提供自由的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,在計劃的早期有一些Minix 黑客提供了協(xié)助,而今天無數(shù)程序員正在為該計劃無償提供幫助。 技術上說Linux是一個內核。“內核”指的是一個提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務等功能的系統(tǒng)軟件。一個內核不是一套完整的操作系統(tǒng)。一套基于Linux內核的完整操作系統(tǒng)叫作Linux操作系統(tǒng),或是GNU/Linux。

  5.1 架構

  Linux是一個一體化內核(monolithic kernel)系統(tǒng)。設備驅動程序可以完全訪問硬件。Linux內的設備驅動程序可以方便地以模塊化(modularize)的形式設置,并在系統(tǒng)運行期間可直接裝載或卸載。

  5.2 可移植性

  盡管Linus Torvalds的初衷不是使Linux成為一個可移植的操作系統(tǒng),今天的Linux卻是被廣泛移植的操作系統(tǒng)內核。從掌上電腦iPaq到巨型電腦IBM S/390,甚至于微軟出品的游戲機XBOX都可以看到Linux內核的蹤跡。Linux也是IBM超級計算機Blue Gene的操作系統(tǒng)。

  5.3 發(fā)表形式

  原先Linus Torvalds將Linux置于一個禁止任何商業(yè)行為的條例之下,但之后改用GNU通用公共許可證第二版。該協(xié)議允許任何人對軟件進行修改或發(fā)行,包括商業(yè)行為,只要其遵守該協(xié)議,所有基于Linux的軟件也必須以該協(xié)議的形式發(fā)表,并提供源代碼。   

    Linus Torvalds曾經公開聲稱將Linux置于GNU通用公共許可證之下是他一生中所做的“的決定”。



  

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://hbjingang.com,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯(lián)系,否則視為放棄相關權利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經采納,將有感恩紅包奉上哦!