原创 內存儲器管理概述、內存分配與釋放、地址映射機制(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