原创 時間子系統17_hard lockup機制

// 使能hard lockup探測 // 調用路徑:watchdog_enable->watchdog_nmi_enable // 函數任務: // 1.初始化hard lockup檢測事件 // 2.hard lockup閾值爲

原创 網絡子系統78_inet套接字創建

// inet協議族控制塊 // 1.在inet_init中,由sock_register(&inet_family_ops)註冊給系統 // 2.在sys_socket系統調用中,通過協議族號查找對應的協議控制塊,然後由 //

原创 Linux驅動2_總線設備(一)

// 參考 Linux設備驅動程序(lld3) // 實現一個簡單的虛擬總線 simple bus // simple_bus_type爲總線類型 // simple_bus爲總線設備 // // simple.c 實現 #in

原创 網絡子系統77_套接字接收

// accept系統調用 // 步驟: // 1.由內核公共部分創建一個新套接字描述符,並分配其對應的文件描述符 // 2.新套接字使用accept之上的套接字相同的套接字類型和操作 // 3.交由具體協議完成accept //

原创 最牛B的編碼套路

轉自:http://blog.csdn.net/happydeer/article/details/17023229 同樣感謝我家帥帥推薦的這篇文章,同與譯者共勉^-^ 最近,我大量閱讀了Steve Yegge的文章。其中有一篇叫“

原创 網絡子系統82_inet協議族-SOCK_RAW(三)

// 向raw sock傳遞skb // 步驟: // 1.根據協議號獲取監聽指定protocol的sock // 2.向raw sock傳遞skb 1.1 int raw_local_deliver(struct sk_buff *

原创 cgroup子系統5_cpuset子系統

cpuset子系統爲cgroup中的任務分配獨立CPU(在多核系統)和內存節點。cpuset_cgroup的cpus_allowed和mems_allowed定義 了該cpuset包含的cpu和內存節點,其中進程的task_struct-

原创 網絡子系統85_inet協議族-l3向上

// ip數據報向本地傳遞 // 調用路徑:ip_rcv->dst_input->...->ip_local_deliver 1.1 int ip_local_deliver(struct sk_buff *skb) { //如果ip數

原创 vim個人配置總結

ctags 1.下載:http://sourceforge.net/projects/ctags/files/ctags/5.8/ctags-5.8.tar.gz/download 2.編譯:./configure -prefix /us

原创 網絡子系統87_veth實現

//使用veth //1.創建兩塊虛擬網卡veth1、veth2,然後點對點連接,此後兩塊網卡的數據會互相發送到對方 $ ip link add veth1 type veth peer name veth2 //2.創建網絡命名空間t

原创 cgroup子系統1_cpu子系統

cpu子系統用於控制cgroup中所有進程可以使用的cpu時間片,通過組調度(將task_group作爲調度實體)來實現。 參考博客: 1.cpu子系統 2.Linux內核之CFS調度和組調度

原创 cgroup子系統4_memory子系統

memory子系統設定cgroup中任務使用的內存限制,並自動生成那些任務使用的內存資源報告。memory子系統是通過 linux的resource counter機制實現的,在進程進行內存分配、釋放時對進程進行charge、uncha

原创 cgroup子系統2_devices子系統

devices子系統用於控制cgroup中所有進程可以訪問哪些設備,三個控制文件:devices.allow,devices.deny,devices.list。 devices.allow用於指定cgroup中的進程可以訪問的設備, d

原创 graph driver-device mapper-02driver基本操作

// 清除thin pool 1.1 func (d *Driver) Cleanup() error { // 停止thin pool err := d.DeviceSet.Shutdown() return err } //

原创 cgroup子系統3_freezer子系統

freezer子系統用於掛起和恢復cgroup中的進程。freezer有一個控制文件:freezer.state,將FROZEN寫入該文件, 可以將cgroup中的進程掛起,將THAWED寫入該文件,可以將已掛起的進程恢復。通過遍歷cgr