核心:/boot/vmlinuz-version

模块:.ko/lib/modules/version/

内核设计:

  1、单内核:linux

            模块化设计

  2、微内核

装载模块:

 insmod

 modprobe

用户空间访问,监控内核的方式:

/proc

/sys

伪文件系统

/proc/sys/:该目录下文件很多是可读写

/sys/:某些文件也是可读写的

设定内核参数的方法

   清除cache和buffer :

      echo 1 >/proc/sys/vm/drop_caches | sysctl -w vm.drop_caches=1

      sysctl -w kernel.hostname="www"  //省略/proc/sys/

立即生效,重启无效。

永久有效,不能立即有效:

      /etc/sysctl.conf

      sysctl -p //通知内核重读/etc/sysctl.conf文件

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

内核模块管理

  lsmod:列出当前系统装载的模块名称、大小和被使用了几次

  modprobe MOD_NAME:转载模块

  modprobe -r MOD_NAME:卸载模块

  modinfo:查看模块的具体信息

  insmod /PATH/TOMOD_NAME:装载mod

  rmmod MOD_NAME:移除mod

  depmod /PATH/TO/MODFILE_DIR/:生成mod依赖关系文件,保存在同一目录中。

内核中的功能除了核心功能外,在编译时,大多功能有三种选择:

  1、不使用此功能

  2、编译成内核模块

  3、编译进内核

如何编译内核(必须使用相同的内核版本编译)

  yum groupinstall Development tools

             Compatibility libraries

  内核源码保存与/usr/src/目录下,tar时使用-C指定该目录,在该目录下创建软连接文件linux。

    图形界面编译   make  gconfig

    安装图形开发库      kconfig

    文本环境编译   make menuconfig 

               make

               make modules_install

               make install

 screen命令:

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

   ctrl+a,d :拆除屏幕

   screen -r id:还原会某屏幕

   exit:退出

 二次编译时清理

   make clean 

   make mrproper

 手工创建initrd

 一、  mkinitrd  文件路径  内核版本

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

      gzip -d initrd.img.gz   //解压缩initrd

      cpio -id < ..initrd.img //展开归档

      或

      zcat /boot/initrd.img  | cpio -id

 二、  vi init

      修改根路径

 三、  重新生成initrd文件

      find . |cpio -H newc --quiet -o |gzip >/boot/initrd.img 

bash截取

     FILE=/usr/local/src

     echo ${FILE##*/}

      src

     echo ${FILE %#/*}

     /usr/local

截取库文件

     grep -o "/.*/lib\(64\)\{0,1\}/[^[:space:]]\{1,\}