linux驱动期中试题
Linux驱动试题(参考答案)

Linux驱动试题笔试题:1参考答案:字符设备是指存取时没有缓存的设备,大多数字符设备只能顺序读写。
比如鼠标、键盘、声卡。
块设备的读写则都有缓存来支持,只能以块为单位进行读写,并且块设备必须能够随机存取(random access),即不管块处于设备的什么地方都可以对它进行读写,字符设备则没有这个要求。
比如硬盘、U盘、SD卡。
2、参考答案:查看驱动中的打印信息用dmesg命令。
查看内核中字符设备和块设备信息可以使用命令cat /proc/devices。
查看正在使用的中断号可以使用命令cat /proc/interrupts。
3、参考答案:Linux内核是一种单一大内核,如果没有模块机制,在调试阶段,我们需要修改内核中的某个驱动,必须把内核整个编译一遍,还要重新启动机器,这样操作会非常耗时。
有了模块,我们只需要对我们关心的驱动以模块方式单独编译,无须编译整个内核,也不需要重启机器。
4、参考答案:copy_to_user实现从内核空间向用户空间拷贝数据的功能。
copy_from_user实现从用户空间向内核空间拷贝数据的功能。
分别用于实现驱动中的read 和write函数。
如果交换数据都发生在内核空间中,可以直接使用内核定义的memcpy函数。
5、参考答案:主设备号用于区别不同的驱动程序,次设备号用于区别使用同一个驱动程序的同一类设备中的不同设备。
chartest使用和ttyS0一样的驱动程序。
6、参考答案:register_chrdev(MAJOR_NUMBER, DRIVER_NAME, &xxx_fops)该函数有三个参数,分别是主设备号,驱动名字和file_operations结构的指针7、参考答案:中断是一段程序,当外部设备引起中断时由CPU执行。
DMA是直接内存访问,用于外设与主存储器之间快速的交换数据,利用DMA,在交换数据时可以不通过CPU,提高了CPU的利用率。
注册中断使用request_irq(IRQ_NUMBER, (*handler), IRQ_FLAGS, DRIVER_NAME, dev_id)。
linux期中试卷

linux期中试卷1.在安装了linux的计算机上,通过命令uname-r可以查看内核的版本号,例如下面的版本号:3.16.0-24-generic,以下说法正确的是(2.0分)a、主版本号是3,次版本号是16,修订次数为24,编译次数为0b、主版本号是16,次版本号是3,修订次数为24,编译次数为0c、主版本号是3,次版本号是16,修订次数为0,编译次数为24d、主版本号是16,次版本号是3,修订次数为0,编译次数为242.在使用匿名登录ftp时,用户名为()ersb、anonymousc、rootd、guest3.哪个目录放置用户密码信息()a、/bootb、/etcc、/vard、/dev4.主引导扇区位于硬盘的()柱面,()磁头,()扇区a、000b、001c、100d、0105./dev/sdb5在linux中表示什么()a、第1块ide硬盘上的第5个逻辑分区b、第2块ide硬盘上的第1个主分区c、第2块sata硬盘上的第5个逻辑分区d、第2块scsi 硬盘上的第1个主分区6.以下分区格式中linux默认使用的是()a、fat32b、ext3c、fatd、ntfs7.vi中哪条命令就是不留存强制性选择退出()a、wqb、wq!c、q!d、quit8.哪个命令可以将普通用户切换成超级用户a、superb、passwdc、tard、su9.假设文件filea的符号链接为fileb,那么删掉filea后,下面的描述正确的是()a、fileb也随之被删除b、fileb仍存有,但是属违宪文件c、因为fileb未被删除,所以filea会被系统自动重新建立d、fileb会随filea的删除而被系统自动删除怎样显示当前目录10.inux操作系统是一种()a、单用户单进程系统b、多用户单进程系统c、单用户多进程系统d、多用户多进程系统11.linux中修正文件权限的命令就是()。
a、chownb、chmodc、changed、chgrp12.下面哪个linux命令可以一次显示一页内容()a、pauseb、catc、mored、grep13.除非特别选定,cp假设必须拷贝的文件在下面哪个目录下()a、用户目录b、当前目录c、root目录d、home目录14.什么命令解压缩tar文件()a、tar-xzvffilename.tgzb、tar-czvffilename.tgzc、tar-tzvffilename.tgzd、tar-dzvffilename.tgz15.在linux中修改lisi用户权限,使其具有可读可写可执行,而用户zh和组zh内所有用户不具有任何权限,所赋数字权限为()-rw-rw-r--1zhzh0feb2517:54linuxa、007b、755c、777d、64416.()命令可实现重新启动linux操作系统。
linux期中复习题库

linux期中复习题库# Linux期中复习题库一、Linux基础知识1. Linux操作系统的特点是什么?2. Linux的内核版本号是如何命名的?3. 什么是Linux发行版?列举几个常见的Linux发行版。
4. Linux与Unix的主要区别是什么?5. 解释什么是开源软件和自由软件。
6. Linux的文件系统结构是怎样的?7. 什么是根目录(/),它的作用是什么?8. 什么是Linux的权限系统?列举常见的权限设置。
9. 什么是超级用户(root)?它有什么权限?10. 如何查看Linux系统的版本信息?二、Linux命令行操作1. 如何在Linux中查看当前路径?2. 如何查看当前目录下的文件和文件夹?3. 如何查看文件内容?列举几种不同的查看方式。
4. 如何创建、复制、移动和删除文件或文件夹?5. 如何使用命令行搜索文件?6. 如何使用管道(pipe)和重定向(redirection)?7. 什么是环境变量?如何查看和设置环境变量?8. 如何使用命令行压缩和解压文件?9. 如何使用命令行挂载和卸载文件系统?10. 如何使用命令行创建软链接和硬链接?三、Linux文本处理1. 什么是文本文件?Linux中如何区分文本文件和二进制文件?2. 如何使用`grep`命令搜索文本?3. 如何使用`sed`命令进行文本替换?4. 如何使用`awk`命令处理文本文件?5. 如何使用`sort`命令对文本文件进行排序?6. 如何使用`uniq`命令去除重复行?7. 如何使用`cut`命令提取文本文件中的特定列?8. 如何使用`tr`命令替换或删除字符?9. 如何使用`tail`和`head`命令查看文件的开始或结束部分?10. 如何使用`diff`命令比较两个文件的差异?四、Linux系统管理1. 如何查看系统的运行状态和资源使用情况?2. 如何查看和杀死进程?3. 如何使用crontab设置定时任务?4. 如何使用top命令监控系统性能?5. 如何使用ps命令查看进程状态?6. 如何使用kill命令发送信号给进程?7. 如何查看和设置系统的日期和时间?8. 如何使用系统日志进行故障排查?9. 如何使用iptables进行网络安全管理?10. 如何配置网络接口和路由?五、Linux脚本编程1. 什么是Shell脚本?它有什么用途?2. 如何编写一个简单的Shell脚本?3. Shell脚本中变量的定义和使用方式是什么?4. 如何使用条件语句和循环语句?5. 如何使用函数编写模块化的Shell脚本?6. 如何使用命令行参数传递数据给脚本?7. 如何使用正则表达式在Shell脚本中进行模式匹配?8. 如何使用trap命令处理信号?9. 如何使用exit命令退出脚本并返回状态码?10. 如何使用source命令执行脚本文件?六、Linux网络基础1. 什么是IP地址?什么是MAC地址?2. 什么是子网掩码?如何计算子网掩码?3. 什么是DNS?它的作用是什么?4. 什么是TCP/IP协议?它由哪些层次组成?5. 什么是端口号?它的作用是什么?6. 什么是网络接口卡(NIC)?7. 如何使用ping命令测试网络连通性?8. 如何使用ifconfig命令配置网络接口?9. 什么是SSH?如何使用SSH进行远程登录?10. 什么是网络服务?列举几个常见的网络服务。
初级驱动试题

初级驱动试题选择题(每题4分,共40分,包括单选和多选,多选、少选均不得分)1. Linux系统中将设备进行分类管理,下列设备中哪些属于字符设备,哪些属于块设备?[A] 键盘[B] 硬盘[C] 闪存设备[D] 帧缓存设备[E] 网卡答案:字符设备(A、D),块设备(B、C)2. Linux系统中,内核以什么区分设备?[A] 设备节点名[B] 设备类名称[C] 设备名称[D] 设备号答案:D3. Linux系统中设备节点可以创建在哪里?[A] /dev目录下[B] 根目录下[C] /tmp目录下[D] 以上都可以答案:D4. Linux驱动程序运行在哪里?[A] 内核空间[B] 用户空间[C] 内核空间和用户空间答案:A5. Linux系统中设备驱动程序是以模块形式组的,编译驱动时可以用哪种方式编译?[A] 静态编译进内核[B] 动态编译[C] 编译成可执行文件答案:A、B6. Linux 2.6.35内核中,设备的主设备号用多少位来表示,次设备号用多少位来表示?[A] 8[B] 12[C] 16[D] 20答案:主设备号(B),次设备号(D)7. Linux系统中哪些种类的设备有设备节点?[A] 定时器[B] 字符设备[C] 块设备[D] 网络设备答案:B、C8. 通常情况下,kmalloc函数能分配的最大内存是多少?[A] 4K[B] 64K[C] 128K[D] 4M答案:C9. 能保证物理空间上连续的内存分配函数是哪些?[A] __get_free_pages[B] kmalloc[C] vmalloc[D] malloc答案:A、B10. Linux系统中通过add_timer添加的timer是什么类型的?[A] 一次的[B] 循环的[C] 以上两种都可以答案:A简答题(每题6分,共60分)1. Linux系统中以模块方式组织设备驱动程序,请列举在一个模块程序中必不可少的组成部分。
(可以写一个Hello world模块的程序)答案:```cinclude <linux/init.h>include <linux/kernel.h>include <linux/module.h>static int __init fsmod_init(void){printk(KERN_INFO "Hello, Farsight!\n");return 0;}static void __exit fsmod_exit(void){printk(KERN_INFO "Goodbye, Farsight!\n");}module_init(fsmod_init);module_exit(fsmod_exit);MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("Kevin Jiang<>");MODULE_DESCRIPTION("This is an example for linux driver module");```2. 请从定义、性质、操作方式等方面对比说明字符设备和块设备。
Linux考试试题100道(附答案)

Linux考试试题100道(附答案)1、Linux系统中,用户文件描述符0 表示______。
A.标准输入设备文件描述符B.标准输出设备文件描述符B.管道文件描述符 D.标准错误输出设备文件描述符答案:A2、以长格式列目录时,若文件test的权限描述为:drwxrw-r–,则文件test的类型及文件主的权限是______。
A.目录文件、读写执行B.目录文件、读写C.普通文件、读写D.普通文件、读答案:A3、当字符串用单引号(’’)括起来时,SHELL将______。
A.解释引号内的特殊字符B.执行引号中的命令C.不解释引号内的特殊字符D.结束进程答案:C4、/etc/shadow文件中存放______。
A.用户账号基本信息B.用户口令的加密信息C.用户组信息D.文件系统信息答案:B5、若当前目录为/home,命令ls–l 将显示home 目录下的()。
A.所有文件B.所有隐含文件C.所有非隐含文件D.文件的具体信息答案:D6、为卸载一个软件包,应使用_____。
A.rpm -iB.rpm -eC.rpm -qD.rpm -V答案:B7、下面关于文件“/etc/sysconfig/network-scripts/ifcfg-eth0”的描述哪个是正确的?( )。
A.它是一个系统脚本文件B.它是可执行文件C.它存放本机的名字D.它指定本机eth0的IP地址答案:D8、如何快速切换到用户John的主目录下?( )A.cd @JohnB.cd #JohnC.cd &JohnD.cd ~John答案:D9、启动DNS服务的守护进程()A. httpd startB.httpd stopC. named startD. named stop答案:C10、Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令()A.cat B. more C. less D. menu答案:C11、在LINUX中,要查看文件内容,可使用()命令。
Linux期中练习及参考答案

Linux期中练习题及参考答案一、选择1、下列()不属于Linux常用的shell:A、bashB、shC、ashD、bach2、在添加用户的时候可以使用()参数来指定用户的默认shell:A、-dB、-sC、-cD、-g3、更改用户密码使用()命令:A、useraddB、passwdC、groupaddD、finger4、使用rpm安装一个软件的正确命令是():A、rpm -eB、rpm -iC、rpm -vD、rpm -U5、观察系统当前进程的运行情况的命令是():A、freeB、dmesgC、topD、last6、下列()环境变量表示当前目录:A、PATHB、HOMEC、PWDD、SHELL7、删除用户的时候可以使用()参数,把用户的主目录也一起删除:A、-dB、-rC、-cD、-g8、添加用户组使用()命令:A、groupaddB、newgrpC、useraddD、userdel9、卸载一个rpm包的命令是():A、rpm -eB、rpm -iC、rpm -UD、rpm -v10、下面哪个命令可以显示文本文件的内容( ):A、moreB、lnC、manD、type11、下面哪个目录存放用户密码信息() :A、/bootB、/etcC、/varD、/dev12、下面哪个命令可以分页显示大文本文件( ):A、cpB、catC、moreD、type13、默认情况下管理员创建一个用户,就会在()目录下创建一个用户主目录:A、/usrB、/homeC、/rootD、/etc14、为了将当前目录下的归档文件myftp.tgz解压缩到/tmp目录下,我们可以使用:A. tar xvzf myftp.tgz -C /tmpB. tar xvzf myftp.tgz -R /tmpC. tar vzf myftp.tgz -X /tmpD. tar xvzf myftp.tgz /tmp15、为了保证系统的安全,现在的linux系统一般将/etc/passwd密码文件加密后,保存为____ 文件。
linux考试试题和答案.doc

Linux考试试题及答案一、选择题1、在/etc/fstab文件中指定的文件系统加载参数中,那个参数一般用于CD-ROM等移动设备(D )A.defau ItsB.swC.rw 和roD.noauto2、Linux文件权限一共10位长度,分成四段,第三段表示的内容是(C)A.文件类型B.文件所有者的权限C.文件所有者所在组的权限D.其他用户的权限3、在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是(D)A.-mB.-dC.-fD.-p4、一台主机要实现通过局域网与另一个局域网通信,需要做的工作是(C)A.配置域名服务器B.定义一条本机指向所在网络的路由C.定义一条本机指向所在网络网关的路由D.定义一条本机指向目标网络网关的路由5、下列提法中,不属于ifconfig命令作用范围的是(D)A.配置本地回环地址B.配置网卡的IP地址C.激活网络适配器D.加载网卡到内核中6、下列关于链接描述,错误的是(B)A.硬链接就是让链接文件的i节点号指向被链接文件的i节点B.硬链接和符号连接都是产生一个新的i节点C.链接分为硬链接和符号链接D.硬连接不能链接目录文件7、下列文件中,包含了主机DNS配置信息的文件是(C )A./etc/host. confB./etc/hostsC./etc/resolv. confD./etc/networks8、那个命令可以从文本文件的每一行中截取指定内容的数据(D)A.cpB.ddC.fmtD.cut9、L inux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用(C)命令。
A.catB.moreC.lessD.menu10、对名为fido的文件用chmod 551 fido进行了修改,则它的许可权是(D)A.-rwxr—xr—xB.-rwxr-一r一一C.-r——r——r——D.-r—xr—x—x11 >文件exerl的访问权限为rw~r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是(A)A.chmod a+x g+w exerlB.chmod 765 exerlC.chmod o+x exerlD.chmod g+w exerl12、有关归档和压缩命令,下面描述正确的是(C)A.用uncompress命令解压缩由compress命令生成的后缀为.zip的压缩文件B.unzip命令和gzip命令可以解压缩相同类型的文件C.tar归档且压缩的文件可以由gzip命令解压缩D.tar命令归档后的文件也是一种压缩文件13、下列那一项不是进程和程序的区别(B)A.程序是一组有序的静态指令,进程是一次程序的执行过程B.程序只能在前台运行,而进程可以在前台或后台运行C.程序可以长期保存,进程是暂时的D.程序没有状态,而进程是有状态的14、下列关于/etc/fstab文件描述,正确的是(D)A.fstab文件只能描述属于linux的文件系统B.CD_ROM和软盘必须是自动加载的C.fstab文件中描述的文件系统不能被卸载D.启动时按fstab文件描述内容加载文件系统15、如果想配置一台匿名ftp服务器,应修改那个文件(C)A./etc/gatewayB./etc/ftpserversC./etc/ftpusersD./etc/inetd. conf16、关于进程调度命令,那一项是不正确的(B)A.当日晚11点执行clear命令,使用at命令:at 23: 00 today clearB.每年1月1日早上6点执行date命令,使用at命令:at 6am Jan 1 dateC.每日晚11点执行date命令,crontab文件中应为:0 23 * dateD.每小时执行一次clear命令,crontab文件中应为:0 */1 * clear17、可以完成主机名与IP地址的正向解析和反向解析任务的命令是(A)A.nslookupB.arpC.ifconfigD.dnslook18、将光盘/dev/hdc卸载的命令是(C)A.umount/dev/hdcB.unmount/dev/hdcC.umount/mnt/cdrom /dev/hdcD.unmount/mnt/cdrom /dev/hdc19、用ftp进行文件传输时,有两种模式(C)E.Word 和binaryF.txt 和Word DocumentG.ASCII 和binaryH.ASCII 和Rich Text Format20、crontab文件由六个域组成,每个域之间用空格分割,其排列如下⑻I.MIN HOUR DAY MONTH YEAR COMMANDJ.MIN HOUR DAY MONTH DAYOFWEEK COMMANDMAND HOUR DAY MONTH DAYOFWEEKMAND YEAR MONTH DAY HOUR MIN二、填空题1.在Linux系统中,以文件方式访问设备。
linux驱动面试题

linux驱动面试题Linux驱动是指在Linux操作系统中,用于控制与硬件之间的交互和通信的软件模块。
在Linux的工作环境中,驱动程序起着至关重要的作用。
如果你准备参加Linux驱动的面试,以下是一些常见的Linux驱动面试题,希望可以对你有所帮助。
一、简述Linux驱动的作用和功能。
Linux驱动是一种软件模块,用来控制硬件设备与操作系统之间的通信和交互。
它负责将输入/输出请求传递给硬件设备,并处理来自硬件设备的中断和事件。
Linux驱动的功能包括设备初始化和配置、数据传输和处理以及错误处理等。
二、请简要介绍Linux驱动程序的加载过程。
当系统启动时,Linux内核首先会加载核心模块和驱动程序模块。
驱动程序模块是以目标硬件设备为基础的,它们包含了与设备通信所需的函数和数据结构。
一般情况下,系统会根据硬件设备信息自动加载对应的驱动程序模块。
加载驱动程序模块需要通过insmod或modprobe命令进行,这些命令可以在启动时自动执行。
三、请简述Linux驱动程序的实现方式。
Linux驱动程序的实现方式包括内核空间驱动和用户空间驱动。
内核空间驱动是指驱动程序运行在内核空间,直接与硬件设备进行交互。
用户空间驱动是指驱动程序运行在用户空间,通过系统调用和内核模块实现与硬件设备的通信。
内核空间驱动的优势是性能更好,但需要对内核进行编译和加载,而用户空间驱动的优势是开发更加容易,但性能会稍差。
四、请介绍Linux驱动程序中常用的数据结构和函数。
在Linux驱动程序中,常用的数据结构有file结构体、inode结构体和cdev结构体等。
file结构体用于表示一个打开的设备文件,可以通过它传递与设备相关的信息。
inode结构体用于表示一个文件的元数据信息,包括文件的权限、大小和创建时间等。
cdev结构体用于表示一个字符设备,包含了设备文件的操作函数和设备号等信息。
常用的函数包括register_chrdev、unregister_chrdev、request_irq和release_irq等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux设备驱动程序设计期中考试试题
一、填空题:(总20 分,每小题 2 分)
1、在linux系统中,以方式访问设备。
2、在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是。
3、gcc的编译可分为__ __、编译、汇编和链接等四个阶段。
4、卸载Linux内核模块使用命令___ ___。
5、setenv命令的功能是___ ___。
6、Linux文件的链接可分为符号链接和___ ___两种。
7、VI编辑器有三种工作模式:命令模式、和末行模式。
8、Linux操作系统的系统管理员(也就是超级用户)帐号是。
9、嵌入式linux系统中,设备类型分为字符设备、块设备和等三种。
10、嵌入式Linux系统从软件的角度看通常可以分为四个层次:引导加载程序、
__ _、文件系统、用户应用程序。
二、判断题:(总20 分,每小题2 分)
1.()Linux系统修改用户密码使用的命令是passwd。
2.()各种Linux操作系统的实时性差,不适合于在工业控制领域使用。
3.()设备驱动程序的编写应该更多的注重“策略”应用,少注重“机制”
的实现。
4.()Linux允许内核以NFS的形式连接根文件系统。
5.()触摸屏是一种输入设备。
6.()Nand Flash的特点是应用程序可以直接在闪存中运行,不需要把代码
读到系统RAM中。
7.()根文件系统所在的分区越大约好,因为根分区越大,Linux启动速度
越快。
8.()Linux系统中的目录可以看作是一种特殊的文件。
9.()/home/src目录存放着Linux的源代码。
10.()chmod命令可用来修改处理器的运行模式。
三、简答题(40分,每题20分)
1、什么是BootLoader?主要有几种工作模式及主要功能是什么?(20)
2、Linux 平台设备驱动模型?
四、应用题(20分)
1、该程序为字符设备驱动,注释说明带星号部分
01 #include <asm/irq.h>
02 #include <asm/io.h>
03 static struct input_dev *button_dev /* */
04 static irqreturn_t button_interrupt(int irq, void *dummy) /* */
05 {
06 input_report_key(button_dev, BTN_0, inb(BUTTON_PORT) & 1); /* */
07 input_sync(button_dev); /* */
08 return IRQ_HANDLED;
09 }
10 static int __init button_init(void) /* */
11 {
12 int error;
13 if (request_irq(BUTTON_IRQ, button_interrupt, 0, "button", NULL)) /* */
14 {
15 /* */
16 printk(KERN_ERR "button.c: Can't allocate irq %d\n", button_ irq);
17 return -EBUSY;
18 }
19 button_dev = input_allocate_device(); /* */
20 if (!button_dev) /* */
21 {
22 printk(KERN_ERR "button.c: Not enough memory\n");
23 error = -ENOMEM;
24 goto err_free_irq;
25 }
26 button_dev->evbit[0] = BIT_MASK(EV_KEY); /* */
27 button_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
28 error =input_register_device(button_dev); /* */
29 if (error)
30 {
31 printk(KERN_ERR "button.c: Failed to registerdevice\n");
32 goto err_free_dev;
33 }
34 return 0;
35 err_free_dev: /* */
36 input_free_device(button_dev);
37 err_free_irq:
38 free_irq(BUTTON_IRQ, button_interrupt);
39 return error;
40 }
41 static void __exit button_exit(void) /* */
42 {
43 input_unregister_device(button_dev); /* */
44 free_irq(BUTTON_IRQ, button_interrupt); /* */
45 }
46 module_init(button_init);
47 module_exit(button_exit);。