筆者關於open container initiative (oci) 的容器runtime實現runc原始碼的create和start流程進行了分析整理。
這個run是 create、start、run三個命令入口公用的,下面主要描述create流程。
封裝函式,僅是獲取了當前容器狀態(目前未建立前是stopped),並呼叫了容器的start(process, true)
。
建立乙個initprocess,裡面既有init程序的資訊,也有spec裡面指定的process的資訊。
進行一些是否成功run和resume的判斷,進行錯誤處理。
關閉parentpipe,返回nil or err。
至此,parent端相關的操作分析便結束了,下面從init程序繼續分析container的create流程。
前面稍微省略了幾個不重要的步驟,main>initcommand>「here」
這是個對linuxcontainer.exec
函式的同步封裝,下面說的是exec
函式.
runC原始碼分析 主體呼叫鏈
下圖中,runc原始碼邏輯跳轉流程總體上分為三步 main入口 runc處理 libcontainer處理。runc其實就是在libcontainer的基礎上進行了封裝成各個command。具體runc的各個command的呼叫鏈見如下 checkpointcommand main.go check...
spring原始碼分析 spring原始碼分析
1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...
思科VPP原始碼分析(dpo機制原始碼分析)
vpp的dpo機制跟路由緊密結合在一起。路由表查詢 ip4 lookup 的最後結果是乙個load balance t結構。該結構可以看做是乙個hash表,裡面包含了很多dpo,指向為下一步處理動作。每個dpo都是新增路由時的乙個path的結果。dpo標準型別有 dpo drop,dpo ip nu...