漫画 | 上帝托梦给我说:一切皆文件

文章探讨了Unix/Linux系统中‘一切皆文件’的概念,包括设备、socket和pipe等都通过文件描述符进行统一访问。文件描述符作为资源的接口,使得不同类型的资源能以标准化方式操作。尽管这种抽象简化了系统交互,但也意味着无法处理设备的特殊性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2fe4ece1f356dddb2352f5fb5a5005dc.jpeg

1371db9aed6c80a1f2a09cd1ed605879.jpeg

15abdcee6dcbe18e5c2f1ddea3651722.jpeg

41d4ba3b0ead4e6568842ca4282ffdc5.jpeg

128a072788f2f6f8aac51bff793207ae.jpeg

e8d61f8f144e241b47efd9380e092040.jpeg

0f5690ed5f62954e72491618124490fb.jpeg

47da8c63e65ee0ff7ab2ff5bfb68b5b9.jpeg

后记:这些故事当然是我杜撰的,Ken Thompson和Dennis Ritchie在设计Unix的时候,具体是怎么想的,我们无从知道。TCP/IP协议也不是Bill Joy在一个晚上就手写出来的。这里只是想对这些做出伟大贡献的大神们致以敬意。

我们现在所知道的就是在Unix/Linux上,一切皆是文件,设备,socket, pipe..... 它们有统一的名字空间和统一的访问接口,这就实现了以最小代价对系统内类型迥异的各种资源的调用。

当一个“文件”被打开的时候,一个文件描述符也会被创建起来,文件路径用来定位这个文件,文件描述符用来代表从这个“文件”中读写字节流的接口。  有时候文件描述符也可以表示匿名的管道和socket,这时候并没有文件路径, 所以如果更准确一点,我们应该说“一切皆文件描述符”

当然“一切皆文件”也不是完美的,因为不同的设备是有差别性的,“文件”这个抽象层次比较高,只能提供最基础,最通用的方式来操作文件,这也是抽象所要付出的代价。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值