week 1

一、計算機的組成及其功能

計算機由運算器、控制器、存儲器、輸入設備(Input)、輸出設備(Output)五大部件組成。

  • 運算器:主要功能是用於完成各種算術、邏輯運算和數據傳送等數據加工處理。
  • 控制器:主要功能是用於控制程序的執行,是計算機的大腦
  • 存儲器:主要用於存放程序指令和數據。
  • 輸入設備:用於將數據輸入到計算機中,例如:鼠標、鍵盤。
  • 輸出設備:將數據或程序的處理結果展示給用戶,例如:顯示器、打印機。

二、Linux內核功能以及作用

linux內核(kernel)是整個操作系統的最底層,它負責與計算機硬件進行交互,實現對硬件編程控制和接口操作,對硬件資源的訪問和調度,併爲計算機的用戶程序提供一個高級的執行環節。

按功能分爲:

  1. 進程管理
  2. 內存管理
  3. 文件系統管理
  4. 設備驅動程序
  5. 進程間通信和網絡管理

三、常見的linux發行版,不同發行版之間的聯繫與區別

比較常見的發行版本有:Red Hat Linux、Fedora 、CentOS、SuSE、Debian、Ubuntu、等。

​ RedHat(RdeHat Enterprise Linux縮寫爲RHEL,Red Hat的企業版)是RedHat公司的LINUX發行版,主要做服務器版的linux開發,在版本上注重性能和穩定性以及對硬件的支持。

​ Fedora 奠基於RedHat Linux,它是一套功能完備、更新快速的免費操作系統。而對贊助者RedHat公司而言,它是許多新技術的測試平臺,被認爲可用的技術最終會加入到RedHat Enterprise Linux中。

​ CentOS(Community ENTerprise Operating System)它是來自於Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由於出自同樣的源代碼,因此有些要求高度穩定性的服務器以CentOS替代商業版的Red Hat Enterprise Linux使用。CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對於其他 Linux 發行版,其穩定性值得信賴。

​ SuSE原是以Slackwaare Linux爲基礎,並提供完整德文使用界面的產品。1992年PeterMcDonald成立了Softlanding Linu System(SLS)這個發行版。這套發行版包含的軟件非常多,更首次收錄了X Window及TCP/IP等包。

​ Debian,是一種自由操作系統,全稱Debian GNU/Linux,採用Linux作爲內核,由Debian計劃(Debian Project)組織維護。Debian是一個純粹由自由軟件所組合而成的作業環境,而其背後並沒有任何的營利組織支持。

​ Ubuntu,是一個以桌面應用爲主的GNU/Linux操作系統,其名稱來自非洲南部祖魯語或豪薩語的“ubuntu”一詞,意思是“人性”。 Ubuntu基於Debian發行版和GNOME桌面環境,與Debian的不同在於它每6個月會發佈一個新版本。

四、常見的開源協議以及區別

GPL

​ GPL的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代碼做爲閉源的商業軟件發佈和銷售。這也就是爲什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商 業軟件公司開發的免費軟件了。

GPL協議的主要內容是只要在一個軟件中使用(”使用”指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的”傳染性”。GPL協議的產品作爲一個單獨的產品使用沒有任何問題, 還可以享受免費的優勢。

由於GPL嚴格要求使用了GPL類庫的軟件產品必須使用GPL協議,對於使用GPL協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/採用作爲類庫和二次開發的基礎。

LGPL

​ LGPL是GPL的一個爲主要爲類庫使用設計的開源協議。LGPL允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。因此LGPL協議的開源代碼很適合作爲第三方類庫被商業軟件引用,但不適合希望以LGPL協議代碼爲基礎,通過修改和衍生的方式做二次開發的商業軟件採用。

BSD

​ BSD開源協議是一個給於使用者很大自由的協議。基本上使用者可以自由的使用,修改源代碼,也可以將修改後的代碼作爲開源或者專有軟件再發布。

當使用了BSD協議的代碼,或者以BSD協議代碼爲基礎做二次開發自己的產品時,需要滿足三個條件:

如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議;如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議;不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。因此,很多公司企業在選擇開源軟件的時候都首選BSD協議,因爲可以完全控制這些第三方的代碼,而且在必要的時候可以進行修改或者二次開發。

Apache:

​ Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作爲開源或商業軟件)。需要滿足的條件也和BSD類似:

需要給代碼的用戶一份Apache Licence;如果你修改了代碼,需要在被修改的文件中說明;在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明;如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現爲對Apache Licence構成更改。

五、linux的哲學思想

​ 一切皆文件;由衆多單一目的的小程序,一個程序只實現一個功能,多個程序組合完成複製任務;文本文件保存配置信息;儘量避免與用戶交互

一切皆文件:是 Unix/Linux 的基本哲學之一。不僅普通的文件,目錄、字符設備、塊設備、 套接字等在 Unix/Linux 中都是以文件被對待;它們雖然類型不同,但是對其提供的卻是同一套操作界面

單一小程序:程序和可執行文件不會太過於複雜和過大,這樣才能保證linux的高效運行

文本文件保存配置信息:linux對於所有配置文件都存放在文本文件中,任意一款文本編輯器都能修改,無論什麼配置修改都只需修改其配置文件即可

避免與用戶交互:Linux上支持的腳本語言種類十分豐富、易學簡單,易於使用者已腳本的方式自動完成衆多功能

六、linux的目錄結構以及目錄結構命名規定

/bin: 所有用戶可以的基本命令程序文件;
/sbin: 供系統管理使用的工具程序;
/boot: 引導加載器必須用到的各靜態文件:kernel,initramfs(initrd),grub等;
/dev: 存儲特殊文件或設備文件;
​ 設備有兩種類型:字符設備(線性設備)、塊設備(隨機設備);
/etc:系統程序的配置文件,只能爲靜態;
/home:普通用戶的家目錄的集中位置:一般每個普通的家目錄默認爲此目錄下的用戶名同名 /home/USERNAME;
/root: 管理員的家目錄;
/lib:爲系統啓動或根文件系統上的應用程序(/bin,/sbin等)提供共享庫,以及爲內核提供內核模塊;
​ libc.so.:動態鏈接的C庫;
​ ld: 運行時鏈接器/加載器;
​ modules: 用於存儲內核模塊的目錄;
/lib64: 64位系統特有的存放64位共享庫的路徑;
/media: 便攜式設備掛載點,cdrom,floppy等;
/mnt: 其他文件系統的臨時掛載點;
/opt: 附加應用程序的安裝位置;
/srv: 當前主機爲服務提供的數據;
/tmp: 爲那些會產生臨時文件的程序提供的用於存儲文件的目錄;可供所有用戶執行寫入操作,有特殊權限;
/usr: user Hierarchy,全局共享的只讀數據路徑;
/usr/local: Local hierarchy ,讓系統管理員安裝本地應用程序;也通常用於安裝第三方程序;
/var: var Hierarchy(層及目錄),存儲發生變化的數據的目錄;
/proc: 基於內存的虛擬文件系統,用於爲內核及進程存儲其相關信息;
/sys: sysfs 虛擬文件系統提供一種比proc更爲理想的訪問內核數據的途徑;其主要作用在爲管理linux設備提供一種統一模型的接口;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章