本文将简单的对runC的源码调用主体逻辑进行梳理,为跟系统的阅读runC源码。
runC总体调用逻辑
下图中,runC源码逻辑跳转流程总体上分为三步:
main入口 ——> runC处理 ——> libcontainer处理。
runC其实就是在libcontainer的基础上进行了封装成各个Command。
具体runC的各个Command的调用链见如下:
runC处理
checkpoint
checkpointCommand(main.go) —> checkpointCommand(checkpoint.go)
container
createCommand(main.go)—>createCommand(create.go)—>startContainer(untils_linux.go)—>run(untils_linux.go)
deleteCommand(main.go)—>deleteCommand(delete.go)—>destroy(untils_linux.go)
eventsCommand(main.go)—>eventsCommand(events.go)
execCommand