2024年最全简析linux内核的执行流程_内核代码中怎么触发命令(3),2024年最新2024最新大厂Linux运维面试集合

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

得到的。之后执行copy_process,跳到

调整进程1的管理结构       定义处kernel/fork.c中,设置进程1

管理结构。假如此时发生时钟中断,系统

会响应并执行kernel/system_call.s函数

中的timer_interrupt定义处,先压栈后

设置进程1的线性地址空间及物理页面              进入****kernel/sched.c

do_timer函数,别忘了此时仍在进程

0****执行,然后便发现时间片还没完,所以

跳出,并返回到ret_from_sys_call。这是

继续调整进程1的管理结构          kernel/system_call.s中定义的,

接着直接将刚才的压栈数据出栈,继续完成

刚才创建进程1的任务,即在fork.c中继续

调整进程1的管理结构,同时设置进程

进程0准备切换到进程1    1****的线性地址空间及物理页面,直到

**执行到这条语句“**p->state=TASK_

RUNNING**;return last_pid;”,标志着**

系统切换到进程1执行       进程1创建完成。后跳出****copy_process.c

函数,返回到system_call.s,将压栈的

进程1开始执行       的寄存器值出栈,此时eax1。后中断返回

,进程由从内核态变为用户态,即到了unisted.h的“if(_res>=0)”这条指令中,

_res的值就是eax****的值,一判断成立,就返

进程1开始以数据块的形式操作硬盘       回该值。最后回到了****main.c

的“if(!fork())”中,一判断不成立,跳出执****行下一条指令“for(;;)pause();”,同理

Pause函数也和fork****函数一样,这里就不

将找到的缓冲块与请求项挂接       讲了,进入****sys_pause()后将进程0

置为可中断等待状态,并调用在****kernel

**/sched.c定义的schedule()**函数切换进程。

进程切换中断返回后执行了第一条语句

将请求项与硬盘处理函数挂接       是“if(_res>=0)”,一判断,

刚存的eax值为0,返回到“if(!fork())

判断为真,执行init()函数,这在****main.c

定义。进入init.c后其程序执行流程见附录,

进行硬盘读盘前的工作准备     各个程序执行目的正如左边写的一

样。

给硬盘下达读盘命令

进程1由于等待读盘操作挂起

系统切换到进程0执行

进程0执行过程中发生硬盘中断

硬盘中断服务程序响应后,进程0继续执行

再次响应硬盘中断,并唤醒进程1

读盘操作完成后进程1继续执行

进程1继续设置硬盘管理结构

进程1获取软盘超级块,为加载根文件系统做准备

进程1备份超级块数据

进程1将根文件系统从软盘拷贝到虚拟盘

进程1开始加载根文件系统

进程1准备加载根文件系统超级块

进程1继续加载根文件系统

进程1准备获取根目录节点

进程1加载根目录节点

进程1结束加载根文件系统的过程

进程1与内核文件表挂接,为打开文件做准备

确定打开操作的起点

获取枝梢i节点—dev目录文件的i节点

确定dev的目录文件i节点为枝梢节点

继续返回枝梢i节点

查找tty0文件的i节点

将tty0设备文件的i节点,返回给sys_open系统调用

分析tty0文件i节点

设置文件管理结构并返回给用户进程

进程复制tty0文件句柄

进程1继续复制tty0文件句柄

第三步:以进程1为母本创建进程2,使进程2在全面具备进程1所拥有的能力和环境的基础上,进一步具备支持”人机交互“的能力,最终实现准备阶段完成。流程如下:

进程1准备创建进程2  与进程0创建进程1一样,创建进程2,复

制进程1的管理结构,复制页表、页目录

项等,创建进程2后即执行到init/main.c

复制进程2的管理结构并进行调整  **176行与186****行,分别是:**if(!(pid

=fork())中子进程即进程2****执行,而父进程(

进程1)执行186行的if(pid>0),父进程

调整进程2管理结构中与文件有关的内容   进入wait函数,等待!

进入wait函数后还做了一些动作:首先

查找自己的子进程,确定是进程2后,判断

进程1执行过程中发生时钟中断  进程2是否处于终止状态或是

僵死状态,一判断不是,就将进程1设置为

**可中断等待状态,继而调用****schedule()**函数

进程1从时钟中断返回   准备切换到进程2执行切换到进程2**。**

进入进程2后开始加载shell程序。首先执

init/main.c180行的“close(0);”,就是

进程1查找它自己的子进程  **解除****filp[20]file_table[64]**的第一项

关系,这是从进程1继承过来的。然后

是“if(open(“etc/rc”,O_RDONLY,0))”,

对进程2的状态进行处理   其中是将进程2的管理结构指针表****filp

**[20]的第一项与file_table[64]**的第一项建立

一个关于资源配置的文件,而后再执行

切换到进程2执行     execve函数,并映射到sys_execve****系统调用。

再调用do_execve函数,目的便是将参数

与环境变量加载到主内存的页面中去,中断

为打开/etc/rc文件做准备  返回,但此时在该函数里已经将EIP

值指向了shell程序的入口地址,所以返回后

执行的是shell的第一条指令,但这时却发现

进程2打开”/etc/rc“配置文件  内存中没有这一条指令的映射,

所以发生“缺页中断”,然后调用****page_fault

函数中的do_no_page

通过压栈为加载shell文件做准备

为参数和环境变量设置做准备

得到shell文件i节点

为加载参数和环境变量做准备

根据i节点,为shell文件进行检测

检测shell文件头

备份文件头并进行分析

对shell文件进行进一步分析

拷贝参数与环境变量

调整进程2的管理结构

继续调整进程2的管理结构

释放进程2继承的页面

检测协处理器

调整shell程序所在的线性地址空间

为shell程序准备参数与环境变量

继续调整进程2的管理结构

调整EIP,使其指向shell程序的入口地址

Shell程序执行发生缺页中断

缺页中断中shell程序加载前检测

为即将载入的内容申请页面

为shell载入新获得的页面

根据shell进程的情况,调整页面内容

将线性地址空间与程序所在的物理页面相对应

Shell程序开始执行,执行的内容是/etc/

rc里面的命令,其中便有创建update****进

Shell进程准备创建update进程 程,该进程是为同步缓冲区与硬盘而

设的进程,它会时不时的进入睡眠状

态,经过一定的时间再被唤醒然后更新

进程2开始执行/etc/rc文件  缓冲区与硬盘的数据。之后创建完成后

Shell****进程退出,退出操作当然得释放它占

用的资源或者是清除掉,或者是将使用次数

准备加载update进程    1。然后为进程1找到一个子进程,

那就是update进程了,发信号告诉进程****1

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

l进程准备创建update进程 程,该进程是为同步缓冲区与硬盘而

设的进程,它会时不时的进入睡眠状

态,经过一定的时间再被唤醒然后更新

进程2开始执行/etc/rc文件  缓冲区与硬盘的数据。之后创建完成后

Shell****进程退出,退出操作当然得释放它占

用的资源或者是清除掉,或者是将使用次数

准备加载update进程    1。然后为进程1找到一个子进程,

那就是update进程了,发信号告诉进程****1

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值