个人感觉:主要还是 DOS 那时 FAT12 定义的历史原因。而 Unix 的选择决定了它一开始就不需要考虑 .exe 这个问题。
根据 FAT12 文件头格式的定义:文件头里专门有一个 4 字节(包含 . )字段用来放后缀名。而这个字段不可置空(必须要用 4 个字节凑)。
故 M$ 的开发人员为了省事,用 executable 的前三个字符缩写来作为可执行文件的后缀名。
后来的现代文件系统都不强制有后缀名这个字段。但是因为你懂得历史兼容问题,这个习惯就保留下来了。
同理,那些奇奇怪怪的后缀名也应该是这样产生的。
而 Unix 类操作系统的常见文件系统,并没有强制文件必须要有后缀名。比如 FFS,据说它是所有现代文件系统的鼻祖~
而且 mod 加个 -x 位比直接读文件头判断不是简单粗暴多了。
但是,在 Unix 的世界中,编译器一类的应用还需要知道这个文件是能拿来 link,而不是机缘巧合凑出来的看似合法的“库文件”。
再加上当时你懂得机器配置,直接读文件头来判断格式就显得有点重 IO,速度直接 Down 下来了... 故加上了后缀名 .so 作为区分其它文件的标志。
最近编辑记录 pokon548 (2020-04-13 19:33:02)
离线
坐看笑话,这个话题有意思,回复更有意思,特别是二楼的回复,一楼一定要把二个系统混谈,就显得可笑了,各系统有各系统的特点,本人目前使用arch做为主操作系统进行工作,能满足工作的需要,系统轻巧,在办公方面比在windows下操作效率要高,不用手离开键盘去摸鼠标,这减少了大量的时间来办公,特别是VIM输入模式,很多工具也有块操作类的操作总是要用鼠标来点,不如一个命令来的方便。
离线