內核是操作系統最基本的部分,兩者是包含關系。
操作系統OS:管理計算機軟硬件資源的系統軟件,包含內核、系統所必須的各種組件(函數庫、編譯器、調試工具、文本編輯器、給用戶提供的交互界面shell),還包括提供安全性和隱私服務。
內核kernel:用于管理系統資源,提供對軟件層面的抽象(對進程、文件系統、同步、內存、網絡協議等對象的操作和權限控制);提供對硬件訪問的抽象(磁盤、顯示、網卡、攝像頭)。內核是操作系統最核心的部分,作為應用連接各種硬件設備的橋梁,有了kernel這個中間層,應用程序就不需要關心硬件的細節,只需要關心與內核的交互。
單片機是無操作系統的,借助工具將程序燒錄進板子就可以直接用,CPU 是直接操作內存的「物理地址」,只能跑一個程序。Linux操作系統會提供一種機制,將不同進程的虛擬地址和不同內存的物理地址映射起來,可以實現進程間的隔離,同時跑多個進程。
內核的作用,現代操作系統,內核一般會提供 4 個基本能力:
管理進程、線程,決定哪個進程、線程使用 CPU,也就是進程調度的能力;
管理內存,決定內存的分配和回收,也就是內存管理的能力;
管理硬件設備,為進程與硬件設備之間提供通信能力,也就是硬件通信能力;
提供系統調用,如果應用程序要運行更高權限運行的服務,那么就需要有系統調用,它是用戶程序與操作系統之間的接口。
內核具有很高的權限,可以控制cpu、內存、硬盤等硬件;而用戶的應用程序如果需要對硬件進行訪問的話,也必須經過kernel這個中間層。對于內存,也分為兩個區域:
內核空間,這個內存空間只有內核程序可以訪問;
用戶空間,這個內存空間專門給應用程序使用;
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.