Web Analytics

Hello,WireGuard

2020年1月28日,Linux之父Linus Torvalds正式将WireGuard merge到Linux 5.6版本内核主线: 图:WireGuard被加入linux kernel 5.6主线的commit log 这意味着在Linux 5.6内核发布时,linux在内核层面将**原生**支持一个新的VPN协议栈:WireGuard。 图:WireGuard Logo 一. VPN与Wir...

March 29, 2020 · 13 min · Tony Bai

图解Go运行时调度器

本文翻译自《Illustrated Tales of Go Runtime Scheduler》。 > 译注:原文章结构有些乱,笔者自行在译文中增加了一些分级标题,让结构显得更清晰一些:)。 多goroutines形式的Go并发是编写现代并发软件的一种非常方便的方法,但是您的Go程序是如何高效地运行这些goroutines的呢? 在这篇文章中,我们将深入Go运行时底层,从设计角度了解Go运行时调度...

March 21, 2020 · 16 min · Tony Bai

使用minio搭建高性能对象存储-第一部分:原型

近期参与了一个项目,该项目有存储大量图片、短视频、音频等非结构化数据的需求。于是我优先在Go社区寻找能满足这类需求的开源项目,minio就这样进入了我的视野。 图:minio logo 其实三年前我就知道了minio,并还下载玩(研)耍(究)了一番,但那时minio的成熟程度与今天相比还是相差较远的(当时需求简单,于是选择了较为熟悉的weedfs)。而如今的minio在github上收获了广泛的关...

March 16, 2020 · 12 min · Tony Bai

可视化Go内存管理

本文翻译自《Visualizing memory management in Golang》。 “内存管理”系列的一部分 在这个由多部分组成的系列文章中,我旨在揭示内存管理背后的概念,并对某些现代编程语言的内存管理机制做更深入的探究。我希望该系列文章可以使您对这些语言在内存管理方面正在发生的事情能有所了解。 在本章中,我们将研究Go编程语言(Golang)的内存管理。和C/C++、Rust等一样,...

March 10, 2020 · 11 min · Tony Bai

小心go.mod中的go directive

在撰写《Go 1.14中值得关注的几个变化》这篇文章时,我使用的试验环境为我的2019款 MacPro,OS版本:10.14.6。我通过下载 `https://dl.google.com/go/go1.14.darwin-amd64.tar.gz`并解压的方式安装的Go 1.14版本。在我的工作环境中,我通常通过变更`GOROOT`的方式来使用不同的Go版本。但在进行Go 1.14新增的overl...

March 9, 2020 · 5 min · Tony Bai