Time of Update: 2018-12-04
還是回到neigh_resolve_output()int neigh_resolve_output(struct sk_buff *skb){ struct dst_entry *dst = skb_dst(skb); struct neighbour *neigh; int rc = 0; if (!dst || !(neigh = dst->neighbour)) 異常退出 goto discard;
Time of Update: 2018-12-04
第一步 下載核心源碼 可以到 http://www.kernel.org/ 下載核心源碼第二步 找到合適的設定檔 可以利用我給你的設定檔,重新命名為.config放到源碼根目錄。注意config前面有一個"點"。 還可以到你本機/boot目錄下去尋找適合你原生設定檔。第三步 進一步配置核心 #make menuconfig 對核心進行配置第四步 編譯核心 #make第五步 編譯模組 #make modules第六部 安裝模組
Time of Update: 2018-12-04
驅動程式源檔案名稱:/work/driver/test.c 驅動程式目標檔案名稱:test.ko 核心源碼目錄:/work/linux2.6.30 這個目錄是板子源碼根目錄 第一步:在核心源碼下(/work/linux2.6.30)輸入:make oldconfig && make prepare && make scripts 第二部:編譯方法有兩種 (1
Time of Update: 2018-12-04
#ifndef _WATCHER_H_#define _WATCHER_H_#include <sys/time.h>#include <sys/stat.h>#include <string>// We often want to know if a file was just now created or updated (then we// may reload the file to get latest data). FileWatcher
Time of Update: 2018-12-04
檔案的存取許可權—模式位疑難詳解一、前言 ======== 本文主要說明Linux下普通檔案及目錄的存取使用權限設定。本文是為稍具基礎的初學者寫的(我也是beginner),如 果您能夠理解如下幾行'ls -l'命令的輸出含義(注意下面標註^的位),那您就沒有必要讀本文了——別浪費時 間看對你沒用的東西,時間是最寶貴的! -r-sr-xr-x 1 root bin 26975 Jun 24 1999 01:32 /usr/bin/passwd-----------1.1 ^ -rwxrwSr-
Time of Update: 2018-12-04
上一章我們看到了通過fib_lookup去尋找了路由資訊,這一章我們就看看fib到底是什麼FIB(Forward Information Base) 轉寄資訊庫inet_init()->ip_init()->ip_rt_init()->ipv4_dst_ops.kmem_cachep = kmem_cache_create("ip_dst_cache", sizeof(struct rtable), 0, rtable結構快取的建立
Time of Update: 2018-12-04
Slob指派至大小是從三個鏈中選擇的static LIST_HEAD(free_slob_small);static LIST_HEAD(free_slob_medium);static
Time of Update: 2018-12-04
最近把slab機制看了一下,網上分析內容豐富全面,不再過多贅述,只是自己做了個簡單的小結 1. 幾大重要資料結構(1)Kmem_cache資料結構:struct kmem_cache { struct array_cache *array[NR_CPUS]; CPU本地快取 unsigned int batchcount; unsigned int limit; unsigned int shared;
Time of Update: 2018-12-04
看完fib的尋找,弄清了一些資料結構的組織,我們再來看看路由表是如何建立的從ip_fib_init註冊的兩個通知鏈來看,在IP地址發送變動時會觸發通知鏈的處理函數,都會調用fib_add_ifaddr()來添加地址到路由中這個裡面由調用了fib_magic來進行路由地址的操作。static void fib_magic(int cmd, int type, __be32 dst, int dst_len, struct in_ifaddr *ifa){ struct net *net =
Time of Update: 2018-12-04
向majordomo@vger.kernel.org發送郵件,郵件內容為:subscribe linux-kernel 可以單獨使用一個新郵箱,以免每天幾百封郵件將你的重要信件淹沒。 參考資料: Very short Majordomo introSend request in email to address <majordomo@vger.kernel.org>To subscribe a list (``linux-kernel'' is given as an
Time of Update: 2018-12-04
在Linux環境下編寫程式時,經常會調用glibc庫中的API。這些庫是如何?的的呢?很多初學者對此一直很困惑,接下來就與大家一起動手練習一下靜態庫和共用庫的製作方法。 作者:滄海獵人 出處:http://blog.csdn.net/embedded_hunter 轉載請註明出處 嵌入式技術交流QQ群:179012822 首先,我們編寫代碼來實現“輸入半徑求出圓的面積和周長”這個任務。看一下我另幾篇文章的內容:Linux環境下C語言編程實踐_01
Time of Update: 2018-12-04
一、實驗環境 開發機環境 作業系統:ubuntu 9.10 交叉編譯環境:arm-linux-gcc 4.2.2 ,安裝位置 /usr/local/arm/4.3.2/ 6410板子核心源碼路徑:/work/linux-2.6.36.2-v1.05/ 目標板環境:OK6410-A linux2.6.36 二、實驗原理 模組時在核心空間啟動並執行,模組中不能使用glibc庫中的函數。
Time of Update: 2018-12-04
上一篇文章我們介紹了如何在linux下編寫一個模組,並載入到核心空間。通過實驗我們瞭解了大體的流程以及模組的工作原理。本篇文章我們將介紹如何編寫一個虛擬字元裝置驅動程式。 之所以稱之為虛擬字元裝置驅動程式,主要原因是該驅動程式並沒有真正操作外部裝置,只是一個字元裝置驅動程式架構,這為後面我們開發正是裝置的驅動程式(LED、蜂鳴器等)奠定了基礎。 作者:滄海獵人 出處:http://blog.csdn.net/embedded_hunter
Time of Update: 2018-12-04
一、引言通常情況下,對函數庫的連結是放在編譯期間(compile time)完成的。所有相關的對象檔案(object file)與牽涉到的函數庫(library)被連結併合成一個可執行檔(executable file)。程式在運行時,與函數庫無關,所有需要的函數已拷貝到可執行檔中。所以這些函數庫被成為靜態庫(static libaray),檔案名稱為“libxxx.a”的形式。其實,我們也可以把庫函數的連結載入延遲到程式運行期間(runtime)。這也就是所謂的動態連結程式庫(dynamic
Time of Update: 2018-12-04
上一篇文章我們介紹了字元裝置驅動程式的架構,本篇文章我們將操作真實的硬體---LED。 作者:滄海獵人 出處:http://blog.csdn.net/embedded_hunter 轉載請註明出處 嵌入式技術交流QQ群:179012822 一、實驗環境 開發機環境 作業系統:ubuntu 9.10 交叉編譯環境:arm-linux-gcc 4.2.2 ,安裝位置 /usr/local/arm/4.3.2/
Time of Update: 2018-12-04
經常使用Linux系統,大部分情況下都是在命令列狀態下進行遠程維護和管理,如果需要用到圖形環境,該用什麼工具進行串連維護管理呢?日常使用windows系統維護時都是用pcanywhere或遠端桌面進行遠端連線進行操作,那Linux下有沒有類似pcanywhere的軟體嗎?答案是當然有了,那就是VNC,一個可以與pcanywhere相媲美軟體。 下面就讓我來介紹我在Linux下的安裝和使用過程吧。
Time of Update: 2018-12-04
Linux和BSD區別是什嗎?當前FreeBSD的版本FreeBSD2.2.x-stableFreeBSD3.x-stableFreeBSD4.0-current可以看到,FreeBSD的版本使用current或stable尾碼進行修飾,其中使用stable修飾的版本是一個穩定的版本,它不是FreeBSD的最新版本,主要關心系統的效能和使用的連續性,同一個stable分支中的下一個版本主要是修訂系統問題,因此stable分支得到很多商業使用者的歡迎。current表示這個版本是正在開發的版本,
Time of Update: 2018-12-04
從FTP連結下載用wget,eg: wget ftp://www.dekaino.net/pub/screen/screen-4.0.3.tar.gzFTP命令是Internet使用者使用最頻繁的命令之一,不論是在DOS還是UNIX作業系統下 使用FTP,都會遇到大量的FTP內部命令,熟悉並靈活應用FTP的內部命令,可以大大方便 使用者,對於現在撥接的使用者,如果ISP提供了shell可以使用nohup,那麼ftp將是 你最省錢的上download方式,ftp的命令列格式為:ftp -v -d
Time of Update: 2018-12-04
摘自: http://os.51cto.com/art/200912/168700.html 在我們學習生活中經常會遇到問題和困難,就比如說我們在學習Linux時,比如怎樣Linux擷取檔案大小的方法。前幾天在工作中需要寫一段代碼,擷取一些視頻檔案的大小,心想:這還不簡單嗎?直接用標準C的檔案操作函數就OK了。於是寫了下面的一段代碼來實現:unsigned long get_file_size(const char *filename) { unsigned long size;
Time of Update: 2018-12-04
$# 傳送給命令Shell的參數序號 $- 在Shell啟動或使用set命令時提供選項 $? 上一條命令執行後返回的值 $$ 當前shell的進程號 $! 上一個子進程的進程號 $@ 所有的參數,每個都用雙括弧括起 $* 所有參數,用雙括弧括起 $n 位置參數值,n表示位置 $0 當前shell名 $* 所有的命令列參數$@ 同上"$*" 把所有命令列參數當作一個來處理"$@"