minux內(nèi)核介紹

一、linux內(nèi)核

Linux是一種開源電腦操作系統(tǒng)。它是一個(gè)用C語(yǔ)言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操系統(tǒng)钦扭。
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構(gòu)上提供自由免費(fèi)的類Unix操作系統(tǒng)而開發(fā)的。該計(jì)劃開始于1991年床绪,在計(jì)劃的早期有一些Minix 黑客提供了協(xié)助客情,而今天全球無(wú)數(shù)程序員正在為該計(jì)劃無(wú)償提供幫助。

  時(shí)鐘-->(調(diào)度器)
   v
[task_struct]<---->[task_struct]

二癞己、內(nèi)存管理:

1.地址空間管理 v = malloc(50)
2.虛擬地址物理地址的映射

三裹匙、網(wǎng)絡(luò)

1.socket
2.tcp/ip

四、文件系統(tǒng)

1.抽象統(tǒng)一的文件操作接口
2.支持不同的文件系統(tǒng)(fat ext4 ......)

五末秃、設(shè)備驅(qū)動(dòng)
-->字符設(shè)備 LCD/TS/SOUND/ADC.... <---字符驅(qū)動(dòng)
-->塊設(shè)備 硬件 u盤 sd卡 <---塊驅(qū)動(dòng)
--->網(wǎng)絡(luò)設(shè)備 網(wǎng)卡 <----網(wǎng)卡驅(qū)動(dòng)

六概页、linux 源碼介紹

1、linux內(nèi)核源碼查看:

  安裝ctags   sudo apt-get install ctags
  使用ctags    vim -t memcpy
  在文件中使用ctags   :cstag memcpy
   追蹤源碼:ctrl+]
  返回:ctrl+o

==============================================

2练慕、在內(nèi)核中添加自己的文件

mkdir drivers/kernel/
touch drivers/kernel/test.c

#include <linux/init.h>
#include <linux/module.h>
#include <linux/sched.h>
        
//內(nèi)核啟動(dòng)的時(shí)候調(diào)用test_init
static __init int test_init(void)
{
      int i;    
      for (i = 0; i < 20; i++)
       printk("test_init\n");
       //執(zhí)行成功的話返回0,否則返回相應(yīng)的錯(cuò) 
      return 0;
}   
module_init(test_init); 
MODULE_LICENSE("GPL");

touch drivers/kernel/Makefile

    obj-y += test.o

vim drivers/Makefile

    obj-y += kernel/

make

3惰匙、在內(nèi)核中添加自己的選項(xiàng)

make menuconfig
--------->Kconfig
kernel/Kconfig   drivers/Kconfig    
Kconfig
 ------->.config
make
------->include/generated/autoconf.h--->test.c
 ------->include/config/auto.conf------->Makefil

六、內(nèi)核模塊

注意:1.編譯模塊使用的內(nèi)核和板子中運(yùn)行的內(nèi)核必
2.內(nèi)核的配置要統(tǒng)一

多個(gè)文件編譯成一個(gè)模塊
模塊之間的依賴關(guān)系
符號(hào)導(dǎo)出(EXPORT_SYMBOL)

七铃将、內(nèi)存管理

MMU+Page_table---->
虛擬地址--->映射

Linux啟動(dòng)后 虛擬地址

早期:32 x86
    物理內(nèi)存分為3個(gè)驅(qū)動(dòng)
    DMA(16M)  NOMAL(896M-16M)  HIGH
    dma尋址 24位

    虛擬地址范圍 0-4G
        0-3G應(yīng)用程序使用
        3G-4G內(nèi)核使用
    DMA+NOMAL--->[3G--3G+896M] 直接映射區(qū)  線性
    HIGH-------->動(dòng)態(tài)映射到3G+896M
    
    虛擬地址范圍
    [3G-4G]
    0xfff00000----->0xffff0000 臨時(shí)映射區(qū)  高 
    0xf0000000----->0xff000000 
        只能保證虛擬是連續(xù),物理上不一定連續(xù)
        能夠把不連續(xù)的物理內(nèi)存映射到連續(xù)的虛擬
        vmalloc
        vzalloc
        適合分配比較大的內(nèi)存
    0xc0000000----->0xef800000 直接映射區(qū)    52
        保證物理空間和虛擬空間都是連續(xù)的
        alloc_pages  2^n page
        alloc_page  2^0 page
        __get_free_pages 2^n page 
        __get_free_page  2^0 page
        kmalloc
        kzalloc
    0xbfe00000----->0xc0000000 永久映射區(qū)  高 
    0xbf000000----->0xbfe00000 模塊
    0x00000000----->0xbf000000 usr 

使用內(nèi)存
    1.映射 [0xc0000100-0xc0000200]
    2.權(quán)限 申請(qǐng)內(nèi)存

page  struct page -----> 1024M / 4K = 256K
    每一個(gè)page結(jié)構(gòu)提描述一個(gè)物理頁(yè) 臟頁(yè) 虛擬地
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末项鬼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劲阎,更是在濱河造成了極大的恐慌绘盟,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異龄毡,居然都是意外死亡吠卷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門沦零,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)祭隔,“玉大人,你說(shuō)我怎么就攤上這事路操〖部剩” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵屯仗,是天一觀的道長(zhǎng)搞坝。 經(jīng)常有香客問(wèn)我,道長(zhǎng)魁袜,這世上最難降的妖魔是什么瞄沙? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮慌核,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘申尼。我一直安慰自己垮卓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布师幕。 她就那樣靜靜地躺著粟按,像睡著了一般。 火紅的嫁衣襯著肌膚如雪霹粥。 梳的紋絲不亂的頭發(fā)上灭将,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音后控,去河邊找鬼庙曙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛浩淘,可吹牛的內(nèi)容都是我干的捌朴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼张抄,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砂蔽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起署惯,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤左驾,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诡右,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡安岂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稻爬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗜闻。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖桅锄,靈堂內(nèi)的尸體忽然破棺而出琉雳,到底是詐尸還是另有隱情,我是刑警寧澤友瘤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布翠肘,位于F島的核電站,受9級(jí)特大地震影響辫秧,放射性物質(zhì)發(fā)生泄漏束倍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一盟戏、第九天 我趴在偏房一處隱蔽的房頂上張望绪妹。 院中可真熱鬧,春花似錦柿究、人聲如沸邮旷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)婶肩。三九已至,卻和暖如春貌夕,著一層夾襖步出監(jiān)牢的瞬間律歼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工啡专, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留险毁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓们童,卻偏偏與公主長(zhǎng)得像辱揭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子病附,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 我們說(shuō)的Linux其實(shí)指的就是 內(nèi)核(kernel)而已问窃。這個(gè)內(nèi)核控制你主機(jī)的所有硬件并提供系統(tǒng)所有的功能,所以它...
    Zhang21閱讀 7,418評(píng)論 0 18
  • feisky云計(jì)算完沪、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,851評(píng)論 0 5
  • 大學(xué)的時(shí)候域庇,幫朋友寫的操作系統(tǒng)調(diào)研的作業(yè)嵌戈,最近整理過(guò)去的文檔時(shí)候偶然發(fā)現(xiàn),遂作為博客發(fā)出來(lái)听皿。 從串口驅(qū)動(dòng)到Linu...
    free_will閱讀 7,391評(píng)論 7 59
  • make menuconfig過(guò)程解析作者 codercjg 在 28 九月 2015, 5:27 下午 make...
    codercjg閱讀 952評(píng)論 0 1
  • 向謙開著車在回家熟呛,路燈不算明亮,索性車燈還算有力尉姨,能讓戴著厚厚鏡片的他看清路上的情況庵朝。 總有那么一兩個(gè)車,傲嬌的開...
    陌鄔閱讀 445評(píng)論 0 0