linux 基础知识点杂项记
一、計(jì)算機(jī)系統(tǒng)的組成
??計(jì)算機(jī)系統(tǒng)可以大體分為兩部分,由硬件系統(tǒng)和軟件系統(tǒng)組成。
1.1、馮·諾依曼體系概述
??有個(gè)對(duì)計(jì)算機(jī)貢獻(xiàn)很大的人,我們一定要記住他的名字,叫約翰.馮.諾伊曼。他是匈牙利出生的美國(guó)猶太人,他在普林斯頓大學(xué)期間,從數(shù)學(xué)意義上總結(jié)了量子力學(xué)的發(fā)展,出版了《量子力學(xué)的數(shù)學(xué)基礎(chǔ)》,這本書算是一部著作。他在物理學(xué),數(shù)學(xué)、計(jì)算機(jī)等領(lǐng)域都做出過杰出的貢獻(xiàn)。他在計(jì)算機(jī)領(lǐng)域的貢獻(xiàn)更是顯著,提出來計(jì)算機(jī)內(nèi)部最主要的結(jié)構(gòu)原理--存儲(chǔ)程序原理,確定計(jì)算機(jī)基本部件由五個(gè)主要部分組成,即運(yùn)算器、控制器、存儲(chǔ)器、輸入和輸出設(shè)備。
計(jì)算機(jī)中的五大基本部件:
- CPU(運(yùn)算器、控制器),這兩大基本部件來源于CPU,其中運(yùn)算器主要是對(duì)數(shù)據(jù)進(jìn)程各種算術(shù)運(yùn)算和邏輯運(yùn)算,簡(jiǎn)單來說就是對(duì)數(shù)據(jù)進(jìn)行加工處理。而控制器是對(duì)程序規(guī)定的控制信息進(jìn)行解釋,主要是根據(jù)要求來完成控制,程序調(diào)度,數(shù)據(jù),地址,協(xié)調(diào)計(jì)算機(jī)各部分工作以及內(nèi)存與外部設(shè)備之間的訪問等等;
- 存儲(chǔ)器,主要是用來存儲(chǔ)程序、數(shù)據(jù)和各種信號(hào)、命令信息;
- 輸入(設(shè)備),主要是用來完成下達(dá)指令,提供數(shù)據(jù)輸入。將程序、原始數(shù)據(jù)、文字、字符、控制命令等輸入到計(jì)算機(jī);
- 輸出(設(shè)備),主要是用來對(duì)已經(jīng)完成數(shù)據(jù)加工后的處理的結(jié)果進(jìn)行輸出。把計(jì)算機(jī)的中間結(jié)果或最后結(jié)果、機(jī)內(nèi)的各種數(shù)據(jù)符號(hào)及文字或各種控制信息等內(nèi)容輸出并回顯出來。
1.2、硬件系統(tǒng)簡(jiǎn)單組成
主機(jī)本身
??主機(jī)部分可以簡(jiǎn)單分CPU(主要由運(yùn)算器和控制器兩部分組成)、內(nèi)存(ROM和RAM)等;
外部設(shè)備
??常見的外部設(shè)備有外部存儲(chǔ)器(數(shù)據(jù)硬盤,數(shù)據(jù)軟盤,數(shù)據(jù)光盤,數(shù)據(jù)磁帶等)、輸入設(shè)備(鍵盤和鼠標(biāo)等)、輸出設(shè)備(電腦顯示器、打印機(jī)等)、其他設(shè)備;
1.3、軟件系統(tǒng)簡(jiǎn)單組成
??軟件系統(tǒng)可以簡(jiǎn)單劃分為系統(tǒng)軟件和應(yīng)用軟件,前者主要是指我們熟知的操作系統(tǒng),后者主要是指現(xiàn)在第三方應(yīng)用程序。
1.4、cpu的生產(chǎn)公司以及類型
cpu常見的幾個(gè)生產(chǎn)公司
Intel,AMD,IBM這幾大廠商生產(chǎn)的CPU比較常見;
cpu類型
常見的cpu類型,以下是一個(gè)列表:
x86
x64
ARM
m68000(俗稱m68k)
Power
Powerpc
ultrasparc
Alpha
安騰
等
1.5、操作系統(tǒng)的概念
??操作系統(tǒng)是管理和控制計(jì)算機(jī)硬件與軟件資源的計(jì)算機(jī)程序,是直接運(yùn)行在"裸機(jī)"上的最基本的系統(tǒng)軟件。操作系統(tǒng)提供了用戶訪問計(jì)算機(jī)的接口,提供了應(yīng)用程序訪問計(jì)算機(jī)硬件資源的接口。它可以實(shí)現(xiàn)以下幾個(gè)基本功能:
- 硬件驅(qū)動(dòng)
- 進(jìn)程管理
- 內(nèi)存管理
- 網(wǎng)絡(luò)管理
- 安全管理
- 文件管理
以上每一個(gè)功能都是一個(gè)比較核心的體現(xiàn),用來更好了完成計(jì)算機(jī)提供給對(duì)外的服務(wù)工作。
可以把操作系統(tǒng)簡(jiǎn)單分為以下幾類:
服務(wù)器類的操作系統(tǒng)
桌面類的操作系統(tǒng)
移動(dòng)類的操作系統(tǒng)
??為了實(shí)現(xiàn)操作系統(tǒng)的功能管理,把操作系統(tǒng)分成了兩個(gè)層面,一個(gè)叫用戶空間(User Space),另一個(gè)叫內(nèi)核空間(Kernel Space)。
二、程序運(yùn)行原理
??我們都知道計(jì)算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)構(gòu)成,對(duì)外提供服務(wù),那么為了更好的訪問這些所謂的硬件資源,對(duì)上抽象出一個(gè)操作系統(tǒng)的模型,幫助用戶屏蔽了對(duì)底層硬件訪問的細(xì)節(jié),所有的功能都集成到操作系統(tǒng)。這些實(shí)現(xiàn),就是我們俗稱的系統(tǒng)調(diào)用(system call).系統(tǒng)調(diào)用隱藏底層對(duì)硬件資源操作的底層接口,這個(gè)接口具有通用性,也比較底層。由于系統(tǒng)調(diào)用這一層接口對(duì)于第三方應(yīng)用程序開發(fā)者來說還是具有一些難度,功能實(shí)現(xiàn)起來比較復(fù)雜,所以在提供系統(tǒng)調(diào)用的接口上又實(shí)現(xiàn)了一層接口,叫庫(kù)(library)。庫(kù)就是把系統(tǒng)調(diào)用組合起來的一些具有復(fù)雜功能的一個(gè)接口,用戶可以自行調(diào)用這些接口(有時(shí)候也要直接做系統(tǒng)調(diào)用)來完成一些功能的開發(fā)。前邊我們提到了用戶空間和內(nèi)核空間的概念,我們這里的系統(tǒng)調(diào)用,就需要在兩個(gè)狀態(tài)之間進(jìn)行切換,因?yàn)閼?yīng)用程序通常是運(yùn)行在用戶空間的,由其注冊(cè)使用底層資源都需要經(jīng)過內(nèi)核空間來分配管理,所以要從用戶態(tài)切換到內(nèi)核態(tài),然后再由內(nèi)核態(tài)切換到用戶態(tài)。
??在程序運(yùn)行原理的中,有幾個(gè)核心的概念要知道。一個(gè)叫做應(yīng)用程序二進(jìn)制接口(ABI,Application Binary Interface),另一個(gè)叫應(yīng)用程序接口(API,Application Programming Interface)。其中ABI描述了應(yīng)用程序與操作系統(tǒng)之間的底層接口,允許編譯好的目標(biāo)代碼在使用兼容ABI的系統(tǒng)中無需改動(dòng)就能運(yùn)行。而API定義了源代碼和庫(kù)之間的接口,因此同樣的源代碼可以在支持這個(gè)API的任何系統(tǒng)中編譯。
三、linux 主流發(fā)行及分支
3.1、主流的三大分支以及其他兩個(gè)比較新的發(fā)行分支
- debian系列
Debian系列是社區(qū)維護(hù)中,最大的一個(gè)主流分支。其下發(fā)展發(fā)行版本分支不計(jì)其數(shù)。
其下發(fā)展分支中有個(gè)比較有名的叫ubuntu的發(fā)行版本,比較受歡迎,特別是其圖形界面
做的比較漂亮。Debian采用apt-get/dpkg包管理方式。Debian有三個(gè)版本:
摘抄地址
1> 測(cè)試版本(unstable)
最新的測(cè)試版本,其中包括最新的軟件包,但是也有相對(duì)較多的bug,適合桌面用戶。
2> 次穩(wěn)定版本(testing)
經(jīng)過unstable中的測(cè)試,相對(duì)較為穩(wěn)定,也支持了不少新技術(shù)。
3> 穩(wěn)定版本(stable)
一般只用于服務(wù)器,上面的軟件包大部分都比較過時(shí),但是穩(wěn)定和安全性都非常的高
-
slackware系列
slackware使一個(gè)比較獨(dú)特的系列,也是一個(gè)相對(duì)比較古老的系列。它堅(jiān)持自己原則,很多設(shè)計(jì)遵循自己原先的思想。用戶上手難度較高。它沒有成熟的包管理器。它只吸收穩(wěn)定版本的引用程序?;谒挠袀€(gè)比較有名的發(fā)行版本叫S.U.S.E。SUSE版本分為:
SUSE企業(yè)版本:SLES(Suse Linux Enterprise Server)
SUSE個(gè)人版本(桌面版本):openSUSE - redhat系列
redhat系列早起是做桌面版的,后來發(fā)展自己企業(yè)版本之路。為了遵循GNU許可證協(xié)定。商業(yè)發(fā)展之路,賣服務(wù)。
RHEL(Redhat Enterprise Linux,redhat企業(yè)版本,redhat收費(fèi)版本);
CentOS(RHEL的社區(qū)克隆版本,免費(fèi)的,后來被redhat招安,目前依然處于社區(qū)維護(hù)以及免費(fèi)開源中,也是現(xiàn)在各大企業(yè)非常青睞的一個(gè)發(fā)行版)
Fedora Core(早起redhat桌面版發(fā)展而來,現(xiàn)在也越來越好了)
redhat系列基于rpm包管理器。
其他兩個(gè)新貴當(dāng)屬Gentoo系列和ArchLinux系列
Gentoo系列包管理器為Portage;
ArchLinux系列沿襲了slackware系列遵循KISS原則,也沒有成型的包管理器。
關(guān)于更多介紹的,可以參考其他博友寫的:
http://www.edrawsoft.cn/linux-classify-function/
這里有三張圖譜,可以簡(jiǎn)單參考一下。圖片來源于:
圖片出處
-
紅帽系列
-
slackware系列
- debian系列
最新圖譜官網(wǎng)鏈接地址
直接在上查看的最近的所有發(fā)行版的圖譜(2012年10月29號(hào)的)
http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.svg
3.2、不同發(fā)行版本之間的聯(lián)系
??所有的linux的發(fā)行版本都是基于linux內(nèi)核基礎(chǔ)上衍生過來的。所有的發(fā)行版都要遵循GNU GPL(GNU General Public License,GNU通用公共許可證)。不同發(fā)行版本之前都有類似于版本號(hào)格式,其幾乎
都是類似于 "主版本號(hào).次版本號(hào).發(fā)型號(hào).修訂號(hào)"。
3.3、不同發(fā)行版本之間的區(qū)別
??由于不同發(fā)行版本,linux內(nèi)核都一樣,在于其所依托于的庫(kù),程序。不同發(fā)行廠商,會(huì)根據(jù)主流
的不同,采用不同的包管理器。這些發(fā)行廠商,有些屬于純社區(qū)維護(hù),有些屬于純商業(yè)維護(hù),有些屬于半社區(qū),半商業(yè)維護(hù),所以才有各種不同的差異性。
四、linux 如何獲取幫助文檔信息以及說明
4.1、內(nèi)建命令與外部命令
內(nèi)建命令是shell程序的一部分,比如cd,file
所有的內(nèi)建命令: :, ., [, 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以上所有內(nèi)建命令都要知道含義,90%的能夠輕松使用才算合格。
外部命令:
例如ls,ip,ss等
-
如何查看一個(gè)命令屬于外部命令還是屬于內(nèi)建命令,請(qǐng)看案例:
[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 - 如何查看內(nèi)建命令與外部命令的幫助手冊(cè) 內(nèi)建命令用help來查詢,例如: help cd 或者通過man bash然后通過檢索關(guān)鍵字的形式來搜索到我們要了解的內(nèi)建命令的 幫助信息。 對(duì)于外部命令,我們使用man來查詢其用法。
4、關(guān)于man手冊(cè)
-
使用手冊(cè)位置
/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手冊(cè)的部分
- man手冊(cè)章節(jié)
| man1 | 用戶命令 |
| man2 | 系統(tǒng)調(diào)用 |
| man3 | C庫(kù)調(diào)用 |
| man4 | 設(shè)備文件以及特殊文件 |
| man5 | 文件格式(配置文件格式) |
| man6 | 自帶益智類游戲使用幫助 |
| man7 | 雜項(xiàng)幫助 |
| man8 | 管理工具及守護(hù)進(jìn)程類的幫助 |
如何按照章節(jié)使用man手冊(cè)?
man 數(shù)字 命令
-
man手冊(cè)中利用快捷鍵
翻屏: 空格鍵:向文件尾部翻一屏; b:向文件首部翻一屏; Ctrl+d:向文件尾部翻半屏; Ctrl+u:向文件首部翻半屏; 回車鍵:向文件尾部翻一行; k:向文件首部翻一行; G:跳轉(zhuǎn)至最后一行; #G:跳轉(zhuǎn)至指定行,#是一個(gè)數(shù)字; 1G:跳轉(zhuǎn)至文件首部;文本搜索:/keyword : 從文件首部向文件尾部依次查找;不區(qū)分字符大小寫;?keyword : 從文件尾部向文件首部依次查找;n:與查找命令方向相同;N:與查找命令方向相反;退出:q:quit
轉(zhuǎn)載于:https://blog.51cto.com/9657273/2164518
總結(jié)
以上是生活随笔為你收集整理的linux 基础知识点杂项记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM源码分析之安全点safepoint
- 下一篇: IDEA Project Structu