1 / 4
文档名称:

linux面试题及答案.doc

格式:doc   大小:94KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

linux面试题及答案.doc

上传人:小辰GG 2021/12/17 文件大小:94 KB

下载得到文件列表

linux面试题及答案.doc

相关文档

文档介绍

文档介绍:如何编写一个 LINUX 驱动?
Linux 设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出 它们是属于哪一类设备。
字符设备: 字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱 动程序来实现这种特性。 字符设备驱动程序通常至少实现 open,close,read 和 write 系统调 用。字符终端、串口、鼠标、键盘、摄像头、声卡和显卡等就是典型的字符设备。
块设备:和字符设备类似,块设备也是通过 /dev 目录下的文件系统节点来访问。块设 备上能够容纳文件系统,如: u盘,SD卡,磁盘等。
字符设备和块设备的区别仅仅在于内核内部管理数据的方式, 也就是内核及驱动程序之间的
软件接口,而这些不同对用户来讲是透明的。
查看驱动模块中打印信息应该使用什么命令?如何查看内核中已有的字符设备的信 息?如何查看正在使用的有哪些中断号?
查看驱动模块中打印信息的命令: dmesg
查看字符设备信息可以用 lsmod 和 modprobe , lsmod 可以查看模块的依赖关系, modprobe 在加载模块时会加载其他依赖的模块。
显示当前使用的中断号 cat /proc/interrupt
请简述主设备号和次设备号的用途。如果执行 mknod chartest c 4 64 ,创建 chartest 使用的是那一类设备驱动程序。
主设备号:主设备号标识设备对应的驱动程序。虽然现代的 linux 内核允许多个驱动程 序共享主设备号, 但我们看待的大多数设备仍然按照 “一个主设备对应一个驱动程序” 的原 则组织。
次设备号: 次设备号由内核使用, 用于正确确定设备文件所指的设备。 依赖于驱动程序的编 写方式, 我们可以通过次设备号获得一个指向内核设备的直接指针, 也可将此设备号当作设
备本地数组的索引。
chartest 由驱动程序 4 管理,该文件所指的设备是 64号设备。 (感觉类似于串口终端 或者字符设备终端)。
设备驱动程序中如何注册一个字符设备?分别解释一下它的几个参数的含义。
注册一个字符设备驱动有两种方法:
void cdev_init(struct cdev *cdev, struct file_operations *fops)
该注册函数可以将 cdev 结构嵌入到自己的设备特定的结构中。 cdev 是一个指向结构体 cdev 的指针,而 fops 是指向一个类似于 file_operations 结构(可以是 file_operations 结构,但不限于该结构)的指针 .
int register_chrdev(unsigned int major, const char *namem , struct file)operations *fopen);
该注册函数是早期的注册函数, major是设备的主设备号,name是驱动程序的名称, 而
fops 是默认的 file_operations 结构(这是只限 于 file_operations 结构)。
请简述中断于 DMA的区别。Linux设备驱动程序中,使用哪个函数注册和注销中断处理 程序?
MDA不需CPU参与而中断是需要 CPU参与的。
中断注册函数和中断注销函数 注册中断:
int re