版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,Linux系统应用,第十章 系统内核裁减,2,一、系统内核的工作机制 Linux系统大致可分为三层: 靠近硬件的底层是内核,即Linux操作系统常驻内存部分。 中间层是内核之外的shell层,即操作系统的系统程序部分。 最高层是应用层,即用户程序部分,第八讲 系统内核裁剪,3,学习过计算机组成原理和操作系统课程之后,我们知道硬件和软件之间并不是直接通信的;它们之间的关系是很象洋葱的层次关系。用户与硬件打交道是通过shell 命令解释器和系统内核。 系统内核解释硬件的电信号,并把它们翻译成 shell 可用的东西,如果应用程序在运行,它们则运行于 shell 之上。,内核是唯一能访问硬件,管
2、理整体系统的核心软件,是Linux系统的灵魂,它的作用与其他的操作系统的内核相似:负责管理内存、文件系统、驱动程序,排定Linux内各个操作执行的次序,负责把系统资源分配给线上用户。,4,一般说来,可以将操作系统划分为内核和系统程序两部分。 进程控制系统用于进程管理、进程同步、进程通信、进程调度和内存管理等。 内存管理控制内存分配与回收。 文件系统管理文件、分配文件空间、管理空闲空间、控制对文件的访问并为用户检索数据。 Linux系统支持三种类型的硬件设备:字符设备、块设备和网络设备。 核心底层的硬件控制负责处理中断以及与机器通信。,如shell,5,系统内核的工作机制(续),系统内核的一些核
3、心函数在 /usr/src/linux-2.4.20-8/kernel 目录下。该目录下的程序文件有: Linux 是开放的操作系统,其源代码是免费的。通过学习这些源代码可以学到许多东西;因为在 /kernel 目录下的关键文件解释了系统内核是如何工作的。例如、了解系统内核的 panic、fork 和其它一些系统函数,会使你对内核如何与硬件和用户环境交互有更好的理解。当然、要读懂它不但要有C的基础还要查阅文献资料。,6,例 info.c,/* * linux/kernel/info.c * * Copyright (C) 1992 Darren Senn */ /* This implemen
4、ts the sysinfo() system call */ #include #include #include #include #include asmlinkage long sys_sysinfo(struct sysinfo *info) struct sysinfo val; memset(char *),7,例 info.c,cs = nr_threads-1; sti(); si_meminfo(,8,例 info.c,bitcount = 0; mem_unit = val.mem_unit; while (mem_unit 1) bitcount+; me
5、m_unit = 1; sav_total = mem_total; mem_total = 1; if (mem_total sav_total) goto out; /* If mem_total did not overflow, multiply all memory values by * val.mem_unit and set it to 1. This leaves things compatible * with 2.2.x, and also retains compatibility with earlier 2.4.x * kernels. */,9,例 info.c,
6、val.mem_unit = 1; val.totalram = bitcount; val.freeram = bitcount; val.sharedram = bitcount; val.bufferram = bitcount; val.totalswap = bitcount; val.freeswap = bitcount; val.totalhigh = bitcount; val.freehigh = bitcount; out: if (copy_to_user(info, ,10,二、裁剪系统内核,尽管硬盘驱动器中的 linux 带有系统内核,但你仍然可以重新创建、裁剪系统
7、内核,以拥有适合你的驱动程序和对系统硬件的支持;另外、嵌入式系统并不需要所有的 linux 内核,你可以根据嵌入式系统的需要对内核进行适当的裁剪,以便更好地利用 linux 操作系统。Linux提供了对内核裁剪并重新编译的工具。 创建、裁剪内核遵循的步骤: 1、检查编译器的版本 2、删除过时的目标文件 3、重新设置系统内核 4、重新编译系统内核 5、备份正在使用的系统内核 6、试用新的系统内核,11,裁剪系统内核(续),要想拥有一个优化的、适合于你的系统的内核,就重新创建、裁剪它。这样可以使用更适合于硬件、网络和文件系统的驱动程序。对于大多数这些部件的支持既可以直接编译到内核部分,也可以作为一
8、个可加载的模块使用。 当驱动程序放在系统内核中时,Linux 假定该硬件是存在于系统中的。而作为可加载模块使用时,只有在知道该硬件存在于系统时才会作为系统内核的一部分;当 Linux 检测到硬件时,该模块才被加入到系统内核中。例如、PCMCIA 驱动程序,当 PCMCIA 卡被插入,对应的模块就被加载,当卡被移走,对应的模块就被卸载。,12,裁剪系统内核(续),1、检查编译器的版本 用低版本的编译器去编译高版本的内核有可能不能编译或使内核不能使用。查看编译器版本命令: #gcc v 进入系统内核源代码目录。一般系统内核的源代码放在 /usr/src/ 目录下。用 ls l 命令查看可能如下:
9、#ls l /usr/src Total 3 lrwxrwxrwx1 rootroot12 May4 14:36 linux2.4-linux-2.4.20-8 drwxr-xr-x 15 root root 1024 May 14 11:37 linux-2.4.20-8 drwxr-xr-x 3 root root 1024 May 4 14:38 sendmail,13,2、删除过时的目标文件 进入 /usr/src/linux-2.4.20-8/ 目录,运行 make mrproper 命令以清除过时的目标文件。 3、重新设置系统内核 一共有三种方式来运行重新设置的命令: 设置屏幕的类
10、型 命令 文本 make config NCurses make menuconfig X 图形 make xconfig,裁剪系统内核(续),14,在三种方式中,xconfig 程序是 图形用户界面 ,整个设置界面简洁明了,帮助文件也容易获取。,裁剪系统内核(续),15,menuconfig 程序是菜单光标界面,用户利用光标键和空格键进行设置。 在 xconfig 、menuconfig中可以回退做修改,但在 config 中则不能,因为它只在整个设置中一直向你提问。,裁剪系统内核(续),16,重新设置系统内核(续),在 /usr/src/linux-2.4.20-8/ 目录下运行设置程序。
11、 以下用 xconfig 设置程序为例说明。 xconfig 主屏幕有许多设置选项,这里只简单介绍几个,其它的选项,可查看帮助文件。 (1)代码成熟级别选项(Code maturity level options) 如果你想对新的驱动程序做 beta 测试,则可以选中 y 该选项,否则一般选 n。这是内核的一个内置特性 ,不能作为一个模块,所以 m 选项钮不使能(灰色)。 (2)可装载模块支持(Loadable module support) 选中该项以使用模块。如果激活了可装载模块支持选项,一般也要指定模块的自动装载。,17,(3)网络设备支持(Network device support)
12、 定义使用网络的方式。,重新设置系统内核(续),18,(4)字符设备(Character devices) 定义使用各种字符设备的方式。,重新设置系统内核(续),19,设置选项很多,这里只介绍几种,其目的是让大家了解内核裁剪的方法。 在作完选项的选择后,不要忘记保存设置后退出,保存按钮如左图所示。当然、你也可以不保存退出,或者保存到系统配置文件中。,重新设置系统内核(续),20,4、重新编译系统内核 编译之前,运行带有 clean 和 dep 选项的 make 文件以清除过时的目标文件并建立合适的独立性(如果要正确编译代码,必须要满足该要求)。命令为: make clean ; make de
13、p 如果没有错误提示,就运行 make zImage 命令。该命令将在 /usr/src/linux-2.4.20-8/arch/i386/boot 目录下安装一个全新的内核。该内核文件称为 zImage。 如果给内核添加了许多驱动程序或各种各样的支持,可能需要使用 make bzImage 命令,该命令可以作出一个很大的映象文件,该文件可以带有所有的选项进行启动。 运行make modules 运行make modules_install,重新设置系统内核(续),21,重新编译系统内核(续),如果看到类似于以下的提示,就已经完成了创建工作。 Root device is (3,1) Boot
14、 sector xxx bytes. Setup is xxxx bytes. System is xxx kB Sync Make1:Leaving directory /usr/src/linux-2.4.20-8/arch/i386/boot 重新编译内核时,会花费比较多的时间;具体的时间取决于你选择内核的大小、处理器的速度等因数。一般在嵌入式系统中内核比较精悍,编译过程会比较快;另外、如果没有运行其他的负载密集型的应用程序(如 X 图形程序),编译过程会更快。 编译完成后,在 /usr/src/linux-2.4.20-8/arch/i386/boot 下就会有zImage 或 bzI
15、mage 文件。,22,重新编译系统内核(续),5、备份正在使用的系统内核 在把新的系统内核移植到根目录时,作好老系统内核的备份是非常重要的!一旦新系统内核崩溃,用应急启动盘进入 Linux 系统,恢复旧系统内核。 cd /boot mv vmlinuz-2.4.20-8 vmlinuz.old 内核重建前文件名为 vmlinuz-2.4.20-8。 复制新内核到根目录: cp /usr/src/linux-2.4.20-8/arch/i386/boot/zImage /boot 如果你用 gurb.conf 或 LILO 文件配置启动,则要修改该文件。,23,# grub.conf gene
16、rated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,1) # kernel /boot/vmlinuz-version ro root=/dev/hda2 # initrd /boot/initrd-version.img #boot=/dev/hda default=0 timeout=10 splashimage=(hd0,1)/boot/grub/splash.xpm.gz title Red Hat Linux (2.4.20-8) root (hd0,1) kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/ initrd /boot/initrd-2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽合肥热电集团工程类公司社会招聘11人笔试历年难易错考点试卷带答案解析
- 2025四川绵阳路桥建设集团有限责任公司党务专员招聘1人笔试历年典型考点题库附带答案详解
- 2025四川科瑞软件有限责任公司招聘投标专员等岗位3人笔试历年备考题库附带答案详解
- 2025四川广安宏旨预拌砂浆有限责任公司第一次招聘13人笔试历年常考点试题专练附带答案详解2套试卷
- 2025四川南充临江东方投资集团有限公司合同制员工招聘15人笔试历年典型考点题库附带答案详解
- 2025四川九洲投资控股集团有限公司软件与数据智能军团招聘人力资源专员测试笔试历年常考点试题专练附带答案详解
- 2025咸阳经开城市发展集团有限公司招聘(21人)笔试历年常考点试题专练附带答案详解
- 2025华北有色工程勘察院有限公司招聘专业技术人员安排(河北)笔试历年难易错考点试卷带答案解析2套试卷
- 2025内蒙古恒正实业集团有限公司招聘10人笔试历年常考点试题专练附带答案详解
- 2025内蒙古中铁六局集团呼和浩特铁路建设有限公司招聘16人笔试历年典型考点题库附带答案详解
- 全国高等学校本科教学基本状态数据库数据填报指南
- 热泵基础知识培训课件
- 《OH卡牌的使用方法》课件
- DB32-T 4937-2024 土地征收前社会稳定风险评估规范
- 2025年房地产销售经理领导力培训
- DB5206T 180-2024林下经济统计体系标准
- 危险品运输企业危险源辨识报告
- 娱乐摄影师聘用合同范本
- HG∕T 4576-2013 乳油产品中有害溶剂限量
- 2022山东春季高考英语考试真题及答案
- 《心脏的结构于功能》课件
评论
0/150
提交评论