当前位置: 首页 > news >正文

高频Linux 面试题

gcc的编译过程预处理——编译——汇编——链接
Linux文件类型普通文件,目录文件,管道文件,链接文件,块设备文件,字符设备文件,套接字文件
Linux系统下的软链接和硬链接有什么异同linux中软链接和硬链接的区别:
1、软链接以路径的形式存在,硬链接以文件副本的形式存在,但不占用实际空间;
2、软链接可以跨文件系统 ,硬链接不可以;
3、软链接可以对一个不存在的文件名进行链接,硬链接只有在同一个文件系统中才能创建;
4、软链接可以对目录进行链接,硬链接不允许给目录创建链接。
Linux内核子系统有哪几个Linux内核有五大核心子系统,分别是进程调度系统、虚拟文件系统(VFS)、内存管理单元(MMU)、网络单元、进程间通信(IPC)。
Linux的Shell是什么?常见的Shell有哪些?Linux的Shell是指用户与操作系统内核进行交互的命令行接口,它接收用户输入的命令并将其解释执行。Shell是一个解释器,可以解释和执行用户输入的命令,同时也提供了许多内置的命令和功能,以及对系统调用和程序的调用支持。

在Linux系统中常见的Shell包括但不限于以下几种:
1. Bash(Bourne Again Shell):Bash是Linux系统中最常用的Shell,也是大多数Linux发行版的默认Shell。它是Bourne Shell的扩展版本,提供了更多功能和改进,支持脚本编程和命令行操作。
2. Zsh(Z Shell):Zsh是一个功能丰富的Shell,提供了很多高级功能和定制选项,如自动补全、主题定制、插件支持等。Zsh相对于Bash来说更加强大和灵活。
3. Fish(Friendly Interactive Shell):Fish是一个用户友好的Shell,具有语法高亮、自动补全、友好的错误提示等特性,使得命令行操作更加简单和直观。
4. Dash:Dash是一个轻量级的Shell,专注于快速执行命令和脚本,适用于系统启动脚本等需要高效执行的场景。
5. Ksh(Korn Shell):Ksh是Bourne Shell的改进版本,提供了更多的功能和特性,适用于编写复杂的脚本和程序。
6. Csh(C Shell):Csh是一种C语言风格的Shell,提供了类似C语言的语法和特性,适用于一些特定的需求。
ELF中包含了哪些内容ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。
(1)由Section头组成的集合称为Section头表,由Program头组成的集合称为Program头表。注意:数个连续的头称之为头表,头表是虚拟出来的定义,文件中不存在头表,只有头。
(2)一个Section头指向一个Section,Section头中包括所指向Section的名字、类型、其在ELF文件中的偏移地址、大小等信息。
(3)一个Program头指向一个Segment,Program头中包括所指向Segment的类型、其在ELF文件中的偏移地址、大小,映射到内存的虚拟地址等信息。一个Segment由一系列连续的Section构成,连续的Section拥有相同的权限,如只读、读写、可读可执行等;
(4)一个ELF头内包含有:Section头表的在ELF文件中的偏移地址、单个Section头的大小、Section头表中Section头的个数;Program头表的在ELF文件中的偏移地址、单个Program头的大小、Program头表中Program头的个数;该ELF文件的类型,若是可执行文件的话,还包含的有程序的入口地址。
Linux中有哪些常用命令1.alias          给命令起别名
2.cat            显示文本内容
3.cd             修改当前路径
4.chmod      修改文件访问权限
5.chown      修改文件所有者
6.clear         清屏
7.cp             拷贝文件
8.df              查看文件系统信息
9.diff            比较两文件的异同
10.dpkg         手工安装软件包
11.echo         显示字符串
12.find           查找文件
13.grep         查找字符串
14.ifconfig    查看或修改网络
15.kill           发送信号
16.In            创建链接文件
17.man       查找帮助信息
18.mount     挂载或卸载分区
19.more       分屏显示信息
20.ps            查看系统进程信息
21.sort         排序
22.tar          归档或释放
23.压缩或解压
24.unig        去掉相邻重复的行
25.which查找所在路径
查看system-V IPC的命令查看IPC 信号量对象命令: ipcs -s
查看IPC 共享内存对象命令:ipcs -m
查看IPC 消息队列对象命令:ipcs -q

查看IPC 全部对象命令: ipcs -a 或者 ipc -pms

删除IPC 信号量对象命令:ipcrm -s semid
删除IPC 共享内存对象命令:ipcrm -m shmid
删除IPC 消息队列对象命令:ipcrm -q msgid
 分页和分段都是计算机系统中用于管理内存的方式。它们的主要区别在于:
1.物理单位不同:
分页是信息的物理单位,是一种离散的分配方式,以提高内存的利用率;
分段是信息的逻辑单位,是一种连续的分配方式,的目的是为了更好地满足用户的需求。
2.地址空间不同:
分页系统只有一个线性的地址空间;
分段系统具有两个地址空间,一个是段内地址空间,另一个是段地址空间。
3.地址表示不同:
分页系统中,地址被表示为页号和页内地址;
分段系统中,地址被表示为段号和段内地址。
4.实现方式不同:
分页是为实现离散分配方式而设计的,由机器硬件实现;
而分段是为实现连续分配方式而设计的,通常由编辑程序在源程序编辑时根据信息的性质进行划分。
ubuntu系统的启动步骤1、BIOS自检与加载硬盘:BIOS(基本输入输出系统)进行自检,确保硬件设备正常工作,并加载指定的启动设备,通常是硬盘。
2、读取MBR与引导:BIOS读取硬盘上的主引导记录(MBR),该记录包含了磁盘分区表和一个引导程序(如GRUB)。
3、GRUB引导加载:GRUB(Grand Unified Bootloader)引导加载程序接管启动过程,并显示一个引导菜单。用户可以选择要启动的Ubuntu内核版本或其他操作系统。
4、加载内核:根据用户在GRUB菜单中的选择,Ubuntu内核被加载到内存中。
5、初始化系统:内核启动后,会进行一系列的初始化操作,包括设置内存管理、设备驱动等。
6、启动init进程:Ubuntu使用systemd或Upstart作为初始化系统,取代了传统的init进程。systemd或Upstart会管理系统的服务和进程,并根据配置文件决定启动哪些服务。
7、运行级别与服务启动:根据配置,systemd或Upstart会启动相应的服务,并设置运行级别。这些服务包括网络服务、文件系统挂载、图形界面等。
8、用户登录:系统启动完成后,会进入登录界面,等待用户输入用户名和密码进行登录。
什么是虚拟内存和页面置换虚拟内存是一种计算机系统内存管理技术,它使得应用程序认为它拥有连续可用的内存,即一个连续完整的地址空间。但实际上,这个连续的内存空间是被分隔成多个物理内存碎片,并且部分数据会暂时存储在外部磁盘存储器上,在需要时进行数据交换。在Windows操作系统中,虚拟内存实际上是硬盘上的一部分空间,用于作为内存使用,这部分空间在硬盘上的文件名是PageFile.Sys。

页面置换算法则是操作系统中用于选择被换出的页面的一种策略。当物理内存空间不足以容纳所有需要运行的程序时,操作系统就会使用页面置换算法来决定哪些页面(即内存中的一部分)应该被移出内存,以便为新的页面腾出空间。常见的页面置换算法包括最佳置换算法(OPT)、先进先出置换算法(FIFO)、最近最久未使用置换算法(LRU)和时钟置换算法(CLOCK)等。这些算法各有特点,最佳置换算法选择下一次访问时间最长的页面进行置换,先进先出置换算法选择最先进入内存的页面进行置换,最近最久未使用置换算法选择最长时间未被访问的页面进行置换,而时钟置换算法则是基于环形链表的算法,通过检查页面的访问位来进行置换。
用户态和内核态使用场景的区别用户态主要用于运行用户程序,提供应用程序运行的空间。在用户态下,CPU不允许独占,也就是说CPU能够被其他程序获取。为了访问内核管理的资源,如CPU、内存、I/O等,用户态下的程序需要通过系统调用接口。这是因为处于用户态的程序没有直接访问硬件和某些受保护内存的权限,这样的设计主要是为了系统的安全和稳定。

而内核态则主要用于运行操作系统程序和操作硬件。在内核态下,CPU可以访问任意的数据,包括外围设备,如网卡、硬盘等。它还可以从一个程序切换到另一个程序,并且不会发生CPU抢占的情况。此外,内核态可以操作虚拟空间地址的完整范围,尤其是高位虚拟空间地址,这部分地址必须由内核态去操作。因此,内核态主要负责系统级的服务和管理,包括硬件驱动、内存管理、进程调度、系统调用处理等。
http://www.dtcms.com/a/605080.html

相关文章:

  • 芜湖效能建设网站重庆发布公众号
  • Spring Boot 多环境配置详解:Maven Profile vs 启动参数注入
  • 《Chart.js 饼图:高效与灵活的数据可视化工具详解》
  • 力扣每日刷题251113
  • erp网站开发网站后台管理系统源码下载
  • Spring IOC核心原理与实战技巧
  • 计算中央子午线(Excel版)
  • HarmonyOS Menu组件深度自定义:突破系统默认样式的创新实践
  • 【Rust】从0到1开发和运行Web相关功能,并简单实现数据库连接和查询
  • AI与SEO策略结合下的关键词优化新发现
  • git仓库中的.git目录 , .gitattributes、.gitignore、.gitmodules、.modules文件作用与讲解
  • Win键失效解决方法
  • 酷秒神马 9.0:轻量架构 + 安全防护
  • 编译器用什么语言开发 | 深入分析编译器开发语言及其选择
  • 二手书网站建设报告网站建设的目的与意义
  • 宁波建网站报价客户制作网站时的问题
  • 【杂记】Microchip 的通用集成开发环境工具对照表(MPLAB X IDE)和芯片家族对标表(Microchip VS ST)
  • 使用C#代码在 Word 文档中查找并替换文本
  • Mac C语言编译器 | 如何选择适合的工具来提升开发效率
  • 【JAVA 进阶】Spring Boot 自动配置原理与自定义 Starter 实战
  • LeetCode 1658 | 将 x 减到 0 的最小操作数(C语言滑动窗口解法)
  • 《Effective Java》解读第12条:始终要覆盖toString
  • Linux C语言编译器 | C语言开发的最佳实践与工具选择
  • 网站备案电话没接产品设计分析案例
  • 112、23种设计模式之命令模式(20/23)
  • 第6章:空间查询与地理处理
  • 使用 Docker Compose 一键更新:深入理解 docker-compose pull 的适用场景
  • 一次在VS2022中使用sqlite数据库故障排查过程
  • Mailjet Setup Pitfall Guide: SPF, DKIM, DMARC Deliverability
  • 最好的企业网站电子商务网站建设考试重点