Kernel——linux的核心

Linux Kernel:


CentOS 启动流程:POST –> BootLoader(BIOS,MBR) –>Kernel(initrd) –> rootfs –> switch_root –> /sbin/init

         root (hd0,0)

         kernel

         initrd

ldd命令:

         ldd – print shared library dependencies

        ldd [option]… FILE

内核设计体系:单内核、微内核


·Linux:单内核设计,但充分借鉴了微内核体系的设计的优点;为内核引入了模块化机制

·内核的组成部分:

         kernel:内核核心。一般为bzimage,通常位于/boot目录,名称为vmlinuz-VERSION-release

         kernel object:内核对象,即内核模块,一般放于/lib/modules/VERSION-release/

                 内核模块于内核核心版本一定要严格匹配:

                

                 [ ]:N

                 [M]:Module

                 [*]:Y,编译进内核核心

                

                 内核:动态装载和卸载

        

         ramdisk:辅助性文件,并非必须,这取决于内核是否能直接驱动rootfs所在的设备

                 目标设备驱动:例如SCSI设备的驱动

                 逻辑设备驱动:例如LVM设备的驱动

                 文件系统:例如xfs文件系统

                

                 ramdisk:是一个简装版的根文件系统

·内核信息获取:

         uname命令:

                 uname – print system information

                

                 格式:uname [OPTION]…

                         -r:内核的release号

                         -n:主机名

                         -a:显示所有信息

·模块信息获取和管理:

        ·lsmod命令:

                 lsmod – program to show the status of modules in the Linux Kernel

                显示的内核信息来自于/proc/modules

        

        ·modinfo命令:

                 modinfo – program to show information about a Linux Kernel module

                

                 modinfo [ -F field ]  [ -k kernel ]  [ modulename|filename… ]

                         -F field:仅显示指定字段的信息

                         -n:显示文件路径

                

        ·modprobe命令:

                 modprobe – program to add and remove modules from the Linux Kernel

                

                 modprobe [-r] module_name

                         模块的动态装载:modeprobe module_name

                         模块的动态卸载:modeprobe -r modele_name

                                 网卡模块:e1000

        

        ·depmod命令:

                 depmod – program to generate modules.dep and map files

                内核模块依赖关系文件的生成工具

        

        ·模块的装载和卸载的另一组命令:

                 insmod命令:

                         insmod [filename] [module options…]

                                 filename:模块文件的文件路径

                

                 rmmod命令:

                         rmmod [module_name]

·ramdisk文件的管理:

         (1) mkinitrd命令:

                 为当前使用中的内核重新制作ramdisk文件:

                 mkinitrd [OPTION…] [<initrd-image>] <kernel-version>

                         –with=<module>:除了默认的模块之外需要装载至initramfs中的模块

                         –preload=<modele>:initramfs所提供的模块需要预先装载的模块

                

                 示例:# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

        

         (2)dracut命令

                 dracut – create initial ramdisk images for preloading modules

                

                 dracut [OPTION…] [<image>[<kernel version>]]

                

                 示例:# bracut /boot/initramfs-$(uname -r).img $(uname -r)

·内核信息输出的伪文件系统:

         ·/proc:内核状态和统计信息的输出接口;同时,还提供一个配置接口,/proc/sys

                 参数:

                         只读:信息输出;例如/proc/#/*

                         只写:可接收用户指定一个“新值”来实现对内核某功能或特性的配置;/proc/sys/

                

                         /proc/sys:

                                 net/ipv4/ip_forward相当于net.ipv4.ip_forward

                        

                         (1)sysctl命令

                                 专门用于查看或设定/proc/sys目录下参数的值

                                 sys [option] [variable[=value]]

                                         查看:

                                                 # sysctl -a

                                                 # sysctl variable

                                         修改其值:

                                                 # sysctl -w variable=value

                        

                         (2)文件系统命令 (cat,echo)

                                 查看:

                                         # cat /proc/sys/PATH/TO/SOME_KERNEL_FILE

                                 设定:

                                         # echo "VALUE" > /proc/sys/PATH/TO/SOME_KERNEL_FILE

                        

                         注意:上述两种方式的设定仅对当前运行内核有效

                        

                         (3)配置文件:/etc/sysctl.conf ,/etc/sysctl.d/*.conf

                                 修改配置文件后,立即生效的方式:

                                         sysctl -p [/PATH/TO/CONFIG_FILE]

                

                         内核参数:

                                 net.ipv4.ip_forward:核心转发

                                 vm.drop_caches:虚拟内存caches

                                 kernel.hostname:主机名

                                 net.ipv4.icmp_echo_ignore_all:忽略所有ping操作

                                 0:开启   1:关闭

         ·/sys目录:

        

                 sysfs:输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特殊的可设置参数,对此些参数的修改,即可定制硬件设备工作特性

                

                 udev:同读取/sys目录下的硬件设备信息按需为各硬件设备创建文件:udev是用户空间程序;专用工具:devadmin,hotplug

                

                 udev为设备创建设备文件时,会读取其事先定义好的规则文件,一般在/etc/udev/rule.d/目录下,以及/usr/lib/udev/rules.d/目录下

原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/45557

(0)
megedugaomegedugao
上一篇 2016-09-11 17:43
下一篇 2016-09-11 18:59

相关推荐

  • 搭建简单的ftp和http

    搭建简单的ftp和http 我们主要尝试光盘和编译两种方式安装 ftp 首先我们先安装ftp ftp可以用来做文件传输,也可以搭建ftp作为我我们的网络yum源 首先我们要先把镜像连接到我们的Linux中 进入/etc/yum.repos.d/创建一个.repo结尾的文件,在里面配置自己的yum源 [base] baseurl=file:///misc/cd…

    2017-06-15
  • 学习linux第四天

    Linux学习第4天   Linux内部命令和外部命令    内部命令:实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部…

    Linux干货 2016-10-29
  • 计算机操作系统简史 以及 终端类型

    计算机及操作系统发展史 1.计算机的主要部件 :ENIARC         Cpu:运算器  控制器(控制内存,IO总线)      存储器是寄存器(锁存数据)  缓存(加速功能)    内存:ram (random access mem…

    Linux干货 2016-10-19
  • DNS 笔记

    Ø DNS查询。工作流程如下图         n  客户端的DNS:8.8.8.8 /etc/hosts  14.215.177.38 www.baidu.com n  客户端访问www.baidu.com 不用向DSN服务器发生查询,只需要查询本地的 /e…

    Linux干货 2016-08-15
  • 入门——计算机基础简介

    一、计算机系统 计算机系统:由硬件(Hardware)系统和软件(Software)系统俩大部分组成 二、计算机硬件 计算机(computer):是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速的处理,然后把处理结果输出的现代化电子设备。 计算机硬件组成部分 冯.诺依曼体系结构: 1946年数学家冯.诺依曼提出运算器、控制器、存储器、…

    2018-03-27
  • 深入解析:分布式系统的事务处理经典问题及模型(转载分享)

    摘要:分布式系统需要在数据完整、一致性和性能间做平衡。本文系统介绍了处理分布式数据一致性的技术模型,如:Master-Slave,Master-Master,2PC/3PC,经典的将军问题,Paxos,以及Dynamo的NRW和VectorClock的模型。 编者按:数据服务的高可用是所有企业都想拥有的,但是要想让数据有高可用性,就需要冗余数据写多份。写多份…

    Linux干货 2015-04-04