我們不妨想一下進(jìn)程在什么時候才能感知到內(nèi)核的存在。在malloc分配內(nèi)存的時候,最終會調(diào)用內(nèi)核的sys_mmap系統(tǒng)調(diào)用來申請虛擬內(nèi)存空間;在fork創(chuàng)建子進(jìn)程的時候,最終會調(diào)用內(nèi)核的sys_fork來復(fù)制父進(jìn)程;在open打開文件的時候,最終會調(diào)用內(nèi)核的sys_open來進(jìn)行文件系統(tǒng)底層操作。諸如此類的過程剛好,我總結(jié)了一些嵌入式資料放在視頻結(jié)尾都可以感知到內(nèi)核的存在,那這些過程有什么共同點呢?是的,他們都提到了一個詞——“系統(tǒng)調(diào)用”。這就是進(jìn)程與內(nèi)核交互的本質(zhì)。內(nèi)核就是一個二進(jìn)制文件,就是一塊代碼加數(shù)據(jù),平時駐留在內(nèi)存里啥也不干,它也沒法干,因為它又不是進(jìn)程。等到有進(jìn)程向做一些高特權(quán)的操作時,就調(diào)用一下系統(tǒng)調(diào)用,系統(tǒng)調(diào)用有個入口程序,從這里開始執(zhí)行的就是內(nèi)核代碼了,這樣的過程我們成為陷入內(nèi)核。當(dāng)要執(zhí)行的高特權(quán)操作完成后,系統(tǒng)調(diào)用會立即返回,然后進(jìn)程繼續(xù)執(zhí)行。我們可以看到,內(nèi)核在進(jìn)程需要時出現(xiàn),又在操作完成后迅速離開,而內(nèi)核出現(xiàn)所途徑的傳送門就叫做系統(tǒng)調(diào)用。
文章來源:http://www.zghlxwxcb.cn/news/detail-609711.html
我這里剛好有嵌入式、單片機、plc的資料需要可以私我或在評論區(qū)扣個6
文章來源地址http://www.zghlxwxcb.cn/news/detail-609711.html
到了這里,關(guān)于理解Linux內(nèi)核是個什么東西的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!