This commit is contained in:
zmr961006
2017-04-12 14:50:33 +08:00
parent ea189c318c
commit 3b6387ab59
3 changed files with 6 additions and 6 deletions

View File

@@ -8,4 +8,4 @@
*[内核测试/PROC创建文件](./test_kernel/README.md)
*[竞态与并发与内核锁机制](./conur/README.md)
*[竞态与并发与内核锁机制](./concur/README.md)

View File

@@ -1,4 +1,4 @@
##scull 字符设备驱动程序的设备描述
## scull 字符设备驱动程序的设备描述
字符设备驱动程序是分配一段内存,然后提供对这个设备的管理方式,我们通过它提供的操作来操纵字符驱动设备,本质上是一个我们分配的模拟内存来模拟驱动设备。
@@ -250,9 +250,9 @@ struct file_operations {
这里有一个重要问题:
###如何安全的将数据在用户空间和逻辑空间之间拷贝?
### 如何安全的将数据在用户空间和逻辑空间之间拷贝?
####解决方法:内核提供了安全的拷贝函数:
#### 解决方法:内核提供了安全的拷贝函数:
copy_to_user
copy_from_user

View File

@@ -41,13 +41,13 @@ KERN_DEBUG 用于调试信息
## 创建/PROC 下文件 使用调试
####/proc 系统
#### /proc 系统
1. /proc目录
Linux 内核提供了一种通过 /proc 文件系统在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统它只存在内存当中而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
用户和应用程序可以通过proc得到系统的信息并可以改变内核的某些参数。由于系统的信息如进程是动态改变的所以用户或应用程序读取proc文件时proc文件系统是动态从系统内核读出所需信息并提交的。下面列出的这些文件或子文件夹并不是都是在你的系统中存在这取决于你的内核配置和装载的模块。另外在/proc下还有三个很重要的目录netscsi和sys。 Sys目录是可写的可以通过它来访问或修改内核的参数而net和scsi则依赖于内核配置。例如如果系统不支持scsi则scsi 目录不存在。
除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下以进程的 PID号为目录名它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口是一个link。
####创建一个/proc 下的一个文件
#### 创建一个/proc 下的一个文件
首先,流程图。