原创 Linux2.6--進程搶佔和上下文切換

 上下文切換,也就是從一個可執行進程切換到另一個可執行進程,由定義在kernel/sched.c中的context_switch()函數負責處理。每當一個新的進程被選出來準備投入運行的時候,schedule()就會調用該函數。它完成了兩相

原创 linux設備驅動之ioctl控制

http://www.cnblogs.com/geneil/archive/2011/12/04/2275372.html linux設備驅動之ioctl控制 大部分驅動除了具有讀寫的能力之外,還需要具有對硬件控制的能力。

原创 軟中斷和TASKLET

1.  軟件中斷的數據結構 1.1  struct softirq_action         內核用softirq_action結構管理軟件中斷的註冊和激活等操作,它的定義如下: [cpp] view plain cop

原创 Linux進程間通信——使用共享內存

下面將講解進程間通信的另一種方式,使用共享內存。 一、什麼是共享內存 顧名思義,共享內存就是允許兩個不相關的進程訪問同一個邏輯內存。共享內存是在兩個正在運行的進程之間共享和傳遞數據的一種非常有效的方式。不同進程之間共享的內存通常安排爲同

原创 同步和互斥

相交進程之間的關係主要有兩種,同步與互斥。所謂互斥,是指散步在不同進程之間的若干程序片斷,當某個進程運行其中一個程序片段時,其它進程就不能運行它 們之中的任一程序片段,只能等到該進程運行完這個程序片段後纔可以運行。所謂同步,是指散步在

原创 linux中proc文件系統

1./proc 文件系統概述     /proc 文件系統是由軟件創建,被內核用來向外界報告信息的一個文件系統。/proc 下面的每一個文件都和一個

原创 Linux內存分配原理

Linux的虛擬內存管理有幾個關鍵概念: Linux 虛擬地址空間如何分佈?malloc和free是如何分配和釋放內存?如何查看堆內內存的碎片情況?既然堆內內存brk和sbrk不能直接釋放,爲什麼不全部使用 mmap 來分配,munm

原创 Linux監控工具介紹系列——smem

原文地址:www.cnblogs.com/kerrycode/archive/2015/12/26/5079319.html smem工具介紹         smem是Linux系統上的一款可以生成多種內存耗用報告的命令行工具。與現

原创 sudo sh -c 'echo 4 > test_rw'

衆所周知,在Linux使用 echo 並配合命令重定向是實現向文件中寫入信息的快捷方式。本文介紹如何將 echo 命令與 sudo 命令配合使用,實現向那些只有系統管理員纔有權限操作的文件中寫入信息。 比如要向 test.asc 文件中隨

原创 linux下proc文件的讀寫(部分轉載)

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 in Linux, proc文件系統是一個虛擬文件系統,用戶和應用程序可以通過proc文件系統得到當前的一些系統信息,並可以改變一些內核的參數。/proc下的文件是一種特殊文件

原创 Linux內核 kmalloc, kzalloc & devm_kzalloc 區別

首先,kzalloc()實現了kmalloc()+memset()的功能 源碼如下: static inline void *kzalloc(size_t size, gfp_t flags) { return kma

原创 [Linux] Linux命令之pstree - 以樹狀圖顯示進程間的關係

[Linux] Linux命令之pstree - 以樹狀圖顯示進程間的關係 轉載自: http://codingstandards.iteye.com/blog/842156 pstree命令以樹狀圖顯示進程間的關係(display

原创 工作隊列

1、linux內核中斷處理的工作隊列workqueue機制 工作隊列(workqueue)是另外一種將工作 推後執行的形式。工作隊列可以把工作推後,交由一個內核線程去執行,也就是說,這個下半部分可以在進程上下文中執行。 這樣,通過工作隊列

原创 Shell腳本中循環語句for,while,until用法

原文地址:blog.51cto.com/kling/1252952 循環語句: Bash Shell中主要提供了三種循環方式:for、while和until。 一、for循環    for循環的運作方式,是講串行的元素意義取出,依序放

原创 Linux環境下段錯誤的產生原因及調試方法小結

原文地址:www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html Linux環境下段錯誤的產生原因及調試方法小結 最近在Linux環境下做C語言項目,由於是在一個原有項目基礎