五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

深究Runc源碼-2-創(chuàng)建Create流程分析

2022-11-15 12:31 作者:黑暗光影DIY  | 我要投稿


代碼基于1.1.0

首先將OCI runtime-spec轉(zhuǎn)換成libcontainer Config

libcontainer.Create復(fù)制Container實(shí)例的構(gòu)建,首先根據(jù)root,創(chuàng)建對(duì)應(yīng)目錄,root是一個(gè)全局命令行參數(shù),默認(rèn)是$XDG_RUNTIME_DIR/runc

main.go

XDG_RUNTIME_DIR=/run/user/${uid},root目錄用戶保存創(chuàng)建的容器state.json,全路徑為$root/$container-id/state.json

然后構(gòu)建cgroup.Manager實(shí)例,存在三種Manager實(shí)例,systemd,cgroupv1,cgroupv2,systemd通過全局配置項(xiàng)--systemd-cgroup控制,cgroupv1/v2則判斷操作系統(tǒng)是否開啟了v2,優(yōu)先使用v2

默認(rèn)dirPath是/sys/fs/cgroup/$ownCgroup/$container-id

最終構(gòu)建的Container實(shí)例為

runner實(shí)例為

然后進(jìn)入到runner.run流程

首先根據(jù)spec.Process構(gòu)建Process實(shí)例

根據(jù)CT_ACT_CREATE進(jìn)入Container.Start流程

首先創(chuàng)建execFifo文件,${root}/exec.fifo, root是上述container root,例如/run/user/1000/runc/mycontainer/exec.fifo,然后調(diào)用Container.start,首先構(gòu)建ParentProcess實(shí)例

其中Cmd實(shí)例為

initProcess.start首先調(diào)用cmd.start啟動(dòng)runc init子進(jìn)程,然后在父進(jìn)程中與子進(jìn)程進(jìn)行通信和同步等待runc init 完成。此時(shí)進(jìn)程已經(jīng)分化成兩個(gè)進(jìn)程,runc create和runc init。runc init流程在2.2.2 章節(jié)中詳細(xì)分析。runc create流程中重點(diǎn)分析一下cgroup的設(shè)置,如前面分析,默認(rèn)支持cgroupv1 cgroupv2 systemd三種類型,systemd通過命令行指定,cgroupv1 v2是通過檢測(cè)linux釋放開啟v2,優(yōu)先使用v2,在parent Process.start流程中調(diào)用manage.Apply設(shè)置runc init進(jìn)程的pid。

CreateCgroupPath調(diào)用根據(jù)manager.dirPath,從/sys/fs/cgroup開始,如果目錄不存在的話,依次循環(huán)創(chuàng)建對(duì)應(yīng)目錄,并寫入cgroup.subtree_control。

WriteCgroupProc將Init Pid寫入到dirPath/cgroup.procs中。

在parentProcess.start流程中,parseSync procHooks case中通過manage.Set設(shè)置cgroup資源控制值。

核心Kernel Cgroupv2接口的調(diào)用,詳細(xì)可參考kernel文檔https://docs.kernel.org/admin-guide/cgroup-v2.html


開源的東西,轉(zhuǎn)發(fā)不需要出處,就說你自己寫的

深究Runc源碼-2-創(chuàng)建Create流程分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
房产| 和静县| 垦利县| 凌海市| 浦县| 蓝田县| 康马县| 德化县| 青岛市| 保德县| 浦县| 华容县| 军事| 溆浦县| 皮山县| 廊坊市| 新龙县| 灵宝市| 和硕县| 揭东县| 仁怀市| 景洪市| 漠河县| 常宁市| 舟曲县| 香河县| 马公市| 化德县| 庄浪县| 子长县| 深州市| 屏边| 磐石市| 昭通市| 吉木萨尔县| 樟树市| 湘阴县| 沿河| 讷河市| 马龙县| 新田县|