当前位置: 首页 > 面试题库 >

Linux内核代码中的“ EXPORT_SYMBOL”是什么意思?

鲁霄
2023-03-14
问题内容

从这里

 48 struct snd_card *snd_cards[SNDRV_CARDS];
 49 EXPORT_SYMBOL(snd_cards);

我没有得到它的含义以及为什么使用它。我试图搜索它,但不了解其含义。


问题答案:

它使动态加载的模块可以访问符号(前提是所述模块添加了extern声明)。



 类似资料:
  • 问题内容: 在Linux内核源代码中,我找到了以下功能: 在这里我不明白这意味着什么。 问题答案:

  • 问题内容: Linux内核代码中的EXPORT_SYMBOL_GPL是什么? 下面是一段代码,其中包含EXPORT_SYMBOL_GPL 该宏在内核代码中多次出现。 问题答案: 将某些符号(例如函数)定义为可导出(从内核可加载模块中看到)是宏。如果该符号没有“ EXPORT_SYMBOL”,则将无法从模块访问该符号。 将仅在GPL许可的模块中显示该符号,并且-在具有任何许可的模块中显示该符号。 h

  • 问题内容: 我正在研究Linux内核,但是有问题。 我看到许多Linux内核源文件都有。那是什么? 问题答案: 它是指向当前进程(即发出系统调用的进程)的指针。 在x86上,它是在(其他拱门的类似文件)中定义的。 Linux设备驱动程序第2章中的更多信息: 当前指针是指当前正在执行的用户进程。在执行系统调用(例如打开或读取)期间,当前进程是调用该调用的进程。如果需要,内核代码可以通过使用curre

  • 问题内容: 我读到Linux内核是抢占式的,这与大多数Unix内核不同。那么,内核抢占到底意味着什么呢? 一些类比或示例将比纯理论解释更好。 添加2018年1月1日-11:00 AM 抢占式只是多任务处理的一种范例。还有其他类似协作多任务处理。通过比较它们可以更好地理解。 问题答案: 想象一下抢占式多任务的简单视图。我们有两个用户任务,它们都一直在运行,而没有使用任何I / O或执行内核调用。这两

  • 问题内容: 当我经历了以下块的Linux的字符设备驱动程序代码,我发现结构的指针在。 我想知道指向的结构及其完整元素。 此结构有什么作用? 问题答案: 它是指向当前进程(即已发出系统调用的进程)的指针。 从文档: 当前过程 尽管内核模块不像应用程序那样顺序执行,但是内核执行的大多数操作都与特定进程有关。内核代码可以通过访问全局项current来了解驱动它的当前进程,该全局项current是指向st

  • 问题内容: 呼叫跟踪包含如下条目: ‘是什么意思?标记在AnotherFunctionName之前? 问题答案: ‘?’ 表示有关此堆栈条目的信息可能不可靠。 堆栈输出机制(请参见dump_trace()函数的实现)无法证明其找到的地址是调用堆栈中的有效返回地址。 ‘?’ 本身由printk_stack_address()输出。 堆栈条目可能有效还是无效。有时,人们可能只是跳过它。研究所涉及模块的