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

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

 

 

 

 

 

 

 

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

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

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

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

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】

 

戳这里,看该作者更多好文

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2013-10-09 14:30:36

2020-09-16 11:46:05

AI

2024-01-01 16:01:22

Python函数

2020-04-08 12:50:29

Python编程语言开发

2019-06-14 14:58:58

虚拟文件系统Linux

2012-08-02 17:44:01

2023-06-09 17:11:57

MetaStudio

2015-08-21 09:56:15

物联网

2016-01-15 18:45:24

IM即时通讯云服务

2016-08-31 17:24:05

大数据分析

2012-12-31 11:22:58

开源开放

2020-09-11 10:55:10

useState组件前端

2012-11-05 15:22:59

康普光缆DCD

2021-02-28 09:47:54

软件架构软件开发软件设计

2018-11-23 11:17:24

负载均衡分布式系统架构

2021-02-19 23:08:27

软件测试软件开发
点赞
收藏

51CTO技术栈公众号