甜菜

首页 » 常识 » 预防 » 一个活了45年的愚蠢Bug
TUhjnbcbe - 2022/5/21 18:34:00
全国青少年白癜风公益援助 http://baidianfeng.39.net/a_xcyy/150609/4636741.html
不断压缩的更新周期下,一般而言,系统Bug的存活希望会被很快掐灭,快速迭代。但是本文的作者在Windows10上从一个USB3.0SSD向另一个SSD拷贝文件时却遭遇了一个44年前的bug,他把这个“愚蠢”的Bug分享到了博客上,并且引起了开发者们的回忆热潮。以下为译文:现在这个来自于年的错误信息居然还在。最新版本的Windows10依然有这个限制,而这个bug第一次出现的时候星球大战还没上映,都跟水门事件一样老了。这个bug出现时,超市里的东西还没有UPC条码,因为UPC还没发明。这个bug出现时,世界上只有一家电话公司,因为他们还没分家。TedBundy还没被抓。BabeRuth的本垒打纪录还没有被打破。这个bug出现时,幸运大转轮还没播出,也没人看过RockyHorror。斯皮尔伯格只是一系列小众电视剧的导演,电影票房也十分糟糕。埃德蒙德·费兹杰罗号货轮还是一堆铁矿石。这个愚蠢的bug出现时,教父2才刚刚在电影院中上映。1、那么,这个bug究竟是什么?因为Unix(当时才仅仅5岁)发明了一个很好的点子——“一切皆是文件”,也就是说,你可以用同样的命令和指令读写套接字、管道、控制台等等。这个点子是由GaryKildall在年想出来的。用这个方法有很多方便之处,比如可以从串口拷贝数据到文本文件,或者直接从命令行打印文本文件。在Unix中,这个点子是通过特殊目录下的特殊文件实现的,比如/dev/tty表示控制台,/dev/lp0表示第一个打印机等。/dev/zero可以提供无限的零,/dev/random可以提供随机字节,还有很多!但有个问题:CP/M是为8位计算机设计的,这些计算机内存很小,也没有硬盘,最多也就有个8寸软驱。目录是什么?还要目录干啥。你换个软盘就行了。但没有目录,就没办法把所有特殊文件都放在/dev/目录下了。所以这些文件实际上被放到了“所有地方”。所以,如果你要打印FOO.TXT,可以执行“PIPLST:=FOO.TXT”,就能把foo.txt拷贝到“文件”LST,而实际上这个就是打印机。这个命令在任何地方都可以使用,因为根本没有目录!非常简单。2、那扩展名怎么办?这里就有问题了:程序喜欢给自己的文件加上正确的扩展名。所以如果你运行一个程序,它问你“请输入要保存代码的文件名”时,你可以输入LST让它直接打印出来,或者输入PTP让它输出到磁带(别忘了现在是年!)但是!程序可能会自己在文件名后面加上.TXT!LST.TXT不是打印机,对吧?错了,LST.TXT也是打印机。这些特殊设备存在于所有扩展名中,这样上面的问题才不会出现。所以,如果“CON”被用来指代键盘,那么CON.TXT、CON.WAT、CON.BUG都是键盘。额……这确实是个hack,但就是好使,而且这只不过是只有4k内存的微型计算机,谁在乎呢?3、IBM、微软等巨头的加入结果70年代末到80年代初CP/M广泛流行。它是最主要的商用操作系统之一。它定义了一套接口,你可以用这套接口在NorthStarHorizon上写CP/M代码,然后放到SeequaChameleon上运行(注:两者都是计算机的型号)。由于它缺少图形标准,所以无法进入游戏市场(虽然有一些Info
1
查看完整版本: 一个活了45年的愚蠢Bug