Linux 的 fork 创建子进程的机制非常著名了,是一个很优美的方式。可是,这个东西是很可怕的。
记得曾经看到一个在 shell 上运行的 fork 炸弹:
(严重警告不要在任何 Linux 或 UNIX 的 Shell 上实验这条命令……)
这次我用 C 写了个想试验一下资源限制是否传递到子进程,就有了下面程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #include <stdio.h>
#include <unistd.h>
#include <sys/resource.h>
int main(void) {
struct rlimit rtime;
rtime.rlim_cur = rtime.rlim_max = 1;
setrlimit(RLIMIT_CPU, &rtime);
while (1) {
fork();
}
return 0;
} |
当然,这个程序其实运行了最多卡一会儿(我差点以为被炸死了……),最后系统还是及时结束了这个疯狂的过程,此时查看系统负载,5分钟内负载高达227.x!
如果你想实现上面一行 shell 的功能(即直接拯救一切的那种……),只要下面代码就够了:
1
2
| #include <unistd.h>
int main() { while (1) fork(); } |
< Linux,炸弹 >
昨天看到有个Hi群上几个人在北京电信的网站上测网速。无奈,学校的网络被信息中心限速了,没法测,今天在家里又找到这个网站,测一下,和大家分享!

其实我的网速是没这么快的……怎么做到的呢?
Read the rest of this entry »
< 测试,网络 >
实在太强大的贴了,这里贴出来一起欣赏一下。这里收录一些比较经典的回帖,将随着原帖更新而更新。
各同学留名贴仅选部分代表性的贴。
原帖地址:http://tieba.baidu.com/f?kz=405490203
Read the rest of this entry »
< 学校,笑话,贴吧,高考 >
今天回到宿舍里面,叶子的MP3 Player插在我的音箱上播放。叶子说,你去看看那MP3。然后我看一下,发现电池槽里没电池,再一看,查电脑的那个口上插着另一个人的手机充电器。据称,该MP3的说明书上并没有说这个MP3支持外接电源。于是,我们明白了,作为国产MP3,具有超越原本功能的潜力。
接下来,我们发现了更神奇的事情。我们把一个没电的充电电池放入MP3的电池槽(此时MP3不能启动),随后插入电源,15s后拔出。此时,MP3成功开启,并在以最大音量播放2首歌(约10分钟)后才英勇关机。这说明,这个MP3不仅可以外接电源,而且可以作为充电电池的充电器,而且看起来充电效率不错。
然后我们就想,作为国产MP3,是否可以有更强大的功能呢?比如给干电池充电?另一舍友说,那干电池内部的化学结构一定发生了改变,发生了核反应什么的。我说,那干电池也是国产的!
< 学校,宿舍,笑话 >
今天在我的VMware里装了一个Windows 3.1,然后又装了pWindows 3.2。
图片贴出来,顺便供大家怀念一下~
Read the rest of this entry »
< Windows,历史,虚拟机 >
昨天晚上,在宿舍里说,
从逻辑学上讲,如果一件事它不是true就是false,但是如果真的这样那么:
如果一个东西,它不是门,就是非门。非门是什么,就是一个人,走过去就变成了非人,一个动物,如果不是鸡就是非鸡(飞机)……
这有办法?
< 宿舍,笑话,逻辑 >
Comments