说明

主要是简单介绍一下Golang Hotfix工具的技术背景。

标题

Monkey

原理

Monkey通过在运行时重写正在运行的可执行文件,并插入一个跳转指令到您真正想要调用的函数上来实现Monkeypatching。
Bouke: 这听起来很不安全,我不建议任何人在测试环境之外进行操作。

Limit

  • 如果启用了内联,则Monkey有时无法修补功能。 尝试在禁用内联的情况下运行测试。
  • Monkey无法在某些不允许将内存页同时写入和执行的面向安全性的操作系统上运行。 使用当前方法,并没有真正可靠的解决方案。
  • Monkey不是线程安全的。或是任何一种安全。
  • 应该可以在任何基于unix的x86或x86-64系统上工作。

inline

Golang中虽然没有inline关键字,但仍存在inline函数,一个函数是否是inline函数由编译器决定。inline函数的特点是简单短小,在源代码的层次看有函数的结构,而在编译后却不具备函数的性质。inline函数不是在调用时发生控制转移,而是在编译时将函数体嵌入到每一个调用处,所以inline函数在调用时没有地址。

go plugins

在1.8之前,如果我们想用第三方的库,只能获取到源码才可以,而不能使用编译后的代码,比如jar、dll、so文件。不过Golang1.8版本中新加入了plugin包,我们可以通过这个包来实现调用、访问编译后方法和变量的功能

首次打开plugin时,将调用尚未包含在程序中的所有软件包的init函数。 main function未运行。 A plugin仅初始化一次,无法关闭。
Support:Linux, FreeBSD, and macOS.

force export

  • go-forceexport是一个golang软件包,它允许访问任何模块级功能,甚至包括未导出的功能。传入一个函数的字符串名称,例如time.now,它则返回给你一个调用该函数的函数值。
  • 调用未导出的函数本质上是脆弱的,因为该函数没有任何稳定性保证。
  • 代码使用go:linkname编译器指令来访问runtime.firstmoduledata符号,该符号是由链接器创建的内部数据结构,该链接器由runtime.FuncForPC之类的函数使用

Golang Hotfix技术背景相关推荐

  1. 孟晚舟升任华为轮值董事长,任正非曾表态:她无技术背景,不会成为接班人...

    博雯 梦晨 鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 回国半年,孟晚舟刚刚被发现已晋升华为轮值董事长. 轮值董事长,属于华为最高管理层的最高岗位,当值期间是华为的最高领袖,负责主持董事会及 ...

  2. 计算机网络产生的历史背景,网络技术背景及sdn概述.pdf

    网络技术背景及sdn概述 软件定义网络 黄韬 北京邮电大学北京邮电大学 第1章:背景与概述 个人简介个人简介 • 黄韬 – 信息与通信工程学院 – 博士,副教授 – 科研方向科研方向::未来网络未来网 ...

  3. 无需深厚技术背景,也可以做好系统和应用维护管理

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lauef.blog.51cto.com/413888/165636 做 ...

  4. 【技术白皮书】第一章:基于深度学习的文本检测与识别的技术背景

    1.技术背景 1.1技术背景--什么是文本检测与识别 OCR全称Optical Character Recognition,即光学字符识别,最早在1929年被德国科学家Tausheck提出,定义为将印 ...

  5. 云技术背景下ssl证书可以提供怎样的安全服务呢?

    大数据.云技术是互联网信息时代的新名词,这些词汇对于普通互联网用户来说似曾相识但又不解其意,唯一可以确定的是,在云技术背景下我们的网络信息服务更加便捷,网络安全风险越发增加,但网络安全防护也随之提升. ...

  6. 经纬张颖:给科研技术背景创始人的十条建议

    来源:动脉橙果局 编辑: Light 出品: 科技智谷 " 给科研技术背景创始人的十条建议 近一年,随着经纬在科技类公司的投资比例更大.金额更多,我和这类创始人们也进行了更高频次的交流,更多 ...

  7. “产业数字化”的技术背景与现实作用

    从工业经济时代走向数字经济时代,世界经济发生着全方位.革命性的变化,数字经济成为引领全球经济社会变革.推动我国经济高质量发展的重要引擎.而产业数字化则是数字经济的主阵地,产业数字化运用大数据.人工智能 ...

  8. 达芬奇技术背景和规范

    达芬奇技术背景和规范,英文原文网址:http://focus.ti.com/lit/an/sprt401a/sprt401a.pdf 执行摘要  达芬奇技术是首款基于 DSP 处理器.软件.工具和支持 ...

  9. 华为BFD技术 技术背景+工作机制+应用场景

    技术背景 故障检测需求及主要方法:为了减少设备故障对业务的影响,提高网络的可用性,设备 需要能够尽快检测到与相邻设备间的通信故障,以便能够及时采取措施,从而保证业务 继续进行. BFD:Bidirec ...

  10. BPF 之路:技术背景

    目录 引言 什么是BPF 历史 组成 执行机制 BPF 和ebpf 的关系 BCC.bpftrace.IO Visor BCC 项目的quick start execsnoop biolatency ...

最新文章

  1. Windoes下安装配置flutter环境
  2. 朱峰谈概念设计(三):可信的设计
  3. (转)利用WPF的ListView进行大数据量异步加载
  4. vlan 间路由+单臂路由(实验思路讲解+配置)
  5. 字体大小自适应屏幕分辨率 CSS解决方案
  6. Notepad++软件的下载与安装步骤(图文详解)
  7. Repeater 控件的嵌套使用
  8. 深入解析大数据虚拟化的架构(下)- 系统架构
  9. 数字通信的调制方式 ASK FSK PSK QAM
  10. OpenEuler安装 20212802范辰宇
  11. CString、CTime和COleDateTime转换
  12. NS2协议分析与仿真
  13. Oracle VirtualBox备份、恢复虚拟机
  14. 不懂带人就自己累到死:带团队1核心、4重点、6角色、10注意
  15. java下载需要oracle账户
  16. 好的大数据培训机构,体现在哪几个方面?
  17. 解析html xml最好的模块,解析--import--htmllib--xml
  18. DSP/BIOS详解入门
  19. focal loss 通俗理解
  20. 22年ICPC西安站记录

热门文章

  1. 【已解决】Object of type ’int64‘ is not JSON serializable python
  2. poi批量导入html,读取excel(POI)【转换为html】 - bcoffee的专栏 - 博客频道 - CSDN.NET...
  3. 堆溢出off-by-one(asis-ctf-2016 pwn 之 b00ks)
  4. HDU--2015-TO-2019--假期实在是太无聊了....
  5. 微信删除和拉黑哪个更绝情?
  6. ASP.NET删除服务器端文件,asp.net删除服务器上的文件
  7. Serial Scope——基于QCustomPlot的串口虚拟示波器开发过程
  8. BF模式匹配算法!字符串的模式匹配。
  9. android qq聊天界面键盘与布局,大屏手机单手聊天 QQ输入法浮动键盘做得到
  10. 游戏《我的世界》马怎么繁殖?如何驯化?