Linux
文章平均质量分 75
xushiweizh
这个作者很懒,什么都没留下…
展开
-
CERL2 系列4:CERL体系与框架概览
在《CERL2 系列1: Hello,CERL2!纤程!》中,我们提到:CERL2 在 CERL 上进行了编程模型的演化,并且形成了多个子库。最主要的两个子库为 async 和 venus。 我们这一篇中,将更加详细地描述 CERL2 的整体框架体系。先一图概括之: async原创 2010-01-17 12:55:00 · 6098 阅读 · 6 评论 -
CERL2 系列1: Hello,CERL2!纤程!
CERL2 经过一段时间的发展,已经稳定下来,是时候揭开它的面纱了。和 CERL2 最初设想并不一样,CERL2 最终没有成为一种语言,它在 CERL 上进行了编程模型的演化,并且形成了多个子库。最主要的两个子库为 async 和 venus。最底层的是 async,它需要针对不同的平台进行包装,以此形成一个网络层。你可以 拿 async 和 boost asio 类比,两者确实是类似的东西,只原创 2010-01-08 01:38:00 · 10706 阅读 · 6 评论 -
CERL2 系列2:网络编程该用同步还是异步?
在C/C++中,libevent、boost asio 这两个网络库都采用异步编程模型,当IO完成事件发生时,调用一个回调函数处理它。这种编程模型有很好的IO吞吐量。但是付出的代价也很大:丑陋的代码。应用程序逻辑被一个个回调函数切割得支离破碎。复杂的内存管理。一个不小心,就有可能出现回调函数执行的时候,相应的内存已经被释放。调试困难。由于函数被切割,Debug的时候,代码执行顺序不原创 2010-01-12 01:18:00 · 8095 阅读 · 65 评论 -
CERL2 系列3:CERL既是网络库也是操作系统
我不是在标题党的拥趸。做 cerl/async 就是在做操作系统,这是我和共同开发 cerl 的伙伴们的共同认识。 对于一个适应服务器开发的操作系统,最重要的无非是3件事情:进程管理IO管理内存管理这3件事情我们都自己做了。 首先进程管理。尽管Windows提供了Fiber,Linux也有libucontext库。但是它们并不是操作系统中的“主角”。在当前的原创 2010-01-12 23:44:00 · 6023 阅读 · 8 评论