内核组成: uname命令

内核:uname,mkinitrd,dracut

模块: lsmod,modinfo,depmod,modprobe,insmod,rmmod

/proc,sysctl,/sys,/dev,udevadm,hotplug命令

内核编译

Linux内核组成

内核文件 bzImage  位置: /boot/vmlinuz-VERSION-RELEASE

内核模块 .ko     位置: /lib/modules/VERSION-RELEASE

辅助文件 initramfs(CentOS 6,7) , initrd (CentOS5)

查看内核相关的信息

uname显示系统(kernel)信息

-s 显示操作系统名称

-n 显示当前主机名称: 显示节点名称

-r 显示VERSION及RELEASE号

-v 显示内核制作信息号 SMP 对称多处理器

-m 当前硬件平台 x86_64

-p 显示处理器类型或架构 x86_64

-i 硬件架构 x86_64

-o 操作系统(GNU/Linux)

使用示例1、系统信息

# uname

Linux

# uname -o

GNU/Linux

2、显示节点名称

# uname -n

localhost.localdomain

# cat /proc/sys/kernel/hostname

localhost.localdomain

# hostname

localhost.localdomain

3、显示version-release号

# uname -r

2.6.32-696.el6.i686

4、内核制作版本号

# uname -v

#1 SMP Tue Mar 21 18:53:30 UTC 2017

5、当前硬件平台

# uname -m

i686

6、处理器架构

# uname -p

i686

7、硬件架构

# uname -i

i386

8、操作系统

# uname -o

GNU/Linux

辅助文件: initramfs,initrd

生成mv /boot/initramfs-VERSION-RELEASE.img /root

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

dracut /boot/initramfs-$(uname -r).img $(uname -r)

展开1、查看文件的类型

file

2、改名.gzip结尾

mv

3、解压

gzip -d

4、查看文件类型

file

5、展开

install -d initrd

cd initrd

cpio -id

Linux内核模块

吸收微内核设计:支持模块化设计:

内核中模块 .ko (kernel object)

程序调用的库 .so (share object)

内核模块相当于程序的库的概念,只是模块只能被kernel调用。库只能被程序调用

编译成模块:  [M]

编译进内核:   [*]

不编译此功能:  [ ]

查看所有已经装载的模块lsmod# lsmod

Module     Size        Used by

模块       大小        使用次数

查看模块信息modinfo

模块路径 -n

显示指定内核的模块信息 -k kernel

显示模块的描述 -d

模块的参数 -p

License -l

Author -a

1、显示所有信息

# modinfo ext4

filename:       /lib/modules/2.6.32-696.el6.i686/kernel/fs/ext4/ext4.ko

license:        GPL

description:    Fourth Extended Filesystem

author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others

srcversion:     74AEE2BDA63AC8482A78F4D

depends:        mbcache,jbd2

vermagic:       2.6.32-696.el6.i686 SMP mod_unload modversions 686

2、仅显示filename

# modinfo -n ext4

/lib/modules/2.6.32-696.el6.i686/kernel/fs/ext4/ext4.ko

3、仅显示License

# modinfo -l ext4

GPL

4、仅显示description

# modinfo -d ext4

Fourth Extended Filesystem

5、仅显示作者

# modinfo -a ext4

Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others

6、显示模块参数

# modinfo -p ext4

生成模块的依赖关系depmod

为指定内核生成依赖 -b

/boot/system.map-VERSION-RELEASE 内核依赖的模块及库

/lib/modules/VERSION-RELEASE/modules.dep.bin 模块的依赖关系

装载模块modprobe MODULE 或 insmod $(modinfo -n MODULE)# modprobe pcnet32

# lsmod | fgrep pcnet32

pcnet32                29107  0

mii                     4476  1 pcnet32

安装pcnet32模块

# insmod $(modinfo -n pcnet32)

insmod: error inserting '/lib/modules/2.6.32-696.el6.i686/kernel/drivers/net/pcnet32.ko': -1 Unknown symbol in module

查看依赖

# modinfo pcnet32

depends:        mii

依据路径安装被依赖的模块

# insmod $(modinfo -n mii)

查看是否安装

# lsmod | fgrep mii

mii                     4476  0

安装Pcnet32

# insmod $(modinfo -n pcnet32)

查看是否安装

# lsmod | fgrep pcnet32

pcnet32                29107  0

mii                     4476  1 pcnet32

#

拆除模块modprobe -r MODULE 或 rmmod MODULE# modprobe -r pcnet32

# lsmod | fgrep pcnet32

#

# rmmod pcnet32

# lsmod | fgrep pcnet32

#

/proc目录

只读 内核内部统计、状态信息

可写 可配置参数,/proc/sys目录中,由sysctl命令控制,内核性能调整

临时生效:echo 'STRING' > /proc/sys/kernel/hostname , sysctl -w kernel.hostname='STRING'

永久有效:/etc/sysctl.conf

sysctl命令

-p CONFIG_FILE       读取文件设定参数

-w PARAMETER='VALUE' 设定内核参数

# echo 'VALUE' > /proc/sys/kernel/hostname

# sysctl -w kernel.hostname='VALUE'

主机名: /proc/sys/kernel/hostname

路由转发: /proc/sys/net/ipv4/ip_forward     1:开启; 0:关闭

cache/buffer回收: /proc/sys/vm/drop_caches   1: dropcache

-a 显示所有内核参数

-p 重读配置文件  配置文件: /etc/sysctl.conf

路由转发: 打开路由转发时,一个网卡的用户能够ping通另一个网卡所在网络的主机临时生效

1、查看主机名

# cat /proc/sys/kernel/hostname

localhost.localdomain

2、设置主机名

# echo "Lcc.org" > /proc/sys/kernel/hostname

# cat /proc/sys/kernel/hostname

Lcc.org

# hostname

Lcc.org

3、设定主机名

# sysctl -w kernel.hostname="lcc.org"

kernel.hostname = lcc.org

4、查看主机名

# hostname

lcc.org

# cat /proc/sys/kernel/hostname

lcc.org

永久有效

# cp /etc/sysctl.conf{,.bak}

# echo "kernel.hostname=magedu.com" >> /etc/sysctl.conf

# hostname

lcc.org

# sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

kernel.hostname = magedu.com

# hostname

magedu.com

/sys目录

内核探测的硬件信息

kernel 2.4- /dev/目录下事先创建所有设备文件,/dev/目录文件多,造成大量空间浪费

kernel 2.4+ /dev/目录下按需生成设备文件,kernel临时探测,按需创建,节约空间

udev工具: udevadmin,hotplug

简易编译内核

1)获取源码

2)开发环境

3)查看目标主机的硬件设备信息

4)目标实际需要

1、获取源码

**小于3.10版本

2、展开至/usr/local/目录

3、创建符号链接

5、编译

1、设置release号

2、设置主机名

3、设置支持NTFS文件系统

4、设置支持的网络驱动

general setup

Local version - append to kernel release

-1.os.cpu

((none)) Default hostname 默认主机名

File systems

JFS

GFS2

Btrfs

DOS/FAT

NTFS

Device drivers

Netowrk device support

Enternet driver support

打开一个虚拟的屏幕:

退出: ctrl + a 松开a后按d

列出: screen -ls

连接回: screen -r ID

5、编译

make -j #

# lscpu 中 cpu(s) 后的数字为cpu核心数

6、安装

linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核相关推荐

  1. linux环境下ps命令行,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 Linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运 ...

  2. linux编程运行命令,如何运行linux程序

    原标题:如何运行linux程序 搞懂linux程序如何运行是一件重要的事情,这是为我们进一步发展打下了坚实基础的一步.本文将通过实例来详细地讲解如何运行linux程序.希望对于大家理解有帮助. 首先, ...

  3. Linux下dislocate命令用法,在 Linux 中遨游手册页的海洋 | Linux 中国

    原标题:在 Linux 中遨游手册页的海洋 | Linux 中国 Linux 系统上的手册页可以做的不仅仅是提供特定命令的信息.它们可以帮助你发现你没有意识到的命令. https://linux.cn ...

  4. 清理linux 服务器的命令行,使用Linux上的Magic SysRq键修复冻结的X服务器,清理重新启动并运行其他低级命令 | MOS86...

    在Linux中,魔术SysRq键可以直接发送命令到Linux内核.您可以使用它来恢复冻结或干净地重新启动系统,即使没有任何反应. 魔术SysRq键是作为Linux键盘驱动程序的一部分实现的 - 只要L ...

  5. linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件

    一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...

  6. linux设置历史命令保留数目限制,linux下修改history命令保存条数

    在linux系统下.history命令会保存多少条命令呢?曾在一本书上说,如果注销系统,那么会将所有的历史命令都定入到~/.bash_history, 但只保留1000条命令(这个是由默认的shell ...

  7. linux文件编辑命令详细整理,Linux文件编辑命令vi详细说明

    目录 1.引言 2.vi命令与vim命令 3.vi命令使用 3.1一般模式 3.2编辑模式(重点) 3.3命令行模式 1.引言 相信有很多程序员朋友,在长时间不操作linux系统或者初学linux命令 ...

  8. linux 网络io命令详解,Linux下五种网络IO模型详解

    本文我们主要来了解一下Unix/Linux下5种网络IO模型:blocking IO, nonblocking IO, IO multiplexing, signal driven IO, async ...

  9. linux运维命令日志管理,Linux运维实战第二天:Linux基础命令之文件处理命令

    这次博客的主要内容是基础命令,虽然普通的命令没技术含量,但是有技术含量的都是以普通的命令为基础.千里之行始于足下,Let's Go! Linux中的命令分为内部命令和外部命令两种: 内部命令:是she ...

  10. linux中which命令详解,Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

最新文章

  1. 20101029总结
  2. 本地yum源简单配置
  3. 创建了联合索引还用在单个字段上创建索引吗_数据库 索引并不是万能的
  4. 必须采用初始化列表一共有三种情况
  5. halcon的算子清点: Chapter 2-3-4 控制、开发、文件操作
  6. Ubuntu 14 配置Android Studio的快捷启动方式
  7. linux centos7不能ssh免密登录自己的问题解决
  8. r语言 去除双引号_tidyfst vs pandas(12):去除重复条目
  9. mongodb中Gson和java##Bean对象转化类
  10. MVC3.0+DWZ探索
  11. java程序流程控制_java程序流程控制
  12. pdf php 添加元数据,PDF怎么添加/清除元数据-PDF添加/清除元数据的方法 - 河东软件园...
  13. primefaces教程_Primefaces,带有JPA的Spring 4(Hibernate 4 / EclipseLink)示例教程
  14. python 闭包的作用_python中对闭包的理解
  15. 电机学、电机拖动相关知识(试着更新电机的相关知识,感谢指出错误)
  16. PSP 版本6.60 破解 PRO-B10自制系统升级图文教程
  17. TCP/IP、HTTP、HTTPS
  18. 究竟什么是token??
  19. 【美国大学生数学建模比赛】2020C题(总结和原创参赛论文)百度云请自取
  20. html safari图片不显示,html - 某些FA图标显示在FF,Chrome和Safari中,但没有浏览器会全部显示它们 - 堆栈内存溢出...

热门文章

  1. 梅特勒托利多电子秤显示EEP服务器错误,托利多电子秤TCII故障维修方法(一)...
  2. TKinter —— GUI in python  4. Handing User Event 小组件 赋功能 (概念 必看!)
  3. 嵌入式linux检测U盘拔插
  4. xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at:
  5. python 直方图 横向_python绘制直方图
  6. android mac 探针,wifi探针获取手机mac地址
  7. 域名被微信屏蔽如何解决
  8. 19. 卫健委官网医院查询爬虫+验证码识别(云打码)综合案例
  9. 高景一号01星遥感影像解译数据分辨率是多少
  10. apache评分表的意义_APACHE-II评分系统表.doc