内核编译及管理


内核(Kernel)
负责管理系统的进程、内存、设备驱动程序、文件和网络系统
包含了驱动主机各项硬件的侦测程序与驱动模块
Linux内核 + 各种自由软件 = 完整的操作系统
linux 内核的存放位置: /boot
查看内核版本
#uname -r
查看发行版本
#cat /etc/redhat-release
#lsb_release -a

内核网站 :www.kernel.org

学习使用内核
通过linux内核的源代码,了解操作系统的工作原理
根据主机硬件的具体情况,定制linux内核
对内核源代码进行修改,以满足特定功能的需要
升级内核
重新编译内核,系统能够更加安全地运行
新的内核为用户提供新功能
新的内核支持较新的硬件设备正常工作
正确配置个性化的内核会使系统运行更快捷、稳定

内核版本


编译内核步骤
检查编译环境是否正常 #rpm -qa | grep gcc
官网下载内核www.kernel.org
安装内核源码包 : 1.make mrproper :配置内核前准备工作 (相当于make clean)
2.make menuconfig : 定制内核配置文件
3.make : 编译内核(时间很长)
make modules : 编译内核模块
4.make modules_install : 安装内核模块
make install : 安装 内核文件
5.查看内核编译有无成功
#uname -r
#ls /boot
#ls /lib/modules/

引导程序配置文件
/boot /grub
/boot/grub/grub.conf (先加载MBR,再寻找这个文件) <—— /etc/grub.conf 软链接

default=0 // 默认引导的菜单项
timeout=5 //选择菜单等待时间
splashimage=(hd0,0)/grub/splash.xpm.gz //启动时的背景图(分辨率和像素相同可以替换,用linux 下的图形工具保存(GNU图形处理器))
hiddenmenu //隐藏GRUB菜单
passwd --md5 $1$TDARd1$1xJFgaNrprkwXEjE1GHee. //passwd 注意顶格,破解方法:进救援模式删掉这一行
title Red Hat Enterprise Linux (2.6.32-279.el6.i686) // 菜单名称,可以随意更改
passwd --md5 $1$TDARd1$1xJFgaNrprkwXEjE1GHee.
root (hd0,0) //这里的root表示内核所在的分区, 以下为 GRUB菜单项配置(MBR加载后进行)
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=102490b8-4135-44f1-a439-7bba50176f7c rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
//内核文件的位置及内核启动参数:
1) 这里的 / 是/boot , 每个分区都有一个根文件系统,刚启动时没有根分区
2) ro 系统启动时根分区为只读挂载
3) 这里的root表示根分区,后面和fstab文件一样有三种写法
4) rhgb (redhat graphics boot)就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后用dmesg也可以看到
quiet表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示 rhgb : red hat grafic boot
initrd /initramfs-2.6.32-279.el6.i686.img // 初始虚拟磁盘的位置
initrd :称为初始化虚拟磁盘,用于帮助加载内核模块,让 Linux 内核在开机过程中不需挂载根目录
就能载入所需要的模块。initrd 可以通过 int13 芯片读取内核模块(驱动程序),当硬盘被驱动后内核就可以挂载根目录了。
其他模块的读取也就没问题了。
initrd /boot /initramfs-2.6.32-220.el6.i686.img 设置 initrd (虚拟化磁盘)镜像文件名。


如何查看硬盘分区的 UUID,我们可以通
过 dumpe2fs /dev/sda1 |more 来查看。

GRUB限制
GRUB菜单限制 密码记录的位置
未经授权禁止修改启动参数 <——全局部分(第一个“title"之前)
未经授权禁止进入指定系统 <——系统引导部分(每个”title“部分之后)

密码设置方式(grub.conf):1.passwd 明文密码串,没多大意义 2.passwd --md5 加密密码串

GRUB限制的实现
使用#grub-md5-crypt获取加密字串
修改grub.conf ,添加密码记录 : passwd --md5 $1$TDARd1$1xJFgaNrprkwXEjE1GHee.(注意顶格)

GRUB中应用文件语法
(磁盘,分区编号)文件绝对路径
磁盘:hd0、hd1 //数字就代表第几个分区
hd0 = hda / sda
hd1 = hdb / sdb
分区编号:从0开始编号 (严格的讲编号是后面的分区号减1,即sdn -1)
(hd1,3) = hdb4 / sdb4
(hd0,7) = hda8 / sda8

内核文件的绝对路径:要参考分区的挂载点

引导程序的功能:编写内核命令行、装载初始化虚拟磁盘、将控制权交给Linux内核
初始虚拟磁盘映像:文件系统映像文件;包含内核引导所需的基本驱动模块;/boot/initrd-2.6.32-279.el6.i686kdump.img
/boot/initrd-kernekversion 微型根文件系统,加载到内存中。为了保证根分区的正常挂载和驱动正常加载,先加载虚拟根目录

Switching root 相当与 chroot


Linux 内核完成的三个步骤
1.用Linux设备驱动程序替换BIOS设备驱动程序(最关键)
2. 把根分区只读挂载
3. 启动init进程 (加载fstab)

内核配置文件(grub.conf)丢失或破坏了怎么办
grub> root (hd0,0)
grub> kernel /vmvmlinuz-2.6.32-279.el6.i686 (补齐)ro root=/dev/sda2
grub> initrd /initramfs-2.6.32-279.el6.i686.img (补齐)
grub> boot
此时可启动系统,启动系统后修复内核配置文件

内核配置文件(grub.conf)配置错误怎么办?
在启动菜单中选择要启动的那个系统,按“p"进入直接修改grub配置

模块:一组功能,完成特定的任务,可以加载和卸载
模块文件扩展名.ko
可以灵活的为内核增加减少相应的功能
默认位于/lib/modules/kernelversion/目录中

模块操作命令
#lsmod : 列出当前已经加载模块/proc/modules
Module Size Used by
rfkill 15242 1 bluetooth — 依赖于该模块的其他模块
/ / /
模块名称 占用内存大小 使用该模块的系统组件数量

#rmmod : 简单卸载指定模块
#modinfo:查看模块信息

#insmod [模块的绝对路径] : 载入指定模块 (绝对路径可以通过moinfo查询)
#modprobe : 载入个别或一组模块(依赖)
-r 卸载模块以及该模块依赖的模块
#depmod : 分析模块的依赖性写入modules.dep文件(和repocreate相似)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值