原创 Linux移植的一般過程

前一陣子在公司移植Linux2.6到一塊ARM11的開發板上,下面粗略講講移植Linux的一般過程。   一開始的UBOOT的移植不多說了。UBOOT最後有兩種方式進入Linux,一種是使用uImage,可以在引導時附加命令行參數,但操作

原创 Linux hrtimer分析(一)

本文分析了Linux2.6.29中hrtimer的實現。   Linux2.6中實現了一種新的定時器hrtimer。與傳統定時器使用時間輪算法不同,hrtimer使用了紅黑樹算法。hrtimer本身可以配置成高精度和普通精度兩種,在單CP

原创 Linux動態庫函數介紹

頭文件 #include <dlfcn.h>     加載動態庫 void *dlopen(const char *filename, int flag); flag的可能值: l        RTLD_LAZY l        RT

原创 實現自己的操作系統 第三部分

3-1 2006-1-9 23:43 實現了和C函數的整合。 ld -Ttext org之後的obj的順序似乎有講究。 call 命令對堆棧的影響: 16位的實模式中,會將cs和ip壓棧,因此棧會減少4。 32位的保護模式中,如果是段內調

原创 深入Linux網絡核心堆棧

目錄1 - 簡介  1.1 - 本文涉及的內容  1.2 - 本文不涉及的內容2 - 各種Netfilter hook及其用法  2.1 - Linux內核對數據包的處理  2.2 - Netfilter對IPv4的hook3 - 註冊和

原创 The journey of a packet through the linux 2.4 network stack

作者介紹: Harald Welte is one of the five netfilter/iptables core team members, and is the current Linux 2.4.x firewalling

原创 Linux內核紅黑樹使用方法

轉載自Linux2.6.29 內核文檔,rbtree.txt 如果要使用紅黑樹,可直接複製內核中的代碼rbtree.c/h Red-black Trees (rbtree) in Linux January 18, 2007 Rob

原创 實現自己的操作系統 第二部分

2-1 實現了內存的檢測。下一步:讀kernel.bin到內存。目前內存信息放在8000:f000開始的4k空間中。以後此空間會被拷貝到“0頁”,即0x00104000處。 Linux中關於內存檢測的參數在e820.h中。 內存檢測結果如

原创 不使用遞歸和堆棧,遍歷二叉樹所有葉子節點的算法

最近看1-wire總線的DS2480芯片,裏面用到了一種不使用遞歸來遍歷二叉樹葉子節點的算法。這裏歸納了一下,供參考。 因爲沒編譯過,所以細節上可能會有點問題。但算法保證是正確的。   // g_bFlag中保存的是節點的路徑,數組中某一

原创 實現自己的操作系統--序

最近整理電腦,找到自己2年以前寫的一個操作系統,放到網上共享一下。當時的代碼有的地方看起來還比較幼稚。 系統開始時的bootloader部分是參考《自己動手寫操作系統》做的,那本書裏面如何搭建環境寫得很詳細,另外還有一些PC的基本概念寫的

原创 Linux2.6軟中斷分析

Linux2.6的軟中斷框架與2.4相比有了一些不同:2.2之前的傳統bottom half已經幾乎沒有了,任務隊列被取消,軟中斷的調用時機也有所不同。下面分析一下2.6軟中斷的框架。 2.6中軟中斷還是由函數do_softirq調用,但

原创 linux spi驅動分析

關於spi的學習,我覺得最好的方法還是看Linux的源代碼,主要是driver/spi/spi.c(h),spidev.c(h)。spi dev的示例可以看看at25.c,spi總線的示例可以看omap_uwire或者spi_s3c24x

原创 uevent分析

1.kobject, ktype, kset kobject代表sysfs中的目錄。 ktype代表kobject的類型,主要包含release函數和attr的讀寫函數。比如,所有的bus都有同一個bus_type;所有的class都有同

原创 C++中幾個比較不常用的關鍵字

轉自http://dev.21tx.com    mutable關鍵字  關鍵字mutable是C++中一個不常用的關鍵字,他只能用於類的非靜態和非常量數據成員  我們知道一個對象的狀態由該對象的非靜態數據成員決定,所以隨着數據成員的改變

原创 Linux2.6 input子系統分析

Linux的input子系統提供了輸入設備的驅動框架,比如鼠標、鍵盤、觸摸屏等就屬於輸入設備。Linux中關於input子系統的文檔在Documentation/input目錄,input的核心代碼在input.c和input.h中。 本