原创 Linux內核部件分析--記錄生命週期的kref

kref是一個引用計數器,它被嵌套進其它的結構中,記錄所嵌套結構的引用計數,並在計數清零時調用相應的清理函數。kref的原理和實現都非常簡單,但要想

原创 人生(最經典的十句話)

一、成功都是逼出來的; 二、如果你簡單,這個世界就對你簡單; 三、懷才就像懷孕,時間久了會讓人看出來; 四、過去酒逢知己千杯少,現在酒逢千杯知己少; 五、參加一次21天訓練營,行動力強弱決定成功快慢; 六、人生如果錯了方向,停止就

原创 Linux內核部件分析--連通世界的list

在linux內核中,有一種通用的雙向循環鏈表,構成了各種隊列的基礎。鏈表的結構定義和相關函數均在include/linux/list.h中,下面就來

原创 Linux內核部件分析--原子性操作atomic_t

在任何處理器平臺下,都會有一些原子性操作,供操作系統使用,我們這裏只講x86下面的。在單處理器情況下,每條指令的執行都是原子性的,但在多處理器情況下

原创 嵌入式Linux啓動流程分析

當Bootloader將控制權交給內核的引導程序時,第一個執行的程序就是head.S,它完成了加載內核的大部分工作;misc.c則提供加載內核所  

原创 Linux內核部件分析--設備驅動模型之device

linux的設備驅動模型,是建立在sysfs和kobject之上的,由總線、設備、驅動、類所組成的關係結構。從本節開始,我們將對linux這一設備

原创 Linux內核部件分析--設備驅動模型之driver

上節我們分析設備驅動模型中的device,主要是drivers/base/core.c,可以說是代碼量最大的一個文件。本節要分析的驅動driver,

原创 kmalloc kfree學習筆記

2.6.26中的內存管理大概分爲3個層次SLUB,夥伴系統和ZONE,其中SLUB在最高層,這裏通過分析kmalloc和kfree來分析SLUB的模型,在內存管理中還有NUMA系統,但是NUMA不是必須得,所以以下筆記建立在無SMP和不使

原创 Linux內核部件分析--設備驅動模型的基石kobject

之前我們分析了引用計數kref,總結了sysfs提供的API,並翻譯了介紹kobject原理及用法的文檔。應該說準備工作做得足夠多,kobject的

原创 ubuntu下編譯內核

本文的參考網站: http://kernel-handbook.alioth.debian.org/   在分析linux內核源碼的過程中,要是能夠修改內核源碼並運行修改後的內核,我想肯定是令人高興的事,哪怕第一次修改僅僅是在啓動時打印一

原创 arm-none-linux-gnueabi交叉工具鏈安裝

arm-none-linux-gnueabi交叉工具鏈與arm-linux-gcc 的區別: 參考網友的說法:eabi標準的要好些,可能arm-linux-gcc就是arm-none-linux-gnueabi的一個鏈接 參考網友的一些做

原创 Linux內核部件分析--更強的鏈表klist

前面我們說到過list_head,這是linux中通用的鏈表形式,雙向循環鏈表,功能強大,實現簡單優雅。可如果您認爲list_head就是鏈表的極致

原创 關於do_initcalls函數的說明

1. 在看linux核心代碼的時候看到/init/main.c 裏面的do_initcalls函數 static void __init do_initcalls(void)742 {743         initcall_t *

原创 s3c2410_lcd & frame buffer 驅動分析

s3c2410_lcd & frame buffer 驅動分析 時間:2010-06-08 20:37來源:cnitblog.com 作者:luofuchong 點擊:346次 s3c2410_lcd & frame buffer

原创 Linux 內存管理系統:初始化

inux 內存管理系統:初始化 作者:Joe Knapka 臭翻:colyli 內存管理系統的初始化處理流程分爲三個基本階段: 激活頁內存管理  在swapper_pg_dir中初始化內核的頁表  初