kernel space中的程序入口,出口分别是module_init,module_exit中的handler,__init 宏是告知编译程序相关的程序或者变量仅用于初始化,会放到特殊的内存段中,初始化结束后就释放这段内存。在驱动程序中仅有一个module-init和cleanup_exit点。插入或移除模块后,可以通过dmesg看到相应的消息。hello_kernel.c:
#include<linux/kernel.h>
#include<linux/module.h>
#include<linux/init.h>static int __init lkp_init(void)
{printk(" <1> hello ,world..\n");return 0;
}static void __exit lkp_cleanup(void)
{printk("<2> goodbye, leaving kernel space...\n");
}module_init(lkp_init);
module_exit(lkp_cleanup);
Makefile的写法(在内核的Makefile中定义了KERNELRELEASE,先执行内核代码下面的Makefile,然后执行当前工作目录的这个Makefile):
ifneq ($(KERNELRELEASE),)
mymodule-objs:=hello.c
obj-m += hello.o
else
        PWD := $(shell pwd)
        KVER := $(shell uname -r)
        KDIR := /lib/modules/$(KVER)/build

all:
        $(MAKE) -C $(KDIR) M=$(PWD)
clean:
        rm -rf *.o *.mod.c *.ko *.mod.o *.symvers *.order *-
endif

--------
参考文献:《linux内核编程》  

Linux内核编程入门hello,world!相关推荐

  1. 由尚德linux内核编程进阶教材,由尚德老师Linux内核编程入门视频教程

    由尚德老师讲解的Linux内核编程教程入门课程,此课程学完后可以接着学进阶篇,下载地址:http://blog.csdn.net/congxue/archive/2009/05/17/4194112. ...

  2. Linux动态链接库编程入门

    Linux动态链接库编程入门 转:http://blog.csdn.net/yang_rong_yong/article/details/3090212 动态链接库是一种通用的软件组件技术,是多种操作 ...

  3. 【学习笔记】Linux 系统编程入门

    Linux 系统编程入门 静态库与动态库 静态库命名规则 静态库的制作 静态库使用 动态库制作 动态库使用 加载动态库 静态库的优缺点 动态库的优缺点 Makefile 文件命名 工作原理 变量 模式 ...

  4. 一文带你Linux系统编程入门

    文件和文件系统 文件是linux系统中最重要的抽象,大多数情况下你可以把linux系统中的任何东西都理解为文件,很多的交互操作其实都是通过文件的读写来实现的. 文件描述符 在linux内核中,文件是用 ...

  5. linux内核开发入门二(内核KO模块介绍、开发流程以及注意事项)

    linux内核开发入门二(内核KO模块介绍.开发流程以及注意事项) 一.什么是内核模块 内核模块:ko模块(Kernel Object Module)是Linux内核中的可加载模块,它可以动态地向内核 ...

  6. 初探linux内核编程,参数传递以及模块间函数调用

    一.前言 我们一起从3个小例子来体验一下linux内核编程.如下: 1. 内核编程之hello world 2. 模块参数传递 3. 模块间函数调用 二.准备工作 首先,在你的linux系统上面安装l ...

  7. linux内核_Linux驱动编程的本质就是Linux内核编程

    由于Linux驱动编程的本质属于Linux内核编程,因此我们非常有必要熟悉Linux内核以及Linux内核的特点. 这篇文章将会帮助读者打下Linux驱动编程的基础知识. 本篇文章分为如下三个小节进行 ...

  8. 【华为云技术分享】Linux内核编程环境 (1)

    在上一期中,我们介绍了Linux内核的源码结构,这一期我们介绍Linux内核编程环境,首先介绍的是Linux内核的编译方法. 一.Linux内核编译方法 本期中我们以Linux 4.19.94版内核来 ...

  9. Linux内核编程接口函数

    Linux内核编程接口函数 转载请注明出处: http://blog.csdn.net/drivelinux/article/details/8656280 字符设备相关函数 1.alloc_chrd ...

  10. linux内核编程(hello world示例程序)

    linux内核编程(hello world) Linux可加载内核模块是 Linux 内核的最重要创新之一.它们提供了可伸缩的.动态的内核.其它开发者可以不用重新编译整个内核便可以开发内核层的程序,极 ...

最新文章

  1. 关于MYSQL中like 检索汉字问题。
  2. MATLAB中简单的数据库操作
  3. 基于DOS命令打war包
  4. Python常见问题(5):Python扩展与嵌入 Extending/Embedding FAQ
  5. java会了还学什么_java都学哪些内容?学完之后可以做哪些工作?
  6. 1004 成绩排名 (20分)
  7. webpack之font-awesome
  8. MadFS:高性能超算缓存文件系统——助力“鹏城云脑II”获世界IO500排行榜冠军...
  9. 大型网站系统架构实践(一)从简单到复杂
  10. OpenCV-绘制奥运五环(带套接效果)
  11. 使用spring data Querydsl 实现动态查询功能
  12. C#控制BarTender自动打印(方法一)
  13. 初识python评课稿_六年级语文《手指》听课记录评课稿资料
  14. 怎样才能通过c语言二级考试,如何一次就通过全国计算机二级C语言考试,高分技巧四部曲...
  15. NC-SI的简单理解
  16. Mysql数据库优化
  17. ShowWindow
  18. 华为钱包扫码云闪付_华为钱包、云闪付,NFC支付要这样使用!!!-已回复
  19. 安全性的十个永恒定律3
  20. wu-database-lazy-starter(懒人数据库操作-核心增量式更新)

热门文章

  1. 2022-2028年中国差旅管理行业市场全景调查及投资潜力研究报告
  2. Android 自定义带拼音Textview 带音调
  3. 苹果6s强制删除id锁_苹果ID锁安全神话破灭!2分钟就能解锁
  4. 第9节-做网站有哪些收入接入点
  5. IoT平台功能架构图
  6. 第一个python程序:爬虫下载课件
  7. 网络爬虫+数据可视化
  8. 关于Xshell的使用和网络攻防原理
  9. c语言程序如何生成软件,用c语言编写的程序怎么样生成可执行软件。
  10. dosbox运行C语言,DOSBox-DOS模拟器-DOSBox下载 v0.74官方版-完美下载