tag 标签: 编码

相关帖子
相关博文
  • 热度 8
    2022-12-22 22:06
    823 次阅读|
    0 个评论
    从脚本到基础设施编码,看系统管理员如何提速!
    在IT部门中,系统管理员每天要执行大量重复性任务,而脚本是系统管理员自动执行此类任务的最有效技术之一。然而,脚本虽然有助于自动执行简单的日常任务,但当任务变得复杂并需要更改配置时,它就显得力不从心了。IT 管理员、系统管理员和IT经理一直在寻找更好的方法来“轻松实现复杂任务的自动化”。 脚本比敏捷软件开发更加脆弱,我们需要的是一个有条理、符合企业标准的代码。当员工通过编写配置脚本或代码来自动化解决某些问题时,如果这个员工离开公司,脚本就会丢失。于是整个团队就会出现自动化孤岛以及混乱的脚本。 关于脚本的常见问题 为了深入了解脚本编写现状及相关问题,OWL Labs调查了20位熟悉基础设施自动化脚本编写的高管。下面是调查中出现的一些问题: -脚本非常容易发生错误:新产品的发行周期很短。如果自动化脚本出现问题,就会出现故障,用户将无法判断故障是由于脚本错误还是过程中的其他错误导致产品发布周期延迟。 -平衡各种选择的投资回报率(ROI)绝非易事:虽然大多数IT任务都可以自动化,但自动化本身需要加强。正如用户可以在产品中发现缺陷一样,也可以在用于测试产品的自动化中发现缺陷。因为自动化中存在的问题在实施时通常是未知的,一旦进入软件生命周期,想要快速实现更新是非常苦难的。简而言之,这些脚本问题表现为零散的或偶发的失败,并且可能需要很长时间才能找出。 -关键数据风险:使用脚本作为自动化代理来交付代码是一回事,使用脚本来进行自动化任务完全是另一回事。如果用户拥有一个无法承受损失的关键数据库,那么将其用作自动化代理环境是有风险的。当脚本作为配置过程的一部分清除集群时,也有可能会永久删除数据库,这对企业而言将是灾难性的。 -脚本在其功能方面有局限性:它们基本上是一系列if-then语句,缺乏实际代码的灵活性。 -结构不充分:脚本编写比结构化编码项目更松散和非正式,结构化编码项目包括签入/签出、修订和回滚、测试和部署。 -幂等性:脚本缺少一个称为幂等性(意味着无论用户运行多少次脚本,结果总是一样的)的属性,这是大多数脚本无法提供的一个特性。 解决方案:改为对基础设施进行编码 技术分析公司Forrester进行了一项关于“团队通过编码其基础设施而获得的利益”的研究。以下是该研究的快照: 我们可以明显看到,将其基础架构进行编码的团队获得了一些好处:从缩短发布周期到提供一致的结果。以下是参与研究的团队报告的其他益处: -减少影子IT:通过辅助部署来编制基础设施以对新的IT需求做出快速反应,确保基础设施安全性得到改善并正确遵守公司IT标准,这也有助于IT预算编制和定价分配。 -提高用户满意度:在短时间内提供一种独一无二、基于组件的服务,会提高用户满意度并对IT团队产生信任感。 -降低运营成本:企业在短短几分钟内就可以配置和部署经过充分测试且符合法规要求的新IT基础设施资产(几乎不需要人工干预),从而节省了大量资金。 -降低项目成本:当开发人员独自承担众多团队成员任务时,特别是在DevOps自动化的环境中,改为对基础设施进行编码项目后成本会大大降低。 -标准化:当对新的基础设施进行编码时,这套指令具有一致性和标准化。 虹科Chef DevOps解决方案 虹科Chef自动化通过帮助IT团队采用现代最佳实践继续引领 DevOps 领域,包括: -测试驱动开发:配置更改测试与应用程序更改测试并行。 -AIOps支持:IT运营可以通过数据整合和第三方集成进行扩展。 -自助服务:敏捷交付团队可以按需配置和部署基础设施。 Chef通过自动化各种复杂系统配置的方式编制用户的IT资源,同时将安全和合规标准定义为可读代码。 Chef允许跨不同设置快速打包和分发应用程序。 虹科Chef帮助公司了解如何使用代码自动化大规模安全交付基础设施和应用程序,同时大规模维护安全性和法规遵从性,并使用可重复的模式将应用程序交付到客户的系统。 虹科Chef通过灵活的、版本控制的、经过测试的、可读的配置策略帮助IT团队在工作中可靠地、安全地、可重复地部署和修改基础设施。 Chef能够自动校正配置漂移,并根据环境中的硬件和条件动态修改配置,从而实现动态应用更新。 虹科Chef Desktop相关软件 Chef Desktop Management Chef Desktop Management软件是一种可定制和可扩展的解决方案,使企业能够自动化管理其IT 资源(笔记本电脑、台式机、信息亭)而无需考虑操作系统。该软件还可以帮助团队消除手动流程,使用单一工具持续了解整个企业地IT资源配置状态,不仅消除了手动流程引起的错误和时间浪费,还提高了企业的生产速度。Chef Desktop Management的优势: -控制IT资源 应用一致、灵活的策略驱动配置,保持对整个基础设施状态的可见性。 -通过自动化提高效率 执行自动化任务,消除耗时的手动流程,降低管理大型台式机和笔记本电脑的成本。 -降低安全和合规风险 采用行业标准进行审计和补救来保持持续的合规性。 Chef Desktop Compliance 除了基础设施配置管理之外,还有一个Chef Desktop Compliance工具。它支持针对互联网安全中心 (CIS) 基准进行持续的合规性审计,这些基准可以根据企业或特定角色的需求进行调整,以降低分布式、异构IT资源队列产生的风险。此外,相关问题可以根据需要自动修复或标记以供后续跟进,并且可以灵活部署 Chef Desktop Compliance 以满足独特的需求,例如密闭环境和其他非传统设置。 想要获取【虹科Chef DevOps解决方案】更多信息,欢迎评论!
  • 热度 4
    2018-2-27 13:25
    3323 次阅读|
    0 个评论
    为了提高串行数据传输的可靠性,现在很多更高速率的数字接口采用的是对数据进行编码后再做并串转换的方式。编码的方式有很多,如 8b/9b 编码、 8b/10b 编码、 64b/66b 编码、 128b/130b 编码等,下面我们以最流行的 ANSI 8b/10b 编码为例进行一下介绍。 在 ANSI 8b/10b 编码方式中, 8 比特的数据先通过相应的编码规则转换成 10 比特的数据,然后再进行并串转换;接收端收到信号后先把串行数据进行串并转换得到 10 比特的数据,然后再通过 10 比特到 8 比特的解码得到原始传输的 8 比特数据。因此,如果发送端并行侧的数据速率是 8bit*100Mb/s ,通过 8b/10b 编码和并串转换后的串行侧的数据速率就是 1bit*1Gb/s 。 8b/10b 编码方法最早由 IBM 发明,后来成为 ANSI 标准的一部分( ANSI X3.230-1994, clause 11 ),并在通信和计算机总线上广泛应用。 数据经过 8b/10b 编码后有几个最大的好处: v 有足够多的跳变沿,可以从数据里进行时钟恢复。正常传输的数据里可能会有比较长的连续的 0 或者连续的 1 ,而进行完 8b/10b 编码后,其编码规则保证了编码后的数据流里不会出现超过 5 个的连续的 0 或 1 ,信号里会出现足够多的跳变沿,因此可以采样嵌入式的时钟方式,即接收端可以从数据流里用 PLL 电路直接恢复时钟,不需要专门的时钟传输通道。 v 直流平衡,可以采用 AC 耦合方式。经过编码后数据里不会出现连续的 0 或者 1 了,但是还是有可能在某个时间段内 0 或者 1 的数量偏多一些。从上面的编码表中我们可以看到同一个 Byte 对应有正、负两组 10bit 的编码,一个编码里 1 的数量多一些,另一个编码里 0 的数量多一些。数据在对当前的 Byte 进行 8b/10b 编码传输时,会根据前面历史传输的数据中正负 bit 的数量来选择使用哪一组编码,从而可以保证总线上正负 bit 的数量在任何时刻基本都是平衡的,也就是直流点不会发生大的变化。直流点平衡以后,在信号传输的路径上我们就可以采用 AC 耦合方式(最常用的方法是在发送端或接收端串接隔直电容),这样信号对于收发端的地电平变化和共模噪声的抵抗能力进一步增强,可以传输更远的距离。采用 AC 耦合方式的另一个好处是收发端在做互连时不用太考虑直流偏置点的互相影响,互连变得非常简单,对于热插拔的支持能力也更好。 v 有利于信号校验。很多高速信号在做传输时为了保证传输的可靠性要对接收到的信号进行检查以确认收到的信号是否正确。在 8b/10bit 编码表里,原始的 8bit 数据总共有 256 个组合,即使考虑到每个 Byte 有正负两个 10bit 编码也只需要用到 512 个 10bit 的组合。而 10bit 的数据总共可以有 1024 个组合,因此有大约一半的 10bit 组合是无效的数据,接收端一旦收到这样的无效组合就可以判决数据无效。另外,前面我们介绍过数据在传输过程中是要保证直流平衡的,一旦接收端收到的数据中发现违反直流平衡的规则,也可以判决数据无效。因此采用 8b/10b 编码以后数据本身就可以提供一定的信号校验功能。不过需要注意的是,这种校验不是足够可靠,因为理论上还是可能存在有几个 bit 在传输中发生了错误但是结果仍然符合 8b/10b 编码和规则和直流平衡原则。因此,很多使用 8b/10b 编码的总线都还会在上层协议上再做相应的 CRC 校验(循环冗余校验)。 v 可以插入控制字符。在 10bit 数据可以表示的 1024 个组合中,除了 512 个组合用于对应原始的 8bit 数据以及一些不太好的组合(比如 0b1100000000 这样信号里有太长的连续 0 或者 1 而且明显 0 、 1 的数量不平衡)以外,还有一些很特殊的组合。这些特殊的组合可以用来在数据传输过程中做为控制字符插入。这些控制字符不对应特定的 8bit 数据,但是在有些总线应用里可以代表一些特殊的含义。比如 K28.5 码型,其特殊的码型组合可以帮助接收端更容易判别接收到的连续的 10bit 数据流的符号边界,所以在一些总线的初始化阶段或数据包的包头都会进行发送。还有一些特殊的符号用于进行链路训练、标记不同的数据包类型、进行收发端的时钟速率匹配等。 综上所述,要把并行的信号通过串行总线传输,一般需要对数据进行并串转换。为了进一步减少传输线的数量和提高传输距离,很多高速数据总线采用嵌入式时钟和 8b/10b 的数据编码方式。 8b/10b 编码由于直流平衡、支持 AC 耦合、可嵌入时钟信息、抗共模干扰能力强、编解码结构相对简单等优点,在很多高速的数字总线如 FiberChannel 、 PCI-E 、 SATA 、 USB3.0 、 DisplayPort 、 XAUI 、 RapidIO 等接口上得到广泛应用。
  • 热度 22
    2013-11-28 23:25
    1564 次阅读|
    5 个评论
    做到代码的静态检查, 代码版本的控制。 慢慢使用MISRA2004+相应的文档规范, 保证新代码的质量与版本控制。   如何做到文档与代码同步呢? 必须先整理出文档, 然后再修改? 这或许是,唯一能够保证文档代码同步的方式。 如果写完代码后再来整理文档, 不说能否记得已经修改的要点, 如果还有其他事情要做, 可能就会把文档的事情,给放在不知道哪里了。   对于在单片机上编程, 要注意局部变量的大小, 但是,如果把大的局部变量都用全局变量或者局部静态变量来替换, 又会面临一个问题, 如果初始化了,会在加载时拷贝到data段,分配好内存空间,即一直占用内存空间, 如果没有初始化,会加载到bss段,没有分配内存空间,即使用时分配内存空间, 如果这里,变量是没有初始化的静态变量(全局变量),在运行中分配时更会造成想不到的问题。 (注:这里考虑多了,查看了Keil编译后的map文件发现bss段(没有初始化的全局变量)的变量也是已经分配内存空间了)   所以在嵌入式编程中, 尽量避免没有初始化的全局变量(局部静态变量)。   不能陷入局部的错误查找中, 要能从程序整体上分析,出现错误的原因。
  • 热度 19
    2012-5-10 16:38
    2078 次阅读|
    0 个评论
    大家好,前面我们给大家介绍了无线通信中 FEC 编码原理( 1 )和( 2 ),今天继续献上 FEC 编码原理及评价( 3 ),关于不同 FEC 种类的评价,希望对大家有所帮助~   对于不同 FEC 的评价   这里我们介绍一些典型的 FEC 的应用并且做出一些解释和评价。我们根据不同的使用将这一部分分为两块。   1. 互联网中的 FEC   这一部分,我们主要关注三个 FEC 的例子。   ( 1 ) Hamming 码   Hamming 码是由 Hamming 在 1950 年最初使用的,它是一种线性的纠错码,能自动监测出两个同时出现的比特错误并且纠正其中一个。这要比基础的奇偶校验码有效。   Hamming 码不仅有很好的性能,而且它的编码和解码的电路都非常的简单并且易于实施。所以,它被广泛应用于小的电脑中。但是, Hamming 码不能用于两个或两个以上错误比特的纠正。   Hamming 码的例子   2 ) CRC 码   CRC ,是 Cyclic Redundancy Check 的缩写,是通信系统中最普遍也是最强大的错误检测码。它根据信息字段的长度而设计,而校验字段的长度可以随意选择。   利用 CRC 进行的错误检测的过程可以简单的描述为:发送端产生一段 k 比特的二进制码序列,之后根据特定的规则得出 CRC 码并附在原始码字后面。这个具有 (k+r) 比特的二进制码序列就可以被发送了。传输过程之后,接收端根据原始码与 CRC 码之间的规则检测到其中是否有错误。     CRC 在互联网及其他领域的应用非常广泛,因为它具有很强的错误检测能力,低成本并且易于实现。 CRC 不能检测到错误的概率仅为 0.0047% 或更少。对于性能和成本来讲, CRC 要比奇偶校验和算术检测要好的多。但是, CRC 也很有可能会对于不同的信息产生相同的 CRC 码,尤其是当大量信息同时出现的时候。在这种情况下, CRC 将会出现错误并且对于接收方重建原始信息增加了困难。例如,接收方必须要逐个比特进行检查来避免错误,这样会增加很多处理时间,所以,我们需要高性能的发送端和接收端。还有, CRC 显然并不适合只具有低端 CPU 的设备。 CRC 码的计算   ( 3 ) BCH 码   BCH 码,最初由 Bose 、 Ray-Chaudhuri and Hocquenghem 提出,是 Cyclic 码的另一种重要分支。它具有纠正多个错误的能力。 BCH 码有严格的代数理论,是一种被最深入研究的编码方式。   BCH 码的理论优势就是它的解码非常简便,通过被称为综合解码的代数方法来进行解码。这种方法只需要非常简单的电子硬件来完成这一任务,并不需要电脑。这样,解码的设备就可以做的很小并且需要很少的能源。所以,在 BCH 码的帮助下,我们可以利用低端的 CPU 和小型的设备高效的完成错误纠正,比如我们的手机。   无线通信中FEC编码原理及评价(2)请参考: http://forum.eet-cn.com/BLOG_ARTICLE_11978.HTM 未完待续 文/纪桐     系列文章列表: 无线通信中FEC 编码原理及评价(1) 无线通信中FEC 编码原理及评价(2) 无线通信中FEC 编码原理及评价(3) 无线通信中FEC 编码原理及评价(4)  
  • 热度 27
    2012-5-10 16:37
    2174 次阅读|
    3 个评论
    大家好,前面我们给大家介绍了无线通信中FEC编码原理,今天继续献上FEC 编码原理及评价(2),希望对大家有所帮助~   二. FEC的原理及种类    1. FEC的原理   简单的说,FEC是一种为数据传输而设计的差错控制技术。发送端在需要传输的数据中加入冗余数据。接收端则根据这些冗余数据检测出整个数据中的误码。当接收端检测出码字中的错误,立即将它们改正。   FEC利用了Shannon-Hartley定理中给出的传输速率(或信息比特速率)R b 和信道容量R max 的区别。在一段足够长的码字中使用FEC,付出了增加传输延迟的代价来降低误码率P b 。增加的延迟主要来自这几方面:需要组合将要传送的码字,接收到数据后需要花时间来计算从而检测出错误并改正。然而,差错控制的好处往往要比由于处理FEC所带来的延迟重要的多。      2. FEC工作机制     上图表示的是利用了FEC的整个通信过程。在最开始阶段,信源将产生一串信息比特。在编数据在编码器中编码,在这个过程中,原始数据的前面将会加入(n- k)个冗余比特(也称作校验比特)。n表示整个数据的比特数,k表示原始信息的比特数。冗余码,也称作纠错码,与原始信息有一种特殊的计算关系,这样接收 端就可以根据冗余码来纠正数据中的错误。这里的一个很重要的参数就是冗余度,表示为(n-k)/n。在特定的带宽中,整个传输数据的长度是有限制的。也就 是说,冗余度越高,数据中的信息含量就越少。然而,当冗余度到达一定高度时,就可以保证接收端接收信息的准确性。之后,经过调制器(modulator) 的数据就变成了可以发送到信道中的信号。经过信道的传输后,接收端收到信号,解调信号使其从模拟信号还原为数字格式。由于冗余码和原始的信息存在特定的关 系,解码器(decoder)则可以检测其中的错误并得到原始的比特。最后将这些数字信息传给信宿。   3. FEC的种类   FEC码主要有两个种类,块状码和卷积码。   块状码主要作用于固定长度的数据块(包)或者预先定义长度的符号。一段数据含有n比特,其中有k个信息比特,剩下的就是冗余比特。实际操作中块状码可以被 解码到特定的长度,并且冗余码只与统一块中的信息码相关。块状码也有许多类型,比如Reed-Solomon编码,Golay,,BCH,多维度校验,和 Hamming码。   卷积码主要作用于随即长度的比特或符号流。与块状码不同,卷积码不是只与在同一块中的信息码相关,而是与前一块的码字相关。这种FEC要比另外一种复杂。 后续中我们仍会继续献上更多无线通信中FEC编码原理的相关知识,期待您的评论于意见哦~~~   未完待续 文/纪桐 无线通信中FEC 编码原理及评价(1)阅读地址: http://forum.eet-cn.com/BLOG_ARTICLE_11931.HTM     系列文章列表: 无线通信中FEC 编码原理及评价(1) 无线通信中FEC 编码原理及评价(2) 无线通信中FEC 编码原理及评价(3) 无线通信中FEC 编码原理及评价(4)  
相关资源