46 容器的崛起(上):文件、访问、资源的隔离
你好,我是周志明。接下来的两节课,我会以容器化技术的发展为线索,带你从隔离与封装两个角度,去学习和了解容器技术。
今天,我们就先来学习下Linux系统中隔离技术的发展历程,以此为下节课理解“以容器封装应用”的思想打好前置基础。
隔离文件:chroot
首先要知道,人们使用容器的最初目的,并不是为了部署软件,而是为了隔离计算机中的各类资源,以便降低软件开发、测试阶段可能产生的误操作风险,或者是专门充当蜜罐,吸引黑客的攻击,以便监视黑客的行为。
容器的起点呢,可以追溯到1979年Version 7 UNIX系统中提供的chroot命令,这个命令是英文单词“Change Root”的缩写,它所具备的功能是当某个进程经过chroot操作之后,它的根目录就会被锁定在命令参数所指定的位置,以后它或者它的子进程就不能再访问和操作该目录之外的其他文件。
1991年,世界上第一个监控黑客行动的蜜罐程序就是使用chroot来实现的,那个参数指定的根目录当时被作者被戏称为“Chroot监狱”(Chroot Jail),而黑客突破chroot限制的方法就叫做Jailbreak。后来,FreeBSD 4.0系统重新实现了chroot命令,把它作为系统中进程沙箱隔离的基础,并将其命名为FreeBSD jail。