Linux系统启动流程及内核编译(2)

1.内核设计:有单内核和微内核之分

linux属于单内核的模块化设计

系统内核核心路径:/boot/vmlinuz-版本号

内核模块路径: /lib/modules/版本号/

linux分为内核空间和用户空间

而用户空间通过访问和监控内核:路径在/proc/和/sys/两个伪文件系统

2.伪文件系统/proc/sys和/sys/有些目录中文件是可读或可写的

设定内核参数值的方法:

2.1.能立即生效,但重启系统设定无效

2.1.1.echo 值  > /proc/sys/TO/SOMEFILE

2.1.2.sysctl -w kernel.hostname=willow.com.tw

3.通过修改/etc/sysctl.conf配置文件可永久有效

但执行如下命令可立即生效:

sysctl -p 让内核重新加载/etc/sysctl.conf配置文件

sysctl -a: 显示所有内核参数及其值

4.内核模块管理:

lsmod: 查看

modprobe 模块名称:装载某模块

modprobe -r 模块名称: 卸载某模块

modinfo 模块名称: 查看模块的具体信息

insmod 模块路径名称.ko: 装载模块

rmmod 模块名称:卸载某模块

depmod 模块目录:分析可载入模块的相依性

5.手动编译内核:

提前安装"Development Tools"和"Development Libraries"和"Server Platform Development"

5.1:选择或取消指定的模块

make gconfig: Gnome桌面环境使用,需要安装图形开发库组:GNOME Software Development

主要包确认安装:gtk+ gtk-devel libglade2-devel

make kconfig: KDE桌面环境使用,  需要安装图形开发库组; KDE Software Development

make xconfig:Gnome桌面环境使用

主要包确认安装:qt qt-devel

make menuconfig:文本环境下使用

主要包确认安装:ncusres ncurse-devel

5.2:编译

make

make modules(可选)

5.3:将编译的模块复制到指定的目录和文件中或修改文件

make modules_install 复制模块至/lib/modules/目录下

make install      复制启动系统内核和镜像文件等(含编辑grub.conf 文件)

5.4.如果编译出现报错或想二次编译

需清理时但清理前,如有需要,请备份配置文件.config:

make clean  删除大多数编译的文件,但不删除.config文件

make mrproper  删除所有编译的文件,包括.config文件

5.5:制作initrd-XXX-XXX.img系统镜像文件

mkinitrd  initrd文件路径  内核版本号

mkinitrd  /boot/initrd-`uname -r`.img  `uname -r`

dracut  /boot/initrd-`uname -r`.img  `uname -r` (redhat6新工具)

6.screen命令:

screen: 直接打开一个新的屏幕

Ctrl+a, d: 拆除屏幕

screen -ls: 显示已经建立的屏幕及ID号

screen -r ID号: 还原指定的屏幕

exit: 退出

时间: 2024-12-13 16:02:43

Linux系统启动流程及内核编译(2)的相关文章

Linux系统启动流程、内核及模块管理

Linux系统启动流程.内核及模块管理 Linux系统的组成部分组成:内核+根文件系统(kernel+rootfs)内核(kernel): 进程管理(创建.调度.销毁等).内存管理.网络管理(网络协议栈).驱动程序.文件系统.安全功能IPC:Inter Process Communication机制本地进程间通信机制:消息队列.semerphor.shm(共享内存)跨主机进程间通信机制:socket等运行中的系统环境可分为两层:内核空间.用户空间内核空间(模式):内核代码(特权级操作-->系统调

Linux系统启动流程分析与关机流程

Linux 系统启动流程分析 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端. 用户登录系统. init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab. Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf. Systemd: systemd, CentOS 7,配置文件: /usr/lib/

Linux系统启动流程与内管管理(上)

在讲linux系统启动流程之前,来讲讲linux的组成,这样能能帮助我们深入了解系统的启动流程,废话不多说直接上系统启动流程图 linux组成 linux:kernel+rootfs kenrel的作用:进程管理.内存管理.网络管理.驱动程序.文件系统.安全管理等 rootfs:程序和glibc 库:函数结合,function,调用接口(头文件负责传输) 过程调用:procedure,无返回值 函数调用:function 程序:二进制执行文件 内核设计流派 单内核:把所有功能集成与一个程序 如:

Linux系统管理(二):Linux系统启动流程

Linux系统启动流程 从11月底报名马哥的Linux培训班,12月初真正开始学习,已经过去一个多月的时间了,从学习Linux的发展史开始.跟着学习命令行.文件系统挂载与管理.目录.Bash Shell的基本特性等等,Linux真的是博大精深,今天以CentOS 5,CentOS 6的启动过程进行一下简单的总结.由于才疏学浅,知识所限,有些地方分析不妥之处还请各位高手不吝赐教. 系统启动过程主要经过以下几个流程: POST>BootSequence(BIOS)>Bootloader(MBR)&

Linux入门之CentOS7内核编译三部曲(3)

Linux入门之CentOS7内核编译三部曲(3) 在上篇通过一些简单的例子和使用介绍了linux系统中模块的功能和作用.那么每次系统启动完成之后,又是怎么去自动加载所需要的模块,那么回过头来看还是要连续模块加载具体在系统启动中的哪个阶段开始触发的.同时模块的加载是依据内核本身的预定程序,还是linux文件系统中的相应配置文件呢? 默认安装的模块文件路径:/lib/modules/$(uname -r)/kernel,如: #查看内核模块列表目录 [[email protected] ~]# l

【转载】Linux系统启动流程

原文:Linux系统启动流程 POST(Power On Self Test/上电自检)-->BootLoader(MBR)-->Kernel(硬件探测.加载驱动.挂载根文件系统./sbin/init) -->init(/etc/inittab:设定默认级别.系统初始化脚本.启动及关闭对应级别的服务.启动终端) 第1步 计算机电源接通后,CPU默认执行 0ffffh:0000h 处的指令(8086是这样,386应该类似),而此内存地址应该存放的就是 BIOS ROM .系统将有一个对内部

linux基础-附件1 linux系统启动流程

附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口).现在大部分的BIOS允许你从软盘.光盘或者硬盘中选择一个来启动计算机.下一步,计算机将从你所选择的存储设备中读取起始的512 bytes(比如光盘一开是的512 bytes,如果我们从光盘启动的话).这512 bytes叫做主引导记录MBR (mast

Linux系统启动流程及grub重建(1)

日志系统 Linux系统启动流程 PC: OS(Linux) POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab) 启动的服务不同:    运行级别:0-6        0:halt        1: single user mode, 直接以管理员身份切入, s,S,single        2:multi user m

Linux系统启动流程(4)制作自定义linux之一

Linux系统启动流程(4)制作自定义linux之一 平时使用的服务器类型的linux系统一般都会装载各种软件与服务,而在某些情况下,并不能一直直接使用公司管理的系统,一是可能会出现故障,二是在处理一些小问题下可能无需如此庞大的linux.于是根据前几篇所讲的linux中的Centos6版本的系统启动流程,可以对其仿制一个微型的linux系统,里面只添加以下需要的工具即可. 以CentOS6为模板为例: 1.准备环境:VM的操作 这里以VM虚拟机模拟,所有直接对安装了CentOS的虚拟机添加一个