几道简单的Linux驱动相关面试题,你看你会几题?

news2024/11/19 10:30:53

一、Linux基础

1、任意3种网络操作的Linux命令,并说明他们的含义

1. ifconfig 命令

ifconfig 用于查看和配置 Linux 系统的网络接口。
查看所有网络接口及其状态:ifconfig -a 。
使用 up 和 down 命令启动或停止某个接口:ifconfig eth0 up 和 ifconfig eth0 down 。

2. iptables 命令

iptables ,是一个配置 Linux 内核防火墙的命令行工具。功能非常强大,对于我们开发来说,主要掌握如何开放端口即可。

3. netstat 命令

Linux netstat命令用于显示网络状态。

利用netstat指令可让你得知整个Linux系统的网络情况。

4. ping 命令

Linux ping命令用于检测主机。

执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

5. telnet 命令

Linux telnet命令用于远端登入。

执行telnet指令开启终端机阶段作业,并登入远端主机。

2、Linux支持的文件类型

  • 普通文件类型 -
  • 目录文件类型 d
  • 块设备文件类型 b
  • 字符设备类型 c
  • 套接字文件类型 s
  • FIFO管道文件类型 p
  • 链接文件类型 l

二、Linux系统编程

1、 嵌入式操作系统进程间有哪些同步通信服务?

Linux进程间通信方式主要有

  1. 信号(signal)
  2. 信号量
  3. 管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
  4. 消息队列
  5. 共享内存
  6. 套接字(本地的还有域套接字)

三、ARM

1. 请问ARM支持哪几种异常类型?

异常源分类

要进入异常模式,一定要有异常源,ARM规定有7种异常源:

异常源描述
Reset上电时执行
Undef当流水线中的某个非法指令到达执行状态时执行
SWI当一个软中断指令被执行完的时候执行
Prefetch当一个指令被从内存中预取时,由于某种原因而失败,如果它能到达执行状态这个异常才会产生
Data如果一个预取指令试图存取一个非法的内存单元,这时异常产生
IRQ通常的中断
FIQ快速中断

2、请简述什么是中断?中断发生后,CPU做了哪些操作

中断:是指CPU在执行程序的过程中,出现了某些突发事件时CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU又返回源程序被中断的位置并继续执行。

中断发生后,ARM核的操作步骤可以总结为4大步3小步。

4大步3小步

  1. 保存执行状态:将CPSR复制到发生的异常模式下SPSR中;
  2. 模式切换:
  • CPSR模式位强制设置为与异常类型相对应的值,
  • 处理器进入到ARM执行模式,
  • 禁止所有IRQ中断,当进入FIQ快速中断模式时禁止FIQ中断;
  1. 保存返回地址:将下一条指令的地址(被打断程序)保存在LR(异常模式下LR_excep)中。
  2. 跳入异常向量表:强制设置PC的值为相应异常向量地址,跳转到异常处理程序中。

3、什么是GPIO?

general purpose input/output  

GPIO是相对于芯片本身而言的,如某个管脚是芯片的GPIO脚,则该脚可作为输入或输出高或低电平使用,当然某个脚具有复用的功能,即可做GPIO也可做其他用途。

也就是说你可以把这些引脚拿来用作任何一般用途的输入输出,例如用一根引脚连到led的一极来控制它的亮灭,也可以用一根(一些)引脚连到一个传感器上以获得该传感器的状态,这给cpu提供了一个方便的控制周边设备的途经。如果没有足够多的gpio管脚,在控制一些外围设备时就会力有不逮,这时可采取的方案是使用CPLD来帮助管理。

4、IIC引脚名称及功能?

  • SDA
    数据线,用于传输数据
  • SCL
    时钟线,用于同步数据

5、IIC的S、P信号如何发出?


每次通信都必须由主设备发起,当主设备决定开始通讯时,需要发送开始(S)信号,需要执行以下动作;

  1. 空闲时SCL默认是高电平;
  2. 将SDA线从高压电平切换到低压电平;
  3. 然后将SCL从高电平切换到低电平。
    在主设备发送开始条件信号之后,所有从机即使处于睡眠模式也将变为活动状态,并等待接收地址位。
    当双方决定结束通讯时,需要发送停止(P)信号,需要执行以下动作;
  4. 先将SDA、SCL设置为低电平;
  5. 然后将SCL从低电平切换到高电平;
  6. 将SDA从低电平切换到高电平。
    在停止条件信号之后,I2C总线即处于空闲状态。

6、SPI引脚名称及功能?

串行时钟线(SCK)、
主机输入/从机输出数据线MISO、
主机输出/从机输入数据线MOSI
从机选择线SS

(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)

在这里插入图片描述

四、驱动

1、查看驱动模块中打印信息应该使用什么命令?如何查看内核中已有的字符设备的信息?如何查看正在使用的有哪些中断号?

    1. 查看驱动模块中打印信息的命令:
 dmesg
    1. 查看加载模块信息可以用
lsmod

已经分配的字符设备块设备号信息可以查看下面文件

cat /proc/devices

内核会为每一个驱动模块建立一个文件夹,如下:

ls /sys/module/
    1. 显示当前使用的中断号
cat /proc/interrupts

2、如何手动创建字符设备?并简述主设备号和次设备号的用途。

创建字符设备命令如下:

mknod chartest c 4 64mknod : 创建设备节点
chartest :设备节点名字
c : 字符设备,
4 : 主设备号
64: 次设备号

1)主设备号:主设备号标识设备对应的驱动程序。虽然现代的linux内核允许多个驱动程序共享主设备号,但我们看待的大多数设备仍然按照“一个主设备对应一个驱动程序”的原则组织。

次设备号:次设备号由内核使用,用于正确确定设备文件所指的设备。依赖于驱动程序的编写方式,我们可以通过次设备号获得一个指向内核设备的直接指针,也可将此设备号当作设备本地数组的索引。

比如:

 硬件平台可能又4个串口,他们驱动非常类似,区别仅仅是个字对应的SFR基地址不同,
 那么我们可以让着几个串口共用同一个串口设备驱动
 通过次设备号来区别具体是哪一个串口

3、内核中使用共享资源时,为了使之满足互斥条件,通常有哪些方法?

原子操作,自旋锁,信号量,互斥锁

4、Linux内核包括那几个子系统?

Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)5个子系统组成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WEB渗透扫描与加固

WEB渗透扫描与加固 1.通过PC2中渗透测试平台BackTrack5中的httprint工具对服务器场景Server2003检测HTTP服务器(调用signatures.txt), 并将该操作显示结果“Banner Reported:”之后的字符串作为FLAG提交; 切换路径至/pentest/enumeration/web/httprint下 使用命令./httpr…

阿里巴巴面试题- - -多线程并发篇(二十九)

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~ 内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elast…

网络安全:技术趋势

下面列出了GlobalData确定的影响网络安全的关键技术趋势。 维护IT系统的安全性是各种类型组织的一项长期任务。网络攻击频繁且越来越复杂,由那些推动地缘政治事业的人或意图赚钱的攻击者实施。2021年,由于员工在疫情期间远程工作,企业在网络…

直流信号隔离采样

前言 最近在做一个案子,这个案子中的一点是高压电压信号隔离采样; 常见的隔离有: 光隔离(光耦) 磁隔离(霍尔,变压器) 等等。 那么要测量直流电压线性隔离如何实现?…

C语言中程序的环境和预处理简述

文章目录程序是如何执行的?翻译预编译条件编译文件的包含嵌套引用不同的引用方式预定义符号编译汇编链接运行程序是如何执行的? 有时候会问自己,程序的运行是那么简单的事情吗? 我鼠标点到 visual studio 上,程序就跑起来了,然后在界面就能…

项目管理:如何使用甘特图制定项目计划

甘特图能够很直观地显示项目任务、进度随着时间推进的进展情况。 横轴为时间,纵轴为项目事项,用条形图的方式直观地展现项目中所有任务的时间及进度。 它可以直观地表明项目中有哪些任务?任务计划在什么时候进行,及实际进展与计划…

基于Vue+node的图书馆座位预约选座管理系统

目 录 一、绪论 1 (一)选题背景简介 1 (二)目的和意义 2 (三)基本内容及目标 2 二 技术简介 4 (一) React 4 (二)Vue 4 (三)Egg.js 5 …

生产者消费者模型

什么是生产者消费者模型? 生产者和消费是操作系统中一种重要的模型,它描述的是一种等待和通知的机制。一、概念引入 日常生活中,每当我们缺少某些生活用品时,我们都会去超市进行购买,那么,你有没有想过&am…

Node.js之Hello World

目录 简介 1.安装 2.安装后的效果 3.准备尝试运行的代码 4.运行JS代码 5.访问正在运行的代码(Hello World) 简介 Node.js 是一个基于"Chrome V8 引擎" 的JavaScript "运行环境"; NodeJS不是一门编程语言, NodeJS是一个运行环境&#xff…

C语言题解 | 消失的数字轮转数组

… 🌳🌲🌱本文已收录至:C语言题解系列 更多知识尽在此专栏中! 🎉🎉🎉欢迎点赞、收藏、关注 🎉🎉🎉文章目录🍉前言🍉正文&…

这才是使用ps命令的正确姿势

这才是使用ps命令的正确姿势 前言 在linux系统当中我们通常会使用命令去查看一些系统的进程信息,我们最常使用的就是 ps (process status)。ps 命令主要是用于查看当前正在运行的程序,以及他们相关的的信息,我们可以通过不同的选项进行查看…

全球名校AI课程库(12)| CMU卡内基梅隆 · 数据库系统进阶课程『Advanced Database Systems』

🏆 课程学习中心 | 🚧 计算机基础课程合辑 | 🌍 课程主页 | 📺 中英字幕视频 | 🚀 项目代码解析 课程介绍 CMU 15-721 是 CMU 卡内基梅隆大学开放的数据库方向进阶课程,讨论了很多数据库方向新的技术研究方…

基于Matlab使用跟踪筛选器跟踪机动目标仿真(附源码)

此示例演示如何使用各种跟踪筛选器跟踪机动目标。该示例显示了使用单个运动模型和多个运动模型的滤镜之间的差异。 一、定义方案 在此示例中,定义了一个目标,该目标最初以 200 m/s 的恒定速度行进 33 秒,然后输入 10 度/秒的恒定转弯。转弯…

【C++】类和对象(中)

类和对象是面向对象语言的一个重要部分,承接上一话,我们直接开始这一章的内容。 文章目录 一、类的6个默认成员函数二、构造函数三、析构函数四、拷贝构造函数五、赋值操作符重载六、 const成员函数七、取地址及const取地址操作符重载八、相关习题的练习…

Windows系统常用网络命令详解及命令示例(全)

1.最基本也是最常用的,PING ping 192.168.0.8 -t 测试物理网络   ,参数-t是等待用户中断测试   2.检查DNS、IP、Mac等   A. Win98:winipcfg   B.Win2000及以上:ipconfig /all      C.NSLOOKUP:如果查看河北…

初阶c语言之浅识指针

学习导航:> 1.指针是什么? 2.指针和指针类型 2.1指针-整数 2.2指针的解引用 3.野指针 3.1野指针成因 3.2如何规避野指针 4.指针运算 4.1指针-整数 4.2指针-指针 4.3指针的关系运算 5.指针和数组 6.二级指针 7.指针数组 1.指针是什么? 指…

动态路由协议解析(rip)

因为今天是1024程序猿节,小刘就在这里祝各位程序猿大佬们节日快乐啦 作者介绍: 💰作者:小刘在C站 ✨每天分享课堂笔记 🌸夕阳下,是最美的绽放 目录 动态路由协议和 rip 1.动态路由 2.动态路由协议工作…

非线性方程求根——牛顿迭代法

一、牛顿法 1.实质:牛顿法实质上是一种线性方法,其基本思想是将非线性方程f(x)0逐步归结为某种线性方程来解。 2.牛顿法公式: 已知方程f(x)0有近似解xk,假设,将f(x)在点xk泰勒展开,有则方程f(x)0可近似表示为&#…

【开关电源六】buck电路的输出纹波定量分析走一波?

在TI官网发现一篇关于降压开关电源的输出纹波定量分析,看完觉得挺不错的,于是大概整理翻译了一下分享出来。以往我们分析开关电源的一次纹波都是定性分析,知道输出电压纹波和电感纹波电流、输出滤波电容ESR等有关,今天我们用数学、…

再看 Logback 源码

三大组件 Logback 构建在三个主要的类上:Logger,Appender 和 Layouts。这三个不同类型的组件一起作用能够让开发者根据消息的类型以及日志的级别来打印日志。 Logger 类作为 logback-classic 模块的一部分。Appender 与 Layouts 接口作为 logback-core 的…