(一)Linux基礎(1)

1、計算機的組成及其功能。
計算機由如下四部分組成:
一、中央處理器(CPU),CPU又由運算器和控制器構成
CPU的功能主要是解釋計算機指令以及處理計算機軟件中的數據。
控制器(Control):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工做及內存與外設的訪問等。
運算器(Datapath):運算器的功能是對數據進行各類算術運算和邏輯運算,即對數據進行加工處理。前端

二、存儲器(Memory):存儲器的功能是存儲程序、數據和各類信號、命令等信息,並在須要時提供這些信息。例如計算機的內存。linux

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

四、輸出設備(Output system):輸出設備與輸入設備一樣是計算機的重要組成部分,它把外算機的中間結果或最後結果、機內的各類數據符號及文字或各類控制信號等信息輸出出來。微機經常使用的輸出設備有顯示器、打印機、激光印字機、繪圖儀及磁帶、光盤機等。編程

2、內核功能以及做用ubuntu

完整的操做系統(OS)由kernel(內核)加Application(應用程序)組成
狹義的OS就指內核(kernel),內核的做用以下:
(一)Linux基礎(1)
內核將硬件封裝,硬件規格被隱藏起來
內核將硬件的接口抽象成爲系統調用
一、進程管理
 內核負責建立和銷燬進程, 並處理它們與外部世界的聯繫(輸入和輸出). 不一樣進程間通信(經過信號, 管道, 或者進程間通信原語)對整個系統功能來講是基本的, 也由內核處理. 另外, 調度器, 控制進程如何共享 CPU, 是進程管理的一部分. 更一般地, 內核的進程管理活動實現了多個進程在一個單個或者幾個 CPU 之上的抽象.
二、內存管理
 計算機的內存是主要的資源, 處理它所用的策略對系統性能是相當重要的. 內核爲全部進程的每個都在有限的可用資源上創建了一個虛擬地址空間. 內核的不一樣部分與內存管理子系統經過一套函數調用交互, 從簡單的 malloc/free 對到更多更復雜的功能.
三、文件系統
 Unix 在很大程度上基於文件系統的概念; 幾乎 Unix 中的任何東西均可看做一個文件. 內核在非結構化的硬件之上創建了一個結構化的文件系統, 結果是文件的抽象很是多地在整個系統中應用. 另外, Linux 支持多個文件系統類型, 就是說, 物理介質上不一樣的數據組織方式. 例如, 磁盤可被格式化成標準 Linux 的 ext3 文件系統, 廣泛使用的 FAT 文件系統, 或者其餘幾個文件系統.
四、設備控制(驅動程序)
 幾乎每一個系統操做最終都映射到一個物理設備上. 除了處理器, 內存和很是少的別的實體以外, 所有中的任何設備控制操做都由特定於要尋址的設備相關的代碼來進行. 這些代碼稱爲設備驅動. 內核中必須嵌入系統中出現的每一個外設的驅動, 從硬盤驅動到鍵盤和磁帶驅動器.
五、網絡功能
 網絡必須由操做系統來管理, 由於大部分網絡操做不是特定於某一個進程: 進入系統的報文是異步事件. 報文在某一個進程接手以前必須被收集, 識別, 分發. 系統負責在程序和網絡接口之間遞送數據報文, 它必須根據程序的網絡活動來控制程序的執行. 另外, 全部的路由和地址解析問題都在內核中實現.小程序

3、常見Linux的發行版,不一樣發行版之間的聯繫與區別。
主流發行版以下
1.Debian 它的分支:Ubuntu->mint\
ubuntu: 基於Debian二次開發的開源Linux操做系統,主要針對桌面和服務器。
mint:是基於ubuntu的Linux發行版,致力於桌面系統,對我的用戶來講更加的美觀和高效。windows

2.Slackware 它的分支:S.u.S.E->SLES,OpenSUSE
S.u.S.E: 是基於slackware二次開發的一款Linux,也是針對於商業桌面、服務器。
SLES:企業服務器操做系統,能夠和微軟的系統互相兼容。
OpenSuSE:由S.u.S.E發展而來,主要用於桌面環境,用戶界面很是的華麗,性能良好。
3.RedHat 它的分支RedHat 9.0-> RedHat Enterprise Linux:RHEL->CentOS:Community Enterprise OS ;Fedora
RHEL:RedHat公司發佈面向企業的Linux操做系統。
CentOS:基於RedHat提供的可自由使用源代碼的Linux版本,至關於RHEL的山寨版,主要是開源、免費,特有的社區文化促進CentOS不斷髮展完善,其本質內容上和RHEL沒有什麼區別
Fedora:能夠看作是RedHat方面的一個測試版本,主要是針對新的技術測試提供一個系統平臺,並且版本更新迭代很是的快。
4.Gentoo:基於linux的自由操做系統,它能爲幾乎任何應用程序或需求自動地做出優化和定製。追求極限的配置、性能,以及頂尖的用戶和開發者社區,都是Gentoo體驗的標誌特色,尤爲很是喜歡使用Gentoo的系統版本。
5.ArchLinux :以輕量簡潔爲設計理念的Linux發行版。其開發團隊秉承簡潔、優雅和代碼最小化的設計宗旨。 發行版之間的聯繫與區別
聯繫:全部的版本型號,不管是何種系統均採用的是Linux的內核,都須要遵循GNU的GPL協定,也就是通俗意義上的GNU/Linux。
區別:不一樣的發行版系統各自的版本號均不一樣都有本身獨特的版本號信息
例如:
RHEL:5.x,6.x,7.x
Fedora 23
Debian:8.x
OpenSuSE:13.x
同時雖然底層Linux內核同樣,但封裝後攜帶的庫以及應用程序各不相同,不一樣的包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系統,包文件以RPM爲擴展名;Ubuntu系列,Debian系列使用基於DPKG包管理系統,包文件以deb爲擴展名。)
Debian: dpkg程序包管理器,前端管理工具 apt-get Ubuntu繼承了這個管理法則) 包格式deb
ReadHat: rpm管理包, 前端管理工具yum-->新一代叫dnf CentOS繼承 包格式rpm
S.u.S.E: rpm,zyppercentos

4、常見的開源協議(GPL,LGPL, BSD,Apache等)以及開源協議的區別
GPL(GNU通用公共許可證): General Public License
大多數軟件許可證決意剝奪你共享和修改軟件的自由。相比之下,GNU通用公共許可證試圖保證你共享和修改自由軟件的自由。——保證自由軟件對全部用戶是自由的
爲了保護你的權利,咱們須要做出規定:禁止任何人不認可你的權利,或者要求你放棄這些權利。若是你修改了自由軟件或者發佈了軟件的副本,這些規定就轉化爲你的責任。
例如,若是你發佈這樣一個程序的副本,無論是收費的仍是免費的,你必須將你具備的一切權利給予你的接受者;你必須保證他們能收到或獲得源程序;而且將這些條款給他們看,使他們知道他們有這樣的權利。服務器

LGPL: Lesser GPL
任何程序員在寫程序時 調用了庫接口不用開源 。網絡

BSD許可協議(Berkeley Software Distribution license)是自由軟件中使用最普遍的許可協議之一
一、若是二次發佈的產品中包含源代碼,則在源代碼中必須帶有原來的代碼中的BSD協定;
二、若是二次發佈產品是二進制格式的庫或程序,則須要在發佈的文檔或版權聲明中說明包含原來的代碼中的BSD協定;
三、不能夠用開源代碼的做者或組織,以及原來的產品的名字作市場推廣;
跟其餘條款相比,從GNU通用公共許可證(GPL)到限制重重的著做權(Copyright),BSD許可證比較寬鬆,甚至跟公有領域更爲接近。
BSD許可證被認爲是copycenter(中間著做權),介乎標準的copyright與GPL的copyleft之間。GPL強迫後續版本必須同樣是自由軟件,BSD的後續版本能夠選擇要繼續是BSD或其餘自由軟件條款或封閉軟件等等。
許可證文本被認爲遵循公有領域,因此能夠不受限制地修改。
遵照BSD License的軟件,容許用做商業用途,甚至可按照專屬許可證進行再發布。
自由軟件做者能夠方便地採用BSD許可證下的軟件,從而跟GPL下的做品融合。
BSD許可證並不容許受讓方將其刪除或替換爲其餘許可證。
以BSD許可證受權的軟件派生著做,都必需要包含一段文字以交代源代碼的來源。GNU工程將這個稱爲「使人感到不舒服的BSD交代條款」(obnoxious BSD advertising clause)。

Apache(協定): Apache Software Foundatin Apache軟件組織基金會
Apache許可證(Apache License),是一個由Apache軟件基金會發布的自由軟件許可證,最初爲Apache http服務器而撰寫。Apache許可證要求被受權者保留著做權和放棄權利的聲明,但它不是一個反著做權的許可證。
Apache許可證是寬容的,由於它不會強制派生和修改產物使用相同的許可證進行發佈(與一些著做權許可證不一樣,參見比較)。但它仍然要求對全部未修改的部分應用相同的許可證,而且在每一個許可文件中,必須保留再分發代碼中的任何原始著做權,專利,商標和歸屬通知(不須要包括任何部分的派生做品);而且在每一個更改的許可文件中,都必須添加一條通知,說明對該文件進行了更改。

若是聲明文本文件做爲原始做品發佈的一部分包含在內,則派生做品必須在包含該通知文本文件的可讀副本,能夠是文檔或顯示在軟件中。

聲明文件的內容不會修改許可證,由於它們僅用於提供信息,而且能夠在許可證文本中添加更多屬性聲明,前提是這些聲明不能被理解爲修改許可證。修改可能有適當的著做權聲明,並可能爲修改提供不一樣的許可條款。

除非另有明確規定,不然許可證持有者向受權者提交的任何文稿將根據許可證的條款進行,沒有任何條款和條件,但這並不排除與受權者有關的這些貢獻有單獨的協議。
Apache軟件基金會與自由軟件基金會都贊成Apache許可證屬於自由軟件許可證,且兼容於第三版的GNU通用公共許可證,不過,雙方也都贊成,初版與第二版的GNU通用公共許可證並不兼容於Apache許可證。

5、Linux的哲學思想
一、一切皆文件:
把幾乎全部的資源通通抽象爲文件形式;包括硬件設備,甚至通訊接口等;
open(),read(),Write(),close(),delete(),create()
硬件設備也可經過文件表示:
物理終端:/dev/console
虛擬終端:/dev/tty# [1-6] #表示數字1到6之間
串行終端:/dev/ttyS#
僞終端:/dev/pts/#
二、由衆多功能單一的程序組成;一個程序只作一件事,而且作好;
組合小程序完成複雜任務;
三、儘可能避免跟用戶交互;
目標:易於以編程的方式實現自動化任務;
四、使用文本文件保存配置信息;

6、linux目錄結構以及目錄結構命名規定
目錄結構是爲了將衆多的文件有效的組織起來
Linux目錄是一個倒置樹狀結構
目錄:路徑映射;
文件:存儲空間存儲的一旦流式數據,對數據能夠作到按名存取(有邊界的磁盤上的一段數據流);
文件系統:層級結構,有索引;
/:原初起點,根,根目錄;
/ 第二層結構(子目錄)/第三層結構
examlple
/dev/pst/2:
最左側/:表示根目錄
其它的/:表示路徑分隔符
Linux的路徑分隔符是/(windows的路徑分隔符是\)
文件的路徑表示:
絕對路徑:從根開始表示出的路徑
相對路徑:從當前位置開始表示出的路徑

文件名使用法則:
1.嚴格區分字符大小寫:file1,File1,FILE1都不是同一個文件
2.目錄也是文件,在同一路徑下,兩個文件不能同名,linux下的文件目錄和文件名不能同名(一切皆文件)
3.支持使用除/之外的任意字符;
4.最長不能超過255個字符;

用戶有家目錄:home,
用戶的起始目錄:普通用戶管理文件的位置

工做目錄:

/etc/sysconfig/network-scripts/ifcfg-ens33
basename:最右側的文件或目錄; (基名)
dirname: basename左側的路徑: (目錄名)
命令:
~]# basename /PATH/TO/SOMEFILE
SOMEFILE
~]# dirname /PATH/TO/SOMEFELE
/PATH/TO

參考資料
| 目錄/文件 | 用途 | 來源 |

| / | /處於Linux文件系統樹形結構的最頂端,它是Linux文件系統的入口 | 全部的目錄、文件、設備都在/之下 |

| /bin | 該目錄存放着系統最經常使用的最重要的命令 ,是以獨立的文件形式存在 | 這個目錄中的文件都是可執行的而且是普通用戶均可以使用的命令 ,做爲系統最基礎的命令都放在這裏 | binary |

| /usr | 該目錄是系統存放程序的地方,好比普通命令、幫助文件、安裝的軟件等,當咱們安裝一個Linux發行版官方提供的軟件包時,大多安裝在這裏 | /usr目錄下包括涉及字體目錄/usr/share/fonts、幫助目錄/usr/share/man或/usr/share/doc等 | unix shared resource |

| /var | 該目錄的內容是常常變更的 | /var下有/var/log目錄用來存放系統日誌的目錄,/var/www目錄用來定義Apache服務器站點存放目錄,/var/lib用來存放一些庫文件 | variable |

| /sbin | 大多數涉及系統管理的命令都存放在該目錄中,它是超級權限用戶root的可執行命令存放地 | 凡是目錄sbin中包含的命令都是root權限才能執行的 | super user binary |

| /root | Linux超級權限用戶(系統管理員)root的主目錄 |

| /home | 普通用戶的主目錄都默認存放在該目錄中 |

| /etc | 該目錄是系統配置文件的所在地 | 一些服務器的配置文件也在這裏 | etcetera |

| /dev | 設備文件存儲目錄 | 該目錄下是全部Linux的外部設備文件 | device |

| /boot | 存放Linux的內核及引導系統的程序所須要的文件 |

| /opt | 該目錄是可選的軟件包安裝目錄 | optional |

| /tmp | 該目錄用於存放臨時文件 | temporary |

| /lib | 該目錄用於存放庫文件 | 這個目錄裏存放着系統最基本的共享庫 | library |

| /mnt | 該目錄是用於存放掛載儲存設備的掛載目錄的 | mount |

| /proc | 操做系統運行時進程(正在運行中的程序)信息及內核信息(好比cpu、硬盤分區、內存信息等)存放處 | /proc目錄是假裝的文件系統proc的掛載目錄,咱們能夠經過直接訪問這個目錄來獲取系統信息 | process |

相關文章
相關標籤/搜索