Time of Update: 2018-12-03
1,準備環境 A,首先確定你的系統裝了 gcc,及 g++ B, .安裝pcre pcre-8.32 http://sourceforge.net/projects/pcre/files/pcre/ 下載 a, 解壓 安裝 tar -jxvf pcre-8.32.tar.bz2 b, cd pcre-8.32 c, ./configure --prefix=/usr/local/pcre
Time of Update: 2018-12-03
建立守護進程函數:int daemon_init(void) { int max_fd, ret; int iRet; struct sigaction act; int i; if ((iRet = fork()) { printf("建立守護進程錯誤!/n"); _exit(4); } else if (iRet != 0)
Time of Update: 2018-12-03
sed -i 's/old_string/new_string/g' file_name >/dev/null 在sed的命令列中引用shell變數時要使用雙引號,而不是通常所用的單引號。下面是一個根據name變數的內容來刪除named.conf檔案中zone段的指令碼: name='zone\ "localhost"' sed "/$name/,/};/d" named.conf sed -i "s/oldstring/newstring/g" `grep
Time of Update: 2018-12-03
核心常用文檔:README:該檔案介紹了linux的背景及發展。怎樣編譯和配置核心。出現問題怎樣解決等。Documentation/Changes:編譯和使用核心的最小軟體包。Documentation/CodingStyle:指定核心編碼風格。Documentation/SubmittingPatches,指出了提交補丁的過程和方法Documentation/SubmittingDrivers,指出提交驅動的過程方法Documentation/SubmittingChecklist:提交代碼前
Time of Update: 2018-12-03
1.簡介 GNU 的調試器稱為 gdb,該程式是一個互動式工具,工作在字元模式。在 X Window 系統中,有一個 gdb 的前端圖形工具,稱為 xxgdb。gdb 是功能強大的偵錯工具,可完成如下的調試任務:* 設定斷點;* 監視程式變數的值;* 程式的逐步執行;* 修改變數的值。 在可以使用 gdb 偵錯工具之前,必須使用 -g 選項編譯源檔案。可在 makefile 中如下定義CFLAGS 變數:CFLAGS = -g運行 gdb 偵錯工具時通常使用如下的命令:gdb
Time of Update: 2018-12-03
轉自http://beterfly.blogbus.com/logs/23724282.html基本命令:登出:logout login 重新登入 exit 退出目前使用者 關機:shutdown +time 例如:shutdown now(現在、立刻關機) shutdown -c 取消所有關機設定(快速鍵:ctrl+c)重新啟動電腦: shutdown -r 重啟時間 例如:shutdown -r 12:
Time of Update: 2018-12-03
檔案系統是對一個存放裝置上的資料和中繼資料進行組織的機制。 Linux 檔案系統介面實現為分層的體繫結構,從而將使用者介面層、檔案系統實現和操作存放裝置的驅動程式分隔開。另一種看待檔案系統的方式是把它看作一個協議。網路通訊協定(比如 IP)規定了互連網上傳輸的資料流的意義,同樣,檔案系統會給出特定儲存媒體上資料的意義。Linux 檔案系統體繫結構是一個對複雜系統進行抽象化的有趣例子。通過使用一組通用的 API 函數,Linux 可以在許多種存放裝置上支援許多種檔案系統。例如,read
Time of Update: 2018-12-03
下載Django之前你要確保你的系統安裝了python,在終端輸入python,看看是否安裝了python ctrl + c ,退出。若是沒有安裝則,安裝:sudo apt-get install python1, 下載 Django ,請轉到此頁面 https://www.djangoproject.com/download/我下載的的是Django-1.5.1 版本。tar xzvf Django-1.5.1.tar.gzcd Django-1.5.1sudo python
Time of Update: 2018-12-03
1,安裝JDKsudo apt-get install openjdk-6-jdk2,配置JAVA 環境變數輸入命令:sudo gedit /etc/profile開啟profile 在檔案最下面加入如下內容:# set java homeexport JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386/export CLASSPATH=".:JAVA_HOME/lib:$CLASSPATH"export
Time of Update: 2018-12-03
1. 最簡單的方法: mail -s text **@mail.ustc.edu.cn這條命令的結果是發一封標題為text的空信給後面的郵箱,但是往往這類郵件會被當成垃圾郵件來處理,所以如果沒有收到郵件,建議開啟垃圾箱來查看一下.第一種方法,你可以把當前shell當成編輯器來用,編輯完內容後Ctrl-D結束。2,實用的mail發送方法。#第二種方法,使用管道命令echo “This is a test mail!”|mail -s
Time of Update: 2018-12-03
這些文章是閱讀《linux核心修鍊之道》的筆記和一些自己補充的知識和感悟,寫的不清楚的地方請查看《linux核心修鍊之道》等資料。同時文章若有不妥的地方請大家指出,謝謝。轉載請註明出處:http://blog.csdn.net/muge0913/article/details/7252107核心選項的解析完成之後,各個子系統的初始化即進入第二部分—入口函數的調用。通常USB、PCI這樣的子系統都會有一個名為subsys_initcall的入口,如果你選擇它們作為研究核心的切入點,那麼就請首先找到
Time of Update: 2018-12-03
共用記憶體可以說是最有用的處理序間通訊方式,也是最快的IPC形式。這是因為所有進程共用同一塊記憶體,共用記憶體在各種處理序間通訊方式中具有最高的效率。訪問共用記憶體地區和訪問進程專屬的記憶體地區一樣快,並不需要通過系統調用或者其它需要切入核心的過程來完成。同時它也避免了對資料的各種不必要的複製。例如 兩個不同進程A、B共用記憶體的意思是,同一塊實體記憶體被映射到進程A、B各自的進程地址空間。進程A可以即時看到進程B對共用記憶體中資料的更新,反之亦然。由於多個進程共用同一塊記憶體地區,必然需要某種
Time of Update: 2018-12-03
1,檔案類型 linux 檔案可以分6類,普通檔案(按內部結構可分為:文字檔,二進位檔案),目錄檔案,連結檔案,裝置檔案(根據訪問資料方式的不同可分為: 塊裝置檔案,字元裝置檔案),管道檔案(主要用於不同進程間的資訊傳遞),通訊端(socket)
Time of Update: 2018-12-03
1)Kobject Kobject 是Linux 2.6引入的新的裝置管理機制,在核心中由struct
Time of Update: 2018-12-03
§1)bus 系統中匯流排由struct bus_type描述,定義為:struct bus_type { char * name; 匯流排類型的名稱 struct subsystem subsys; 與該匯流排相關的subsystem struct kset drivers; 所有與該匯流排相關的驅動程式集合 struct kset devices; 所有掛接在該匯流排上的裝置集合 struct bus attribute * bus_attrs;
Time of Update: 2018-12-03
ln:該命令在檔案之間建立連結。這種操作實際上是給系統中已有的某個檔案指定另外一個可用於訪問它的名稱。對於這個新的檔案名稱,我們可以為之指定不同的存取權限,以控制對資訊的共用和安全性的問題。如果連結指向目錄,使用者就可以利用該連結直接進入被連結的目錄而不用打一大堆的路徑名。而且,即使我們刪除這個連結,也不會破壞原來的目錄。 格式:ln [選項] 目標 目錄 連結有兩種,一種被稱為永久連結(Hard Link),另一種被稱為軟連結即符號連結(Symbolic
Time of Update: 2018-12-03
接下來我們從例子著手,運行localhost:/home/XX/examples/lddbus#insmod lddbus.ko,此時再看/sys/bus/ 這時就多了一個檔案夾ldd。這表示系統中多了一種名叫ldd的匯流排類型。同時再看/sys/device/,也多出來一個ldd0的檔案夾,這表示系統中多了一個名叫ldd0的硬體。 在lddbus.c中, 定義了一個匯流排和硬體類型 struct bus_type ldd_bus_type = {
Time of Update: 2018-12-03
本文檔的Copyleft歸yfydz所有,使用GPL發布,可以自由拷貝,轉載,轉載時請保持文檔的完整性,嚴禁用於任何商業用途。msn: yfydz_no1@hotmail.com來源:http://yfydz.cublog.cn1. 前言 本文介紹linux核心中一些常用的資料結構和操作。 2. 雙向鏈表(list) linux核心中的雙向鏈表通過結構 struct list_head來將各個節點串連起來,此結構會作為鏈表元素結構中的一個參數:struct list_head { struct
Time of Update: 2018-12-03
1、中斷是一種電訊號,由硬體裝置產生,並直接送入中斷控制器的輸入引腳上。然後再由中斷控制器向處理器發送相應的訊號。處理器一經檢測到此訊號,便中斷自己的當前工作轉而處理中斷。此後,處理器會通知作業系統已經產生中斷,這樣,作業系統就可以對這個中斷進行適當的處理了。
Time of Update: 2018-12-03
今天繼續看第7章《下半部和推後執行的工作》。前天本來已經寫了《非強制中斷的實現》,但是沒儲存,所以今天又重新寫一次。 我們首先從頭說起。我們一般把中斷處理流程切為兩個部分或兩半。中斷處理常式是上半部(top half),對時間要求相對寬鬆的工作就是下半部(bottom half)的執行目標。