Chroot

chroot是在unix系统的一个操作，针对正在运作的软件进程和它的子进程，改变它外显的根目录。一个运行在这个环境下，经由chroot设置根目录的程序，它不能够对这个指定根目录之外的文件进行访问动作，不能读取，也不能更改它的内容。chroot这一特殊表达可能指chroot(2)系统调用或chroot(8)前端程序。
由chroot创造出的那个根目录，叫做“chroot监狱”（chroot jail，或chroot prison）。

历史

1979年，在开发Version 7 Unix时，chroot系统调用首次问世。1982年3月18日，在4.2BSD发布前17个月，比尔·乔伊（Bill Joy）将chroot机制移植到BSD系统上，主要用于测试安装和构建系统。
1991年，威廉·齐斯韦克（William Cheswick）开发出第一个蜜罐程序，来监视入侵黑客的行动。他使用了chroot来进行实现，这是chroot最早被用于开发程序的先例，也因此，chroot创造出的根目录空间，之后被人称为软件监狱（chroot jail）。
2000年，FreeBSD团队，将原本chroot机制，导入虚拟化技术的概念，开发了新的jail系统命令，伴随着FreeBSD 4.0版一同发布。
2004年，因为黑客开发出许多可以破解chroot机制的方法，出现了jailbreak这个术语。
2005年，太阳微系统在Solaris系统上开发出Solaris Containers，称它是吃了类固醇的chroot（chroot on steroids）。
2006年，Linux内核中开发出cgroups。2007年，被加到Linux 2.6.24版内核中。2008年，基于cgroups，开发出LXC，以及Docker。2013年被加入Linux 3.8版中。