操作系统

最后发布时间:2020-07-22 15:02:01 浏览量:

命令

  1. chroot切换根
chroot - run command or interactive shell with special root directory
  1. ldd 查看共享库依赖关系
ldd - print shared object dependencies

Linux启动流程

  • 内核的设计风格
    • 单内核(Linux)(LWP轻量级进程)
      • 模块化设计,内核模块ko(kernel object)
      • so(share object)用户空间进程共享模块
      • 核心动态加载内核模块:
        • 模块的位置:/lib/modeules/内核版本号目录/
          图片alt

          图片alt

        • 内核目录:
          图片alt

          图片alt

    • 微内核(Windows)(支持真正意义多线程)

https://www.bilibili.com/video/BV12t411s7CU?p=52&t=1265

单内核模块化造成问题?内核访问root目录下的文件,首先需要装载文件系统。而根文件系统在一个硬件设备上,但是内核没有文件系统驱动程序,如何访问root目录下的程序?
要想访问文件设备需要驱动,要想拿到驱动需要访问文件设备。

  • 解决方案一:将驱动程序放入内核,但是文件驱动太多

  • 解决方案二:安装系统时动态生成内核需要访问的文件,连接内核和模块

  • bootloader(MBR):

    • LILO:Linux LOader
    • GRUB:GRand Unified Bootloa der
      • Stage1:MBR
      • Stage1.5:
      • Stage2:/boot/grub

实验

  • 切换根
    图片alt

    图片alt