系统应用调用操作系统函数,操作系统函数调用内核指令,内核指令调用内核直接操作计算机硬件。
硬件:
操作系统内核:内核可以与计算机硬件交互,内核对外提供操作硬件的内核指令。调用这些内核指令就可以操控计算机硬件。
但这些指令都是很简陋的,用这些指令开发比较麻烦。
操作系统:操作系统会提供系统函数。
系统函数就是把这些内核指令组装,然后封装为函数。许许多多的函数组成函数库。
系统应用:如mysql应用本来在ubuntu上运行,这时把他迁移到centos上,这时应用去调用一个系统函数,发现这个函数在centos上根本不存在所以应用不能跨操作系统运行。
docker把应用,应用所需的系统函数库和依赖封装在一起,因为有了系统函数库,就不需要管什么操作系统了,直接用系统函数库操作内核,内核直接访问硬件,从而实现应用跨系统运行。