您尚未登录。

#1 2019-01-16 16:49:49

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 620

Linux世界是怎么形成了有.so和.o却没有.exe的命名习惯的呢?

Windows的命名习惯可以说是从DOS与FAT时代的强制8.3文件名开始的,那为啥Linux有.so跟.o却不习惯于对executable 加上.exe的后缀呢?


5萬人民幣買個老婆,要國產的,賣的私聊

离线

#2 2019-01-16 17:38:53

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 322

Re: Linux世界是怎么形成了有.so和.o却没有.exe的命名习惯的呢?

因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。

离线

#3 2019-01-16 18:00:09

驿窗
YCP
注册时间: 2016-06-03
帖子: 549

Re: Linux世界是怎么形成了有.so和.o却没有.exe的命名习惯的呢?

上古时代...


遇上开源GNU/Linux,闭源Windows终将无路可走;失去乔布斯,苹果终将跌落神坛;

离线

#4 2019-01-16 18:30:56

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 620

Re: Linux世界是怎么形成了有.so和.o却没有.exe的命名习惯的呢?

zsrkmyn 说:

因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。

但是shell可以做自动搜索功能啊


5萬人民幣買個老婆,要國產的,賣的私聊

离线

#5 2019-01-16 22:05:40

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,948
个人网站

Re: Linux世界是怎么形成了有.so和.o却没有.exe的命名习惯的呢?

xtricman 说:
zsrkmyn 说:

因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。

但是shell可以做自动搜索功能啊

那个时代的 shell 嘛……

另外就是,是否为可执行文件是由 x 权限位来决定的,怎么执行是由内核根据文件内容决定的(后来也支持文件名匹配)。你一个命令,一开始用 C 写所以叫 xxx.exe,后来换 Perl 写就成了 xxx.pl,换 Python 就成了 xxx.py——你让 shell 去识别所有这些后缀?还得定义个优先级。别忘了,shell 不止一个。

至于 .so 嘛,那是由 ld 识别的,别的东西认不认它不在乎(所以 Mac 们有 .dylib)。所以我们还有 .rlib、.ko、.cmx、.cmxa、.cmxs 这些变种。(Windows 那边还有个 .pyd。)

离线

#6 2019-01-17 19:07:14

yw662
大会员
注册时间: 2018-10-10
帖子: 107

Re: Linux世界是怎么形成了有.so和.o却没有.exe的命名习惯的呢?

因为 x位才是用来标记executable的吧,既然已经有x位了那么就没有必要再用别的来表明一个文件是可执行的


ecmascript是世界上最好的语言

离线

#7 2019-01-21 22:49:10

dvorak
会员
注册时间: 2018-11-13
帖子: 11

Re: Linux世界是怎么形成了有.so和.o却没有.exe的命名习惯的呢?

zsrkmyn 说:

因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。

我觉得这些缩写很合理啊。这么高频的命令每次打list、remove、move才会疯掉吧...就算现在打字很方便了不是还有很多人(甚至还有一些发行版)alias了ll='ls -l'吗

离线

页脚