模块的一些基础知识

光模块基础知识 光模块是光收发模块的简称,主要根据不同的外型来区分,而在同一外型中,又有着多种规格;在数据通信领域,最常见的光模块(根据外型区分)分别是SFF、GBIC、SFP、和XFP、QSFP 、XENPAK和X2光模块,其中SFF、GBIC、XENPAK和X2都是比较早期的标准,已经逐步被QSFP、SFP所取代。饱和光功率值:指光模块接收端最大可以探测到的光功率,当接收光功率大于饱和光功率的时候会导致误码产生,甚至造成接收电路的损坏,因此对于发射光功率大的光模块需要考虑是否要额外增加衰减。单模,超长距离光纤。 阅读详情
对Linux内核而言, 模块是可有可无的特色。 这项特色必得在编译内核时,选择适当的选项才得以成功。 就我所知道的, 所有发行系統的内核,都是以模块化定为预设选项的。

我们甚至于可以替系统设计新的模块, 并且有内核载入执行,而不用重新编译内核, 也不用重新启动系统。

当一模块载入内核时, 便成了内核的一部份, 因此:

这个模块可以使用内核中所有的函數,而且可以存取所有的参数和数据结构。

这个模块会以处理器最高层次的档位来执行。 就 i386 的体系结构来说,就是第 0层的环 (ring level 0); 这么一来, 这个模块就可以针对 I/O,做各式各样的存取动作, 并执行一般程序所无法执行的指令。

模块的代码段和数据段, 都是直接映射到物理内存上去的,也就是说这种模块不可能做"分页 (paging)" 的动作。这么说来, 在模块执行期间, 就不可能会产生分页错误的问题了。


如同我们所看到的, 动态载入模块已经有一些实时系统的特点:动态载入模块, 会避免由分页错误所造成的时间延迟,而且动态载入模块, 可以存取所有的硬件资源。

模块可以用 "C语言" 来写。 这里举个例子(要执行下面所提到的命令,最好是以 su、root 的身份登陆系统):

example1.c

#define MODULE
#include <linux/module.h>
#include <linux/cons.h>
static int output=1;

int init_module(void) {
printk("Output= %dn",output);
return 0;
}
void cleanup_module(void){
printk("Adi, Bye, Chao, Ovuar, n");
}

以下一行的参数来编译 example1.c:

# gcc -I /usr/src/linux/include/linux -O2 -Wall -D__KERNEL__ -c example1.c
选项 -c 是要求 gcc 在产生目标文件之后就停下來,不要再做连接的动作了。 最后的結果是一个目标文件, example1.o。

内核缺少标准输出函数, 因此我们不可以用 printf() 这个函数,而要以内核所提供的 printk()函数来代替。 printk() 和 printf() 几乎没有什么两样, 唯一的差別是 printk() 会把输出的结果,送到内核的环缓冲区 (ring buffer)里面。这个缓冲区是系统所有信息集中的地方, 就像开机时所看到的信息,都可以在这个环缓冲区找到。 任何时候, 我们都可以用 dmseg 命令查看环缓冲区的內容, 或是直接检验 /proc/kmsg 这个文件。

注意到这个模块里并没有main() 函数, 反而有个不带任何参数的 init_module()函数。 cleanup_module() 是最后一个释放模块前,所必须呼叫的函数。 insmod 是用来载入模块,然后执行模块的。

# insmod example1.o

现在我们已经安装好 example1 模块了, 而且也执行了 example1 的 init_module()函数。 要看结果, 请用下列的命令:

# dmesg | tail -1
Output= 1

命令 lsmod 会列出当前所有载入核心中的模块:

# lsmod
Module Pages Used by:
example1 1 0
sb 6 1
uart401 2 [sb] 1
sound 16 [sb uart401] 0 (autoclean)

最后呢,我们用 rmmod 来释放模块:

# rmmod example1
# dmesg | tail -2
Output= 1
Adi, Bye, Chao, Orvua,

dmesg 显示了函数 cleanup_module() 已经执行了。

现在我们只差还不知道怎么把参数传递给模块了。 这个方法出奇的简单,只要指定数值給参数, 再由 insmod 把参数传递给模块就行了。例如:

# insmod ejemplo1.o output=4
# dmesg | tail -3
Output= 1
Ads, Bye, Chao, Orvua,
Output= 4

现在模块大大小小的事情该知道的都知道了,还愣着干什么,赶紧学着写一个啊!
光模块基础知识【快速入门】02 光模块是用于交换机与设备之间传输的载体,是光纤通信系统中的核心器件。主要作用是发射端将设备的电信号转换成光信号。 光纤通道光模块和以太网光模块 光纤通道光模块 光纤通道(FC, Fiber Channel)是一种高速网络数据传输协议。光纤通道协议可以有序无损地传输原始数据,它主要用于在数据中心、电脑服务器、交换机与存储网络中进行数据传输。 FC光模块遵循FC协议,充当着光纤通道系统之间的接口,也是光纤存储网络设备间的接口。它们主要用于数据中心的光纤通道存储网络链接中。 FC光模块具有小型化和低. 阅读详情

相关推荐

Python基础知识入门(五)_导入aaa模块,使用其中的模块变量和模块函数

from a import b 导入名称为 a 的模块中名称为 b 的函数或变量,调用时使用 b 直接调用,例如: 导入from random import randint ,调用randint()。如不想让模块中的某些代码执行,可以用__name__属性来使程序仅调用模块中的一部分。__name__ == ‘__main__‘在自身模块调用时,值为’__main__’,且执行if __name__ ==__name__ == ‘__main__‘在自身模块调用时,值为’__main__’,

2401_84182392的博客 842

SAP开发--MM模块基础知识

▲点击上方“TechInfQ”关注我一起学习成长大家好呀!我是TechInfQ。今天来带大家学习一下SAP的MM模块基础知识。一、名词概念以下是一些常见名词概念的解释:1)集团一个跨法人的组织单元的集合,即多个法人或非法人独立核算单位组合成的集团公司,是企业组织结构中的最高层。SAP系统中,具备一套完整独立的数据和主数据表集。2)公司公司代码是在一个集团公司下的具有自己的资产负债表的合法独立单元...

qq_56999608的博客 1663

Java模块系统与基础知识的深入解析

本文深入探讨了Java模块系统的工作原理及其在Java编程中的应用,同时结合基础知识,对Java中枚举、接口、函数式接口等概念进行了详细解读。通过具体的题目解析,帮助读者更好地理解Java的新特性和编程实践。

weixin_35757531的博客 338

python机器学习模块_机器学习所需的python基础知识及其库模块

python机器学习模块 关于ML (All About ML) Python is one of the best programming choices for data science, machine learning, and deep learning. Python presents a wide array of choices for the completion of each...

weixin_26711425的博客 1426

ADS 使用教程(十八)Encrypting Designs using RFIP Encoder in ADS

在这一节,我们使用RFIP Encoder进行设计加密,这是一种保护知识产权和敏感设计数据的重要方法。RFIP Encoder提供了一种安全的方式来加密设计文件,确保只有授权人员能够访问和使用这些文件。

Dirge19的博客 1169

chmod: changing permissions of `/u01/app/oracle/product/11.2.0/dbhome_1/bin/extjobO‘: Operation not

oracle 11.2.0.4安装psu 29141056,日志末尾抛出报错 Patching component oracle.ctx, 11.2.0.4.0... Applying sub-patch '29141056' to OH '/u01/app/oracle/product/11.2.0/dbhome_1' Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.

m0_37625564的博客 1833

蓝牙模块选型及基础知识介绍

目录前言一、蓝牙基础知识1.蓝牙发展2.苹果MFI认证3.蓝牙协议4.蓝牙与单片机通信方式5.蓝牙单模6.蓝牙双模7.iBeacon二、蓝牙模块选型1.HC蓝牙模块2.处于淘汰边缘的HC-053.HC蓝牙模块选型结语 前言 本文将讲述关于蓝牙的基础知识和蓝牙模块的选型介绍。对于开始学习蓝牙或者要用蓝牙做项目的你有一定的帮助。 以下是本篇文章正文内容 一、蓝牙基础知识 1.蓝牙发展 自1998.10.19发布蓝牙0.7标准以来,目前蓝牙已经发展到5.0以上。蓝牙发展到3.0标准之后推出了蓝牙4.0BLE

微光feng的博客 1万+

解读Autoware.Universe规划模块:Behavior Path Planner

Behavior Path Planner是一个基于行为生成不同形态路径的路径规划器,负责生成 基于交通状况的路径(path), 车辆可以移动的可行驶区域(drivable area)(在路径消息中定义), 将被发送到车辆接口的转向信号(turn signal) 命令。

策 5491

光模块基础知识资源文件:开启光模块技术新篇章

光模块基础知识资源文件:开启光模块技术新篇章 去发现同类优质开源项目:https://gitcode.com/ 光模块基础知识资源文件,为开发者提供了一份详尽的内部发射与接收专业资料。 项目介绍 在现代通信技术中,光模块作为信息传输的核心组件之一,其性能和稳定性对于整个系统的运行至关重要。《光模块基础知识》资源文件,旨在为新手开发者以及电子工程、通信工程等领域的学生、工程师和技术研发人员提供一份全...

gitblog_06740的博客 729

UReport2 报表设计器 在线表格

UReport2官网 一、UReport2报表设计器 UReport2是一个开源的可视化报表设计器,功能强大,操作简单,可以实现复杂的报表统计,有各种各样的导出和打印功能,支持导入Excel表格! 1、报表设计器 2、设计一个简单的用户列表展示 二、可编辑表格 扩展了layui的表格,支持多元化数据编辑(单选,多些、日期、下拉联动),开发简单、高效、便捷。有了它就可以轻松开发类似进销存系统的表格录入功能了,用户拿来即用! 三、主从表录......

ejinxian的专栏 2万+

〖进阶篇1〗YAML参数解析:从nav2_params.yaml看机器人导航调优

本文深入解析了ROS2 Nav2导航系统中关键的nav2_params.yaml文件,提供了从定位、行为树、运动控制到环境感知等核心模块的参数调优实战指南。文章通过具体场景案例,如狭窄走廊、动态仓库和高精度对接,详细阐述了如何调整AMCL粒子数、控制器权重、代价地图膨胀半径等参数,以解决机器人导航中的犹豫、碰撞和精度问题,帮助开发者实现从“能用”到“好用”的进阶。

m9n0o的博客 417

【python基础知识】常用模块学习

【python基础知识】常用模块学习 1.定义: **1)模块:****用来从逻辑上组织python代码(变量,函数,类,逻辑)本质就是去实现一个功能。py结尾的python文件(文件名test.py,对应的模块名就是test) **2)包:**本质就是一个目录(必须带有一个____init____.py文件),是用来从逻辑上组织模块的。 2.导入方法: 1.导入模块 注意:需要导入多个模块时需要用逗号隔开。 #导模块 1 import module_01 2 from module_01 im

weixin_45571972的博客 626

窥秘Windows 10:SAM密码破解

Windows 10作为广受欢迎的操作系统,拥有一套强大的安全措施来保护用户账号和数据安全。然而,有时候我们需要了解更多关于密码破解的知识,以加强我们的防护措施。本文将深入探讨如何突破Windows 10的SAM密码,以便更好地了解密码安全性并加强系统的保护。

Sgirll的博客 6836

revit找不到附加模块程序集_TensorFlow基础知识——常用模块(一)

1本节简述对于开展深度学习开发的目标而言,我们需要掌握的除了必要的深度学习理论基础、必要的开发依赖库基础知识、基本的开发套路之外,我们还需要掌握它常见的外围小帮手都有哪些。这些小帮手就是深度学习依赖库中的其他并不是核心的模块,但却能有效帮助我们提升开发的效率,提升学习模型的质量等。因此,从这一节开始,我们将逐步开始分享一些TensorFlow库中的模块知识,期待着这些模块的基本知识分享结...

weixin_39633090的博客 2902

ADI恒流驱动芯片LT3763调试心得(25A恒流驱动)

看似很简单的一个电路,调了好几版硬件,中间还出现过一个插曲,就是电感,我用的是27A,1.5uH的,贴片封装,由于频繁试板,电感来回用热风枪拆了3次,结果上电空载到3A都没有问题,但是以上10A以上,就出现烧LT3763和mos的情况,一连烧了8片,搞得有点怀疑人生,一度觉得我的电路设计有问题,邮件咨询ADI的FAE后,确认电路设计没有问题。1、大功率同步整流的Nmos管都是取不同的型号,就是厂家推荐的主开关管和续流管的型号往往都不一样,这个里面有什么讲究,我没有整明白,暂时也不需要弄明白。

liming98lm的博客 3914

解码器选型参数,结构原理,工艺与注意问题总结

解码器芯片(Decoder Chip)是电子设备中的一个重要组件,通常用于处理、解释和输出存储在某种编码格式中的数据或信号。本文对解码器的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1168

javascript模块_了解JavaScript模块系统的基础知识,并建立自己的库

javascript模块by Kamlesh Chandnani 由Kamlesh Chandnani 了解JavaScript模块系统的基础知识,并建立自己的库 (Learn the basics of the JavaScript module system and build your own library) Lately we all have been hearing a lot ...

cumian8165的博客 582

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

第五章 模块之基础知识

5.1 模块基础知识 模块(类库)分类 内置模块,python内部提供的功能 import sys # 优先导入模块加载到内存print(sys,argv) 第三方模块,下载、安装、使用 1.pip包管理工具 把pip.exe 所在的文件目录加到环境变量中 pip install 要安装的模块名称 # pip install...

weixin_30823001的博客 85

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

模块基础知识总结

文章目录1. 模块2. 模块的创建模块的使用 1. 模块 • 模块化指将一个完整的程序分解成一个个的小模块 • 通过将模块组合,来搭建出一个完整的程序 • 模块化的有点 • 方便开发 • 方便维护 • 模块可以复用 2. 模块的创建 • 在Python当中一个py文件就是一个模块 • 在一个模块中引入外部模块 import 模块名(模块名就是py文件) • 可以引入同一个模块多次,但是模块的实例只会创建一次 • import 模块名 as 模块别名 • 在一个模块内部都有一个__name__。通过它我们可以

weixin_44722998的博客 414

Python基础知识—函数、类、模块

Python基础知识—函数、类、模块 1、Function 函数 编程中,需要重复写的功能,可以包装成一个函数 1)定义函数 定义函数之前,实现给一个字符串增加前缀和后缀的操作: f1 = "f1" f2 = "f2" f1 += ".txt" f1 = "my_" + f1 f2 += ".txt" f2 = "my_" + f2 print(f1, f2) my_f1.txt my_f2.txt 定义函数之后: def modify_name(filename): filename += "

Mrwei_418的博客 494

光纤光缆光模块基础知识

一、光纤通信系统 二、光纤基本介绍 光纤基本介绍 参考链接 : 详解光纤光缆基础知识 :https://mp.weixin.qq.com/s/38B_xgEJJH7zTEYviNiU0Q

qq_40907977的博客 4858

re正则模块基础知识

世界上只存在两种人:一种是会re正则的人,另一种是不会re的人。 re基础知识 Python的正则表达式的模块是"re" 它的基本语法规则就是指定一个字符序列,比如你要在一个字符串s=’123abc456’ 中查找字符串 ’abc’,只要这样写: import re s='123abc456eabc789' re.findall(r'abc',s) #['abc', 'abc'] 这里用到的...

m0_46163065的博客 2013

python基础知识——模块

python基础知识——模块 这里写目录标题python基础知识——模块1. 模块2.创建模块总结 1. 模块 将一个完整的程序分解成一个个小的模块称为模块化 模块化的优点 方便开发 便于维护 代码复用性高 2.创建模块 在python中一个py文件就是一个模块 通过import 模块名(模块名就是py文件)来引入外部模块 调用模块: import test 结果: 引入多次模块,但是模块实例只会创建 一次 模块: print('hello,这是我的第一个模块。') class

wakeyo_J 的博客 268

Lua中使用模块的一些基础知识例子解析

在 Lua 中,一个模块通常是一个包含特定功能的文件。模块可以定义函数、变量和表(table),并可以返回这些定义供其他脚本使用。示例模块-- 定义模块 mymodule-- 私有变量-- 公有函数end-- 私有函数end-- 公有函数,调用私有函数end-- 返回模块return M。

IT老农民的博客 505

光模块基础知识资源文件

光模块基础知识资源文件 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供的资源文件《光模块基础知识》是一份详细讲解光模块内部发射与接收的专业资料,旨在帮助新手开发者快速掌握光模块的核心原理和应用,从而加速开发进程。 本资源涵盖了光模块的构造、工作原理、以及在实际应用中的注意事项,是光模块领域入门和提高的宝贵资料。通过对本资料的学习,您将能够: 理解光模块的基本组成部分...

gitblog_06736的博客 339
上一篇: Motorola新智能手机测试Linux(图文!)
下一篇: 数据处理软件
zcatlinux
博客等级 码龄22年 56粉丝 760原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值