免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4857 | 回复: 12

[C] 为什么保护模式下不能直接I/O硬件操作,只能通过系统调用 [复制链接]

论坛徽章:
0
发表于 2010-01-14 00:28 |显示全部楼层
20可用积分
为什么要设置权限呢,

比如,如果两个程序同时都对打印机进行直接读写端口的IO操作,那么打印出来的结果是混乱的?

如果不能直接读写端口,只能通过系统调用来读写打印机,
有两个程序都要打印东西,
是不是引入系统调用就可以避免引起混乱呢

应用程序只能使用系统调用操作硬件,意义何在呢,困惑

谢谢

最佳答案

查看完整内容

Dos是一个单用户系统,Windows、Linux等是多用户系统,所以采用的方式不同。

论坛徽章:
0
发表于 2010-01-14 00:28 |显示全部楼层

回复 #9 湿了耶 的帖子

Dos是一个单用户系统,Windows、Linux等是多用户系统,所以采用的方式不同。

论坛徽章:
0
发表于 2010-01-14 00:40 |显示全部楼层
操作系统帮你更好的安排打印任务。。。如果多个打印服务器请求,按先后顺序排队。。。

论坛徽章:
0
发表于 2010-01-14 09:08 |显示全部楼层
我知道打印队列、可能打印机这个例子不好

那么,要是把打印机换成声卡、网卡之类的别的硬件,怎么解释呢

为什么要禁止直接读写端口,而只能使用系统调用呢,有什么意义呢

谢谢

论坛徽章:
0
发表于 2010-01-14 09:11 |显示全部楼层
你的签名好淫荡!!!!!!!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-01-14 09:17 |显示全部楼层
防止用户随便写个程序破坏硬件driver的运行,造成操作系统无辜蒙冤。

论坛徽章:
0
发表于 2010-01-14 09:24 |显示全部楼层
OS在硬件上层有自己的缓存等,都通过系统调用,数据能保证一致性。
比如硬盘,如果允许直接读写磁盘扇区,那数据就乱掉了。

论坛徽章:
0
发表于 2010-01-14 09:24 |显示全部楼层
意义就在于OS把帮助你管理硬件,把设备抽象成文件节点(不是全部),把对于外设的数据通信抽象成对文件的读写(还有一系列ioctl)。
如果没有OS的抽象,用户程序将要管理一切硬件的细节。让用户程序不用管理硬件,这就是必须通过系统调用来操作硬件的意义。

论坛徽章:
0
发表于 2010-01-14 09:32 |显示全部楼层
原帖由 思一克 于 2010-1-14 09:24 发表
OS在硬件上层有自己的缓存等,都通过系统调用,数据能保证一致性。
比如硬盘,如果允许直接读写磁盘扇区,那数据就乱掉了。

为什么改为系统调用,硬盘数据就不会乱呢,
使用系统调用,也可以不经过文件系统而直接读写特定的柱面、扇区、磁道吧,比如DD命令就是这样实现的吧
那么磁盘数据还是免不了要乱的
我错哪里了、汗

论坛徽章:
0
发表于 2010-01-14 09:35 |显示全部楼层
原帖由 群雄逐鹿中原 于 2010-1-14 09:17 发表
防止用户随便写个程序破坏硬件driver的运行,造成操作系统无辜蒙冤。

那么DOS也有驱动程序,为什么不禁止直接读写端口呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP