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