2-内核开发-第一个内核Hello模块开发案例

本文介绍了如何从头开始开发Linux内核的Hello模块,包括安装环境准备、依赖项安装、编写模块代码、编译、加载、卸载以及使用lsmod检查模块状态。通过实践,学习者将掌握内核模块开发的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


2-内核开发-第一个内核Hello模块开发案例

目录

2-内核开发-第一个内核Hello模块开发案例

1.安装环境检查及准备

2. 安装依赖项目

3. 开始helloworld module 开发

4.编译

5.安装内核模块

6.卸载 module

7.lsmod 查看内核当前加载模块

8.总结

9.附录


课程简介:
Linux内核开发入门是一门旨在帮助学习者从最基本的知识开始学习Linux内核开发的入门课程。该课程旨在为对Linux内核开发感兴趣的初学者提供一个扎实的基础,让他们能够理解和参与到Linux内核的开发过程中。

课程特点:
1. 入门级别:该课程专注于为初学者提供Linux内核开发的入门知识。无论你是否具有编程或操作系统的背景,该课程都将从最基本的概念和技术开始,逐步引导学习者深入了解Linux内核开发的核心原理。

2. 系统化学习:课程内容经过系统化的安排,涵盖了Linux内核的基础知识、内核模块编程、设备驱动程序开发等关键主题。学习者将逐步了解Linux内核的结构、功能和工作原理,并学习如何编写和调试内核模块和设备驱动程序。

3. 实践导向:该课程强调实践,通过丰富的实例和编程练习,帮助学习者将理论知识应用到实际的Linux内核开发中。学习者将有机会编写简单的内核模块和设备驱动程序,并通过实际的测试和调试来加深对Linux内核开发的理解。

4. 配套资源:为了帮助学习者更好地掌握课程内容,该课程提供了丰富的配套资源,包括教学文档、示例代码、实验指导和参考资料等。学习者可以根据自己的学习进度和需求,灵活地利用这些资源进行学习和实践。

无论你是计算机科学专业的学生、软件工程师还是对Linux内核开发感兴趣的爱好者,Linux内核开发入门课程都将为你提供一个扎实的学习平台,帮助你掌握Linux内核开发的基础知识,为进一步深入研究和应用Linux内核打下坚实的基础。

这一讲主要讲述如何开发第一个Linux驱动程序模块,动手开发代码,运行加载卸载模块


课程内容和目标:

  1. 编写实现最简单的内核模块- hello
  2. 如何加载内核模块hello
  3. 如何卸载内核模块hello

先从安装所需依赖、然后以创建基础内核模块hello 进行展开。


1.安装环境检查及准备

Linux 内核开发环境没有搭建好的,需要看第一讲内容 1-内核开发环境ubuntu+virtualbox+mobaXterm搭建-优快云博客

现在默认你已经搭建好环境。请检查以下项是否已经ready。
    VirtualBox 
    Ubuntu:20.04.1-Ubuntu 
    mobaXterm personal editon 
    Ubuntu网络环境设置好可以访问外部网络,方便 mobaXterm 可以通过ssh 连接

VirtualBox 软件设置详细信息如下:

上节课已经安装好常用软件
   sudo apt install net-tools
   sudo apt install vim
   sudo apt-get install gcc 
   

2. 安装依赖项目

进行内核模块开发,需要安装对应的headers 文件,编译优c,Makefile 文件需要编译环境。
安装build-essential 和 kernel headers,执行以下命令:
$apt-get install  linux-headers-$(uname -r) 

build-essential 软件包提供了在基于 Debian 的系统上编译和构建软件所需的基本工具。

linux-headers-$(uname -r) 软件包提供了当前正在运行的内核的头文件。

为啥需要安装linux-headers?  在进行内核模块开发时需要安装 Linux headers 的原因如下:

  • 内核头文件声明:Linux headers 包含内核中使用的所有数据结构、函数和宏的声明。这些声明对于编写与内核交互的模块至关重要。
  • 编译模块:编译内核模块时,编译器需要知道内核中使用的符号的类型和大小。这些信息在 Linux headers 中提供。
  • 符号解析:当内核加载模块时,它需要解析模块中使用的符号。这些符号在 Linux headers 中定义。
  • 避免内核和模块之间的不匹配:Linux headers 对于确保内核和模块之间的兼容性非常重要。如果内核和模块的版本不匹配,则模块可能无法正常工作或可能导致系统不稳定。

安装header 文件后,安装kernel build 工具,以便进行代码编译。

安装的输出结果如下,说明安装成功

peach@peach-VirtualBox:~$ sudo apt-get instal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值