linux 基礎知識點雜項記

一、計算機系統的組成

  計算機系統可以大體分爲兩部分,由硬件系統和軟件系統組成。

1.1、馮·諾依曼體系概述

  有個對計算機貢獻很大的人,我們一定要記住他的名字,叫約翰.馮.諾伊曼。他是匈牙利出生的美國猶太人,他在普林斯頓大學期間,從數學意義上總結了量子力學的發展,出版了《量子力學的數學基礎》,這本書算是一部著作。他在物理學,數學、計算機等領域都做出過傑出的貢獻。他在計算機領域的貢獻更是顯著,提出來計算機內部最主要的結構原理--存儲程序原理,確定計算機基本部件由五個主要部分組成,即運算器、控制器、存儲器、輸入和輸出設備。

計算機中的五大基本部件:

  • CPU(運算器、控制器),這兩大基本部件來源於CPU,其中運算器主要是對數據進程各種算術運算和邏輯運算,簡單來說就是對數據進行加工處理。而控制器是對程序規定的控制信息進行解釋,主要是根據要求來完成控制,程序調度,數據,地址,協調計算機各部分工作以及內存與外部設備之間的訪問等等;
  • 存儲器,主要是用來存儲程序、數據和各種信號、命令信息;
  • 輸入(設備),主要是用來完成下達指令,提供數據輸入。將程序、原始數據、文字、字符、控制命令等輸入到計算機;
  • 輸出(設備),主要是用來對已經完成數據加工後的處理的結果進行輸出。把計算機的中間結果或最後結果、機內的各種數據符號及文字或各種控制信息等內容輸出並回顯出來。

1.2、硬件系統簡單組成

主機本身

  主機部分可以簡單分CPU(主要由運算器和控制器兩部分組成)、內存(ROM和RAM)等;

外部設備

  常見的外部設備有外部存儲器(數據硬盤,數據軟盤,數據光盤,數據磁帶等)、輸入設備(鍵盤和鼠標等)、輸出設備(電腦顯示器、打印機等)、其他設備;

1.3、軟件系統簡單組成

  軟件系統可以簡單劃分爲系統軟件和應用軟件,前者主要是指我們熟知的操作系統,後者主要是指現在第三方應用程序。

1.4、cpu的生產公司以及類型

cpu常見的幾個生產公司

Intel,AMD,IBM這幾大廠商生產的CPU比較常見;

cpu類型

常見的cpu類型,以下是一個列表:
x86
x64
ARM
m68000(俗稱m68k)
Power
Powerpc
ultrasparc
Alpha
安騰

1.5、操作系統的概念

  操作系統是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在"裸機"上的最基本的系統軟件。操作系統提供了用戶訪問計算機的接口,提供了應用程序訪問計算機硬件資源的接口。它可以實現以下幾個基本功能:

  • 硬件驅動
  • 進程管理
  • 內存管理
  • 網絡管理
  • 安全管理
  • 文件管理
    以上每一個功能都是一個比較核心的體現,用來更好了完成計算機提供給對外的服務工作。

可以把操作系統簡單分爲以下幾類:
服務器類的操作系統
桌面類的操作系統
移動類的操作系統

  爲了實現操作系統的功能管理,把操作系統分成了兩個層面,一個叫用戶空間(User Space),另一個叫內核空間(Kernel Space)。

二、程序運行原理

  我們都知道計算機系統由硬件系統和軟件系統構成,對外提供服務,那麼爲了更好的訪問這些所謂的硬件資源,對上抽象出一個操作系統的模型,幫助用戶屏蔽了對底層硬件訪問的細節,所有的功能都集成到操作系統。這些實現,就是我們俗稱的系統調用(system call).系統調用隱藏底層對硬件資源操作的底層接口,這個接口具有通用性,也比較底層。由於系統調用這一層接口對於第三方應用程序開發者來說還是具有一些難度,功能實現起來比較複雜,所以在提供系統調用的接口上又實現了一層接口,叫庫(library)。庫就是把系統調用組合起來的一些具有複雜功能的一個接口,用戶可以自行調用這些接口(有時候也要直接做系統調用)來完成一些功能的開發。前邊我們提到了用戶空間和內核空間的概念,我們這裏的系統調用,就需要在兩個狀態之間進行切換,因爲應用程序通常是運行在用戶空間的,由其註冊使用底層資源都需要經過內核空間來分配管理,所以要從用戶態切換到內核態,然後再由內核態切換到用戶態。

  在程序運行原理的中,有幾個核心的概念要知道。一個叫做應用程序二進制接口(ABI,Application Binary Interface),另一個叫應用程序接口(API,Application Programming Interface)。其中ABI描述了應用程序與操作系統之間的底層接口,允許編譯好的目標代碼在使用兼容ABI的系統中無需改動就能運行。而API定義了源代碼和庫之間的接口,因此同樣的源代碼可以在支持這個API的任何系統中編譯。

三、linux 主流發行及分支

3.1、主流的三大分支以及其他兩個比較新的發行分支

  • debian系列
    Debian系列是社區維護中,最大的一個主流分支。其下發展發行版本分支不計其數。
    其下發展分支中有個比較有名的叫ubuntu的發行版本,比較受歡迎,特別是其圖形界面
    做的比較漂亮。Debian採用apt-get/dpkg包管理方式。Debian有三個版本:

摘抄地址
1> 測試版本(unstable)
最新的測試版本,其中包括最新的軟件包,但是也有相對較多的bug,適合桌面用戶。
2> 次穩定版本(testing)
經過unstable中的測試,相對較爲穩定,也支持了不少新技術。
3> 穩定版本(stable)
一般只用於服務器,上面的軟件包大部分都比較過時,但是穩定和安全性都非常的高

  • slackware系列
    slackware使一個比較獨特的系列,也是一個相對比較古老的系列。它堅持自己原則,很多設計遵循自己原先的思想。用戶上手難度較高。它沒有成熟的包管理器。它只吸收穩定版本的引用程序。基於它的有個比較有名的發行版本叫S.U.S.E。SUSE版本分爲:
    SUSE企業版本:SLES(Suse Linux Enterprise Server)
    SUSE個人版本(桌面版本):openSUSE

  • redhat系列
    redhat系列早起是做桌面版的,後來發展自己企業版本之路。爲了遵循GNU許可證協定。商業發展之路,賣服務。
    RHEL(Redhat Enterprise Linux,redhat企業版本,redhat收費版本);
    CentOS(RHEL的社區克隆版本,免費的,後來被redhat招安,目前依然處於社區維護以及免費開源中,也是現在各大企業非常青睞的一個發行版)
    Fedora Core(早起redhat桌面版發展而來,現在也越來越好了)
    redhat系列基於rpm包管理器。

其他兩個新貴當屬Gentoo系列和ArchLinux系列
Gentoo系列包管理器爲Portage;
ArchLinux系列沿襲了slackware系列遵循KISS原則,也沒有成型的包管理器。

關於更多介紹的,可以參考其他博友寫的:
http://www.edrawsoft.cn/linux-classify-function/

這裏有三張圖譜,可以簡單參考一下。圖片來源於:
圖片出處

  • 紅帽系列
    linux 基礎知識點雜項記

  • slackware系列
    linux 基礎知識點雜項記

  • debian系列
    linux 基礎知識點雜項記

最新圖譜官網鏈接地址
直接在上查看的最近的所有發行版的圖譜(2012年10月29號的)
http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.svg

3.2、不同發行版本之間的聯繫

  所有的linux的發行版本都是基於linux內核基礎上衍生過來的。所有的發行版都要遵循GNU GPL(GNU General Public License,GNU通用公共許可證)。不同發行版本之前都有類似於版本號格式,其幾乎
都是類似於 "主版本號.次版本號.髮型號.修訂號"。

3.3、不同發行版本之間的區別

  由於不同發行版本,linux內核都一樣,在於其所依託於的庫,程序。不同發行廠商,會根據主流
的不同,採用不同的包管理器。這些發行廠商,有些屬於純社區維護,有些屬於純商業維護,有些屬於半社區,半商業維護,所以纔有各種不同的差異性。

四、linux 如何獲取幫助文檔信息以及說明

4.1、內建命令與外部命令

內建命令是shell程序的一部分,比如cd,file

所有的內建命令:
:,  .,  [, alias, bg, bind, break, builtin, caller, cd, command, compgen, complete, compopt, continue, declare,
dirs, disown, echo, enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help, history,  jobs,  kill,  let,
local,  logout,  mapfile,  popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test,
times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait

以上所有內建命令都要知道含義,90%的能夠輕鬆使用纔算合格。

外部命令:
例如ls,ip,ss等

  • 如何查看一個命令屬於外部命令還是屬於內建命令,請看案例:

    [root@zabbix-server ~]# type ls
    ls is aliased to `ls --color=auto'
    [root@zabbix-server ~]# type ip
    ip is /usr/sbin/ip
    [root@zabbix-server ~]# type ss
    ss is /usr/sbin/ss
    [root@zabbix-server ~]# type cd
    cd is a shell builtin
    [root@zabbix-server ~]# type [
    [ is a shell builtin
    [root@zabbix-server ~]# whatis cd
    cd (1)               - bash built-in commands, see bash(1)
    [root@zabbix-server ~]# whatis ls
    ls (1)               - list directory contents
  • 如何查看內建命令與外部命令的幫助手冊
    內建命令用help來查詢,例如:
    help cd
    或者通過man bash然後通過檢索關鍵字的形式來搜索到我們要了解的內建命令的
    幫助信息。
    對於外部命令,我們使用man來查詢其用法。

4、關於man手冊

  • 使用手冊位置

    /usr/share/man
    [root@zabbix-server ~]# cd /usr/share/man/
    [root@zabbix-server man]# ls
    cs  de  fr  id  ja  man0p  man1p  man2   man3   man3x  man4x  man5x  man6x  man7x  man8x  man9x  pl  pt_BR  sk  tr     zh_TW
    da  es  hu  it  ko  man1   man1x  man2x  man3p  man4   man5   man6   man7   man8   man9   mann   pt  ru     sv  zh_CN
  • man手冊的部分
            SECTION:
                NAME:功能性說明
                SYNOPSIS:語法格式
                DESCRIPTION:描述
                OPTIONS:選項
                EXAMPLES:使用示例
                AUTHOR:作者
                BUGS:報告程序bug的方式
                SEE ALSO:參考

            SYNOPSIS:
                [] : 可選內容;
                <> : 必須提供的內容;
                a|b|c : 多選一;
                ... : 同類內容可出現多個;
  • man手冊章節
章節名 章節含義介紹
man1 用戶命令
man2 系統調用
man3 C庫調用
man4 設備文件以及特殊文件
man5 文件格式(配置文件格式)
man6 自帶益智類遊戲使用幫助
man7 雜項幫助
man8 管理工具及守護進程類的幫助

如何按照章節使用man手冊?
man 數字 命令

  • man手冊中利用快捷鍵

    翻屏: 
    空格鍵:向文件尾部翻一屏;
    b:向文件首部翻一屏;
    Ctrl+d:向文件尾部翻半屏;
    Ctrl+u:向文件首部翻半屏;
    回車鍵:向文件尾部翻一行;
    k:向文件首部翻一行;
    G:跳轉至最後一行;
    #G:跳轉至指定行,#是一個數字;
    1G:跳轉至文件首部;
    
    文本搜索:
            /keyword : 從文件首部向文件尾部依次查找;不區分字符大小寫;
            ?keyword : 從文件尾部向文件首部依次查找;
            n:與查找命令方向相同;
            N:與查找命令方向相反;
    
    退出:
         q:quit
發佈了39 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章