### POSIX簡介
POSIX(Portable Operation System Interface)聽起來好高端,就是一種操作系統的接口標準,至于誰遵循這個標準呢?就是大名鼎鼎的Unix和Linux了,有人問Mac OS是否兼容POSIX呢,答案是Yes蘋果的操作系統也是Unix-based的。
有了這個規范,你就可以調用通用的API了,Linux提供的POSIX系統調用在Unix上也能執行,因此學習Linux的底層接口最好就是理解POSIX標準。
補充一句,目前很多編程語言(Go、Java、Python、Ruby等)都是天生跨平臺的,因此我們很少注意系統調用的兼容性。實際上POSIX提供了這些語言上跨平臺的語義,而且這是源碼級別的保證。
### POSIX規范
POSIX是一些IEEE標準,包括1003.0、1003.1、1003.1b和2003等,實際上連Linux也沒有完全兼容這些定義,不過只用Linux來學習POSIX足夠了。
鑒于絕大多數程序員都沒看過IEEE文檔,我們就翻一下[IEEE 1003.1-2001](http://wenku.baidu.com/link?url=8dfQAy-mpeNdkDzX1LWCCEJia5x4_pS-Br6alnnrNweN8HxyXbHewGnxrPgFhQ3TzaAodlfHay9KiAuOmKbWvfSUr-36XyFIDgokfCldgR7)吧。

篇幅跟論文差不多,大意就是修正Base標準存在的問題,這個文檔沒有增加新的接口,但是加了符號、非函數的定義和保留更多命名空間。這是非常嚴謹的文檔,感興趣的同學可以讀下,對普通的程序員我們還是以下的內容。
### POSIX進程
我們運行Hello World程序時,操作系統通過POSIX定義的`fork`和`exec`接口創建起一個POSIX進程,這個進程就可以使用通用的IPC、信號等機制。
### POSIX線程
POSIX也定義了線程的標準,包括創建和控制線程的API,在Pthreads庫中實現,有關線程的知識有機會再深入學習。
- 前言
- 致謝
- 概述
- 使用代碼
- 使用Docker
- 進程基礎
- 進程是什么
- Hello World
- PID
- PPID
- 使用PID
- 進程名字
- 進程參數
- 輸入與輸出
- 并發與并行
- 進程越多越好
- 進程狀態
- 退出碼
- 進程資源
- 死鎖
- 活鎖
- POSIX
- Nohup
- 運行進程
- Go編程實例
- 衍生新進程
- 執行外部程序
- 復制進程
- 進程進階
- 文件鎖
- 孤兒進程
- 僵尸進程
- 守護進程
- 進程間通信
- 信號
- Linux系統調用
- 文件描述符
- Epoll
- 共享內存
- Copy On Write
- Cgroups
- Namespaces
- 項目實例Run
- 項目架構
- 代碼實現
- 注意事項
- 創建目錄權限
- 捕獲SIGKILL
- Sendfile系統調用
- 后記
- 參考書籍
- 項目學習
- 再次感謝