原创 ILP32、ILP64、LP64、LLP64、64位系統

32、ILP64、LP64、LLP64、64位系統 Data Type ILP32 ILP64 LP64 LLP64 char 8 8

原创 source insight設置

原创 C函數指針的用法

  函數指針通常用來實現回調,其基本用法如下:   1、定義函數指針類型 // 定義一個原型爲int Fun( int a );的函數指針 typedef int (*PTRFUN) ( int aPara );   2、函數指針變量的

原创 linux sed命令參數及用法詳解

sed編輯器是 Linux 系統管理員的工具包中最有用的資產之一,因此,有必要徹底地瞭解其應用 Linux 操作系統最大的一個好處是它帶有各種各樣的實用工具。存在如此之多不同的實用工具,幾乎不可能知道並瞭解所有這些工具。可以簡化關鍵情況

原创 Linux設備驅動程序學習(3)-併發和競態

今天進入《Linux設備驅動程序(第3版)》第五章併發和競態的學習。 對併發的管理是操作系統編程中核心的問題之一。 併發產生競態,競態導致共享數據的非法訪問。因爲競態是一種極端低可能性的事件,因此程序員往往會忽視競態。但是在計

原创 char device driver

// 三個最重要的數據結構。 struct file_operations {  struct module *owner;  loff_t (*llseek) (struct file *, loff_t, int);  ssize_t

原创 Linux設備驅動程序學習(1)-字符設備驅動程序

今天進入《Linux設備驅動程序(第3版)》第三章字符設備驅動程序的學習。 這一章主要通過介紹字符設備scull(Simple Character Utility for Loading Localities,區域裝載的簡單字

原创 Linux設備驅動程序學習(0)-Hello, world!模塊

  一個學習Linux設備驅動程序都會碰到的第一個例程: #include <linux/init.h>#include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL");st

原创 Linux設備驅動程序學習(4)-高級字符驅動程序操作[(1)ioctl and llseek]

今天進入《Linux設備驅動程序(第3版)》第六章高級字符驅動程序操作的學習。 一、ioctl 大部分設備除了讀寫能力,還可進行超出簡單的數據傳輸之外的操作,所以設備驅動也必須具備進行各種硬件控制操作的能力. 這些操作常常通過

原创 操作系統管理內存的機制——爲什麼要設置虛擬內存?

           在進入正題前先來談談操作系統內存管理機制的發展歷程,瞭解這些有利於我們更好的理解目前操作系統的內存管理機制。 一 早期的內存分配機制         在早期的計算機中,要運行一個程序,會把這些程序

原创 Linux 設備驅動學習之 異步通知

From:http://blog.csdn.net/ypoflyer/article/details/6131334   異步通知:   使用poll輪詢方式的時候,相當於應用程序在需要的時候詢問設備“準備好了嗎?”,如果有這樣一種情況,

原创 0 - 構造和運行模塊

  作者:蔡倫輝 寫在前面 作者一直支持GPL的精神。允許任何人自由使用、轉載、複製和再分發,但必須保留作者署名,必須保證全文完整轉載,包括完整的版權聲明。 由於作者水平有限,因此不能保證文章內容準確無誤,請批判閱讀。如果你發現任何錯誤

原创 void * 的用法

  void 中文翻譯爲“無類型”。常用在程序編寫中對定義函數的參數類型、返回值、函數中指針類型進行聲明。 void含義   void的字面意思是“無類型”,void *則爲“無類型指針”,void *可以指向任何類型的數據。   v

原创 Linux設備驅動學習之 Poll機制分析

  int poll(struct pollfd *fds,nfds_t nfds, int timeout);   總的來說,Poll機制會判斷fds中的文件是否可讀,如果可讀則會立即返回(程序從休眠態變爲運行態,可以再次參與調度),

原创 對Linux內核中進程上下文和中斷上下文的理解

   內核空間和用戶空間是操作系統理論的基礎之一,即內核功能模塊運行在內核空間,而應用程序運行在用戶空間。現代的CPU都具有不同的操作模式,代表不同的級別,不同的級別具有不同的功能,在較低的級別中將禁止某些操作。Linux系統設計時利用了