Linux用戶空間的核心

--嵌入式的完整系統通常具有:操作系統、中間件、應用程序層這幾個層次。

嵌入式操作系統(A)核心部分的內容與通用操作系統類似,包含了進程調度、進程通信、內存管理、設備管理。
A 通常包括移植層和驅動程序——作爲A適配不同硬件的接口。

A擴展模塊中通常含有文件系統、網絡協議、GUI系統、數據庫系統等。
不同A包含的內容不一定相同。如果A不具有這些模塊但需要,則可以作爲中間件實現。

--中間件提供軟件層的API,是整個系統中承上啓下的重要軟件層

基於Linux構建一個完整的系統,技術上需要具有以下內容:

  • Linux的內核及其硬件相關的移植

  • 各種設備的驅動程序

  • 用戶空間C庫、shell

  • 用戶空間的各種中間件

  • 用戶空間的應用程序
    這裏寫圖片描述

    在特定的開發環境中,將內核空間和用戶空間各部分整合之後,經過優化才能完成基於Linux的完整系統。

嵌入式Linux系統內核空間和用戶空間的接口包括以下幾部分:

  • 系統調用:POSIX標準的系統調用
  • 基於設備節點:字符設備和塊設備,作爲硬件相關的特殊接口
  • 基於Socket的網絡
  • 基於proc或sys文件系統

C 語言庫

簡稱 C 庫,是C語言程序的運行基礎。C庫建立於操作系統的調用之上,提供C語言的函數接口(API)。Linux中,用戶空間編程的基礎也是C語言庫。

C庫本身基於系統調用實現,其對上層(應用層)提供庫接口(函數接口),比如字符處理函數strcpy(),strcmp()等。C庫中的一些函數需要調用操作系統的系統調用來實現,比如:標準輸出printf()函數需要向標準輸出設備(屏幕)輸出字符,顯然需要硬件的支持。由於C庫不需要知道系統的硬件情況,只要調用write()這個系統調用即可。

這裏寫圖片描述

關於系統調用和函數調用的概念和區別,可以看一下該鏈接文章     
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章