文本描述
大疆笔试
blog.csdn/qq_38410730/article/details/82686282
3、14、15
Linux中断处理“下半部”机制
1) 软中断请求(softirq)机制
2) 小任务(tasklet)机制
工作队列机制
简答题
1、Linux驱动连接硬件与应用,根据你对驱动加载的理解,回答如下问题:
(1)insmod和modprobe都可以用来加载驱动模块,请描述这两者的差异。
(2)请给出三种以上Linux驱动模块加载失败的可能原因。
解答:modprobe和insmod类似,都是用来动态加载驱动模块的,区别在于modprobe可以解决load module时的依赖关系,它是通过/lib/modules/#uname -r/modules.dep(.bb)文件来查找依赖关系的;而insmod不能解决依赖问题。
也就是说,如果你确定你要加载的驱动模块不依赖其他驱动模块的话,既可以insmod也可以modprobe,当然insmod可以在任何目录下执行,更方便一些。而如果你要加载的驱动模块还依赖其他ko驱动模块的话,就只能将模块拷贝到上述的特定目录,depmod后再modprobe。
2、设计或开发Linux操作系统的内核时,你会考虑哪些基本的管理模块,并描述其作用。
解答:Linux内核的五大模块:进程调度模块、内存管理模块、文件系统模块、进程间通信模块、网络接口模块。
进程调度模块:用来负责控制进程对CPU 资源的使用。所采取的调度策略是各进程能够公平合理地访问CPU,同时保证内核能及时地执行硬件操作;
内存管理模块:用于确保所有进程能够安全地共享机器主内存区,同时,内存管理模块还支持虚拟内存管理方式,使得Linux 支持进程使用比实际内存空间更多的内存容量。并可以利用文件系统,对暂时不用的内存数据块交换到外部存储设备上去,当需要时再交换回来;
文件系统模块:用于支持对外部设备的驱动和存储。虚拟文件系统模块通过向所有的外部存储设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节。从而提供并支持与其它操作系统兼容的多种文件系统格式;
进程间通信模块:用于支持多种进程间的信息交换方式;
网络接口模块:提供对多种网络通信标准的访问并支持许多网络硬件。
blog.csdn/qq_38410730/article/details/82718656?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159859134319724835846383%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159859134319724835846383&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~rank_business_v1-1-82718656.ecpm_v3_rank_business_v1&utm_term=%E6%B5%B7%E5%BA%B7%E5%A8%81%E8%A7%86%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%AC%94%E8%AF%95&spm=1018.2118.3001.4187
12、18
cache是一种高速缓冲寄存器,是为解决CPU和主存之间速度不匹配而采用的一项重要技术。主存与cache的地址映射方式有全相联方式、直接方式和组相联方式三种:
直接映射(direct-mapping):将一