当我们有设备驱动程序时,为什么内核负责访问硬件?

问题描述 投票:0回答:1

据我所知,内核是操作系统最重要的部分。但是,它的职责之一是访问硬件(写入磁盘、使用鼠标等)。

我也知道我们需要驱动程序来获得对不同硬件(不同品牌的键盘等)的统一访问。

但是 - 只要我们有 X 的驱动程序,就意味着我们可以按原样使用它。如果我们能够按原样使用它 - 为什么我们不能直接使用驱动程序?为什么中间需要内核?它创造了什么优势?

我尝试向一些机器学习模型寻求答案,并且我在互联网上搜索了答案。

在网上我只找到了有关“如果我们有内核,为什么我们需要驱动程序”的问题的答案,并且模型答案不清楚。他们声称出于安全目的需要内核(驱动程序可以尝试自己解决这个问题/到达内核寻求帮助),并且他们声称并行访问需要内核(仍然 - 在我看来和我的观点)理解,司机可以自己处理。)

linux linux-kernel operating-system kernel driver
1个回答
0
投票

设备驱动程序在非常低的级别上运行。内核实现了更高级别的抽象。

例如磁盘驱动程序实现扇区的读取和写入。内核在此之上分层文件系统、访问控制、缓冲等。

NIC 的设备驱动程序大多只是发送和接收数据帧。内核实现了 TCP 和 IP 等网络层。

此外,通常需要调解对设备的访问。如果一个设备一次只能被一个进程访问,那么这是由内核而不是驱动程序实现的。

© www.soinside.com 2019 - 2024. All rights reserved.