







后记:这些故事当然是我杜撰的,Ken Thompson和Dennis Ritchie在设计Unix的时候,具体是怎么想的,我们无从知道。TCP/IP协议也不是Bill Joy在一个晚上就手写出来的。这里只是想对这些做出伟大贡献的大神们致以敬意。
我们现在所知道的就是在Unix/Linux上,一切皆是文件,设备,socket, pipe..... 它们有统一的名字空间和统一的访问接口,这就实现了以最小代价对系统内类型迥异的各种资源的调用。
当一个“文件”被打开的时候,一个文件描述符也会被创建起来,文件路径用来定位这个文件,文件描述符用来代表从这个“文件”中读写字节流的接口。 有时候文件描述符也可以表示匿名的管道和socket,这时候并没有文件路径, 所以如果更准确一点,我们应该说“一切皆文件描述符”
当然“一切皆文件”也不是完美的,因为不同的设备是有差别性的,“文件”这个抽象层次比较高,只能提供最基础,最通用的方式来操作文件,这也是抽象所要付出的代价。
文章探讨了Unix/Linux系统中‘一切皆文件’的概念,包括设备、socket和pipe等都通过文件描述符进行统一访问。文件描述符作为资源的接口,使得不同类型的资源能以标准化方式操作。尽管这种抽象简化了系统交互,但也意味着无法处理设备的特殊性。

被折叠的 条评论
为什么被折叠?



