内核编译

author author     2022-08-28     414

关键词:

核心:/boot/vmlinuz-version

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

内核设计:

  1、单内核:linux

            模块化设计

  2、微内核

装载模块:

 insmod

 modprobe

www.kernel.org

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

/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,}

内核编译安装

以下讲的是内核基础、内核管理、安装编译内核、安装程序anaconda、kickstart。1、内核基础 对于内核,现在有单内核和微内核设计,现在的内核多采用单内核和高度模块化设计,对于模块化设计,可以进行动态装卸载。 内... 查看详情

linux内核编译

内核中的功能除了核心功能之外,在编译时,大多功能都有三种选择:1、不使用此功能;2、编译成内核模块;3、编译进内核;如何手动编译内核:makegconfig:Gnome桌面环境使用,需要安装图形开发库组:GNOMESoftwareDevelopmentmakekconfi... 查看详情

linux内核配置编译以及模块开发(代码片段)

文章目录Linux内核简介Linux体系结构Linux内核架构虚拟文件系统内核源码结构Linux内核配置与编译为什么要配置内核?内核配置方法编译内核过程Linux内核模块开发什么是内核模块内核模块设计安装与卸载模块可选信息模块申明... 查看详情

linux内核配置编译以及模块开发(代码片段)

文章目录Linux内核简介Linux体系结构Linux内核架构虚拟文件系统内核源码结构Linux内核配置与编译为什么要配置内核?内核配置方法编译内核过程Linux内核模块开发什么是内核模块内核模块设计安装与卸载模块可选信息模块申明... 查看详情

1-18编译安装内核支持ntfs文件系统

大纲:源码编译Linux内核使用Linux内核模块实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写功能===================================================================一、源码编译Linux内核通常我们想对内核进行升级时,可通过下... 查看详情

内核编译

...升服务器性能或支持特定的硬件设备,我看可以选择裁剪内核和特定模块的编译。而编译内核则需要以下几个步骤一、环境配置1、最基本的gcc编译器2、openssle-devel包3、 ncurses包(处理图形界面配置)4、kernel源码文件(www.kern... 查看详情

教你如何快速编译安装新内核

随着内核版本的更新换代,你是否有觉得自己的内核版本有些低了呢?如果有的话,没关系,今天小编就来教大家如何编译安装新的内核。在编译安装内核之前先检查我们的虚拟机所在的磁盘空间,预留空间10G以上,不然编译安... 查看详情

如何编译linux版本

参考技术A编译安装内核下载并解压内核解压内核:tarxflinux-2.6.XX.tar.xz定制内核:makemenuconfig参见makefilemenuconfig过程讲解编译内核和模块:make生成内核模块和vmlinuz,initrd.img,Symtem.map文件安装内核和模块:sudomakemodules_installinstall... 查看详情

第五周内核编译与系统调用

内核编译与系统调用任务详情参考“实践2.2编译内核及系统调用”完成相实践出问题参考“编译内核之扩大硬盘空间.docx”附件提交新加系统调用测试结果截图实验截图感受此次试验老是出问题,下载好了内核之后,解压一直出... 查看详情

linux驱动模块编译进内核中

Linux驱动模块编译进内核中BQ27501驱动编译进内核一、       驱动程序编译进内核的步骤在linux内核中增加程序需要完成以下三项工作:1.将编写的源代码复制到Linux内核源代码的相应目录;2.在目录的Kconfig文件中增加新... 查看详情

linux系统移植:内核获取和编译(代码片段)

文章目录Linux系统移植:内核获取和编译一、获取Linux内核二、Linux内核编译Linux系统移植:内核获取和编译一、获取Linux内核Linux由Linux基金会管理与发布,Linux官网为https://www.kernel.org,选取合适的版本来使用就行... 查看详情

内核编译

核心:/boot/vmlinuz-version模块:.ko/lib/modules/version/内核设计: 1、单内核:linux      模块化设计 2、微内核装载模块: insmod modprobewww.kernel.org用户空间访问,监控内核的方式:/proc/sys伪文件系统/ 查看详情

编写Linux内核模块是不是需要编译自己的内核?

】编写Linux内核模块是不是需要编译自己的内核?【英文标题】:DoesWritingLinuxKernelModuleRequireCompilingOwnKernel?编写Linux内核模块是否需要编译自己的内核?【发布时间】:2021-08-0309:23:45【问题描述】:我在Ubuntux86_64上有一个简单的he... 查看详情

linux内核编译linux内核⑦(安装内核模块|安装内核|重启系统|查看当前内核版本)(代码片段)

文章目录一、安装内核模块二、安装内核三、重启系统四、查看当前内核版本一、安装内核模块确保Linux内核编译完成,没有任何报错之后;参考【Linux内核】编译Linux内核⑥(安装OpenSSL|安装其它依赖库|内核编译完成)博客;进入Linux... 查看详情

redhat5.8编译内核驱动

...************************************************************RedHat5.8编译内核驱动*说明:*需要编译RedHat5.8的内核驱动,找了一下资料,并操作一下,并编译*一下IO驱动,能够正常运作。**2017-3-1深圳南山平山村曾剑锋************************************... 查看详情

linux为啥要编译内核

...下是几个问题。1:平时在linux下c编程,也没有用到编译内核什么的,经常看到“内核源码树”这个词汇,就不懂的。难道我正在使用的这个linux系统不是编译出来的一个系统吗?为什么还要再编译一次?2:下载源码后编译出来... 查看详情

centos7编译4.7.2内核

由于想要编译kvm-kmod,编译的时候提示内核版本太低,所以就不得不升级下linux内核,目前最新版内核是4.7.2,编译内核并不是一件很难的事,但是这么久没编译过,还是有必要记录下这一过程。首先下载linux内核最新版4.7.2 ht... 查看详情

如何为树莓派编译内核模块?

】如何为树莓派编译内核模块?【英文标题】:HowtocompileakernelmoduleforRaspberrypi?【发布时间】:2013-12-0815:56:44【问题描述】:我在为树莓派编译内核模块时遇到问题。我想用树莓派本身编译一个“helloworld”内核模块。我正在使用r... 查看详情