Time of Update: 2018-07-26
核心版本:2.6.34 NetFilter在2.4.x核心中引入,成為linux平台下進行網路應用的主要擴充,不僅包括防火牆的實現,還包括報文的處理(如報文加密、報文分類統計等)等。 NetFilter資料結構 勾子struct nf_hook_ops[net\filter\core.c] struct nf_hook_ops {struct list_head list;/* User fills in
Time of Update: 2018-07-26
Linux icmp功能分析之一 icmp協議相關的格式 ICMP協議是網路層中一個非常重要的協議,其全稱為Internet Control Message Protocol(網際網路控制報文協議),ICMP協議彌補了IP的缺限,它使用IP協議進行資訊傳遞,向資料包中的源端節點提供發生在網路層的錯誤資訊 反饋。
Time of Update: 2018-07-26
mmc_alloc_host()申請平台SD單元對應的mmc_host結構體-> INIT_DELAYED_WORK(&host->detect, mmc_rescan)建立該平台SD單元對應的sdio裝置插入 檢測核心work_queue工作隊列函數mmc_rescan->mmc_rescan()這是一個共用函數,如果有4個SD卡控制器在你的arm平台上,
Time of Update: 2018-07-26
本節主要是分析NAT模組相關的hook函數與target函數,主要是理清NAT模組實現的原理等。 1.NAT相關的hook函數分析 NAT模組主要是在NF_IP_PREROUTING、NF_IP_POSTROUTING、NF_IP_LOCAL_OUT、NF_IP_LOCAL_IN四個節點上進行NAT操作,在上一節中我們知道nat表中只有PREROUTING、POSTROUTING、LOCAL_OUT三條鏈,而沒有NF_IP_LOCAL_IN鏈,所以不能建立在LOCAL_
Time of Update: 2018-07-26
核心開發比使用者空間開發更難的一個因素就是核心調試艱難。核心錯誤往往會導致系統宕機,很難保留出錯時的現場。調試核心的關鍵在於你的對核心的深刻理解。 一 調試前的準備 在調試一個bug之前,我們所要做的準備工作有: 有一個被確認的bug。 包含這個bug的核心版本號碼,需要分析出這個bug在哪一個版本被引入,這個對於解決問題有極大的協助。可以採用二分尋找法來逐步鎖定bug引入版本號碼。 對核心代碼理解越深刻越好,同時還需要一點點運氣。
Time of Update: 2018-07-26
在Google上搜尋的資料很多人都說nginx目前不支援.htaccess檔案,我按照nginx的規則實驗了一下,結果發現nginx是完全支援.htaccess檔案的。 方法如下: 1.在需要使用.htaccess檔案的目錄下建立一個.htaccess檔案, 如本人的一個Discuz論壇目錄: vim /var/www/html/168pc/bbs/.htaccess 2.在裡面輸入規則,我這裡輸入Discuz的偽靜態規則: # nginx rewrite
Time of Update: 2018-07-26
存在硬體接入到linux系統時 可以通過 mount命令 掛載一個路徑指向該硬體裝置 通過該路徑訪問硬體裝置的內容 1 插入光碟片 尋找插入的光碟片名稱(如果是vmvare虛擬機器 可以在右下角的光碟片中執行一個iso檔案 串連) [root@localhost test]# cd /dev
Time of Update: 2018-07-26
在資料包發送一節提到了流控TC的實現,現在進一步研究。 資料包發送是通過dev_queue_xmit實現的, if (q->enqueue) { rc = __dev_xmit_skb(skb, q, dev, txq);
Time of Update: 2018-07-26
參考 http://blog.sina.com.cn/s/blog_e59371cc0102vg4n.htmlhttp://www.tuicool.com/articles/rUzEJ3# client使用tcp發出的包,要重傳幾次net.ipv4.tcp_syn_retries = 6# kernel.shmall = 4294967296net.ipv4.tcp_max_syn_backlog = 32768net.core.netdev_max_backlog =
Time of Update: 2018-07-26
http://blog.csdn.net/qy532846454/article/details/6726171 核心版本:2.6.34 前篇路由表http://blog.csdn.net/qy532846454/article/details/6423496說明了路由表的結構及路由表的建立。下面是一些路由表的使用的細枝末節,作補充說明。
Time of Update: 2018-07-26
本文 測試資料 touch a a6.log abc.log ac.txt b c c5.txt x.log A “*” 代表任意多個字元 例:查詢以".log"結尾的檔案ll *.log “?” 代表任意單個字元 例:只查詢a、b、cll ? “[]”
Time of Update: 2018-07-26
一.關於linux複製過後eth0變成eth1解決辦法 當使用複製後的虛擬機器時發現原來在基本系統中的網 卡eth0到了新系統卻沒有了,使用ifconfig -a會發現只有eth1。因為基本系統的網路相關配置都是基於eth0的,eth1沒有網路相關的
Time of Update: 2018-07-26
1、uptime [root@smgsim02 ~]# uptime 15:08:15 up 98 days, 4:19, 2 users, load average: 0.07, 0.29, 0.14 目前時間 系統運行至今的時間 多少使用者登入當前系統 分別是1分鐘,5分鐘,15分鐘前至今的負載情況 load average是隊列平均長度,在隊列中等待執行的進程數量 該值越低,說明進程更有可能立即被CPU處理,相反越高,說明進程更有可能阻塞
Time of Update: 2018-07-26
轉:http://www.yunweipai.com/archives/11526.html 一、Shell部分 1.在shell 中變數的賦值有四種方法,其中,採用name=12 的方法稱 A 。 A 直接賦值 B 使用read 命令 C 使用命令列參數 D 使用命令的輸出 2.D 命令可以從文字檔的每一行中截取指定內容的資料。 A cp B dd C fmt D cut 3.在Shell
Time of Update: 2018-07-26
Linux應用程式員:做一、二題 ,考試時間:1.5小時 Linux驅動程式員:做一、二(可選做)、三題,考試時間:2小時 一、 C/C++語言
Time of Update: 2018-07-26
整理的參考文獻,記不清了 1 背景簡介 出現疑似”記憶體泄露”問題: malloc申請的記憶體,free釋放以後沒有歸還作業系統,比如記憶體模組佔用的記憶體為10GB,釋放記憶體以後,通過TOP命令或者/proc/pid/status查看佔用的記憶體有時仍然為10G,有時為5G,有時為3G, etc,記憶體釋放的行為不確定。 2 malloc()/free(), mmap(), brk(), 使用者程式-->glibc -->linux
Time of Update: 2018-07-26
linux驅動筆試題總結 試題取之於網路,用之於民。最近在學習linux驅動,驅動開發在筆試的時候考的知識點是有規律可循的,並且這些面點也是平時驅動工作中的理論指導,深刻的理解這些面點還是很有必要的,所以在此總結記錄,相信會用到的。 ps:以後面試驅動,誰在問我這些問題,我鄙視死他。權威答案整蒙b他。 1:linux中核心空間及使用者空間的區別。使用者空間與核心通訊方式有哪些。 答: -在32位架構cpu中,實體記憶體大小限制在4G。linux將4G記憶體分為兩部分,0~1
Time of Update: 2018-07-26
一般情況下我們最好是在一個平台上編譯本平台的二進位程式,比如在32位平台上編譯32位程式而在64位平台上編譯64位程式。 現在64位的系統(這裡主要指x86_64系統,包括AMD64和Intel的EM64T)已經開始廣泛的使用起來了,甚至於你現在要是想買32位的處理器根本就沒有。64位的系統在效能和處理能力上相對32位系統也都有很大的提高。所以現在很多使用者已經選擇使用64位的系統了。
Time of Update: 2018-07-26
問題由來 交叉編譯是嵌入式開發非常重要的(應該說是必須的)一個環節,但是最近在實體Linux機器上使用交叉編譯工具卻經常遇到一個問題:交叉編譯工具版本正確,安裝步驟正確,環境變數設定也正確,但是在運行arm-linu-gcc -v時卻一直報bash: /opt/arm-2009q3/bin/arm-linux-gcc: 沒有那個檔案或目錄的錯誤,很是鬱悶,一番google終於發現了問題原因:我的Linux是64位的,但是交叉編譯工具是32位的,因此不能運行。
Time of Update: 2018-07-26
線程: 線程是執行粒度比進程小的執行流;線程是在進程的地址空間內啟動並執行一個控制序列。 在Linux中線程有獨立的PCB,為了實現在核心中進行切換有獨立的上下文,調用函數時開闢棧幀有私人棧,線程有自己的調度優先順序,自己的訊號屏蔽字;各個線程共用一個進程地址空間,共用檔案描述符表,遇到的異常訊號處理方式相同,共用進程中的某些資源,各自完成進程分配的任務。 線程是如何進行標識的 每個線程都有屬於自己的id,擷取線程id有兩種方式: 1. pthread_t pthread_self(