在阅读有关 Linux 内核的内容时,我遇到了内核数据结构的概念。我试图通过谷歌查找更多信息,但什么也没找到。
- 什么是内核数据结构?
- 他们的要求、用途和访问权限是什么?
- 内核内部的数据结构是怎样组织的?
内核数据结构的示例可能是file_operations
或c_dev
。
答案1
内核是用 C 编写的。“内核数据结构”仅指源代码中定义的大多数复合类型(struct
s 和union
s)的各种形式(树、列表、数组等),其中 C 代码通常充满了东西像那样。如果你不懂C,它们对你来说就没有意义。
数据结构构造内存或地址空间中的信息存储。 Linux 内核使用的没有什么特别之处。如果您正在编写内核模块,则可以/必须使用其中一些,但它们的使用完全在内核内部。内核内存仅由内核访问,其结构与其他任何内容无关。
答案2
内核跟踪系统的状态 - 现有的用户进程、分配的内存、处理器的状态、加载的设备驱动程序、硬件的状态、缓存的 I/O、网络端口、计时器,甚至性能指标。基本上任何东西都是系统资源,而不是用户进程的一部分,也不属于内核程序本身的一部分。
所有这些信息都存储在“内核数据结构”中,它只是存储以定义方式格式化的记录的内存。
通常,当您阅读有关内核调试、跟踪或内核转储的内容时,您会遇到这个词。内核转储可以仅复制内核结构,或者复制内核结构以及进程/用户数据。大多数时候您只需要内核数据结构。