deferred initcalls与模块化
deferred initcalls与模块化
有两个技术可以加快kernel的启动速度:
1、deferred initcalls
2、模块化
它们的思想类似,都是将非必要的模块初始化推迟到内核启动之后。
但实现方法有所差别。
deferred initcalls需要修改内核模块代码,将:
module_init(foo_init)
修改为:
deferred_module_init(foo_init)
主要初始化执行完成之后,执行:
cat /proc/deferred_initcalls
会将所有的deferred init模块全部初始化。
模块化是将内核模块从built-in修改为模块。
方法是menuconfig中,对应的模块选择为m。
对应的模块会生成一个.ko文件,将会被包含在os中。
内核启动之后,可以通过命令:
insmod
挂载对应模块。
deferred initcall:
优点:
1、使用方便,模块仍然是built-in。
2、内核模块修改不需要重新生成os。
3、有些模块不能,或不易被模块化,可以用deferred init实现初始化延迟。
缺点:
1、需要修改内核代码。
2、deferred init模块的加载顺序不容易控制。
模块化:
优点:
1、不用修改内核代码。
2、因为是单个模块主动加载,模块加载顺序容易控制,可以根据需要加载相应的模块。例如,某个程序启动之前去加载其所需要的模块。
缺点:
1、内核模块的修改,需要导致os的变动。需要重新生成os,或者手动替换对应目录下的ko文件。
2、涉及到的修改较多,还要考虑模块依赖。
3、如果使用了版本控制工具,会产生多次提及,内核、os等。
参考:
1. http://elinux.org/Deferred_Initcalls
转载于:https://www.cnblogs.com/suncoolcat/p/3331251.html
deferred initcalls与模块化相关推荐
- 全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
文章目录 1 概述 2 启动速度优化简介 2.1 启动流程 2.2 测量方法 2.2.1 printk time 2.2.2 initcall_debug 2.2.3 bootgraph. 2.2.4 ...
- Linux Bootup Time
Linux Bootup Time 英文原文地址:http://elinux.org/Boot_Time 1. 简介 启动时间这一话题包括很多子话题,比如启动时间的衡量.启动时间的分析.人为因素分 ...
- linux模块化机制,Linux模块化机制和module_init
> 引子:模块化机制优点 模块化机制(module)是Linux系统的一大创新,是Linux驱动开发和运行的基础(当然,module并不仅仅是支撑驱动).其优点在于: 1.在系统运行动态加载模块 ...
- 模块化Java简介(转载infoq)
在过去几年,Java模块化一直是一个活跃的话题.从JSR 277(现已废止)到JSR 291,模块化看起来是Java进化过程中的必经一环.即便是基于JVM的未来语言,比如Scala,也考虑了模块化的问 ...
- android 提供服务,GitHub - FamliarMan/AndroidServiceProvider: 为模块化提供的一个服务发现库...
AndroidServiceProvider是为了解决模块化过程中各模块服务统一获取的难题而产生的,具体情况请参照这篇文章 Android模块化中的服务发现机制 注意混淆 这里特别强调,所有注册的类都 ...
- C:模块化程序设计 以及数组
模块化: 举例: 继续细化上述模块,猜完一个数字之后,继续再猜: 再细化计算机生成数字: 数据类型前边都加入了一个const,把他声明为整形常量的原因,当你这个参数被声明为const的时候就可以起到保 ...
- Unity Pro builder创建模块化仓库建筑学习教程
Unity内部的专业3D编辑工作室 你会学到: 直接在Unity内部学习3D建模 使用专业构建器的专业方法 为您的游戏创建模块化资产 了解如何为您的三维模型设置纹理 三维资产的模块化布局 专业后期制作 ...
- Blender 和Unreal Engine中的模块化3D建筑技能学习视频教程
Blender 和Unreal Engine中的模块化3D建筑技能学习视频教程 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕( ...
- Blender模块化建筑环境地形场景制作视频教程 Creating modular environments
Blender模块化建筑环境地形场景制作视频教程 Creating modular environments Blender模块化建筑环境地形场景制作视频教程 Creating modular env ...
- jQuery的deferred对象详解
阮一峰大神的关于jQuery的deferred对象详解 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_ ...
最新文章
- [原创]KVM虚拟化管理平台的实现
- 【天线】天线基础:名词解释
- hdu 5256 LIS变形
- [转载]从12306谈起验证码的架构
- python+appium+PyCharm==自动化测试APP环境
- android python opencv_使用Python和OpenCV自动化Android游戏
- 2021 第三封拒信 来自牛津大学自主智能机器和系统 Autonomous Intelligent Machines and Systems
- 百度 Serverless 函数计算引擎 EasyFaaS 正式开源
- oracle 5种索引方式,MySQL使用索引的几种方式
- 日历记事本java代码_急需日历记事本JAVA源代码
- 初探nginx架构(100%)
- WebApi系列(从.Net FrameWork 到 .Net Core)
- Javascript ES6 Promise同步读取文件(使用async、await)
- 【渝粤教育】国家开放大学2018年春季 0605-22T中国古代文学(2) 参考试题
- 单片机c语言轻松入门 完整版,单片机C语言轻松入门
- python不用模块随机列表_python不用库实现随机 如何用python实现随机抽取
- Unity与UE4引擎源码内使用到的第三方库的比较
- 历届试题 合根植物 C语言,植物营养历年真题(整理).doc
- 正确理解差异的“专业意义”与“统计学意义”
- 程序员如何提升自身价值