如何解释linux下一切皆文件的观点

先讲一下系统是如何管理文件的。

如管理进程一般,管理文件也是有一堆数据结构来管理的。管理文件里面有一个叫file_struct的结构体。

看一下内核代码:
代码很长,截了一小段而已。

里面有一个成员类型很有趣,叫struct file_operations,我们可以看一下里面是什么。
在这里插入图片描述

我们惊奇的发现:里面是一堆函数指针,也就是说,linux内核把函数放进了结构体里面。这不就是面向对象的思想吗!
在这里插入图片描述
先说结论:确实是面向对象思想,linux把所有硬件,目录,文件等都当成文件对象来管理了。这还是一种多态!

大致过程是这样的:
在系统层面,为了管理硬件,file结构体里面的IO函数根据不同的硬件调用不同的驱动层面的IO函数,实现用文件的角度来管理所有硬件
在这里插入图片描述
总结一下:为什么linux一切都可以是文件,并不是说实体是文件,而是以文件的方式去做管理,以文件的角度去看待硬件和软件。这是一种多态思想!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值