OS的接口有兩類:
GUI:Graphic User Interface(圖形界面接口)
Gnome:C 語言研發的圖形界面,gtk
KDE :C++,qt
CLI:Command line interface(交互通訊接口)
bash , zsh , sh ,csh ,tcsh ,ksh.
操做系統的功能:
驅動程序
進程管理
安全
網絡功能
內存管理
文件系統
......
所謂啓動一個程序,就是將一個程序從磁盤上讀出來並交給內核,而內核建立出一個可供管理的動態程序,由於內核使用來管理這些程序的。
API:Application program Interface(應用編程接口)程序員面對的接口
ABI:Application binary interface 應用者應對運行程序的接口linux
GUN:源碼不能運行,要編譯成二進制格式運行,gcc,glibc,vi, linux程序員
Redhat:
發行版,目前linux發行版有數百種之多。目前最主流的發版本:debian(社區方式運做)SLS的子分支slackware,最著名的就是ubantu,knopix,其中有一個分支叫做SuSE(openSUSE);
redhat 9.0以後分裂成兩個版本:Redhat Enterprise linux:RHEL 纔到7.2:
Centos:Community —Enterprise OS
Gentoo
ARrch Linux
課外做業:
GPL,BSD,Apache 是什麼,他們有什麼區別?又有什麼聯繫?
Android系統跟他們又有什麼關係?
1、GPL:要解釋清楚GPL這個東西,必定要把GNU說一說。
GNU:是「GNU is Not Unix」的遞歸縮寫。它的目標是建立一套徹底自由的操做系統,可是因爲技術或者其餘緣由,GNU組織提供的只是運行的Unix上的一些軟件:gcc、vi。
GPL:是General Public License的縮寫。也是GNU中包含的協議條款。GPL是GNU試圖保證你共享和修改自由軟件的自由——保證自由軟件對全部用戶是自由的。受GPL協議保護的軟件,只要使用者對軟件進行二次開發或者修復BUG之類的操做,必須公開對源程序修改或添加後的全部代碼。
一、確保軟件自始至終都以開放源代碼形式發佈,保護開發成果不被竊取用做商業發售。任何一套軟件,只要其中使用了受 GPL 協議保護的第三方軟件的源程序,並向非開發人員發佈時,軟件自己也就自動成爲受 GPL 保護而且約束的實體。也就是說,此時它必須開放源代碼。
二、GPL 大體就是一個左側版權(Copyleft,或譯爲「反版權」、「版權屬左」、「版權所無」、「版責」等)的體現。你能夠去掉全部原做的版權信息,只要你保持開源,而且隨源代碼、二進制版附上 GPL 的許可證就行,讓後人能夠很明確地得知此軟件的受權信息。GPL 精髓就是,只要使軟件在完整開源的狀況下,儘量使使用者獲得自由發揮的空間,使軟件獲得更快更好的發展。
三、不管軟件以何種形式發佈,都必須同時附上源代碼。例如在 Web 上提供下載,就必須在二進制版本(若是有的話)下載的同一個頁面,清楚地提供源代碼下載的連接。若是以光盤形式發佈,就必須同時附上源文件的光盤。
四、開發或維護遵循 GPL 協議開發的軟件的公司或我的,能夠對使用者收取必定的服務費用。但仍是一句老話——必須無償提供軟件的完整源代碼,不得將源代碼與服務作捆綁或任何變相捆綁銷售。
2、BSD
BSD是Berkeley Software Distribution(伯克利軟件套件)的縮寫。在1977年至1995年由加州大學伯克利分校開發和發佈的。其主要開發者是Bill Joy,而Bill Joy在1982與其餘兩人建立了太陽微系統公司(Sun Microsystems)。爲何BSD誕生在伯克利大學而非其餘著名大學?緣由很簡單,Unxi系統的創始人,Ken Thompson到他的母校去「支教」了。這一契機爲Bill Joy開發BSD提供了基礎。歷史上, BSD曾經被認爲是UNIX的一支——"BSD UNIX", 由於它和AT&T UNIX操做系統共享基礎代碼和設計。在20世紀80年代,衍生出了許多變形的UNIX受權軟件。比較著名的如DEC的Ultrix及Sun公司的SunOS。1990年代,BSD很大程度上被System V4.x版以及OSF/1系統所取代,晚期BSD版本爲幾個開源軟件開發提供了平臺而且一直沿用至今。今天,「BSD」並不特指任何一個BSD衍生版本,而是類UNIX操做系統中的一個分支的總稱。
上圖是 Openfoundry 繪製的 Android 的受權許可證結構,能夠看到在 Android 多層軟件棧中,僅僅最核心的 Linux 內核使用了 GNU 通用公共許可證,在這個層次上,Google 對 Linux 內核的全部修改必須反饋回 Linux 主版本樹(Android 的內核將在 Linux 3.3 版本進行迴歸,兩個版本的 Linux 內核進行融合)。編程
其上層的類庫以及應用框架以及所謂用戶空間部分,大部分使用了「 溫和 」的 Apache-2.0 軟件許可受權,容許 Android 上的開發商基於 Android 的源代碼進行開發而不向社區反饋。基於上文討論 GPL 的第一個問題,用戶空間的類庫以及程序使用 Linux 內核的系統調用不被視爲是Linux內核的衍生產品,於是得以自由採用 Apache-2.0 的軟件受權進行發佈。GPL 世界和非GPL世界的分界線在於一個叫作 Bionic Libc 的類庫。Bionic Libc 的關鍵之處在於若是 Bionic Libc 受到內核 GPL 的「感染」,將會波及非 GPL 的用戶空間的各個模塊。
Android 的 Bionic Libc 的類庫,採用 BSD 的許可證受權。在 2008 年 Google IO大會上,一份著名的 PPT:「 Android Anatomy And Physiology 」講到 Android 使用 Bionic Libc 類庫替換Linux經常使用的 Gnu glibc ,其中一個主要緣由是 「 We want to keep GPL out of user-space 」。安全