Linux 簡介

来源:https://www.cnblogs.com/despotic/archive/2019/03/29/10623099.html
-Advertisement-
Play Games

. linux Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶 ...


    .

linux

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIXUNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程式和網路協議。它支持32位64位硬體。Linux繼承了Unix網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。 Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公佈時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種電腦硬體設備中,比如手機平板電腦路由器、視頻游戲控制台、台式電腦、大型機和超級電腦。 嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。

Linux簡史

Linux 操作系統的誕生、發展和成長過程始終依賴著五個重要支柱:UNIX 操作系統、MINIX 操作系統、GNU計劃、POSIX 標準和Internet 網路。 1981 年IBM公司推出微型電腦IBM PC。 1991年,GNU計劃已經開發出了許多工具軟體,最受期盼的GNU C編譯器已經出現,GNU的操作系統核心HURD一直處於實驗階段,沒有任何可用性,實質上也沒能開發出完整的GNU操作系統,但是GNU奠定了Linux用戶基礎和開發環境。 1991年初,林納斯·托瓦茲開始在一臺386sx相容微機上學習minix操作系統。1991年4月,林納斯·托瓦茲開始醞釀並著手編製自己的操作系統。 1991 年4 月13 日在comp.os.minix 上發佈說自己已經成功地將bash 移植到了minix 上,而且已經愛不釋手、不能離開這個shell軟體了。 1991年7月3日,第一個與Linux有關的消息是在comp.os.minix上發佈的(當然此時還不存在Linux這個名稱,當時林納斯·托瓦茲的腦子裡想的可能是FREAX,FREAX的英文含義是怪誕的、怪物、異想天開等)。 1991年的10月5日,林納斯·托瓦茲在comp.os.minix新聞組上發佈消息,正式向外宣佈Linux內核的誕生(Freeminix-likekernel sources for 386-AT)。 1993年,大約有100餘名程式員參與了Linux內核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼大約有十萬行,用戶大約有10萬左右。 1994年3月,Linux1.0發佈,代碼量17萬行,當時是按照完全自由免費的協議發佈,隨後正式採用GPL協議。 1995年1月,Bob Young創辦了RedHat(小紅帽),以GNU/Linux為核心,集成了400多個源代碼開放的程式模塊,搞出了一種冠以品牌的Linux,即RedHat Linux,稱為Linux"發行版",在市場上出售。這在經營模式上是一種創舉。 1996年6月,Linux 2.0內核發佈,此內核有大約40萬行代碼,並可以支持多個處理器。此時的Linux 已經進入了實用階段,全球大約有350萬人使用。 1998年2月,以Eric Raymond為首的一批年輕的"老牛羚骨幹分子"終於認識到GNU/Linux體系的產業化道路的本質,並非是什麼自由哲學,而是市場競爭的驅動,創辦了"Open Source Intiative"(開放源代碼促進會)"復興"的大旗,在互聯網世界里展開了一場歷史性的Linux產業化運動。 2001年1月,Linux 2.4發佈,它進一步地提升了SMP系統的擴展性,同時它也集成了很多用於支持桌面系統的特性:USB,PC卡(PCMCIA)的支持,內置的即插即用,等等功能。 2003年12月,Linux 2.6版內核發佈,相對於2.4版內核2.6在對系統的支持都有很大的變化。 2004年的第1月,SuSE嫁到了Novell,SCO繼續頂著罵名四處強行“化緣”, Asianux, MandrakeSoft也在五年中首次宣佈季度贏利。3月,SGI宣佈成功實現了Linux操作系統支持256個Itanium 2處理器  

主要特性

基本思想 Linux的基本思想有兩點:第一,一切都是文件;第二,每個軟體都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令硬體軟體設備、操作系統進程等等對於操作系統內核而言,都被視為擁有各自特性或類型的文件。至於說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。 
完全免費 Linux是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程式員參與了Linux的修改、編寫工作,程式員可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程式員的精華,不斷壯大。 
完全相容POSIX1.0標準 這使得可以在Linux下通過相應的模擬器運行常見的DOSWindows的程式。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程式是否能正常運行,這一點就消除了他們的疑慮。 
多用戶、多任務 Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程式同時並獨立地運行 
良好的界面 Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。 
支持多種平臺 Linux可以運行在多種硬體平臺上,如具有x86、680x0、SPARCAlpha處理器的平臺。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦機頂盒游戲機上。2001年1月份發佈的Linux 2.4版內核已經能夠完全支持Intel 64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。 

桌面環境

介紹 在圖形計算中,一個桌面環境(Desktop environment,有時稱為桌面管理器)為電腦提供一個圖形用戶界面GUI)。但嚴格來說視窗管理器和桌面環境是有區別的。桌面環境就是桌面圖形環境,它的主要目標是為Linux/Unix操作系統提供一個更加完備 的界面以及大量各類整合工具和使用 程式,其基本 易用性吸引著大量的新用戶。桌面環境名稱來自桌面比擬,對應於早期的文字命令行界面(CLI)。一個典型的桌面環境提供圖標,視窗,工具欄,文件夾,壁紙以及像拖放這樣的能力。整體而言,桌面環境在設計和功能上的特性,賦予了它與眾不同的外觀和感覺。 種類 現今主流的桌面環境有KDEgnomeXfceLXDE等,除此之外還有AmbientEDE,IRIX Interactive Desktop,MezzoSugarCDE等。 gnome 即GNU網路對象模型環境 (The GNU Network Object Model Environment),GNU計劃的一部分,開放源碼運動的一個重要組成部分。是一種讓使用者容易操作和設定電腦環境的工具。 目標是基於自由軟體,為Unix或者類Unix操作系統構造一個功能完善、操作簡單以及界面友好的桌面環境,他是GNU計劃的正式桌面。 Xfce 即XForms Common Environment,創建於2007年7月,類似於商業圖形環境CDE,是一個運行在各類Unix下的輕量級桌面環境。原作者Olivier Fourdan最先設計XFce是基於XForms三維圖形庫。Xfce設計目的是用來提高系統的效率,在節省系統資源的同時,能夠快速載入和執行應用程式。 Fluxbox 是一個基於GNU/Linux的輕量級圖形操作界面,它雖然沒有GNOME和KDE那樣精緻 ,但由於它的運行對系統資源和配置要求極低,所以它被安裝到很多較舊的或是對性能要求較高的機器上,其菜單和有關 配置被保存於用戶根目錄下的.fluxbox目錄里,這樣使得它的配置極為便利。 Enlightenment 是一個功能強大的視窗管理器,它的目標是運用 戶輕而易舉地配置所見即所得的桌面圖形界面。現在Enlightenment的界面已經相當豪華,它擁有像AfterStep一樣的可視化時鐘以及其它浮華的界面效果,用戶不僅可以任意選擇邊框和動感的聲音效果,最有吸引力的是由於它開放的設計思想,每一個用戶可以根據自己的愛好,任意地配置視窗的邊框、菜單以及屏幕上其它各個部分,而不須要 接觸源代碼,也不須要 編譯任何程式。  

文件系統

文件類型

普通文件(regular file):就是一般存取的文件,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照文件的內容,又大致可以分為: 1、純文本文件(ASCII):這是Unix系統中最多的一種文件類型,之所以稱為純文本文件,是因為內容可以直接讀到的數據,例如數字、字母等等。設 置文件幾乎都屬於這種文件類型。舉例來說,使用命令“cat ~/.bashrc”就可以看到該文件的內容(cat是將文件內容讀出來)。 2、二進位文件(binary):系統其實僅認識且可以執行二進位文件(binary file)。Linux中的可執行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來說,命令cat就是一個二進位文件。 3、數據格式的文件(data):有些程式在運行過程中,會讀取某些特定格式的文件,那些特定格式的文件可以稱為數據文件(data file)。舉例來說,Linux在用戶登入時,都會將登錄數據記錄在 /var/log/wtmp文件內,該文件是一個數據文件,它能通過last命令讀出來。但使用cat時,會讀出亂碼。因為它是屬於一種特殊格式的文件。 目錄文件(directory):就是目錄,第一個屬性為 [d],例如 [drwxrwxrwx]。 連接文件(link):類似Windows下麵的快捷方式。第一個屬性為 [l],例如 [lrwxrwxrwx]。 設備與設備文件(device):與系統外設及存儲等相關的一些文件,通常都集中在 /dev目錄。通常又分為兩種: 塊設備文件:就是存儲數據以供系統存取的介面設備,簡單而言就是硬碟。例如一號硬碟的代碼是 /dev/hda1等文件。第一個屬性為 [b]。 字元設備文件:即串列埠的介面設備,例如鍵盤、滑鼠等等。第一個屬性為 [c]。 套接字(sockets):這類文件通常用在網路數據連接。可以啟動一個程式來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。第一個屬性為 [s],最常在 /var/run目錄中看到這種文件類型。 管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程式同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p]。 [5] 

文件結構

/:根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者。 /bin:bin 就是二進位(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄。 /boot:Linux的內核及引導系統程式所需要的文件目錄,比如 vmlinuz initrd.img 文件都位於這個目錄中。在一般情況下,GRUBLILO系統引導管理器也位於這個目錄。 /cdrom:這個目錄在剛剛安裝系統的時候是空的。可以將光碟機文件系統掛在這個目錄下。例如:mount /dev/cdrom /cdrom /dev:dev 是設備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部設備。但是這裡並不是放的外部設備的驅動程式。這一點和常用的windows,dos操作系統不一樣。它實際上是一個訪問這些外部設備的埠。可以非常方便地去訪問這些外部設備,和訪問一個文件,一個目錄沒有任何區別。 /etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置文件和子目錄。要用到的網路配置文件,文件系統,x系統配置文件,設備配置信息,設置用戶信息等都在這個目錄下。 /home:如果建立一個用戶,用戶名是"xx",那麼在/home目錄下就有一個對應的/home/xx路徑,用來存放用戶的主目錄。 /lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連接共用庫的。幾乎所有的應用程式都會用到這個目錄下的共用庫。因此,千萬不要輕易對這個目錄進行什麼操作,一旦發生問題,系統就不能工作了。 /lost+found:在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這裡。當系統啟動的過程中fsck工具會檢查這裡,並修複已經損壞的文件系統。有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修複,或移到文件到原來的位置上。 /mnt:這個目錄一般是用於存放掛載儲存設備的掛載目錄的,比如有cdrom等目錄。可以參看/etc/fstab的定義。 /media:有些linux的發行版使用這個目錄來掛載那些usb介面的移動硬碟(包括U盤)、CD/DVD驅動器等等。 /opt:這裡主要存放那些可選的程式。 /proc:可以在這個目錄下獲取系統信息。這些信息是在記憶體中,由系統自己產生的。 /root:Linux超級許可權用戶root的家目錄。 /sbin:這個目錄是用來存放系統管理員的系統管理程式。大多是涉及系統管理的命令的存放,是超級許可權用戶root的可執行命令存放地,普通用戶無許可權執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root許可權才能執行的。 /selinux :對SElinux的一些配置文件目錄,SElinux可以讓linux更加安全。 /srv 服務啟動後,所需訪問的數據目錄,舉個例子來說,www服務啟動讀取的網頁數據就可以放在/srv/www中 /tmp:臨時文件目錄,用來存放不同程式執行時產生的臨時文件。有時用戶運行程式的時候,會產生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。 /usr 這是linux系統中占用硬碟空間最大的目錄。用戶的很多應用程式和文件都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具 /usr/local:這裡主要存放那些手動安裝的軟體,即不是通過“新立得”或apt-get安裝的軟體。它和/usr目錄具有相類似的目錄結構。讓軟體包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下麵、。 /usr/share :系統共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。 /var:這個目錄的內容是經常變動的,看名字就知道,可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日誌的目錄。/var/ www目錄是定義Apache伺服器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL資料庫的的存放地。 安裝操作系統手動分區、常用的有 /、/etc、/usr、/var、/opt、/tmp、/boot、swap.   本文摘自:https://baike.baidu.com/item/linux/27050?fr=aladdin
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 從今天開始來學習如何在 ASP.NET Core 中構建 Web API 以及每項功能的最佳適用場景。 ...
  • DS密法是DYLIKE本人研發的一種針對文本字元串的高強度加密方法,本加密方法的優點是同源不同密,同一個源文本每次加密的結果都不同,長度也不同.密鑰最大可達String類型的字元最大長度.缺點是解密時間長,500字長度的密文解密約需半秒.適用於非頻繁的數據加密交換.註意,欲加密的源字串不能少於5字. ...
  • 今天應客戶要求,修改導出word模板。使用的是Aspose.Words插件。這個程式原是同事所寫,且自己對Aspose不是很瞭解。在替換木板上花費了一些時間。 先來一張圖:下圖是原來的模板。現在要求刪除“原始內容3”,在“原始內容1”上面添加“新內容”,假設新加“新內容”的分數占位符是“Rule1” ...
  • 第一步下載erlang環境並安裝: rpm -Uvh https://mirrors.aliyun.com/centos/7.6.1810/extras/x86_64/Packages/epel-release-7-11.noarch.rpm yum install erlang 第二步下載Rabb ...
  • 環境:MacOS 10.13.6 虛擬機:VirtualBox6.0(VirtualBox-6.0.4-128413-OSX.dmg) Linux:Centos7(CentOS-7-x86_64-Minimal-1810.iso) 一:虛擬機安裝 這個。。。。真沒啥好說的。。。略過 二:虛擬機創建C ...
  • 1. 主機規劃 Pillar文檔 註意事項 2. Grains VS Pillar 3. Pillar基本信息 4. 顯示系統自帶的pillar 系統自帶的pillar預設是不顯示的 註意:看完之後還原回去,因為數據較多。和自定義數據雜在一起,不方便查看 4.1. 修改配置文件並重啟服務 4.2. ...
  • 1. 主機規劃 Grains文檔 註意事項 修改了master或者minion的配置文件,那麼必須重啟對應的服務。 2. Grains基本信息 3. Grains優先順序信息 推薦使用 自編寫py腳本定義,這樣自定義的grains只需要在master端維護即可,減少後期維護成本。 下文內容就是根據優先 ...
  • 註: client 個人覺得沒必要用 libvent來實現就沒寫 註:由於 涉及到回調函數的使用 如有疑惑的可以先去瞭解回調函數的實現機理 先來說一下 libevent主要是幹啥的 : 內部封裝了 socket 通信 和 io 轉接函數 ,通過使用大量的回調使得不用考慮大量重覆的工作,並且其根據不同 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...