一. chroot

  • chroot 机制目的

      为了进一步提高系统的安全性,linux引入了chroot机制,chroot是一个系统调用,可以更改一个进程所能看到的根目录。
      类似创建一个沙盒,进程运行在沙盒之内,进程运行正常与否,并不会影响这个台器的其他进程。

  • chroot(change to root)

     改变根目录,也就是改变一个程序运行时参考的根目录位置。例如:

  由上图可以看出,ls 命令参考的根是不同, 以此来形成简单的隔离.

二. pivot_root

  • pivot_root 机制目的

      改变当前工作目录的所有进程或线程的工作目录. 这个跟chroot的就有很大的区别,chroot是只改变即将运行的
      某进程的根目录。pviot_root主要是把整个系统切换到一个新的root目录,然后去掉对之前rootfs的依赖,以便于可以umount        之前的文件系统(pivot_root需要root权限)

三. switch_root

  • switch_root 机制目的

     专为initramfs设计, 通常initramfs都是为了安装最终的根文件系统做准备工作,然后切换到新的根文件系统上去。

    initramfs 是rootfs, 且不能umount, 所以不能使用pivot_root.

  • switch_root做的工作:

   1. 删除早的rootfs内的全部内容,目的是为了释放空间,因为用的内存空间.
   2. 安装新的根文件系统.
   3. 切换到新的文件系统,并执行新文件系统的init程序.
 (switch_root必须由pid=1的进程调用,否则会错误,例如在init脚本: exec switch_root new_rootfs  /init)

 

GitHub 加速计划 / li / linux-dash
13
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐