本節額外知識:linux
/* POSIX表示可移植操做系統接口(Portable Operating System Interface of UNIX,縮寫爲 POSIX ),POSIX標準定義了操做系統應該爲應用程序提供的接口標準,是IEEE爲要在各類UNIX操做系統上運行的軟件而定義的一系列API標準的總稱,其正式稱呼爲IEEE 1003,而國際標準名稱爲ISO/IEC 9945。 POSIX標準意在指望得到源代碼級別的軟件可移植性。換句話說,爲一個POSIX兼容的操做系統編寫的程序,應該能夠在任何其它的POSIX操做系統(即便是來自另外一個廠商)上編譯執行。 */
/* 1. 批處理操做系統 批處理(Batch Processing)操做系統的工做方式是:用戶將做業交給系統操做員,系統操做員將許多用戶的做業組成一批做業,以後輸入到計算機中,在系統中造成一個自動轉接的連續的做業流,而後啓動操做系統,系統自動、依次執行每一個做業。最後由操做員將做業結果交給用戶。 批處理操做系統的特色是:多道和成批處理。 2.分時操做系統 分時(Time Sharing)操做系統的工做方式是:一臺主機鏈接了若干個終端,每一個終端有一個用戶在使用。用戶交互式地向系統提出命令請求,系統接受每一個用戶的命令,採用時間片輪轉方式處理服務請求,並經過交互方式在終端上向用戶顯示結果。用戶根據上步結果發出下道命。分時操做系統將CPU的時間劃分紅若干個片斷,稱爲時間片。操做系統以時間片爲單位,輪流爲每一個終端用戶服務。每一個用戶輪流使用一個時間片而使每一個用戶並不感到有別的用戶存在。分時系統具備多路性、交互性、「獨佔」性和及時性的特徵。多路性指,伺時有多個用戶使用一臺計算機,宏觀上看是多我的同時使用一個CPU,微觀上是多我的在不一樣時刻輪流使用CPU。交互性是指,用戶根據系統響應結果進一步提出新請求(用戶直接干預每一步)。「獨佔」性是指,用戶感受不到計算機爲其餘人服務,就像整個系統爲他所獨佔。及時性指,系統對用戶提出的請求及時響應。它支持位於不一樣終端的多個用戶同時使用一臺計算機,彼此獨立互不干擾,用戶感到好像一臺計算機全爲他所用。 常見的通用操做系統是分時系統與批處理系統的結合。其原則是:分時優先,批處理在後。「前臺」響應需頻繁交互的做業,如終端的要求; 「後臺」處理時間性要求不強的做業。 3.實時操做系統 實時操做系統(RealTimeOperatingSystem,RTOS)是指使計算機能及時響應外部事件的請求在規定的嚴格時間內完成對該事件的處理,並控制全部實時設備和實時任務協調一致地工做的操做系統。實時操做系統要追求的目標是:對外部請求在嚴格時間範圍內作出反應,有高可靠性和完整性。其主要特色是資源的分配和調度首先要考慮實時性而後纔是效率。此外,實時操做系統應有較強的容錯能力。 4.網絡操做系統 網絡操做系統是基於計算機網絡的,是在各類計算機操做系統上按網絡體系結構協議標準開發的軟件,包括網絡管理、通訊、安全、資源共享和各類網絡應用。其目標是相互通訊及資源共享。在其支持下,網絡中的各臺計算機能互相通訊和共享資源。其主要特色是與網絡的硬件相結合來完成網絡的通訊任務。 5.分佈式操做系統 它是爲分佈計算系統配置的操做系統。大量的計算機經過網絡被連結在一塊兒,能夠得到極高的運算能力及普遍的數據共享。這種系統被稱做分佈式系統(DistributedSystem) 。它在資源管理,通訊控制和操做系統的結構等方面都與其餘操做系統有較大的區別。因爲分佈計算機系統的資源分佈於系統的不一樣計算機上,操做系統對用戶的資源需求不能像通常的操做系統那樣等待有資源時直接分配的簡單作法而是要在系統的各臺計算機上搜索,找到所需資源後纔可進行分配。對於有些資源,如具備多個副本的文件,還必須考慮一致性。所謂一致性是指若干個用戶對同一個文件所同時讀出的數據是一致的。爲了保證一致性,操做系統須控制文件的讀、寫、操做,使得多個用戶可同時讀一個文件,而任一時刻最多隻能有一個用戶在修改文件。分佈操做系統的通訊功能相似於網絡操做系統。因爲分佈計算機系統不像網絡分佈得很廣,同時分佈操做系統還要支持並行處理,所以它提供的通訊機制和網絡操做系統提供的有所不一樣,它要求通訊速度高。分佈操做系統的結構也不一樣於其餘操做系統,它分佈於系統的各臺計算機上,能並行地處理用戶的各類需求,有較強的容錯能力。 */
/* Linus Torvalds被稱做Linux之父,著名的電腦程序員、黑客。Linux內核的發明人及該計劃的合做者。他利用我的時間及器材創造出了這套當今全球最流行的操做系統內核之一,現受聘于開放源代碼開發實驗室(OSDL:Open Source Development Labs, Inc),全力開發Linux內核。 Linux是一個誕生於網絡、成長於網絡且成熟於網絡的奇特的操做系統。1991年,當時仍是芬蘭大學生的Linus Torvalds萌發了開發一個自由的Unix操做系統的想法,當年,Linux就誕生了,爲了避免讓這個羽毛未豐的操做系統矢折,Linus Torvalds將自已的做品Linux經過Internet發佈。今後一大批知名的、不知名的電腦黑客、編程人員加入到開發過程當中來,一場聲勢浩大的運動應運而生,Linux逐漸成長起來。 Linux一開始是要求全部的源碼必須公開,而且任何人均不得從Linux交易中獲利。然而這種純粹的自由軟件的理想對於Linux的普及和發展是不利的,因而Linux開始轉向GPL,成爲GNU陣營中的主要一員。 Linux憑藉優秀的設計、不凡的性能,加上IBM、Intel、CA、CORE、Oracle等國際知名企業的大力支持,市場份額逐步擴大,逐漸成爲主流操做系統之一。 */
/* Unix Unix操做系統是一個強大的多用戶、多任務操做系統,支持多種處理器架構,按照操做系統的分類,屬於分時操做系統,最先由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。目前它的商標權由國際開放標準組織所擁有,只有符合單一Unix規範的Unix系統才能使用Unix這個名稱,不然只能稱爲類Unix(Unix-like)。 GNU GNU是自由軟件之父Richard Stallman在1984年組織開發的一個徹底基於自由軟件的軟件體系,與此相應的有一分通用公共許可證(General Public License,簡稱GPL)。Linux以及與他有關的大量軟件是在GPL的推進下開發和發佈的。 自由軟件之父 - Richard Stallman 像一個神態莊嚴的傳教士同樣喋喋不休地處處傳播自由軟件的福音,闡述他創立GNU的夢想:「自由的思想,而不是免費的午飯」。這位自由軟件的「頂級神甫」爲本身的夢想付出了大半生的努力,他不但本身創做了許多自由軟件,如:GCC、和GDB,在他的倡導下,目前人們熟悉的一些軟件如BIND、Perl、Apache、TCP/IP等都成了自由軟件的經典之做。 若是說Richard Stallman創立並推進了自由軟件的發展,那麼,Linus Torvalds絕不猶豫奉獻給GNU的Linux,則把自由軟件的發展帶入到一個全新的境界。 BSD 386BSD由於法律問題直到1992年還不能發佈,NetBSD和FreeBSD是386BSD的後裔,比Linux早。Linus Torvalds說,當時若是有自由的基於386的Unix-like操做系統,他就可能不會創造Linux。儘管沒法預料這給之後的軟件業究竟形成了什麼樣的影響(若是沒有這個法律糾紛,頗有可能沒有今天的革命性的Linux),但有一點能夠確定,Linux更加豐富了這塊土壤。 Minix Minix是一種基於微內核架構的類Unix計算機操做系統,由Andrew S. Tanenbaum發明。Minix最初發佈於1987年,開放所有源代碼給大學教學和研究工做。2000年從新改成BSD受權,成爲自由和開放源碼軟件。 由於AT&T的政策改變,在Version 7 Unix推出以後,發佈新的使用條款,將Unix源代碼私有化,在大學中再也不能使用Unix源代碼。教授爲了能在課堂上教授學生操做系統運做的實務細節,決定在不使用任何AT&T的源代碼前提下,自行開發與Unix兼容的操做系統,以免版權上的爭議。他以小型Unix(mini-Unix)之意,將它稱爲Minix。 Minix沒有任何代碼抄襲Unix,因此它們之間並無任何繼承關係,Minix做爲當時有史以來的第一個開源的操做系統放到網上之後,短時間以內獲得了飛速發展,大量的人進行下載學習。 因爲Minix是教授一人所寫,因此存在一些漏洞。這時候有使用者發現漏洞存在,想着去下載一些補丁或者本身寫一些補丁來修補這些漏洞,修補以後發現效果不錯,而後就建議教授利用這些補丁完善下Minix,結果呢,教授比較執拗,意思是說:爲了維持Minix的純潔性,不須要任何外來代碼。也就是說,根本不打算作商業發行,因此Minux保持了其最原始的風範。 */
/* 基本思想 Linux的基本思想有兩點: 一切都是文件。 每一個軟件都有肯定的用途。 其中第一條詳細來說就是系統中的全部都歸結爲一個文件,包括:命令、硬件和軟件設備、操做系統、進程等等,對於操做系統內核而言,都被視爲擁有各自特性或類型的文件。至於說Linux是基於Unix的,很大程度上也是由於這二者的基本思想十分相近。 徹底免費 Linux是一款免費的操做系統,用戶能夠經過網絡或其它途徑免費得到,並能夠任意修改其源代碼。這是其它操做系統所作不到的。正是因爲這一點,來自全世界的無數程序員參與了Linux的修改、編寫工做,程序員能夠根據本身的興趣和靈感對其進行改變,這讓Linux吸取了無數程序員的精華,不斷壯大。 徹底兼容POSIX1.0標準 這使得能夠在Linux下經過相應的模擬器運行常見的DOS、Windows的程序,這爲用戶從Windows轉到Linux奠基了基礎。許多用戶在考慮使用Linux時,就想到之前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。 多用戶、多任務 Linux支持多用戶,各個用戶對於本身的文件設備有本身特殊的權利,保證了各用戶之間互不影響。多任務則是如今電腦最主要的一個特色,Linux可使多個程序同時並獨立地運行。 良好的界面 Linux同時具備字符界面和圖形界面,在字符界面用戶能夠經過鍵盤輸入相應的指令來進行操做。它同時也提供了相似Windows圖形界面的X-Window系統,用戶可使用鼠標對其進行操做。在X-Window環境中就和在Windows中類似,能夠說是一個Linux版的Windows。 支持多種平臺 Linux能夠運行在多種硬件平臺上,如:具備x8六、680x0、SPARC、Alpha等處理器的平臺。此外Linux仍是一種嵌入式操做系統,能夠運行在掌上電腦、機頂盒或遊戲機上。2001年1月份發佈的Linux 2.4版內核已經可以徹底支持Intel 64位芯片架構,同時Linux也支持多處理器技術。多個處理器同時工做,使系統性能大大提升。 */
/* Linux內核使用三種不一樣的版本編號方式。 用於1.0版本以前(包括1.0)。第一個版本是0.01,緊接着是0.0二、0.0三、0.十、0.十一、0.十二、0.9五、0.9六、0.9七、0.9八、0.99和以後的1.0。 用於1.0以後到2.6,數字由三部分「A.B.C」,A表明主版本號,B表明次主版本號,C表明較小的末版本號。只有在內核發生很大變化時(歷史上只發生過兩次,1994年的1.0、1996年的2.0),A才變化。能夠經過數字B來判斷Linux是否穩定,偶數的B表明穩定版,奇數的B表明開發版。C表明一些bug修復,安全更新,新特性和驅動的次數。 以版本2.4.0爲例,2表明主版本號,4表明次版本號,0表明改動較小的末版本號。在版本號中,序號的第二位爲偶數的版本代表這是一個可使用的穩定版本,如2.2.5,而序號的第二位爲奇數的版本通常有一些新的東西加入,是個不必定很穩定的測試版本,如2.3.1。這樣穩定版原本源於上一個測試版升級版本號,而一個穩定版本發展到徹底成熟後就再也不發展。 從2004年2.6.0版本開始,使用一種「time-based」的方式。3.0版本以前,是一種「A.B.C.D」的格式。這些年裏,前兩個數字A.B即「2.6」保持不變,C隨着新版本的發佈而增長,D表明一些bug修復、安全更新、添加新特性和驅動的次數。3.0版本以後是「A.B.C」格式,B隨着新版本的發佈而增長,C表明一些bug修復、安全更新、新特性和驅動的次數。 第三種方式中再也不使用偶數表明穩定版,奇數表明開發版這樣的命名方式。舉個例子:3.7.0表明的不是開發版,而是穩定版! */
嵌入式 Linux是嵌入式操做系統的一個新成員,其最大的特色是源代碼公開而且遵循GPL協議,近幾年來已成爲研究熱點。目前正在開發的嵌入式系統中,有近50%的項目選擇Linux做爲嵌入式操做系統。程序員
嵌入式linux 是將日益流行的Linux操做系統進行裁剪修改,使之能在嵌入式計算機系統上運行的一種操做系統。數據庫
嵌入式linux既繼承了Internet上無限的開放源代碼資源,又具備嵌入式操做系統的特性。嵌入式Linux的特色是版權費免費;購買費用媒介成本技術支持全世界的自由軟件開發者提供支持網絡特性免費,並且性能優異,軟件移植容易,代碼開放,有許多應用軟件支持,應用產品開發週期短,新產品上市迅速,由於有許多公開的代碼能夠參考和移植,實時性能穩定性好安全性好。編程