0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux驱动开发知识点

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-09-26 16:30 次阅读

1、驱动程序分为几类?

字符设备驱动

块设备驱动

网络设备驱动

2、字符设备驱动需要实现的接口通常有哪些

open、close、read、write、ioctl等接口。

3、主设备号与次设备号的作用

主设备号和次设备号是用来标识系统中的设备的,主设备号用来标识设备的类型,次设备号用来标识具体的设备,以便系统能够识别出具体的设备。

4、交叉编译器的作用

在一个平台上生成另一个平台的可执行程序。例如,x86平台上生成arm平台的可执行程序。通常嵌入式系统是基于arm平台,由于arm平台的算力相对不高,编译大型程序慢,所以使用交叉编译器在x86平台进行编译,大大减少了编译时间。

5、硬链接和软链接的区别

软链接相当与window系统的快捷方式,软链接文件存放的内容是源文件的绝对路径。删除源文件会使软链接失效。

硬链接是指向文件或目录的另一个名称,它们与源文件或目录共享相同的inode,但具有不同的名称。删除源文件不会影响到硬链接文件。

6、Linux内核的组成部分?

进程调度(SCHED)、进程间通信(IPC)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)

7、Linux内核有哪些同步方式?

原子操作、信号量、自旋锁、读写锁、顺序锁等。

8、用户空间和内核空间的通信方式有哪些?

系统调用、信号、procfs、mmap、netlink等

9、BootLoader、Linux内核、根文件系统的关系?

系统一上电,就执行BootLoader来初始化处理器及外设,将系统的软硬件环境带到一个合适的状态。

然后将Linux内核、根文件系统从非易失性存储器读取到内存中并执行Linux内核。

Linux内核完成初始化之后就挂载某个文件系统作为根文件系统。

10、linux内核中EXPORT_SYMBOL宏和EXPORT_SYMBOL_GPL宏的作用

EXPORT_SYMBOL宏用于导出内核模块中的全局变量和函数,使其可以被其他模块调用。

EXPORT_SYMBOL_GPL宏用于导出内核模块中的全局变量和函数,但只能被GPL授权的模块调用。

11、container_of(ptr, type, member)的作用

已知结构体type的成员member的地址ptr,求解结构体type的起始地址

12、kmalloc与vmalloc区别

都是用于内核空间申请内存

kmalloc能申请较小的内存;vmalloc能申请较大的内存

kmalloc保证申请的内存在物理上是连续的;vmalloc保证申请的内存在虚拟地址空间上的连续,在物理上可能不连续

13、内存管理单元MMU的作用?

地址映射。

内存分配和回收。

内存保护。

内存扩充。

14、简述MMU将VA转为PA的过程

以三级页表为例,MMU通过访问页表基址寄存器,得到一级页表PGD的基地址,再结合虚拟地址中的PGD index找到了下一级页表PTE的基地址;得到了PTE的基址,再结合虚拟地址中的PTE index找到PFN,然后再和VA相加得到物理地址。

15、操作系统的内存分配一般有哪几种方式,各有什么优缺点?

分页存储管理:优点是不需要连续的内存空间,且内存利用率高(只有很小的页内碎片);缺点是不易于实现内存共享与保护。

分段存储管理:优点是易于实现段内存共享和保护;缺点是每段都需要连续的内存空间,且内存利用率较低(会产生外部碎片)。

段页式存储管理:优点是不需要连续的内存空间,内存利用率高(只有很小的页内碎片),且易于实现段内存共享和保护;缺点是管理软件复杂性较高,需要的硬件以及占用的内存也有所增加,使得执行速度下降。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动
    +关注

    关注

    12

    文章

    1818

    浏览量

    85104
  • Linux
    +关注

    关注

    87

    文章

    11204

    浏览量

    208701
  • 开发
    +关注

    关注

    0

    文章

    364

    浏览量

    40786
收藏 人收藏

    评论

    相关推荐

    Linux文件系统知识点详解

    今天浩道跟大家分享关于Linux文件及目录属性知识点的硬核干货,可以说只要你认真看完这篇文章内容,其相关知识点都不在话下,感兴趣又想快速掌握的小伙伴们,可以收藏起来随时查看!
    的头像 发表于 11-02 09:29 621次阅读
    <b class='flag-5'>Linux</b>文件系统<b class='flag-5'>知识点</b>详解

    【信盈达】C语言知识点的总结

    :模块化编程、编程规范、编程优化。--------------------------------------------知识点10:结构体知识点11:链表和文件(LINUX)知识点1
    发表于 10-08 14:41

    linux常用的命令知识点

    Linux基础命令的总结linux常用的命令知识点
    发表于 02-02 06:31

    嵌入式Linux内存管理知识点

    这个内存管理的知识点还真的需要我们专门的去理解一下,今天大家一起来学习学习嵌入式Linux内存管理的知识
    发表于 03-04 06:22

    萌新求助,求大佬分享ARM的嵌入式Linux开发知识点

    萌新求助,求大佬分享ARM的嵌入式Linux开发知识点
    发表于 11-05 08:01

    嵌入式Linux驱动基础知识点汇总,错过绝对后悔

    嵌入式Linux驱动基础知识点汇总,错过绝对后悔
    发表于 12-03 06:57

    Linux平台手册的知识点汇总,绝对实用

    Linux平台手册的知识点汇总,绝对实用
    发表于 03-07 06:35

    Linux 源代码阅读知识点及要求

    Linux 源代码阅读知识点及要求 用户地址空间管理[要求](1)***理解内核中维护的代表用户地址空间的数据结构(2)***掌握用户地址空间的扩展和页故
    发表于 02-09 15:42 18次下载

    PWM知识点详解

    PWM知识点
    发表于 03-16 08:00 44次下载

    Linux教程之Linux的网络应用详细知识点资料免费下载

    本文档的主要内容详细介绍的是Linux教程之Linux的网络应用详细知识点资料免费下载主要内容包括了:1 TCP/IP概述,2 Linux与Windows的互访—Samba,3
    发表于 11-22 17:06 14次下载
    <b class='flag-5'>Linux</b>教程之<b class='flag-5'>Linux</b>的网络应用详细<b class='flag-5'>知识点</b>资料免费下载

    linux开发需要学习哪些知识

    linux开发需要学什么?其实Linux开发包含的知识点挺多的。学会了这些东西之后,就可以做很多事情。下面本篇文章给大家归纳一下,希望对大家
    发表于 05-29 09:23 8084次阅读

    嵌入式知识点总结

    嵌入式知识点总结(arm嵌入式开发led过程)-嵌入式知识点总结                    
    发表于 07-30 14:20 23次下载
    嵌入式<b class='flag-5'>知识点</b>总结

    【嵌入式】基于ARM的嵌入式Linux开发总结

    前言嵌入式知识点复习一嵌入式知识点复习二 --体系结构嵌入式知识点复习三 --ARM-LINUX嵌入式开发环境嵌入式
    发表于 10-19 18:32 26次下载
    【嵌入式】基于ARM的嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>开发</b>总结

    Linux中多线程编程的知识点

    Hello、Hello大家好,我是木荣,今天我们继续来聊一聊Linux中多线程编程中的重要知识点,详细谈谈多线程中同步和互斥机制。
    发表于 04-26 17:27 582次阅读
    <b class='flag-5'>Linux</b>中多线程编程的<b class='flag-5'>知识点</b>

    数字电路知识点总结

    本文整理了数字电路课程中的相关基本的知识点和较为重要的知识点,用于求职的数电部分的知识准备,差缺补漏。
    的头像 发表于 05-30 15:07 4590次阅读
    数字电路<b class='flag-5'>知识点</b>总结