为什么叫“虫子”(bug)

同学博客 》黄奕

        Bug本身的意思是“虫子”,但是用在电脑上意思是指程序中的错误、漏洞,它会导致电脑出错,甚至宕机、不工作。所以从事软件工作的码农们要花很多的时间来测试软件、找错误、补漏洞,以便电脑可以正常运行,达到人们预期的效果。这项工作也叫“debug”,去虫子。

        为什么要叫“虫子”呢?这是因为对于早期的计算机,虫子还真的是影响计算机正常运行的原因之一。

        第二次世界大战期间,纳粹德国和它的敌人英国、美国都为了在战争中取胜而加紧研发计算机。

        德国有两台计算机分别叫“恩尼格玛”(Enigma – 意为密码机)和“洛伦兹”(Lorenz – 为发明者的姓),用来给信息加密。而英国也制造了两台计算机,在极为传奇的计算机科学家图灵的领导下,用来破解德国人的密码,为二战的胜利立下大功。

        英国的两台计算机分别叫做“包姆”(Bombe – 寓意炸弹)和“克罗索斯”(Colossus – 意为庞然大物)。当时的计算机还真是庞然大物,占据了几间房间。

(克罗索斯计算机的一部分)

直到1980年代初,我曾经使用的PDP-11计算机加上外围设备,也占据了半个房间。其计算能力远远不如现在的笔记本电脑,甚至不如一部手机。

(1980年代的PDP-11,当时的内存才64 K,现在的手机内存都是它的几百万倍。)

最初的计算机使用真空电子管,不仅体积巨大,而且非常耗电发热,电子管还经常因为过热而烧坏,所以经常出现故障。

(各种各样的真空电子管)

另一个故障的原因就是各种虫子,包括苍蝇、飞蛾等,飞进机器,造成短路,影响计算机工作。遇到这种情况工作人员必须尽快找到并去除虫子,于是就有了“虫子”(bug)和“去虫子”(debug)的说法。后来这种说法引入到软件,成为程序员的一项重要任务。鄙人也曾在这一行干了十几年。到今天这个说法甚至引申到了各种机器、以至于人们的行为,例如说:“你这个办法不行,有bug。”

(图片均选自网上)

同学博客 》黄奕

4人评论了“为什么叫“虫子”(bug)”

  1. Enigma是一战后德国商人发明的转盘加密机器,不是计算机。Enigma来自于拉丁语aenigma,意指“谜语”,被发明者选来作加密机器的商标。 二战后Enigma成为专用名词,用来特指带指德军的密码机。

  2. 电子管有灯丝发热和发光,就容易招虫子或飞蛾之类的进去,还有蟑螂也是喜欢在发热的地方聚集。

    1. 所以后来的计算机都有“机房”,机房清洁程度较高,有空调,进去之前要换鞋,穿工作服。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注