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