linux驱动高频考点

1、交叉编译器的作用


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

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


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

3、驱动程序分为几类


  • 字符设备驱动
  • 块设备驱动
  • 网络设备驱动

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


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

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


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

6、kmalloc与vmalloc区别


  • 都是用于内核空间申请内存
  • kmalloc能申请较小的内存;vmalloc能申请较大的内存
  • kmalloc保证申请的内存在物理上是连续的;vmalloc保证申请的内存在虚拟地址空间上的连续,在物理上可能不连续

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


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

8、进程中的PID、PPID、PGID、SID各是什么


  • PID是进程ID
  • PPID是父进程ID
  • PGID是进程组ID
  • SID是会话ID

9、/etc/inittab,/etc/fstab,/etc/init.d/rcS 的作用


  • 这三个文件都是Linux系统的配置文件
  • /etc/inittab它定义了在不同的运行级别启动相应的进程或执行相应的操作。在init进程中被解析
  • /etc/fstab它记录磁盘挂载的信息,系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘
  • /etc/init.d/rcS它是一个启动脚本文件,在inittab文件中调用,在系统启动后执行脚本中的命令

10、fork()和vfork()的作用以及区别


  • fork()和vfork()都是创建一个进程
  • fork()子进程拷贝父进程的数据段、代码段;vfork()出来的子进程会共享父进程的代码段和数据段,但是子进程会拥有自己的堆栈,而父进程会暂时被挂起,直到子进程调用exec()或者exit()函数才会恢复
  • fork()父子进程的执行次序不确定;vfork()保证子进程先运行,在调用exec

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式软件面试笔记 文章被收录于专栏

该笔记涵盖嵌入式软件工程师技术面试中的知识点,归纳总结为:C/C++、操作系统、计算机网络、数据结构与算法、linux常用命令等章节。

全部评论
6 咋还付费捏
2 回复 分享
发布于 2023-02-12 02:51 江苏
收藏学习
1 回复 分享
发布于 2023-02-13 11:03 山东
总结得很精妙
1 回复 分享
发布于 2023-02-13 11:18 山东
m
点赞 回复 分享
发布于 2023-02-14 13:28 江苏
做soc fpga的,不懂就问,这些个人觉得是基本常识的算是高频考点么😨
点赞 回复 分享
发布于 2023-04-03 07:43 天津

相关推荐

不愿透露姓名的神秘牛友
11-15 17:49
已编辑
深开鸿 驱动开发(操作系统) (n+5)*12 其他
点赞 评论 收藏
分享
4 51 评论
分享
牛客网
牛客企业服务