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