• 2024-06-04ovs学习自用
    ovs框架 当前最新代码包主要包括以下模块和特性:ovs-vswitchd:主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;ovsdb-server:轻量级数据库服务器,提供ovs-vswitchd获取配置信息,例如vlan、port等信息;ovs-brcompatd:让ovs-vswitch替换linuxbridge,包括获取bridge
  • 2024-06-03嵌入式Linux中内核模块的基本框架
    在Linux系统中,驱动程序属于内核态程序,可以认为它是介于操作系统和硬件实体之间的一层,对上负责与操作系统交流,对下负责控制硬件设备。即,驱动程序对操作系统通过软件接口进行沟通,对芯片硬件通过读写寄存器进行控制。Linux系统的驱动由内核模块(LoadableKernelModule,简称LKM)的形式
  • 2024-05-28删除不必要的内核模块
    目录一.系统环境二.前言三.内核模块简介四.删除不必要的内核模块五.总结一.系统环境本文主要基于Kubernetes1.22.2和Linux操作系统Ubuntu18.04。服务器版本docker软件版本Kubernetes(k8s)集群版本kube-bench版本CPU架构Ubuntu18.04.5LTSDockerversion20.10.1
  • 2024-05-06内核模块makefile
    obj-m:=hds.o #根据make的自动推导原则,make会自动将源程序hds.c编译成目标程序hds.o。#所有在配置文件中标记为-m的模块将被编译成可动态加载进内核的模块。即后缀为.ko的文件。CURRENT_PATH:=$(shellpwd) #参数化,将模块源码路径保存在CURRENT_PATH中LINUX_KERNEL:=$(
  • 2024-04-07在Linux中,内核模块是什么以及如何加载和卸载它们?
    在Linux中,内核模块是内核的一部分,但它们不是编译进内核的代码。这些模块可以在运行时动态地加载到内核中,或者从内核中卸载,从而扩展或修改内核的功能而无需重启系统。内核模块的使用提供了灵活性和易于维护的特点。1.内核模块的作用扩展内核功能:内核模块允许在不修改内核源代码
  • 2024-02-191- 介绍
    Introduction原文链接我的博客Linux架构Linux可以被粗略划分为用户空间与内核空间,这两个部分使用系统调用接口交互。内核在内核空间运行,是操作系统的核心组件,它为同层或上层提供服务。应用一般运行在用户空间中。Linux内核模块内核模块可以按照用户需求,加载到内核中,或从
  • 2023-12-20内核模块(.ko) 开发入门
    内核模块时指的是在操作系统内核中动态加载的一段代码,它可以扩展和增强操作系统的功能。内核模块通常用于为操作系统添加新的设备驱动程序、文件系统、网络协议栈等功能。内核模块是以二进制形式存在的(*.ko),它们被编译为对象文件,并在运行时被加载到操作系统内核中。内核模块与操作
  • 2023-11-30Linux下实现文件系统(占坑)
    前提知识:先要摸清楚vfs是啥玩意。实现文件系统有两种方式:直接写LinuxKernelModule,另一种是基于现有fuse内核模块,在用户态实现与fuse内核模块交互,在此基础上还可以实现网络分布式文件系统。https://www.kernel.org/doc/html/next/filesystems/vfs.htmlhttps://wushifublog.co
  • 2023-11-27内核模块开发入门指南:在CentOS 7上实现自定义功能
    内核模块开发入门指南:在CentOS7上实现自定义功能在CentOS7及其他Linux系统中,内核模块是一种动态加载到内核中的代码,用于扩展内核的功能。内核模块的开发允许开发者在不重新编译内核的情况下,添加新的功能、驱动或调整系统行为。本文将带你入门内核模块的开发,在CentOS7上实现自
  • 2023-11-02lsmod-查看内核模块信息
    lsmod-查看内核模块信息lsmod——显示已载入系统的模块lsmod其实就是listmodules的缩写,即列出所有模块.功能说明:显示已载入系统的模块。#lsmodModuleSizeUsedbyiptable_nat59230nf_nat226761iptable_nat第1
  • 2023-10-20【Linux驱动】内核模块编译 —— make modules 的使用(单模块编译、多模块编译)
    编译驱动一般采用的是将驱动编译成模块(.ko文件),然后加载到内核,这其中就用到了makemodules命令。目录一、单模块编译1、一个c文件编译成一个ko文件2、多个文件编译成一个ko文件二、多模块编译(多文件多模块)一、单模块编译1、一个c文件编译成一个ko文件下面是最简
  • 2023-09-07iTOP-RK3568开发板内核模块实验-设置交叉编译器
    在上一章节我们编写了最简单的helloworld驱动程序。有了驱动程序以后,要如何编译并使用驱动呢。编译驱动有俩种方法,分别是将驱动编译成内核和将驱动编译成内核模块。我们先来学习如何将驱动编译成内核模块、4.1设置交叉编译器1下载网盘资料下的交叉编译器,网盘路径为:“XXX”,将下
  • 2023-08-29ch2_ab1 Linux内核模块
    准备事项:虚拟机系统文件传输工具VMwareCentOSWinscpVitualBoxUbuntuXftp有222种选择,我是Virtualbox+Ubuntu+Winscp下载osc前言中的Linux系统osc10e.ova安装VirtualBox导入osc10e.ovaSilberschatz,Galvin,Gagne:OperatingSystemC
  • 2023-08-25Linux内核模块的编译和运行 - 如何让模块跑起来?
    SRCPATH:=$(shellpwd)ARCH=armCROSS_COMPILE?=/opt/toolchain/bin/arm-linux-gnueabihf-KDIR?=/home/xxx/linux-3.10/obj-m+=hello_world.oall:@echo"buildmodules..."@$(MAKE)-C$(KDIR)M=$(SRCPATH)CROSS_COMPILE=$(C
  • 2023-08-08linux进阶:内核模块
    现代内核派系宏内核关键功能(基本功能,不可裁剪、扩展)和服务功能(如文件系统、设备驱动、网络服务等,可裁剪、扩展)均在内核空间提供。运行效率高。扩展性较差。systemcall(系统调用)能够先入内核态来使用内核提供的服务。微内核内核空间只提供关键功能,服务功能在用户空间提供。
  • 2023-08-02get_module
    get_module获取Linux内核模块的详细信息补充说明get_module命令用于获取Linux内核模块的详细信息。语法get_module模块名实例使用lsmod命令查看内核模块:lsmod|head-5ModuleSizeUsedbyipv627280115xfrm_nalgo
  • 2023-07-27编写Linux内核模块
    Linux系统为应用程序提供了功能强大且容易扩展的API,但在某些情况下,与硬件交互或进行需要访问系统中特权信息的操作时,就需要一个内核模块。Linux内核模块是一段编译后的二进制代码,直接插入Linux内核中。在Ring0上运行。 1.安装开发环境(Ubuntu为例)sudoapt-getinsta
  • 2023-07-21OpenWrt增加软件包的方法
    OpenWrt是一个比较完善的嵌入式Linux开发平台,在无线路由器应用上已有100多个软件包。人们可以在其基础上增加软件包,以扩大其应用范围。OpenWrt在增加软件方面使用极其方便,按照OpenWrt的约定就可以很简单完成。      加入的软件包可以是网上可下载的开源软件或自行开发的
  • 2023-07-20rmmod
    rmmod从运行的内核中移除指定的内核模块补充说明rmmod命令用于从当前运行的内核中移除指定的内核模块。执行rmmod指令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放如核心。你可以将这些功能编译成一个个单独的模块,待有需要
  • 2023-07-14Linux命令----modprobe命令详解
    【原文链接】Linux命令----modprobe命令详解一、modprobe命令的作用加载内核模块:使用modprobe命令可以加载指定的内核模块到运行中的内核中。加载内核模块可以在运行时添加新的功能、驱动程序或修改内核行为。解决模块依赖关系:modprobe命令可以自动解决内核模块之间的依
  • 2023-07-11nf_conntrack: table full, dropping packet
    参考:linux路由跟踪表满错误nf_conntrack:tablefull,droppingpacket原理解决方法说明ping,dmesg或者/var/log/messages日志中这个报错,说明服务器网络方面遇到了瓶颈。此时查看cat/proc/sys/net/netfilter/nf_conntrack_max和cat/proc/sys/net/netfilter/nf_conntra
  • 2023-05-04[小工具] modinfo - 快速查看内核模块文件信息
    有时候忘了加载模块时参数的名称,可以通过modinfo获取.示例:$modinfo/lib/modules/3.5.0-22-generic/kernel/drivers/media/video/gspca/gspca_mr97310a.kofilename:/lib/modules/3.5.0-22-generic/kernel/drivers/media/video/gspca/gspca_mr97310a.kolicense:
  • 2023-03-31内核模块管理命令
    内核模块lsmod、insmod、rmmod、modinfo、modprobe等命令https://blog.csdn.net/bandaoyu/article/details/128582615
  • 2023-03-05加载内核模块-Unknown symbol错误分析
    在调试过程中,发现一个问题,编译生成一个KO文件,insmod加载后报错:Unknownsymbolvar_set_integer(err0)Unknownsymbolparse_arg_eq(err0)问题分析思路:一、用命令查
  • 2023-02-11Fuse学习
    https://github.com/juicedata/go-fuseFUSE概述FUSE(用户态文件系统)是一个实现在用户空间的文件系统框架,通过FUSE内核模块的支持,使用者只需要根据fuse提供的接口实现具体