Linux 內核編程總結

                                                               Linux 內核編程總結

      從事了幾年的內核編程,對內核編程有一定的經驗,現總結、吐槽下,作爲標記。

      任何進程都有有進程的入口點,用戶態的進程,其入口點是,main函數。

      那麼內核的入口點是什麼?個人理解整個OS,運行起來就是一個進程,

     內核的入口點是init進程,在這個進程中負責:

     1)子進程的創建,包括內核的線程、用戶態的進程。

     2)進程調度

     3)I/O調度

     4)內存管理

      內核編程跟用戶態編程的相同點、異同點:

      1)多線程編程需要同步、互斥,互斥的語義提供了

           鎖、信號量。

     2)分配內存的語義,提供分配內存的工具。

     3)文件、網絡接口。

     不同點:

      在內核中分爲中斷環境和非中斷環境,中斷環境中不能睡眠,所有會睡眠的函數不能在中斷環境中調用,否則會出現假死。

      因爲中斷環境睡眠,操作系統是無法喚醒該調用。

     

         

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章