什么是“内核数据结构”?

什么是“内核数据结构”?

在阅读有关 Linux 内核的内容时,我遇到了内核数据结构的概念。我试图通过谷歌查找更多信息,但什么也没找到。

  • 什么是内核数据结构?
  • 他们的要求、用途和访问权限是什么?
  • 内核内部的数据结构是怎样组织的?

内核数据结构的示例可能是file_operationsc_dev

答案1

内核是用 C 编写的。“内核数据结构”仅指源代码中定义的大多数复合类型(structs 和unions)的各种形式(树、列表、数组等),其中 C 代码通常充满了东西像那样。如果你不懂C,它们对你来说就没有意义。

数据结构构造内存或地址空间中的信息存储。 Linux 内核使用的没有什么特别之处。如果您正在编写内核模块,则可以/必须使用其中一些,但它们的使用完全在内核内部。内核内存仅由内核访问,其结构与其他任何内容无关。

答案2

内核跟踪系统的状态 - 现有的用户进程、分配的内存、处理器的状态、加载的设备驱动程序、硬件的状态、缓存的 I/O、网络端口、计时器,甚至性能指标。基本上任何东西都是系统资源,而不是用户进程的一部分,也不属于内核程序本身的一部分。

所有这些信息都存储在“内核数据结构”中,它只是存储以定义方式格式化的记录的内存。

通常,当您阅读有关内核调试、跟踪或内核转储的内容时,您会遇到这个词。内核转储可以仅复制内核结构,或者复制内核结构以及进程/用户数据。大多数时候您只需要内核数据结构。

相关内容