📜作者:不想脱发的基兄
📺专栏:《嵌入式面试》
📣格言:我不停奔跑只为追赶当年被寄予厚望的自己。
前言
2022年秋招我面试嵌入式MCU开发方向,经过了多场的笔试与面试,在准备的过程中看了非常多的资料,我的汇总的笔记一直写在有道云笔记中,没有分享出来。现在已经到了23年春招了,特此整理后分享出来。资料看过了觉得不错就保存下来了,如果有不对的地方,欢迎批评指正,侵权联删!
一、 Linux
1 Window系统和Linux系统的区别
1.1 区分大小写
- linux区分大小写
- windows在dos(磁盘操作系统)界面命令下不区分大小写;
1.2 文件系统上的区别
- Windows 下,计算机是以驱动器盘符区分所有文件
- Linux没有盘符这个概念,以根目录 /区分所有文件
1.3 文件形式保存
- Linux所有内容均以文件形式保存包括硬件,用户;
- windows文件和硬件没什么关系,两个之间没有关联;
1.4 文件区分
- windows用扩展名区分文件;
如.exe代表执行文件,.txt代表文本文件,.gz , .bz2 ,.tar.bz2代表压缩包,.html ,.php代表网页文件。 - linux是以权限区分文件,没无扩展名的概念。管理员为了方便,可以部分扩展。
文件类型 | 文件符号 |
---|---|
普通文件 | ‘ -’ |
目录文件 | ‘ d’ |
管道文件 | ‘ p’ |
链接文件 | ‘ l’(硬链接和软链接)。 |
设备文件 | (块设备 ’ b’ 、字符设备 ‘ c’ ) |
套接字文件 | ‘s’ |
1.5 开源与收费
- windows大部分软件收费,系统非开源。系统具有数量和质量的优势,由微软官方提供重要支持和服务 。
- linux平台大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的Linux开发者和自由软件社区提供支持。
1.6 执行文件与安全性
- windows下的执行文件是.exe文件,大部分是图形界面,不具有安全性。.exe文件不能直接在linux下安装与运行。
- linux下的执行文件是二进制文件,大部分是字符界面,具有安全性,减少了木马攻击的可能性。
1.7 程序安装
- Windows软件安装是通过应用商店或者浏览器下载后安装。
- Linux主要通过shell命令进行安装。可以使用apt方式安装(软件包管理系统)、rpm包安装、deb包安装、tar.gz源代码包安装、tar.bz2源代码包安装、yum方式安装(安装rpm包)、bin文件安装。
1.8 占用系统资源
- linux是字符界面,占用的系统资源较于windows下的图形界面所占的资源小。
- Windows是图形界面,较于Linux的字符界面所占的资源大。
参考链接
2 Linux的根目录有哪些?各有什么作用?
2.1 Linux的根目录有哪些
有/bin、/home、/boot、/cdrom、/dev、/etc、/initrd.img、/initrd.img.old、/lib、/lib64、/lost+found、/media、/mnt、/opt、/proc、/ root、/run、/sbin、/snap、/srv、/sy、/tmp、/usr、/var 等。
2.2 Linux的根目录的作用
根目录名 | 作用 |
---|---|
/bin | 可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等 |
/home | 普通用户的家目录 |
/root | root用户的家目录 |
/boot | 内核文件的引导目录, 放置 linux 系统启动时用到的一些文件 |
/sbing | 超级用户使用的指令文件 |
/tmp | 临时文件目录 |
/dev | 设备文件目录 |
/lib | 共享库,系统使用的函数库的目录 |
/usr | 第三方程序目录 |
/etc | 配置程序目录,系统配置文件存放的目录 |
/var | 可变文件,放置系统执行过程中经常变化的文件 |
/opt | 用户使用目录,给主机额外安装软件所摆放的目录。 |
3 linux下有哪几种文件
- 普通文件类型(-)
- 目录文件类型(d)
- 块设备文件类型(b)
- 字符设备类型©
- 套接字文件类型(s)
- 管道文件类型§
- 链接文件类型(l)
二、文件IO
1 系统IO和标准IO操作文件的区别?
1.1 文件类型
-
标准IO打开的是一个文件指针;
-
系统IO打开的是一个文件描述符。
1.2 系统 IO优势
- 系统 IO具有通用性和简约型。
- 文件操作上普通文件、管道文件、设备节点文件、套接字文件等都可以使用,并且对文件内
- 数据的读写不带任何格式
- 数据的读写没有缓冲处理;而系统IO不具有通用和简约型。
1.3 标准 IO优势
- 标准 IO 是系统 IO 的封装;
- 标准 IO具有丰富的读写方式,可以按格式读写、按 ASCII码字符读写、按二进制读写、按行读写、按数据块读写等;
- 提供数据读写缓冲功能,极大提高程序读写效率。
2 系统IO和标准IO缺省打开的三个标准文件的方式?
设备 | 标准IO | 系统IO |
---|---|---|
标准输入设备(键盘) | stdin | STDIN_FILENO(数值0) |
标准输出设备(屏幕) | stdout | STDOUT_FILENO(数值1) |
标准出错设备(屏幕) | stderr | STDERR_FILENO(数值2) |
3 什么是空洞文件?谈一谈对空洞文件的理解。
3.1 空洞文件
没有写过的字节都被设为 0就是空洞文件。
在UNIX文件操作中,文件位移量可以大于文件的当前长度,此时,对该文件的下一次写将延长该文件,并在文件中构成一个空洞,这一点是允许的。位于文件中但
3.2 空洞文件作用
- 空洞文件作用很大,例如迅雷下载文件,在未下载完成时就已经占据了全部文件大小的空间,这时候就是空洞文件。
- 下载时如果没有空洞文件,多线程下载时文件就都只能从一个地方写入,这就不是多线程了。如果有了空洞文件,可以从不同的地址写入,就完成了多线程的优势任务。
4 用open()创建新文件时,若该文件存在则可以返回错误信息的参数是那些?
O_CREAT | O_EXCL。
结语
由于自己做的是MCU方向,不是Linux驱动开发,所以涉及Linux的面试知识有点少,因此可以参考我发的或者网上的其他资料。
本栏前文
1、【嵌入式面试】2022年嵌入式经典面试题汇总(C语言)
2、【嵌入式面试】2022年嵌入式经典面试题汇总(数据结构)
如果文章对你有帮助,欢迎点赞,关注,转发!