複製鏈接
請複製以下鏈接發送給好友

Linux

鎖定
Linux,一般指GNU/Linux(單獨的Linux內核並不可直接使用,一般搭配GNU套件,故得此稱呼),是一種免費使用和自由傳播的類UNIX操作系統,其內核由林納斯·本納第克特·託瓦茲(Linus Benedict Torvalds)於1991年10月5日首次發佈,它主要受到MinixUnix思想的啓發,是一個基於POSIX的多用户、多任務、支持多線程和多CPU操作系統。它支持32位64位硬件,能運行主要的Unix工具軟件、應用程序和網絡協議。
Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用户網絡操作系統。Linux有上百種不同的發行版,如基於社區開發的debianarchlinux,和基於商業開發的Red Hat Enterprise LinuxSUSEOracle Linux等。
2022年11月20日,Linux 提交了最後一批 drm-intel-next 功能補丁,Linux 6.2將迎來對英特爾鋭炫獨顯的正式支持。 [14] 
外文名
Linux
類    別
操作系統內核
發佈時間
1991年10月5日
創始人
林納斯·託瓦茲
發行版本
Debian、Ubuntu、RHEL、CentOS、Slackware等
特    點
免費、開源、可靠、安全、穩定、多平台
最新版本
6.7.5 [24]  [26-28]  [30]  [32] 
最新測試版本
6.7-rc8 [24-25]  [29] 

Linux系統簡介

Linux,Linux Is Not UniX 的遞歸縮寫,一般指GNU/Linux,是一套免費使用和自由傳播的類Unix操作系統,是一個遵循POSIX的多用户、多任務、支持多線程和多CPU的操作系統。
伴隨着互聯網的發展,Linux得到了來自全世界軟件愛好者、組織、公司的支持。它除了在服務器方面保持着強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有着長足的進步。使用者不僅可以直觀地獲取該操作系統的實現機制,而且可以根據自身的需要來修改完善Linux,使其最大化地適應用户的需要。 [1] 
Linux不僅系統性能穩定,而且是開源軟件。其核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網絡中,為了追求速度和安全,Linux不僅僅是被網絡運維人員當作服務器使用,甚至當作網絡防火牆,這是Linux的一大亮點。 [2] 
Linux具有開放源碼、沒有版權、技術社區用户多等特點,開放源碼使得用户可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網絡協議棧,經過適當的配置就可實現路由器的功能。這些特點使得Linux成為開發路由交換設備的理想開發平台。 [3] 

Linux發展歷程

Linux操作系統的誕生、發展和成長過程始終依賴着五個重要支柱:Unix操作系統MINIX操作系統、GNU計劃、POSIX標準和Internet網絡。
20世紀80年代,計算機硬件的性能不斷提高,PC的市場不斷擴大,當時可供計算機選用的操作系統主要有Unix、DOS和MacOS這幾種。Unix價格昂貴,不能運行於PCDOS顯得簡陋,且源代碼被軟件廠商嚴格保密;MacOS是一種專門用於蘋果計算機的操作系統。
此時,計算機科學領域迫切需要一個更加完善、強大、廉價和完全開放的操作系統。由於供教學使用的典型操作系統很少,因此當時在荷蘭當教授的美國人AndrewS.Tanenbaum編寫了一個操作系統,名為MINIX,為了向學生講述操作系統內部工作原理。
MINIX雖然很好,但只是一個用於教學目的的簡單操作系統,而不是一個強有力的實用操作系統,然而最大的好處就是公開源代碼。全世界學計算機的學生都通過鑽研MINIX源代碼來了解電腦裏運行的MINIX操作系統,芬蘭赫爾辛基大學大學二年級的學生Linus Torvalds就是其中一個。在吸收了MINIX精華的基礎上,Linus於1991年寫出了屬於自己的Linux操作系統,版本為Linux0.01,是Linux時代開始的標誌。他利用Unix的核心,去除繁雜的核心程序,改寫成適用於一般計算機的x86系統,並放在網絡上供大家下載,1994年推出完整的核心Version1.0。至此,Linux逐漸成為功能完善、穩定的操作系統,並被廣泛使用。 [1] 
2021年6月,根據Linux 5.14剛剛進入合併隊列的char-misc-next提交,Linux 5.14正式移除了RAW驅動。 [7] 
2022年6月,基於 Ubuntu 22.04 的 Linux Lite 6.0 正式版發佈,提供最新的瀏覽器,最新的辦公套件,最新的定製軟件,代號“Fluorite”。 [8] 
2022年11月6日消息,微軟將為 Linux 帶來嵌套式虛擬化支持,可運行多個 Windows。 [11] 
2022年11 月,微軟在 GitHub 上線了 WSL 1.0.0 版本,宣佈 Windows 11/10 的 Linux 子系統刪除 Preview 標籤,迎來正式版。 [12] 
2022年11月,在本週的 platform-drivers-x86 提交合並中,Linux 6.1 新增支持了微軟 Surface Pro 9 和 Surface Laptop 5 兩款設備。 [13] 
2022年12月12日,Linus Torvalds 搶在聖誕假期之前發佈了最新的 Linux 6.1 內核穩定版,從此開啓了 Linux 6.2 合併窗口。截止到2023年初大家可以在內核官網找到相應的文件。 [15] 
2022年12月14日,Linux 6.2 合併窗口擴展了對 Arm SoC 的支持並更新了 DeviceTree。本次更新在內核中新增了對 7 款高通驍龍處理器的支持,還在 Mainline 中初步支持蘋果的 M1 Pro / M1 Ultra / M1 Max 型號處理器。 [16] 
2022年12月15日,Linux 6.2 合併窗口期內已經確認將會合並大量網絡子系統更新。和以往版本相同,Linux 6.2 內核更新週期在網絡功能上有大量的改進,更多的細節可以訪問這條 pull。 [17] 
2022年12月 28 日消息,在 Linux 6.2 合併窗口期,英特爾工程師提交的線性地址掩碼(Linear Address Masking,簡稱 LAM)提案遭到了 Linus Torvalds 的拒絕。英特爾工程師2023年初再次提交第 13 個版本,希望在 Linux 6.3 或者更高版本中合併該功能。 [18] 
2023年1月9日消息,Linus Torvalds 推出了 Linux Kernel 6.2 的第 3 個候選版本更新。 [19] 
2023年3月27日消息,Linus Torvalds 發佈了 Linux Kernel 6.3 的第 4 個維護版本更新,這意味着 6.3 的開發週期已經走過了一半路程。 [20] 
2023年5月3日,IT之家消息:Uri Herrera於4月底發佈了 Nitrux 2.8 系統,這是基於 Debian 和 systemd-free 的 GNU / Linux 發行版,重點是 KDE 軟件和 Plasma 桌面。 [21] 
2023年5月29日,MX Linux 開發人員宣佈,MX Linux 23“Libretto”版本 Beta 版公開測試已全面推出。 [22] 
2023年6月26日,Linux 6.4 內核已正式發佈,這次更新帶來了許多改進,比如對蘋果 M2 芯片的初步支持、存儲性能的提升、傳感器監控的改善,以及更多的 Rust 代碼。 [23] 
2024年2月3日消息,開源社區“Linux 中國”官方公眾號發文宣佈,該社區主網、公眾號、視頻號及下屬的《硬核觀察》欄目將無限期停止更新、運營。 [31] 

Linux主要特性

Linux基本思想

Linux的基本思想有兩點:第一,一切都是文件;第二,每個文件都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令硬件軟件設備、操作系統進程等等對於操作系統內核而言,都被視為擁有各自特性或類型的文件。至於説Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。

Linux完全免費

Linux是一款免費的操作系統,用户可以通過網絡或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程序員的精華,不斷壯大。

Linux兼容POSIX

這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用户從Windows轉到Linux奠定了基礎。許多用户在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。

Linux多用户、多任務

Linux支持多用户,各個用户對於自己的文件設備有自己特殊的權利,保證了各用户之間互不影響。多任務則是現代電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。

Linux良好的界面

Linux同時具有字符界面和圖形界面。在字符界面用户可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用户可以使用鼠標對其進行操作。在X-Window環境中就和在Windows中相似,可以説是一個Linux版的Windows。

Linux支持多種平台

Linux可以運行在多種硬件平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或遊戲機上。2001年1月份發佈的Linux 2.4版內核已經能夠完全支持Intel64位芯片架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。

Linux系統優勢

Linux代碼開源

Linux由眾多微內核組成,其源代碼完全開源;

Linux網絡功能強大

Linux繼承了Unix的特性,具有非常強大的網絡功能,其支持所有的因特網協議,包括TCP/IPv4TCP/IPv6和鏈路層拓撲程序等,且可以利用Unix的網絡特性開發出新的協議棧;

Linux系統工具鏈完整

Linux系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中仿真工具的障礙,使系統具有較強的移植性;

Linux系統功能

系統內核的路由轉發
Linux操作系統嵌入了TCP/IP協議棧,協議軟件具有路由轉發功能。路由轉發依賴作為路由器的主機中安裝多塊網卡,當某一塊網卡接收到數據包後,系統內核會根據數據包的目的IP地址,查詢路由表,然後根據查詢結果將數據包發送到另外一塊網卡,最後通過此網卡把數據包發送出去。此主機的處理過程就是路由器完成的核心功能。 [3] 
通過修改Linux系統內核參數ip_forward的方式實現路由功能,系統使用sysctl命令配置與顯示在/proc/sys目錄中的內核參數。首先在命令行輸入:cat /proc/sys/net/ipv4/ip_forwad,檢查Linux內核是不是開啓IP轉發功能。如果結果為1,表明路由轉發功能已經開啓;如果結果為0,表明沒有開啓。出於安全考慮,Linux內核默認是禁止數據包路由轉發的。在linux系統中,有臨時和永久兩種方法啓用轉發功能。 [3] 
臨時啓用:此種方法只對當前會話起作用,系統重啓後不再啓用。臨時開啓的命令格式:sysctl–wnet.ipv4.ip_forward=1。 [3] 
永久啓用:此種永久性的啓用IP轉發功能,通過更改配置文件/etc/sysctl.conf中的語句行“net.ipv4.ip_forward=0”,修改為“net.ipv4.ip_forward=1”,保存配置文件後執行命令sysctl–p/etc/sysctl.conf,配置便立即啓用。 [3] 

Linux開發工具

Linux已經成為工作、娛樂和個人生活等多個領域的支柱,人們已經越來越離不開它。在Linux的幫助下,技術的變革速度超出了人們的想象,Linux開發的速度也以指數規模增長。因此,越來越多的開發者也不斷地加入開源和學習Linux開發的潮流當中。在這個過程之中,合適的工具是必不可少的,可喜的是,隨着Linux的發展,大量適用於Linux的開發工具也不斷成熟。 [5] 
容器
放眼現實,如今已經是容器的時代了。容器既極其容易部署,又可以方便地構建開發環境。如果針對的是特定的平台的開發,將開發流程所需要的各種工具都創建到容器映像中是一種很好的方法,只要使用這一個容器映像,就能夠快速啓動大量運行所需服務的實例。 [5] 
版本控制工具
如果正在開發一個大型項目,又或者參與團隊開發,版本控制工具是必不可少的,它可以用於記錄代碼變更、提交代碼以及合併代碼。如果沒有這樣的工具,項目幾乎無法妥善管理。 [5] 
文本編輯器
如果沒有文本編輯器,在Linux上開發將會變得異常艱難。當然,文本編輯器之間孰優孰劣,具體還是要取決於開發者的需求。 [5] 
集成開發環境
集成開發環境(Integrated Development Environment,IDE) 是包含一整套全面的工具、可以實現一站式功能的開發環境。 [5] 
文本比較工具
有時候會需要比較兩個文件的內容來找到它們之間的不同之處,它們可能是同一文件的兩個不同副本(例如有一個經過編譯,而另一個沒有)。這種情況下,肯定不想要憑藉肉眼來找出差異,而是想要使用像Med這樣的工具。 [5] 

Linux嵌入式

對Linux進行適當的修改和刪減,並且能夠在嵌入式系統上使用的系統,就是嵌入式Linux操作系統。具有如下的特點: [6] 
Linux系統是完全開放、免費的。正是開放性,它才能和其他系統互相兼容,進而實現信息的互聯。而且它可以任意修改源代碼,這是其他系統所不具備的。 [6] 
Linux操作系統的顯著優勢是多用户和多任務。保證了多個用户使用互不影響;多任務獨立開後,互不干擾,使得效率方面大大提高,可以充分把性能發揮出來。 [6] 
設備是獨立的。只要安裝驅動程序,在驅動程序的支持和幫助下,任何用户都可以像使用文件一樣,對任意設備進行使用和操作,這使得人們完全不用考慮設備存在的具體形式。 [6] 

Linux服務器

Linux服務器是設計出來進行業務處理應用的,在網絡和計算機系統當中有廣泛的應用,可以提供數據庫管理和網絡服務等內容,是一種性能非常高的和開源的服務器,在中國的計算機系統客户端當中,有很多采用的就是Linux系統,其使用的範圍非常廣泛,用户體驗反應較好。但是對於一些希望計算機應用性能比較高的單位而言,windows系統需要經常進行資源整合和碎片化管理,系統在配置的時候經常需要重新啓動,這就無法避免產生停機的問題。同時,由於Linux系統的處理能力非常強悍,具備不可比擬的穩定性特徵,因而Linux系統就不用經常進行重啓,Linux系統的變化可以在配置的過程中實現,所以Linux服務器出現故障的概率比較小,所以很多企業組織在計算機配置的過程中經常使用Linux系統,從而降低服務器發生崩潰的可能性,很多企業在配置Linux系統的時候,都是通過減少服務器的故障發生率,實現企業業務的高效運轉。 [4] 

LinuxLinux貢獻

內核開發者採用的是一種鬆散的基於時間的發佈流程,每次發行都嚴格遵循關於合併補丁的規則。在每個開發週期的開始,稱之為“合併窗口”打開。此時,被視為足夠穩定且被開發社區接受的代碼會被合併進主線內核。新開發週期的大部分改動(以及所有主要的改動)都將在此期間併入,在高峯期,這個速度接近每天1000項改動(“補丁”或“變更集”)。
合併窗口大約持續兩週時間。在此期間結束後,Linus Torvalds會宣佈窗口關閉,併發布第一個“rc”內核。例如,預定為5.6的內核,結束合併窗口後的版本發佈將被稱為5.6-rc1. 這個-rc1版本的發佈標記着新特性的合併時間已經過去,下個內核的穩定階段已經開始。
在接下來的六至十週內,主要提交給主線的補丁應該是修復問題的補丁。偶爾會允許進入一些更重大的改動,但這種情況極為罕見;那些嘗試在合併窗口之外合併新特性的開發者通常會受到不友好的接待。一般規則是,如果錯過了某個特性的合併窗口,最好的辦法是等待下個開發週期。(硬件驅動的情況有時是一個例外,對於沒有得到支持的硬件驅動,如果它們沒有接觸到任何tree內的代碼,那麼它們就不可能引起迴歸,應該在任何時候都安全添加。)
有且只有一個人能將補丁合併到主線內核庫:Linus Torvalds 。但以2.6.38內核為例,超過9500的補丁只有112個(約佔1.3%)是由Linus自己直接選擇的。內核項目早已發展到一個規模,在這個規模下沒有任何單個開發者可能完全自主地審核和選擇每一個補丁。內核開發者處理這種生長的方式是通過建立基於信任鏈的中尉系統。
內核代碼庫按照邏輯被分解成一系列的子系統:網絡、具體的架構支持、內存管理、視頻設備等等。每個子系統都有一個指定的維護者,這個開發者負責該子系統內的所有代碼。這些子系統的維護者在某種程度上可以看做是他們管理的內核部分的守門人;他們是將會(通常)接受一個補丁並將其包含到主線內核的人。
子系統維護者各自管理着他們的內核源代碼樹,大多數情況(但肯定不是總是)使用git源代碼管理工具。像git這樣的工具(以及其他相關的工具,如quilt或mercurial)允許維護者跟蹤一系列的補丁,包括作者信息和其他元數據。在任何特定時間,維護者可以識別出在他或她的倉庫中未被找到在主線中的哪些補丁。
當合並窗口打開時,頂層維護者會要求Linus從他們的倉庫中“拉取”他們為合併選擇的補丁。如果Linus同意,這些補丁將流入他的倉庫,成為主線內核的一部分。Linus對於在拉取操作中接收到的特定補丁給予多大的注意力是不定的。很明顯,有時候,他會仔細查看。但一般來説,Linus相信子系統維護者不會發送不好的補丁。
反過來,子系統維護者可以從其他維護者那裏拉取補丁。例如,網絡樹是從專門用於網絡設備驅動,無線網絡等樹中累積的補丁構建的。這個倉庫鏈可以任意長,儘管它很少超過兩到三個環節。由於鏈中的每個維護者信任那些管理更低等級樹的人,所以這個過程被稱為“信任鏈”。
顯然,在這樣的系統中,將補丁合併到內核取決於找到正確的維護者。直接向Linus發送補丁通常並不是正確的做法。 [10] 

Linux使用説明

常用命令及技巧
1、date:打印或者設置系統的日期和時間
2、stty-a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、Ctrl-Z等)
3、passwd:用passwd-h查看
4、login、 logout : shell的登錄和註銷命令
5、more,less,head tail:顯示或部分顯示文件內容
6、lp/lpstat/cancel,lpr/lpq/lprm:打印文件
7、chmod u+x:更改文件權限
8、rm -fr dir:刪除非空目錄
9、cp -R dir:拷貝目錄
10、fg jobid:可以將一個後台進程放到前台
11、kill的作用:send a signal to a process、eg:kill-9發送的是SIG_KILL信號,具體發送什麼信號可以通過man kill查看、
12、ps的用法,ps-e或ps-o pid,ppid,session,tpgid,comm(其中session顯示的sessionid,tpgid顯示前台進程組id,comm顯示命令名稱)
13 ip a 查看ip地址信息的命令
14 zcat /proc/config.gz (尖號) config 到內核配置文件

Linux安全加固

用户賬户以及登錄安全
刪除多餘用户和用户組。Linux是多用户操作系統,存在很多種不一樣的角色系統賬號,當安裝完成操作系統之後,系統會默認為未添加許用户組及用户,若是部分用户或是用户組不需要,應當立即刪除它們,否則黑客很有可能利用這些賬號,對服務器實施攻擊。具體保留哪些賬號,可以依據服務器的用途來決定。
關閉不需要的系統服務。操作系統安裝完成之後,其會在安裝的過程當中,會自主的啓動各種類型的服務程序內容,對於長時間運行的服務器而言,其運行的服務程序越多,則系統的安全性就越低。所以,用户或是用户組就需要將一些應用不到的服務程序進行關閉,這對提升系統的安全性能,有着極大的幫助。
密碼安全策略。在Linux之下,遠程的登錄系統具備兩種認證的形式:即密鑰與密碼認證。其中,密鑰認證的形式,主要是將公鑰儲存在遠程的服務器之上,私鑰存儲在本地。當進行系統登錄的時候,再通過本地的私鑰,以及遠程的服務器公鑰,進行配對認證的操作,若是認證的匹配度一致,則用户便能夠暢通無阻的登錄系統。此類認證的方式,並不會受到暴力破解的威脅。與此同時,只需要確保本地私鑰的安全,使其不會被黑客所盜取即可,攻擊者便不能夠通過此類認證方式登錄到系統中。所以,推薦使用密鑰方式進行系統登錄。
有效應用su、sudo命令。su命令的作用的是對用户進行切換。當管理員登錄到系統之後,使用su命令切換到超級用户角色來執行一些需要超級權限的命令。但是由於超級用户的權限過大,同時,需要管理人員知道超級用户密碼,因此su命令具有很嚴重的管理風險。
sudo命令允許系統賦予普通用户一些超級權限,並且不需普通用户切換到超級用户。因此,在管理上應當細化權限分配機制,使用sudo命令為每一位管理員服務其特定的管理權限。

Linux安全認證

遠程登錄應用SSH登錄方式。telnet是一類存在安全隱患的登錄認證服務,其在網絡之上利用明文傳輸內容,黑客很容易通過截獲telnet數據包,獲得用户的登錄口令。並且telnet服務程序的安全驗證方式存在較大的安全隱患,使其成為黑客攻擊的目標。SSH服務則會將數據進行加密傳輸,能夠防止DNS欺騙以及IP欺騙,並且傳輸的數據是經過壓縮,在一定程度上保證了服務器遠程連接的安全。

Linux文件系統安全

加固系統重要文件。在Linux系統中,如果黑客取得超級權限,那麼他在操作系統裏面就不會再有任何的限制地做任何事情。在這種情況下,一個加固的文件系統將會是保護系統安全的最後一道防線。管理員可通過chattr命令鎖定系統一些重要文件或目錄。
文件權限檢查與修改。如果操作系統當中的重要文件的權限設置不合理,則會對操作系統的安全性,產生最為直接的影響。所以,系統的運行維護人員需要及時的察覺到權限配置不合理的文件和目錄,並及時修正,以防安全事件發生。
安全設定/tmp、/var/tmp、/dev/shm。在該操作系統當中,其用於存放臨時文件的目錄,主要有兩個,分別為/tmp與/var/tmp。它們有個共同特點,就是所有的用户可讀可寫和執行,這樣就對系統產生了安全隱患。針對這兩個目錄進行設置,不允許這兩個目錄下執行應用程序

Linux系統軟件安全

絕大多數的服務器遭受攻擊是因為系統軟件或者應用程序有重大漏洞。黑客通過這些漏洞,可以輕鬆地侵入服務器。管理員應定期檢查並修復漏洞。最常見的做法是升級軟件,將軟件保持在最新版本狀態。這樣就可以在一定程度上降低系統被入侵的可能性。 [9] 
參考資料
展開全部 收起