原文地址: juejin.im/post/5cd5d1…
目錄
Unix
Unix是一個由多使用者、多程式的計算機作業系統的統稱,源自於從20世紀70年代開始在美國AT&T公司的Bell Labs開發的 AT&T Unix, 包括很多個相似但不同的變種作業系統. Unix是一個商業上的專利產品, 需要購買或授權才能使用.
POSIX
隨著Unix變種作業系統的增加,就需要有標準來規範各個變種作業系統,以保證系統之間的相容性,這樣就有了POSIX.
POSIX: Portable Operating System Interface,中文為可移植作業系統介面,為一系列標準的集合,是由IEEE Computer Society定義的以為保證各UNIX作業系統之間的相容性.
POSIX中定義的標準有:
- Core Services: 核心服務,包括Process, Signals, Pipes, C Library等.
- Real-time extensions: 包含Priority Scheduling, Real-Time Signals, Shared Memory, Asynchronous and Synchronous I/O等.
- Threads extensions: 包括Thread Creation, Control, and Cleanup, Thread Scheduling, Thread Synchronization, Signal Handling等.
- Shell and Utilities: 包括Command Interpreter和Utility Programs, utility program如:
cd
,cp
,ls
等.
SUS
SUS: Single UNIX Specification, 建立的目的與POSIX類似,都是為了保證Unix系統之間的相容性. 現在由IEEE和The Open Group共同組成的Austin Group來開發和維護.
Austin Group從POSIX和SUS中定義了一套通用的標準,稱為Open Group Base Specification.
POSIX和SUS是有交集的
Linux
Linux是一個基於Linux kernel的類Unix作業系統的統稱.
Linux kernel是一個operating system kernel,由Linus Torvalds釋出.
GNU Project
GNU Project是一個關於free-software
, mass-collaboration
的專案,理念是: 使用者可以自由的使用,分享,學習和修改軟體.
由GNU專案和Linux kernel就可以組成一個類Unix的作業系統:
- GNU packages: 包含了許多作業系統的工具和應用軟體,如
shell
,coreutils
,compilers
,libraries
以及按照POSIX標準實現的類庫等. - Linux kernel: 提供了程式排程,多重任務處理,驅動管理,記憶體管理等功能.
- non-GNU programs: 非GNU應用程式.
Linux kernel不屬於GNU project, 但基於GNU General Public License.
Linux distribution
Linux發行版, 是由Linux kernel加上一些軟體組成,不同的組合就構成了不同的發行版. 通常發行版會包括:
- Linux kernel.
- GNU packages.
- 視窗管理軟體: 如GNOME.
- 文件.
比較受歡迎的發行版有: Debian, Fedora, Ubuntu等.
MacOS
MacOS新的名稱為Darwin, 這是Apple釋出的類Unix的作業系統, 核心由XNU構成, 而XNU是基於NeXTSTEP和FreeBSD混合開發組成. 架構圖如下: