原创 Binder子系統驅動架構

Binder作爲Android系統的主要進程間通信方式,在驅動層不會有開發的需求,我們主要還是瞭解下binder在驅動層的運行原理;要想掌握linux驅動開發就要理解linux驅動模型,同樣道理,要想理解android系統,那麼

原创 雙系統安裝WIN7+ubuntu16.04

1.U盤安裝WIN7 1.1 製作一個大白菜U盤啓動盤 1.2 技嘉主板,開機F2或者F12,開機引導使用U盤 1.3 進入PE安裝WIN7 出現的問題: a. 由於要安裝ubuntu,所以一開始分區的時候要這麼分:

原创 linux時間子系統 - 時間概念

1. UTC與GMT UTC,協調世界時(Coordinated Universal Time),又稱世界統一時間,世界標準時間,國際協調時間。協調世界時是以原子時秒長爲基礎,在時刻上儘量接近於世界時的一種時間計量系統。這套時間

原创 linux時間子系統 - clockevents和tick_device

在驅動中,clock設備在註冊的時候會被註冊進clockevent,每個clockevent會轉化爲tick device,然後會進行一次選擇,最後成爲某種類型的tick device(包括oneshot/periodic/br

原创 shell命令-dd

用途 用指定大小的塊拷貝一個文件,並在拷貝的同時進行指定的轉換。 語法 dd [OPERAND]... dd OPTION 描述 if =輸入文件(或設備名稱)。 of =輸出文件(或設備名稱)。 ibs

原创 linux內核-notifier事件通知鏈

#Ref. Linux內核基礎–事件通知鏈(notifier chain) linux notifier機制及應用

原创 linux進程身份 - 進程類型與進程關係

文章系列 進程類型 進程與線程(輕量級進程) 借用情景分析中的定義,本小節來介紹linux內核中的進程與線程,在linux中進程都具有下列四個要素: 1. 有一段程序供其執行,這段程序不一定是進程所專有,可以與其他進程共用

原创 linux進程身份 - 進程標識

1. 進程標識 在Linux中,在同一命名空間中,進程總是會被分配唯一的號碼來標識它們,該號碼被稱作進程ID號,簡稱PID。對於進程和線程來說,他們都是用同樣的結構體task_struct來表示,可以都被看做是進程,在內核中,他

原创 linux時間子系統 - clocksource/timekeeper

linux時間子系統中有一個很重要的記錄時間的模塊就是timekeeper,而timekeeper需要底層clock硬件設備的支持,每一個設備用結構體clocksource來表示,註冊進系統的每一個clocksource會憑藉優

原创 linux時間子系統 - 動態任務

1. 動態任務的切換 系統初期是在periodic模式,在週期性函數調用update_process_times過程中,會進行動態任務的切換,具體是在函數hrtimer_run_queues中進行 2. 低精度模式下的動態任務

原创 shell命令 - find

用途 遞歸查找目錄下的文件 語法 find [path…]  [expression] 描述 [path…]:可以添加多個路徑 [expression]: -name ‘pattern’ 查找pattern文件 -prune

原创 linux進程調度 - 進程調度初始化與運行隊列

1. 進程調度類初始化 創建進程時,進程調度類的初始化在函數sched_fork()中進行 (kernel/sched/core.c) int sched_fork(unsigned long clone_flags, stru

原创 linux進程創造 - 創建進程API及過程

1. 創建進程函數API 1.1 創建進程fork() fork的翻譯爲“叉子,分叉”,其實在unix編程中,我們來創建進程的時候是深有體會的,感覺創建一個進程就像是走到了一個岔路口,父進程和子進程在叉路口分道揚鑣,所以我想這就

原创 linux時間子系統 - 總體框架

1. 定時器類型 經典定時器(低精度) 內核最初版本就是提供的此類定時器,實現於kernel/timer.c中,提供的典型分辨率爲4ms,從現在看來分辨率很低,此類定時器只產生週期性的信號 高精度定時器 隨着應用需求的提升,後來

原创 linux進程調度 - 組織進程

1. 進程的運行狀態 進程的運行狀態有下面這麼幾種: 進程運行狀態 描述 TASK_RUNNING 運行的進程被設置 TASK_INTERRUPTIBLE 進程被掛起,除非有硬件中斷或者信號傳遞來喚醒進程 T