成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

闡述Linux內核里面的APIC編程

運維 系統運維
微軟操作系統的火熱,你是在應用Linux操作系統么?如果你是Linux操作系統的老用戶。 這里為你講解的問題會對Linux內核里面的APIC編程有所幫助。Linux內核的名字也是“Linux”。

微軟操作系統的火熱,你是在應用Linux操作系統么?如果你是Linux操作系統的老用戶。 這里為你講解的問題會對Linux內核里面的APIC編程有所幫助。Linux內核的名字也是“Linux”。APIC就是高級PIC咯,高級可編程中斷控制器。現在的多核系統上面每個cpu對應一個localapic,就是用來管理中斷的,包括外部中斷和cpu內部中斷等。

1、apic的具體原理和規范,可以看“Intel?64andIA-32ArchitecturesSoftwareDeveloper'sManualVolume3A:SystemProgrammingGuide”上的第十章“TheAdvancedProgrammableInterruptController(APIC)“

2、關于APIC在BIOS里面的初始化,大概是BIOS會初始化好APIC,然后提供一張APIC表cpu表給要啟動的系統使用吧。在ntel?64andIA-32ArchitecturesSoftwareDeveloper'sManualVolume3A:SystemProgrammingGuide的第8章“MULTIPLE-PROCESSORMANAGEMENT”第9章“PROCESSORMANAGEMENTANDINITIALIZATION”有詳細介紹“”。也可以繼續看標準文檔“ACPIspec40”“IntelMultiprocessorSpecification”上面關于那個表的描述。

3、網上國人寫個這篇文章也非常不錯,他整理了上面的文檔和Linux相關的代碼。我也只是發現APIC的這個文檔而已,和APIC相關的文檔還是比較少吧。
“InterruptinLinux(硬件篇)——細節、實現,與疑問Author:ZX_WING(xing5820@163.com)”

4、內核代碼
http://lxr.linux.no/#linux+v2.6.30.5/arch/x86/kernel/apic/apic.c
http://lxr.linux.no/#linux+v2.6.30.5/arch/x86/kernel/mpparse.c
等都是相關的,可以結合上面說的那個文檔和系統啟動時的輸出看一下,啟動時輸出的ACPI,apicid,processor那些的都是系統初始化apic的時候打印輸出的。
在內核參數加上apic=debug可能看到更詳細的輸出。

5、自己的驅動需要設置控制apic的時候,也可以使用系統里面定義的那些函數咯。在這里有很多函數聲明,也可以去看一下具體是怎么作的
http://lxr.linux.no/#linux+v2.6.30.5/arch/x86/include/asm/apic.h
這里有很多宏的定義,都是和apic的配置有關的,可以對應看一下intel的文檔。
http://lxr.linux.no/#linux+v2.6.30.5/arch/x86/include/asm/apicdef.h

比如KDB就是用ipi(cpu內部中斷)的函數來禁止其他cpu的

void(*send_IPI_allbutself)(intvector);
void(*send_IPI_all)(intvector);
void(*send_IPI_self)(intvector);

而一般的apic都是通過下面這兩個函數來進行的

apic_wait_icr_idle();
apic_write_around(APIC_ICR2,SET_APIC_DEST_FIELD(x86_cpu_to_apicid[i]));
apic_write(APIC_ICR,icr);//寫ICR寄存器,產生ipi中斷

x86_cpu_to_apicid是系統導出的一個獲取物理apicid的變量,不過不同的內核版本里面實現有點不同,可以看具體的代碼。apicid是區分每個apic的標志了,也用于區分不同的processor的。

希望通過本文的介紹你能學會Linux內核里面的APIC編程。

【編輯推薦】

  1. 教會你輕松Linux網卡安裝
  2. 實例講解Linux以太網卡的安裝及配置
  3. 全面了解Linux網卡的工作原理
  4. 你了解Linux系統開機知識么?
  5. 教會你Linux操作系統實現email和fax的互轉互發
責任編輯:小霞 來源: 中國水利水電出版社
相關推薦

2009-12-01 09:51:50

備份Linux內核

2010-01-11 09:28:34

C++編程

2009-12-09 14:15:39

2010-03-10 14:48:24

2009-12-02 14:09:52

2009-12-14 10:47:34

Linux makef

2009-11-30 10:54:59

solaris命令

2009-12-10 10:25:12

Linux觸摸屏驅動

2009-12-14 13:14:57

2009-12-21 14:33:11

2009-12-01 18:41:08

SUSE Linux

2009-12-22 15:12:33

Linux擴展文件系統

2009-12-23 10:50:57

Linux chmod

2009-12-25 17:15:03

Linux內存

2010-01-13 15:51:44

C++編程語言

2010-01-11 10:01:25

C++的編程工具

2009-12-17 09:56:26

Linux添加驅動模塊

2010-01-07 14:39:37

Linux配置遠程桌面

2009-12-11 10:02:46

Linux內存管理

2009-12-16 15:59:13

Linux設備文件管理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色成人免费在线观看 | 精品国产一区久久 | 久久国产香蕉 | 欧美日韩中文在线 | 国产精品久久久久影院色老大 | 久久一| 一区二区视频在线观看 | 欧美在线视频一区二区 | 黄色毛片网站在线观看 | 午夜码电影| 精品久久久久久久久久 | 国产精品高潮呻吟久久aⅴ码 | 欧美黄色绿像 | 国产免费又黄又爽又刺激蜜月al | 97精品一区二区 | 色综合色综合 | 日韩精品一区二区三区免费观看 | 一区视频 | 国产成人av在线 | 色在线免费视频 | 日本一区二区在线视频 | 欧洲一级视频 | 中文成人无字幕乱码精品 | 欧美日韩中文字幕 | 欧美视频 亚洲视频 | 99re热这里只有精品视频 | 国产精品久久久久久久久久三级 | 大乳boobs巨大吃奶挤奶 | 亚洲欧美日韩在线 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 久久噜噜噜精品国产亚洲综合 | 免费观看的av | 午夜精品一区二区三区在线观看 | 久久一| 亚洲 欧美 日韩 在线 | 一级a毛片 | 日韩在线成人 | 一区二区三区在线播放 | 午夜精品久久久久久久久久久久久 | 国产日韩欧美在线一区 | 一区二区三区国产 |