linux

自由和開放源代碼的類UNIX操作系統

Linux是一種自由和開放源代碼的類UNIX操作系統。該操作系統的內核由林納斯·托瓦茲在1991年10月5日首次發布。在加上用戶空間的應用程序之後,成為Linux操作系統。Linux也是自由軟體和開放源代碼軟體發展中最著名的例子。只要遵循GNU通用公共許可證,任何個人和機構都可以自由地使用Linux的所有底層源代碼,也可以自由地修改和再發布。大多數Linux系統還包括了像提供GUI界面的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux發布版,而不是自己選擇每一樣組件或自行設置。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。

系統簡介


創始人林納斯·托瓦茲
創始人林納斯·托瓦茲
Linux是一套免費使用和自由傳播的類Unix操作系統,它主要用於基於Intel x86系列CPU的計算機上。這個系統是由世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix兼容產品,並為桌面虛擬化提供更廣泛的平台。
Linux的出現,最早開始於一位名叫Linus Torvalds的計算機愛好者,當時他是芬蘭赫爾辛基大學的學生。他的目的是想設計一個代替Minix(是由一位名叫Andrew Tannebaum的計算機教授編寫的一個操作系統示教程序)的操作系統,這個操作系統可用於386、486或奔騰處理器的個人計算機上,並且具有Unix操作系統的全部功能,因而開始了Linux雛形的設計。
絕大多數基於Linux內核的的操作系統使用了大量的GNU軟體,包括了shell程序、工具、程序庫、編譯器及工具,還有許多其他程序,例如Emacs。正因為如此,GNU計劃的開創者理查德·馬修·斯托曼博士提議將Linux操作系統改名為GNU/Linux。但有些人只把操作系統叫做"Linux"。
由於這些系統工具和庫主要由GNU計劃提供,自由軟體基金會提議將該組合系統命名為GNU/Linux。Linux是一個領先的操作系統,可以運行在伺服器和其他大型平台之上,如大型機和超級計算機。世界上500個最快的超級計算機90%以上運行Linux發行版或變種,最快的前10名超級計算機運行的都是Linux操作系統。 Linux也廣泛應用在嵌入式設備上,如手機、平板電腦、路由器、電視和電子遊戲機等。在移動設備上廣泛使用的Android操作系統就是創建在Linux內核之上。

Linux簡史


Linux
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-like kernel 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處理器。
2021年6月10 日, RAW 設備是一種允許 Linux 內核直接向塊設備提供無緩衝的 I/O 方式,在 2000 年代就已經被廢棄不再使用了。近日,RAW 設備正式退出了歷史舞台。

桌面環境


介紹

在圖形計算中,一個桌面環境(Desktop environment,有時稱為桌面管理器)為計算機提供一個圖形用戶界面(GUI)。但嚴格來說窗口管理器和桌面環境是有區別的。桌面環境就是桌面圖形環境,它的主要目標是為Linux/Unix操作系統提供一個更加完備 的界面以及大量各類整合工具和使用 程序,其基本 易用性吸引著大量的新用戶。桌面環境名稱來自桌面比擬,對應於早期的文字命令行界面(CLI)。一個典型的桌面環境提供圖標,視窗,工具欄,文件夾,壁紙以及像拖放這樣的能力。整體而言,桌面環境在設計和功能上的特性,賦予了它與眾不同的外觀和感覺。

種類

現今主流的桌面環境有KDEgnome,Xfce,LXDE等,除此之外還有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。

Gnome

Gnome即GNU網路對象模型環境 (The GNU Network Object Model Environment),GNU計劃的一部分,開放源碼運動的一個重要組成部分。是一種讓使用者容易操作和設定電腦環境的工具。
目標是基於自由軟體,為Unix或者類Unix操作系統構造一個功能完善、操作簡單以及界面友好的桌面環境,他是GNU計劃的正式桌面。

Xfce

Xfce即XForms Common Environment,創建於2007年7月,類似於商業圖形環境CDE,是一個運行在各類Unix下的輕量級桌面環境。原作者Olivier Fourdan最先設計XFce是基於XForms三維圖形庫。Xfce設計目的是用來提高系統的效率,在節省系統資源的同時,能夠快速載入和執行應用程序。

Fluxbox

Fluxbox是一個運行於GNU/Linux的輕量級圖形操作界面,它雖然沒有GNOME和KDE那樣精緻,但由於它的運行對系統資源和配置要求極低,所以它被安裝到很多較舊的或是對性能要求較高的機器上,其菜單和有關配置被保存於用戶根目錄下的.fluxbox目錄里,這樣使得它的配置極為便利。

Enlightenment

是一個功能強大的窗口管理器,它的目標是運用 戶輕而易舉地配置所見即所得的桌面圖形界面。現在Enlightenment的界面已經相當豪華,它擁有像AfterStep一樣的可視化時鐘以及其它浮華的界面效果,用戶不僅可以任意選擇邊框和動感的聲音效果,最有吸引力的是由於它開放的設計思想,每一個用戶可以根據自己的愛好,任意地配置窗口的邊框、菜單以及屏幕上其它各個部分,而不須要 接觸源代碼,也不須要 編譯任何程序。

優點


1.Linux由眾多微內核組成,其源代碼完全開源;
2.Linux繼承了Unix的特性,具有非常強大的網路功能,其支持所有的網際網路協議,包括TCP/IPv4、TCP/IPv6和鏈路層拓撲程序等,且可以利用Unix的網路特性開發出新的協議棧;
3.Linux系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中模擬工具的障礙,使系統具有較強的移植性;

常用命令及技巧


編輯
1、date:列印或者設置系統的日期和時間
2、stty-a:可以查看或者列印控制字元(Ctrl-C、Ctrl-D、Ctrl-Z等)
3、passwd:用passwd-h查看
4、logout,login:登錄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顯示命令名稱)

Linux伺服器


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

內核路由轉發


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

隱患及措施


用戶賬戶以及登錄安全
刪除多餘用戶和用戶組。Linux是多用戶操作系統,存在很多種不一樣的角色系統賬號,當安裝完成操作系統之後,系統會默認為未添加許用戶組及用戶,若是部分用戶或是用戶組不需要,應當立即刪除它們,否則黑客很有可能利用這些賬號,對伺服器實施攻擊。具體保留哪些賬號,可以依據伺服器的用途來決定。
關閉不需要的系統服務。操作系統安裝完成之後,其會在安裝的過程當中,會自主的啟動各種類型的服務程序內容,對於長時間運行的伺服器而言,其運行的服務程序越多,則系統的安全性就越低。所以,用戶或是用戶組就需要將一些應用不到的服務程序進行關閉,這對提升系統的安全性能,有著極大的幫助。
密碼安全策略。在Linux之下,遠程的登錄系統具備兩種認證的形式:即密鑰與密碼認證。其中,密鑰認證的形式,主要是將公鑰儲存在遠程的伺服器之上,私鑰存儲在本地。當進行系統登陸的時候,再通過本地的私鑰,以及遠程的伺服器公鑰,進行配對認證的操作,若是認證的匹配度一致,則用戶便能夠暢通無阻的登錄系統。此類認證的方式,並不會受到暴力破解的威脅。與此同時,只需要確保本地私鑰的安全,使其不會被黑客所盜取即可,攻擊者便不能夠通過此類認證方式登陸到系統中。所以,推薦使用密鑰方式進行系統登陸。
有效應用su、sudo命令。su命令的作用的是對用戶進行切換。當管理員登錄到系統之後,使用su命令切換到超級用戶角色來執行一些需要超級許可權的命令。但是由於超級用戶的許可權過大,同時,需要管理人員知道超級用戶密碼,因此su命令具有很嚴重的管理風險。
sudo命令允許系統賦予普通用戶一些超級許可權,並且不需普通用戶切換到超級用戶。因此,在管理上應當細化許可權分配機制,使用sudo命令為每一位管理員服務其特定的管理許可權。
遠程訪問及登陸認證安全
遠程登錄應用SSH登陸方式。telnet是一類存在安全隱患的登錄認證服務,其在網路之上利用明文傳輸內容,黑客很容易通過截獲telnet數據包,獲得用戶的登陸口令。並且telnet服務程序的安全驗證方式存在較大的安全隱患,使其成為黑客攻擊的目標。SSH服務則會將數據進行加密傳輸,能夠防止DNS欺騙以及IP欺騙,並且傳輸的數據是經過壓縮,在一定程度上保證了伺服器遠程連接的安全。
文件系統的安全
加固系統重要文件。在Linux系統中,如果黑客取得超級許可權,那麼他在操作系統裡面就不會再有任何的限制地做任何事情。在這種情況下,一個加固的文件系統將會是保護系統安全的最後一道防線。管理員可通過chattr命令鎖定系統一些重要文件或目錄。
文件許可權檢查與修改。如果操作系統當中的重要文件的許可權設置不合理,則會對操作系統的安全性,產生最為直接的影響。所以,系統的運行維護人員需要及時的察覺到許可權配置不合理的文件和目錄,並及時修正,以防安全事件發生。
安全設定/tmp、/var/tmp、/dev/shm。在該操作系統當中,其用於存放臨時文件的目錄,主要有兩個,分別為/tmp與/var/tmp。它們有個共同特點,就是所有的用戶可讀可寫和執行,這樣就對系統產生了安全隱患。針對這兩個目錄進行設置,不允許這兩個目錄下執行應用程序。
系統軟體安全
絕大多數的伺服器遭受攻擊是因為系統軟體或者應用程序有重大漏洞。黑客通過這些漏洞,可以輕鬆地侵入伺服器。管理員應定期檢查並修復漏洞。最常見的做法是升級軟體,將軟體保持在最新版本狀態。這樣就可以在一定程度上降低系統被入侵的可能性。

開發工具


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

嵌入式Linux


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

象徵物


象徵物
象徵物
Tux(一隻企鵝,全稱為tuxedo,NCIT 90916P40 Joeing Youthy的網路ID)是Linux的標誌。將企鵝作為Linux標誌是由林納斯·托瓦茲提出的。
大多數人相信,“Tux”這個名字來源於Torvalds UniX,而不是因為它看起來像是穿著一件黑色小禮服(tuxedo)。
這個企鵝圖案在最佳Linux圖標競賽中被選中,其他一些圖案可以在Linux圖標大賽網站中找到。Tux的設計者是Larry Ewing,他於1996年,利用GIMP軟體設計出這個企鵝,Tux已經成為Linux和開源社區的象徵。

名稱的來由


Linux 操作系統剛開始時並沒有被稱作Linux,Linus 給他的操作系統取名為FREAX,其英文含義是怪誕的、怪物、異想天開等意思。在他將新的操作系統上載到ftp.funet.fi 伺服器上時,管理員Ari Lemke很不喜歡這個名稱。他認為既然是Linus 的操作系統就取其諧音Linux 作為該操作系統的目錄吧,於是Linux 這個名稱就開始流傳下來。
在Linus 的自傳《Just for Fun》一書中,Linus 解釋說:"坦白地說,我從來沒有想到過要用Linux 這個名稱發布這個操作系統,因為這個名字有些太自負了。而我為最終發布版準備的是什麼名字呢?Freax。實際上,內核代碼中某些早期的Makefile - 用於描述如何編譯源代碼的文件 - 文件中就已經包含有"Freax"這個名字了,大約存在了??要一個名字,因為我還沒有向任何人發布過內核代碼。而Ari Lemke,他堅持要用自己的方式將內核代碼放到ftp 站點上,並且非常不喜歡Freax 這個名字。他堅持要用現在這個名字(Linux),我承認當時我並沒有跟他多爭論。但這都是他取的名字。所以我可以光明正大地說我並不自負,或者部分坦白地說我並沒有本位主義思想。但我想好吧,這也是個好名字,而且以後為這事我總能說服別人,就象我現在做的這樣。"-- Linus Torvalds《Just for fun》第84-88 頁。
通過上述說明,我們可以對上述Linux 的五大支柱歸納如下:
1、UNIX 操作系統 -- UNIX 於1969 年誕生在Bell 實驗室。Linux 就是UNIX 的一種克隆系統。UNIX的重要性就不用多說了。
2、MINIX 操作系統 -- Minix 操作系統也是UNIX 的一種克隆系統,它於1987 年由著名計算機教授Andrew S. Tanenbaum 開發完成。由於MINIX 系統的出現並且提供源代碼(只能免費用於大學內)在全世界的大學中颳起了學習UNIX 系統旋風。Linux 剛開始就是參照Minix 系統於1991 年才開始開發。
3、GNU 計劃-- 開發Linux 操作系統,以及Linux 上所用大多數軟體基本上都出自GNU 計劃。Linux只是操作系統的一個內核,沒有GNU 軟體環境(比如說bash shell),則Linux 將寸步難行。
4、POSIX 標準 -- 該標準在推動Linux 操作系統以後朝著正規路上發展起著重要的作用。是Linux前進的燈塔。

應用


過去,Linux主要被用作伺服器的操作系統,但因它的廉價、靈活性及Unix背景使得它很合適作更廣泛的應用。傳統上有以Linux為基礎的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的組合)”經典技術組合,提供了包括操作系統、資料庫、網站伺服器、動態網頁的一整套網站架設支持。而面向更大規模級別的領域中,如資料庫中的Oracle、DB2、PostgreSQL,以及用於Apache的Tomcat JSP等都已經在Linux上有了很好的應用樣本。除了已在開發者群體中廣泛流行,它亦是現時提供網站務供應商最常使用的平台。
Linux
Linux
基於其低廉成本與高度可設定性,Linux常常被應用於嵌入式系統,例如機頂盒、行動電話及行動裝置等。在行動電話上,Linux已經成為與Symbian OS、Windows Mobile系統並列的三大智能手機操作系統之一;而在移動裝置上,則成為Windows CE與Palm OS外之另一個選擇。目前流行的TiVo數位攝影機使用了經過客制化后的Linux。此外,有不少硬體式的網路防火牆及路由器,例如部份LinkSys的產品,其內部都是使用Linux來驅動、並採用了操作系統提供的防火牆及路由功能。
採用Linux的超級電腦亦愈來愈多,根據2005年11月號的TOP500超級電腦列表,現時世上最快速的兩組超級電腦都是使用Linux作為其操作系統。而在表列的500套系統里,採用Linux為操作系統的,佔了371組(即74.2%),其中的前十位者,有7組是使用Linux的。
2006年開始發售的SONY PlayStation 3亦使用Linux的操作系統。之前,Sony亦曾為他們的PlayStation 2推出過一套名為PS2 Linux的DIY組件。至於遊戲開發商雅達利及id Software,都有為其旗下的遊戲推出過Linux桌面版本。此外,Linux Game Publishing亦有專門為Linux平台撰寫遊戲,並致力於把其他在Windows平台編撰的遊戲程序碼轉攜至Linux平台,及為轉攜遊戲提供使用授權。
而一個打算對所有生活在發展中國家孩子提供手提電腦的名為每孩子皆有一部手提電腦(OLPC)的項目,正是使用Linux作為預設的操作系統。

特點


絕大多數基於Linux內核的操作系統使用了大量的GNU軟體,包括了shell程序、工具、程序庫、編譯器及工具,還有許多其他程序,例如Emacs。正因為如此,GNU計劃的開創者理查德·馬修·斯托曼博士提議將Linux操作系統改名為GNU/Linux。但有些人只把操作系統叫做"Linux"。
Linux的基本思想有兩點:第一,一切都是文件;第二,每個軟體都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令、硬體和軟體設備、操作系統、進程等等對於操作系統內核而言,都被視為擁有各自特性或類型的文件。至於說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。
過去,Linux主要被用作伺服器的操作系統,但因它的廉價、靈活性及Unix背景使得它很合適作更廣泛的應用。傳統上有以Linux為基礎的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的組合)”經典技術組合,提供了包括操作系統、資料庫、網站伺服器、動態網頁的一整套網站架設支持。而面向更大規模級別的領域中,如資料庫中的Oracle、DB2、PostgreSQL,以及用於Apache的Tomcat JSP等都已經在Linux上有了很好的應用樣本。除了已在開發者群體中廣泛流行,它亦是現時提供網站務供應商最常使用的平台。
Linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,一是它屬於自由軟體,用戶不用支付任何費用就可以獲得它和它的源代碼,並且可以根據自己的需要對它進行必要的修改,無償對它使用,無約束地繼續傳播。另一個原因是,它具有Unix的全部功能,任何使用Unix操作系統或想要學習Unix操作系統的人都可以從Linux中獲益。
運行Linux需要的配置並不高,支持眾多的PC周邊設備,並且這樣一個功能強大的軟體完全免費,其源代碼是完全公開的,任何人都能拿來使用。說到這裡,各位可能懷疑這免費後面是不是隱藏著什麼?作者會心甘情願的把它拿出來而分文不取嗎?其實,它代表著軟體開發的另一種概念:那就是基於GNU的版權制度。
版權是為了保護作者應有利益而設立的制度,但時至今日它卻對科技的發展造成了一定的阻礙。例如現在病毒的肆虐,就是因為微軟不肯將Windows的源代碼公開。殺毒軟體的廠商只好自己去鑽研OLE結構。還有,Intel為了保住自己的霸主地位,建立了一個個不許其它廠商使用的硬體規範,造成眾多開發者並不是為了提升技術而是為了兼容性而耗費資金和時間,這樣就造成了科研發展的混亂和壟斷。
為了改變這種狀況,Richard M. Stallman在1984年創立了以生產免費軟體為目的的組織--Free Software Foundation(自由軟體基金會,簡稱FSF)。他認為:各個軟體公司為了自己的利益不公開源代碼會阻礙人類文明的發展,一個真正好的軟體是為了替人解決問題,應該散發給需要的人。他開發了一個叫做GNU的計劃,第一套軟體就是GNU Emacs(UNIX平台下強大的編輯器)。任何人都能免費拿到這個軟體和它的源代碼,於是許多人自發的修改這套軟體,為它增加功能。為了明確GNU的規範,Stallman發表了GNU General Public License和GNU Library General Public License授權聲明,根據這些聲明,所有的GNU軟體都可以被任何人下載、出售、複製和修改,但必須提供程序源代碼或者讓使用者知道從哪裡獲得源代碼!但不論免費或者收費,任何得到這些軟體的使用者都有和提供者同樣的權利,可以將它們贈送或出售。由於這個授權,GNU軟體像滾雪球一樣越來越多,功能也越來越強。當然,這樣做也有不良的效果,如果開發商的利潤減少了那麼就沒有人願意真正開發軟體了,畢竟人還是要吃飯的呀。不過隨著Internet的盛行,大眾越來越容易得到各種各樣的軟體,而且大多隻為一時之需,用完之後根本不會再用,一個軟體的使用壽命就大大縮短,在這種情況下,傳統的電子出版行業應該做出相應的調整。
Linux核心程序的著作權歸Linus本人所有,其它應用程序歸各自的作者所有,但按照GNU授權,任何人都可以採取收費或免費方式來發行Linux,並在符合該授權的規範下做修改。這樣就有了一大批的免費程序移植到了Linux上,包括GNU Emacs、XFree86、Mozilla等經典軟體,並且在不斷壯大中。由於源代碼是公開的,任何一個使用Linux的人在添置了新硬體后都能自己編寫驅動程序,所以Linux對新硬體的支持已經超過了許多專業UNIX系統。Linux的成功如果沒有Internet是不可能的,因為Linux實際上是世界各地眾多程序員共同開發的結果。
現在的Linux經過數次改版(包括核心的升級和周邊程序的完善),已經發展成了一個遵循POSIX標準的純32位多工操作系統,64位版本也在開發之中。Linux可以兼容大部分的UNIX系統,很多UNIX的程序不需要改動,或者很少的改變就可以運行於Linux環境;內置TCP/IP協議,可以直接連入Internet,作為伺服器或者終端使用;內置JAVA解釋器,可直接運行JAVA源代碼;具備程序語言開發、文字編輯和排版、資料庫處理等能力;提供X Window的圖形界面;主要用於x86系列的個人電腦,也有其它不同硬體平台的版本,支持現在流行的所有硬體設備。就性能上來說,它並不弱於Windows甚至UNIX,而且靠模擬程序還可以運行Windows應用程序。它有成千上萬的各類應用軟體,並不輸於Windows的應用軟體數量,其中也有商業公司開發的贏利性的軟體。最可貴的是:它是一個真正的UNIX系統,可以供專業用戶和想學UNIX的人在自己的個人電腦上使用。Linux是一個非常靈活的系統,相對於Windows而言也是一個比較難用的系統,就如同大多數用戶用不慣MacOS的單鍵滑鼠一樣。想要對Linux輕車熟路,你必須懂得一些相關知識,軟、硬體的配置,最好還懂點程序,因為沒有人有義務為您提供技術支援,除了和其它用戶交流之外,您必須要自己解決問題。當然,如果您只是作為日常應用,就不需要那麼複雜啦,Linux一樣會為您提供完美的操作環境,你所要做的就是改變使用習慣和成見。
早期的操作系統是沒有圖形界面的,自從Apple於1984年推出System 1.0開始,個人電腦才實現了真正的GUI(Graphics User Interface,圖形用戶界面),從此電腦變得更加具有親和力,也更加易於使用。Windows的圖形化開始於Windows 3.1/3.2,直到Windows 95的出現才標誌著多媒體時間的到來,從此計算機變得能說會唱起來。Linux始於UNIX,卻青出於藍勝於藍,同樣擁有著不俗的圖形用戶界面,性能更穩定,也更漂亮,可以和世界上曾經出現過的,最美麗的操作系統媲美!不同於現在的XP,Linux的圖形界面是基於Console之上的,類似於Windows 95架於DOS之上,Linux下實現圖形界面的是X Window系統(區別於MS的Windows)。
X Window是一套用於UNIX的具有極大可攜性、對彩色掌握的多樣性和網路之間的操作透明性的健在式處理窗口系統。它和微軟的Windows的工作原理並不相同,不過兩者都使用圖形界面和窗口技術,從外表看來有那麼一點點相似,但又存在著巨大的不同,實際上X Window的界面更加多樣化,也更漂亮,且高效快捷。就Windows對於DOS的地位一樣,X Window一改UNIX/Linux單調的文本界面,提供了一個友善的圖形用戶界面(GUI)。
1984年在麻省理工學院(MIT)電腦科學研究室工作的Bob Scheifler正在發展分散式系統,DEC公司的Jim Gettys也在MIT進行A-thena計劃的一部分。兩者都需要一套在UNIX系統上使用的圖形界面,因此兩者開始合作研製X Window。1987年,MIT發布了第11個版本的X Window,並成立了非贏利性組織“X協會”來發展及控制X Window標準。所以現在的X Window並不完全是一個軟體,而是一個協定,定義了一個系統所必須具備的功能。任何系統能滿足這個協定及符合X協會其它的規範,便可稱為X Window,它的源代碼公開。因為X Window具有強大的與設備無關結構性,它提供了一組網路通信協議,任何硬體只要提供X協定,便可以執行應用程序顯示一群包含圖文的窗口,不需要重新編譯,這種與設備無關的特性只要是根據X Window標準所開發的應用程序均可在不同的環境下作用,這就大大減少了跨越不同平台之間的編譯工作,應用程序更加具有可移植性。
Linux上最常用的X Window是Xfree86,它是MIT的X11R5的移植版,使用Openlook窗口管理系統,所以Xfree86是免費的。Xfree86支持現行所有的PC顯示卡,但不一定支持它們的Windows加速特性,比如DirectX 9。
到目前為止,可以支持中文的Linux己不再是鳳毛麟角,而且中文應用軟體正不斷豐富著。但一些商業軟體並未完成移植,其中有諸多原因,在此不詳述。

低廉性

基於其低廉成本與高度可設定性,Linux常常被應用於嵌入式系統,例如機頂盒、行動電話及行動裝置等。在行動電話上,Linux已經成為與Symbian OS、Windows Mobile系統並列的三大智能手機操作系統之一;而在移動裝置上,則成為Windows CE與Palm OS外之另一個選擇。目前流行的TiVo數位攝影機使用了經過定製化后的Linux。此外,有不少硬體式的網路防火牆及路由器,例如部份LinkSys的產品,其內部都是使用Linux來驅動、並採用了操作系統提供的防火牆及路由功能。

廣泛性

採用Linux的超級電腦亦愈來愈多,根據2005年11月號的TOP500超級電腦列表,顯示世上最快速的兩組超級電腦都是使用Linux作為其操作系統。而在表列的500套系統里,採用Linux為操作系統的,佔了371組(即74.2%),其中的前十位者,有7組是使用Linux的。
除了一部分專家之外,大多數人都不自己選擇每一樣組件或自行設置,而是直接使用Linux套件。
2006年開始發售的SONY PlayStation 3亦使用Linux的操作系統。之前,Sony亦曾為他們的PlayStation 2推出過一套名為PS2 Linux的DIY組件。至於遊戲開發商雅達利及id Software,都有為其旗下的遊戲推出過Linux桌面版本。此外,Linux Game Publishing亦有專門為Linux平台撰寫遊戲,並致力於把其他在Windows平台編撰的遊戲程序碼轉攜至Linux平台,及為轉攜遊戲提供使用授權。
而一個打算對所有生活在發展中國家孩子提供手提電腦的名為“每孩子皆有一部手提電腦(OLPC)”的項目,正是使用Linux作為預設的操作系統。
我們不必探討Linux源代碼的開放給我們帶來多大誘惑,我們只研究Linux對我們的生活有何幫助。我們在平時只要掌握Linux最基礎的應用,以及安裝及使用就可以了。對Linux的操作現在發展到了在命令行下操作以及像Windows的桌面系統般的應用。對Linux不是很了解的用戶可以選擇桌面型Linux安裝。
這裡把對Linux的一些疑問解答從網上整理一下,貼出來,希望對那些想要了解Linux的朋友有所幫助。

靈活性

Linux以它的高效性和靈活性著稱。它能夠在PC計算機上實現全部的Unix特性,具有多任務、多用戶的能力。Linux是在GNU公共許可許可權下免費獲得的,是一個符合POSIX標準的操作系統。Linux操作系統軟體包不僅包括完整的Linux操作系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有多個窗口管理器的X-Window圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標和菜單對系統進行操作。

常量定義


初始定義
宏phys定義了你的機器上的地址轉換__virt_to_phys()。這個宏用於把虛擬地址轉換為一個物理地址。通常情況下:
phys = virt - PAGE_OFFSET PHYS_OFFSET
解壓縮符號
解壓縮器的地址地址。由於當你調用解壓縮器代碼時,通常關閉MMU,因此這裡並不討論虛擬地址和物理地址的問題。通常你在這個地址處調用內核,開始引導內核。它不需要在RAM中,只需要位於FLASH或其他只讀或讀/寫的可定址的存儲設備中。
l ZBSSADDR
解壓縮器的初始化為0的工作區的起始地址。必須位於RAM中,解壓縮器會替你把它初始化為0,此外,需要關閉MMU。
l ZRELADDR
解壓縮內核將被寫入的地址和最終的執行地址。必須滿足:
__virt_to_phys(TEXTADDR) == ZRELADDR
內核的開始部分被編碼為與位置無關的代碼。
l INITRD_PHYS
放置初始RAM盤的物理地址。僅當你使用bootpImage時相關(這是一種非常老的param_struct結構)
l INITRD_ⅥRT
初始RAM盤的虛擬地址。必須滿足:
__virt_to_phys(INITRD_ⅥRT) == INITRD_PHYS
l PARAMS_PHYS
param_struct 結構體或tag lis的物理地址,用於給定內核執行環境下的不同參數。
內核符號
RAM第一個BANK的物理地址地址。
l PAGE_OFFSET
RAM第一個BANK的虛擬地址地址。在內核引導階段,虛擬地址PAGE_OFFSE將被映射為物理地址PHYS_OFFSET,它應該與TASK_SIZE具有相同的值。
l TASK_SIZE
一個用戶進程的最大值,單位為byte。用戶空間的堆棧從這個地址處向下增長。
任何一個低於TASK_SIZE的虛擬地址對用戶進程來說都是不可見的,因此,內核通過進程偏移對每個進行進行動態的管理。我把這叫做用戶段。任何高於TASK_SIZE的對所有進程都是相同的,稱之為內核段。(換句話說,你不能把IO映射放在低於TASK_SIZE和PAGE_OFFSET的位置處。)
l TEXTADDR
內核的虛擬起始地址,通常為PAGE_OFFSET 0x8000。內核映射必須在此結束。
l DATAADDR
內核數據段的虛擬地址,不能在使用解壓縮器的情況下定義。
l VMALLOC_START
l VMALLOC_END
用於限制vmalloc()區域的虛擬地址。此地址必須位於內核段。通常,vmalloc()區域在最後的虛擬RAM地址以上開始VMALLOC_OFFSET位元組。
l VMALLOC_OFFSET
Offset normally incorporated into VMALLOC_START to provide a hole between virtual RAM and the vmalloc area. We do this to allow out of bounds memory accesses (eg,something writing off the end of the mapped memory map) to be caught. Normally set to 8MB.
構架相關的宏
pram——指定了RAM起始的物理地址,必須始終存在,並應等於PHYS_OFFSET。
pio——是供arch/arm/kernel/debug-armv.S中的調試宏使用的,包含IO的8 MB區域的物理地址。
vio——是8MB調試區域的虛擬地址。
這個調試區域將被位於代碼中(通過MAPIO函數)的隨後的構架相關代碼再次進行初始化。
l BOOT_PARAMS
參見 PARAMS_PHYS.
l FⅨUP(func)
機器相關的修正,在存儲子系統被初始化前運行。
l MAPIO(func)
機器相關的函數,用於IO區域的映射(包括上面的調試區)。
l INITIRQ(func)
用於初始化中斷的機器相關的函數。

發行版


Linux 主要作為Linux 發行版(通常被稱為"distro")的一部分而使用。這些發行版由個人,鬆散組織的團隊,以及商業機構和志願者組織編寫。它們通常包括了其他的系統軟體和應用軟體,以及一個用來簡化系統初始安裝的安裝工具,和讓軟體安裝升級的集成管理器。發行版為許多不同的目的而製作, 包括對不同計算機結構的支持, 對一個具體區域或語言的本地化,實時應用,和嵌入式系統,甚至許多版本故意地只加入免費軟體。目前,超過三百個發行版被積極的開發,最普遍被使用的發行版有大約十二個。
一個典型的Linux發行版包括:Linux內核,一些GNU程序庫和工具,命令行shell,圖形界面的X Window系統和相應的桌面環境,如KDE或GNOME,並包含數千種從辦公套件,編譯器,文本編輯器到科學工具的應用軟體。
目前最著名的發行版有Debian,紅帽(redhat)、ubuntu、Suse、Mandriva(原Mandrake)、CentOS、fedora等。

其他系統區別


Linux
Linux
Linux可以與MS-DOS、OS/2、Windows等其他操作系統共存於同一台機器上。它們均為操作系統,具有一些共性,但是互相之間各有特色,有所區別。
目前運行在PC機上的操作系統主要有Microsoft的MS-DOS、Windows、Windows NT、IBM的OS/2等。早期的PC機用戶普遍使用MS-DOS,因為這種操作系統對機器的硬體配置要求不高,而隨著計算機硬體技術的飛速發展,硬體設備價格越來越低,人們可以相對容易地提高計算機的硬體配置,於是開始使用Windows、Windows NT等具有圖形界面的操作系統。Linux是新近被人們所關注的操作系統,它正在逐漸為PC機的用戶所接受。那麼,Linux與其他操作系統的主要區別是什麼呢?下面從兩個方面加以論述。
Linux與MS-DOS之間的區別
在同一系統上運行Linux和MS-DOS已很普遍,就發揮處理器功能來說,MS-DOS沒有完全實現x86處理器的功能,而Linux完全在處理器保護模式下運行,並且開發了處理器的所有特性。Linux可以直接訪問計算機內的所有可用內存,提供完整的Unix介面。而MS-DOS只支持部分Unix的介面。
就操作系統的功能來說,MS-DOS是單任務的操作系統,一旦用戶運行了一個MS-DOS的應用程序,它就獨佔了系統的資源,用戶不可能再同時運行其他應用程序。而Linux是多任務的操作系統,用戶可以同時運行多個應用程序。
Linux與OS/2、Windows、Windows NT之間的區別
從發展的背景看,Linux與其他操作系統的區別是,Linux是從一個比較成熟的操作系統發展而來的,而其他操作系統,如Windows NT等,都是自成體系,無對應的相依託的操作系統。這一區別使得Linux的用戶能大大地從Unix團體貢獻中獲利。因為Unix是世界上使用最普遍、發展最成熟的操作系統之一,它是七十年代中期發展起來的微機和巨型機的多任務系統,雖然有時介面比較混亂,並缺少相對集中的標準,但還是發展壯大成為了最廣泛使用的操作系統之一。無論是Unix的作者還是Unix的用戶,都認為只有Unix才是一個真正的操作系統,許多計算機系統(從個人計算機到超級計算機)都存在Unix版本,Unix的用戶可以從很多方面得到支持和幫助。因此,Linux做為Unix的一個克隆,同樣會得到相應的支持和幫助,直接擁有Unix在用戶中建立的牢固的地位。
從使用費用上看,Linux與其他操作系統的區別在於Linux是一種開放、免費的操作系統,而其他操作系統都是封閉的系統,需要有償使用。這一區別使得我們能夠不用花錢就能得到很多Linux的版本以及為其開發的應用軟體。當我們訪問Internet時,會發現幾乎所有可用的自由軟體都能夠運行在Linux系統上。有來自很多軟體商的多種Unix實現,Unix的開發、發展商以開放系統的方式推動其標準化,但卻沒有一個公司來控制這種設計。因此,任何一個軟體商(或開拓者)都能在某種Unix實現中實現這些標準。OS/2和Windows NT等操作系統是具有版權的產品,其介面和設計均由某一公司控制,而且只有這些公司才有權實現其設計,它們是在封閉的環境下發展的。

展望


一個打算對所有生活在發展中國家孩子提供手提電腦的名為每孩子皆有一部手提電腦(OLPC)的項目,正是使用Linux作為預設的操作系統。
什麼是Linux簡單地說,Linux是一套免費使用和自由傳播的類Unix操作系統,它主要用於基於Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix兼容產品。
Linux的出現,最早開始於一位名叫Linus Torvalds的計算機業餘愛好者,當時他是芬蘭赫爾辛基大學的學生。他的目的是想設計一個代替Minix(是由一位名叫Andrew Tannebaum的計算機教授編寫的一個操作系統示教程序)的操作系統,這個操作系統可用於386、486或奔騰處理器的個人計算機上,並且具有 Unix操作系統的全部功能,因而開始了Linux雛形的設計。
Linux以它的高效性和靈活性著稱。它能夠在PC計算機上實現全部的Unix特性,具有多任務、多用戶的能力。Linux是在GNU公共許可許可權下免費獲得的,是一個符合POSIX標準的操作系統。Linux操作系統軟體包不僅包括完整的Linux操作系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有多個窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標和菜單對系統進行操作。
Linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,一是它屬於自由軟體,用戶不用支付任何費用就可以獲得它和它的源代碼,並且可以根據自己的需要對它進行必要的修改,無償對它使用,無約束地繼續傳播。另一個原因是,它具有Unix的全部功能,任何使用Unix操作系統或想要學習 Unix操作系統的人都可以從Linux中獲益。

常見問題解答


1、在windows下的軟體可不可以正常的運行?
不可以,不過有一個軟體叫 wine ,可以模擬運行一部分程序。他的衍生版本可以運行特定方面的軟體。比如 cedega ,可以運行很多遊戲,CS、WARCRAFT3 、wow 都能,但還是不夠完美。比如 wow 里部分插件導致運行緩慢(CS 用 OpenGL 基本完美。當然前提是你的顯卡正確安裝了驅動,打開了 3D 支持)。
2、哪個殺毒軟體支持linux?
Avast!,Mcafee,Kaspersky和ClamAV(自由軟體,開源、免費)等。
暫時 linux 還不需要殺毒軟體,病毒很少,主要是黑客攻擊,注意設置就行了。比如選擇針對桌面設計的版本,來減少過多服務程序導致安全隱患。
3、在Linux是不是可以實現多媒體播放功能(比如聽歌看電影)啊?
可以,絕對可以,而且Linux下的軟體很早就可以和Windows的媒體播放軟體媲美了。
ffmpeg解碼器庫就是linux下的,Mplayer 也是linux 里的。(注意不是windows 里的那個韓國的KMPlayer ,Linux 里的KMPlayer是一個Mplayer的KDE界面程序)在硬體條件足夠的情況下Mplayer對720P、1080P高清的支持也很完美!
ppstream也發布了Linux版本,現在可以在Linux下看網路電視了!
4、QQ可不可以在Linux運行啊?
騰訊官方已發布QQ for Linux (於2009年1月19日發布),但功能尚且比較簡單,可以支持屏幕截圖。目前不支持群管理,群空間等高級屬性。已經可以支持紅旗linux桌面版6.0,對最新的suse linux 11.1的支持也非常好。其他的可以選擇的開源解決方案還有eva,lumaQQ和pidgin。目前eva的功能較強大。

俄政府將開發


媒體報道

北京時間2010年10月28日消息,據國外媒體報道,俄羅斯聯邦議會議員伊利亞·龐諾馬里夫(ILIA Ponomarev)當地時間周三(27日)表示,俄羅斯政府計劃開發自主操作系統,減少對微軟的依賴,更好地監管計算機系統安全。

親自證實

龐諾馬里夫在接受媒體採訪時說,俄羅斯政府將投資1.5億盧布(約合490萬美元),開發基於Linux的操作系統。《俄羅斯商業日報》之前曾報道稱俄羅斯政府將開發自主操作系統。