“一切皆文件“其实不是linux专属的,这是一种设计理念。在linux中大家都在强调这一点,可能是这么说显得自己很高端。。
“一切皆文件“在可执行文件上可能表现不太明显,但是在一些奇奇怪怪(误)的东西上就显得很清晰了,比如:我给电脑装了1T的硬盘,对于系统来说,这不是一个硬盘,这是一个文件;
我给电脑装了个贼拉风的机械键盘,对于系统来说,这不是一个键盘,这是一个文件;
我给电脑装了个骚粉色的鼠标,对于系统来说,这不是一个粉色鼠标,这是一个文件。。
嗯,我500+的机械键盘在linux上是没有姓名的
这么搞有什么用呢?省心拿鼠标来举例子:
我们平常用的鼠标,都是双击确定,但是突然出现了一个鼠标,不按常理出牌。。它双击表示取消
如果没有“一切皆文件”,那 linux 就会很迷惑,为啥别的鼠标都是双击表示确定,就你是取消呢
然后没办法,就只能再给这个鼠标一个单独的类型,叫——“双击表示取消的奇怪鼠标”
然后每次都要先判断,这是一个正常鼠标,还是一个奇怪鼠标。。
当各种各样的东西多起来以后,程序没别的事了,1w行代码里9k行是判断类型的。。
所以,linux决定,你虽然是一个鼠标,但你不能再当一个鼠标了,因为你可太操心了。
具体操作是啥呢?
我linux不管你鼠标是双击确定,还是单击确定,还是双击取消
反正,我收到1就当你是确定,我收到2就当你是取消,我收到83251我就当你是在开玩笑。。
linux不管这到底是什么高贵的设备,我就当是个文件,硬件驱动到位了我就用,硬件驱动不到位我就不用。
其实不光是硬件设备,系统的进程啦,代码啦在linux里都是一个文件,linux改了对应的文件,就改了这个设备/进程/代码,而不用操心是怎么改的。
就问你省心不省心。
所以,“一切皆文件”=“一切皆玩意,这个玩意在linux里叫文件”
所以题主你说,windows可执行文件是二进制文件,没错。因为“一切皆文件”跟“文件”其实没啥关系。
这个就是个思想,linux把这个思想用“文件系统”实现了。