ldd3 读书笔记 —— scull 2 运行

本文介绍如何使用scull_load脚本加载内核模块,并通过mknod创建设备文件,以及如何使用scull_init脚本实现相同功能但采用不同写法。文中还介绍了如何通过strace命令观察操作过程。

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

这次不是简单的insmod了,需要使用几个脚本:
scull_load : 首先insmod,然后用mknod在/dev/里面创建一系列的设备文件。
scull_unload:rmmod,然后删除设备文件
scull.init的功能和前面两个差不多,只不过是换了一种写法。

 

创建设备文件的时候需要提供主设备号,它是从/proc/devices里面读出来的。在insmod的时候(alloc_chrdev_region)写到这个文件里,rmmod之后(unregister_chrdev_region)就没有了。

 

./scull_load或者./scull.init start之后,就可以看到/dev/里面建立的设备:
ls -l /dev/scu*  注意其中的设备号。
现在就可以玩玩这些设备了,比如
ls > /dev/scull2  (需要root权限) 然后 cp /dev/scull2 scull2.txt
或者 date > /dev/scull (需要root权限) 然后 cat /dev/scull

用strace命令, 可以看到执行上述命令的过程中的一些细节。


Have fun!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值