协程

Libco 协程栈的切换理解

libco协程切换原理解读及简要使用 以前看过libco一点源码,最近组里面分享了一次协程的原理。花了点功夫,借助一点网上的资料,算是摸清楚了libco协程切换的来龙去脉。libco除了协程的切换还涉及系统hook以及相关工程的封装,篇幅及时间限制,这里不涉及。本篇主要把协程切换的来龙去脉以及原理从个人理解角度介绍下。明白和能说出来讲清楚是两种不同的理解程度,这也是本文的主要目的。 函数调用的原理 linux 程序内存布局 传统linux程序(32bit)拥有4G的虚拟内存区域,高1G的区域供内核使用,剩余的3G内存供程序使用。按段划分,主要分程序段(text segement)、数据段、BSS段。BSS段用于未