350 likes | 514 Views
第七章. Linux 核心管理与定制. 内容回顾. Linux 应用程序基础 RPM 包管理 应用程序编译 库管理. 本章目标. 了解 Linux 内核的作用和基本功能 获取 Linux 内核的源码包,并进行安装 掌握内核的多种配置方法 了解内核配置项的含义 掌握内核的编译方法 掌握内核模块的编译与安装 在 Linux 系统中应用新内核. 内核的概念. 内核是一个操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
E N D
第七章 Linux核心管理与定制 Version 1.0
内容回顾 • Linux应用程序基础 • RPM包管理 • 应用程序编译 • 库管理 2/35
本章目标 • 了解Linux内核的作用和基本功能 • 获取Linux内核的源码包,并进行安装 • 掌握内核的多种配置方法 • 了解内核配置项的含义 • 掌握内核的编译方法 • 掌握内核模块的编译与安装 • 在Linux系统中应用新内核 3/35
内核的概念 • 内核是一个操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 • Linux内核以独占的方式执行最底层任务,保证系统正常运行,协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等。 4/35
为什么要升级内核 • 现有内核中会不断发现漏洞,需要打补丁后重新编译内核,以便系统能够更加安全的运行 • 新的内核版本通常会带来用户所需要的新功能 • 新的内核版本会支持较新的硬件设备正常工作 • 正确地为主机配置个性化的内核会使系统运行得更加快速、稳定 5/35
查看系统中的设备 • 查看主机的CPU信息 # more /proc/cpuinfo • 查看主机PCI设备信息 # lspci • 查看系统中所使用的内核模块信息 # more /proc/modules 6/35
获取Linux内核源代码 • 从发行版本中获得Linux内核源代码 • 从网络下载Linux的内核源代码 http://www.kernel.org 7/35
安装Linux内核源代码 • Linux内核源代码以打包的形式提供,rpm和bz2两种格式的源码包的安装方法不同 • 安装Red Hat Linux 9中的RPM内核源码包 # rpm -ivh kernel-source-2.4.20-8.i386.rpm • 安装网络下载的内核源码包 # tar jxvf linux-2.4.24.tar.bz2 8/35
配置内核前的准备工作 • # cd /usr/src/linux-2.4 进入内核源码目录后,才能够正确执行所有的内核配置、编译命令。 • # make mrproper 在每次配置并重新编译内核前需要先执行“make mrproper”命令清理源代码树,包括过去曾经配置的内核配置文件“.config”都将被清除。 9/35
内核模块的概念 • 内核模块简称模块,是一段可执行的程序,但是它可以被动态加载到内核中,并成为内核的一部分。 • 加载到内核里的模块具有与内核一样的权力,可以访问任何内核中的数据结构。 10/35
内核的配置界面 • 文本交互 配置界面 • 文本窗口配置界面 • 图形窗口配置界面 • 根据原有配置文件自动生成新的配置文件 11/35
文本配置界面 • 文本交互 配置界面 # make config • 根据原有配置文件自动生成新的配置文件 # make oldconfig 12/35
文本窗口配置界面 • 文本窗口配置界面 # make menuconfig 13/35
图形窗口配置界面 • 图形窗口配置界面 # make xconfig 14/35
内核功能的配置方法 • Y 配置某功能编译进内核 • M 配置某功能作为模块编译 • N 配置不使用某功能(既不编译进内核,也不作为模块编译) 15/35
内核配置项——可装载模块支持 • 可装载模块支持 在通常的Linux系统中都需要对该项进行支持,否则内核将不能使用内核模块。 16/35
内核配置项——处理器 17/35
内核配置项——常规设置 18/35
内核配置项——网络设置 19/35
退出并保存内核配置 • 在完成对内核的配置后,选择“Save and Exit”按钮保存并退出配置界面。 20/35
内核配置文件 • .config文件 无论采用哪种方法对Linux内核进行配置,最终的目的都是为了生成内核配置文件“.config”。 内核的编译过程将完全按照“.config”文件中的配置内容进行编译。 21/35
内核名称标志 • “EXTRAVERSION”变量 Makefile文件中的“EXTRAVERSION”变量的值将被用于生成新内核的版本标志,该标志用于命名内核文件、内核模块目录等。 • EXTRAVERSION = -8custom 在Red Hat Linux 9 中预设定该变量的值为“-8custom”。在编译内核前用户可以自行设定(通过编辑Makefile文件)。 22/35
内核与模块的编译、安装步骤 • make dep:生成依赖关系 • make bzImage:编译内核 • make modules:编译内核模块 • make modules_install:安装内核模块 • make install:安装内核 23/35
make dep • # make dep 在编译内核前,需要使用“make dep”命令生成内核功能间的依赖关系,为编译内核做准备。 24/35
make bzImage • # make bzImage 使用“make bzImage”命令进行内核编译,编译过程将持续相当长的时间(10分钟以上),请耐心等候。 • bzImage 文件 “arch/i386/boot/ ”目录下的bzImage 文件是新编译生成的内核文件。 25/35
make modules • # make modules 使用“make modules”命令编译内核模块,编译过程将持续相当长的时间(10分钟以上)。 26/35
make modules_install • # make modules_install 内核模块编译好后需要安装到Linux系统的相应目录中才可以使用,使用“make modules_install”命令安装内核模块 。 • /lib/modules/ “/lib/modules/ ”目录用于存放Linux系统中的内核模块,内核的各版本都在该目录下建有子目录用于存放内核模块。 27/35
make install • # make install 使用“make install”命令安装新内核到系统中 ,并且自动为使用新内核做必要的配置。 • vmlinuz-2.4.20-8custom 新编译的内核被放在目录“/boot/ ”中,各内核版本有唯一的文件名称,与内核文件配合使用的initrd映像文件也在此目录中。 28/35
GRUB引导配置 • /etc/grub.conf 内核安装过程已经在GRUB启动引导器的配置文件“grub.conf”中对新内核的引导进行了适当的配置: title Red Hat Linux (2.4.20-8custom) root (hd0,0) kernel /boot/vmlinuz-2.4.20-8custom ro root=LABEL=/ initrd /boot/initrd-2.4.20-8custom.img 29/35
使用新内核启动 • # reboot 重新启动系统,并选择新内核进行引导。 30/35
本章总结 • Linux中内核与内核模块的概念 • 内核源码的获取 • 内核的配置界面 • 内核的配置选项 • 内核及模块的编译与安装过程 31/35
实验目标 • 在Linux系统中了解主机的硬件信息 • 掌握Linux内核的配置方法 • 掌握Linux内核及模块的编译安装过程 • 使用新内核引导系统运行 32/35
实验环境要求 • 装有Red Hat Linux 9操作系统的主机 • Red Hat Linux 9的安装光盘一套 • 一人一台机器,一人一组 33/35
实验完成标准 • 内核配置正确 能够正确的生成内核配置文件“.config” • 内核及模块编译正常 编译过程能够顺利完成,并正确生成内核文件 34/35
实验完成标准(续) • 内核及模块安装正确 内核文件安装到“/boot”目录 内核模块文件安装到“/lib/modules”目录 • 内核启动、工作正常 在GRUB启动菜单中选择新内核引导系统启动,启动过程正常,能够正常进行用户登陆并运行程序 35/35