理解Unix进程

[美] Jesse Storimer
致谢 我要向几位了不起的人致以深深的谢意,他们阅读了本书初稿,让我知道如何宣传好此书,在需要时给我动力,在各方面都给予我莫大的帮助。他们是Sam Storry,Jesse Kaunisviita,以及Marc-André Cournoyer。 我也要向妻子和女儿表达无限的感激,你们不仅帮助我度过写书这段飘忽不定的日程安排,而且时刻陪伴着我,为我提供各种参考意见。没有你们的爱和支持,我无法做到这一切。是你们让这一切更有意义! 第1章 引言 从孩提时起,只要一有机会我就会坐在计算机前。倒不是为了写程序,而是为这台神奇的机器所能做的事而着迷。于是我成为了一名使用ICQ、Winamp和Napster的计算机用户。 长大后,我将更多的时间耗在了计算机的电子游戏上。起初是第一人称射击游戏,后来大部分时间都在玩即时战略游戏。再后来,我发现这些游戏竟然可以在线玩了!我年轻的时候就是个“computer guy”(计算机小子):知道如何使用计算机,但对于计算机的工作原理却一无所知。 之所以告诉你我的经历,是因为想让你知道我并不是什么神童。我没有在七岁的时候自学Basic语言编程,而当我开始学编程时,也没能反客为主去指点老师并纠正他的错误。 直到大二那年,我才真正爱上了编程这种活动。也许有人会说我这是大器晚成,可是我觉得自己其实比你想象的还要普通。 尽管出于编程本身而热爱编程,但我对于计算机工作原理的理解仍然不够深入。如果那时候你告诉我说我所有的代码都在一个进程中运行,我肯定会将信将疑地对你另眼相看了。 幸运的是,我在附近一家互联网初创公司谋到一份不错的差事。这让我有机会在真正的生产系统上从事一些编程工作,给我带来了全新的变化,让我有理由去学习事物究竟是如何运作的。 在这个高流量的生产系统上工作时,我碰到的问题越来越复杂。随着流量和资源需求的增长,我们不得不梳理软件的方方面面来调试和修…