UNIX基礎知識 《APUE》第一章筆記

2022-03-22 01:03:05 字數 1395 閱讀 5621

核心:可將作業系統定義為一種軟體,它控制計算機硬體資源,提供程式執行環境。一般而言,我們稱這種軟體為核心(kernel)。它相對較小,位於環境的中心。

unix系統呼叫:

核心,系統呼叫)

shell,庫函式

應用軟體

最下層是核心,最上層是應用軟體

shell:shell是一種特殊的應用程式,它為執行其他應用程式提供了乙個介面。它是乙個命令列直譯器,它讀取使用者輸入,然後執行命令儲存使用者密碼的檔案中,最後乙個字段指名了使用者使用哪個shell,系統通過檢測這個字段,來選擇使用哪個shell。

作業系統:核心和程式執行環境

檔案和目錄:

目錄的起點成為根(root),其名字是乙個字元/。目錄是乙個包含許多目錄項的檔案,在邏輯上,可以認為每個目錄項都包含乙個檔名,同時還包含說明該檔案樹形的資訊。

檔案屬性包括:檔案型別、檔案大小、檔案許可權(其他使用者能否訪問該檔案)以及檔案最後的修改事件等。stat和fstat函式返回包含所有檔案屬性的乙個資訊結構。

檔名要求:不能出現在檔名中的字元只有斜線(/)和空操作符兩個。斜線用來分割構成路徑名的各檔名,空操作符則用來標示檔名的結束。

路徑名:

乙個或多個以斜線分割的檔名序列構成路徑名,以斜線開頭的路徑名稱為絕對路徑名 ,否則稱為相對路徑名。檔案系統根的名字(/)是乙個特殊的絕對路徑名,它不包含檔名

輸入輸出:

檔案描述符:通常是乙個小的非負整數,核心用它標識乙個特定的程序正在訪問檔案。

每當執行乙個程序時,所有的shell都為其開啟三個描述符:標準輸入,標準輸出,以及標準出錯。

程式和程序:

程式:程式是存放在磁碟上、處於某個目錄中的乙個可執行檔案。使用6個exec函式由核心將程式讀入儲存器,使其執行。

程序:程式的執行例項稱為程序。程序id總是一非負數。獲得當前程序編號:getpid()

錯誤處理:

規則:1、如果沒有出錯,errno的值不會被乙個例程清除,因此,僅當函式的返回值指明出錯時,才效驗期值。

2、任何乙個函式都不會將errno的值置為0.

兩個處理錯誤的函式:

char *strerror(int errnum);

void perror(const char *msg);

perror是標準庫中的函式,msg引數用於說明錯誤出在哪

strerror返回錯誤資訊通過錯誤id

使用者標識:

使用者id通過getuid來獲得

組id通過getgid來獲得

使用者和密碼資訊儲存在/etc/passwd和/etc/shadow檔案中

訊號:訊號是通知程序已發生某種事件的一種技術。通過ctrl+字母可以傳送事件給終端下執行的程式。如果程式需要處理訊號,必須先註冊訊號處理函式,然後當事件觸發的時候,以**的方式來響應。

時間表示:

APUE筆記 第一章 UNIX基礎知識

檔案描述符是乙個小的非負整數,核心用以標識乙個待定程序正在存訪的檔案。當核心開啟乙個現存盤案或建立乙個新檔案時,它就返回乙個檔案描述符。當讀 寫檔案時,就可以使用它。函式open read write lseek以及close提供了不用快取的i o。這些函式都用檔案描述符進行工作。標準i o函式提供...

APUE 1 第一章 UNIX基礎知識

2.我儲存到了 root下.解壓縮 tar xzvf src.tar.gz 3.cd apue.2e進入apue.2e目錄,檢視readme,告訴我們linux系統只要修改make.defines.linux再make 4.vi make.defines.linux 修改wkdir root apu...

第一章 UNIX基礎知識

unix體系結構 核心的介面稱為系統呼叫,公用函式庫構建在系統呼叫介面之上,應用軟體既可以呼叫公用函式庫,也可以呼叫系統呼叫。shell是一種特殊的應用程式,它為執行其他應用程式提供了乙個介面。列出乙個目錄中所有的檔案 include apue.h include int main int argc...