原创 系統不能正確識別4GB地址空間的原因

一、4GB地址空間的侷限:  首先我們必須要先了解兩個概念:“物理內存”和“地址空間”    其一“物理內存”:一般常說的物理內存就是指安裝在主板上的內存條,其實不然,在計算機的系統中,物理內存不僅包括裝在主板上的內存條(RAM),還應該

原创 網卡驅動註冊到PCI總線這一過程的分析二

2. 網卡在PCI層的註冊2.1 數據結構        前面第一章講了總線、設備以及驅動方面的關係,也講到了大多數網卡設備實際上是一個PCI設備。因此,本章就講解網卡設備在註冊時是如何註冊到PCI總線上去的。在這裏,以Intel的E10

原创 網卡驅動註冊到PCI總線這一過程的分析一

1. 總線、設備和驅動1.1 簡單介紹        Linux設備模型中三個很重要的概念就是總線、設備和驅動,即bus,device和driver。它們分別對應的數據結構分別爲struct bus_type,struct device和

原创 只有程序員才能破解的密碼

誰說程序員不懂幽默,誰說程序員是屌絲,我們有時也瘋狂。上面是我花了一個晚上寫的一個只有程序員才能破解的密碼。小夥伴們,行動起來吧,看誰能破解此密碼。  

原创 如何編寫高質量的程序

如何編寫高質量的程序 學習任何編程語言都會有一個基本的過程,開始的時候學習基本的語法,然後學習各種庫,框架,開始做各種項目。在做項目的過程中,隨着代碼量的增加,我們會漸漸感到失去對程序的掌控能力,bug開始增加,牽一髮而動全身,顧此失

原创 linux 進程的pid分配策略——pid位圖算法

在研究進程fork()的時候,這個調用了do_fork(),其中do_fork()又涉及到進程的pid分配,這個東西的源代碼有許多個版本,而且各 自都不是一樣的。昨天晚上研究了一晚上,今天從下午研究到現在,總算把內核中pid位圖算法有一個

原创 s3c2440啓動文件詳細分析

啓動文件就是引導ARM啓動,並進入我們熟悉的C語言程序。它主要完成了ARM最基本的硬件初始化工作。雖然啓動文件的內容大同小異(就是設置系統時鐘、內存、中斷向量表、棧等內容),而且只要有一個現成的啓動文件,即使不用詳細瞭解該文件的內容,直接

原创 Makefile常用函數總結

在Makefile中可以使用函數來處理變量,從而讓我們的命令或是規則更爲的靈活和具 有智能。make所支持的函數也不算很多,不過已經足夠我們的操作了。函數調用後,函 數的返回值可以當做變量來使用。   一、函數的調用語法 函數調用,很

原创 S3C2440 SDRAM內存驅動

目錄(?)[-] S3C2440存儲器地址段BankSDRAM內存工作原理SDRAM的讀操作SDRAM預充電操作SDRAM突發操作SDRAM寫操作SDRAM的刷新內存驅動實驗 +++++++++++++++++++++++++++++

原创 使用 Python 和 Cheetah 構建和擴充模板

一個過於臃腫的模板系統 “使用 SQLObject 連接數據庫與 Python”中提到各種用於 Python 的開源對象關聯式映射庫。Python 編程人員喜歡按照自己的方式辦事,這帶來了許多附屬成果。不過,所有這些努力常常彙集成一

原创 S3C2440系統中斷

++++++++++++++++++++++++++++++++++++++++++ 本文系本站原創,歡迎轉載! 轉載請註明出處: http://blog.csdn.net/mr_raptor/article/details/65561

原创 start-stop-daemon example

#!/bin/sh DESC="mock system" NAME="mocksystem" PIDFILE=/var/run/$NAME.pid #RUN_AS=hudson RUN_AS=zhus EXE=/usr/bin/an

原创 IT牛人博客

團隊技術博客 淘寶UED淘寶用戶體驗團隊淘寶核心系統淘寶核心系統團隊博客阿里巴巴數據庫團隊專注數據庫管理開發運維淘寶通用產品專注JAVA技術淘寶QA致力於做測試的行業標準淘寶搜索技術關注技術 關注搜索量子恆道專注大數據統計百度搜索研發關

原创 input子系統分析

一、input子系統概述 在linux下,按鍵、觸摸屏、鼠標等都可以利用input接口函數來實現設備驅動。 1,linux輸入子系統主要分三層: 驅動,輸入CORE, 事件處理層。 驅動根據CORE提供的接口,向上報告發生

原创 關於namespace的困惑

#include <iostream> using namespace std; namespace NS {     class T {};     void d(T)     {         cout << "void d(T)