Linux應用層的析解

2022-08-10 08:36:08 字數 727 閱讀 9220

在使用者空間進行程式設計時會使用許多標頭檔案,比如unistd.h,stdlib.h等等,這裡面所有的函式,變數,巨集等都處於使用者空間,被編譯鏈結在庫中。

對於linux作業系統,庫的底層會呼叫系統呼叫,這種呼叫不是通過呼叫核心函式實現(這樣就會出現重定位核心函式名位址的問題),而是將系統呼叫號(就是乙個數值)作為引數通過暫存器傳遞給核心實現的,80號中斷是在使用者態就能夠觸發的中斷,每乙個系統呼叫號都會約定好在核心中的函式(即系統呼叫),顯然我們同樣可以直接使用此中斷和系統呼叫號直接在系統呼叫層面程式設計,但不到一定水平太困難,而且基礎功能均實現在了庫中(無須自己多此一舉),只需要呼叫庫提供的函式就能夠基本完成自己的應用。

在乙個硬體平台上執行程式,無論是嵌入式平台還是pc平台等,現在基本上都需要動態共享庫的支撐。

執行緒庫,-lpthread編譯時加上,否則找不到

socket

處理命令列的庫。

為上層工具提供乙個統一的介面,處理檔案格式;

例項:open與fopen的關係

這就展示出來c庫的一種組織方式,open是比較低階的,而fopen是比較高階的io......

->>>對於在啟動指令碼中執行比如ls這種程式感到奇怪,以為在啟動完成後才能執行使用者空間的程式,然後啟動的乙個過程就是使用者空間的程式來完成的,因此這就是個相互矛盾的印象。

5個查詢命令

Linux應用層時間函式

include time t time time t ptr 這個函式返回從unix新紀元 1970年1月1日00 00 00 utc 開始到現在經過的秒數,並且是按照utc協調時間進行計算,統稱為日曆時間。它的精度是秒。include int clock gettime clockid t clo...

表示層 應用層

表示層 功能 為異種機通訊提供一種公共語言,以便能進行互操作。這種型別的服務之所以需要,是因為不同的計算機體系結構使用的資料表示法不同。例如,ibm主機使用ebcdic編碼,而大部分pc機使用的是ascii碼。在這種情況下,便需要表示層來完成這種轉換。應用層 包含了通常要使用的協議 http協議 超...

應用層協議

應用層協議定義了執行在不同端系統上的應用程式程序如何相互傳遞訊息。特別是定義了 交換的訊息型別,如請求訊息和響應訊息。各種訊息型別的語法,如訊息中的各個字段及其詳細描述。欄位的語義,即包含在字段中的資訊的含義。程序何時 如何傳送訊息及對訊息進行響應的規則。有些應用層協議是由rfc文件定義的,因此它們...