原创 Linux下的IPC-UNIX Domain Socket

一、 概述 UNIX Domain Socket是在socket架構上發展起來的用於同一臺主機的進程間通訊(IPC),它不需要經過網絡協議棧,不需要打包拆包、計算校驗和、維護序號和應答等,只是將應用層數據從一個進程拷貝到另一個進程。UN

原创 淺析Linux內核同步機制

       很早之前就接觸過同步這個概念了,但是一直都很模糊,沒有深入地學習瞭解過,近期有時間了,就花時間研習了一下《linux內核標準教程》和《深入linux設備驅動程序內核機制》這兩本書的相關章節。趁剛看完,就把相關的內容總結一下

原创 Linux-2.6.25內核幀緩衝設備驅動分析

幀緩衝(framebuffer)設備應用於linux顯示技術方面。因爲linux的顯示平臺已經全部基於framebuffer,所以目前在linux環境下開發圖形化界面、遊戲、影視軟件等可視化應用時都必須用到幀緩衝技術,而現在隨着消費逐漸娛

原创 數據結構-堆和優先隊列

1、定義 堆:是一種樹形組織,使我們能夠迅速確定包含最大值的節點。 優先隊列:它是一個從堆自然衍生而來是數據結構。在優先隊列中,數據保存在一個堆中,這樣我們能夠迅速確定下一個最高優先級的節點。 2、應用 排序、任務調度、包裹分揀、霍夫曼編

原创 數據結構-樹

1、樹的定義:樹是算法中常用的數據結構。以下給出針對於二叉樹、以及二叉搜索樹的代碼實現。 2、代碼實現 (1)二叉樹 <span style="font-size:18px;"><span style="font-size:14px;"

原创 typedef 用法詳解(一)

第一篇:typedef struct與struct的區別 1. 基本解釋 typedef爲C語言的關鍵字,作用是爲一種數據類型定義一個新名字。這裏的數據類型包括內部數據類型(int,char等)和自定義的數據類型(struct等

原创 數據結構-圖

1、圖的定義 圖:是一種靈活的數據結構,一般作爲一種模型用來定義對象之間的關係或者聯繫。對象由頂點表示,而對象之間的關係或關聯則通過頂點之間的邊來表示。 2、圖的應用 圖算法、統計網絡跳數、拓撲排序、圖着色、哈密頓圈問題、分團問題、可序列

原创 linux內核空間和用戶空間的是怎樣區別的,如何交互,如何從用戶空間進入內核空間

linux驅動程序一般工作在內核空間,但也可以工作在用戶空間。下面我們將詳細解析,什麼是內核空間,什麼是用戶空間,以及如何判斷他們。   Linux簡化了分段機制,使得虛擬地址與線性地址總是一致,因此,Linux的虛擬地址空

原创 Linux用戶空間與內核空間

Linux 操作系統和驅動程序運行在內核空間,應用程序運行在用戶空間,兩者不能簡單地使用指針傳遞數據,因爲Linux使用的虛擬內存機制,用戶空間的數據可能被換出,當內核空間使用用戶空間指針時,對應的數據可能不在內存中。 Li

原创 淺析Linux字符設備驅動程序內核機制

        前段時間在學習linux設備驅動的時候,看了陳學鬆著的《深入Linux設備驅動程序內核機制》一書。說實話,這是一本很好的書,作者不但給出了在設備驅動程序開發過程中的所需要的知識點(如相應的函數和數據結構),還深入到linu

原创 信號量機制中的DOWN操作與UP操作詳解

DOWN操作:linux內核中,對信號量的DOWN操作有如下幾種: void down(struct semaphore *sem); //不可中斷int down_interruptible(struct semaphore *s

原创 Linux內核啓動過程總結(圖文)

前些時間在學習linux內核的時候,有完整地看過linux內核啓動的代碼,但是可能是因爲彙編語言基礎不夠紮實,很多地方沒有理解到位,所以兩個月過去了,現在回頭看又覺得生疏了。不過我發現對啓動引導過程的整體理解非常有利於具體啓動代碼的理解和

原创 淺析Linux驅動模型中的底層數據結構kobject和kset

1、kobject         Linux內核用kobject來表示一個內核對象。它和Sysfs文件系統聯繫密切,在內核中註冊到系統中的每個kobject對象在sysfs文件系統中對對應着一個文件目錄。kobject數據結構通常的

原创 linux 信號量

信號(signal)是一種軟件中斷,它提供了一種處理異步事件的方法,也是進程間惟一的異步通信方式。在Linux系統中,根據POSIX標準擴展以後的信號機制,不僅可以用來通知某種程序發生了什麼事件,還可以給進程傳遞數據。 一、信號的來源

原创 ARM-LINUX交叉編譯環境的搭建

1、交叉編譯環境 點贊 收藏 分享 文