原创 策略路由基礎命令(Linux)

策略路由是一種比基於目標網絡進行路由更加靈活的數據包路由轉發機制。我們主要講解了策略路由配置的相關命令,希望讓您對策略路由有一個更加深刻的理解...  策略路由 策略性是指對於IP包的路由是以網絡管理員根據需要定下的一些策略爲主要依據進行

原创 爲什麼需要字節對齊

概念  在C語言中,結構是一種複合數據類型,其構成元素既可以是基本數據類型(如int、long、float等)的變量,也可以是一些複合數據類型(如數組、結構、聯合等)的數據單元。在結構中,編譯器爲結構的每個成員按其自然邊界(alignm

原创 解讀PTR_ERR,ERR_PTR,IS_ERR

        最近要找工作了,就把內核以及驅動的知識複習了一下。看到了幾個宏PTR_ERR,ERR_PTR,IS_ERR(其實是內聯函數).還是不太明白,然後就google搜索了一下,搜出來的結果真是不

原创 module_init的內核調用順序

現在以module_init爲例分析initcall在內核中的調用順序 在頭文件include/linux/init.h中,有如下定義: #define module_init(x)     __initcall(x); #de

原创 struct file_operations中 ioctl 和 unlocked_ioctl

轉載自 "http://blog.chinaunix.net/uid-20543672-id-3015637.html" 很久都沒有寫驅動代碼了,對於一些驅動相關的內核變化也沒有怎麼關心。這次重遊《LDD3》獲益良多,其值對於struct

原创 linux 用戶空間與內核空間——高端內存詳解

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

原创 udev 規則文件介紹

1. 配置文件 udev的配置文件位於 /etc/udev/ 和 /lib/udev/ ( # 開頭的是註釋) udev 的主配置文件是 /etc/udev/udev.conf。 它包含一套變量,允許用戶修改 udev 默認值。可以設置的

原创 x86架構PC機系統總線概述

總線的演變 首先應該講講總線的演變歷史,這方面《PC架構系列:CPU/RAM/IO總線的發展歷史!》這篇文章寫得很好!感謝文章的作者!以下內容大量來自這篇文章,可以說是這篇文章的縮減轉載。 公共總線 早期PC中,CPU/RAM/IO都是掛

原创 linux ioctl 控制字

 在Linux字符設備驅動入門(一)中,我們實現了字符設備的簡單讀寫字符功能,接下來我們要在這個基礎上加入ioctl功能。首先,我們先來看看3.0內核下../include/linux/fs.h中file_operations結構體的定義

原创 linux程序分析工具介紹-ldd,nm

轉載自: http://www.wuzesheng.com/?p=1595 本文要介紹的ldd和nm是linux下,兩個用來分析程序很實用的工具。ldd是用來分析程序運行時需要依賴的動態庫的工具;nm是用來查看指定程序中的符號表相關內容的

原创 Linux操作系統實時性學習總結

一、實時系統基本概念 什麼是實時系統,POSIX作了這樣的定義:指能夠在限定的響應時間內提供所需水平服務的系統。另個一被Donald Gillies提出定義爲:一個實時系統是指計算的正確性不僅取決於程序的邏輯正確性,也取決於結果產生的時間

原创 L3總線接口

下面介紹一下L3總線接口(一些codec 芯片中使用,Eg: uda1341) L3就是line 3(3條線)的意思,它只有L3DATA(數據線:用於傳輸數據)、L3MODE(模式線:用於選擇模式)、L3

原创 X11 Wayland 及 Mir 比較

Mir Canonical 2013年3月宣佈開發自己的顯示服務器 Mir之後,引發了開源界的大量譴責,很多人指責Canonical爲什麼不採用被設計用來取代X11的Wayland,Wayland的開發者也表示Wayland完全能夠滿足C

原创 linux 程序存儲結構

inux系統下,程序是一個可執行文件,通常是ELF格式。通常,Linux的可執行文件擁有兩種內存分配方式:存儲時 和 運行時 1、存儲時 看實例,下面是對可執行文件aa運行size命令後得到的結果。 [root@xxx1 algriom]

原创 I2C總線協議

1.I2C協議  2條雙向串行線,一條數據線SDA,一條時鐘線SCL。   SDA傳輸數據是大端傳輸,每次傳輸8bit,即一字節。   支持多主控(multimastering),任何時間點只能有一個主控。   總線上每個設備都有自己的一