已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux内核分析和应用技术 林丰波linfb 2005 3 ToC LinuxKernel介绍源代码目录结构学习Linux内核推荐讨论主题 LinuxKernel 内核源代码 2 6 10 bz2压缩有40M 展开有200M约16k个文件 编译后可压缩为约1M的核心 vmlinuz 及几十M的驱动文件 在开机启动运行后 内核提供了200多个系统调用 这是内核和用户进程交互的接口 内核管理CPU 存储器 外设及进程调度等 内核功能可以在运行过程中以内核模块 kernelmodule 的方式得以扩充 LinuxKernel Kernel和Distributionminix LinuxKernel GNU LinuxAndrewS Tanenbaum1987LinusTorvalds1991RichardStallman1983Linuxwww kernel orgwww linux orgwww tldp orglxr linux no Linux功能 兼容unix符合IEEEPOSIX 1多用户环境多进程进程调度SMP进程间通信IPC Pipe Socket网络支持TCP IPv4 IPv6 各种硬件平台支持CPUs存储管理内存管理磁盘交换空间高速缓存文件系统VFSext2 ext3 FAT NTFS ISO9660动态和共享库 特色 特色Unix like可靠性性能移植性Open开发工作活跃性价比硬件要求低可为我所用 前景和趋势服务器领域桌面嵌入式商业化cn 支持动态内核模块SMP线程支持一个线程实体对应一个核心轻量级进程抛弃了某些Unix特性内核可被抢占 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版本经历 主要版本0 0191 80 0291 100 99 Slackware93 111 094 3FREEAlpha版95 6 2 299 1GNU2 401 12 603 12 LinuxKernel版本号 X Y ZY是偶数的是稳定版Z是修订号当前稳定版是2 6 10 2005 2 开发版是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改进功能 关于进程上限和并发调度的改进支持更大的内存改经SMP支持支持新的处理器TransmetaCrusoe 3ComPalmPilot Psion5 新的文件系统支持Java解释器khttpd LinuxKernel2 6 FeatureFreeze Halloween2002 BetterPerformance EspeciallyonSMP BetterScalability BetterI OSubsystem NewFilesystems ManyNewHardwareDrivers NewPlatforms ManyFeaturesTestedas2 4Patches 2 6改进特性 多平台支持嵌入式 cuLinux non mmu AMD64字段宽度地址 pid内存管理NUMA Non UniformMemoryAccess 进程调度从O n 到O 1 交互响应性能自身是可抢占的设备模块特性网络特性安全特性 内核服务接口 系统调用 争论单一内核monolithic微内核microkernel内核功能和服务系统调用中断处理系统调用 系统调用 用户模式和内核模式 SystemCalli 访问设备 sys read i 3 system call i 访问内部函数 read j 20 system call j get pid SystemCallj 访问内核数据结构 sys getpid KernelSourceCode LXRhttp lxr linux no Kernelsourcedir 环境准备 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内核 系统启动和初始化arch i386 kernel Sinit main c内存管理mm内核 进程调度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设备驱动blockcharcdrom 文件系统fs buffer cfs ext2 include linux ext2 fs hext2 fs i hext2 fs sb hinclude linux fs h 网络实现netinclude netnet socket cnet ipv4 af inet cnet corenet ipv4drivers net 模块编程kernel modules cinclude linux module hinclude linux kerneld hinclude linux elf h其他 Kernel目录结构 启动和初始化不同CPU支持设备文件系统驱动程序进程间通信内存管理网络其他 copying makefile readmeDocument比如pci txtarch比如i386 ia64 ppc sparc等目录drivers各种驱动 很多目录如cdrom usb sound netfs文件系统 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核心 调度sched c最重要lib核心常用代码 errno string函数 btree等mm硬件平台无关的内存管理net核心内网络协议代码 如ipv4 ipv6 ipx atm bluetooth等scripts配置脚本文件 学习线索 以执行流程为线索启动和初始化POSTbootsect S setup S head S main c start kernel cpu idle init中断structdesc structidt table 256 进程调度voidschedule void 以数据结构为线索list head 如不同的进程队列hash 如structtask struct pidhash PIDHASH SZ 配合 pidhash next和 pidhash pprev以PCB为中心进程调度 sched cgoodness 和schedule vm areastructvm area struct 以功能划分各模块为线索进程调度文件操作和文件系统能够网络ethernet IP SocketIPCMMdrivers 开发驱动程序设计硬件接口参照一个样本LDDv1 v2 v3 开始动手 浏览源码http lxr linux no source 推荐讨论主题 Linux编程概论C C gcc特性 调试gdbAssemblyasgccnasmmakemake cvs autoconf automake 硬件IA32 体系 内存管理 特权级 中断机制 指令手册IA64 新的体系和区别LinuxonIA64http www linuxia64 org Linux网络程序设计socket后台守护进程daemon Linux守护进程的编程方法 fork inittab被xinetd调用的进程的编程方法packetcapture promiscuousmode libpcap winpcap tcpdump windump etherealLinux模块内核增强设备驱动 内核变量调控 proc proc sys kernelsysctl a系统调用窜改 监视增强调度一般原理多CPU支持 文件系统分区加密网络实现IPv4 IPv6ipchain iptablefilter org 内核新方向新进展汉化问题见解内核之争 其他有意义主题Linux公司的经营模式Free Open软件的再应用提交可以以作业报告形式提交也可以在课堂大家讨论 LinuxKernel 循序渐进题目系列 ppt 综合设计 例子 一个设想的设备驱动 设备驱动定义硬件设备设备功能 数据处理 采集 加解密 网络 WatchDog 设备接口IO口 中断号 共享内存设备操作规程时序定义驱动对上层接口打开 关闭操作 命令 响应 输入 输出找一个参照例子 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 康复功能评定学讲课-以认知障碍康复为例
- 基底节出血术后护理查房
- 《电子元器件和材料》-第11章电子材料
- 职业道德与职业素养提升协议
- T∕CADPA 38-2023 数字内容分发与运营指南
- 咖啡师培训学员实习实训协议
- 《宠物医院实务》项目六
- 临沂大学经济法期末考试试卷级参考答案
- 发热患者健康宣教覆盖率
- 健康宣教测试-1
- 《Baby》Justin-Bieber版歌词完整版打印下载打印
- 基层安全生产监管面临的困惑和对策模板范本
- 城市轨道交通车站设备(高职)PPT完整全套教学课件
- 润滑油基础油的加氢法生产工艺课件
- 实验六-兔子的解剖-课件
- 专题06文学类文本阅读-七年级下学期语文期末考试真题汇编(北京)
- 《量子力学》全本课件
- 烘干设备购销合同
- 架桥机安装拆除监理细则
- 防空警报试鸣暨人防演练方案
- GB/T 23426-2009船舶与海上技术钢质小型风雨密舱口盖
评论
0/150
提交评论