首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux命令讲解大全】208.modprobe:自动处理载入模块智能工具

modprobe 自动处理载入模块 补充说明 modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。 modprobe载入指定个别模块,或是载入一组相依模块。...modprobe会根据depmod所产生相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组模块。...语法 modprobe (选项) (参数) 选项 -a 或 --all:载入全部模块; -c 或 --show-conf:显示所有模块设置信息; -d 或 --debug:使用排错模式; -l 或...会打印许多行信息,例如其中一行会类似如下: alias symbol:ip_conntrack_unregister_notifier ip_conntrack 列出内核中所有已经或者未挂载所有模块...-r是内核版本,例如输出结果其中一行是: /lib/modules/2.6.18-348.6.1.el5/kernel/net/netfilter/xt_statistic.ko 挂载vfat模块

27310
您找到你想要的搜索结果了吗?
是的
没有找到

linux内核同步机制

关于同步理论一些基本概念 临界区(critical area): 访问或操作共享数据代码段 简单理解:synchronized大括号中部分(原子性) 竞争条件(race conditions)两个线程同时拥有临界区执行权...) 上锁解锁必须具备原子性 原子性(象原子一样不可分割操作) 有序性(禁止指令重排) 可见性(一个线程内修改,另一个线程可见) 内核同步常用方法 原子操作 – 内核中类似于AtomicXXX,位于... 自旋锁 – 内核中通过汇编支持cas,位于 读-写自旋 – 类似于ReadWriteLock,同时读,只能一个写 读时候是共享锁,...vfork() 在子进程结束时通过完成变量叫醒父进程 类似于(Latch) BKL:大内核锁(早期,现在已经不用) 顺序锁(linux 2.6内核新增): – 线程可以挂起读写自旋锁 序列计数器...对于单核cpu多线程优化 内存屏障 – 见volatile

1.9K10

Linux内核模块详解

大家好,又见面了,我是你们朋友全栈君。 内核模块 实验目的 内核模块Linux操作系统中一个比较独特机制。...通过这一章学习,希望能够理解Linux提出内核模块这个机制意义;理解并掌握Linux实现内核模块机制基本技术路线;运用Linux提供工具和命令,掌握操作内核模块方法。...据作者理解,正是为了改善单一体系结构扩展性、可维护性等,Linux操作系统使用了一种全新内核模块机制。用户可以根据需要,在不需要对内核重新编译情况下,模块能动态地装入内核或从内核移出。...由于引入了模块机制Linux内核可以达到最小,即内核中实现一些基本功能,如从模块内核接口,内核管理所有模块方式等等,而系统扩展性就留给模块来完成。...3.3 模块实用程序modutils Linux内核模块机制提供系统调用大多数都是为modutils程序使用。可以说,是Linux内核模块机制和modutils两者结合提供了模块编程接口。

8.2K20

Linux内核进程负载均衡机制

再具体实现中,如何选择将进程迁移到目标CPU,除了考虑各个CPU负载平衡,还需要将Cache利用纳入权衡因素。同时,对于进程A唤醒进程B这个模型,还做了特殊处理。...SMP组织 为了更好地利用Cache,内核将CPU(如果开启了超线程,那么以逻辑CPU为单位,否则以物理CPU核心为单位)组织成了调度域。...值得注意是 每个CPU对应调度域数据结构都包含了有效内容,比如说SMT层中,CPU0和CPU1对应不同调度域数据结构,内容是一模一样。...,每个层级调度间隔不是固定,而是临时计算出来,他在一个可通过proc接口配置最小值和最大值之间。...内核运行中,还有部分情况中需要用掉SMP负载均衡模型来确定最佳运行CPU: 进程A唤醒进程B时,try_to_wake_up()中会考虑进程B将在哪个CPU上运行。

12.2K220

Linux内核MMC里轮询机制

从这篇文章你能学到如何使用MMC框架里轮询机制做探卡检测,十分简单。 1 前言 最近遇到客户提一个问题,大概意思是他们SDIO Wi-Fi在卸载Wi-Fi驱动后再加载就检测不到Wi-Fi设备了。...#define MMC_CAP_NEEDS_POLL (1 << 5) /* Needs polling for card-detection */ 2 如何使用MMC里轮询机制做探卡检测?...方法二:通过其他手段设置host->caps |= MMC_CAP_NEEDS_POLL 3 MMC里轮询机制剖析 3.1 在dts设置broken-cd字段,代码在哪里解析?...,如果设置了MMC_CAP_NEEDS_POLL,也就是轮询机制,就会每隔HZ(这是个宏)时间执行一次host->detect,也就是mmc_rescan。...号主:一枚机械专业本科生,经历了转行,从外包逆袭到芯片原厂Linux驱动开发工程师,深入操作系统世界,贯彻终身学习、终身成长理念。

2K10

浅析linux内核idr机制

大家好,又见面了,我是全栈君 idr在linux内核中指就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起机制。...这个机制最早是在2003年2月加入内核,当时是作为POSIX定时器一个补丁。现在,在内核很多地方都可以找到idr身影。 idr机制适用在那些需要把某个整数和特定指针关联在一起地方。...遇到这种清况,我们就可以采用idr机制,该机制内部采用radix树实现,可以很方便地将整数和指针关联起来,并且具有很高搜索效率。...这些函数都定义在中 下面,我们通过分析I2C协议核心代码,来看一看idr机制实际应用: <linux-2.6.23/drivers/i2c/...… /* 采用动态总线号声明并注册一个i2c适配器(adapter),睡眠 针对总线号动态指定设备,如基于USBi2c设备或pci卡 */ int i2c_add_adapter

1.8K20

Linux内核内核模块加载过程(超详细)

内核完成再次系统自检之后,开始采用动态方式加载每个硬件模块,这个动态模块大家可以想象成硬件驱动(默认 Linux 硬件驱动是不需要手工安装,如果是重要功能,则会直接编译到内核当中;如果是非重要功能...[root@localhost ~]#ls /boot/config-2.6.32-279.el6.i686#内核配置文件,内核编译时选择功能与模块efi#扩展固件接口,为英特尔为全新PC固件体系结构...这个文件是一个压缩内核镜像我们已经知道,Linux 会把不重要功能编译成内核模块,在需要时再调用,从而保证了内核不会过大。...如果 Linux 安装在 IDE 硬盘之上,并且采用是默认 ext3/4 文件系统,那么内核启动后加载根分区和模块加载都没有什么问题,系统会顺利启动。...但是,如果 Linux 安装在 SCSI 硬盘之上,或者采用是 LVM 文件系统,那么内核内核载入内存是启动引导程序 GRUB 调用,并不存在硬盘驱动不识别的问题)在加载根目录之前是需要加载 SCSI

38720

Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )

文章目录 一、安装内核模块 二、安装内核 三、重启系统 四、查看当前内核版本 一、安装内核模块 ---- 确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 【Linux 内核】编译 Linux...内核 ⑥ ( 安装 OpenSSL | 安装其它依赖库 | 内核编译完成 ) 博客 ; 进入 Linux 内核源码根目录 , 执行 sudo make modules_install 命令 , 安装编译好内核模块...-5.6.14# root@ubuntu:~/kernel/linux-5.6.14# 二、安装内核 ---- 内核模块安装完成后 , 执行 sudo make install 命令 , 安装内核...; 下面的内核安装过程会持续很长时间 ; 内核安装过程 : root@ubuntu:~# cd kernel/linux-5.6.14 root@ubuntu:~/kernel/linux-5.6.14...查看当前内核版本 , 发现当前内核版本已经

15.6K50

Linux内核35-Completion机制

1 Completion机制工作原理 内核编程中一个常见模式就是在当前进程中,再去启动另外一个活动,比如创建新内核线程或用户进程、向已存在进程发起请求、再或者操作某些硬件。...所以,并不是一个特别好选择。 针对上面的情况,Linux内核从2.4.7版本开始,引入了另外一种同步技术:completion机制。...在信号量中,自旋锁被用来保证并发执行两个调用down()函数不会弄乱信号量数据结构。 4 Completion机制示例 关于completion机制如何使用,请参考complete模块示例。...对设备一次写操作只能使一个读操作完成,而无法通知其它正在读操作进程。 completion机制一个典型应用就是,在模块exit时候,终止内核线程。...在一些典型例子中,驱动程序内部工作是在内核线程中使用while(1)循环中实现。当模块准备好清理时,exit函数就会告诉线程需要退出,然后等待线程completion事件。

65110

linux内核IDR机制详解【转】

先来看下IDR作用:IDR主要实现ID与数据结构绑定。刚开始看时候感觉到有点懵,什么叫“ID与数据结构绑定”?...以上就是IDR一些浅显概念,IDR本质上就是通过对于ID一些有效管理进而管理和这些ID有关数据结构----不限于IPC通信key值。 IDR怎么对于数据ID管理呢?...使用数组进行管理时候寻址快速,但是只能管理比较少量ID数目。 使用链表进行管理时候虽然可以支持大量数据ID,但是通过链表指针寻址比较慢。 所以引入了以上三者优点进行IDR管理。...上图中每一个分级中IDR数组中值不为空代表相应位有效ID位,但是使用数组下标标示有效ID位还是有点慢----需要通过数组下标以及数组内容判断有效ID位,所以对于每一个IDR引入了有效ID位图来表示...,每一个位图为32位刚好给出了相应有效ID位。

2.4K30

linux 内核同步机制使用

Linux 内核同步机制:原子操作、信号量、读写信号量、自旋锁API、大内核锁、读写锁、大读者锁、RCU和顺序锁。...1、介绍 在现代操作系统里,同一时间可能有多个内核执行流在执行,即使单CPU内核也需要一些同步机制来同步不同执行单元对共享数据访问。...主流Linux内核同步机制包括: 原子操作 信号量(semaphore) 读写信号量(rw_semaphore) 自旋锁spinlock 大内核锁BKL(Big Kernel Lock) 读写锁rwlock...3、信号量(semaphore) Linux内核信号量在概念和原理上与用户态System VIPC机制信号量是一样,但是它绝不可能在内核之外使用,因此它与System VIPC机制信号量毫不相干...如果被保护共享资源只在进程上下文和tasklet或timer上下文访问,那么应该使用与上面情况相同获得和释放锁宏,因为tasklet(linux中断处理机制软中断延迟机制)和timer是用软中断实现

2.3K50

linux内核模块加载命令

目录 一,内核相关命令 1、lsmod 列出已经加载内核模块; 2、modinfo 查看模块信息; 3、modprobe 挂载新模块以及新模块相依赖模块 4、rmmod 移除已挂载模块;...5、depmod 创建模块依赖关系列表 6、insmod 挂载模块; 二,与内核模块加载相关配置文件; 1、模块配置文件 modules.conf 或 modprobe.conf 2、内核模块其它配置文件...,有几个参数我们注意一下就行了,目前Linux 发行版所用内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了;模块之前也有依赖关系,比如我们想驱动USB 移动硬盘,目前有两种驱动,一种是...; 再举个例子:sata硬盘,在 Linux设备表示是/dev/sd* ,比如 /dev/sda,/dev/sdb 等… 系统要驱动 sata硬盘,则需要把sata在内核中选中,或编译成模块,或内置于内核之中...,不能把文件名后缀省略; 二,与内核模块加载相关配置文件; 1、模块配置文件 modules.conf 或 modprobe.conf 内核模块开机自动挂载模块一般是位于一个配置文件,一般Linux

5K30

我们离不开 Linux 内核模块 | Linux 中国

Linux 内核今年就要满 30 岁了! 如果你像我们一样对此特别重视,那么让我们本周用几个特别的文章来庆祝 Linux。 今天,我们先来看看来自社区对“你不能没有哪个 Linux 内核模块?...— Stephan Avenwedde #3 最有用内核模块无疑是 snd-hda-intel,因为它支持大多数集成声卡。我可以一边听音乐,一边在 Linux 桌面上编码一个音频编曲器。...于是我用 Linux 重新安装了它,设置了 ftape 内核驱动模块,进行了一些备份/恢复测试,然后将我们最重要备份运行到 QIC 磁带上。在这两个星期里,我们依靠 ftape 备份重要数据。...所以,对于那些让软盘磁带机在 1990 年代 Linux 上工作无名英雄,你真是太厉害了! — Jim Hall #8 嗯,这很简单。是 kvm 内核模块。...你生活中不能没有什么 Linux 内核模块

2.4K31

Linux 内核Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

内核模块机制 7、Linux 定制系统调用 8、Linux 网络模块架构 一、Linux 内核特性 ---- 1、Linux 内核组织形式 Linux 内核组织形式 : 整体式结构 ; Linux 内核..., 使用内存管理方式是不同 , Linux 内核为了保证 内存管理 通用性 , 同时还要 兼容不同硬件平台 , Linux 内核提供了 虚拟内存管理 机制 , 提供 统一内存管理接口 , 可以将...) 为 逻辑文件系统 ( FAT32 , NFTS , EXT2/3/4 ) 提供 统一标准接口 , 也为 硬件设备 提供了 标准接口 ; 6、Linux 内核模块机制 Linux 模块机制 可以使得...Linux 内核能够 保持独立 , 并且 很容易 进行扩充 , 可以任意 添加 / 卸载 内核模块 ; 如 : 新增加了一个设备 , 设备驱动程序就是一个内核模块 , 可以 动态安装该设备驱动程序内核模块...; 移除设备后 , 也可以动态卸载内核模块 ; 在之前博客 【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 ) 中 , 编译完内核之后

66620

Linux 内核】宏内核与微内核架构 ( 操作系统需要满足要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

文章目录 一、操作系统需要满足要素 二、宏内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足要素 ---- 电脑上运行 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要...中 通信模块 , 进程调度模块 , 内存管理模块 , 通过 消息 进行通信 , 微内核优点 : 稳定性好 , 实时性好 ; 微内核缺点 : 高度模块化 , 模块之间只能通过消息传递信息 , 效率低...; 四、Linux 内核动态加载机制 ---- Linux 内核模块动态加载 : Linux 内核 使用了 模块设计 , 可以进行 动态加载 内核模块 ; Linux 内核 核心实现 , 设备驱动实现..., 可以 编译成一个独立模块 , 这些独立模块可以被编译成 独立目标文件 , 可以在运行时 , 动态 加载 / 卸载 内核模块 ; 开发简单 : Linux 内核模块引入 , 带来了很多便利 , 很多内核驱动..., 都可以 编译成动态 加载 / 卸载 模块 , 驱动开发时 , 必须 遵守规定接口 , 来访问内核 , 这样 开发内核模块 , 变得 更加容易 , 方便 ; 与平台无关 : 内核模块 可以 设计成

4.1K30

Linux内核编程--信号量机制

二,信号量结构: 信号量数据结构为一个值和一个指针,指针指向等待该信号量下一个进程。...信号量值与相应资源使用情况有关: 当信号量值大于0时,表示当前可用资源数量 ;当它值小于0时,其绝对值表示等待使用该资源进程个数 。...Linux多进程访问共享资源时,需要按下列步骤进行操作: (1)检测控制这个资源信号量值。 (2)如果信号量是正数,就可以使用这个资源。进程将信号量值“减 1”,表示当前进程占用了一份资源。...四,信号量分类: 信号量按照使用场景分为 :二值信号量和计数信号量: 二值信号量:指初始值为 1 信号量,此类信号量只有 1 和 0 两个值,通常用来代替锁机制实现线程同步, 在一个时刻仅允许有一个资源持有者...pthread_create(&smk_1, 0, smoker, 1); pthread_create(&smk_2, 0, smoker, 2); while(1); } Linux

2.8K30

Linux内核同步机制之completion

Linux内核同步机制之completion 内核编程中常见一种模式是,在当前线程之外初始化某个活动,然后等待该活动结束。...这个活动可能是,创建一个新内核线程或者新用户空间进程、对一个已有进程某个请求,或者某种类型硬件动作,等等。在这种情况下,我们可以使用信号量来同步这两个任务。...然而,内核中提供了另外一种机制——completion接口。Completion是一种轻量级机制,他允许一个线程告诉另一个线程某个工作已经完成。...是的,从上面的代码看到,和我们想一样。内核也是这样做。...insmod complete.ko 插入驱动模块,这里要注意是,因为我们代码中是手动分配设备号,很可能被系统已经使用了,所以如果出现这种情况,查看/proc/devices文件。

4K20
领券