|
|
51CTO旗下网站
|
|
移动端

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

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

作者:刘欣来源:51CTO专栏|2020-01-09 09:13

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

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

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

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

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

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

【编辑推荐】

  1. 为什么Vim爱好者喜欢Herbstluftwm Linux窗口管理器
  2. 2019 年 5 大事件表明 Linux 与开源的统治地位
  3. 从TCP/IP协议谈Linux内核参数优化
  4. 轻松使用Linux Equinox桌面环境
  5. Linux inode的正确理解
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月获赞

订阅专栏+更多

Python应用场景实战手册

Python应用场景实战手册

Python应用场景实战手册
共3章 | KaliArch

14人订阅学习

一步到位玩儿透Ansible

一步到位玩儿透Ansible

Ansible
共17章 | 骏马金龙1

145人订阅学习

云架构师修炼手册

云架构师修炼手册

云架构师的必备技能
共3章 | Allen在路上

30人订阅学习

读 书 +更多

3D游戏开发大全(高级篇)

在我的第一本书——《3D游戏开发大全》中,我们曾经对3D游戏开发完成了一次犹如探索原始丛林般的旅程:首先,我们对3D游戏产业进行了初步了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微