面试可能遇到的问题总结【二】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cx55887/article/details/82937032

(1)ssh登陆缓慢解决方法

方式一:修改配置文件,禁止做反解 UseDNS no
在这里插入图片描述
方式二:修改 /etc/hosts 添加一个主机名称的解析记录
方式三:ssh -v 查看登录过程信息,判断故障点
除此之外,还有可能是网络延迟导致ssh登录缓慢。

(2)简述CentOS6的启动过程

  1. 第一步 加电自检,检查硬件是否正常工作,如果正常,就会根据预先定义好的启动次序去指定的设备上依次查找MBR
  2. 第二步 通过设备中的MBR中的前446字节可以获取到bootloader程序
    bootloader有两种类型:
    早期LILO
    流行GRUB 0.X 1.X
    这里找到并执行bootloader,其实运行grub的第一阶段,通过grub state1可以找到磁盘上的一个特定分区中的grub stage2,在stage2的配置文件中就指定了内核和临时文件系统的位置,这样就通过bootloader找到了内核
  3. 第三步 将找到的内核装载入内存中,并运行,同时将临时文件系统在内存中展开,将一部分内存空间临时作为磁盘来使用,这样在内存中就有一个完整的、临时的文件系统,内核可从这个临时文件系统中获取到所需要的驱动程序,那么内核就可以尝试执行/sbin/init发起第一个用户空间进程
  4. 第四步 通过init生成第一个用户空间进程,同时会去读取配置文件/etc/inittab 以及 /etc/rc.d/rc.sysinit 来完成设置系统运行级别,以及其他的系统初始化功能

(3)启动系统的过程中,内核如何识别文件系统?

  1. linux的内核为了精简,将内核核心和功能模块分开存放,也就是说在内核中默认是没有功能模块,这其中包括驱动程序
  2. 在启动系统的过程中,内核会通过bootloader被载入到内存并运行起来,并且在系统启动的最后还需要让内核来执行文件系统中的init来发起用户空间进程,但是默认内核没有文件系统的驱动程序,所以默认内核是无法从文件系统中找到并执行init的,所以在启动系统的时候,就需要给他提供驱动程序。
  3. 在安装系统的时候,系统的硬件及其文件系统类型就固定了,那么就会在安装系统的最后一bu,通过内核探测收集系统的硬件和文件系统信息,然后将所需要的驱动程序连同 一个根文件系统最基本的目录结构一并打包制作一个压缩包。在这个压缩包里面有一个完整的根文件系统,同时还有驱动程序。
  4. 在bootloader将内核装载到内存的时候,会连同刚刚指定的好的哪个压缩包一同载入进来,然后这个压缩包会在内存中展开,此时内存中就有了一个完整的文件系统,同时还有一个内核,此时,就在内存中构建了一个完整的操作系统,只是该系统运行在内存上,然后内核就可以从这个运行在内存操作系统中获取到所需要的驱动程序,这样内核就有能够识别磁盘上的文件系统了。

(4)init的类别和功能

  1. 三类
  2. centos5上是最为正统的init程序,centos6上是upstart,centos7是systemd
  3. init
    1)完成系统的初始化
    2)发起第一个用户空间进程
    3)管理用户空间进程
  4. centos5上的init是最正统的init,缺点就是只能顺序启动进程,所以会导致启动过程非常慢
  5. centos6上的init在一定程度上实现了并行启动,但是依然存在进程间的依赖关系(对于端口的依赖),在启动速度上有一定的提升
  6. centos7上的init已经不叫init了,叫做systemd,真正的实现了并行启动

(5)如何让改变系统的运行级别,以及如何设置于系统默认运行级别

  1. 对于CentOS6:
    查看系统运行级别:who -r 或者runlevel
    修改系统运行级别:init num
    修改系统默认运行级别:修改/etc/inittab
    在这里插入图片描述
  2. 对于CentOS7
    CentOS7中使用target unit来模拟程程类似于CentOS6运行级别的概念。模拟方式如下:
CentOS6 CentOS7 备注
0 runlevel0.target,poweroff.target 用于关闭系统
1,single runlevel1.target,rescure.target 救援模式
2,3,4 runlevel2/3/4.target,multiuser.target 字符多用户接口
5 runlevel5.target,graphical.target 图形多用户接口
6 runlevel6.target reboot.target 用于重启系统

切换级别:systemctl isolate name.target
例如:切换到救援模式(级别):systemctl rescure.target <<<<<切换到救援模式不需要isolate
查看系统默认的运行级别:systemctl get-default
修改系统默认的运行级别:systemctl set-default name.target
常用的关机命令:

systemctl isolate poweroff.target
systemctl isolate runlevel0.target
systemctl poweoff

猜你喜欢

转载自blog.csdn.net/cx55887/article/details/82937032
今日推荐