原创 內存儲器管理概述、內存分配與釋放、地址映射機制(mm_struct, vm_area_struct)、malloc/free 的實現
注:本分類下文章大多整理自《深入分析linux內核源代碼》一書,另有參考其他一些資料如《linux內核完全剖析》、《linux c 編程一站式學習》
原创 bootloader之little kernel
LK是什麼 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代碼 ,little kernel 是小內核小操作系統。
原创 bluetooth之power on流程
Bluetooth服務(以及藍牙的A2DP服務)都是通過SystemServer啓動(frameworks/base/services/java/com/android/server/SystemServer.java) Fram
原创 bluetooth數據收發
net/socket.c SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)->sock_create()->__sock_create()-> pf = rcu_
原创 使用 ftrace 調試 Linux 內核,第 1 部分
概述 ftrace 是 Linux 內核中提供的一種調試工具。使用 ftrace 可以對內核中發生的事情進行跟蹤,這在調試 bug 或者分析內核時非常有用。本系列文章對 ftrace 進行了介紹,分爲三部分。本文是第一部分,介紹了內核相關
原创 linux-uart
drivers/tty tty_write()->(ld->ops->write)//調用線路規程的ld->ops的write(n_tty_writ
原创 Linux 下 stdin stdout stderr 的由來
現在就從linux kernel的源代碼的角度來分析該問題 fork()與execve()中stderr,stdio.stdout的繼承關係 其實用繼承這個詞好像不太準確,要準確一點,可能複製更適合. 首先有2點: 1:父進程fork
原创 completion
1 數據結構 struct completion { unsigned int done; wait_queue_head_t wait;//等待隊列頭 }; 2 初始化 2.1 動態 static inline void ini
原创 ARM Linux異常處理之data abort
本文簡要分析了ARM Linux的data abort異常處理過程,內核版本2.6.28,s3c6410平臺。 1 異常向量與程序跳轉 data a
原创 ARM linux解析之壓縮內核zImage的啓動過程 二
3. .text段開始,先是內核解壓地址的確定 再往下看,代碼如下: .text #ifdef CONFIG_AUTO_ZRELADDR @ determine
原创 探討藍牙協議棧的原理和結構
藍牙,這個已經不是什麼新鮮的技術了,相信大多數人都是瞭解的。那麼對於這方面,我們可以在嵌入式操作中進行一下實現。在藍牙系統中,爲了支持不同應用,需要使用多個協議,這些協議按層次組合在一起,構成了藍牙協議棧.藍牙協議棧是藍牙技術的核心組成部
原创 glibc-printf
printf()函數定義在stdio-common/printf.c #include <libioP.h> #include <stdarg.h> #include <stdio.h> #undef printf /* Write
原创 kprobe module code
#include <linux/kprobes.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/device.h> #include <lin
原创 使用 ftrace 調試 Linux 內核,第 2 部分
ftrace 是 Linux 內核中提供的一種調試工具。使用 ftrace 可以對內核中發生的事情進行跟蹤,這在調試 bug 或者分析內核時非常有用
原创 jprobe module code
#include <linux/kprobes.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/device.h> #include <lin