关于Linux内核内部的问题
发布时间:2020-12-14 00:51:07 所属栏目:Linux 来源:网络整理
导读:我正在阅读“ Linux设备驱动程序,第3版”,并面对一些我不太了解的内核项目.希望大师在这个论坛上帮助我. 1)Linux内核是否在内部使用虚拟或物理地址运行?让我特别困惑的是,有几种类型的地址(逻辑,虚拟,总线和物理),它们都是内核有效且可操作的. 2)CPU指令不
我正在阅读“
Linux设备驱动程序,第3版”,并面对一些我不太了解的内核项目.希望大师在这个论坛上帮助我.
1)Linux内核是否在内部使用虚拟或物理地址运行?让我特别困惑的是,有几种类型的地址(逻辑,虚拟,总线和物理),它们都是内核有效且可操作的. 2)CPU指令不能直接寻址存储在外围设备中的数据是否正确,因此为了这些目的,使用可寻址存储器,即缓冲器? 4)当请求信号量(值为0)并且必须等待它时,进程是否可以休眠? 4)原子操作 – 这些是由特定的CPU指令保证的吗? 解决方法
>某些特殊位(例如初始引导程序)在物理地址上以实模式运行,但大多数内核代码(所有用C语言编写的部分)都在虚拟地址空间中运行.您将看到带有注释的其他地址空间的指针,以提醒您不要直接取消引用它们. >在各种其他地址空间(例如PCI设备的配置空间)和内核的内存之间执行复制有特殊功能.根据体系结构,某些部分可以直接映射. >是的. >不一定.对于缺乏原子操作的体系结构,可以通过暂停所有其他处理器(如果是单核很容易)和禁用中断来保证原子性.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |