開源協定:
GPL LGPL,Apache,BSD
BSD:
1.如果二次發布的產品中包含源代碼,則再源代碼中必須帶有原來的代碼中的BSD協定;
2.如果二次發布的產品是二進制格式的庫或程序,則需要在發不動文檔或版權聲明中說明包含原來的代碼中的BSD協議;
3.不可以用開元代碼的作者或組織,以及原來的產品名字做市場推廣;
Apache:
代碼共產主義運動:
開源:集市式開發模式
閉源:教堂式開發模式
Linux:應用程序,kerel
源碼
二進制格式
發行版:Debian 、Slackware、 RedHat
Aechelinux、LFS
CentOS
程序:指令+數據
庫:不能獨立運行,只能被程序調用運行,二進制模式(無執行入口)
shell是人機交互接口,沒有shell程序也可以運行;
so:shared object
共享:
標准庫:Linux系統必須提供的,可被程序調用的庫
glibc
運行程序:
系統開機之後自動加載並運行程序;與終端無關
交互式啟動的程序:與終端相關
CPU:4組令集
總線:
地址總線:尋址
數據總線:數據傳輸
控制總線:發送控制信號
文件系統:程序,用於負責組織數據以能夠實現使命存取;
通常有OS實現;
元數據(metadata):屬性信息
數據:文件數據內容
對分區格式化:在分區上創建文件系統 目錄:路徑列表
OS的功能:
進程管理
文件系統
網絡功能
內存管理
IO管理
驅動程序
安全功能
Linuxt
terminal:終端
在終端上啟動一個shell程序
shell的類別:
GUI:GNome, KDE, Xface
CLI:bashi, sh, zsh, ksh, tcsh, dash ,csh
交互式接口:通常可以定制其工作環境
通過“環境變量”實現;
變量:命名的內存空間
bash環境變量:PS1, SHELL, HOME
命令的通用語法格式:
COMMAND(命令) OPTION ARGUMENTS(參數)
COMMAND:
發起一個命令:請求內核將某個二進制程序運行為一個進程;
命令必須遵循特定格式:ELF(Linux)
命令本身是一個可執行程序文件:二進制格式
命令有兩類:
由shell程序自帶:內建命令
獨立可執行程序文件:外部命令
通過環境變量PATH定義其查找路徑
查看命令的類型:type
執行過的外部命令查找結果的緩存及命中次數查看:hash
OPTIONS:
制定命令的運行特性
很多程序的選項可通過其配置文件進行定義;
配置文件:定義了程序運行特性的諸多參數及值的文本文件(偶爾有XML格式的文件);
選項有兩種表現形式:
-C:短格式選項,-1,-R
大多同時使用的多個短格式選項可合並:-1 -R = -1R
--string:長格式選項,--help
注意:多個選項間以空白分隔;合並使用的段選項間不能有空白
ARGUMENTS(參數):
命令的作用對象:命令對什麼生效;
參數:不同的命令使用參數的格式,使用參數的方法都不盡相同;
注意:多個參數間通常需要空白分隔;
文件系統:
1、間隔區分字符大小寫:file, File
2、文件名可以使用除“/”意外的任意字符,但不建議使用特殊字符;
3、文件名長度不能超過255個字符;
路徑:
相對路徑:從當前位置開始
a/b/c,・/a/b/c
“ ・ ”:當前目錄
“・・”:上一級目錄,即當前目錄的父目錄;
絕對路徑:從根開始,/
/etc/sysconfig/network-scripts/