小编Yog*_*R.L的帖子

Linux设备驱动程序中的静态函数

为什么大多数设备驱动程序中的每个功能都是静态的?由于静态函数在文件范围之外不可见.那么,这些驱动程序函数如何被用户空间应用程序调用?

c static linux-device-driver linux-kernel static-functions

14
推荐指数
2
解决办法
5944
查看次数

设备驱动程序中主要和次要数字的作用

我正在学习Linux设备驱动程序并且卡在主要的次要数字上.到目前为止我所拥有的是:

  • 可以通过文件系统中的名称访问设备.这些名称称为特殊文件或设备文件或文件系统的inode.

  • 并且每个设备文件与捆绑在一个dev_t类型中的MAJOR和MINOR号相关联.

  • 这些数字由功能分配给设备 register_chrdev_region

有些问题令我不安......

  1. 当我们初始化设备时,fops结构是否链接到f_ops设备文件的文件结构字段cdev_init(&c_dev, &fops);
  2. 如何调用open("/dev/mydev", O_RONLY);实际调用open() 驱动程序的功能.这里是否有数字来查找设备驱动程序的实际写入方法,如果是,如何?
  3. 数字,major用于标识设备驱动程序和次要设备文件.当我们对设备文件open() read() write()等执行操作时,这个数字的实际作用是什么?

linux file-io linux-device-driver linux-kernel

7
推荐指数
1
解决办法
5960
查看次数

open如何适用于普通文件和设备驱动程序

目前,我正在学习Linux设备驱动程序.并坚持打开设备文件的工作原理?

到目前为止我所得到的...考虑一个打开普通文件的简单代码..

#incldue<stdio.h>
int main() {
   FILE fp;
   char buffer[20];
   fp = fopen(/home/yoggi/foo.txt, "r");
   fread(buffer, 5, 1, fp);
}
Run Code Online (Sandbox Code Playgroud)

在上面的程序中,fopen(),c-library函数是系统调用open()的包装函数,该实体在VFS层函数中调用sys_open()或file_open().由于linux支持多个文件系统,因此虚拟文件系统将控件转移到实际的文件系统处理程序,以打开该文件.

1) How does virtual file system(VFS) get to know on which file system the 
   underline file resides?
2) How does it then calls the file_open or open function of that particular
   filesystem to open file.
Run Code Online (Sandbox Code Playgroud)

如果设备驱动程序发生类似的事情.假设一个简单的设备驱动程序.

#include <linux/module.h>
// othher includes... 
static dev_t first; // Global variable for the first device number 
static struct …
Run Code Online (Sandbox Code Playgroud)

filesystems operating-system system-calls linux-device-driver linux-kernel

6
推荐指数
1
解决办法
8317
查看次数

我应该在二进制数据类型列mysql上使用哪个索引

我正在编写一个简单的工具来检查重复的文件(即具有相同数据的文件).机制是使用sha-512算法为每个文件生成哈希值,然后将这些哈希值存储在MYSQL数据库中.我在二进制(64)唯一非空列中存储哈希值.每行都有一个唯一的二进制哈希值,用于检查文件是否重复.

- 我的问题是 -

  1. 我可以在二进制列上使用索引,我的默认表排序规则是latin1 - 默认排序规则吗?

  2. 为了获得高性能,我应该使用哪种索引机制Btree或Hash?我需要每秒更新或添加100行.

  3. 我还应该注意哪些其他方面才能获得最佳性能?

mysql indexing collation b-tree-index

4
推荐指数
1
解决办法
4570
查看次数