ubuntu 8.04的启动过程
今天突然想给ubuntu添加一个启动进程,因为不知道哪里去添加,所以就到网上搜了下,发现有人已经整理过了,摘录如下:
1,内核启动init
2,init找到/etc/event.d/rc-default文件,确定默认的运行级别(X)
3,触发相应的runlevel事件,开始运行/etc/event.d/rcX
4,rcX运行/etc/init.d/rc,传入参数X
5,/etc/init.d/rc脚本进行一系列设置,最后运行相应的/etc/rcX.d/中的脚本
6,/etc/rcX.d/中的脚本按事先设定的优 先级依次启动,直至最后给出登录画面(启动X服务器和GDM)
IGMP proxy开发笔记
这两天被igmp proxy搞的焦头烂额,有时候工作,有时候又不工作。最后下了狠心,把代码翻出来啃了一遍,总算是找到了问题,简单的总结一下。
igmp proxy的原理其实就是通过在downstream的interface上接收igmp report,然后再从upstream的interface上广播出去;同时在router上添加对应的virtual interface(VIF)的路由信息(MFC)。最后,使得从upstream的interface收到的multicast包,能发送到downstream的interface对应的网络中去。
library陷阱
今天在做一个embedded system的测试的时候发现一个奇怪的问题。新做的fs, 启动后一切正常。ping外部ip也可以正常工作,但是添加/etc/resolv.conf后,始终无法解析dns。
一个获取代理的脚本
曾经在linuxsir.org上看到过一个获取代理的脚本,觉得挺实用的,于是拿来自己改了改,效果还不错,贴出来分享。
skype修改字体
装了linux下的skype 2.0,发现中文字体比较难看。查了下,原来skype是基于qt4开发的,只要配置下qt的字体就好了。
$ qtconfig-qt4
配置自己喜欢的字体,然后就OK了。
理解fork
今天因为给mini_httpd添加一个功能,用mmap给父子进程创建共享空间,又顺便复习了下fork。
fork的关键在于调用一次,返回两次。这里说的返回两次从字面上讲可能比较难于理解,但如果知道了fork在内核里的实现机制就很容易搞懂了。
Mplayer to support mms
奥运期间,为了看比赛方便,决定给mplayer加上mms流媒体的播放支持。
下载live555 - http://www.live555.com/liveMedia/public/
qemu-router 之环境设计
最近想用qemu在linux下 build 一个环境,来模拟开发路由器。好处有很多,比如便于调试kernel阿,乱搞不会破坏系统阿之类的。
于是写了两个script,一个负责模拟router端,一个负责模拟客户机。整个环境配置如图:
| |
| Host PC |
+--------------------+
| tap0 | tap1 | |
+--+------+----------+
| |
| |
+--+------+---+------+
wan | eth0 | eth1 | |
+-------------+------+
+-------------+ | Qemu emulate router
lan | eth2 | eth3 | |
+---+------+--+------+
| |
| |
+-----------+ | +--+---------+
| client 1 |--+ | client 2 | Qemu emulate PCs
| | | |
+-----------+ +------------+