原创 git合併commit點
假設我們現在log中有4個commit點處於已commit狀態,git支持把一個commit點合併到其前一個commit點中,我們現在嘗試把[Brf]這個點合入到[Ver]這個點中去 git rebase –i [commit id] (
原创 git提交patch
Docker社區提patch1. 登錄docker社區,fork你要貢獻的repository到你的賬戶中。並下載代碼到本地。2. $ git checkout -b [name] 創建一個分支,並切換到新的分支。例如:$ gitchec
原创 標準IO-直接IO-異步IO筆記
標準IO-直接IO-異步IO筆記 1 標準IO通過read,write實現read: 如果數據在內存中,那麼直接從內存中讀出數據並返回給應用程序。如果
原创 多路複用實現分析
多路複用實現分析select,poll,epoll都是IO多路複用的機制。所謂I/O多路複用機制,就是說通過一種機制,可以監視多個描述符,一旦某個描述
原创 一些git命令
git reset --hard HEAD^ 可以將指針還原到上一個修改 git reset --hard HEAD^^ 可以將指針還原指向上上個修改 git reset --hard HEAD~100 可以將指針還原到前100個修改 g
原创 devicemapper
1. Device mapper和thinprovison1) Devicemapper簡介Devicemapper是內核中支持邏輯卷管理的通用設備映射機制,它爲實現用於存儲資源管理的塊設備驅動提供了一個高度模塊化的內核架構,它
原创 NET Namespace(1)
1 概述在linux協議棧中引入網絡命名空間,是爲了支持網絡協議棧的多個實例,而這些協議棧的隔離就是通過命名空間來實現的,一個net namespace爲進程提供一個完全獨立的網絡協議棧的視圖,包括網絡設備接口、ipv4和ipv
原创 libnetwork
CNM模型定義了libnetwork的工作原理原來docker的網絡相關的代碼是直接在docker中的,網絡功能也比較簡單,對網絡的詬病也是比較多,隨着docker越來越向平臺化發展,將功能組件逐漸從doc
原创 NET Namespace(2)
1 釋放網絡命名空間內核中對於要釋放的網絡命名空間,都會通過struct net的cleanup_list成員鏈入全局釋放鏈表cleanup_list中:加入cleanup_list全局鏈表後,將net_clean_up工作交給
原创 Mnt_namespace分析
1 簡介1.1 背景Linux容器場景下實現對進程和其相關的資源的隔離,這些資源同樣也包括了進程的文件系統環境。這就要求容器中有一個獨立的文件環境,而容器中的進程共享這個文件系統環境,即容器自己的根文件系統環境。所以內
原创 Cgroup-memory子系統分析(1)
1 概述1.1 應用背景Cgroup的memory子系統,即memory cgroup(本文以下簡稱memcg),提供了對系統中一組進程的內存行爲的管理,從而對整個系統中對內存有不用需求的進程或應用程序區分管理,實現更
原创 Pid_namespace分析
1 概述Pid namespace是對進程pid的容器虛擬化,從pid的維度實現容器間的隔離。即在一個容器中只能看到屬於該pidns的pid,從而在某種程度上實現了進程間的隔離。在容器中只能看到容器內的pid,但在宿主機上可以看
原创 user_namespace分析(2)
4 User_ns實現與驗證以上分析的三點都是用戶安全管理的基礎,user_ns只是結合權能實現了一種局部用戶的映射。User_ns的作用簡單的說就是一個非特權用戶可以創建一個user_ns,然後該用戶可以作爲該命名空間中的ro
原创 Cgroup-memory子系統分析(2)
1.1 Oom1.1.1 簡介Oom的全稱是out-of-memory,是內核在處理系統內存不足而又回收無果的情況下采取的一種措施,內核會經過選擇殺死一些進程,以釋放一些內存,滿足當前內存申請的需求。所以oom是一種系
原创 Cgroup變化分析(2.6.34~3.10)
Cgroup變化分析