亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

讀核日記(一)

2024-07-26 00:31:38
字體:
供稿:網(wǎng)友

今天開始我的讀核罹難記.第一次讀內(nèi)核,整整上學(xué)時(shí)的考試前.胡里胡涂的就過去了,沒甚收獲.這次我發(fā)誓要徹底讀一次.

面對近50 m 的源碼,困惑是難免的所以我決定先從大面上把握,再在某一些具體的點(diǎn)上切入.這樣一來linux 的啟動(dòng)過程便十分重要,因此我先用dmesg命令察看一下linux啟動(dòng)時(shí)打出的消息.(我想源文件應(yīng)在/usr/src/linux/init/main.c中)

內(nèi)核的啟動(dòng)最后是到 start_kernel ( in /init/main.c )也就是說啟動(dòng)的過程是從 head.S ( arch/i386/boot/ ) 一直運(yùn)行到 main.c(start_kernel) .它的作用是完成開機(jī)后的設(shè)置與內(nèi)核的初始化,然后,系統(tǒng)究竟入一個(gè)無限的循環(huán)中等待用戶的輸入,調(diào)用fork來產(chǎn)生子進(jìn)程.從而達(dá)到交互式操作系統(tǒng)的設(shè)計(jì)要求.

第一部分 : 內(nèi)核初始化以及啟動(dòng).

.啟動(dòng)系統(tǒng).當(dāng)PC機(jī)加電開始啟動(dòng)時(shí),80X86的處理器(CPU)在實(shí)模式下自檢,開始執(zhí)行物理地址0xFFFF0即ROM-BIOS的起始地址處的代碼。PC機(jī)的BIOS進(jìn)行系統(tǒng)自檢,初始化中斷向量表到物理地址0x0。然后把引導(dǎo)設(shè)備的第一個(gè)扇區(qū)加載到地址0x7C00,執(zhí)行此處的指令。到這里與linux無關(guān),x86系列的硬件設(shè)置如此.

linux的內(nèi)核本身是不能自舉的,所以lilo和loadlin的作用就是加載系統(tǒng)內(nèi)核.有關(guān)lilo的原理可以參考lilo的readme.從加電到內(nèi)核加載的過程是:加電->執(zhí)行BIOS->加載第一扇區(qū)->lilo->加載內(nèi)核

Linux內(nèi)核的最初部分代碼是用匯編語言寫的(文件是boot/bootsect.s)。(我的匯編水平有限,暫且不看),它首先把自身這部分代碼移到絕對地址0x90000,把下面的2K代碼從引導(dǎo)設(shè)備加載到地址0x90200上,內(nèi)核的其余部分加載到地址0x10000處。在加載系統(tǒng)時(shí)顯示“l(fā)oading...”. 然后,程序控制權(quán)交給另一個(gè)實(shí)模式匯編程序(boot/Setup.S)。接下來,此程序把整個(gè)系統(tǒng)從地址0x10000移到地址0x1000,進(jìn)入保護(hù)模式。程序控制轉(zhuǎn)給系統(tǒng)的其余部分即地址0x1000。

下一個(gè)步驟是系統(tǒng)內(nèi)核的解壓過程,這部分代碼在地址0x1000(文件/Boot/head.S),該段程序初始化寄存器,然后執(zhí)行decomPRess_kernel(),這個(gè)函數(shù)源于zBoot/inflate.c、zBoot/unzip.c和zBoot/misc.c三個(gè)文件

Loading ....[ bootsect.S ]

uncompress .....[ decompress_kernel() ]

main.c ---> start_kernel() 開始.

開始 printk(banner);

Linux version 2.2.6 (root@lance) (gcc version 2.7.2.3) (檢查一下GCC 的版本號, 在/init/main.c 中如果gcc 的版本號不夠,時(shí)不允許編譯內(nèi)核的)

#40 Sun Apr 18 17:44:20 CST 1999

調(diào)用init_time()打印出以下內(nèi)容:

Detected 199908264 Hz processor.

然后運(yùn)行 console_init() --> drivers/char/tty_io.c */

Console: colour VGA+ 80x25

運(yùn)行一個(gè)循環(huán),測量一下 MIPS – 據(jù)說是要用一個(gè)確定的機(jī)器指令周期來實(shí)現(xiàn)實(shí)時(shí)的延遲.

Calibrating delay loop... 199.48 BogoMIPS

初始化內(nèi)存/* init_mem */

Memory: 63396k/65536k available (848k kernel code, 408k reserved, 856k data

, 28k

/** dquote_init() **/

VFS: Diskquotas version dquot_6.4.0 initialized

察看cpu 的類型(在2.2.14 以后聽說增加了對多種cpu 的支持, 以后我可得用心看看,if I can find a bug of intel then ……)

CPU: Intel Pentium Pro stepping 09

初始或處理器與協(xié)處理器,對于比較老的處理器, linux 會(huì)用軟件模擬協(xié)處理器?

Checking 386/387 coupling... OK, FPU using exception 16 error reporting.

檢查治理的合法性

Checking 'hlt' instruction... OK.

POSIX conformance testing by UNIFIX

此后調(diào)用 linux_thread(init ,..,..,)(arch/i386/kernel/process.c)

創(chuàng)建一個(gè)運(yùn)行 init 的進(jìn)程.

進(jìn)入了第二階段用戶模式 ( user_mode )End of start_kerne最后進(jìn)入cpu_idle ( arch/i386/kernel/process.c )

第二部分 設(shè)備的初始化

對設(shè)備的初始化調(diào)用. init()--->do_basic_init()--+

pci_init() 對pci 設(shè)備的初始化( 在main.c文件中有這樣一段 ifdef PCI …..需要看一下)下面打印出結(jié)果:

PCI: PCI BIOS revision 2.10 entry at 0xfd8d1

PCI: Using configuration type 1

PCI: Probing PCI hardware

對Socket的初始化,socket_init() (這里也許就是linux 的網(wǎng)絡(luò)秘密所在吧,以后我的注意) -Linux NET4.0 for Linux 2.2

Based upon Swansea University Computer Society NET3.039

NET4: Unix domain sockets 1.0 for Linux NET4.0.

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP

Starting kswapd v 1.5 kswapd_setup()

調(diào)用 device_setup()

Detected PS/2 Mouse Port.

初始化 聲卡

Sound initialization started

Sound initialization complete

初始化 軟驅(qū)

Floppy drive(s): fd0 is 1.44M

FDC 0 is a National Semiconductor PC87306

SCSI 設(shè)備的初始化

(scsi0) <Adaptec AIC-7880 Ultra SCSI host adapter> found at PCI 13/0

(scsi0) Wide Channel, SCSI ID=7, 16/255 SCBs

(scsi0) Downloading sequencer code... 419 instructions downloaded

scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.10/3.2.4

<Adaptec AIC-7880 Ultra SCSI host adapter>

scsi : 1 host.

Vendor: SEAGATE Model: ST32155W Rev: 0596

ype: Direct-access ANSI SCSI revision: 02

Detected scsi disk sda at scsi0, channel 0, id 0, lun 0

Vendor: SEAGATE Model: ST32155W Rev: 0596

Type: Direct-Access ANSI SCSI revision: 02

Detected scsi disk sdb at scsi0, channel 0, id 1, lun 0

scsi : detected 2 SCSI disks total.

(scsi0:0:0:0) Synchronous at 40.0 Mbyte/sec, offset 8.

SCSI device sda: hdwr sector= 512 bytes. Sectors= 4197405 [2049 MB] [2.0 GB ](scsi0:0:1:0) Synchronous at 40.0 Mbyte/sec, offset 8.

SCSI device sdb: hdwr sector= 512 bytes. Sectors= 4197405 [2049 MB] [2.0 GB]Partition check: sda: sda1 |

sdb: sdb1 sdb2 < sdb5 sdb6 > |

安裝 文件系統(tǒng) filesystem_setup()

安裝設(shè)備驅(qū)動(dòng)程序 mount_root()

VFS: Mounted root (ext2 filesystem) readonly.

Freeing unused kernel memory: 28k freed

Adding Swap: 66540k swap-space (priority -1)

Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996

SB 3.01 detected OK (220)

<ESS ES1688 AudioDrive (rev 11) (3.01)> at 0x220 irq 5 dma 1

YM3812 and OPL-3 driver Copyright (C) by Hannu Savolainen, Rob Hooft 1993-1

996<Yamaha OPL3> at 0x388

NET4: AppleTalk 0.18 for Linux NET4.0

eth0: Intel EtherExpress Pro 10/100 at 0xf800, 00:A0:C9:49:2F:FF, IRQ 9.

Board assembly 645520-034, Physical connectors present: RJ45

Primary interface chip DP83840 PHY #1.

DP83840 specific setup, setting register 23 to 8462.

General self-test: passed.

Serial sub-system self-test: passed.

Internal registers self-test: passed.

ROM checksum self-test: passed (0x49caa8d6).

Receiver lock-up workaround activated.

NET4: AppleTalk 0.18 for Linux NET4.0

結(jié)束 do_basic_setup()

open("/dev/console", O_RDWR, 0)

開始執(zhí)行 /sbin/init ( execv(...) )

內(nèi)核就此啟動(dòng)完畢...

這樣一來系統(tǒng)在啟動(dòng)時(shí)需要的文件一目了然了.要讀啟動(dòng)這方面的源碼,大概也就可以這樣行動(dòng)即:

Boot/head.S

decompress_kernel(),然后按照個(gè)功能塊來讀取相應(yīng)的函數(shù).

其實(shí)對于整個(gè)kernel 來說,還應(yīng)該解讀一下makefile ,說實(shí)話在編程來講我是很愛寫 makefile ,然而解讀內(nèi)核,她就是工作十分難以進(jìn)行.好在有了souce insight 可以讓我們輕松的找到,函數(shù)和常量的定義, 方便不少.

打開main.c (其實(shí)我是將2.2.14解到了windows 下).發(fā)現(xiàn)有n 個(gè)函數(shù)與2n 個(gè)常量的定義,只有幾個(gè) init 函數(shù)在.對于其他的外部函數(shù)也定義了不少.這里卻沒有主函數(shù)—我現(xiàn)在懷疑linux 程序是否和vc 一樣不知道從哪里開始進(jìn)行:__).不過馬上明白了, 整個(gè)內(nèi)核事變在一塊的. 還包括.存儲管理, 處理機(jī)管理, 內(nèi)存管理等許多模塊, 她該不會(huì)啟動(dòng)以后就沒有時(shí)刻干了吧

好了, 一口吃不成胖子.我還是先從啟動(dòng)讀起.不過我開始對是否要加中文祝時(shí)產(chǎn)生懷疑, 寫那些代碼的本身都是高手, 他們應(yīng)知道怎樣是最好的注釋. 難道讀代碼的人連這點(diǎn)e 文也看不了?


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美艳星kaydenkross| 99热播精品免费| 色网在线观看| 亚洲一区二区三区色| 亚洲a级在线观看| 久久综合给合| 青草青草久热精品视频在线网站| 欧美va在线观看| 成人午夜视频免费观看| 奇米888四色在线精品| 香港三级日本三级| 免费一级在线观看| 免费观看久久久4p| 日韩免费啪啪| 日韩美一区二区| 高潮一区二区| 性感美女一区二区在线观看| 日韩一级二级| 美女喷水白浆| 亚洲精选一区二区| 亚洲欧美日韩偷拍| 日韩一卡二卡在线观看| 91精品国产自产| 深夜福利网站在线观看| 中文字幕欧美日韩一区二区三区| 国产成人精品一区二三区在线观看| 先锋影音资源综合在线播放av| 精品一区二区三区中文字幕视频| 婷婷伊人综合中文字幕| 久久精品国产亚洲blacked| 黄色一级大片在线观看| 国内自拍视频在线观看| 黄色毛片av| 一级视频在线免费观看| 色婷婷综合久久| 四虎国产精品永久| 国产精品一区二区99| 四虎影视成人永久免费观看视频| 激情五月婷婷小说| 国产精品美女呻吟| 日韩在线观看免费高清| 日韩精品久久一区二区三区| 国产激情在线看| 亚洲第一色中文字幕| 中文精品久久| 97超碰欧美中文字幕| 日韩不卡在线播放| 欧美少妇性生活视频| 电影一区二区在线观看| 精品一区电影| 日韩av片永久免费网站| 影音先锋男人资源在线观看| 国产精品久久久久秋霞鲁丝| 2014亚洲片线观看视频免费| 97久久久免费福利网址| 91激情在线视频| 欧美一区二区三区激情视频| 国产麻豆一精品一男同| 国产激情自拍视频| 一本久道在线| 色中色综合成人| 97人妻精品一区二区三区视频| 6—12呦国产精品| 欧美日韩激情小视频| 国产福利电影在线| 精品人妻无码一区二区三区| 亚洲欧洲av一区二区| 中文字幕免费高清网站| 999国产精品999久久久久久| 色婷婷av一区二区三区大白胸| 91免费观看国产| 奇米影视狠狠狠| 99久久精品费精品国产风间由美| 日本欧美一级片| 亚洲美女www午夜| 日韩一级大片在线观看| www.亚洲.com| 国产超级va在线视频| 国产精品电影在线观看| 91国在线精品国内播放| 亚洲精品乱码久久久久久久| 国产无人区码熟妇毛片多| 九九热视频在线观看| 欧美华人在线视频| 中文字幕久久久| 国产成人拍精品视频午夜网站| 日韩一区二区三区免费| 国产视频在线免费观看| 999久久久国产999久久久| 免费在线成人av| h在线观看视频免费网站| 欧美日韩1区2区| 一级做a爰片久久毛片16| 国产区精品区| 欧美日韩加勒比精品一区| 国产成人啪午夜精品网站男同| 欧美最顶级丰满的aⅴ艳星| 九色成人搞黄网站| 国产黄频在线观看| 亚洲视频狠狠干| 亚洲欧美日韩成人网| 欧美精品二区三区| 亚洲一二三区视频在线观看| 狼人精品一区二区三区在线| 日韩小视频网址| 五月天激情综合| 久久99精品久久久久子伦| 久久久国产一区二区| 久久久久久久久久久综合| 黄色片免费在线观看视频| 欧美网站免费观看| 人妻少妇一区二区| 国产精品美女999| 国产极品嫩模在线视频一区| 激情综合电影网| 日韩欧美不卡在线| 午夜精品福利一区二区三区蜜桃| 国产精品影音先锋| 久99九色视频在线观看| 国产一二三区精品视频| 996这里只有精品| 中文人妻熟女乱又乱精品| 一级做a爱片性色毛片| 日本欧美一区二区在线观看| 欧美精品91| 99re这里只有| heyzo在线欧美播放| 丁香高清在线观看完整电影视频| 欧美日韩国产一区二区三区地区| 亚洲一区二区免费在线观看| 91丨九色丨海角社区| 亚洲精品国产拍免费91在线| 亚洲精品一区在线观看| 欧美mv日韩mv国产网站app| 精品精品国产毛片在线看| 在线观看爽视频| 成人aaaa| 久久久久久国产精品视频| 亚洲国产中文在线二区三区免| 日本高清免费电影一区| 亚洲高清视频网站| 亚洲欧美综合7777色婷婷| 高h视频免费观看| 欧美黑人一级爽快片淫片高清| 丰满人妻一区二区三区53视频| 精品三级久久久| 欧美一卡二卡三卡四卡| 亚洲a一区二区三区| 最近2019中文字幕一页二页| 精品亚洲欧美日韩| 伊大人久久香线焦宗合一75大| 亚洲精品一区二区三区蜜桃| 国产91精品久久久久久久网曝门| 九色在线网站| 国产videos久久| 精品国产不卡| 精品国产亚洲一区二区三区在线观看| 99久久综合狠狠综合久久止| 又黄又爽的网站| 国产精品久久久久三级| 精品视频在线观看网站| 美国一区二区| 成年网站在线播放| 在线观看的网站你懂的| 中文在线免费观看| 国产三级精品三级在线观看国产| 综合久草视频| 久久手机视频| 天堂资源在线亚洲资源| 欧美精品99久久久| 国产一区欧美| 中文字幕国产亚洲| 18激情网站| 性欧美videos| 久久精品国产秦先生| av中文字幕在线不卡| 先锋资源中文字幕| 最新真实国产在线视频| 福利视频导航一区| 黄色大片网站| av色综合久久天堂av综合| 国产精品偷伦视频免费观看国产| 欧美高清3dfreexxxx性| 国产丝袜高跟一区| 欧美视频在线观看网站| 日本精品在线观看视频| 国产主播性色av福利精品一区| 一级片免费观看视频| wwwav在线| 中文字幕亚洲第一| 欧美性感美女h网站在线观看免费| 国产在线精品一区二区三区》| 亚洲美女黄色片| 欧美1区2区| 成视频年人免费看黄网站| 91看片淫黄大片一级在线观看| 六月丁香婷婷色狠狠久久| 人妻中文字幕一区二区三区| 久久人体大尺度| 蜜桃av中文字幕| 久久无码人妻精品一区二区三区| 欧美xxxxbbbb在线播放| a天堂在线视频| 精品美女久久久久| 国产男女猛烈无遮挡91| xxxx视频在线| 国产日产高清欧美一区二区三区| 97精品国产一区二区三区| 亚洲午夜精品久久久久久浪潮| 欧美精品亚洲二区| 国产野外作爱视频播放| 国产日本韩国在线播放| 动漫美女无遮挡免费| 四虎影视在线观看2413| 亚洲成人精品一区二区| 蜜臀久久99精品久久久画质超高清| 精品亚洲成a人在线观看| 欧美久久综合性欧美| 日韩国产在线一区| 日本精品视频一区| 国产成人精品一区二区三区在线| 日韩国产欧美亚洲| 欧美爱爱视频| 成人影院av| 99久久综合色| 欧美激情视频免费观看| 91福利精品在线观看| 日韩中字在线观看| 亚洲午夜在线观看视频在线| 精品福利一区二区三区免费视频| 精品视频自拍| av大片免费观看| 男女高潮又爽又黄又无遮挡| 国产精品96久久久久久| 理论电影国产精品| 精品国产麻豆免费人成网站| 欧美日韩在线不卡| 国产日韩欧美一区| 中文字幕1234区| 欧美在线不卡一区| 国产免费av一区二区| 欧美自拍资源在线| 中文日韩欧美| 在线观看精品视频| 日韩中文视频免费在线观看| 午夜免费精品视频| 欧美久草视频| 国产精品久久久久av福利动漫| av影片在线看| 精品不卡在线视频| 国产日韩一区在线| 成人信息集中地欧美| 亚洲视频在线免费| 在线看片一区| 91丨porny丨中文| 日韩视频www| 三级在线观看视频| 成人免费视频网站在线观看| 欧美在线视频网站| 国语对白在线播放| 视频一区二区视频| 三级网站在线看| 夜夜摸视频网| 国产三级精品视频| 嫩模一区二区三区| 欧美成人午夜精品免费| 国产精品实拍| 北条麻妃一二三区| 亚洲综合中文字幕在线观看| 亚洲999一在线观看www| 波多野结衣家庭教师在线| 网曝91综合精品门事件在线| 国产主播精品| 国产视频精品在线| 91成人网在线观看| 最新国产精品拍自在线播放| 日本中文字幕免费在线观看| 91精品国产一区二区| 国产丝袜欧美中文另类| 久久r热视频| 99久久久无码国产精品| 秋霞毛片大全| 国产日韩一区二区三免费高清| 欧美va亚洲va香蕉在线| 亚洲a∨一区二区三区| 五月婷婷在线观看| 亚洲精品久久久久久久久久久久久久| 亚洲精品在线免费看| 亚洲成人观看| 激情久久一区| 亚洲丝袜精品| 成人性生交大片免费观看嘿嘿视频| 久草在线新免费首页资源站| 成人一区二区三区四区| 99国产麻豆精品| 国产精品午夜一区二区欲梦| 欧美三级电影一区二区三区| 美女视频第一区二区三区免费观看网站| 午夜久久黄色| 国产人妻人伦精品1国产丝袜| 亚洲色图欧美视频| 亚洲精品99999| aa级大片欧美三级| 亚洲一区二区成人在线观看| 成+人+亚洲+综合天堂| 午夜精品视频一区二区三区在线看| 91电影在线| 精品国产免费无码久久久| 中文字幕亚洲一区二区av在线| 亚洲新中文字幕| 自拍视频一区二区| 成人免费看黄| 老牛影视av老牛影视av| av黄色一级片| 国产在线播放一区三区四| 91在线视频免费91| avhd101老司机| 欧美精品在欧美一区二区少妇| 欧美三级理论片| 中文天堂av| 欧美性在线观看| 黄色av网址在线观看| 国产欧美综合视频| 欧美熟妇激情一区二区三区| 午夜福利一区二区三区| 爽爽爽爽爽爽爽成人免费观看| 国产乱子伦三级在线播放| www.日本一区|