# Linux 相關知識
## 常用命令
> TODO
## 相關概念
### 線程、進程
##### 進程
是表示資源分配的基本單位。
#### 線程
線程則是進程中執行運算的最小單位,即執行處理機調度的基本單位
#### Java開發中的線程并發
線程安全:當多個線程訪問某個類時,這個類始終都能表現出正確的行為,那么就稱這個類是線程安全的。理解為程序按照你的代碼邏輯執行,并始終輸出預定的結果。
## 進程狀態
### 相關概念
進程狀態:一個進程的生命周期可以劃分為一組狀態,這些狀態刻畫了整個進程。進程狀態即體現一個進程的生命狀態。
### 狀態模型
- 三態模型:
- 運行態:進程占有處理器正在運行。
- 就緒態:進程具有運行條件,等待系統分配處理器運行。
- 阻塞態:進程不具備運行條件,正在等待某個事件的完成。
- 五態模型:新建態、終止態,運行態,就緒態,阻塞態。
## 進程間的通信(IPC,Inter-process Communcation)
### 相關概念
#### IPC兩個操作
- 發送(send message)
- 接受(receive message)
#### 進程通信流程
- 在進程間建立通信鏈路
- 通過 send/receive 發送接收消息
#### 進程通信方式
- 直接通信:(共享信道)
- 進程必須正確命名對方,比如send(p,message)向p發送信息,receive(q,message)從q中接收信息
- 通信鏈路有如下屬性:自動建立連接;一條鏈路恰好對應一對通信進程;
- 每對進程之間只有一個鏈接存在;
- 鏈路可以是單向的,但是通常為雙向的
- 間接通信:(通過OS內核)
- 通過OS維護的消息隊列實現進程之間的通信(接收發送信息)
- 每個消息隊列都有一個唯一標識,只有共享了相同消息隊列的進程才能夠通信
- 通信鏈路有如下屬性:只有共享了相同消息隊列的進程才能建立連接,比如send(a,message)向消息隊列a發送信息,receive(a,message)從消息隊列a中接收信息;
- 連接單向或者雙向;
- 消息隊列可以與多個進程相互關聯;
- 每個進程共享多個消息隊列(也就是進程和消息隊列是多對多的關系)
### 進程間通信的5種方式
> TODO
## 線程并發
> TODO
- 1. HTML
- 1.1 HTML 標簽
- 1.2 HTML 屬性
- 1.3 HTML5
- 2. CSS/CSS3
- 2.1 CSS3
- 2.2 Less
- 2.3 Sass
- 3. JavaScript
- 3.1 JQuery
- 3.2 javascript code
- 3.3 es6
- 4. 前端框架
- 4.1 Angular4+
- 4.2 React
- 4.3 Vue
- 5. 綜合知識
- 5.1 HTTP
- 5.2 websocket
- 5.3 綜合問題集合
- 5.4 前端優化
- 6. 附加知識
- 6.1 TCP/IP
- 6.2 數據結構
- 6.3 前端開發
- 7. 相關工具
- 7.1 Git
- 7.2 調試
- 7.3 Linux
- 8. 其他需要了解的內容
- 8.1 Python3
- 8.2 Java
- 8.3 數據庫