linux中为何没有网卡设备文件
出处:http://blog.csdn.net/dog250/ar 作者:darling2047 责任编辑:fanyun 发布日期:2013-12-30
在 unix中,一切io相关的实体都被抽象成了文件,之所以抽象成文件第一是为了接口统一,第二是为了操作统一,第三是为了策略隐藏,比如这样可以向用户屏 蔽掉具体设备的细节或者具体文件系统的细节,文件抽象有块抽象和字符抽象,对于块文件,你只需要知道它可以随机读写就可以完成大部分的工作而不用关注底层 具体的文件系统,比如ext3,ntfs,jfs之类,对于字符设备文件,你只需要知道他们是串行读写就可以了,而不必关心鼠标的电路安排,打印机的内部 机制等等,但是对于网卡,我们看看它是字符设备还是块设备。如果它是块设备,那么它能随机读写吗?看看网卡的特性,它的另一端是另一个世界,它更像是一个 管道,它更像是一个字符设备,因为对一个管道进行随机读写是没有意义的,那么它是一个字符设备吗?要知道网络协议多种多样,计算机仅仅负责按照协议加工数 据而不对协议本身做任何限制,因此如果将网卡作为字符设备,那么为了支持众多协议以及为了在传输之前绑定一个协议,就必须频繁调用ioctl之类的系统调 用,这样用户就必须知道网卡这个设备的更多的细节,否则用户怎么去ioctl这块网卡,这显然违背了unix文件抽象的初衷,另外怎么去同步这个设备,比 如多个进程同时需要打开这个设备传输网络数据,怎么能保证它们可以用最高的效率复用这个网卡,这个同步工作应该由谁来做,系统还是用户,如果由系统来做, 传统的文件同步接口将在网卡设备文件失效,如果由用户来完成,那么用户必须对网卡像驱动工程师一样熟悉,一个用户弄坏网卡的一个寄存器就会导致整个网卡 down掉...第三,如何支持网络协议,难道让用户自己进行协议封装然后write到网卡吗?协议栈在这种情况下必须在用户空间实现,如此一来,效率和 健壮性呢?安全性呢?协议栈显然受不到操作系统的内核空间特权级别的保护待遇,这违背了安全原则。综上,网卡不能被抽象成设备文件,因为将之抽象之后得不 到任何好处。
bsd套接字解决上文件抽象问题,为了使用文件接口,bsd套接字仍然使用文件接口,下层直接和内核空间的协议栈接口,所 有的同步以及协议规程都在协议栈完成,设备复用由协议栈和设备驱动共同完成,这个bsd套接字抽象简直就是一件艺术品,人们又回到了一切皆文件的美丽又和 谐的世界,bsd套接字通过一个新的系统调用socket来代替open从而可以实现诸如协议绑定之类的和open语义不相关的操作,另外connect 和accept也实现了自己的语义。当初为何不将网络设备作为文件抽象呢?实际上有一个本质的原因,那就是unix根本就不把网络通信作为IO,而是作为 IPC,实际上unix从一开始就将网络当成了计算机,否则它也不会将网络通信作为IPC,进程间通信可以在同一台机器,也可以在不同的机器,实际上机器 并不是界限。unix将网络通信当成了像共享内存,信号量之类的IPC机制了,只不过后者是同一台机器内部的机制,不需要硬件,而网络通过需要硬件实现, 硬件就是网卡之类的设备,unix仅仅将网络设别作为了实现IPC的手段罢了。
注:评论审核后才能被公开。
相关文章
- [品牌·配件] 想要游戏玩的好,散... 2022-04-11
- [品牌·配件] 从20MB小可爱到... 2021-12-23
- [手机·数码] 父母与孩子在学习上... 2021-12-22
- [品牌·配件] 性能强悍超低功耗,... 2021-12-03
- [维修保养] 知道这几点 可以让... 2021-11-22
- [品牌·配件] 2022年为什么需... 2021-11-15
- [游戏·软件] 《使命召唤 17》... 2021-10-28
- [市场动态] 快速增长!未来5年... 2021-10-25
- [品牌·配件] 固态硬盘什么品牌最... 2021-10-08
- [经验之谈] 打印机为什么会发生... 2021-09-29
- [办公·耗材] 2021上半年中国... 2021-09-27
- [品牌·配件] 欧盟提交新标准,苹... 2021-09-26
- [品牌·配件] 谁说玩家不能自己D... 2021-09-23
- [品牌·配件] 变革的开始,回顾2... 2021-09-22
- [办公·耗材] 小程序直连打印 这... 2021-09-16
最新更新
- [促销讯息] 易搜《福建IT行业... 2023-04-21
- [促销讯息] 易搜《安徽IT行业... 2023-04-21
- [促销讯息] 易搜《云南IT行业... 2023-04-21
- [促销讯息] 易搜《福建IT行业... 2023-04-21
- [美容养生] 口腔溃疡的起因不止... 2023-03-29
- [职场入门] 终面技巧丨明明聊得... 2023-03-29
- [职场入门] 应届生离职原因大公... 2023-03-29
- [职场入门] 简历上什么都写只会... 2023-03-29
- [美容养生] 肝脏是否健康,可以... 2023-03-29
- [手机·数码] 8分钟即可充满!传... 2023-03-10
- [职场入门] 关于五险一金,这些... 2023-03-10
- [职场入门] 如何应对校招中的性... 2023-03-10
- [市场动态] 济宁市三项目获省良... 2023-03-10
- [美容养生] 每天总会喝两杯的人... 2023-03-10
- [美容养生] 膳食纤维素益生元功... 2023-03-07
热门点击
- [热点访谈] 易搜《山东IT行业... 2014-04-01
- [名人传记] 董事会该如何订定高... 2014-12-08
- [促销讯息] 易搜《江西IT行业... 2014-07-15
- [促销讯息] 易搜《河南IT行业... 2014-10-24
- [促销讯息] 易搜《福建IT行业... 2014-07-02
- [热点访谈] 易搜《湖南IT行业... 2014-10-18
- [促销讯息] 易搜《四川IT行业... 2014-11-27
- [促销讯息] 看过来看过来!关注... 2014-09-10
- [爆笑囧图] 00年代我们追过的... 2014-09-28
- [热点访谈] 易搜《浙江IT通讯... 2015-01-30
- [手机·数码] 为年终蓄力 十月份... 2013-10-28
- [市场动态] 互联网电视“赛马”... 2013-09-16
- [桌面壁纸] 性感古装美女,亮瞎... 2014-09-16
- [热点访谈] 易搜《浙江IT行业... 2014-08-24
- [热点访谈] 2015年,100... 2015-03-25
评论列表