一切皆文件思想与面向接口编程

是面向接口编程的典范。

 

使用统一的open,read,write,close等操作

 

作者:北极
链接:https://www.zhihu.com/question/25696682/answer/31595790
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

“一切皆文件”的好处更多的表现在开发者上,好处就是大部分操作可以统一接口,甚至只用open/read/write/ioctl/close就可以完成大部分(甚至全部)操作

所以,从本质上说“一切皆文件”对于开发者来说更有益,代码的移植也更为方便。想想看如果一切设备的操作都能统一,那么对于码农,甚至一些设备维护人员来说是多么美好的事情。

好处说完了就开始说缺点:

对于用户来说,缺点就是这个概念太难以理解了。

对于大多数普通用户来说,键盘是键盘,鼠标是鼠标,这些设备跟文件的概念相差太远了,对于普通用户来说,“我的电脑”、“键盘”、“鼠标”这些概念更直接,如果非要说鼠标是文件“/dev/input/mouse0”,那么普通用户恐怕很难理解。

对开发者友好和对于普通用户友好其实是两码事,要知道这个世界上大部分计算机设备的使用者都不是开发人员。

说点政治不正确的话:不能因为自己是程序员,就认为世界上所有的人都应该是程序员。(利益相关:我自己也是一个程序)

所以一个友好的界面是必要的,对于普通用户来说封闭一部分操作系统的内部实现也是必要的。大多数安卓用户不会关心/dev下面有什么,而只是关心手机怎么用,怎么好用。

说完Linux再说Windows:

Windows的内部实现也近似于“一切皆文件”的思想,当然,这一切都只在内核里才有,下载一个WinObj这软件就可以看到,Windows上各种设备、分区、虚拟对象都是挂载到根“\”下的,通过这个树可以访问各种设备、驱动、文件系统等等。

 

Windows与Linux不同的就是把这些对象又重新封装了一层WindowsAPI,对外以设备、盘符、文件等等表现出来,重新封装WindowsAPI的目的是为了兼容性,而设备、盘符、文件这些是为了让普通用户更好理解。

所以“一切皆文件”好处是对开发者方便,但也请注意:不是所有计算机使用者都是一个开发人员

转载于:https://www.cnblogs.com/feng9exe/p/7615195.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值