4.1 一个简单的Linux Kernel模块

news2024/11/14 13:47:37

Linux内核包含非常多个组件,但不同的应用场景下需要打包的组件也不尽相同,更何况我们常常因为一些iot设备本身硬件资源有限,为了物尽其用要对内核组件进行裁剪。例如,对于路由器设备来说,我们再在打包Linux 内核时并不需要打包BT等驱动模块。Linux提供了一种称之为模块-Module的机制,可以让我们在编译内核的时候可以最小形式的编译必须的模块,从而控制内核大小。

一、hello_world模块示例

1.1 代码示例

在demo目录下,创建hello_world.c文件,其内容如下:

#include <linux/init.h>
#include <linux/module.h>

static int __init hello_init(void)
{
    printk(KERN_INFO "Hello, my world!\n");
    return 0;
}

static void __exit hello_exit(void)
{
    printk(KERN_INFO "See you, my world!\n");
}

module_init(hello_init);
module_exit(hello_exit);


MODULE_LICENSE("GPL V2");
MODULE_AUTHOR("BILL");

1.2 运行效果

 

二,Makefile示例

2.1 内核源码根目录下创建demo目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《MySQL实战45讲》学习笔记

《MySQL实战45讲》学习笔记 [TOC] 《MySQL实战45讲》学习笔记《MySQL实战45讲》学习笔记01.基础架构&#xff1a;一条SQL查询语句是如何执行的02.日志系统&#xff1a;一条SQL更新语句是如何执行的更新语句的执行流程重要的日志模块&#xff1a;redo log重要的日志模块&#x…

Mali GPU“补丁缺口”让 Android 用户容易受到攻击

©网络研究院 Arm 的 Mali GPU 驱动程序中的一组五个可利用漏洞在芯片制造商修补它们几个月后仍未修复&#xff0c;可能使数百万 Android 设备面临攻击。 来自谷歌、三星、小米、Oppo 以及其他手机制造商的设备目前受到影响&#xff0c;正在等待修复程序到达用户手中。 …

HTML爱心照片墙源码

HTML爱心照片墙源码 css charset "utf-8"; * {padding: 0;margin: 0; } div {font-family: "微软雅黑";font-size: 14px;color: #666;padding: 0;margin: 0;; } body,html{background: black;height: 100%; } /*css3实现照片墙的样式*/ .container {widt…

Java毕业设计 基于SSM的网上图书商城系统

对于传统书店来讲,利用计算机软件技术开发一款图书商城也会让书店员工省事不少,这个图书商城能让书籍信息还有注册用户信息,以及书籍订购等内容通过一个网络平台完全展示出来,让网站用户只要登录进去图书商城就可以查看所有的内容,用户可以查看新闻以及书籍产品及时更新的信息,…

【设计模式】设计模式

书籍推荐 《设计模式-可复⽤⾯向对象软件的基础》《重构与模式》 设计模式 设计模式是指在软件开发中&#xff0c;经过验证的&#xff0c;⽤于解决在特定环境下&#xff0c;重复出现的&#xff0c;特定问题的解决⽅案&#xff1b; 内存模型 扩展&#xff1a;c语⾔当中的多态…

年产2万吨山楂酒工厂的设计-装瓶工段及车间的设计(lunwen+任务书+开题+选题表+cad图纸)

目 录 目 录 I 第一章 绪论 1 1.1设计背景及目的 1 1.1.1山楂酒的介绍及功效 1 1.1.2目标人群 1 1.1.3发展前景 2 1.2设计依据 2 1.3设计内容 2 1.4原材料的选择 3 第二章 工艺设计 4 2.1 生产时间安排 4 2.2 工艺流程图 4 2.3 工艺要点 4 2.3.1山楂 5 2.3.3压榨 5 2.3.4分离取…

【pen200-lab】10.11.1.8

pen200-lab 学习笔记 【pen200-lab】10.11.1.5 &#x1f525;系列专栏&#xff1a;pen200-lab &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年12月4日&#x1f334; &#x1f36d;作者…

Java自动装箱与自动拆箱

1、Java基本数据类型及其对应的包装器类类型 Java中共用8种基本数据类型&#xff0c;并为这8种基本数据类型中的每一种都提供了一个包装器类&#xff0c;例如int类型对应的包装器类是Integer。具体类型如下表&#xff1a; 2、自动装箱和自动拆箱 自动装箱&#xff1a;就是指…

【大道模式】状态模式 - State Pattern(审核状态流转)

最近在实现一个简单的审核系统&#xff0c;包含多个审核状态和多个审核动作&#xff0c;将业务逻辑映射到代码中感觉会有很多繁杂的逻辑&#xff0c;因此&#xff0c;会思考用一个比较通用、易扩展、易维护、易测试的模式来应对这种场景&#xff0c;了解了一下&#xff0c;就是…

Java数据结构与Java算法学习Day03---线性表(简略笔记记录)

目录 一、线性表 38 二、顺序表 39 三、链表 45 3.1单向链表 46、47、48 3.2双向链表 49 3.3链表反转 &#xff08;面试中高频题目&#xff09; 56 3.4快慢指针 57 3.4.1中间值问题 57 3.4.2单向链表是否有环问题 58 3.4.3有环链表入口问题 60 3.5循环链表 61 3.6…

(Java)Mybatis学习笔记(三)

前言 继续学习MyBatis各种查询功能章节&#xff0c;争取早日学完mybatis MyBatis中各种查询功能 ❄️若查询出的 数据只有一条&#xff0c;可以通过实体类对象或集合接收 ❄️若查询出的 数据有多条&#xff0c;可以通过集合接收&#xff0c;一定不能通过实体类对象接收&am…

社区系统项目复盘-8

文章目录任务执行和调度热帖排行生成长图优化网站的性能使用Quartz执行定时任务&#xff0c;实现热帖排行功能时&#xff0c;通过定时任务定时计算帖子分数&#xff0c;降低计算的数据量。使用wkhtmltopdf生成长图。通过多级缓存对热帖功能进行优化&#xff0c;提升网站性能。 …

回归分析-书后习题回顾总结

4-1 题目 理论基础 经典多元线性回归模型 参数β\betaβ的最小二乘估计 设rank(C)m1≤nrank(C)m1≤nrank(C)m1≤n&#xff0c;则β^b(CTC)−1CTY\widehat{\beta}b(C^{T}C)^{-1}C^{T}Yβ​b(CTC)−1CTY是β\betaβ的最小二乘估计 具体解题

[附源码]计算机毕业设计网文论坛管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

本田125摩托安装版成型模具设计及仿真(任务书+说明书+工艺卡片+cad图纸+sw三维图)

目录 1 绪论 1 2 模塑工艺规程的编制 3 2.1塑件的工艺性分析 3 2.1.1塑件的原材料分析 3 2.2塑件的结构和尺寸精度及表面质量分析 4 2.2.1结构分析 4 2.2.2尺寸精度分析 4 2.2.3表面质量分析 4 2&#xff0e;3计算塑件的体积和质量 4 2&#xff0e;4塑件成型工艺参数的确定 5 2…

34. 在排序数组中查找元素的第一个和最后一个位置

&#x1f308;&#x1f308;&#x1f604;&#x1f604; 欢迎来到茶色岛独家岛屿&#xff0c;本期将为大家揭晓34. 在排序数组中查找元素的第一个和最后一个位置&#xff0c;做好准备了么&#xff0c;那么开始吧。 &#x1f332;&#x1f332;&#x1f434;&#x1f434; 一、题…

[激光原理与应用-36]:《光电检测技术-3》- 光学测量基础 - 光电效应与光电探测器的基本原理

目录 一、概述 二、光电检测的理论基础&#xff1a;光电效应 三、分类 3.1 光子效应 3.2 热效应 四、光电检测器的参数 五、常见的光电探测器 5.1 光电倍增管&#xff1a;微弱光信号转换成电信号 5.2 光电导器件&#xff1a;电阻或电流随着光强的变化而变化 5.3 光伏…

idea 启动报错 Command line is too long

idea 运行启动类报错 Command line is too long 启动报错信息&#xff1a;Error running ‘Application‘: Command line is too long. 翻译过来就是&#xff1a;启动命令过长&#xff01; 解决方案 1、点开项目启动配置项目&#xff1b; 2、shorten command line 选项选择 J…

(五)进程管理:进程的状态与控制

文章目录一、进程的状态二、进程控制1. 进程控制的原语2. 挂起与激活一、进程的状态 进程的生命周期&#xff1a;从创建到终止的过程 进程的三种基本状态 就绪&#xff08;Ready&#xff09; 可运行而未运行的状态&#xff0c;进程已经分配到除了处理机外的所有资源&#xf…

[附源码]计算机毕业设计校园订餐系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…