初识Linux内核-和CMOS打电话

来源:互联网 发布:pop3使用的端口号 编辑:程序博客网 时间:2024/06/05 21:45

用到的命令

命令 作用 insmod install module rmmod remove module dmesg debug print message lsmod list module od dump 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