链接器和加载器09
- 格式:pdf
- 大小:402.90 KB
- 文档页数:11
kettle源码解读Kettle,也被称为Pentaho Data Integration,是一款开源的ETL (Extract, Transform, Load)工具,用于帮助企业进行数据的抽取、转换和加载。
本文将对Kettle的源码进行解读,通过深入研究其内部实现原理,帮助读者更好地理解和使用Kettle。
一、Kettle的整体架构Kettle的整体架构由以下几个核心组件构成:1. Spoon:Spoon是Kettle的主要用户界面,提供了一个可视化的设计环境,帮助用户创建和编辑ETL作业。
通过Spoon,用户可以直观地设计数据流转过程,并配置各种数据转换步骤。
2. Pan:Pan是Kettle的运行引擎,负责执行由Spoon设计的ETL 作业。
通过Pan,用户可以将设计好的作业转换成可执行的代码,并在命令行中运行,从而实现数据的抽取、转换和加载。
3. Kitchen:Kitchen是Kettle的调度引擎,用于实现ETL作业的定时调度和管理。
通过Kitchen,用户可以设置作业的执行计划,定时运行作业,实现自动化的数据处理流程。
4. Core组件:Kettle的Core组件包括各种数据处理步骤、数据连接器、参数配置等,是Kettle实现ETL功能的关键部分。
本文将重点关注Core组件的源码解读。
二、1. 数据处理步骤的实现在Kettle中,数据处理步骤是指负责数据抽取、转换和加载的具体算法和逻辑。
每个数据处理步骤都有对应的源码实现,我们以"转换"步骤为例进行解读。
首先,在Kettle的源码中,可以找到Transformation类,该类是一个转换步骤的抽象基类,提供了一些通用的方法和属性。
然后,针对不同类型的转换步骤,Kettle还定义了各种具体的实现类,如"文本文件输入"、"数据库输出"等。
这些类都继承自Transformation类,并根据具体的业务需求,实现了自己的数据处理逻辑。
kettle底层原理Kettle底层原理Kettle是一款开源的ETL(Extract-Transform-Load)工具,它被广泛应用于数据仓库、数据集成、数据迁移等数据处理领域。
Kettle 的底层原理是其成功的关键之一。
本文将探讨Kettle的底层原理,帮助读者更好地理解和使用Kettle。
1. 什么是Kettle?Kettle是由Pentaho开发的一款数据集成工具,它提供了一套强大的数据处理和转换功能。
Kettle支持多种数据源,如关系型数据库、文件、Web服务等,同时也支持多种数据处理操作,如数据提取、数据转换、数据加载等。
2. Kettle的核心组件Kettle的核心组件包括Spoon、Pan和Kitchen。
Spoon是Kettle 的图形界面工具,可以用于设计和编辑数据转换和作业。
Pan是Kettle的命令行工具,用于执行数据转换。
Kitchen是Kettle的命令行工具,用于执行作业。
3. Kettle的转换和作业Kettle的基本单位是转换和作业。
转换是一系列的数据处理步骤,可以将数据从一个源转换为另一个目标。
作业是一系列的转换和其他操作的组合,用于完成更复杂的数据处理任务。
4. Kettle的底层原理Kettle的底层原理主要涉及以下几个方面:4.1 元数据存储Kettle使用XML格式存储元数据,包括转换和作业的定义、连接信息、字段映射等。
元数据存储在文件系统中,可以通过Spoon进行编辑和管理。
4.2 数据流引擎Kettle的数据流引擎是其核心组件,负责数据的提取、转换和加载。
数据流引擎通过连接器和步骤来完成具体的数据处理操作。
连接器用于连接不同步骤之间的数据流,步骤用于执行数据处理操作。
4.3 连接器Kettle提供了多种连接器,用于连接不同步骤之间的数据流。
常用的连接器包括输入连接器、输出连接器和排序连接器。
输入连接器用于从数据源中读取数据,输出连接器用于将数据写入目标位置,排序连接器用于对数据进行排序。
连接器接插件电⽓规范要求之温升测试上篇给⼤家简述了“连接器接插件电⽓规范要求之绝缘阻抗测试” ,下⾯鹏基精密⼩编给⼤家继续分享 “连接器接插件电⽓规范要求之温升测试”。
温升测试测试测试⽬的:决定连接器接插件在环境条件下,通过⼀额定电流,量测其温度变化,籍以评估是否符合安规之规定。
确认连接器接插件中导体(回路)的电流负载能⼒,确保连接器接插件在长期负载下的安全性。
测试依据:业界规范IEC-512-3EIARS-364A,TP7,EIA-364-70。
测试设备:Connector & Cable Testing System测试⽅法:1、将公母连接器集合在⼀起,并将所有端⼦串联成⼀回路。
2、依记录器能⼒连接⼀⾄数组热点偶线⾄待测物端⼦上。
3、通额定电流于回路上,因电流流过端⼦⽽形成作功,使得接点温度上升,再经由热电偶线量测得出温度变化。
4、测试时间为5hrs.5、除特别规定外,温差以不超过30 为原则。
注意事项:1、热电偶线有正负极之分,故接线时应特别注意。
2、量测时应注意到周遭环境,避免因环境因素(冷⽓对流)⽽影响量测精确性。
测试要点:1. 整个回路在负载电流下达到热平衡⽅可开始测量温度变化。
2. 测试电流/电压为额定⼯作电流,⼯作电压。
3. 加载电流电压持续时间依照回路达到热平衡所需时间。
规范要求:在25摄⽒度室温,1个⼤⽓压的环境下,通过1.5A@250VAC Min.的电流,系统导体(回路)任何⼀点的温升不超过30摄⽒度。
温升要求的⽬的是避免温升带来的不良效应(如热电效应,加速弹性件蠕变等),维持连接器在持续负载下的功能和寿命,同时避免产品温度升⾼对消费者的影响。
例如:⼿机使⽤时间过长导致⼿机表⾯温度升⾼,使消费者感到不适。
“连接器接插件电⽓规范要求之温升测试”暂时分享到这,下篇鹏基精密⼩编将给⼤家分享连接器接插件电⽓规范要求之电容测试,欢迎⼤家继续关注。
鹏基精密成⽴于2005年,是⼀家集研发、制造、销售、服务于⼀体的国家⾼新技术企业,13年⼯业配套,专注连接器领域,为连接器客户提供⾼品质、⾼效能、节能环保的连接器PIN针、接插件、转接头等连接器⾦属零部件产品的研发加⼯定制。
amphenol连接器,安费诺连接器产品选型amphenol连接器,安费诺连接器D 形连接器- 并口(238)D-Sub 连接器(11100)D-Sub,D 形连接器- 后壳,罩(231)D-Sub,D 形连接器- 外壳(221)D-Sub,D 形连接器- 触头(396)D-Sub,D 形连接器- 适配器(128)D-Sub,D 形连接器- 配件(147)D-Sub,D 形连接器- 配件-?顶丝(45)FFC,FPC(扁平柔性)连接器(3157)FFC,FPC(扁平柔性)连接器- 外壳(56)FFC,FPC(扁平柔性)连接器- 触头(23)USB,DVI,HDMI 连接器(450)USB,DVI,HDMI 连接器- 适配器(73)USB,DVI,HDMI 连接器- 配件(37)光伏(太阳能板)连接器(130)光伏(太阳能板)连接器- 触头(7)光伏(太阳能板)连接器- 配件(7)光纤连接器(5)光纤连接器- 适配器(2)光纤连接器- 配件(3)刀片式电源连接器(7)分路器,跳線(123)卡边缘连接器- 边缘板连接器(1053)同轴连接器(RF)(2909)同轴连接器(RF)- 端接器(81)同轴连接器(RF)- 触头(12)同轴连接器(RF)- 适配器(693)同轴连接器(RF)- 配件(74)固态照明连接器(23)固态照明连接器- 触头(8)固态照明连接器- 配件(1)圆形连接器(186896)圆形连接器- 后壳和电缆夹(1819)圆形连接器- 外壳(82226)圆形连接器- 触头(722)圆形连接器- 适配器(249)圆形连接器- 配件(1057)在系列适配器之间(25)套管- 配件(2)套管- 音频连接器(10)存储器连接器- PC 卡- 适配器(4)存储器连接器- PC 卡插槽(799)存储器连接器- 直列式模块插座(693)存储器连接器- 配件(102)接线座- Din 轨道,通道(475)接线座- 接头,插头和插口(18743)接线座- 配件(104)接线座- 配件- 标记条(38)接线座- 配件- 跳线(152)接线座- 隔板块(2742)接线板- 专用(78)接线板- 线至板(7669)接线板- 适配器(138)接线板- 面板安装(44)插接式连接器(723)插接式连接器- 配件(25)模块化连接器- 插头(5)模块化连接器- 插头外壳(27)模块化连接器- 插孔(6270)模块化连接器- 磁性插孔(17)模块化连接器- 适配器(209)模块化连接器- 配件(75)用于IC 的插座,晶体管(154)矩形- 板对板连接器- 针座,公引脚(195)矩形- 板对板连接器- 板垫片,堆叠器(2087)矩形- 板对板连接器- 配件(13)矩形- 板对板连接器- 针座,插座,母插口(2912) 矩形- 板对板连接器- 阵列,边缘型,夹层式(2630) 矩形连接器- 外壳(1137)矩形连接器- 弹簧式(8)矩形连接器- 板载,直接线对板(101)矩形连接器- 自由悬挂,面板安装(669)矩形连接器- 触头(440)矩形连接器- 配件(186)矩形连接器- 针座,公插针(27062)矩形连接器- 针座,插座,母插口(3243)端子- PC 引脚插座,插座连接器(8)端子- PC 引脚,单接线柱连接器(121)端子- 专用连接器(75)端子- 外壳,套(1)端子- 箔片连接器(4)端子- 螺纹连接器(4)端子- 配件(2)端子接线盒系统(591)背板连接器- Hard Metric,标准(2172)背板连接器- 专用(12492)背板连接器- 外壳(215)背板连接器- 触头(65)背板连接器- 配件(361)背板连接器- DIN 41612 (536)触点- 多用途(147)连接器,弹簧加载和压力(16)重载连接器- 外壳,盖罩,基底(1070)重载连接器- 插件,模块(240)重载连接器- 框架(39)重载连接器- 组件(57)重载连接器- 触头(142)重载连接器- 配件(140)amphenol 连接器,安费诺连接器热销型号:制造商零件编号制造商描述包装系列连接器样式L77SDE09S AmphenolCommercialProductsCONN D-SUB RCPT9POS STR SOLDER散装SD D-Sub10090769-P154ALF Amphenol FCI CONN D-SUB HDPLUG 15POS STR托盘10090769D-Sub,高密度DE09S064TLF Amphenol FCI CONN DSUBRCPT 9POSSTR SLDRCUP散装 D D-SubDE09P064TXLF Amphenol FCI CONN DSUBPLUG 9POSSTR SLDRCUP散装 D D-SubDA15P064TXLF Amphenol FCI CONN DSUBPLUG 15POSSTR SLDCUP散装 D D-Sub17EHD-015-P-AA-0-00 AmphenolCommercialProductsCONN D-SUB HDPLUG 15POS STR托盘17EHD D-Sub,高密度ICD15S13E6GV00LF Amphenol FCICONN DSUBHDRCPT 15POS R/A SLDR散装 ICD D-Sub ,高密度10090929-S154VLFAmphenol FCI CONN DSUB HDRCPT 15POS VERT SLD 托盘10090929D-Sub ,高密度D09P33E4GV00LF Amphenol FCICONND-SUB PLUG9POS R/A SOLDER托盘 Delta D D-SubD15S24A4GV00LF Amphenol FCICONN D-SUB RCPT15POS VERT SLDR托盘Delta D D-SubD09P24A4GV00LFAmphenol FCICONND-SUB PLUG9POS VERT SOLDER托盘 Delta D D-SubD09S24A4GV00LFAmphenol FCICONND-SUB RCPT9POS VERT SOLDER托盘 Delta D D-SubD25S24A4GV00LF Amphenol FCICONN D-SUB RCPT25POS VERT SLDR 托盘Delta D D-Sub17EHD-026-P-AA-0-00 AmphenolCommercialProductsCONND-SUB HD PLUG 26POS STR托盘 17EHD D-Sub ,高密度17EHD-044-P-AA-0-00 AmphenolCommercialProductsCONND-SUB HD PLUG 44POS STR托盘 17EHD D-Sub ,高密度17EBH-015-S-AM-0-10 AmphenolCommercialProductsCONN DSUB HD RCPT 15POS R/A托盘 17EBH D-Sub ,高密度SLDRDAP15P065TXLF Amphenol FCI CONN DSUB PLUG15POS STR SLD CUP托盘DP D-SubL77DE09S AmphenolCommercialProductsCONN DSUBRCPT 9POSSTR SLDRCUP托盘 D D-SubMDBE09PE860 AmphenolCommercialProductsCONND-SUB PLUG9POS VERTSOLDER托盘MDB D-SubG17S1510110EU AmphenolCommercialProductsCONN DSUB PLUG15POS STR SLD CUP托盘G17S D-SubL717SDE09P AmphenolCommercialProductsCONN DSUBPLUG 9POSSTR SLDRCUP托盘SD D-SubG17S0900110EU AmphenolCommercialProductsCONN DSUBRCPT 9POSSTR SLDRCUP托盘G17S D-SubLD09P33E4GV00LF Amphenol FCI DSUB R/ASTB 9 PIN LF散装LD D-SubL717SDB25P AmphenolCommercialProductsCONN DSUB PLUG25POS STR SLD CUP托盘SD D-SubG17S1500110EU AmphenolCommercialProductsCONN DSUBRCPT 15POSSTR SLDCUP托盘G17SD-Sub窗体顶端窗体底端SFW15R-2STE1LF Amphenol FCI CONN FFCFPC TOP带卷(TR)SFW-R FFC,FPC可替代的包装15POS1MM R/ASFW15R-2STE1LF Amphenol FCI CONN FFCFPC TOP15POS1MM R/A剪切带(CT)SFW-R FFC,FPC可替代的包装SFW15R-2STE1LF Amphenol FCI CONN FFCFPC TOP15POS1MM R/Aszcwdz-Reel?SFW-R FFC,FPC可替代的包装SFV4R-1STE1HLF Amphenol FCI CONN FFCBOTTOM4POS0.50MMR/A带卷(TR)SFV-R FFC,FPC可替代的包装SFV4R-1STE1HLF Amphenol FCI CONN FFCBOTTOM4POS0.50MMR/A剪切带(CT)SFV-R FFC,FPC可替代的包装SFV4R-1STE1HLF Amphenol FCI CONN FFCBOTTOM4POS0.50MMR/Aszcwdz-Reel?SFV-R FFC,FPC可替代的包装HFW4R-1STE1LF Amphenol FCI CONN FFCBOTTOM4POS1.00MMR/A带卷(TR)HFW-R FFC,FPC可替代的包装HFW4R-1STE1LF Amphenol FCI CONN FFCBOTTOM4POS1.00MMR/A剪切带(CT)HFW-R FFC,FPC可替代的包装HFW4R-1STE1LF Amphenol FCI szcwdz-ReelHFW-R FFC,FPCCONN FFC BOTTOM4POS1.00MMR/A 可替代的包装SFV10R-2STE1HLF Amphenol FCI CONN FFCTOP 10POS0.50MMR/A带卷(TR)SFV-R FFC,FPC可替代的包装SFV10R-2STE1HLF Amphenol FCI CONN FFCTOP 10POS0.50MMR/A剪切带(CT)SFV-R FFC,FPC可替代的包装SFV10R-2STE1HLF Amphenol FCI CONN FFCTOP 10POS0.50MMR/Aszcwdz-Reel?SFV-R FFC,FPC可替代的包装SFV5R-1STE1HLF Amphenol FCI CONN FFCBOTTOM5POS0.50MMR/A带卷(TR)SFV-R FFC,FPC可替代的包装SFV5R-1STE1HLF Amphenol FCI CONN FFCBOTTOM5POS0.50MMR/A剪切带(CT)SFV-R FFC,FPC可替代的包装SFV5R-1STE1HLF Amphenol FCI CONN FFCBOTTOM5POS0.50MMR/Aszcwdz-Reel?SFV-R FFC,FPC可替代的包装SFV16R-1STE1HLF Amphenol FCI CONN FFCBOTTOM16POS0.50MMR/A带卷(TR)SFV-R FFC,FPC可替代的包装SFV16R-1STE1HLF Amphenol FCI CONN FFCBOTTOM16POS0.50MMR/A剪切带(CT)SFV-R FFC,FPC可替代的包装SFV16R-1STE1HLF Amphenol FCI CONN FFCBOTTOM16POS0.50MMR/Aszcwdz-Reel?SFV-R FFC,FPC可替代的包装HFW10S-2STE1LF Amphenol FCI CONN FFCFPC VERT10POS1MM SMD带卷(TR)HFW FFC,FPC可替代的包装HFW10S-2STE1LF Amphenol FCI CONN FFCFPC VERT10POS1MM SMD剪切带(CT)HFW FFC,FPC可替代的包装HFW10S-2STE1LF Amphenol FCI CONN FFCFPC VERT10POS1MM SMDszcwdz-Reel?HFW FFC,FPC可替代的包装SFW4R-1STE1LF Amphenol FCI CONN FFCBOTTOM4POS1.00MMR/A带卷(TR)SFW-R FFC,FPC可替代的包装SFW4R-1STE1LF Amphenol FCI CONN FFCBOTTOM4POS1.00MMR/A剪切带(CT)SFW-R FFC,FPC可替代的包装SFW4R-1STE1LF Amphenol FCI CONN FFCBOTTOM4POS1.00MMszcwdz-Reel?SFW-R FFC,FPC可替代的包装R/ASFW4R-2STE1LFAmphenol FCI CONN FFCFPC TOP4POS1.00MMR/A带卷(TR)SFW-R FFC,FPC窗体顶端窗体底端可替代的包装10118192-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/A带卷(TR)- USB - 微B 型可替代的包装10118192-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/A剪切带(CT)- USB - 微B 型可替代的包装10118192-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/Aszcwdz-Reel?- USB - 微B 型可替代的包装10118193-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/A带卷(TR)- USB - 微B 型可替代的包装10118193-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/A剪切带(CT)- USB - 微B 型可替代的包装10118193-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/Aszcwdz-Reel?- USB - 微B 型可替代的包装10118194-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/A带卷(TR)- USB - 微B 型可替代的包装10118194-0001LF Amphenol FCI 剪切带(CT)- USB - 微B 型CONN USB MICRO B RECPT SMT R/A 可替代的包装10118194-0001LF Amphenol FCI CONN USBMICRO BRECPT SMTR/Aszcwdz-Reel?- USB - 微B 型可替代的包装10103594-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPE B带卷(TR)- USB - 微B 型可替代的包装10103594-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPE B剪切带(CT)- USB - 微B 型可替代的包装10103594-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPE Bszcwdz-Reel?- USB - 微B 型可替代的包装10103592-0001LF Amphenol FCI CONN RCPTREV MICROUSB TYPE B带卷(TR)- USB - 微B 型可替代的包装10103592-0001LF Amphenol FCI CONN RCPTREV MICROUSB TYPE B剪切带(CT)- USB - 微B 型可替代的包装10103592-0001LF Amphenol FCI CONN RCPTREV MICROUSB TYPE Bszcwdz-Reel?- USB - 微B 型可替代的包装10033526-N3212LF Amphenol FCI CONN MINIUSB RCPTRA TYPE BSMD带卷(TR)- USB - mini B可替代的包装10033526-N3212LF Amphenol FCI CONN MINIUSB RCPTRA TYPE BSMD剪切带(CT)- USB - mini B可替代的包装10033526-N3212LF Amphenol FCI CONN MINIUSB RCPTRA TYPE BSMDszcwdz-Reel?- USB - mini B可替代的包装10103593-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPE B带卷(TR)- USB - 微B 型可替代的包装10103593-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPE B剪切带(CT)- USB - 微B 型可替代的包装10103593-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPE Bszcwdz-Reel?- USB - 微B 型可替代的包装10104111-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPEAB带卷(TR)- USB - 微AB 型可替代的包装10104111-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPEAB剪切带(CT)- USB - 微AB 型可替代的包装10104111-0001LF Amphenol FCI CONN RCPTSTD MICROUSB TYPEABszcwdz-Reel?- USB - 微AB 型可替代的包装10104110-0001LF Amphenol FCI CONN RCPTSTD MICRO带卷(TR)-USB - 微B 型窗体顶端窗体底端可替代的包装USB TYPE BA-1JB Amphenol-RFDivisionCONN UMCJACK STR 50OHM SMD带卷(TR)AMC 超微型同轴可替代的包装A-1JB Amphenol-RFDivisionCONN UMCJACK STR 50OHM SMD剪切带(CT)AMC 超微型同轴可替代的包装A-1JB Amphenol-RFDivisionCONN UMCJACK STR 50OHM SMDszcwdz-Reel?AMC 超微型同轴可替代的包装31-320-RFX Amphenol-RFDivisionCONN BNC PLUGSTR 50 OHM CRIMP散装- BNC31-221-RFX Amphenol-RFDivisionCONN BNCJACK STR 50OHMSOLDER散装- BNC122108 Amphenol-RFDivisionCONN TNCPLUG STR50 OHMCRIMP散装- TNC112116 Amphenol-RFDivisionCONN BNC PLUGSTR 50 OHM CRIMP散装- BNC31-315-RFX Amphenol-RFDivisionCONN BNCPLUG STR50 OHMCRIMP散装- BNC031-5431-10RFX Amphenol-RF 散装- BNCDivision CONN BNCJACK R/A 50OHM PCB112538 Amphenol-RFDivisionCONN BNCJACK STR 50OHM PCB散装- BNC031-10-RFXG1 Amphenol-RFDivisionCONN BNCJACK STR 50OHMSOLDER散装- BNC112133 Amphenol-RFDivisionCONN BNCPLUG STR75 OHMCRIMP散装- BNC142138 Amphenol-RFDivisionCONN SMBJACK STR 50OHM PCB散装- SMB031-5329-52RFX Amphenol-RFDivisionCONN BNC JACKSTR 50 OHM PCB散装- BNCFA1-NZSJ-C01-0 Amphenol-RFDivisionCONNFAKRA JACKSTR 50OHMCRIMP托盘- SMB,FakraFA1-NCSJ-C01-0 Amphenol-RFDivisionCONNFAKRA JACKSTR 50OHMCRIMP托盘- SMB,FakraFA1-NCRP-PCB-8 Amphenol-RFDivisionCONNFAKRA PLUGR/A 50OHM PCB托盘- SMB,Fakra31-10-RFX Amphenol-RF 散- BNCDivision CONN BNCJACK STR 50OHMSOLDER装031-5329-72RFX Amphenol-RFDivisionCONN BNCJACK STR 75OHM PCB散装- BNC142138-75 Amphenol-RFDivisionCONN SMBJACK STR 75OHM PCB散装- SMB,迷你型901-9867-RFX Amphenol-RFDivisionCONN SMAPLUG STR50 OHMSOLDER散装- SMA31-236 Amphenol-RFDivisionCONN BNCJACK STR 50OHMSOLDER散装- BNC132101 Amphenol-RFDivisionCONN SMAPLUG STR50 OHMSOLDER散装- SMA132102 Amphenol-RFDivisionCONN SMAPLUG STR50 OHMSOLDER散装- SMA31-5640-1010 Amphenol-RFDivisionCONN BNCJACK R/A 50OHM PCB散装-BNC窗体顶端窗体底端。
网络连接器接触可靠性测试要求及设计总结【摘要】本文介绍了网络连接器在接触可靠性测试方面,业界和大厂的要求,就如何满足这些可靠性测试要求,在设计上关键点做一总结,让从事网络连接器设计者借鉴参考,避免在设计上走弯路。
【关键词】机械冲击;机械振动;摇摆测试;正向力;瞬断(discontinuity);可靠连接;连接器1.引言电子连接器是电子网络、电子设备、电子终端中完成电功率,电信号传输的精密组件,它的功能及整体质量好坏对系统影响极大。
连接接触可靠性是保证信号传输功能重要的环节,没有可靠的电子连接,就没有先进的电子学。
连接器最重要的功能要求是:将主板和接口设备能够进行可靠连接。
产品在客户端被抱怨的项目各种各样,但其中影响功能的缺陷最不能接受。
图1是机柜布线照片,我们可以看到网线被绑拽,这就对网口连接器母头接触可靠性方面提出更高的要求:包容公头,并能在恶劣状况下可靠连接,怎样才能从设计上保障?怎样测试确认?详见如下内容:图1 机柜布线和连接器公母头外形图图2 机械振动条件和机器图2.网口连接器接触可靠性测试介绍连接器信赖性测试包含机械性能测试,电性能测试,环境性能测试。
其中环境性能测试是考虑产品可靠性的方面,包含耐热性,耐冷性,冷热冲击,温湿循环,烟雾测试,插拔循环,耐焊接热,机械冲击,机械振动,混合气体等等。
针对很多信赖性测试项目,其前后均通过测试低功率接触阻抗项目来判断功能是否完好,其本质上也是考虑其接触性。
但机械振动和机械冲击是直接考虑接触可靠性,通过是否有信号瞬断来判断。
2.1 机械振动依据连接器测试标准:EIA364-28,测试条件:频率10赫兹~500赫兹~10赫兹,振幅1.5mm,测试时间:每个坐标系方向2小时,三个坐标系共计持续6小时,测试样品:母头和公头配合形成信号回路,加载100毫安电流,回路上串连瞬断显示器。
整个测试过程中测试样品不能发生机械损伤,电流信号保持持续畅通,出现电信号瞬断时间不得大于1微秒(百万分之一秒),否则判定不通过。
第9章 共享库$Revision: 2.3 $$Date: 1999/06/15 03:30:36 $程序库的产生可以追溯到计算技术的最早期,因为程序员很快就意识到通过重用程序的代码片段可以节省大量的时间和精力。
随着如Fortran and COBOL等语言编译器的发展,程序库成为编程的一部分。
当程序调用一个标准过程时,如sqrt(),编译过的语言显式地使用库,而且它们也隐式地使用用于I/O、转换、排序及很多其它复杂得不能用内联代码解释的函数库。
随着语言变得更为复杂,库也相应地变复杂了。
当我在20年前写一个Fortran 7 7编译器时,运行库就已经比编译器本身的工作要多了,而一个Fortran 77库远比一个C++库要来得简单。
语言库的增加意味着:不但所有的程序包含库代码,而且大部分程序包含许多相同的库代码。
例如,每个C程序都要使用系统调用库,几乎所有的C程序都使用标准I/O库例程,如printf,而且很多使用了别的通用库,如math,networking,及其它通用函数。
这就意味着在一个有一千个编译过的程序的UNIX系统中,就有将近一千份printf的拷贝。
如果所有那些程序能共享一份它们用到的库例程的拷贝,对磁盘空间的节省是可观的。
(在一个没有共享库的UNIX系统上,单printf的拷贝就有5到10M。
)更重要的是,运行中的程序如能共享单个在内存中的库的拷贝,这对主存的节省是相当可观的,不但节省内存,也提高页交换。
所有共享库基本上以相同的方式工作。
在链接时,链接器搜索整个库以找到用于解决那些未定义的外部符号的模块。
但链接器不把模块内容拷贝到输出文件中,而是标记模块来自的库名,同时在可执行文件中放一个库的列表。
当程序被装载时,启动代码找到那些库,并在程序开始前把它们映射到程序的地址空间,如图1。
标准操作系统的文件映射机制自动共享那些以只读或写时拷贝的映射页。
负责映射的启动代码可能是在操作系统中,或在可执行体,或在已经映射到进程地址空间的特定动态链接器中,或是这三者的某种并集。
---------------------------------------------------------------------------------------------图9-1:带有共享库的程序可执行程序,共享库的图例可执行程序main,app库,C库不同位置来的文件箭头展示了从main到app,main到C,app到C的引用---------------------------------------------------------------------------------------------在本章,我们着眼于静态链接库,也就是库中的程序和数据地址在链接时绑定到可执行体中。
在下一章我们着眼于更复杂的动态链接库。
尽管动态链接更灵活更“现代”,但也比静态链接要慢很多,因为在链接时要做的大量工作在每次启动动态链接的程序时要重新做。
同时,动态链接的程序通常使用额外的“胶合(g lu e)”代码来调用共享库中的例程。
胶合代码通常包含若干个跳转,这会明显地减慢调用速度。
在同时支持静态和动态共享库的系统上,除非程序需要动态链接的额外扩展性,不然使用静态链接库能使它们更快更小巧。
绑定时间共享库提出的绑定时间问题,是常规链接的程序不会遇到的。
一个用到了共享库的程序在运行时依赖于这些库的有效性。
当所需的库不存在时,就会发生错误。
在这情况下,除了打印出一个晦涩的错误信息并退出外,不会有更多的事情要做。
当库已经存在,但是自从程序链接以来库已经改变了时,一个更有趣的问题就会发生。
在一个常规链接的程序中,在链接时符号就被绑定到地址上而库代码就已经绑定到可执行体中了,所以程序所链接的库是那个忽略了随后变更的库。
对于静态共享库,符号在链接时被绑定到地址上,而库代码要直到运行时才被绑定到可执行体上。
(对于动态共享库而言,它们都推迟到运行时。
)一个静态链接共享库不能改变太多,以防破坏它所绑定到的程序。
因为例程的地址和库中的数据都已经绑定到程序中了,任何对这些地址的改变都将导致灾难。
如果不改变程序所依赖的静态库中的任何地址,那么有时一个共享库就可以在不影响程序对它调用的前提下进行升级。
这就是通常用于小bu g修复的"小更新版"。
更大的改变不可避免地要改变程序地址,这就意味着一个系统要么需要多个版本的库,要么迫使程序员在每次改变库时都重新链接它们所有的程序。
实际中,永远不变的解决办法就是多版本,因为磁盘空间便宜,而要找到每个会用到共享库可执行体几乎是不可能的。
实际的共享库本章余下的部分将关注于UNIX Sy stem V Re l ease 3.2 (COFF格式),较早的Lin ux系统(a.o u t格式),和4.4B S D的派生系统(a.o u t和E LF格式)这三者提供的静态共享库。
这三者以几近相同的方式工作,但有些不同点具有启发意义。
SV R3.2的实现要求改变链接器以支持共享库搜索,并需要操作系统的强力支持以满足例程在运行时的启动需求。
Lin ux的实现需要对链接器进行一点小的调整并增加一个系统调用以辅助库映射。
B S D/O S的实现不对链接器或操作系统作任何改变,它使用一个脚本为链接器提供必要的参数和一个修改过的标准C 库启动例程以映射到库中。
地址空间管理共享库中最困难的就是地址空间管理。
每一个共享库在使用它的程序里都占用一段固定的地址空间。
不同的库,如果能够被使用在同一个程序中,它们还必须使用互不重叠的地址空间。
虽然机械的检查库的地址空间是否重叠是可能的,但是给不同的库赋予相应的地址空间仍然是一种“魔法”。
一方面,你还想在它们之间留一些余地,这样当其中某个新版本的库增长了一些时,它不会延伸到下一个库的空间而发生冲突。
另一方面,你还想将你最常用的库尽可能紧密的放在一起以节省需要的页表数量(要知道在x86上,进程地址空间的每一个4MB的块都有一个对应的二级表)。
每个系统的共享库地址空间都必然有一个主表,库从离应用程序很远的地址空间开始。
Lin ux从十六进制的60000000开始,B S D/O S从A0000000开始。
商业厂家将会为厂家提供的库、用户和第三方库进一步细分地址空间,比如对B S D/O S,用户和第三方库开始于地址A08 00000。
通常库的代码和数据地址都会被明确的定义,其中数据区域从代码区域结束地址后的一个或两个页对齐的地方开始。
由于一般都不会更新数据区域的布局,而只是增加或者更改代码区域,所以这样就使小更新版本成为可能。
每一个共享库都会输出符号,包括代码和数据,而且如果这个库依赖于别的库,那么通常也会引入符号。
虽然以某种偶然的顺序将例程链接为一个共享库也能使用,但是真正的库使用一些分配地址的原则而使得链接更容易,或者至少使在更新库的时候不必修改输出符号的地址成为可能。
对于代码地址,库中有一个可以跳转到所有例程的跳转指令表,并将这些跳转的地址作为相应例程的地址输出,而不是输出这些例程的实际地址。
所有跳转指令的大小都是相同的,所以跳转表的地址很容易计算,并且只要表中不在库更新时加入或删除表项,那么这些地址将不会随版本而改变。
每一个例程多出一条跳转指令不会明显的降低速度,由于实际的例程地址是不可见的,所以即使新版本与旧版本的例程大小和地址都不一样,库的新旧版本仍然是可兼容的。
对于输出数据,情况就要复杂一些,因为没有一种像对代码地址那样的简单方法来增加一个间接层。
实际中的输出数据一般是很少变动的、尺寸已知的表,例如C标准I/O库中的FIL E结构,或者像errno那样的单字数值(最近一次系统调用返回的错误代码),或者是t z name(指向当前时区名称的两个字符串的指针)。
建立共享库的程序员可以收集到这些输出数据并放置在数据段的开头,使它们位于每个例程中所使用的匿名数据的前面,这样使得这些输出地址在库更新时不太可能会有变化。
共享库的结构共享库是一个包含所有准备被映射的库代码和数据的可执行格式文件,见图9-2。
---------------------------------------------------------------------------------------------图9-2: 典型共享库的结构文件头,a.o u t, COFF或E LF头(初始化例程,不总存在)跳转表代码全局数据私有数据---------------------------------------------------------------------------------------------一些共享库从一个小的自举例程开始,来映射库的剩余部分。
之后是跳转表,如果它不是库的第一个内容,那么就把它对齐到下一个页的位置。
库中每一个输出的公共例程的地址就是跳转表的表项;跟在跳转表后面的是文本段的剩余部分(由于跳转表是可执行代码,所以它被认为是文本),然后是输出数据和私有数据。
在逻辑上b ss段应跟在数据的后面,但是就像在任何别的可执行文件中那样,它并不在于这个文件中。
创建共享库一个UNIX共享库实际上包含两个相关文件,即共享库本身和给链接器用的空占位库(st ub l i b rar y)。
库创建工具将一个档案格式的普通库和一些包含控制信息的文件作为输入生成了这两个文件。
空占位库根本不包含任何的代码和数据(可能会包含一个小的自举例程),但是它包含程序链接该库时需要使用的符号定义。
创建一个共享库需要以下几步,我们将在后面更多的讨论它们:确定库的代码和数据将被定位到什么地址。
彻底扫描输入的库寻找所有输出的代码符号(如果某些符号是用来在库内通信的,那么就会有一个控制文件是这些不对外输出的符号的列表)。
创建一个跳转表,表中的每一项分别对应每个输出的代码符号。
如果在库的开头有一个初始化或加载例程,那么就编译或者汇编它。
创建共享库。
运行链接器把所有内容都链接为一个大的可执行格式文件。
创建空占位库:从刚刚建立的共享库中提取出需要的符号,针对输入库的符号调整这些符号。
为每一个库例程创建一个空占位例程。
在COFF库中,也会有一个小的初始化代码放在占位库里并被链接到每一个可执行体中。
创建跳转表最简单的创建一个跳转表的方法就是编写一个全是跳转指令的汇编源代码文件,如图3,并汇编它。
这些跳转指令需要使用一种系统的方法来标记,这样以后空占位库就能够把这些地址提出取来。
对于像x86这样具有多种长度的跳转指令的平台,可能稍微复杂一点。
对于含有小于6 4K代码的库,3个字节的短跳转指令就足够了。
对于较大的库,需要使用更长的5字节的跳转指令。
将不同长度的跳转指令混在一起是不能让人满意的,因为它使得表地址的计算更加困难,同时也更难在以后重建库时确保兼容性。