转载请保持文档完全或保留出处(httple
kyi
fo)
gi
x核心讲解《上篇》
第零章
慕名对
gi
x的源码进行学习研究是早在2009年的事情,当时还在学校,整天呆在实验室里看动漫,时间一久就心感愧疚,觉得还是要趁有空学点东西,恰当时不知从哪里得知高性能服务器是一个很有“前途”的方向,几经搜索又机缘偶合的得识lighttpd与
gi
x,从此开始在动漫与代码之间来回穿梭,直到毕业。关于lighttpd与
gi
x,无需多说,当时lighttpd比
gi
x要火,所以我先看的lighttpd源码,后看的
gi
x源码,也因此lighttpd的文档在我读书的时候就写完(虽然写得很矬)了,但
gi
x的文档写了一些放在电脑里,后来离开学校开始工作后,就把这件事情和这些文档都给搁在那了,直到近一年前,我建了一个个人博客站点(httple
kyi
fo),为了凑文章数目,才又把它们给找了出来,并且根据最新的
gi
x源码重新整理了一下,也就是现在你看到的这篇文档。当然,这只是一部分,所以标题才叫《上篇》。重新整理主要是因为注意到以前写的文档过细的去逐行注释代码(网上很多
gi
x源码分析的文章也大多有这个缺点)而此次希望能从比较高一点的角度去解析
gi
x,,让读者尽快的把握全局而不是陷入细节;为了达到这个目标,文档里就尽量的少贴代码多画图,当然,一些必要的代码是不可缺少的,所以你还是会在本文档里看到源代码。虽然我的个人期望比较好,可惜水平比较差,目前写出来的文档也就这个样了。最后,说一下本文档基于的相关环境,虽然列了一个表格如下,其实没那么复杂,我安装的是一个ce
tos62的32位虚拟机,其它开发软件包都是ce
tos62里所对应提供的,而
gi
x版本为120。软件包
gi
xosgccgdbmake版本120Ce
tOSrelease62Fi
alker
el263232bitgccversio
44620110731RedHat4463GCCGNUgdbGDBRedHatE
terpriseLi
ux7250el6GNUMake381
文档版本(更新地址:httple
kyi
foebook):版本号01修订时间2012720
欢迎访问Le
ky个人网站:httple
kyi
fo
1
f转载请保持文档完全或保留出处(httple
kyi
fo)
第一章进程模型
gi
x的进程模型和大多数后台服务程序一样,按职责将进程分成监控进程和工作进程两类,启动
gi
x的主进程充当监控进程,而由主进程fork出来的子进程则充当工作进程。工作进程的任务自然是完成具体的业务逻辑,而监控进程充当整个进程组的对外接口,同时对工作进程进行监护,比如如果某工作进程意外退出,监控进程将重新fork生成一个新的工作进程。
gi
x也可以单进程模型r