如今,连接铜缆或是光纤的调制解调器被埋藏在房屋外的互联网接入点,智能手机和平板电脑里也安装了调制解调器。而当时,大多数Hacker熟知的是“外挂”式调制解调器,一个将计算机与电话线相连的独立盒子。 其实也有内置式调制解调器(计算机的扩展卡),但由于置身于机箱之内,容易受到RF信号的干扰,所以从来没有售卖过。有经验的Hacker都能解读出调制解调器的“猫叫”声,根据声音区分是否连接成功了。 以今天的眼光来看,老式的调制解调器真是慢得出奇。直到90年代后期广域网技术推广时,调制解调器的速度才从最初的每秒110b提高的每秒56kb。在1984年到1991年间,调制解调器的速度一直稳定在9600bps。这也是现存串口协议设备的默认速率设置为9600bps的原因。 有一种名为“贺氏智能调制器(Hayes Smartmodem)”的设备可以通过串口输入指令来拨号和设置参数。Hacker们一定都还记得那些“AT”开头的命令,比在ATDT后跟一个电话号码就能拨打该号码。其他生产商复制了贺氏公司的指令集,于是在1981年之后这些指令变得通用。 当时不为人知的一点是“AT”前缀还有特殊的属性。这个序列(1+0 1000 0010 1+0 0010 1010 1+,‘+’表示重复前一个字符一次或者多次)使得接收机很容易识别它,即使接收机不知道传输速率,这也使得接收机可以自动同步到该速率。 这个属性非常有用,于是到现在AT惯例还在许多地方延续使用。智能手机的3G/4G蜂窝调制解调器使用AT命令执行控制功能。“AT+QLINUXCMD=”也是向芯片自身运行的Linux系统传输命令的前缀。 core的身世 在半导体出现前,大约1955年到1975年,计算机内存使用的主导技术是窜在铜导线上的小磁圈。小磁圈被称为“铁氧体磁芯”,因此主存储器又被称为“内存”或“核”。 Unix术语是在70年代早期形成的,“in core”和“core dump”这些术语保留到了半导体时代。直到90年代后期,相信大部分Hacker还说得出这些术语的来源。 2000年后,随着多处理器系统在台式机上的迅猛发展,越来越多的人把“core”当做“processor core”的简称。如今,“core”一词仍旧可以指代两者,但旧用法的来历已逐渐不被理解,而“in core”之类的术语也将会慢慢消失。 36位系统和八进制 内存单元的字长度通常都是以2的倍数来增长,如现在常见的8位、16位、32位、64位。但这是1983年以后才开始流行的。一种早期的计算机设计传统是使用36位字。 曾经有一段时间,36位机器吸引了大部分Hacker,这段文化记忆到90年代才逐渐消退。两款著名的36位机是DEC PDP-10和Symbolics 3600 Lisp Machine。83年取消PDP-10型号鸣响了这类机型的丧钟,尽管3600机又苟延残喘了近十年。 在2次幂的体系之下,十六进制是表示机器内存原始数据的一种自然方式。但八进制在36位机器中更为常见。原来,36位实际上是由12个3位字段组成,每个字段正好表示一个八进制数字。下面都是Hacker们所熟知的有关这些机器的趣闻: 36位二进制足以表示10位十进制的正负整数,等同于当年机械计算器的精度。32位的标准并不被当时的数值分析师和科学计算工笔者所支持,他们坚持要保留最后4位精度。 这些机器用9个比特表示一个字符,4个字符合并为一个字。因此,为它们设计的键盘可能有一个元键来表示第8位和一个现已不存在的额外修饰键表示第9位。 另外,众所周知36位结构解释了C语言的一些难以理解的特性。最初的Unix机器,PDP-7,采用18位字节,对应于36位机器的半个字。它们就被表示为6个八进制数字(3位)。C语言的直系祖先是在PDP-7上完成的一种解释性语言,称为B语言。在B语言中,数字就是以0为起始,用八进制表示。 PDP-7的下一代,也是第一台主力Unix机器是PDP-11(1970年生产)。它使用16位字节,但由于指令集的某些不寻常特性,八进制更能解释它的机器码。C语言首先应用于PDP-11,于是继承了B语言的八进制语法,并且进一步扩展:当字符串中的反斜杠符号跟了一个数字,那么这个数字用八进制解析。 Interdata 32、VAX和后来其他的Unix平台都没有这些特性。其操作码采用更自然的十六进制。然而,C语言再也没有改为十六进制,关于前缀0的诡异解释也没有再做更改。 (责任编辑:本港台直播) |