- 博客(12)
- 收藏
- 关注
原创 奶奶滴,有几个关于acpi的函数和概念绕不开
在看系统对对于acpi表的处理的时候有个函数和概念非常重要不细心理解,读代码想有东西咬我一样。天天有处理不完的系统故障,和写不完的脚本。我觉得写代码和看代码得知道目标是什么才能展开对代码的工作,否则是很痛苦的。可惜,我不知道。下面我们开始吧!首先,OS在工作开展的瞬间就设计到一个概念:命名空间。这个首次出现在函数acpi_early_init中,该函数中的重要函数acpi_ns_root_initialize中,ns指的是namespace。当然,该函数不只是出现在这一个地方之中。
2024-09-16 17:45:25
480
1
原创 没有整个框架去细看OS对ACPI处理是不好的
现在已经很久没有去更新ACPI表,整日忙于工作。工作上大体上是没有任何意义,学习不到底层上的原理只能抽空看看了。越工作越觉得自己知识深度可宽度都不行。我在前面acpi_early_init 中看到了,OS会开辟一段ACPI表的空间创建,创建表头,创建信号量等一系列上的操作。acpi_init对这些函数进行了进一步的处理。init_acpi_device_notify(); 初始化ACPI设备的通知系统。acpi_bus_init():一个ACPI(高级配置和电源接口)总线初始化函数pci_mmcfg_la
2024-09-07 16:59:52
1289
原创 假如我们获取到了ACPI每个分表虚拟地址,我们怎么使用
只查找并返回目标节点,不会返回该节点的头结点或其所有子节点的集合。它的设计是为了定位特定节点,而不是整个子树。首先,构造一个节点和一个描述符将这些数据去取出来。这是接着上一篇的理解的。
2024-09-01 00:21:21
111
原创 当我们获取到ACPI中各个FSDT,这样的表头后,后续处理
创建各个命名空间,找到各个命名空间所需要的数据,构建各自的节点并写入数据之中。信号量,结构体,都是为了这一步服务的。看来要进一步细节上去理解代码就需要我们去看具体内容了,不然接下来会很抽象,不理解代码为什么这么去写。
2024-08-31 01:20:02
1001
原创 感觉前面BIOS的ACPI传递到OS中说的太浅了
需要注意的是在该时刻我们使用的表的值是物理地址而不是虚拟地址(线性地址),我们需要使用函数acpi_os_map_memory进行进一步处理以便我们使用。acpi_os_map_memory中的代码内容就是书上介绍的地址物理地址转虚拟地址的内容。这一行代码出现在函数acpi_initialize_tables中,该函数根据BIOS的启动模式以及传递的值决定ACPI表的首个地址。因为还是讨论函数怎么调用的这个大家多看看起始基本上就知道的,我们还是要知道背后的内存级别的操作才行,以及说清代码整体思路才行。
2024-08-27 22:47:34
308
1
原创 从今天开始更新OS中ACPI表和中断向量表在系统中的使用
首先,我们需要知道的是这两张表都是从BIOS中传递上内存中的,OS从指定内存中找到这些表。其次,构建这些表的基本信息,函数调用以及特殊设备的处理。硬件向操作系统反馈的,操作系统如何调用指定函数的。如果有人催过更的话就更新快些。
2024-08-25 13:57:53
147
原创 关于系统起来这件事
不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了DPT(Disk Partition Table硬盘分区表),最后两个字节“55,AA”是分区的结束标志。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序。一:BIOS扫描环境中的可以设备并写成ACPI表,最后提供给操作系统,第二个就是对heads中存在构建基本的全局描述符寄存器以及具备描述符寄存器,如果仔细的去内核书中的介绍。
2024-08-20 21:44:29
344
原创 对linux 内存空间、中断、进程三个部分的学习总结
这是因为32位操作系统能够寻址的地址编号范围是1到2的32次方,而每一个地址都是指的内存中一个字节的地址。CPU只有一个4G空间,怎么去访问远超于4G的空间,并且兼容更多的设备就是我们需要思考的问题。总体而言,CPU的工作原理是通过不断取指、解码、执行和访存的过程,按照指令集架构(如x86、ARM等)执行程序中的指令,从而完成计算机的各种任务。3. 执行:根据指令的操作类型,CPU执行相应的操作,可能涉及数据的读取、运算、存储和控制流的改变。在学习的过程中,我发现自己对操作系统的还是有很多不足的。
2024-07-16 22:55:42
374
原创 在正式开始了解PCIe的知识前,开始学习pci知识吧
我们都知道PCI总线上可以再次去挂在PCI总线,以HOST桥可形成PCI总线树。跨PCI线需要PCI桥进行数据转发。在PCI桥的配置空间中存在一系列管理PCI总线子树的配置寄存器,这个PCI桥在PCI树中会有很多个。每个PCI设备都有独立的配置空间(计算是不是准备好了一块映射空间来针对这一点),在每个PCI设备使用的物理地址并不相同。需要注意的是,PCI总线地址和处理器访问的存储地址是不同的。PCI总线上的设备可以通过四根中断请求信号向处理器提出中断,PCI配置空间中记录了这个四条中断信号所代表的信息。
2023-11-15 21:44:02
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人