随笔分类 -  Linux

上一页 1 2 3 4 5 6 ··· 12 下一页
Linux 应用编程、驱动编程、内核知识、读书笔记
摘要:在閱讀Linux內核代碼的時候,會經常遇到下面的幾個宏函數: IS_ENABLED 這個宏最爲常見 IS_BUILTIN IS_MODULE IS_REACHABLE 這幾個宏函數是在文件include/linux/kconfig.h中定義的,如下: 首先需要有一些基礎知識. 我們知道,在進行內核配 阅读全文
posted @ 2016-10-14 14:45 摩斯电码 阅读(4219) 评论(0) 推荐(1) 编辑
摘要:1. 《Linux內核設計與實現》第三版 讀書筆記 == 阅读全文
posted @ 2016-09-05 09:34 摩斯电码 阅读(458) 评论(0) 推荐(0) 编辑
摘要:1. 中斷處理程序的侷限 以異步方式執行,並且有可能打斷其他重要代碼。所以爲了避免被打斷的代碼的停止時間過長,中斷處理程序應該執行得越快越好 如果當前有一個中斷處理程序在運行,在最好的情況下(如果IRQF_DISABLED沒有被設置),與該中斷同級的其他中斷會被屏蔽,最壞的情況下(設置IRQF_DI 阅读全文
posted @ 2016-09-04 16:02 摩斯电码 阅读(227) 评论(0) 推荐(0) 编辑
摘要:1. 隨着2.6版內核的出現,Linux內核已經發展成搶佔式內核,如果不加保護,調度程序可以在任何時刻搶佔正在運行的內核代碼,重新調度其他的進程執行 2. 臨界區或者臨界段:訪問和操作共享數據的代碼段 3. 如果兩個執行線程(指代的是任何正在執行的代碼,如一個在內核執行進程、一個中斷處理程序或者內核 阅读全文
posted @ 2016-09-04 16:02 摩斯电码 阅读(172) 评论(0) 推荐(0) 编辑
摘要:可以參考《深入Linux內核架構》第二章閱讀筆記。 1. 調度程序的職責 負責決定那個進程投入運行,何時運行以及運行多長時間 在一組處於可運行狀態的進程中選擇一個來執行,這是調度程序的基本工作 負責決定那個進程投入運行,何時運行以及運行多長時間 在一組處於可運行狀態的進程中選擇一個來執行,這是調度程 阅读全文
posted @ 2016-09-04 16:01 摩斯电码 阅读(226) 评论(0) 推荐(0) 编辑
摘要:1. 系統調用的作用 爲用戶空間提供了一種硬件的抽象接口。如Linux的“萬物皆文件”的思想,APP讀取文件不用關心磁盤或者文件系統的類型 保證系統的穩定和安全。因爲內核是作爲Hardware跟APP之間的中間人,可以避免APP不正確地使用Hardware,竊取其他進程的資源,或其他危害系統的事情。 阅读全文
posted @ 2016-09-04 16:01 摩斯电码 阅读(511) 评论(0) 推荐(0) 编辑
摘要:来自为知笔记(Wiz) 阅读全文
posted @ 2016-09-04 16:01 摩斯电码 阅读(143) 评论(0) 推荐(0) 编辑
摘要:1. 異常和中斷 異常:必須考慮與處理器時鐘同步,由軟件產生,亦稱爲同步中斷。如除零異常和缺頁異常 中斷:由硬件產生的異步中斷 異常:必須考慮與處理器時鐘同步,由軟件產生,亦稱爲同步中斷。如除零異常和缺頁異常 中斷:由硬件產生的異步中斷 2. 中斷處理程序 中斷處理程序是被內核調用來響應中斷的,運行 阅读全文
posted @ 2016-09-04 16:01 摩斯电码 阅读(1415) 评论(0) 推荐(0) 编辑
摘要:1. 內核源碼樹的根目錄描述 加密API 2. 在修改過內核配置文件.config後,或者用已有的配置文件配置新的代碼樹的時候,使用下面的命令驗證和更新配置 3. 如果配置了內核選項CONFIG_IKCONFIG和CONFIG_IKCONFIG_PROC,那麼就會把完整的壓縮過的內核配置文件存放在/ 阅读全文
posted @ 2016-09-04 16:00 摩斯电码 阅读(868) 评论(0) 推荐(0) 编辑
摘要:可以參考《深入Linux內核架構》第二章閱讀筆記。 1. 進程 process 程序本身並不是進程,進程是處於執行期的程序以及相關的資源的總稱。如:可執行代碼段、打開的文件、掛起的信號、內核內部數據、處理器狀態、一個或多個具有內存映射的內存地址空間以及一個或多個執行線程、存放全局變量的數據段等等。 阅读全文
posted @ 2016-09-04 16:00 摩斯电码 阅读(421) 评论(0) 推荐(0) 编辑
摘要:1. Linux是類Unix系統,但他不是Unix。 儘管Linux借鑑了Unix的許多設計並且實現了Unix的API(由Posix標準和其他Single Unix Specification定義的),但Linux沒有像其他Unix變種那樣直接使用Unix的源代碼。 2. Linux系統的基礎是內核 阅读全文
posted @ 2016-09-04 15:55 摩斯电码 阅读(349) 评论(0) 推荐(0) 编辑
摘要:在Linux系統中可以通過memblock來設置系統保留物理內存,防止這些內存被內存管理系統分配出去。 作者: 彭東林 郵箱: pengdonglin137@163.com 平臺 硬件平臺: TQ2440 Linux版本:Linux 3.14.45 說明 1. 在tq2440上,物理內存的起始地址是 阅读全文
posted @ 2016-09-03 15:33 摩斯电码 阅读(4768) 评论(0) 推荐(1) 编辑
摘要:作者:彭東林 郵箱:pengdonglin137@163.com 日期:2016-08-26 18:04:14 在進行Linux驅動開發時經常見到使用pr_debug和dev_dbg打印驅動的log,如果在內核配置時選擇了CONFIG_DYNAMIC_DEBUG宏,那麼就可以利用類似下面的命令打開對 阅读全文
posted @ 2016-08-25 21:07 摩斯电码 阅读(16067) 评论(3) 推荐(0) 编辑
摘要:在Linux内核中有一个宏__stringify,在include/linux/stringify.h定义如下: 其作用实际上就是 把 x 直接转换为字符串。其返回值就是字符串,而不是变量名。 用法1: 假设我们这样使用 __ATTR: __ATTR(var_name, 777, show_func 阅读全文
posted @ 2016-08-19 18:52 摩斯电码 阅读(1063) 评论(0) 推荐(0) 编辑
摘要:摘自Linux-3.18.20的头文件include/uapi/asm-generic/errno-base.h和include/uapi/asm-generic/errno.h: #define EPERM 1 /* Operation not permitted */ #define ENOEN 阅读全文
posted @ 2016-08-12 16:34 摩斯电码 编辑
摘要:test_and_set_bit(int nr, long* addr) 将*addr 的第n位设置成1,并返回原来这一位的值 阅读全文
posted @ 2016-03-29 15:41 摩斯电码 阅读(3094) 评论(0) 推荐(0) 编辑
摘要:转载: http://blog.csdn.net/buaaroid/article/details/7390415 asmlinkage/FASTCALL()/fastcall 这三个宏指定了函数参数的传递方式。asmlinkage修饰的函数,其参数通过堆栈传递。FASTCALL()/fastcal 阅读全文
posted @ 2016-03-22 16:26 摩斯电码 阅读(2251) 评论(0) 推荐(1) 编辑
摘要:转载: http://blog.chinaunix.net/uid-26980210-id-3300895.html 用gdb查看内存 格式: x /nfu <addr> 说明x 是 examine 的缩写 n表示要显示的内存单元的个数 f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按 阅读全文
posted @ 2016-03-10 15:21 摩斯电码 阅读(2598) 评论(0) 推荐(1) 编辑
摘要:作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Bo 阅读全文
posted @ 2016-03-07 23:01 摩斯电码 阅读(2722) 评论(3) 推荐(1) 编辑
摘要: 阅读全文
posted @ 2016-03-06 18:09 摩斯电码 阅读(10497) 评论(5) 推荐(3) 编辑

上一页 1 2 3 4 5 6 ··· 12 下一页