原创 Linux進程狀態

衆所周知,現在的分時操作系統能夠在一個CPU上運行多個程序,讓這些程序表面上看起來是在同時運行的。linux就是這樣的一個操作系統。 在linux系統中,每個被運行的程序實例對應一個或多個進程。linux內核需要對這些進程進行管理,以使

原创 Linux用戶進程內存空間

經常使用top命令瞭解進程信息,其中包括內存方面的信息。命令top幫助文檔是這麼解釋各個字段的。 VIRT , Virtual Image (kb) RES, Resident size (kb) SHR, Shared Me

原创 Understanding a Kernel Oops

Understanding a kernel panic and doing the forensics to trace the bug is considered a hacker’s job. This is a complex

原创 Linux Shell參數

在shell編程時.可以使用參數。Shell有位置參數和內部參數 1、 位置參數   由系統提供的參數稱爲位置參數。位置參數的值可以用$N得到,N是一個數字,如果爲1,即$1.類似C語言中的數組,Linux會把輸入的命令字符串分段並給每段

原创 Linux內核中的各種鎖

Linux內核中的各種鎖 在現代操作系統裏,同一時間可能有多個內核執行流在執行,因此內核其實象多進程多線程編程一樣也需要一些同步機制來同步各執行單元對共享數據的訪問。尤其是在多處理器系統上,更需要一些同步機制來同步不同處理器上的執行單元對

原创 Linux內核中的軟中斷、tasklet和工作隊列詳解

[TOC] 本文基於Linux2.6.32內核版本。 引言 軟中斷、tasklet和工作隊列並不是Linux內核中一直存在的機制,而是由更早版本的內核中的“下半部”(bottom half)演變而來。下半部的機制實際上包括五種,但2.6

原创 字節序與比特序詳解

字節序的定義 幾種類型的字節序 cpu字節序 外部bus字節序 設備字節序 網絡協議字節序 Ethernet協議字節序 IP協議字節序 編譯字節序 比特序的定義 字節序與bit序的轉換 結構體的位域 字節序的定義 字節

原创 Linux中的地址空間以及I/O地址空間

地址空間實現與cpu的體系結構有很大的關係,目前以應用最廣的的80X86體系結構來論述這塊的技術文檔較多。這裏也以此爲基礎。 根據《深入理解linux內核》所述,內存地址分爲以下三種: 邏輯地址(Logical Address) 

原创 Linux nf_conntrack連接跟蹤的實現

連接跟蹤,顧名思義,就是識別一個連接上雙方向的數據包,同時記錄狀態。下面看一下它的數據結構:struct nf_conn {         /* Usage count in here is 1 for hash table/destr

原创 IO多路複用總結

本文基於Linux2.6.32內核版本。 一、基本概念   IO多路複用是指內核一旦發現進程指定的一個或者多個IO條件準備讀取,它就通知該進程。IO多路複用適用如下場合:   (1)當客戶處理多個描述字時(一般是交互式輸入和網絡套

原创 理解tcp關閉連接中的time_wait狀態

首先看一下tcp關閉連接時的四次握手過程: 1.Client向Server發送FIN包,表示Client主動要關閉連接,然後進入FIN_WAIT_1狀態,等待Server返回ACK包。此後Client不能再向Server發送數據,但

原创 程序的內存分配

一、預備知識—程序的內存分配    一個由C/C++編譯的程序佔用的內存分爲以下幾個部分    1、棧區(stack)—   由編譯器自動分配釋放   ,存放函數的參數值,局部變量的值等。其    操作方式類似於數據結構中的棧。    2

原创 各種算法複雜度

數據結構 註解: Skip_List:跳躍表 Cartesian_Tree:笛卡爾樹是一種特定的二叉樹數據結構,可由數列構造,在範圍最值查詢、範圍top k查詢(range top k queries)等問題上有廣泛應用。

原创 Linux內核bridge淺析

Linux內核bridge淺析  Linux網橋模型:   Linux內核通過一個虛擬的網橋設備來實現橋接的,這個設備可以綁定若干個以太網接口設備,從而將它們橋接起來。如下圖所示:   網橋設備br0綁定了eth0和eth1。對於網

原创 組播MAC地址和各類IP地址

MAC地址是以太網二層使用的一個48bit(6字節十六進制數)的地址,用來標識設備位置。MAC地址分成兩部分,前24位是組織唯一標識符(OUI, Organizationally unique identifier),後24位由廠商自行分