經過對Linux系統有了一定了解和熟悉後,想對其更深層次的東西做進一步探究。這當中就包括系統的啟動流程、文件系統的組成結構、基於動態庫和靜態庫的程序在執行時的異同、協議棧的架構和原理、驅動程序的機制等等。本人在綜合了現有網上大家智慧的
今天我們介紹另一種用戶內核空間通信的方法:proc文件系統。proc文件系統作為linux提供的一種虛擬文件系統並不占用實際外圍存儲空間,它僅存在於內存中,系統斷電即消失。proc文件系統最開始的設計主要是為滿足內核向用戶態進程報告其
今天我們來動手演練一下Netlink的用法,看看它到底是如何實現用戶-內核空間的數據通信的。我們依舊是在2.6.21的內核環境下進行開發。 在文件裡包含了Netlink協議簇已經定義好的一些預定義協議:點擊(此處)折疊或打開
引言 Alan Cox在內核1.3版本的開發階段最先引入了Netlink,剛開始時Netlink是以字符驅動接口的方式提供內核與用戶空間的雙向數據通信;隨後,在2.1內核開發過程中,Alexey Kuznetsov將N
關於Netlink多播機制的用法 在上一篇博文中我們所遇到的情況都是用戶空間作為消息進程的發起者,Netlink還支持內核作為消息的發送方的情況。這一般用於內核主動向用戶空間報告一些內核狀態,例如我們在用戶空間看到的US
Linux的老江湖們對這個概念當然不會陌生,然而剛接觸Linux的新手們就會被文件系統這個概念弄得暈頭轉向,恰好我當年正好屬於後者。從windows下轉到Linux的童鞋聽到最多的應該是fat32和ntfs(在windows 2000
為了架設ss在vultr上買了一個日本的vps 用的是centos7的系統 防火牆是 firewall 搗鼓了兩天 在這裡總結一下。如果小伙伴也准備在vultr上買vps 在注冊是 可以使用這個優惠連接 http://www.vu
今天我們說說“Pre-網絡編程”。內容比較雜,但都是在做網絡應用程序開發過程中經常要遇到的問題。一、大端、小端和網絡字節序小端字節序:little-endian,將低字節存放在內存的起始地址;大端字節序:big-endian,將高字節
4.3 數據接收流程圖各層主要函數以及位置功能說明:1)sock_read:初始化msghdr{}的結構類型變量msg,並且將需要接收的數據存放的地址傳給msg.msg_iov->iov_base. net/socke
1、卸載rhel的默認安裝的yum包查看yum包rpm -qa|grep yum卸載之rpm -qa|grep yum|xargs rpm -e --nodeps2、下載新的yum包64位linux系統下載安裝包wgethttp://
本人研究linux的防火牆系統也有一段時間了,由於近來涉及到的工作比較紛雜,久而久之怕生熟了。趁有時間,好好把這方面的東西總結一番。一來是給自己做個沉澱,二來也歡迎這方面比較牛的前輩給小弟予以指點,共同學習,共同進步。 能在CU
Netfilter框架為內核模塊參與IP層數據包處理提供了很大的方便,內核的防火牆模塊(ip_tables)正是通過把自己所編寫的一些鉤子函數注冊到Netfilter所監控的五個關鍵點(NF_IP_PRE_ROUTING,NF_IP_
作為ipchains的後繼者,iptables具有更加優越的特性,良好的可擴展功能、更高的安全性以及更加緊湊、工整、規范的代碼風格。 在2.6的內核中默認維護了三張表(其實是四張,還有一個名為raw的表很少被用到,
今天我們討論一下防火牆的數據包過濾模塊iptable_filter的設計原理及其實現方式。 內核中將filter模塊被組織成了一個獨立的模塊,每個這樣獨立的模塊中都有個類似的init()初始化函數。編寫完該函數後,
Netfilter連接跟蹤的詳細流程 上一篇我們了解了連接跟蹤的基本框架和大概流程,本篇我們著重分析一下,數據包在連接跟蹤系統裡的旅程,以達到對連接跟蹤運行原理深入理解的目的。 連接跟蹤機制在Netfilter框架裡所注冊
如何理解Netfilter中的連接跟蹤機制? 本篇我打算以一個問句開頭,因為在知識探索的道路上只有多問然後充分調動起思考的機器才能讓自己走得更遠。連接跟蹤定義很簡單:用來記錄和跟蹤連接的狀態。問:為什麼又需要連接跟蹤功能呢?答:
基於連接跟蹤機制的狀態防火牆的設計與實現連接跟蹤本身並沒有實現什麼具體功能,它為狀態防火牆和NAT提供了基礎框架。前面幾章節我們也看到:從連接跟蹤的職責來看,它只是完成了數據包從“個性”到“共性”抽象的約定,即它的核心工作是如何針對不
連接跟蹤系統的初始化流程分析 有了前面的知識,我們再分析連接跟蹤系統的初始化ip_conntrack_standalone_init()函數就太容易不過了。還是先上ip_conntrack_standalone_init()函數
安裝過sudo apt-get install xxxx 安裝軟件後,總是無法卸載干淨,這裡提供一個方法可以解決這個問題,大家參考使用吧過sudo apt-get install xxxx 安裝軟件後,總是無法卸載干淨,這裡以Apac