GDB 实现原理介绍
GDB 是调试程序的利器, 它可以在代码中设置断点, 在程序运行过程中修改变量值等. 你是不是也很好奇 GDB 是如何实现这些功能的? 本文会解答你的疑问, 并通过一些简单的代码来模拟其中的实现细节.
GDB 是调试程序的利器, 它可以在代码中设置断点, 在程序运行过程中修改变量值等. 你是不是也很好奇 GDB 是如何实现这些功能的? 本文会解答你的疑问, 并通过一些简单的代码来模拟其中的实现细节.
Tendermint 是一个模块化的区块链应用框架, 能够实现拜占庭容错 (BFT), 它主要包括两部分:
这两部分会分别对应两个不同的进程, Core 和 ABCI 建立了三个连接:
作为 VIM 的重度患者, 一款好用的插件管理工具显得尤为重要, 毕竟给 VIM 增加新功能, 或者是新增编程语言的支持都需要安装插件. 我个人目前安装了 133 款 VIM 插件.
我使用的 VIM 插件管理工具也从早起的 Vundle 到 NeoBundle, 再到现在使用的 vim-plug.
选择 vim-plug , 是因为它:
本文是 vim-plug 的一个简明教程, 会介绍它的安装使用, 以及我个人用到的一些 tips.
之前博客用的是 Valine, 选择它的原因是可以匿名评论. Valine 的缺点是没有办法对新的评论发邮件提醒, 虽然官方文档说是可以的, 但一直没能按文档配置成功.
Gitalk 是一款基于 github issue 的评论系统, 它的缺点是没办法匿名评论, 但鉴于我的博客是技术博客, 大部分读者应该都是有 github 账号的, 这个缺点还是可以忍受的.
Socket 是对 TCP/UDP 封装后提供的一层接口, 我们可以利用 Socket 编写服务端和客户端, 然后让客户端和服务端建立 TCP 或 UDP 的连接.
Linux 中的进程通信主要包括以下几种方式:
本文主要介绍共享内存的使用方式, 其中也会用到信号.
ping 是一个经常被用来检查主机间连通性的工具, 它基于 ICMP 协议实现, 基本原理很简单: 本机给远程机器发送 ICMP 报文, 远程主机接收到 ICMP 报文后便会回复一个类似的 ICMP 报文; 当本机接收到回复后变认为远程主机是可连接的, 否则便认为这个主机是不可达的.
为了了解 golang 的网络编程, 我用 go 实现了一个 ping 命令, 本文会介绍如何实现 ping 命令.