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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...