Linux 内核编程总结
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Linux 內核編程總結
? ? ? 從事了幾年的內核編程,對內核編程有一定的經(jīng)驗,現(xiàn)總結、吐槽下,作為標記。
? ? ? 任何進程都有有進程的入口點,用戶態(tài)的進程,其入口點是,main函數(shù)。
? ? ? 那么內核的入口點是什么?個人理解整個OS,運行起來就是一個進程,
? ? ?內核的入口點是init進程,在這個進程中負責:
? ? ?1)子進程的創(chuàng)建,包括內核的線程、用戶態(tài)的進程。
? ? ?2)進程調度
? ? ?3)I/O調度
? ? ?4)內存管理
? ? ? 內核編程跟用戶態(tài)編程的相同點、異同點:
? ? ? 1)多線程編程需要同步、互斥,互斥的語義提供了
? ? ? ? ? ?鎖、信號量。
? ? ?2)分配內存的語義,提供分配內存的工具。
? ? ?3)文件、網(wǎng)絡接口。
? ? ?不同點:
? ? ? 在內核中分為中斷環(huán)境和非中斷環(huán)境,中斷環(huán)境中不能睡眠,所有會睡眠的函數(shù)不能在中斷環(huán)境中調用,否則會出現(xiàn)假死。
? ? ? 因為中斷環(huán)境睡眠,操作系統(tǒng)是無法喚醒該調用。
? ? ?
? ? ? ? ?
總結
以上是生活随笔為你收集整理的Linux 内核编程总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax轮询模拟websocket,Aj
- 下一篇: 移植linux内核-映像文件,移植Lin