嵌入式面经大全(25/30)--操作系统(四)

牛客高级系列专栏:





简介

本人2020年本硕毕业于广东工业大学:嵌入式许乔丹,牛客高级专栏作者,牛客大学讲师,本科阶段搞了4年单片机、曾参加全国大学生恩智浦汽车竞赛,发表4个硬件专利。研究生阶段找了嵌入式linux的实习,毕业后拿到珠海格力,云从科技,CVTE,小米,美的,华为的嵌入式offer,签约CVTE嵌入式岗位。

在CVTE先后做过嵌入式Linux开发和安卓系统开发,参与过TV板卡、显示屏板卡、智能家居板卡、希沃网课学习机的开发。欢迎交流嵌入式或者安卓哈!

正文开始⬇️

第五章Linux操作系统常见面试题 (本文讲5.2.1-5.2.4)

5.1 Linux内核相关 

5.1.1 Linux内核的组成⭐⭐

5.1.2用户空间与内核通信方式有哪些?⭐⭐⭐⭐⭐

5.1.3系统调用read()/write(),内核具体做了哪些事情⭐⭐

5.1.4系统调用的作用⭐⭐⭐⭐⭐

5.1.5内核态,用户态的区别⭐⭐⭐⭐⭐

5.1.6 bootloader内核 根文件的关系⭐⭐⭐⭐

5.1.7 Bootloader多数有两个阶段的启动过程:⭐⭐⭐

5.1.8 linux的内核是由bootloader装载到内存中的?⭐⭐⭐

5.1.9为什么需要BootLoader⭐⭐⭐⭐

5.1.10 Linux内核同步方式总结⭐⭐⭐⭐

5.1.11为什么自旋锁不能睡眠 而在拥有信号量时就可以?⭐⭐⭐⭐

5.1.12 linux下检查内存状态的命令⭐⭐⭐

5.2 其他操作系统常见面试题

5.2.1大小端的区别以及各自的优点,哪种时候用⭐⭐⭐⭐⭐

5.2.2 一个程序从开始运行到结束的完整过程(四个过程)⭐⭐⭐⭐⭐

5.2.3什么是堆,栈,内存泄漏和内存溢出?⭐⭐⭐⭐

5.2.4堆和栈的区别⭐⭐⭐⭐⭐

5.2.5死锁的原因、条件 创建一个死锁,以及如何预防⭐⭐⭐⭐⭐

5.2.6硬链接与软链接的区别;⭐⭐⭐⭐⭐

5.2.7虚拟内存,虚拟地址与物理地址的转换⭐⭐⭐⭐

5.2.8计算机中,32bit与64bit有什么区别⭐⭐⭐

5.2.9中断和异常的区别⭐⭐⭐⭐⭐

5.2.10中断怎么发生,中断处理大概流程⭐⭐⭐⭐

5.2.11  Linux 操作系统挂起、休眠、关机相关命令⭐⭐

5.2.12数据库为什么要建立索引,以及索引的缺点⭐⭐

5.2.1大小端的区别以及各自的优点,哪种时候用?

解析:

大端优点:符号位在所表示的数据的内容的第一个字节中,便于快速判断数据的正负和大小

小端优点:低地址放低字节,所以在强制转换时不需要调整字节的内容。而且CPU做数值运算时从内存中依次从低到高取数据进行运算直到最后刷新最高位的符号位,这样运算方式会更高效。

以下是牛客网刷到的一个题目,觉得对理解大小端有帮助,就保存了下来,题目如下:

1)如果按照大端模式存储:从低地址到高地址:20 15 08 10 

  存放高字节放低地址,输出从低地址到高地址:20 15 08 10 so 结果就是 2015  810   

2)如果按照小端模式存储:从低地址到高地址:10 08 15 20  

   存放高字节放高地址,输出从高地址到低地址:08 10 20 15  so 结果就是 810 2015 

 Ps:

1)Interl x86系列芯片使用小端存储模式,ARM的芯片默认小端,但可以切换到大端;

2)网络上普遍采用大端模式,使用大端的CPU: power pc 、DSP … …

3)大小端是由CPU架构决定的, 不是软件决定!!!

5.2.2 一个程序从开始运行到结束的完整过程(四个过程)⭐⭐⭐⭐⭐

一个C语言程序到执行完文件的全过程,在linux里面用gcc编译的程序时,编译的过程可以细分为四个阶段:

1)预处理(Pre-Processing)

2)编译(Compiling)

3)汇编(Assembling)

4)链接(Linking)

源程序到可执行程序的过程。在这个过程中,会发生如下的变化:

.c文件生成.obj文件的过程,称为编译,.obj文件生成到.exe文件的过程,称为链接。.obj文件就是一个是程序编译生成的二

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

嵌入式/C++面试题解析大全 文章被收录于专栏

#承诺提供免费技术答疑# 该专栏是我校招阶段整理的关于“嵌入式面经”的111道题目,“C/C++软件开发岗位”也可以参考下。涵盖了大多数嵌入式/软件开发岗位常见基础面试题,题目来源是牛客网各大大厂的面经,答案是我逐个查阅资料,是嵌入式面试最常见的题目和答案。订阅即赠送简历模板、超大笔试面试真题大礼包、内推机会,需要的同学点击我头像私信即可!

全部评论
是的哦
1 回复 分享
发布于 2020-08-20 11:23
现在看你这资料重新学还赶得上不?CVTE内推等着我啊哈哈哈哈哈
点赞 回复 分享
发布于 2020-06-05 16:22
5.2.3中 内存溢出的原因这几点我为什么看着像内存越界呀?内存溢出不是在系统分配内存不够时候出现的吗?
点赞 回复 分享
发布于 2020-07-24 23:07
我才发现大小端的输出顺序还是不一样的
点赞 回复 分享
发布于 2020-08-20 11:21
大佬,在静态链接那里,是不是在链接过程中将库文件加入到可执行文件当中的?
点赞 回复 分享
发布于 2021-01-27 16:16

相关推荐

点赞 评论 收藏
分享
6 11 评论
分享
牛客网
牛客企业服务