编写简单的内核模块——Linux操作系统原理与应用(陈莉君第2版13页)
1.什么是内核模块
2.编写一个简单的内核模块
2.1程序清单
#include #include #include static int lkp_init(void)
{
printk("<1>Hello,WOrld! from the kernel space...\n");
return 0;
}
static void lkp_cleanup(void)
{
printk("<1>Goodbye,World! leaving kernel space...\n");
}
module_init(lkp_init);
module_exit(lkp_cleanup);
MODULE_LICENSE("GPL");
2.2详细说明
2.3编译模块
#Makefile
obj-m := hellomod.o
CURRENT_PATH := $(shell pwd)
LINUX_KERNEL := $(shell uname -r)
LINUX_KERNEL_PATH := /usr/src/kernels/$(LINUX_KERNEL)
all:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean
2.4运行代码
3.出错及解决方案
问题一
此处是Linux内核源代码的绝对路径,不同版本号,路径有所不同,所以我们对代码进行修正,只需要把自己的内核源码绝对路径写进去即可
LINUX_KERNEL_PATH := /usr/src/kernels/$(LINUX_KERNEL)
问题二
编写简单的内核模块——Linux操作系统原理与应用(陈莉君第2版13页)相关推荐
- Linux 操作系统原理 — 内存 — 内存分配算法
目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...
- Linux 操作系统原理 — 内存 — 页式管理、段式管理与段页式管理
目录 文章目录 目录 前文列表 页式管理 快表 多级页表 基于页表的虚实地址转换原理 应用 TLB 快表提升虚实地址转换速度 页式虚拟存储器工作的全过程 缺页中断 为什么 Linux 默认页大小是 4 ...
- Linux 操作系统原理 — 内存 — 基于 MMU 硬件单元的虚/实地址映射技术
目录 文章目录 目录 前文列表 物理地址与虚拟地址 内存空间的组织方式 虚拟地址空间的编址 内核态地址空间 用户态地址空间 内-外存空间的交换与虚拟存储空间之间的映射关系 缺页异常 前文列表 < ...
- Linux 操作系统原理 — 系统结构
目录 文章目录 目录 Linux 系统架构 Linux 内核 内存管理 进程管理 文件系统 设备驱动程序 网络接口 Shell Linux 系统架构 Linux 系统一般有 4 个主要部分:内核.Sh ...
- Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术
目录 文章目录 目录 前文列表 基于局部性原理实现的内-外存交换技术 局部性原理 Swap 交换分区 前文列表 <Linux 操作系统原理 - 内存 - 物理存储器与虚拟存储器> < ...
- linux的原理和运用,Linux操作系统原理与应用_内存寻址
原标题:Linux操作系统原理与应用_内存寻址 第五讲今天上线啦. 在本次课程中,陈老师详细的讲解了有关于内存寻址的演变的相关知识. 第一部分中,介绍了关于内存寻址的相关背景知识.内存寻址-操作系统设 ...
- linux操作系统原理_Linux系统从新手到运维老鸟学习指南
Linux是在1990年底到1991年由芬兰大学的学生LinusTorvalds利用Minix操作系统作为开发平台编写了内核,目前由世界各地的爱好者共同开发和维护的与UNIX兼容的操作系统,也是自由和 ...
- Linux操作系统原理与应用03:进程
目录 1. 进程简介 1.1 程序和进程 1.2 进程的定义 1.2.1 正文段 1.2.2 用户数据段 1.2.3 系统数据段 1.3 进程的层次结构 1.3.1 进程的亲缘关系 1.3.2 进程树 ...
- Linux操作系统原理与应用01:概述
目录 1. Linux内核的技术特点 1.1 单内核结构 1.1.1 单内核特性 1.1.2 微内核特性 1.2 抢占式内核 1.2.1 非抢占式内核特性 1.2.2 抢占式内核特性 1.3 支持动态 ...
- Linux 操作系统原理 — 内核态与用户态
目录 文章目录 目录 Linux 的内核态与用户态 系统调用(System Call) Shell 用户态和内核态的切换 进程的用户空间和内核空间的内存布局 内核空间 用户空间 Linux 的内核态与 ...
最新文章
- 后香农时代,华为提出10大数学挑战问题
- java如何绘制图表_java绘制excel图表(jxcell)
- 游戏服务器的架构演进
- Java Streams,第 4 部分: 从并发到并行
- #189 stat(动态规划)
- 数据库SQL语句学习笔记(6)-使用函数处理数据
- Oracle ——如何确定性能差的 SQL
- vs编译python好还是pycharm的好_Python学习 第3天 VS与PyCharm使用对比
- Yii2 理解Validator
- ie6+7+8等对background-color:rgba(),background-img渐变的兼容
- java数据校验博客_springmvc教程:利用Validation进行参数校验
- Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换
- Atitit .c#的未来新特性计划草案
- .Net Core 使用swagger UI
- 重装系统后小喇叭显示未安装音频输出设备
- vue 使用 vue-awesome-swiper(swiper)解决方法
- 【路径规划】基于粒子群算法实现机器人栅格地图路径规划matlab源码
- Snaker工作流学习(二)
- android模拟器不玩游戏,安卓模拟器哪个玩游戏最流畅?
- 计算10光年是多少米java_1光年是多少米,9.46×10^15米(最快的火箭需飞108000年)...
热门文章
- HttpClient请求https类型的网站接口碰到ssl证书不受信任问题处理
- 我承认我不曾历经沧桑 (蒋方舟)
- 年轻人逃离算法?更懂你的时尚推荐算法,你会拒绝吗?| FashionHack 专栏
- Github Actions生成 secrets
- Android 源码编译详解【一】:服务器硬件配置及机型推荐-2016/06
- D3.入门教程——简介和安装
- dedecms5.7(织梦)源码解析之程序安装补全篇
- 7-11 电话聊天狂人 (25分)
- HTML5 新特性: Web Worker 的创建与使用(webpack + TS 环境)
- 计算机中URL是指什么 ?