- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
八.内核编程内核体系结构内核镜像与加载动态模块加载1.内核体系结构Linux内核体系结构Linux内核子系统及其关系2.内核镜像与加载镜像文件的类型非压缩版本Vmlinux:可引导的、可压缩de内核镜像Image:经objcopy处理的、只包含二进制数据的内核代码压缩版本zImage:由vmlinux加上解压代码经gzip压缩而成bzImage:与zImage类似,但采用了不同的压缩算法,压缩率更高uImage:uboot专用的镜像文件,在zImage之前加了头信息,说明镜像文件的属性镜像的加载设置硬件和基本环境,清除BSS解压内核启动swapper进程,一系列初始化启动空任务,调度器接管控制权3.动态模块加载linux是一体化内核系统,向内核添加或删除某些功能十分困难引入模块机制在内核中动态添加或删除模块将模块从内核中独立出来,根据需要随时装入和卸载,使内核大小和通信量达到最小内核模块动态加载用insmod命令将模块手工插入到内核通过kerneld内核守护进程自动装入所需模块第三篇
实验开始——精通Linux一.Linux的基本使用与管理实验一Linux的安装及配置实验二Linux基本环境与使用实验三Linux文件处理实验四vi编辑器的使用实验一.Linux的安装与配置实验目的熟悉Linux操作系统的基本安装和配置了解Linux操作系统的启动过程和桌面环境掌握VMWare虚拟机的使用一.系统初始化开机启动流程开机服务与守护进程自动执行程序1.开机启动流程GRUB:
多重启动管理器,通过连锁载入引导撞在程序来载入多种操作系统。加载BIOS读取MBRBOOTLOADER加载内核启动级别服务类型0关机1单用户模式2无网络支持的多用户模式3有网络支持的多用户模式4保留,未使用5有网络支持、有X-Window支持的多用户模式6重新引导系统,即重启Linux的启动级别2.开机服务与守护进程开机时启动系统服务,服务程序由运行在后台的守护进程执行守护进程在系统引导时启动,在系统关闭时终止,独立于控制终端守护进程的分类独立启动模式(Stand-alone):C/S访问模式。启动后常驻内存,以实现快速响应,但资源占用较多超级守护模式(xinetd):同时监听多个端口,根据请求唤醒不同的服务进程处理。Xinetd一个进程占用资源,可以设置服务的管理权限,增加管理机制3.自动执行程序开机启动时自动运行程序登录时自动运行程序退出系统时自动执行程序定期自动运行程序定时自动运行程序一次二.系统调用系统调用的实现过程系统调用的使用方法系统调用的添加步骤1.系统调用的实现过程Linux分为用户空间和内核空间两个层次Linux系统调用机制Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用用户通过系统调用命令在自己的应用程序中调用它们2.系统调用的使用方法系统调用与普通函数调用的区别系统调用: 核心态 操作系统核心提供普通的函数调用 用户态 函数库或用户自己提供3.系统调用的添加步骤编写系统调用服务例程 arch/x86/kernel/sys.c添加系统调用号 arch/x86/include/asm/unistd.h修改系统调用表 arch/x86/kernel/syscall_table.s重新编译内核并测试三.进程/线程管理进程、进程组线程及线程分类多进程/线程编程1.进程/进程组Linux系统进程类型交互进程:Shell启动的进程,可在前台或后台运行批处理进程:进程序列,不与特定终端关联守护进程:后台服务进程,独立于控制终端,常在系统引导装入时启动,在系统关闭时终止进程、进程组与会话的关系2.线程及线程分类从Linux2.6开始,Linuxkernel才有真正的threadLinux2.6线程库叫NPTL(NativePOSIXThreadLibrary),采用1:1的线程模型,创建线程的效率非常高IBM的线程库叫NGPT(NextGenerationPOSIXThreads),采用M:N模型,上下文切换很快,但增加了复杂性,会出现优先级反转等问题Linux线程分为核心态线程和用户态线程核心态线程没有独立的地址空间,只在内核空间运行
用户态线程在用户空间中实现核心态线程更利于并发使用多处理器的资源
用户态线程更多考虑上下文切换开销3.多进程/线程编程——进程fork()产生当
文档评论(0)