初识Linux内核-和CMOS打电话

用到的命令

命令作用
insmodinstall module
rmmodremove module
dmesgdebug print message
lsmodlist module
oddump files in octal,默认十进制读目标,-x 16进制

用上节编写的LKM-刘姥姥进行试验

加载编译LKM:
sudo insmod llaolao.ko
该命令需要superuser权限。

执行dmesg打印内核日志,如下图:

32bit系统大于e000000;属于内核地址。

lsmod一下我们的刘姥姥已经临时驻扎在系统内核了:

sudo rmmod llaolao

虚拟文件系统:

/sys/module/llaolao/section/

设备驱动模型

LKM方式

bus and core layers

Linux Device Model(LDM)

即插即用

内核态
用户态支持即插即用:udevd

规则匹配:用户态和内核态之间位于:

/etc/udev/rules.d

注册设备属性

显示某设备的详细信息:

bash>udevinfo -a -p /sys/block/sr0

Kobjects-内核对象
在 include/linux/kobject.h

虚拟文件系统:

/dev文件系统

bash>ls -l/dev

延迟任务执行

windows上叫dpc,Linux叫Tasklets
可以让中断快速结束。

常用头文件:慢慢熟悉吧
常用函数:慢慢熟悉吧

传输类型分为:

  • 字符设备(键盘……)
  • -块设备(硬盘……)

例如字符设备需要:

  • init()注册
  • open,read,ioctl,llseek.
  • 中断处理函数

需要处理的数据结构:

  • cdev
  • file_operations:很多回调函数
  • 文件
举例:

System CMOS
通过端口(dig)
70索引
71读写

分类组成
经典PC结构南桥和北桥
典型SOC架构(手机上)串行总线

cd ~到达工作目录

内核模块相关函数:
  • copy_to_user()
  • copy_from_user()

访问用户态内存,防崩溃。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值