linux的 0号进程(idle进程) 和 1 号进程(init进程)
生活随笔
收集整理的這篇文章主要介紹了
linux的 0号进程(idle进程) 和 1 号进程(init进程)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux下有3個特殊的進程,idle進程(PID = 0), init進程(PID = 1)和kthreadd(PID = 2)
- idle進程由系統自動創建, 運行在內核態
idle進程其pid=0,其前身是系統創建的第一個進程,也是唯一一個沒有通過fork或者kernel_thread產生的進程。完成加載系統后,演變為進程調度、交換
- init進程由idle通過kernel_thread創建,在內核空間完成初始化后, 加載init程序, 并最終用戶空間
由0進程創建,完成系統的初始化. 是系統中所有其它用戶進程的祖先進程
Linux中的所有進程都是有init進程創建并運行的。首先Linux內核啟動,然后在用戶空間中啟動init進程,再啟動其他系統進程。在系統啟動完成完成后,init將變為守護進程監視系統其他進程。
- kthreadd進程由idle通過kernel_thread創建,并始終運行在內核空間, 負責所有內核線程的調度和管理
它的任務就是管理和調度其他內核線程kernel_thread, 會循環執行一個kthread的函數,該函數的作用就是運行kthread_create_list全局鏈表中維護的kthread, 當我們調用kernel_thread創建的內核線程會被加入到此鏈表中,因此所有的內核線程都是直接或者間接的以kthreadd為父進程
更多詳細信息的原文鏈接
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的linux的 0号进程(idle进程) 和 1 号进程(init进程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS2017一次性运行多个项目的方法
- 下一篇: glutSwapBuffers函数用法