殭屍檔案是計算機黑客為攻擊大型伺服器或大型電腦,而通過以有網路工具或自己製作的工具生成的乙個檔案,如果使用者在瀏覽網頁時正在好個網頁裡有他們寫入的這個檔案,那麼你的電腦就會像中病毒一樣中這個檔案。大多數功能就是可以對指定的遠端電腦進行ddos一類的操作。
殭屍程序是指的父程序已經退出,而該程序dead之後沒有程序接受,就成為殭屍程序.(zombie)程序。
怎樣產生殭屍程序的:
乙個程序在呼叫exit命令結束自己的生命的時候,其實它並沒有真正的被銷毀,而是留下乙個稱為殭屍程序(zombie)的資料結構(系統呼叫exit,它的作用是使程序退出,但也僅僅限於將乙個正常的程序變成乙個殭屍程序,並不能將其完全銷毀)。在linux程序的狀態中,殭屍程序是非常特殊的一種,它已經放棄了幾乎所有記憶體空間,沒有任何可執行**,也不能被排程,僅僅在程序列表中保留乙個位置,記載該程序的退出狀態等資訊供其他程序收集,除此之外,殭屍程序不再占有任何記憶體空間。它需要它的父程序來為它收屍,如果他的父程序沒安裝sigchld訊號處理函式呼叫wait或waitpid()等待子程序結束,又沒有顯式忽略該訊號,那麼它就一直保持殭屍狀態,如果這時父程序結束了,那麼init程序自動會接手這個子程序,為它收屍,它還是能被清除的。但是如果如果父程序是乙個迴圈,不會結束,那麼子程序就會一直保持殭屍狀態,這就是為什麼系統中有時會有很多的殭屍程序。
怎麼檢視殭屍程序:
利用命令ps,可以看到有標記為z的程序就是殭屍程序。
怎樣來清除殭屍程序:
1.改寫父程序,在子程序死後要為它收屍。具體做法是接管sigchld訊號。子程序死後,會傳送sigchld訊號給父程序,父程序收到此訊號後,執行waitpid()函式為子程序收屍。這是基於這樣的原理:就算父程序沒有呼叫wait,核心也會向它傳送sigchld訊息,儘管對的預設處理是忽略,如果想響應這個訊息,可以設定乙個處理函式。
2.把父程序殺掉。父程序死後,殭屍程序成為"孤兒程序",過繼給1號程序init,init始終會負責清理殭屍程序.它產生的所有殭屍程序也跟著消失。
Java集合詳細介紹及原理
collection 單列集合 list 有序,可重複 arraylist 底層資料結構是陣列,查詢快,增刪慢 執行緒不安全,效率高 vector 底層資料結構是陣列,查詢快,增刪慢 執行緒安全,效率低 linkedlist 底層資料結構是鍊錶,查詢慢,增刪快 執行緒不安全,效率高 set 無序,唯...
Linux檔案系統詳細介紹
一 檔案系統層次分析 由上而下主要分為使用者層 vfs層 檔案系統層 快取層 塊裝置層 磁碟驅動層 磁碟物理層 使用者層 最上面使用者層就是我們日常使用的各種程式,需要的介面主要是檔案的建立 刪除 開啟 關閉 寫 讀等。vfs層 我們知道linux分為使用者態和核心態,使用者態請求硬體資源需要呼叫s...
NTFS檔案系統介紹及檔案定位
在日常生活中,我們開啟我們的電腦操作各種檔案。我們都知道,檔案資料都儲存在硬碟上,但是,硬碟中儲存的資料都是0 1的二進位制資料,我們的電腦怎麼從這一大堆0 1資料中知道哪個是哪個檔案呢?這就是檔案系統在起作用,它對硬碟的資料設定格式規則,儲存資料的時候,就按這個儲存規則進行儲存,那麼,在讀取資料檔...