设为首页 收藏本站
查看: 1071|回复: 0

[经验分享] Linux系统启动流程之kernel

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-21 12:41:41 | 显示全部楼层 |阅读模式
Linux系统启动流程之kernel

1、内核参数修改方法:

2、内核内核模块管理:

3、内核编译
用户空间访问、监控内核的方式:/proc, /sys
伪文件系统

/proc/sys: 此目录中的文件很多是可读写的
/sys/: 某些文件可写


  1、内核参数修改方法:
echo VALUE > /proc/sys/TO/SOMEFILE
sysctl -w kernel.hostname=

[iyunv@localhost vm]# free -m
  total   used   free   shared    buffers     cached
Mem:    7983  541  7442  0  149  269
-/+ buffers/cache:  123   7860
Swap:    4094    0 4094
[iyunv@localhost vm]# echo 1 > /proc/sys/vm/drop_caches
[iyunv@localhost vm]# free -m
total  used   free  shared  buffers  cached
Mem:  7983  125  7857   0  0  9
-/+ buffers/cache: 115  7867
Swap: 4094  0  4094
[iyunv@localhost kernel]# sysctl -w vm.drop_caches=1
vm.drop_caches = 1
[iyunv@localhost kernel]# free -m
total  used   free  shared  buffers  cached
Mem:  7983  125  7857   0  0  9
-/+ buffers/cache: 115  7868
Swap: 4094  0  4094

[iyunv@localhost kernel]# cat /proc/sys/kernel/hostname
localhost.localdomain
[iyunv@localhost kernel]# echo wfx >/proc/sys/kernel/hostname
[iyunv@localhost kernel]# hostname
wfx
[iyunv@localhost kernel]# sysctl -w kernel.hostname="local.com"
kernel.hostname = local.com
[iyunv@localhost kernel]# hostname
local.com

[iyunv@localhost kernel]# cat /proc/sys/net/ipv4/ip_forward
0
[iyunv@localhost kernel]# vim /etc/sysctl.conf    #修改文件永久有效,但不能立即生效

# Kernel sysctl configuration file for Red Hat Linux
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1    # 0修改为1
...

[iyunv@localhost kernel]# sysctl -p    #立即生效
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
[iyunv@localhost kernel]# cat /proc/sys/net/ipv4/ip_forward   #验证
1
[iyunv@localhost kernel]# sysctl -a |wc -l #显示所有内核参数及其值
635

  2、内核内核模块管理:
lsmod:   查看

modprobe MOD_NAME:装载某模块
modprobe -r MOD_NAME: 卸载某模块

modinfo MOD_NAME: 查看模块的具体信息

insmod /PATH/TO/MODULE_FILE: 装载模块  
rmmod MOD_NAME: 卸载某模块
depmod /PATH/TO/MODILES_DIR 安装驱动时内核模块必须同一版本

[iyunv@localhost kernel]# lsmod |grep floppy
floppy                 95465  0
[iyunv@localhost kernel]# modprobe -r floppy   #删除模块floppy
[iyunv@localhost kernel]# lsmod |grep floppy
[iyunv@localhost kernel]# modprobe floppy   #加载模块floppy
[iyunv@localhost kernel]# lsmod |grep floppy
floppy                 95465  0
[iyunv@localhost kernel]# modinfo floppy
filename:/lib/modules/2.6.18-164.el5/kernel/drivers/block/floppy.ko  #文件路径
alias:  block-major-2-*
license:GPL           #许可证
author: Alain L. Knaff
srcversion:F532F52860888E835BB857C
depends:                  #无依赖模块
vermagic:2.6.18-164.el5 SMP mod_unload gcc-4.1
parm:  floppy:charp
parm:  FLOPPY_IRQ:int
parm:  FLOPPY_DMA:int
module_sig:883f3504a8b7cf4bd273d74512bb1123df09e372bd75c92d020dd4b4fc61c617dd1534e826ec209f4bf9199f6f44b9471d2683a52c2b99aead71e

[iyunv@localhost kernel]# modprobe -r floppy  #删除模块floppy
[iyunv@localhost kernel]# insmod floppy    #装载模块,不是指定名称,而是指定文件名路径
insmod: can't read 'floppy': No such file or directory
[iyunv@localhost kernel]# insmod /lib/modules/2.6.18-164.el5/kernel/drivers/block/floppy.ko
[iyunv@localhost kernel]# lsmod |grep floppy  #验证加载模块floppy成功
floppy    95465  0
[iyunv@localhost kernel]# rmmod floppy   #删除模块floppy方法二
[iyunv@localhost kernel]# lsmod |grep floppy
[iyunv@localhost kernel]#


  3、内核编译
内核中的功能除了核心功能之外,在编译时,大多功能都有三种选择:
1、不使用此功能;
2、编译成内核模块;
3、编译进内核;

如何手动编译内核:
make gconfig: Gnome桌面环境使用,需要安装图形开发库组:GNOME SoftwareDevelopment
make kconfig: KDE桌面环境使用,需要安装图形开发库

[iyunv@localhost yum.repos.d]# yum grouplist
Loaded plugins: rhnplugin, security
Repository CD-ROM is listed more than once in the configuration
This system is not registered with RHN.
RHN support will be disabled.
Setting up Group Process
CD-ROM/group                                                                                   | 1.0 MB     00:00     
Installed Groups:
...
Available Groups:
   Authoring and Publishing
   Development Libraries
   Development Tools
...
[iyunv@local linux]# yum groupinstall "Development Tools" "Development Libraries" -y
运行时间:10-100min

[iyunv@localhost yum.repos.d]# yum grouplist
Installed Groups:     #已安装群组

   Development Libraries
   Development Tools
...
Available Groups:     #未安装可备用群组
   Authoring and Publishing
...

内核包下载地址:https://www.kernel.org/pub/linux/kernel/v2.6/

   14-Aug-2004 11:13   43M[iyunv@JackTest ~]# tar xf linux-2.6.8.1.tar.gz -C /usr/src/
[iyunv@JackTest ~]# cd /usr/src/
[iyunv@JackTest src]# ls
kernels  linux  linux-2.6.8.1  redhat
[iyunv@JackTest src]# ln -sv linux-2.6.8.1 linux
`linux/linux-2.6.8.1' -> `linux-2.6.8.1'
[iyunv@JackTest src]# ls
kernels  linux  linux-2.6.8.1  redhat
[iyunv@JackTest src]# cd linux
[iyunv@JackTest linux]# ls -al
...
-rw-r--r--  1 root root  79210 2007-10-31 02:01 .config
...
[iyunv@JackTest linux]# cp /boot/config-2.6.23.1-42.fc8 /usr/src/linux/.config
cp: overwrite `/usr/src/linux/.config'? y
[iyunv@JackTest linux]# ls -al  #使用本机正常使用的内核版本文件做二次编辑,降低出错率
...  

-rw-r--r--  1 root root  79210 2016-11-19 15:49 .config   

...
[iyunv@JackTest linux]# make menuconfig  #必须在linux目录下执行后进入文本模式
30MIN--5H      编辑后的设置存到.config中

QQ截图20161121124125.png
第1步、make menuconfig: 打开文本下的图形窗口

第2步、make
第3步、make modules_install
第4步、make install


   screen命令:  连接断开也能再次打开

screen -ls:  显示已经建立的屏幕
screen:     直接打开一个新的屏幕
    Ctrl+a, d:  拆除屏幕,可还原回来

screen -r ID:  还原回某屏幕
exit: 退出

[iyunv@fox linux]# yum install screen
[iyunv@fox ~]# screen -ls
There are screens on:
    8231.pts-4.fox    (Detached)
    8200.pts-0.fox    (Detached)
2 Sockets in /var/run/screen/S-root.
[iyunv@fox ~]# screen -r 8231

二次编译时清理,清理前,如果有需要,请备份配置文件.config:
make clean   清理配制好的二进制模块

make mrproper    清除所有残留的文件,包括.config文件

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-303448-1-1.html 上篇帖子: CPU、内存、IO负载过高排障方法及解决方案 内存使用过高... 下篇帖子: Centos安装升级python,ipython,pip Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表