zoukankan      html  css  js  c++  java
  • Linux 小知识翻译

    说起module(模块),有的像「可热插拔的零部件」的意思。

    在讨论Linux时提到的模块一般是指可以组装到内核中的模块。

    模块这个概念是在硬件和程序设计领域中广泛使用的概念。我们这次说的模块特指Linux内核中的模块。

    内核模块简单来说就是「作为内核程序主体的一个小配件来使用的程序」,也就是说,只有模块是什么也做不了的。安装到内核中才能起作用。

    比如有一个新的设备或者一个新的功能想要追加到内核中时,就可以用模块的方式来实现。(设备驱动最好考虑用内核模块的方式来提供)

    此时,如果把相应的模块直接放到内核本体中,这里不是以模块方式,而是直接把模块代码放到内核代码中。那么,因为不知道何时需要何种设备,所以要把很多的驱动程序代码加到内核代码中,

    内核的代码量会变的非常庞大。不仅如此,内核的内存使用量会很大。而且但有新的设备发布的时候,需要把新设备的代码加入到内核中,然后再重新编译内核,这会花费很多的时间。

    如果以「模块」方式来使用的话,那么只要将必要的设备以及功能的代码加入到内核中,内核会很紧凑。而且有新的设备或功能发布时,也不用重新编译内核。

    这样看来,模块方式有很多优点,但也不是没有缺点的。

    1. 存在很多天生就无法用模块方式来实现的功能
    2. 用模块方式在某些场合会导致性能下降

    管理内核模块的命令是 「modprobe」。这个命令可以用来加载模块。

    模块之间有时会存在依赖关系,「modprobe」命令会在加载模块时检查模块的依赖关系,所以建议用「modprobe」命令来加载模块。

  • 相关阅读:
    CocoaPods 的安装和使用介绍
    C 语言宏快速入门
    C中的预编译宏定义
    __block 与 __weak的区别理解
    Xcode7 项目转 Xcode6 时 出现问题
    css margin 参数
    第三方框架 INTULocationManager 定位的一些方法
    ios 定位 监听是否跨入某个指定的区域
    ios 指南针
    ios 定位 航向检测
  • 原文地址:https://www.cnblogs.com/wang_yb/p/3776960.html
Copyright © 2011-2022 走看看