Linux核心實踐

核心版本:2.6.34接上篇《添加網路通訊協定》。為了使用者方便查看brcm裝置的工作狀態,使用proc檔案系統是很好的方 式。一個網路通訊協定模組可以註冊到網路空間中register_pernet_subsys(),這個函數會為子空間分配一個id號,通過id可以在網 絡空間中找到分配給該子空間的記憶體:init_net->gen->ptr[id - 1]。而我們正是利用這塊記憶體去儲存proc中的相關資訊 :struct

Linux核心實踐

本文只是一個核心網路通訊協定的實踐的例子,先說明添加的目的,下篇開始具體的實現。核心版本:2.6.34;在支援802.1主機上,報文的一般格式:現在需要支援一種新的協議[二層] – BRCM協議,與IP等協議不同,它位於2層,擁有6位元組的頭部和4位元組的尾部 ,添加的層次決定了比起添加其它協議要複雜一些,新的報文格式如下,而我們的目的就是要網路通訊協定棧能正常處理這樣的報文 :實際上BRCM是一種交換器的內部協議,用處是讓交換器管理連接埠能通過BRCM擷取報文來自於交換

Linux核心分析

核心版本:2.6.34NetFilter在2.4.x核心中引入,成為linux平台下進行網路應用的主要擴充,不僅包括防火牆的實現 ,還包括報文的處理(如報文加密、報文分類統計等)等。NetFilter資料結構        勾子struct nf_hook_ops[net\filter\core.c]struct nf_hook_ops { struct list_head list; /* User fills in

Linux核心分析

在netif_receive_skb()函數中,可以看出處理的是像ARP、IP這些鏈路層以上的協議,那麼,鏈路層前序是在哪裡去掉的呢 ?答案是網卡驅動中,在調用netif_receive_skb()前,skb->protocol = eth_type_trans(skb, bp- >dev);該函數對處理後skb>data跳過乙太網路前序,由mac_header指示乙太網路前序:進入

linux基礎命令(34) du命令

Linux du命令也是查看使用空間的,但是與df命令不同的是Linux du 命令是對檔案和目錄磁碟使用的空間的查看,還是和df命令有一些區別的.1.命令格式:du [選項][檔案]2 .命令功能:顯示每個檔案和目錄的磁碟使用空間。3.命令參數:-a或-all  顯示目錄中個別文 件的大小。-b或-bytes  顯示目錄或檔案大小時,以byte為單位。-c或--total  

linux基礎命令(33) df命令

linux中df命令的功能是用來檢查linux伺服器的檔案系統的磁碟空間佔用情況。可以利用該命令 來擷取硬碟被佔用了多少空間,目前還剩下多少空間等資訊。1.命令格式:df [選項] [檔案]2.命令功能:顯示指定磁碟檔案的可用空間。如果沒有檔案名稱被指定,則所有當前被掛載的檔案系統的可用空間將被顯示。默 認情況下,磁碟空間將以 1KB 為單位進行顯示,除非環境變數 POSIXLY_CORRECT 被指定,那樣將以512位元組為單位進行顯示3.命令參數:必要參數:-a 全部檔案系統列表-h

linux基礎命令(27) linux chmod命令

chmod命令用於改變linux系統檔案或目錄的存取權限。用它控制檔案或目錄的存取權限。該命令有兩種用法。一種是包含字 母和操作符運算式的文字設定法;另一種是包含數位數字設定法。Linux系統中的每個檔案和目錄都有訪問許可許可權,用它 來確定誰可以通過何種方式對檔案和目錄進行訪問和操作。檔案或目錄的存取權限分為唯讀,唯寫和可執行三種。以檔案為 例,唯讀許可權表示只允許讀其內容,而禁止對其做任何的更改操作。可執行許可權表示允許將該檔案作為一個程式執行。檔案被創

linux基礎命令(23) Linux目錄結構

對於每一個Linux學習者來說,瞭解Linux檔案系統的目錄結構,是學好Linux的至關重要的一步.,深入瞭解linux檔案目錄結 構的標準和每個目錄的詳細功能,對於我們用好linux系統只管重要,下面我們就開始瞭解一下linux目錄結構的相關知識。當在使用Linux的時候,如果您通過ls –l / 就會發現,在/下包涵很多的目錄,比如etc、usr、var、bin ... ... 等

linux基礎命令(21) find命令之xargs

在使用 find命令的-exec選項處理匹配到的檔案時, find命令將所有匹配到的檔案一起傳遞給exec執行。但有些系統對能夠 傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘之後,就會出現溢出錯誤。錯誤資訊通常是“參數列太長”或“參數 列溢出”。這就是xargs命令的用處所在,特別是與find命令一起使用。find命令把匹配到的檔案傳遞給xargs命令,而xargs

linux基礎命令(19) find命令概覽

Linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。Linux下find 命令提供了相當多的尋找條件,功能很強大。由於find具有強大的功能,所以它 的選項也很多,其中大部分選項都值得我們花時間來瞭解一下。即使系統中含有 網路檔案系統( NFS),find命令在該檔案系統中同樣有效,只你具有相應的許可權 。 在運行一個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行 ,因為遍曆一個大的檔案系統可能會花費很長的時間(這裡是指30G位元組以上的文

linux基礎命令(15) tail命令

tail 命令從指定點開始將檔案寫到標準輸出.使用tail命令的-f選項可以方 便的查閱正在改變的記錄檔,tail -f filename會把filename裡最尾部的內容 顯示在螢幕上,並且不但重新整理,使你看到最新的檔案內容.1.命令格 式;tail[必要參數][選擇參數][檔案]2.命令功能:用 於顯示指定檔案末尾內容,不指定檔案時,作為輸入資訊進行處理。常用查看日 志檔案。3.命令參數:-f 迴圈讀取-q 不顯示處理資訊-v 顯示詳細的處理資訊-c<數目>

linux基礎命令(13) less命令

less 工具也是對檔案或其它輸出進行分頁顯示的工具,應該說是linux正統 查看檔案內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。 在 more 的時候,我們並沒有辦法向前面翻, 只能往後面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往後翻看檔案,更 容易用來查看一個檔案的內容!除此之外,在 less 裡頭可以擁有更多的搜尋功 能,不止可以向下搜,也可以向上搜。1.命令格式:less [參數]  檔案2

linux基礎命令(12) more命令

more命令,功能類似 cat ,cat命令是整個檔案的內容從上到下顯示在螢幕 上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空 白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有 搜尋字串的功能 。more命令從前向後讀取檔案,因此在啟動時就載入整個檔案 。1.命令格式:more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]2.命令功能:more命令和cat的功能一

linux基礎命令(10) cat命令

cat命令的用途是串連檔案或標準輸入並列印。這個命令常用來顯示檔案內容 ,或者將幾個檔案串連起來顯示,或者從標準輸入讀取內容並顯示,它常與重定 向符號配合使用。1.命令格式:cat [選項] [檔案]...2. 命令功能:cat主要有三大功能:1.一次顯示整個檔案:cat filename2.從鍵盤建立一個檔案:cat > filename 只能建立新檔案, 不能編輯已有檔案.3.將幾個檔案合并為一個檔案:cat file1 file2 > file3.命令參數:-A,

linux基礎命令(4) mkdir命令

linux mkdir 命令用來建立指定的名稱的目錄,要求建立目錄的使用者在當前 目錄中具有寫入權限,並且指定的目錄名不能是目前的目錄中已有的目錄。1.命 令格式:mkdir [選項] 目錄...2.命令功能:通過 mkdir 命令可以實現在指定位置建立以 DirName(指定的檔案名稱)命名的檔案夾或 目錄。要建立檔案夾或目錄的使用者必須對所建立的檔案夾的父資料夾具有寫入權限 。並且,所建立的檔案夾(目錄)不能與其父目錄(即父資料夾)中的檔案名稱重名, 即同一個目錄下不能有同名的(區分大小寫)

Linux主機驅動與外設驅動分離思想

1主機、外設驅動分離的意義在Linux裝置驅動架構的設計中,除了有分層設計實現以外,還有分隔的思想。舉一個簡單的例子,假設我們要通過SPI匯流排訪問某外設,在這個訪問過程中,要通過操作CPU XXX上的SPI控制器的寄存器來達到訪問SPI外設YYY的目的,最簡單的方法是:return_type xxx_write_spi_yyy(...){xxx_write_spi_host_ctrl_reg(ctrl);xxx_

Linux線程簡介

進程是程式執行時的一個執行個體,即它是程式已經執行到何種程度的資料結構的彙集。從核心的觀點看,進程的目的就是擔當分配系統資源(CPU時間、記憶體等)的基本單位。線程是進程的一個執行流,是CPU調度和指派的基本單位,它是比進程更小的能獨立啟動並執行基本單位。一個進程由幾個線程組成(擁有很多相對獨立的執行流的使用者程式共用應用程式的大部分資料結構),線程與同屬一個進程的其他的線程共用進程所擁有的全部資源。"進程——資源分派的最小單位,線程——

Linux中system函數的實現

#include <errno.h> #include <signal.h> #include <unistd.h> intsystem(const char *cmdstring) /* with appropriate signal handling */{ pid_t pid; int status; struct sigaction

Linux下使用GDB詳解

一、GDB的靜態調試啟動方法:1、當需要在命令列通過gdb來啟動可執行程式的時候,可使用一下命令:gdb <可執行程式名>這個時候gdb會載入可執行程式的符號表和堆棧,並為啟動程式作好準備;接下來,需要設定可執行程式的命令列參數:set args <參數列表>然後設定斷點: b或break;最後通過命令r或run來啟動程式,或者通過c或continue命令來繼續已經被暫停程式;2、當程式core的時候,需要查看core檔案的內容,顆使用以下方式:gdb <可執行程式名>

linux系統編程之訊號(二) 訊號發送函數及不同精度的睡眠

一、kill, raise, killpg 函數int kill(pid_t pid, int sig);int raise(int sig);int killpg(int pgrp, int sig);kill命令是調用kill函數實現的,kill函數可以給一個指定的進程或進程組發送指定的訊號,其中kill 函數的pid 參數取值不同表示不同含義,具體可man 一下。raise函數可以給當前進程發送指定的訊號(自己給自己發訊號)。killpg 函數可以給進程組發生訊號。這三個函數都是成功返回0

總頁數: 3662 1 .... 3180 3181 3182 3183 3184 .... 3662 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.