?
進程名稱 | 介紹 |
systemd | Systemd 可以管理所有系統資源。不同的資源統稱為 Unit(單位)。 Unit 一共分成12種。 systemctl list-units命令可以查看當前系統的所有 Unit |
kthreadd | kthreadd進程由idle通過kernel_thread創建,并始終運行在內核空間, 負責所有內核線程的調度和管理,它的任務就是管理和調度其他內核線程kernel_thread 這種內核線程只有一個,它的作用是管理調度其它的內核線程。 它在內核初始化的時候被創建,會循環運行一個叫做kthreadd的函數,該函數的作用是運行kthread_create_list全局鏈表中維護的kthread。可以調用kthread_create創建一個kthread,它會被加入到kthread_create_list鏈表中,同時kthread_create會weak up kthreadd_task。kthreadd在執行kthread會調用老的接口——kernel_thread運行一個名叫“kthread”的內核線程去運行創建的kthread,被執行過的kthread會從kthread_create_list鏈表中刪除,并且kthreadd會不斷調用scheduler 讓出CPU。這個線程不能關閉。 |
kworker | "kworker" 是 Linux 內核的工作線程,用于異步處理工作隊列中的任務。這些任務包括處理硬件中斷、文件系統事件、管理系統內存等 |
ksoftirqd | 在Linux內核中,ksoftirqd是一個專門用于處理軟中斷的線程。軟中斷是CPU在執行中斷服務程序(ISR)期間產生的一種特殊事件,用于處理一些需要盡快完成的任務。ksoftirqd線程與硬中斷處理線程(例如中斷處理程序或底半部處理程序)共同協作,確保系統能夠高效地響應各種硬件事件。 |
migration | 進程遷移就是將一個進程從當前位置移動到指定的處理器上。它的基本思想是在進程執行過程中移動它,使得它在另一個計算機上繼續存取它的所有資源并繼續運行,而且不必知道運行進程或任何與其它相互作用的進程的知識就可以啟動進程遷移操作,這意味著遷移是透明的。 這種內核線程共有32個,從migration/0到migration/31,每個處理器核對應一個migration內核線程,主要作用是作為相應CPU核的遷移進程,用來執行進程遷移操作,內核中的函數是migration_thread() 屬于2.6內核的負載平衡系統,該進程在系統啟動時自動加載(每個?cpu?一個),并將自己設為?SCHED_FIFO?的實時進程,然后檢查?runqueue::migration_queue?中是否有請求等待處理,如果沒有,就在?TASK_INTERRUPTIBLE?中休眠,直至被喚醒后再次檢查。migration_thread()?僅僅是一個?CPU?綁定以及?CPU?電源管理等功能的一個接口。這個線程是調度系統的重要組成部分。 |
rcu_bh | RCU鎖機制。首先我們從概念上理解下什么叫RCU,其中讀(Read):讀者不需要獲得任何鎖就可訪問RCU保護的臨界區;拷貝(Copy):寫者在訪問臨界區時,寫者“自己”將先拷貝一個臨界區副本,然后對副本進行修改;更新(Update):RCU機制將在在適當時機使用一個回調函數把指向原來臨界區的指針重新指向新的被修改的臨界區,鎖機制中的垃圾收集器負責回調函數的調用。總結即是讀-拷貝-更新。 |
rcu_sched | |
lru-add-drain | |
watchdog | WatchDog是一種電子或軟件定時器,用于檢測計算機故障,并從計算機故障中恢復。在正常操作期間,計算機會定期重置看門狗計時器,以防止其丟失或“計時”。 如果由于硬件故障或程序錯誤而導致計算機無法重置看門狗,則計時器將丟失并生成超時信號, 超時信號會被用于啟動一個或多個糾正措施。 糾正措施通常包括將計算機系統置于安全狀態并恢復系統的正常運行。 這種內核線程共有32個,從watchdog/0到watchdog/31, 每個處理器核對應一個watchdog 內核線程,watchdog用于監視系統的運行,在系統出現故障時自動重新啟動系統,包括一個內核 watchdog module 和一個用戶空間的 watchdog 程序。 在Linux 內核下, watchdog的基本工作原理是:當watchdog啟動后(即/dev/watchdog設備被打開后),如果在某一設定的時間間隔(1分鐘)內/dev/watchdog沒有被執行寫操作, 硬件watchdog電路或軟件定時器就會重新啟動系統,每次寫操作會導致重新設定定時器。 |
netns | Network Namespace (以下簡稱netns)是Linux內核提供的一項實現網絡隔離的功能,它能隔離多個不同的網絡空間,并且各自擁有獨立的網絡協議棧,這其中便包括了網絡接口(網卡),路由表,iptables規則等。例如大名鼎鼎的docker便是基于netns實現的網絡隔離,今天我們就來手動實驗一下netns的隔離特性。 |
kdevtmpfs | |
khungtaskd | kdevtmpfsi 是一個挖礦病毒,大多數都是 redis 程序侵入,其利用Redis未授權或弱口令作為入口,使用主從同步的方式從惡意服務器上同步惡意module,之后在目標機器上加載此惡意module并執行惡意指令。 |
writeback | writeback進程是Linux內核中的一個常駐內存的線程,負責將dirty的數據刷新到磁盤。在Linux內核中有一個常駐內存的線程bdi_forker_thread,該線程負責為bdi_object創建writeback線程,同時檢測如果writeback線程長時間處于空閑狀態,bdi_forker_thread線程便會將其進行銷毀。writeback線程被創建之后會處理等待的work。當以dirtyable memory作為ratio的基數計算得到的“臟頁面”數目超過dirty limit,進程將阻塞進行同步的writeback,以避免其繼續產生更多的dirty page。一個改進的做法是將「同步」變為「異步」:超過閾值后,強制進程(dirtier)休眠,由background的flusher thread來處理writeback |
kintegrityd | 云主機 野進程kintegrityds大量占cpu資源, 安全 |
bioset | 很感謝騰訊云客服的排查,最終鎖定了“bioset”。系統由于被感染的文件較多,Linux靜態鏈接庫被劫持,挖礦的進程被隱藏,所以直接是看不到的,最終我選擇了將業務打包遷移后重裝系統了。 |
kblockd | 這種內核線程共有32個,從kblockd/0到kblockd/31, 每個處理器核對應一個 kblockd 內核線程。用于管理系統的塊設備,它會周期地激活系統內的塊設備驅動。如果擁有塊設備,那么這些線程就不能被去掉。 |
md | |
edac-poller | EDAC:主要用來檢測物理內存 和 PCI硬件錯誤 |
kswapd0 | kswapd0是一個挖礦病毒的進程,可能與tke搭建k8s平臺或者安裝docker的過程有關。本文介紹了如何通過檢查進程信息、根源、用戶、cron等方式找出和清除kswapd0和rsync進程,并提供了一個可行的腳本檢查 |
ksmd | 作為一個系統管理程序(hypervisor),Linux 有幾個創新,2.6.32 內核中一個有趣的變化是 KSM(Kernel Samepage Merging) 允許這個系統管理程序通過合并內存頁面來增加并發虛擬機的數量。本文探索 KSM 背后的理念(比如存儲去耦合)、KSM 的實現、以及如何管理 KSM。 |
khugepaged | 處理大內存的性能關鍵計算應用程序工作集已經運行在libhugetlbfs之上,然后依次運行 hugetlbfs。透明的巨型頁面支持是另一種使用大頁為虛擬內存提供大頁支持的方法, 該支持自動提升和降低頁面大小和沒有hugetlbfs的缺點。 |
crypto | 在Linux內核中提供了加密API,通過一組頭文件crypto引出。整體的思路為首先創建加密上下文,并且在上下文中注冊使用的算法,最后使用內核API完成加解密的操作。這里以散列計算和對稱加密為例。 |
kthrotld | kthread進程由idle通過kernel_thread ()創建,并始終運行在內核空間,負責所有內核線程的調度和管理。 kthread進程負責管理和調度其他內核線程,所有的內核線程都直接或間接以kthread為父進程。 我們利用ps和pstree來觀察一下CentOS6.10系統上的進程。 |
kmpath_rdacd | |
kaluad | kaluad是SCSI多徑ALUA (非對稱邏輯單元分配) 工作隊列。它用于處理延遲的工作--基本上,每當一個操作產生“重試”結果時,就會將它添加到工作隊列中,以便以后處理(在上面鏈接的源代碼中查找 |
kpsmoused | 是Linux內核中的一個驅動程序,用于支持PS/2鼠標設備。它負責處理PS/2鼠標的輸入事件,并將其轉換為用戶空間可讀取的數據。 |
ipv6_addrconf | |
deferwq | |
kauditd | |
ata_sff | |
scsi_eh_0 | |
scsi_tmf_0 | |
scsi_eh_1 | |
scsi_tmf_1 | |
ttm_swap | |
kdmflush | |
xfsalloc | |
xfs_mru_cache | |
xfs-buf/dm-0 | |
xfs-data/dm-0 | |
xfs-conv/dm-0 | |
xfs-cil/dm-0 | |
xfs-cil/dm-0 | |
xfs-reclaim/dm- | |
xfs-log/dm-0 | |
xfs-eofblocks/d | |
xfsaild/dm-0 | |
kworker/1:1H | |
hwrng | |
kvm-irqfd-clean | |
kworker | |
xfs-buf/vda1 | |
xfs-data/vda1 | |
xfs-conv/vda1 | |
events | 這種內核線程共有32個,從events/0到events/31, 每個處理器核對應一個 events內核線程。用來處理內核事件很多軟硬件事件(比如斷電,文件變更)被轉換為events,并分發給對相應事件感興趣的線程進行響應。 |
rpciod | 這種內核線程共有32個,從rpciod/0到rpciod/31, 每個處理器核對應一個rpciod內核線程,主要作用是作為遠過程調用服務的守護進程,用于從客戶端啟動I/O服務,通常啟動NFS服務時要用到它。 |