## 操作系統概述
操作系統,英文名稱Operating System,簡稱OS,是計算機系統中必不可少的基礎系統軟件,它是應用程序運行以及用戶操作必備的基礎環境支撐,是計算機系統的核心。
? 操作系統的作用是管理和控制計算機系統中的硬件和軟件資源,例如,它負責直接管理計算機系統的各種硬件資源,如對CPU、內存、磁盤等的管理,同時對系統資源所需的優先次序進行管理。操作系統還可以控制設備的輸入、輸出以及操作網絡與管理文件系統等事務。同時,它也負責對計算機系統中各類軟件資源的管理。例如各類應用軟件的安裝、設置運行環境等。操作系統與計算機硬件軟件關系圖如下。

## Linux和Unix
Unix系統于1969年在AT&T的貝爾實驗室誕生,20世紀70年代,它逐步盛行,這期間,又產生了一個比較重要的分支,就是大約1977年誕生的BSD(Berkeley Software Distribution)系統。從BSD系統開始,各大廠商及商業公司開始了根據自身公司的硬件架構,并以BSD系統為基礎進行Unix系統的研發,從而產生了各種版本的Unix系統.
70年代中后期,由于各廠商和商業公司開發的Unix及內置軟件都是針對自己公司特定的硬件,因此在其他公司的硬件上基本無法直接運行,而且當時沒有人對開發基于x86架構的CPU的系統感興趣。另外,70年代末,Unix又面臨了突如其來的被AT&T回收版權的重大問題,特別是要求禁止對學生群體提供Unix系統源代碼,這樣的問題一度引起了當時Unix業界的恐慌,也因此產生了商業糾紛。
Linux系統的誕生開始于1991年芬蘭赫爾辛基大學的一位計算機系的學生,名字為**Linus Torvalds**。在大學期間,他接觸到了學校的Unix系統,但是當時的Unix系統僅為一臺主機,且對應了多個終端,使用時存在操作等待時間很長等一些不爽的問題,無法滿足年輕的Linus Torvalds的使用需求。因此他就萌生了自己開發一個Unix的想法,于是不久,他就找到了前文提到的譚邦寧教授開發的用于教學的Minix操作系統,他把Minix安裝到了他的I386個人計算機上。此后,Torvalds又開始陸續閱讀了Minix系統的源代碼,從Minix系統中學到了很多重要的系統核心程序設計理念和設計思想,從而逐步開始了Linux系統雛形的設計和開發。
## GNU和GPL
GNU的全稱為**GNU's not unix**,意思是"GNU不是UNIX",GNU計劃,又稱革奴計劃,是由Richard Stallman在1984年公開發起的,是FSF的主要項目。這個項目的目標是建立一套完全自由的和可移植的類Unix操作系統。
? GNU類Unix操作系統是由一系列應用程序、系統庫和開發工具構成的軟件集合,例如:Emacs編輯軟件、gcc編譯軟件、bash命令解釋程序和編程語言,以及gawk(GNU's awk)等,并加上了用于資源分配和硬件管理的內核。
? 到1991年Linux內核發布的時候,GNU項目已經完成了除系統內核之外的各種必備軟件的開發。在Linux Torvalds和其他開發人員的努力下,GNU項目的部分組件又運行到了Linux內核之上,例如:GNU項目里的Emacs、gcc、bash、gawk等,至今都是Linux系統中很重要的基礎軟件。所以linux 又叫**GNU/Linux**
GPL全稱為General Public License,中文名為通用公共許可,是一個最著名的開源許可協議,開源社區最著名的Linux內核就是在GPL許可下發布的。GPL許可是由自由軟件基金會(Free Software foundation)創建的。
- PC
- IO模型
- Inode介紹
- Linux
- Linux基本操作命令
- Linux網絡相關命令
- Crontab計劃任務
- Shell
- Sed命令
- Awk命令
- LAMP/LNMP
- PHP
- 基本語法
- 面向對象
- 錯誤和異常處理
- 命名空間
- PHP7
- 正則表達式
- Hashtable
- 變量的內部實現
- PHP-FPM
- PHP運行原理
- swoole
- mysql
- SQL標準
- mysql三范式
- 存儲引擎
- Mysql事務
- Mysql索引
- Mysql優化
- Explain
- MySQL索引原理及慢查詢優化
- MongoDb
- 計算機網絡
- IP協議
- TCP(傳輸控制協議)
- UDP(用戶數據報協議)
- HTTP 協議
- HTTPS
- HTTP的基本優化
- Websocket協議
- 版本控制器
- Git
- Svn
- 數據結構
- 數組
- 鏈表
- 算法