原创 Shell腳本編寫規範推薦

#!/bin/bash   #-------------CopyRight-------------   #   Name:Mine Sweepin

原创 Linux設備驅動之內存管理

對於包含 MMU 的處理器而言, Linux 系統提供了複雜的存儲管理系統,使得進程所能訪問的內存達到 4GB。進程的 4GB 內存空間被分爲兩個部分—用戶空間與內核空間。用戶空間地址一般分佈爲 0~3GB(即 PAGE_OFFSET),

原创 Linux進程調度機制

1.1. Linux調度時機 Linux進程調度分爲主動調度和被動調度兩種方式: 自願的調度隨時都可以進行,內核裏可以通過schedule()啓動一次調度,當然也可以將進程狀態設置爲TASK_INTERRUPTIBLE、TASK_U

原创 Linux內核編譯及管理

Linux內核(Kernel) 負責管理系統的進程、內存、設備驅動程序、文件和網絡系統 包含了驅動主機各項硬件的偵測程序與驅動模塊 Linux內核 + 各種自由軟件 = 完整的操作系統 linux 內核的存放位置: /boot 查看內核版

原创 進程的管理與調度

進程管理 進程描寫敘述符及任務結構     進程存放在叫做任務隊列(tasklist)的雙向循環鏈表中。鏈表中的每一項包括一個詳細進程的全部信息,類型爲task_struct,稱爲進程描寫敘述符(process descriptor),

原创 Linux進程間通信中的文件和文件鎖

前言 使用文件進行進程間通信應該是最先學會的一種IPC方式。任何編程語言中,文件IO都是很重要的知識,所以使用文件進行進程間通信就成了很自然被學會的

原创 幾種常用的設計模式介紹

幾種常用的設計模式介紹 1.    設計模式的起源 最早提出“設計模式”概念的是建築設計大師亞力山大Alexander。在1970年他的《建築的永恆之道》裏描述了投計模式的發現,因爲它已經存在了千百年之久,而現代才被通過大量的研究而被發現

原创 Linux進程間通信之消息隊列

本文依據以下思路展開,首先從宏觀上闡述消息隊列的機制,然後以具體代碼爲例進一步闡述該機制,最後試着暢想一下該通信機制潛在的應用。 消息隊列是在兩個不相關進程間傳遞數據的一種簡單、高效方式,她獨立於發送進程、接受進程而存在。   圖1 消息

原创 深入理解Linux中內存管理

讓我們來回顧一下歷史,在早期的計算機中,程序是直接運行在物理內存上的。換句話說,就是程序在運行的過程中訪問的都是物理地址。如果這個系統只運行一個程序,那麼只要這個程序所需的內存不要超過該機器的物理內存就不會出現問題,我們也就不需要考慮內存

原创 基於UDP的select函數用法

/************SERVER**************/ #include #include #define PORT_A 11111 #define PORT_B 22222 void main(int argc, c

原创 Linux用戶態和內核態

究竟什麼是用戶態,什麼是內核態,這兩個基本概念以前一直理解得不是很清楚,根本原因個人覺得是在於因爲大部分時候我們在寫程序時關注的重點和着眼的角度放在了實現的功能和代碼的邏輯性上,先看一個例子: 1)例子 C代碼 1.     void t

原创 編寫USB 驅動程序

轉自:http://blog.csdn.NET/zqixiao_09/article/details/50986965     前面學習了USB驅動的一些基礎概念與重要的數據結構,那麼究竟如何編寫一個USB 驅動程序呢?編寫與一個USB

原创 linux內核組成

一個完整的Linux內核一般由5部分組成,它們分別是內存管理、進程管理、進程間通信、虛擬文件系統和網絡接口。 1、內存管理 內存管理主要完成的是如何合理有效地管理整個系統的物理內存,同時快速響應內核各個子系統對

原创 網絡通信 - socket編程

我們深諳信息交流的價值,那網絡中進程之間如何通信,如我們每天打開瀏覽器瀏覽網頁時,瀏覽器的進程怎麼與web服務器通信的?當你用QQ聊天時,QQ進程怎麼與服務器或你好友所在的QQ進程通信?這些都得靠socket?那什麼是socket?soc

原创 Linux內存管理詳述

MMU MMU=Segmentation Unit+Paging Unit //MMU: Memory Management Unit logical address=>Segmentation Unit=>linear address=