- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读有关 linux 内核开发的信息,但我只是阅读了一些我不理解的文本。以下是关于模块的 __init 和 __exit 宏的段落:
This demonstrates a feature of kernel 2.2 and later. Notice the changein the definitions of the init and cleanup functions. The __init macrocauses the init function to be discarded and its memory freed once theinit function finishes for built−in drivers, but not loadable modules.If you think about when the init function is invoked, this makesperfect sense.
There is also an __initdatawhich works similarly to __init but for init variables rather thanfunctions.
The __exit macro causes the omission of the function whenthe module is built into the kernel, and like__exit, has no effect for loadable modules. Again, if you consider when the cleanup function runs
__init
一旦内置驱动程序的 init 函数完成,就会导致 init 函数被丢弃并释放其内存。但为什么?不适用于可加载模块?我无法理解它。
__init
中分配的变量、地址等两者都需要,对吗?
最佳答案
你是对的;即使在模块中,也可能存在初始化后您确实不需要的功能,因此原则上可以将它们从内存中删除。原因__init
对模块没有影响更多的是关于实现的容易程度。
This answer to a question about the nature of __init
为这个主题提供了一些启示。本质上,内核构建系统会查找所有标记为 __init
的函数。 ,跨越内核的所有部分,并安排它们,使它们都在同一个内存块中。
然后,当内核启动时,它可以一次性释放这 block 内存。
这种预先排序的想法不适用于模块。加载模块时必须加载初始化代码,因此它不能与其他初始化代码共享空间。相反,内核必须从每个模块中挑选几百个字节并单独释放它们。
但是,硬件页面大小通常为 4KB,因此很难以小于 4KB 的 block 释放内存。所以试图释放 __init
每个单独模块中的功能可能比它的值(value)更麻烦。
关于init - __init 和 __exit 宏用于内置和可加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680641/
此处的描述 - http://www.tldp.org/LDP/lkmpg/2.4/html/x281.htm - 页面(以及关于 SO 的一些相关答案,例如这里的答案 - __init and __
表格 class ImportExcelForm(Form): file = forms.FileField(attrs={'class':'rounded_list',}) 我正在尝试将C
我无法找出造成此错误的原因 TypeError: __init__() takes at most 2 arguments (3 given) 指向 @user_blueprint.route('/l
我的Python应用程序结构是这样的: run.py app/__init.py__ app/config.py app/ 在我的 app/__init.py 中,我想检查变量 DEBUG_MODE
我正在阅读有关 linux 内核开发的信息,但我只是阅读了一些我不理解的文本。以下是关于模块的 __init 和 __exit 宏的段落: This demonstrates a feature of
我想为 Linux 创建一个可加载的内核模块。这是代码 #include #include static int __init mymodule_init(void) { printk ("My
内核中有很多__init 调用的实例,包括驱动程序module_init 和内核的其他函数。我怀疑内核是如何确定 __init 调用的顺序的。更重要的是,它如何确定驱动程序 module_init 调
我遇到了常见的 clojure 错误: Unhandled java.io.FileNotFoundException Could not locate org/dsteurer/doctex__in
我有一个用 python 编写的不和谐机器人。但问题是,它仅在部署在 heroku 上时才有效,但根本不在本地运行。 这是文件夹结构 - feed - __init__.py - token.
如果在初始化和退出模块中使用 __init 和 __exit 属性会发生什么,如果我不使用它们会发生什么。示例如下图所示。 使用属性 static __init int myinit(void) {}
我最近更新了锂库,我遇到了这个问题。我收到此错误: 运行时异常 弃用 `app\models\StoreCategories::__init()` 方法,需要手动调用。 来源 /works/minhn
我在 django 中使用 get_model 和 get_models 时遇到问题 我在models下有几个模型/ models/blog.py models/tags.py models/u
我知道这个问题在这里被问过很多次,我可能已经阅读了大部分答案(包括 this 和 that )以及 python 文档,但仍然找不到我非常简单的答案导入问题。它是如此简单,以至于我一定错过了一些愚蠢的
__read_moSTLy 的宏展开: #define __read_mostly __attribute__((__section__(".data..read_mostly")) 这个来自cach
我正在尝试从 torchvision.io 导入 read_image当我将鼠标悬停在它说的错误上时 torchvision.io 在“__init.py__”中找不到引用“read_image” f
我是linux新手,对于函数static int __init console_setup(char *str),它会返回int,函数名称是console_setup,但是这里的_init是什么意思?
我正在尝试让 Python 脚本在我的 Ubuntu 服务器上运行。我有以下目录结构: /home/pythontest |_ __init__.py |_ main.py
我目前正在尝试使用 mozilla deepspeech 训练语音识别模型。这已经在linux上完成了。 MacO 从来没有遇到过问题,但现在遇到了问题。 我已经厌倦了两次设置虚拟环境来解决这个问题,
This is the code:这是代码: options = Options() options.add_experimental_option("excludeS
我有以下文件: pkg/__init_.py pkg/module.py 现在,在 pkg/__init__.py 中,如何导入 module? 是吗 import pkg.module 或 impo
我是一名优秀的程序员,十分优秀!