1. 禁止系統響應任何從外部/內部來的ping請求攻擊者一般首先通過ping命令檢測此主機或者IP是否處於活動狀態,如果能夠ping通 某個主機或者IP,那麼攻擊者就認為此系統處於活動狀態,繼而進行攻擊或破壞。如果沒有人能ping通機器並收到響應,那麼就可以大大增強伺服器的安全性,linux下可以執行如下設定,禁止ping請求:[root@localhost ~]#echo “1”>
一 系統運行級windows系統有安全運行模式和正常運行模式,這是兩個不同的運行級,同樣,linux也有系統運行層級,並且linux系統的運行層級更加靈活,更加多樣化。在講述運行層級前,先講述下linux下的init程式,因為init程式直接和系統運行層級相關聯,
前言Linux中對一個檔案進行操作的時候,一件很重要的事情是對檔案名稱進行解析處理,並且找到對應檔案的inode對象,然後建立表示檔案的file對象。在此,對檔案名稱解析過程,並且如何找到對應inode的過程進行源碼分析。分析代碼基於Linux-3.2版本。關鍵函數分析不管是通過應用程式層的API函數還是在核心中開啟一個檔案,最終都需要調用filp_open函數,該函數的主要職責就是解析檔案名稱,找到檔案對應的inode對象,然後分配記憶體建立file對象,最後執行該檔案對應的file->
1, Buffer cache的作用為了提高磁碟裝置的IO效能,我們採用記憶體作為磁碟裝置的cache。使用者操作磁碟裝置的時候,首先將資料寫入記憶體,然後再將記憶體中的髒資料定時重新整理到磁碟。這個用作磁碟資料緩衝的記憶體就是所謂的buffer cache。在以前的Linux系統中,有很完善的buffer cache軟體層,專門負責磁碟資料的緩衝。在磁碟裝置的上層往往會架構檔案系統,為了提高檔案系統的效能,VFS層同樣會提供檔案系統層級的page
Linux系統調用系統調用指作業系統提供給使用者程式調用的一組“特殊”介面,使用者程式可以通過 這組“特殊”介面來獲得作業系統核心提供的服務。為什麼使用者程式不能直接存取系統核心提供的服 務呢?這是由於在Linux中,為了更好地保護核心空間,將程式的Runspace分為使用者空間和核心空間(也就是 常稱的使用者態和核心態),它們分別運行在不同的層級上,邏輯上是相互分離的。因此,使用者進程通常情況下
多工函數說明我們都知道fcntl()函數解決了檔案分享權限設定的問題,如果不知道請看: http://blog.csdn.net/mybelief321/article/details/8993138。接下來該處理I/O複用的情況了。那麼,什 麼是I/O複用呢?這個咱得先弄清楚,所謂的I/O複用無非就是多個進程共同使用一個I/O輸入輸出資料流。在經典的《Unix網路編程第1卷》Chapter 6中作者詳細介紹了五種I/O模型,分別為:① blocking I/O② nonblocking
上一節:http://blog.csdn.net/mybelief321/article/details/8989755講述的5個基本函數函數open()、 read()、write()、lseek()和close()實現的檔案的開啟、讀/寫等操作,本節將討論在檔案已經共用的情況下 如何操作,也就是當多個使用者共同使用、操作一個檔案的情況。這時,Linux通常採用的方法是給檔案上鎖, 來避免共用的資源產生競爭的狀態。檔案鎖包括建議性鎖和強制性鎖。建議性鎖要求每個上鎖檔案的 進程檢查是否有鎖存在,
Linux檔案I/O系統概述虛擬檔案系統(VFS)Linux系統成功的關鍵因素之一就是具有與其 他作業系統和諧共存的能力。Linux系統的檔案系統由兩層結構構建:第一層是虛擬檔案系統(VFS),第二層 是各種不同的具體的檔案系統。VFS就是把各種具體的檔案系統的公用部分抽取出來,形成一個抽象層 ,是系統核心的一部分,它位於使用者程式和具體的檔案系統之間。它對使用者提供了標準的檔案系統調用介面,
守護進程概述守護進程,又叫daemon進程(不知怎的,我突然想起來吸血鬼日記中的達蒙了,很好 看的美劇),是Linux中的後台服務進程。他是一個生存期較長的進程,通常獨立於控制終端並且周期性地執行 某種任務或者等待處理某些發生的事件。守護進程常常在系統引導載入時啟動,在系統關閉時終止。Linux有 很多系統哦服務,大多數服務都是通過守護進程實現的。同時,守護進程還能完成許多系統任務,例如,作業 規划進程cronf、列印進程lqd等(這裡的結尾字母 d 就是 daemon的意思)。在Linux中,
實驗目的通過編寫多進程程式,熟練掌握fork()、exec()、wait()和waitpid()等函數的使用,進一步 理解在Linux中多進程編程的步驟。實驗內容該實驗有3個進程,其中一個為父進程,其餘兩個 是該父進程建立的子進程,其中一個子進程運行“ls -l”指令,另一個子進程在暫停5s後異常退出。父進程 先用阻塞方式等待第一個進程的結束,然後用非阻塞方式等待另一個子進程的退出,待收集到第2個子進程結
wait()和waitpid()函數說明wait()函數用於使父進程(也就是調用wait()的進程)阻塞,直到 一個子進程結束或者該進程接收到了一個指定的訊號為止。如果該父進程沒有子進程或者它的子進程已經結束 ,則wait()函數就會立即返回。waitpid()的作用和wait()一樣,但它並不一定要等待第一個終止的子 進程(它可以指定需要等待終止的子進程),它還有若干選項,如可提供一個非阻塞版本的 wait()功能,也 能支援作業控制。實際上,wait()函數只是
exit()和_exit()函數函數說明建立進程使用fork()函數,執行進程使用exec函數族,終止 進程則使用exit()和_exit()函數。當進程執行到exit()或_exit()函數時,進程會無條件的停止剩下的所有操 作,清除各種資料結構,並終止本進程的運行。但是,這兩個函數還是有區別的,其調用過程如圖1所示:從圖1可以看出,_exit()函數的作用是:直接使進程停止運行,清除其使用的記憶體空間,並清除其
訊號量通訊之semget()、semctl()、semop()及其基礎實驗這個訊號量理解起來是有點不容易啊,我看書看了好幾遍才知道怎麼回事。在講這一節訊號量之前,我還 是想先說幾個小知識點,這也是我在學習完後最終理解的“精華”,哈哈!訊號量是幹啥的?訊號量就是用來解決進程間的同步與互斥問題的一種處理序間通訊機制。同步與互斥的通俗理解這兩個名詞咱們從字面上就能理解。舉個例子吧,在建立子進程時,你是怎麼保證父子進程執行的先後順序呢
上一節介紹處理序間通訊方式之一訊號通訊中的訊號產生和捕捉函數,這一節介紹訊號處理函數signal()函 數和訊號集合函式組,接上一節http://blog.csdn.net/mybelief321/article/details/9078193強烈建 議做最後一個實驗!訊號處理方法訊號處理的方法主要有以下兩種:① 使用 signal() 函數;② 使用訊號集合函式組。使用signal()函數函數說明使
有名管道(FIFO)首先將上一節的有關有名管道的定義再貼出來有名管道是對無名管道的一 種改進,它具有以下特點:① 它可以使互不相關的兩個進程間實現彼此通訊;② 該管道可以通過路徑名來指出,並且在檔案系統中是可見的。在建立了管道之後,兩個進程就可以把它 當做普通檔案一樣進行讀寫操作,使用非常方便;③ FIFO嚴格地遵循先進先出規則,對管道及 FIFO的讀總是從開始處返回資料,對它們的寫則是把資料添加到末尾,它們不支援如 lseek()等檔案定位操作
管道簡介管道是Linux中處理序間通訊的一種方式,它把一個程式的輸出直接連接到另一個程式的輸 入(其實我更願意將管道比喻為農村澆地的管子)。Linux的管道主要包括兩種:無名管道和有名管道。這一節 主要講無名管道,首先介紹一下這兩個管道。(特點很重要啊!)1、無名管道無名管道是 Linux中管道通訊的一種原始方法,如圖一(左)所示,它具有以下特點:① 它只能用於具有親 緣關係的進程之間的通訊(也就是父子進程或者兄弟進程之間);② 它是一個半雙工的通訊模
Linux下多任務介紹首先,先簡單的介紹一下什麼叫多任務系統?任務、進程、線程分別是什嗎? 它們之間的區別是什嗎?,從而可以宏觀的瞭解一下這三者,然後再針對每一個仔細的講解。什麼叫 多任務系統?多任務系統指可以同一時間內運行多個應用程式,每個應用程式被稱作一個任務。任務 定義:任務是一個邏輯概念,指由一個軟體完成的任務,或者是一系列共同達到某一目的的操作。進程 定義:進程是指一個具有獨立功能的程式在某個資料集上的一次動態執行過程,它是系統進行資源分派和調度
3.中斷控制器驅動在Linux核心中,各個裝置驅動可以簡單地調用request_irq()、enable_irq()、disable_irq()、local_irq_disable()、local_irq_enable()等通用API完成中斷申請、使能、禁止等功能。在將Linux移植到新的SoC時,晶片供應商需要提供該部分API的底層支援。local_irq_disable()、local_irq_enable()的實現與具體中斷控制器無關,對於ARMv6以上的體系架構而言,是直接調用CPSID
1.SoC Linux底層驅動的組成和現狀為了讓Linux在一個全新的ARM SoC上運行,需要提供大量的底層支撐,如定時器節拍、中斷控制器、SMP啟動、CPU hotplug以及底層的GPIO、clock、pinctrl和DMA硬體的封裝等。定時器節拍、中斷控制器、SMP啟動和CPU
Redhat有兩大Linux產品系列,其一是免費的Fedora Core系列主要用於案頭版本,提供了較多新特性的支援。另外一個產品系列是收費的Enterprise系列,這個系列分成:AS/ES/WS等分支,他們都是redhat企業級Linux,簡稱為 RHELAS是超級伺服器版(Advanced Server),他在標準Linux核心的基礎上,做了效能上的增強,並提高了可靠性,整合了眾多常見伺服器的驅動程式。可輕鬆識別IBM/DELL/HP等常見機架式伺服器的磁碟陣列卡等裝置。典型的AS應用為: