民工哥總結的 7條Linux 核心知識點
你知道哪個操作系統是世界上最受歡迎的操作系統嗎?是Linux!
據不完全統計,Linux 在數據中心操作系統上的份額高達近 70%。它一般運行於伺服器和超級計算機上,我們日常訪問網站背後的數百萬台伺服器很大幾率運行著的操作系統就是 Linux。
知名編程大師 Greg Kroah-Hartman 更是對 Linux 給予了高度評價:
Linux 操作系統已經部署到越來越多計算領域的系統中, 理解操作系統內核的實現就變成一個具有極高價值的技能。
學習 Linux 操作系統最關鍵的內核,你需要有足夠多的知識去將Linux順利應用到你所創造的新設備和新應用環境中。
——Greg Kroah-Hartman
Linux 基金會院士,Linux 內核核心領袖之一, Linux stable tree 的維護者,《Linux Device Drivers》一書的作者之一
在我們的生活中 Linux 的身影隨處可見,例如只能家電,智能烤麵包機和冰箱,例如其他物聯網設備,互聯網路由器和 Android 智能手機等,簡直不勝枚舉。
儘管現在的 Linux 應用廣泛,但是它的誕生比較戲劇化。
1
Linux 的起源
早期的計算機並不像現在一樣,人手一個,一般是用於科技研究、軍事、技術單位等使用,機器很少而人特別多。
最開始,貝爾研究室退出了 Multics 計劃(讓主機可以達成 300 個終端)的成員 Ken Thompson 寫了一個核心程序並將計劃中的系統簡化了,最後叫 Unics(還不叫 Unix)。
經過貝爾實驗室的流傳與數次改版,成為如今用 C 語言寫成的 Unics 核心,也就是 Unix。接著,Bill Joy 對代碼進行修改後命名為 Berkeley Software Distribution(BSD),BSD 軟體很好用,廣為流傳。
而 Richard Mathew Stallman 在 1984 年發起 GNU 計劃,目的是建立一個自由、開放的 Unix 系統。他不僅宣傳讓同事使用此內核程序,自己還開編寫 C 語言的編譯器也就是 gcc,其中 GNU 開發的幾個重要軟體能讓後來的許多軟體通過這些基礎程序開發。
此時,計算機正處噴發期,硬體的性能不斷提高,PC 的市場不斷擴大,而當時可供計算機選用的操作系統只有 Unix、DOS 和 MacOS 這三種。
但:
◆Unix 價格昂貴,不能運行於 PC;
◆DOS 顯得簡陋,且源代碼被軟體廠商嚴格保密;
◆MacOS 是一種專門用於蘋果計算機的操作系統。
▲導致這三種操作系統都沒辦法推廣普及,而此時的計算機科學領域迫切需要一個更加完善、強大、廉價和完全開放的操作系統。
1991 年,當時芬蘭赫爾辛基大學二年級的學生 Linus Torvalds 在吸收了 MINIX 精華的基礎上,使用 bash、gcc 等工具對現有的 Unix 操作系統進行一些改進——利用 Unix 的核心,去除繁雜的核心程序。
最終,Linus 寫出了屬於自己的Linux操作系統,適用於一般計算機的 x86 系統,並放在網路上供大家下載。第一代版本為 Linux 0.01,是 Linux 時代開始的標誌,Linus 也被世人稱為「Linux 之父」。
如今,Linux 成為了一個功能完善、穩定的操作系統並被廣泛使用的系統,同時也是一個真正免費和開源的系統!
伴隨著互聯網的發展,Linux 得到了來自全世界軟體愛好者、組織、公司的支持,如此重要的 Linux ,身為程序員的你,要如何真正掌握這一技術的核心呢?
2
為什麼 Linux 如此流行
Linux 在企業計算,大數據和科學(聯想下超級計算機)世界中獨樹一幟。
首先,Linux 不僅系統性能穩定,而且具有開放源碼、沒有版權、技術社區用戶多等特點。
開放源碼使得用戶可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網路協議棧,經過適當的配置就可實現路由器的功能。
◆Linux 是免費的。你不需要為使用 Linux 而付費,你可以自由查看,編輯和分發源代碼。當你購買裝有 Windows 或 macOS 的計算機時,這些操作系統的費用其實已包含在價格中。
◆Linux 是靈活的。Linux 被用於許多不同類型的計算機,。你現在可以立即在筆記本電腦或台式機上安裝 Linux,而無需進行任何設置即可啟動和運行!這種靈活性之所以成為可能,是因為 Linux 操作系統被設計為既可以簡單地完成一項工作又能使用功能更完善的工具來完成工作。你可以組裝一個適用於你的設備並針對你的需求進行過優化的 Linux 版本。
這些特點使得 Linux 成為開發路由交換設備的理想開發平台。
更為重要的是,Linux 核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網路中,為了追求速度和安全,Linux 不僅僅是被網路運維人員當作伺服器使用,既可以當作伺服器,又可以當作網路防火牆,這也是 Linux 的一大亮點。
掌握 Linux 核心技術=得到一個神兵利器般的操作系統
大名鼎鼎的華為鴻蒙系統是基於 Linux 開發的,所以,大廠都在用的神兵利器,你還有什麼理由不好好學習,掌握核心技術?
3
要這樣使用 Linux
有很多朋友帶著疑問:
我應該如何入門 Linux 系統運維?
Linux 系統運維到底需要學哪些技術?怎麼學?
系統、服務報錯了,如何處理?
為什麼監控系統不報警,或報警沒有通知...?
資料庫丟數據了,如何恢復?如何有效地備份數據?
Docker 怎麼學?學哪些內容?
...
萬事開頭難,每一項技術,紮實的基礎是入門的第一關。而所有的學習最終都是為了能夠掌握核心技術,從而應用到實際項目中。
一份系統、全面且規範化地學習的學習路線是非常重要的,讓你面向企業真實的運維環境、快速入門 Linux 系統、掌握企業職位所需技能!
接下來就帶領大家進入 Linux 小課堂,由從事 IT 技術工作多年的民工哥為你解答,助你早日修鍊成功取得神兵利器!
民工哥根據自己的經驗羅列了一些相關技術點:
1)最基礎的服務
如 SSH 服務、NFS 網路文件系統、DHCP/DNS、數據同步服務等。
2)LAMP/LNMP 架構
各組件的基礎知識
各組件的安裝與配置
各組件的常用優化與排錯
3)資料庫
在互聯網企業中,最常用資料庫就是 MySQL,這是必須要掌握的。除此之外,還需要了解、掌握常用的 NOSQL 資料庫,如 Redis、MongoDB 等。
下面以 MySQL 資料庫為例,介紹我們需要掌握哪些技術點:
多種安裝方式:源碼、二進位、Yum
優化:硬體、配置文件優化
常用管理與操作:多實例,許可權配置,庫、表數據的管理
備份與恢復:增量、全量備份與恢復,基於第三方工具的備份與恢復
常用的架構:主從同步,讀寫分離(基於官方或第三方組件)
故障排錯:啟動故障、數據不同步,誤操作等
4)常用服務
對運維來說,常用的服務不少,如 Java Web 服務 Tomcat、Jboss、Weblogic 等。民工哥日常使用最多的是 Tomcat,接觸比較多的中間件服務,如 Kafaka、RabbitMQ,但不需要掌握源碼,只要求掌握日常的配置、優化、排錯,以及一些與業務相關的架構調整等。
5)系統監控與報警
這是運維工作中的重點之一,監控服務軟體有開源的、商業的,大部分開源軟體能基本滿足常用需求,像我們工作中常用的開源監控軟體:早期有 Nagios、Cacti,後來 Zabbix 逐漸取代了前兩種,還會有一些專門針對某個方面開發的監控軟體,如:資料庫監控軟體 Lepus。但是,最終的選擇還要以需求為主。
6)容器
容器技術是近年來企業招聘的硬性要求,越來越多的企業在容器化發展的路上,所以這方面的技術過硬,對於提升求職過程中的競爭力是非常有力的。
7)其它
對運維工作來說,在從業一定階段後必須考慮的一個問題是:如何實現重複的工作自動化?這需要掌握一些自動化的基礎理論與工具的使用,現在是全民上雲時代,因此必須要熟悉與掌握第三方雲產品的各類操作。
Linux系統運維指南:從入門到企業實戰
作者: 儲成友(民工哥)