文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>GigaHttpd 开发环境

GigaHttpd 开发环境

时间:2009-03-26  来源:lu_yi_ming

我们的路很长,慢慢来吧。

* 前言

  本文主要介绍如何搭建一个 GigaHttpd 的开发环境。

  本文其实是边搭建,别记录在这里的,所以会持续增加,也可能遇到错误然后返工。有兴趣的朋友一起慢慢看吧。

  解释个小问题:为什么文章内的段落标题用一个星号 *  来表示?答:使用 emacs 形成的习惯。

  本文后面有很多[唠叨],指可以忽略不看的东西。

* 一台 PC

  到目前为止(这篇文档最近更新时),开发环境还在一台 PC 上面。

  [唠叨]当然以后会需要多台 PC 来测试 GigaHttpd 的运行及性能,不过现在开发的初级阶段,还只需要一台 PC。

* 4 核 CPU

  我在用 4 核的 CPU,Intel(R) Core(TM)2 Quad CPU  Q6600  @ 2.40GHz。

  在开始的阶段,Core 2 双核的 CPU 应该也可以吧,或者在 qemu 里面可以模拟出来很多 CPU。现在还没到这一步呢。

  至少多加一块网卡。

  [唠叨]2007 年底,Intel 4 核 CPU 刚出来的时候,为了开发 GigaHttpd ,去中关村拼了一台,配华硕的主板,8G 内存,多加了一块 D-Link 的网卡,加上显示器,1TB 的硬盘,当时 1 万块大洋啊。现在双核的应该是市场的主流了,价钱也比较便宜了。

* FC10(x86 64位版)

  开发测试平台选 Redhat 的 Fedora Core 10,x86_64 版本。

  安装过程中请选择虚拟机,也就是后续要用到的 qemu-kvm。

  如果硬盘足够大,在硬盘尾部给 GigaHttpd 预留几十 GB 的空闲空间,将来可能会用到的。

  [唠叨]我之前一直用 FC8,很好很稳定,GigaHttpd 真正开始前打算开始用 FC10,结果发现 FC10 不太好用,花了一个星期又试用了 Ubuntu 8、Debian 5,结果都不理想,最后还是凑合用 FC10 吧,安装好后狂打补丁 yum update 。。。

  [唠叨]因为我工作、上网、玩、等等都在这个机器上,所以安装的时候几乎把能选的都选上了。

  [唠叨]FC 自己带的 ADSL 拨号上网程序 pppoe 一直不好用,所以去下载了 rp-pppoe,手工编译安装。还有一个恶心问题,我配套的是华为的猫,EchoLife HG522,网络总是不稳定,rp-pppoe 总是丢包,并且在 /var/log/message 里可以看多很多报警信息,说什么东西超长,解决办法是在 rp-pppoe 的源代码中找到那些报警的行,注释掉,就好了。还有,好像 rp-pppoe 自带的 MASQ 模式的防火墙的设置也不太好,自己还修改了防火墙的设置,有需要的请给我发邮件。

* linux-2.6.28.7

  开发所用的内核选 linux-2.6.28.7

  [唠叨]没什么特殊的原因,当时下载的时候这个是最新的,大家用其他的版本当然也可以,只是后续要读大量的内核代码,会有一些配套的讲解,所以建议大家也选这个版本。

  [唠叨]从2.6.25 开始,Linux 内核内置了 kgdb,所以这个可以不用再去找了。

* 虚拟机

  启动 FC10 自带的 "Virtual Machine Manager" 程序,在里面再安装一个 FC10(以下称虚拟 FC10),虚拟机设定成 2 个 CPU,硬盘大小 15GB。FC10 只要最基本的系统,但要包括开发工具和基本库,不要 X Window 的任何东西。

  把 linux-2.6.28.7 复制到虚拟 FC10 中,从 /boot 下拷贝过来 .config,make menuconfig,注意 kgdb 选中。编译 make,安装 make modules_install; make install。修改虚拟 FC10 中的 /boot/grub/grub.conf,让新编译的 linux 内核作为默认启动项。

  [唠叨]其实有时候 Windows 也是免不了的,所以另启动了一个虚拟机,安装了 XP,随便用的。

* 开始写 GigaHttpd 的最初代码

  按照目前的设计,GigaHttpd 是 Linux 的一个内核模块,加载后创建若干个内核线程(kernel_thread)。

  每个内核线程得到 CPU 开始运行时,先保留现场,然后转化成 GigaHttpd 的 CPU,进入 GigaHttpd 的初始化以及后续的主程序。

  这样做的目的是,GigaHttpd 调试或者运行结束后,还可以回到 Linux 中。对 Linux 来说,就像是某个内核线程长时间的占用了 CPU,运行结束后又恢复正常了。
相关阅读 更多 +
排行榜 更多 +
房间毁灭模拟器最新版

房间毁灭模拟器最新版

休闲益智 下载
街头追逐者最新版

街头追逐者最新版

休闲益智 下载
弓箭手2内置作弊菜单

弓箭手2内置作弊菜单

休闲益智 下载