Liunx入門

1、描述計算機的組成及其功能。

​1):CPU(運算器Arithmetical Unit和控制器Control Unit)運算控制器

​ 運算器Arithmetical Unit:是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。
​ 控制器Control Unit:運算器的功能是對數據進行各種算術運算和邏輯運算,即對數據進行加工處理

2):存儲器Memory:存儲器的功能是存儲程序、數據和各種信號、命令等信息,並在需要時提供這些信息

​3):輸入Input:輸入設備與輸出設備合稱爲外部設備,簡稱外設,輸入設備的作用是將程序、原始數據、文字、字符、控制命令或現場採集的數據等信息輸入到計算機。常見的輸入設備有鍵盤、鼠標器、光電輸入機、磁帶機、磁盤機、光盤機等

​4):輸出設備Output:輸出設備與輸入設備同樣是計算機的重要組成部分,它把計算機的中間結果或最後結果、機內的各種數據符號及文字或各種控制信號等信息輸出出來。微機常用的輸出設備有顯示終端CRT、打印機、激光印字機、繪圖儀及磁帶、光盤機等。

2、描述內核功能以及作用
1)內核分爲單內核和微內核,Linux是單內核設計,但是借鑑了微內核設計的優點,引入了模塊化機制. 內核是整個操作系統的最底層,它負責整個硬件的驅動,以及提供各種系統所需的核心功能,包括防火牆機制、是否支持LVM或Quota等文件系統等等,如果內核不認識某個最新的硬件,那麼硬件也就無法被驅動,你也就無法使用該硬件。

1)內核的組成部分kernel:內核核心,一般爲bzimage,通常位於/boot目錄,名稱爲vmlinuz-VERSION-release                           

2)kernel object:內核對象,即內核模塊,一般放置於/lib/modules/VERSION-release/                        內核模塊與內核核心版本一定要嚴格匹配

​ 2)內核的功能進程管理

​       進程的狀態、控制、同步互斥、通信調度
​       存儲管理        分配/回收、地址轉換、存儲保護等
​       文件管理        文件目錄、文件操作、磁盤空間、文件存取控制
​       設備管理        設備驅動、分配回收、緩衝技術等
​       用戶接口        系統命令、編程接口

3、按系列羅列常見Linux的發行版,並描述不同發行版之間的聯繫與區別。
Liunx入門
img

2).發行版的聯繫與區別聯繫
聯繫:
(1).所有的發行版都使用linux內核;
(2).所有的linux發行版都需要遵循GNU的GPL協定。要不提供源碼或者譯好的包(如centos);
(3).所有的發行版都有自己的版本號,版本格式約定基本一樣。主版本號.次版本號.發行號或修正號

區別:
(1).只有debain以社區的方式運作。
(2).發行版的本質區別,在於集成了不同版本的內核、庫、程序的組合。
(3)不同發行商發行版之間無法有效進行版本的對比。
(4)不同發行版幾乎採用了不同的包管理器(a). Debian:包管理器dpkg(deb格式),apt-get(b). RedHat:包管理器rpm,前端包管理器叫yumdnf(新版)(c). S.U.S.E:包管理器rpm,zypper(d). ArchLinux:包管理器port(e). Gentoo:邊安裝,邊編譯 LFS:Linux From Scratch(f).kali 包含較多安全工具的linux

4、描述常見的開源協議(GPL,LGPL, BSD,Apache等)以及開源協議的區別

GPL

  GPL授予程序接受人以下權利,或稱“自由”:

  * 以任何目的運行此程序的自由

  * 以學習程序工作機理爲目的,對程序進行修改的自由(能得到源代碼是前提)

  * 再發行復製件的自由

  * 改進此程序,並公開發布改進的自由(能得到源代碼是前提)

  相反地,隨版權所有軟件的最終用戶許可證幾乎從不授予用戶任何權利(除了使用的權利),甚至可能限制法律允許的行爲,比如逆向工程。

  GPL與其他一些更“許可的”自由軟件許可證(比如BSD許可證)相比,主要區別就在於GPL尋求確保上述自由能在複製件及演繹作品中得到保障。它通過一種由Stallman發明的叫copyleft的法律機制實現,即要求GPL程序的演繹作品也要在GPL之下。相反,BSD式的許可證並不禁止演繹作品變成版權所有軟件。

  GPL不會授予許可證接受人無限的權利。再發行權的授予需要許可證接受人開放軟件的源代碼,及所有修改。且複製件、修改版本,都必須以GPL爲許可證。

  這些要求就是copyleft,它的基礎就是作品在法律上版權所有。由於它版權所有,許可證接受人就無權進行修改和再發行(除合理使用),除非它有一個copyleft條款。如果某人想行使通常被法律所禁止的權利,只需同意GPL的條款。相反地,如果某人發行軟件違反了GPL(比如不開放源代碼),他就有可能被原作者起訴。

  copyleft利用版權法來達到與其相反的目的:copyleft給人不可剝奪的權利,而不是版權法所規定的諸多限制。這也是GPL被稱作“被黑的版權法”的原因。

  許多GPL軟件發行者都把源代碼與可執行程序捆綁起來。另一方式就是以物理介質(比如CD)爲載體提供源代碼。在實踐中,許多GPL軟件都是在互聯網上發行的,源代碼也有許多可以FTP方式得到。

  copyleft只在程序再發行時發生效力。對軟件的修改可以不公開或開放源代碼,只要不發行。注意copyleft只對軟件有效力,而對軟件的輸出並無效力(除非輸出的是軟件本身)。不過這在GPL版本3中可能會有改動。

MPL

  MPL是The Mozilla Public License的簡寫,是1998年初Netscape的 Mozilla小組爲其開源軟件項目設計的軟件許可證。MPL許可證出現的最重要原因就是,Netscape公司認爲GPL許可證沒有很好地平衡開發者對源代碼的需求和他們利用源代碼獲得的利益。同著名的GPL許可證和BSD許可證相比,MPL在許多權利與義務的約定方面與它們相同(因爲都是符合OSIA 認定的開源軟件許可證)。但是,相比而言MPL還有以下幾個顯著的不同之處:

  * MPL雖然要求對於經MPL許可證發佈的源代碼的修改也要以MPL許可證的方式再許可出來,以保證其他人可以在MPL的條款下共享源代碼。但是,在MPL 許可證中對“發佈”的定義是“以源代碼方式發佈的文件”,這就意味着MPL允許一個企業在自己已有的源代碼庫上加一個接口,除了接口程序的源代碼以MPL 許可證的形式對外許可外,源代碼庫中的源代碼就可以不用MPL許可證的方式強制對外許可。這些,就爲借鑑別人的源代碼用做自己商業軟件開發的行爲留了一個豁口

  * MPL許可證第三條第7款中允許被許可人將經過MPL許可證獲得的源代碼同自己其他類型的代碼混合得到自己的軟件程序。

  * 對軟件專利的態度,MPL許可證不像GPL許可證那樣明確表示反對軟件專利,但是卻明確要求源代碼的提供者不能提供已經受專利保護的源代碼(除非他本人是專利權人,並書面向公衆免費許可這些源代碼),也不能在將這些源代碼以開放源代碼許可證形式許可後再去申請與這些源代碼有關的專利。

* 對源代碼的定義

而在MPL(1.1版本)許可證中,對源代碼的定義是:“源代碼指的是對作品進行修改最優先擇取的形式,它包括:所有模塊的所有源程序,加上有關的接口的定義,加上控制可執行作品的安裝和編譯的‘原本’(原文爲‘Script’),或者不是與初始源代碼顯著不同的源代碼就是被源代碼貢獻者選擇的從公共領域可以得到的程序代碼。”

  * MPL許可證第3條有專門的一款是關於對源代碼修改進行描述的規定,就是要求所有再發布者都得有一個專門的文件就對源代碼程序修改的時間和修改的方式有描述。

LGPL

  GNU寬通用公共許可證,簡稱LGPL(GNU Lesser General Public License),被用於一些(但不是全部)GNU程序庫。這個許可證以前被稱爲GNU庫(Library)通用公共許可證。

LGPL是GPL的變種,也是GNU爲了得到更多的甚至是商用軟件開發商的支持而提出的。與GPL的最大不同是,可以私有使用LGPL授權的自由軟件,開發出來的新軟件可以是私有的而不需要是自由軟件。所以任何公司在使用自由軟件之前應該保證在LGPL或其它GPL變種的授權下。

Apache License

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

    * 需要給代碼的用戶一份Apache License

    * 如果你修改了代碼,需要再被修改的文件中說明

    * 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議、商標、專利聲明和其他原來作者規定需要包含的說明

    * 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現爲對Apache License構成更改

Apache License也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作爲開源或商業產品發佈/銷售。

BSD

  BSD授權許可證(FreeBSD Copyright Information)具有多種授權許可證。總的來說你可以對軟件任意處理,只要你在軟件中註明其是來自於那個項目的就可以了。也就是說你具有更大的自由度來處置軟件。如果你對軟件進行了修改,你可以限制其他使用者得到你修改的軟件的自由。

  BSD授權許可證沒有實現"通透性"自由,也就是其不保證軟件源代碼開放的連續性。這樣如果你希望採用別人開發的BSD軟件,進行一些修改,然後作爲產品賣,或者僅僅保密自己的做的一些除了軟件開發以外的工作,那麼你就可以從中得利。

  當一個非程序員僅僅理解一個程序的功能,但是不瞭解程序是如何做的時,即使你沒有在開發軟件中做任何工作那你就可以通過高超的市場技巧將軟件賣給該用戶。比如拿最流行的桌面操作系統作爲例子,你就能很好的理解一個沒有很好的程序技巧的軟件公司只要具有高超的市場營銷策略同樣可以將垃圾賣給客戶。如果你不具有很強大的編程能力,但是具有很強的市場能力和能將其他開發者的軟件包括到自己的系統,而同時不將自己的修改開放出來將是非常強大的能力。從賺錢爲目的的商務角度看來,如果你使用了BSD授權許可證的軟件,那麼你就可以任意進行。你可以更好地控制你的OS系統,並且防止其他人拷貝你的商業產品。

MIT

MIT是和BSD一樣寬泛的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版裏包含原許可協議的聲明,無論你是以二進制發佈的還是以源代碼發佈的.

有許多團體均採用MIT許可證。例如著名的ssh連接軟件PuTTY與X Windows System (X11)即爲例子。Expat, Mono開發平臺庫,Ruby on Rails, Lua 5.0 onwards等等也都採用MIT授權條款。

5、描述Linux的哲學思想,並按照自己的理解對其進行解釋性描述。

​ 1)一切皆文件
把幾乎所有資源統統抽象爲文件形式:包括硬件設備,設置通信接口等
文件操作: open(),read(),write(),close(),delete(),create()

​ 2)由總多功能單一的程序組成:一個程序只做一件事,並且做好;組合小程序完成複雜任務

​ 3)儘量避免跟用戶交互:

​ 目標:易於以編程的方式實現自動化任務

​ 4)使用文本文件保存配置信息

6、描述linux目錄結構以及目錄結構命名規定。

​ 目錄結構:倒置樹狀結構

​ 文件名使用法則:

​ 嚴格區分大小寫:file1,File1,FILE1

​ 目錄也是文件,在同一路徑下,兩個文件不能同名

​ 支持使用除/以外的任意字符

​ 最長不能超過255個字符

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