本文內容大部分摘自《UNIX環境高級編程》,附有部分個人心得。
1、unix體系結構
從嚴格意義上來說,可將操作系統定義為一種軟件,它控制計算機硬件資源,提供程序運行環境。
我們通常將這種軟件稱為內核(kernel),因為它相對較小,而且位于環境核心。如圖顯示unix體系結構。
內核接口被稱為系統調用(system call)。公用函數庫構建在系統調用接口之上,應用程序既可食用公用函數庫,也可以使用系統調用。
shell是一個特殊的應用程序,為運行其他應用程序提供了一個接口。
從廣義上來講,操作系統包括內核和其他軟件。
2、登陸
用戶在登陸unix系統時,要先鍵入登錄名,然后鍵入登錄口令。系統在其口令文件(通常是/etc/passwd文件)中查看登錄名。
口令文件中的登陸項是由七個以冒號為分隔的字段組成,依次是:登錄名、加密口令、數字用戶ID、數字組ID、注釋字段、起始目錄以及shell程序(我理解為系統調用的權限)
root:*:0:0:System Administrator:/var/root:/bin/sh
名 :密:戶:組: 注 : 目 : shell
巧計:明迷糊租住木鞋
3、文件和目錄
3.1 文件系統
unix文件系統是目錄和文件的一種層次結構(樹形結構),所有東西的起點是根(root)目錄,根目錄的名稱是“/”。
3.2 文件名
目錄中的各個名字稱為文件名(filename)。只有斜線(/)和空字符不能出現在文件名中。斜線用來分割路徑,空格用來終止一個路徑名。
3.3 路徑名
由斜線分隔的一個或多個文件名組成的序列(可以以斜線開頭)構成路徑名(pathname),以斜線為開頭的路徑名為絕對路徑(absolute pathname),否則稱為相對路徑名(relative pathname)。
4、程序與進程
4.1、程序:
程序(PRogram)是儲存在磁盤上某個目錄中可執行的文件。內核使用exec還書將程序讀入內存,并執行程序。
4.2、進程和進程ID
程序執行實例被稱為進程(process)。unix系統確保每個進程都有一個唯一的數字標識符,成為進程ID(process ID),進程ID總是一個非負整數。
4.2.1、進程控制
有三個用于控制進程的主要函數:fork、exec、waitpid。
4.3、線程和線程ID
線程(thread):資源執行的基本單位
線程ID:唯一地標識了一個進程中的線程,它只在所屬進程中有效,一個進程的線程ID到了另一個進程中毫無意義。
注:線程可以共享同一地址空間、文件描述符、棧、進程相關的屬性。
新聞熱點
疑難解答