前言最近做的事情很多地方用到Linux驅動層與應用層的通信,在此總結下常見的並且在我工作中用到的通信方法。總結由於每種方法都可以找到大量的示例代碼,同時還有詳細的函數手冊,我就不貼代碼了。只列下相關的方法和一個鏈接。procfsnet
1,hello:最基本的hello world內核模塊makesudo insmod hello.kodmesg |tailsudo rmmod hello/*************** hello.c **************
對官方提供的內核源碼包進行解壓縮,進入到內核目錄,使用make menuconfig後,發現提示以下錯誤:[code]*** Unable to find the ncurses libraries or the *** requir
進程描述進程描述符(task_struct)用來描述進程的數據結構,可以理解為進程的屬性。比如進程的狀態、進程的標識(PID)等,都被封裝在了進程描述符這個數據結構中,該數據結構被定義為task_struct進程控制塊(PCB)是操作
這篇文章本來是在tcp那篇裡面的,但是那篇太長了,不專一。就完善了一下提取出來了。TCP擁塞控制擁塞控制討論的是很多個同時存在的tcp連接應該怎麼規劃自己的數據包發送和接收速度,以在彼此之間共享帶寬,同時與其他實體的機器公平的競爭帶寬
1, 打補丁之前需要准備好原始文件和補丁文件,例如給linux系統打補丁需要准備好linux-2.6.22.6.tar.bz2(原始文件)和linux-2.6.22.6_jz2440.patch(補丁文件),2, 將這兩個文件放到li
1 解壓縮內核源碼2 給源碼打補丁3 配置a make(完全手動)b 使用默認的配置,在上面修改在arch/arm/configs/找到對應的配置文件 xxxdefconfig執行make xxxdefconfig 執行完成
內核編程中常見的一種模式是,在當前線程之外初始化某個活動,然後等待該活動的結束。這個活動可能是,創建一個新的內核線程或者新的用戶空間進程、對一個已有進程的某個請求,或者某種類型的硬件動作,等等。在這種情況下,我們可以使用信號量來同步這
struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ struct thread_info *thr
Linux內核中如何增加自己的驅動代碼?本文給出了詳細的步驟。其實本質上就是修改kconfig和makefile兩個文件。先熟悉下kconfig的語法1.menumenuname 2.configuremyconfiguren
簡單的LINUX字符設備驅動及編譯進Linux內核… 2010-07-06 11:23:00| 分類: 嵌入式linux|舉報|字號 訂閱 下載LOFTER我的照片書 |驅動代碼:#include <linux/init
net.ipv4.tcp_syn_retries = 1net.ipv4.tcp_synack_retries = 1net.ipv4.tcp_keepalive_time = 600net.ipv4.tcp_keepalive_pr
今天研究了一下系統調用和標准庫函數的區別和聯系,從網上搜集的資料如下:資料引用分割線(紅字為自己批注的重點和總結)《===========================================================
前言最近在學習老羅博客,看到他的《在Ubuntu上為Android系統編寫Linux內核驅動程序》一文(文章鏈接),自己也躍躍欲試,不過教程是基於goldfish-2.6.29內核的,而我的環境是android 6.0,goldfis
導讀Linux內核采用的是模塊化技術,這樣的設計可以使得系統內核保持最小化,同時確保了內核的可擴展性和可維護性,模塊化設計允許我們在需要時才將模塊加載至內核,實現動態內核的調整。下面我給大家介紹一下有關內核的操作方法。內核模塊存放位置
我們都知道在用戶空間動態申請內存用的函數是 malloc(),這個函數在各種操作系統上的使用是一致的,對應的用戶空間內存釋放函數是 free()。注意:動態申請的內存使用完後必須要釋放,否則會造成內存洩漏,如果內存洩漏發生在內核空間,
Linux實現中斷處理內核是怎麼知道應用程序要調用系統調用的呢?或者說應用程序怎麼通知系統內核自己需要執行一個系統調用,這是通過軟中斷實現的,通過引發一個異常來促使系統切換到內核態去執行異常處理程序PS:什麼時候會從用戶態切換到內核態
幾乎每一種外設都是通過讀寫設備上的寄存器來進行的,通常包括控制寄存器、狀態寄存器和數據寄存器三大類,外設的寄存器通常被連續地編址。根據CPU體系結構的不同,CPU對IO端口的編址方式有兩種:(1)I/O映射方式(I/O-mapped)
導讀Linux 內核中自己實現了雙向鏈表,可以在 include/linux/list.h 找到定義。我們將會首先從雙向鏈表數據結構開始介紹內核裡的數據結構。為什麼?因為它在內核裡使用的很廣泛,你只需要在 free-electrons