【知識預告】
- Linux背景介紹
- Linux操作系統特性
- Linux的應用場景
- Linux的發行版本
- 搭建Linux環境
1 Linux背景介紹
1.1 什么是Linux?
Linux是一種自由、開源的操作系統。嚴格來說,它是基于類Unix設計思想,旨在為用戶提供穩定、安全、高效的計算環境。Linux誕生于20世紀90年代初,目前已廣泛應用于服務器、個人電腦、智能設備等多個領域,成為現代信息社會的重要支撐。
1.2 計算機發展史
1946年2月24日,世界上第一臺通用電子計算機——埃尼阿克(ENIAC)正式誕生。彼時,世界正處于美蘇冷戰時期,技術競爭異常激烈。計算機最初主要用于軍事用途,典型應用是計算導彈彈道軌跡。
隨著技術不斷突破,摩爾定律(每18到24個月芯片上集成的晶體管數量將翻倍)逐漸顯現,使得計算機體積迅速縮小、成本下降,計算機逐步走出軍事用途,進入科研和工業領域。
由于軍隊本身缺乏足夠的專業技術人才,政府出資,聯合高校與研究機構共同進行研發。這種“出資+技術”的合作模式,大大加速了計算機技術的發展,也促進了計算機的產業化。隨著技術成熟,越來越多的私人資本(如華爾街的資金和人才)進入,推動了第一批商業化計算機產品和操作系統的誕生。
政府則通過稅收回流資金,形成了良性的技術創新和經濟增長循環。
1.3 操作系統的故事
1.3.1 計算機硬件
早期計算機硬件主要由兩大公司推動:IBM和蘋果公司。
- IBM以生產面向企業、高校和科研機構的大型機和工作站為主,操作系統主要采用UNIX系統,穩定、可靠,但昂貴。
- 蘋果公司則采取“軟硬件一體化”的策略,自主開發硬件和操作系統(如Mac OS),以精良的設計和卓越的體驗聞名,不過價格同樣高昂,主要面向高端用戶群體。
1.3.2 計算機軟件
在軟件領域,微軟崛起,與英特爾(Intel)結盟,推出了兼容性更好、成本更低的個人電腦解決方案(即“Wintel聯盟”)。微軟主要提供操作系統(如DOS、Windows),通過授權模式迅速擴展市場,占領了大眾消費市場。
1.4 Linux的誕生
在這樣一個硬件和軟件格局初步形成的時代背景下(一般的平民百姓都用不起電腦),1991年,芬蘭赫爾辛基大學的21歲學生林納斯·托瓦茲(Linus Torvalds)橫空出世。他思考:能否開發一個免費的、人人可用的操作系統?
于是,他開始基于Minix系統的思想,自主開發一個新的內核,并將其命名為Linux(“Linux is not Unix”,取前四個字母,再加上x表示Unix家族)。
托瓦茲將Linux內核的源代碼免費發布在互聯網上,鼓勵全球開發者共同參與修改和完善。這種開源協作模式迅速吸引了大批計算機愛好者、黑客、工程師的參與,推動了Linux快速成長。
1.5 開源 vs 閉源,誰更好
我開始認為閉源好,但是事實上,開源軟件在保障質量方面具有天然優勢。
首先,開源意味著源代碼對所有人開放,任何開發者、黑客、研究人員都可以自由查看、審閱、測試甚至修改代碼。這樣一來,更多的專業人士參與其中,能夠快速發現潛在的問題和安全漏洞。每多一個人審閱,系統的健壯性、安全性就增加一分。就像一個程序,如果只有少數開發者能接觸到源代碼,那么問題被發現和修復的速度就有限;而如果全球數百萬開發者都能參與審閱和貢獻,那么漏洞自然更容易暴露并被及時修補。
以Linux為例,由于其完全開源,吸引了全球范圍內的優秀開發者持續關注和貢獻。不僅有自由軟件愛好者,還有許多曾在大型企業工作的高級工程師、研究人員也積極參與。他們有的是出于興趣,有的是出于對現有商業模式的不滿,還有的是為了推動技術進步。無論出于什么動機,開源社區中匯聚了大量具有極高專業水平的人才,這種力量遠遠超過了單一企業內部有限的資源。
當然,也有人認為閉源軟件通過嚴格的內部管理、專業的測試流程,也能保持較高的軟件質量。確實,像蘋果、微軟這樣的公司擁有完善的開發和測試體系,閉源軟件在某些特定場景下也非常優秀。但閉源模式下,源代碼不能公開接受全球開發者的審視,問題的發現和修復主要依賴內部團隊,因此在應對大規模漏洞、尤其是安全漏洞時,可能反應速度較慢,透明度也較低。
綜合來看,開源并不是天然完美的,但在長期、大規模協作下,開源軟件往往能實現更高的穩定性、安全性和可持續發展。Linux的發展就是最好的例證:從一個學生的小項目,成長為支撐全球互聯網基礎設施的核心系統,靠的正是開源模式下全球開發者共同打磨的力量。
2 Linux操作系統特性
- 開源:源代碼對所有人開放,允許自由查看、修改和分發。
- 免費:絕大多數Linux發行版無需付費使用,降低了使用門檻。
- 穩定可靠:在服務器、高性能計算等應用場景中表現優異,系統崩潰率極低。
- 安全性高:由于眾多開發者共同維護,漏洞能被快速發現和修復,安全性極高。
- 高效性能:占用資源少,適用于各種硬件環境。
3 Linux的應用場景
- 互聯網公司的服務器后端:絕大多數網站和云服務(如谷歌、Facebook、亞馬遜)后端服務器均基于Linux。
- 智能設備操作系統:如Android系統就是基于Linux內核開發的,廣泛應用于手機、智能電視、車載系統等。
- 嵌入式系統:在工業控制、物聯網、智能家居等領域,Linux也被廣泛使用,因其高度可定制、資源占用少的特性極具優勢。
- 科研與高性能計算:超級計算機集群大多采用Linux系統,如全球Top500超級計算機中,超過90%運行的是Linux或其衍生系統。
4 Linux的發行版本
4.1 商業化版本
最早,Linux誕生于個人和開源社區,但隨著Linux在服務器、超級計算機和企業后臺系統中的應用越來越廣泛,企業客戶對穩定性、安全性、長期支持、合規性等提出了更高要求。于是,許多公司基于Linux內核開發出了商業化版本,以提供更加完善、穩定、可靠的解決方案,同時配套技術支持和服務。
Linux商業化版本的代表有:
- Red Hat Enterprise Linux(RHEL):由Red Hat公司開發,是最早也是最成功的Linux商業化發行版之一。Red Hat通過提供穩定的軟件版本、長期的技術支持、安全補丁和認證服務,構建了完整的企業級解決方案。Red Hat通過訂閱制盈利,成為Linux商業化運營的典范。
- SUSE Linux Enterprise Server(SLES):由德國SUSE公司開發,專注于企業服務器和大型數據中心應用,強調系統的可靠性與靈活性,在歐洲市場尤其受歡迎。
- Ubuntu(特別是Ubuntu LTS版本):由Canonical公司維護,雖然基礎版本免費,但Canonical通過提供企業支持服務(如服務器優化、云平臺部署、安全更新)來實現商業變現,尤其在云計算領域影響力巨大。
- Oracle Linux:由甲骨文公司推出,兼容Red Hat Enterprise Linux,主要面向需要使用Oracle數據庫和企業應用的客戶群體,強調高性能和高可用性。
- CentOS(現已演變為CentOS Stream):雖然一開始是社區驅動的免費版本,但它是RHEL的下游版本,被許多企業作為成本更低的選擇使用。現在CentOS Stream變成了RHEL的滾動開發版本,為RHEL做前期測試。
- Amazon Linux:由亞馬遜AWS推出,專門針對云環境進行了優化,深度集成了AWS平臺,主要用于云服務器實例(EC2)。
后續我主要用Centos,7.6/7.8/7.9版本。
4.2 技術版本
瀏覽器搜The Linux Kernel Archives,然后點擊HTTP,可以看Linux的技術版本。
5 搭建Linux環境
5.1 Linux 環境的搭建方式主要有三種
- 直接安裝在物理機上(雙操作系統), 但是由于 Linux 桌面使用起來非常不友好, 不推薦。
- 使用虛擬機軟件, 將 Linux 搭建在虛擬機上。(不會,bug滿天飛)
- 使用云服務器, 可以直接在 騰訊云, 阿里云或華為云 等服務器廠商處直接購買一個云服務器。(氪金,成為人民幣玩家,也不貴,可以多個人共用一個賬號)
使用云服務器不僅環境搭建簡單, 避免折騰, 同時還有一個最大的好處, 部署在云服務器上的項目可以直接被外網訪問到, 這個時候就和一個公司發布一個正式的網站沒有任何區別。也就能讓我們自己寫的程序真的去給別人去使用。
5.2 購買云服務器
以阿里云為例, 其他的服務器廠商也是類似。
- 瀏覽器搜索阿里云。
- 登陸網站,買個最便宜的服務器。(2G夠用了)
- 右上角點擊控制臺,然后更改密碼。
- 記住公網IP地址,再下載一個Xhell 8(必須是最新版本)。
5.3 使用 XShell 遠程登陸到 Linux
5.3.1 關于 Linux 桌面
Linux 啟動進入圖形化的桌面,這個東西以后就可以忘記了。 以后的工作中沒有機會使用圖形界面。
為什么工作中不使用Linux圖形界面?
在實際的生產環境中,大部分Linux服務器、后臺系統、云計算平臺等幾乎都是以命令行界面(CLI, Command Line Interface)為主,而不是圖形界面(GUI, Graphical User Interface)。主要原因有:
- 圖形界面需要消耗大量的系統資源(CPU、內存、硬盤空間等),而服務器的資源非常寶貴,優先要保證業務應用的性能和穩定性。命令行界面非常輕量,不需要加載冗余的圖形組件,能夠最大程度地節省資源。
- 圖形界面涉及更多的軟件層次(窗口管理器、圖形驅動等),意味著潛在的漏洞、崩潰風險也更多。純命令行系統架構簡單,出錯概率更低,安全性更高。 在對穩定性要求極高的服務器環境中,去除圖形界面可以大幅降低系統故障率。
- 在工作中,服務器大多放置在遠程機房,管理人員通過SSH等協議進行遠程登錄。命令行非常適合低帶寬、高延遲的遠程操作環境,而圖形界面需要圖像傳輸,網絡開銷大,效率低下。
- 對于熟悉Linux命令行的工程師來說,CLI操作可以實現更快、更精準、更自動化的管理,比如用腳本批量處理任務、自動化部署等等。命令行體現了專業水平,而圖形界面雖然友好,但操作步驟繁瑣,不適合大規模、高效率的工作場景。
- 在互聯網公司、金融系統、云服務提供商等行業,使用命令行管理服務器已經是公認的標準實踐。為了與行業規范接軌,新人必須適應無圖形界面的環境。
在以后的工作中,我們面對的Linux系統,通常都是“純凈的命令行環境”。雖然在學習初期圖形界面可以幫助理解和過渡,但真正走向職業工作,必須徹底掌握并習慣于命令行操作。忘記圖形界面,擁抱命令行,是成為一名合格技術人員的重要一步。
5.3.2 使用Xshell登陸主機
// ssh root@你的公網IP地址,這里我的地址是121.40.223.120
ssh root@121.40.223.120
然后就到了下一步,要你輸入密碼。
看到welcome就成功了。
如果要和別人共用一個賬號。
// 命令行輸入
adduser HYQ // 補充用戶名,然后按回車鍵
passwd HYQ // 給新增的用戶名,補充密碼
// 然后系統會提示,New password:
// Retype new passworld:
注意:Linux命令行里面,密碼不回顯(不回顯示出來)。
密碼輸入成功后,子賬號就創建好了。
其它人就可以通過剛才創建的子賬號,登陸你的云服務器了。登陸過程和上面一樣,只不過這次是:
ssh HYQ@121.40.223.120 // 剛才是ssh root@121.40.223.120
密碼輸入成功后,和上面一樣看見welcome,就可以正常使用服務器了。
// 按下Ctrl+Alt+],就可以退出子賬號,就可以重新登陸root賬號了
// 如果嫌棄前面的命令行太多,礙眼睛,可以輸入clear清除上面的記錄
如果你想更改子賬號的密碼,登陸root賬號后,passwd HYQ就可以改密碼。userdel -r HYQ就可以徹底刪除這個子賬號。