LK-Ka-內(nèi)核介紹.ppt_第1頁
LK-Ka-內(nèi)核介紹.ppt_第2頁
LK-Ka-內(nèi)核介紹.ppt_第3頁
LK-Ka-內(nèi)核介紹.ppt_第4頁
LK-Ka-內(nèi)核介紹.ppt_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Linux內(nèi)核分析和應用技術 林豐波linfb 2005 3 ToC LinuxKernel介紹源代碼目錄結(jié)構學習Linux內(nèi)核推薦討論主題 LinuxKernel 內(nèi)核源代碼 2 6 10 bz2壓縮有40M 展開有200M約16k個文件 編譯后可壓縮為約1M的核心 vmlinuz 及幾十M的驅(qū)動文件 在開機啟動運行后 內(nèi)核提供了200多個系統(tǒng)調(diào)用 這是內(nèi)核和用戶進程交互的接口 內(nèi)核管理CPU 存儲器 外設及進程調(diào)度等 內(nèi)核功能可以在運行過程中以內(nèi)核模塊 kernelmodule 的方式得以擴充 LinuxKernel Kernel和Distributionminix LinuxKernel GNU LinuxAndrewS Tanenbaum1987LinusTorvalds1991RichardStallman1983Linuxwww kernel orgwww linux orgwww tldp orglxr linux no Linux功能 兼容unix符合IEEEPOSIX 1多用戶環(huán)境多進程進程調(diào)度SMP進程間通信IPC Pipe Socket網(wǎng)絡支持TCP IPv4 IPv6 各種硬件平臺支持CPUs存儲管理內(nèi)存管理磁盤交換空間高速緩存文件系統(tǒng)VFSext2 ext3 FAT NTFS ISO9660動態(tài)和共享庫 特色 特色Unix like可靠性性能移植性Open開發(fā)工作活躍性價比硬件要求低可為我所用 前景和趨勢服務器領域桌面嵌入式商業(yè)化cn 支持動態(tài)內(nèi)核模塊SMP線程支持一個線程實體對應一個核心輕量級進程拋棄了某些Unix特性內(nèi)核可被搶占 preemptive in2 6 CPUs x86Intel AMD Cyrix Winchip Rise 32Itanium AMD 64alphaCompaqppcAIM Apple IBM Motorola sparcSunmipsMIPS 龍芯 LinusTorvalds 1991年Minix LinuxAndrewS TanenbaumOpenSourceLinuxisobsolete MICROKERNELVSMONOLITHICSYSTEMPORTABILITYhttp www2 educ umu se bjorn mhonarc files obsolete index htmlPenguin Linux版本經(jīng)歷 主要版本0 0191 80 0291 100 99 Slackware93 111 094 3FREEAlpha版95 6 2 299 1GNU2 401 12 603 12 LinuxKernel版本號 X Y ZY是偶數(shù)的是穩(wěn)定版Z是修訂號當前穩(wěn)定版是2 6 10 2005 2 開發(fā)版是SCOvs IBMLinuxlawsuithttp www wikipedia org wiki SCO v IBM Linux lawsuit LinesofCode 0109 19917 5K 1 003 1994158K 1 203 1995277K 2 007 1996649K 2 201 19991536K 2 401 20012888K 2 612 2003 4200K 2 4改進功能 關于進程上限和并發(fā)調(diào)度的改進支持更大的內(nèi)存改經(jīng)SMP支持支持新的處理器TransmetaCrusoe 3ComPalmPilot Psion5 新的文件系統(tǒng)支持Java解釋器khttpd LinuxKernel2 6 FeatureFreeze Halloween2002 BetterPerformance EspeciallyonSMP BetterScalability BetterI OSubsystem NewFilesystems ManyNewHardwareDrivers NewPlatforms ManyFeaturesTestedas2 4Patches 2 6改進特性 多平臺支持嵌入式 cuLinux non mmu AMD64字段寬度地址 pid內(nèi)存管理NUMA Non UniformMemoryAccess 進程調(diào)度從O n 到O 1 交互響應性能自身是可搶占的設備模塊特性網(wǎng)絡特性安全特性 內(nèi)核服務接口 系統(tǒng)調(diào)用 爭論單一內(nèi)核monolithic微內(nèi)核microkernel內(nèi)核功能和服務系統(tǒng)調(diào)用中斷處理系統(tǒng)調(diào)用 系統(tǒng)調(diào)用 用戶模式和內(nèi)核模式 SystemCalli 訪問設備 sys read i 3 system call i 訪問內(nèi)部函數(shù) read j 20 system call j get pid SystemCallj 訪問內(nèi)核數(shù)據(jù)結(jié)構 sys getpid KernelSourceCode LXRhttp lxr linux no Kernelsourcedir 環(huán)境準備 LXR0 3 1 LinuxCrossReferencerlxr 0 3 1 tar gzDependonWebserver Apacheperl5glimpseInstall LXRdependson links exuberantctags glimpse GlimpseisthepowerfulindexingandquerysysteminsideofWebglimpse whichisafeature richsearchenginethathasbeenusedonthousandsofsites http glimpse cs arizona edu installshconfigure or configure makemakeinstall LXR0 3 1 LXRCrossReferencerlxr 0 3 1 tar gzFunctionLinuxsourcecrossreferenceURLhttp lxr linux no lxr 0 3 1 tarzxflxr 0 3 1 tar gzcd modify makefile INSTALLPREFIX tmp lxr var www html lxr makeinstallmodify var www html lxr httpd lxr conf Sourceroot usr src linux create htaccess genxref usr src linux 實踐筆記 請實踐并完善 Linux內(nèi)核 系統(tǒng)啟動和初始化arch i386 kernel Sinit main c內(nèi)存管理mm內(nèi)核 進程調(diào)度arch kernelkernel sched ckernel fork cinclude linux interrupt hinclude linux sched h PCIdrivers pci pci cinclude linux pci h進程間通信ipc中斷處理arch i386 kernel irq cinclude asm i386 irq h設備驅(qū)動blockcharcdrom 文件系統(tǒng)fs buffer cfs ext2 include linux ext2 fs hext2 fs i hext2 fs sb hinclude linux fs h 網(wǎng)絡實現(xiàn)netinclude netnet socket cnet ipv4 af inet cnet corenet ipv4drivers net 模塊編程kernel modules cinclude linux module hinclude linux kerneld hinclude linux elf h其他 Kernel目錄結(jié)構 啟動和初始化不同CPU支持設備文件系統(tǒng)驅(qū)動程序進程間通信內(nèi)存管理網(wǎng)絡其他 copying makefile readmeDocument比如pci txtarch比如i386 ia64 ppc sparc等目錄drivers各種驅(qū)動 很多目錄如cdrom usb sound netfs文件系統(tǒng) VFS支持 比如ext2 fat等目錄include平臺無關的在linux目錄平臺相關在asm i386 asm ia64 asm ppc等目錄initmain c start kernel version c ipc進程間通信msg c msgsndmsgrcv sem c semaphore旗語 shm ckernel核心 調(diào)度sched c最重要lib核心常用代碼 errno string函數(shù) btree等mm硬件平臺無關的內(nèi)存管理net核心內(nèi)網(wǎng)絡協(xié)議代碼 如ipv4 ipv6 ipx atm bluetooth等scripts配置腳本文件 學習線索 以執(zhí)行流程為線索啟動和初始化POSTbootsect S setup S head S main c start kernel cpu idle init中斷structdesc structidt table 256 進程調(diào)度voidschedule void 以數(shù)據(jù)結(jié)構為線索list head 如不同的進程隊列hash 如structtask struct pidhash PIDHASH SZ 配合 pidhash next和 pidhash pprev以PCB為中心進程調(diào)度 sched cgoodness 和schedule vm areastructvm area struct 以功能劃分各模塊為線索進程調(diào)度文件操作和文件系統(tǒng)能夠網(wǎng)絡ethernet IP SocketIPCMMdrivers 開發(fā)驅(qū)動程序設計硬件接口參照一個樣本LDDv1 v2 v3 開始動手 瀏覽源碼http lxr linux no source 推薦討論主題 Linux編程概論C C gcc特性 調(diào)試gdbAssemblyasgccnasmmakemake cvs autoconf automake 硬件IA32 體系 內(nèi)存管理 特權級 中斷機制 指令手冊IA64 新的體系和區(qū)別LinuxonIA64http www linuxia64 org Linux網(wǎng)絡程序設計socket后臺守護進程daemon Linux守護進程的編程方法 fork inittab被xinetd調(diào)用的進程的編程方法packetcapture promiscuousmode libpcap winpcap tcpdump windump etherealLinux模塊內(nèi)核增強設備驅(qū)動 內(nèi)核變量調(diào)控 proc proc sys kernelsysctl a系統(tǒng)調(diào)用竄改 監(jiān)視增強調(diào)度一般原理多CPU支持 文件系統(tǒng)分區(qū)加密網(wǎng)絡實現(xiàn)IPv4 IPv6ipchain iptablefilter org 內(nèi)核新方向新進展?jié)h化問題見解內(nèi)核之爭 其他有意義主題Linux公司的經(jīng)營模式Free Open軟件的再應用提交可以以作業(yè)報告形式提交也可以在課堂大家討論 LinuxKernel 循序漸進題目系列 ppt 綜合設計 例子 一個設想的設備驅(qū)動 設備驅(qū)動定義硬件設備設備功能 數(shù)據(jù)處理 采集 加解密 網(wǎng)絡 WatchDog 設備接口IO口 中斷號 共享內(nèi)存設備操作規(guī)程時序定義驅(qū)動對上層接口打開 關閉操作 命令 響應 輸入 輸出找一個參照例子 Links TheLinuxKernelHOWTOhttp www tldp org HOWTO Kernel HOWTO htmlLILO LinuxCrashRescueHOW TOhttp www tldp org HOWTO LILO crash rescue HOWTO htmlGRUBhttp www gnu org software grub TLDPhttp w

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論