1. 程式人生 > >馬哥linux作業--第一週

馬哥linux作業--第一週

Q1:描述計算機的組成及其功能。

現在計算機的體系結構為馮•諾依曼體系結構,在此體系結構中,計算機由五大部份組成,分別是:運算器控制器儲存器輸入裝置輸出裝置(其中運算器和控制器共同組成CPU)。五大組成部分功能如下:

  • 運算器:用於完成算術運算和邏輯運算。
  • 控制器:協調和指揮整個計算機系統的操作。
  • 儲存器:又分為內部儲存器(記憶體)和外部儲存器(硬碟)。記憶體容量小,速度快,用於存放程式執行過程和產生的臨時資料,但掉電內容易失;硬碟容量大,速度慢,但其儲存是永久性的,用來長期儲存資料。
  • 輸入裝置:將要處理的資料或訊號輸入到計算機中,比如鍵盤、滑鼠。
  • 輸出裝置:計算機將處理結果輸出到輸出裝置,比如顯示器。

Q2:描述核心功能以及作用。

  • 程序管理
  • 記憶體管理
  • 硬體管理
  • 檔案系統管理
  • 網路功能
  • 安全管理

Q3:按系列羅列常見Linux的發行版本,並描述不同發行版的聯絡與區別。

  • slackware
    • SUSE
    • OpenSuse
  • debian
    • ubuntu
    • mint
  • redhat
    • RedHat Enterprise Linux
    • Fedora
    • CentOs
  • Gentoo
  • ArchLinux
  • LFS(Linux From Scratch)
    各發行版本都是基於Linux核心,基礎功能相同,各發行版本可自行新增新功能;配置檔案和一些裝置的名字等可能也有一些差異。

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

  • GPL(General Public License):使用的GPL協議的程式,可以自由修改原始碼,但是必須開源,且採用GPL許可證。
  • LGPL(Lesser General Public License):使用LGPL協議的程式,不必開源,但是如果修改了原始碼,則修改的和衍生的程式碼都要採用LGPL協議
  • BSD(Berkeley Software Distribution):可以自由的使用和修改原始碼,但是必須包含原始碼中是BSD協議,並且不能用原始碼的作者的名義做推廣。
  • Apache:c可以自由的使用和修改原始碼,但是必須在修改的檔案中說明,且要帶上原有的協議說明。

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

  • 一切皆檔案:在Linux中,所有東西(包括硬體裝置)都被抽象為檔案(目錄是一種特殊的檔案),可以用操作檔案(目錄)的方式操作所有東西。
  • 配置檔案都是TEXT文字:所以的配置檔案,都是Human Readable的純文字檔案。
  • 每個程式都儘量簡單,功能單一:複雜的功能(包括Linux本身)都是由一個個小型的、功能單一的程式組成。
  • 儘量減少或不跟使用者互動:所有程式執行時的資料,通過引數的形式給出(或帶有預設值),而不是在執行過程中,再跟使用者互動。

Q6:描述Linux目錄結構以及目錄結構命名規定。

Linux的檔案系統是rootfs,即根檔案系統,目錄的組織方式是FHS,即Filesystem Hierarchy Standard,規定了每個發行版的檔案系統必須有的目錄和檔案。

  • FHS各目錄介紹
    • /boot:系統啟動相關的檔案,如核心、initrd、grub(bootloader)
    • /dev:裝置檔案
    • /etc:配置檔案
    • /home:使用者主目錄
    • /root:root的主目錄
    • /lib:庫檔案和核心模組檔案(/lib/modules)
    • /media:掛載點目錄(移動裝置)
    • /mnt:掛載點目錄(額外的臨時檔案系統)
    • /misc:雜項
    • /opt:可選目錄,第三方程式的安裝目錄
    • /proc:偽檔案系統,核心對映檔案
    • /sys:偽檔案系統,跟硬體裝置相關的屬性對映檔案
    • /tmp:臨時檔案
    • /var:可變化的檔案
    • /bin:可執行檔案,使用者命令
    • /sbin:可執行檔案,管理命令
    • /usr:
      • /usr/bin
      • /usr/sbin
      • /usr/lib
      • /usr/local(第三方,非必須)
        • /usr/local/bin
        • /usr/local/sbin
        • /usr/local/lib