Linux 基礎知識

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

硬件

運算器的功能:實現算術運算和邏輯運算(與控制器組成CPU)。

存儲器的功能:將輸入設備接收到的信息以二進制的數據形式存到存儲器中。

控制器的功能:將指令逐條從存儲器中取出,經譯碼分析後向全機發出相應的操作控 制信號作用於其他部件,使各部件有條不紊地協調工作(與運算器組成CPU)。

輸入設備的功能 :將數據、程序、文字符號、圖象、聲音等信息輸送到計算機中。

輸出設備的功能 :將計算機的運算結果或者中間結果打印或顯示出來。

軟件

操作系統

應用系統

二、內核功能以及作用

一種開源的類Unix操作系統宏內核。
Linux 基礎知識

基本系結構
Linux 基礎知識

  • 系統調用接口:提供了某些機制執行從用戶空間到內核的函數調用。
  • 進程管理:重點是進程的執行,還包括處理活動進程之間共享 CPU 的需求。
  • 內存管理:管理可用內存的方式,以及物理和虛擬映射所使用的硬件機制。
  • 虛擬文件系統:爲文件系統提供了一個通用的接口抽象。VFS 在 SCI 和內核所支持的文件系統之間提供了一個交換層。
  • 網絡堆棧:IP)是傳輸協議(通常稱爲傳輸控制協議或 TCP)下面的核心網絡層協議。TCP 上面是 socket 層,它是通過 SCI 進行調用的。
  • 設備驅動程序:能夠運轉特定的硬件設備。
  • 依賴體系結構的代碼:包含了各種特定於體系結構的子目錄(共同組成了 BSP)

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

  • Redhat系列:RHEL、Fedora CentOS
  • Debian系列:Debian和Ubuntu
  • Gentoo
  • SuSE
  • Android

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

GPL(GNU General Public License):
GPL協議的主要內容是只要在一個軟件中使用("使用"指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的"傳染性"。GPL協議的產品作爲一個單獨的產品使用沒有任何問題,還可以享受免費的優勢。
由於GPL嚴格要求使用了GPL類庫的軟件產品必須使用GPL協議,對於使用GPL協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/採用作爲類庫和二次開發的基礎。其它細節如再發布的時候需要伴隨GPL協議等和BSD/Apache等類似。

LGPL(GNU Lesser General Public License):
LGPL 是GPL的一個爲主要爲類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須採用GPL協議不同。LGPL允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得采用LGPL協議的開源代碼可以被商業軟件作爲類庫引用併發布和銷售。
但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須採用LGPL協議。因此LGPL協議的開源代碼很適合作爲第三方類庫被商業軟件引用,但不適合希望以LGPL協議代碼爲基礎,通過修改和衍生的方式做二次開發的商業軟件採用。
GPL/LGPL都保障原作者的知識產權,避免有人利用開源代碼複製並開發類似的產品

BSD(Berkeley Software Distribution)協議:

1、如果二次發佈的產品中包含源代碼,則在源代碼中必須帶有原來的代碼中的BSD協定;

2、如果二次發佈產品是二進制格式的庫或程序,則需要在發佈的文檔或版權聲明中說明包含原來的代碼中的BSD協定;

3、不可以用開源代碼的作者或組織,以及原來的產品的名字做市場推廣;

Apache Licence:

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

1、需要給代碼的用戶一份Apache Licence

2、如果你修改了代碼,需要在被修改的文件中說明。

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

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

五、Linux的哲學思想

  • 一切皆文件
  • 單一小程序
  • 避免與用戶交互
  • 提供機制,而非策略

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

Linux目錄結構(倒置樹狀結構):

文件系統的層次結構標準FHS(Filesystem Hierarchy Standard)

/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:usr Hierarchy,全局共享的只讀數據路徑;

              bin, sbin

              lib, lib64

              include:C程序頭文件;

              share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置

              local:另一個層級目錄;

              X11R6:X-Window程序的安裝位置

              src:程序源碼文件的存儲位置

         /usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用於安裝第三方程序;

         /var:/var Hierarchy,存儲常發生變化的數據的目錄;

              cache    Application cache data

              lib      Variable state information

              local    Variable data for /usr/local

              lock Lock files

              log      Log files and directories

              opt      Variable data for /opt

              run      Data relevant to running processes

              spool    Application spool data

              tmp      Temporary files preserved between system reboots

         /proc:基於內存的虛擬文件系統,用於爲內核及進程存儲其相關信息;它們多爲內核參數,例如net.ipv4.ip_forward, 虛擬爲net/ipv4/ip_forward, 存儲於/proc/sys/, 因此其完整路徑爲/proc/sys/net/ipv4/ip_forward;

         /sys:sysfs虛擬文件系統提供了一種比proc更爲理想的訪問內核數據的途徑;其主要作用在於爲管理Linux設備提供一種統一模型的的接口;

Linux目錄命令規定:

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

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

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

最長不能超過255個字符;

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