1.計算機的組成及其功能:
從1946年第一臺通用計算機ENIAC誕生至今,幾乎所有的計算機系統都是建立在馮諾依曼體系結構上的。那么何為馮諾依曼體系結構?
馮諾依曼體系結構:
控制器:是整個計算機的中樞,負責計算機的整體調度工作,將指令從存儲器中取出,并對指令進行解釋執行。
運算器:對數據進行加工,完成算術運算,邏輯運算。
存儲器:基于二進制格式對指令和數據進行存儲。
輸入設備:提供數據給存儲器,如:硬盤,鼠標,鍵盤等。
輸出設備:輸出數據處理后的結果,展示給用戶,如:顯示器,打印機等。
補充知識點:
1.通常我們所說的CPU是由控制器,運算器,寄存器,緩存組成,核心是控制器和運算器。
2.內存是以8 bits為單位來存儲數據的,對于32位CPU,總共能尋址2的32次方個以8 bits為單位的內存,因此32位CPU最大支持4GB內存,計算過程如下:
8 bits * 2^32 = 1KB * 2^10 * 2^10 * 2^10 * 4 = 4GB
2.Linux發展史:
1969年,Ken Thompson 利用匯編語言開發了FIle Server System(Unics,即Unix的原型)。
1973年,Dennis Ritchie和Ken Thompson發明C語言,并通過C語言重寫了Unix的內核。
1977年,Berkeley大學的Bill Joy針對他的機器修改Unix源碼,稱為BSD(Berkeley Software Distribution)
1985年,Richard Stallman創立GNU組織(GNU is Not Unix),旨在創建一套完全自由的操作系統。
1991年,Linus Torvalids基于Minix開發了Linux內核,并在之后通過整合各種GNU組件形成了如今我們通常所說的Linux系統即:Linux內核+GNU應用程序。
Linux發行版三大分支:
發行版由個人,松散組織的團隊,以及商業機構和志愿者組織編寫。一個典型的Linux發行版包括:Linux內核,一些GNU程序庫和工具,命令行shell,圖形界面的X Window系統和相應的桌面環境,如KDE或GNOME,并包含數千種從辦公套件,編譯器,文本編輯器到科學工具的應用軟件。目前Linux發行版主要有三大分支:
a.Redhat
目前最著名的Linux發行版,包括RHEL(Redhat Enterprise Linux,收費版本),FedoraCore(由原來的Redhat桌面版本發展而來,免費版本),Centos(Community ENTerprise Operating System,免費版本)由RHEL的源代碼編譯而成。
b.Debian
主要包括Debian和Ubuntu等。Debian是社區類Linux的典范,是迄今為止最遵循GNU規范的Linux系統。Debian最具特色的是apt-get/dpkg包管理方式,Redhat的YUM也是在模仿Debian的APT方式,但是在二進制文件發行方式中,APT應該是最好的。其后的Linux Mint也是在Ubuntu的基礎上開發而來,是一款專門為PC和X86電腦設計的操作系統。
c.Slackware
Slackware體系中,最著名的莫過于德國公司開發的SuSE發行版系統,主要包括:SLES(SuSE Linux Enterprise,企業版)和社區版open suse。
發行版之間的聯系:
-
各發行版本采用Linux的內核(kernel)
-
各發行版本遵循GPL版權協定
-
各發行版本遵循Linux Standard Base(LSB)等標準來開發
-
各發行版均遵循FHS(File system Hierarchy Standard)標準規范
發行版之間的區別:
各發行版的包管理系統不同,如:Ubuntu的apt-get,紅帽的yum,Gentoo的源碼編譯。
3.Linux哲學:
-
一切皆文件,不僅普通的文件,目錄、字符設備、塊設備、套接字等在Unix/Linux中都是以文件被對待;它們雖然類型不同,但是對其提供的卻是同一套操作界面。
-
避免令人困惑的用戶界面,所有的操作均可以通過簡潔的命令行實現排錯,修改系統的配置,一切都是簡潔明了為基礎。
-
配置文件保存在文本文件中,無論什么配置修改都只需修改其配置文件即可,配置文件時文本形式的只需任意一款文本編輯器修改即可而不是類似于windows那樣將保存在注冊表中,并且windows的注冊表需要專門的二進制或十六進制的編輯器才可編輯,修改比較復雜。
4.Linux上命令的使用規則:
命令的通用語法:COMMAND OPTIONS ARGUMENTS
a.COMMAND:
命令在本質上是一個可執行的二進制格式文件,發起命令的過程其實就是請求內核將某個二進制程序運行為一個進程在內存中。程序是靜態的,而進程是動態的。
多數程序文件存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
普通命令:/bin,/usr/bin,/usr/local/bin
管理命令:/sbin,/usr/sbin,/usr/local/sbin
共享庫文件存放在:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
32位庫文件:/lib,/usr/lib,/usr/local/lib
64位庫文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
額外知識點:
1.并非所有的命令都有一個在某目錄與之對應的可執行程序文件,如ls是有,但是cd并沒有。其原因在于ls是外部命令,而cd是shell內置的命令??梢酝ㄟ^type命令去區分。
2.為什么輸入在任何地方ls就可以直接調用/bin/ls,其原因在于linux中定義的PATH環境變量,當鍵入一個命令后,shell會自動在PATH定義的各個目錄自左而右去尋找同名的命令程序,并執行。
b.OPTIONS:
指定命令的運行特性,選項有兩種表現形式:
短選項:-C,-l,如果同一個命令使用多個短選項,多數可合并
長選項:–word,–color,長選項不能合并
注意:有些選項可以帶參數,此稱為選項參數。
c.ARGUMENTS:
命令的作用對象
注意:不同的命令帶的參數不同,有些命令可以帶多個參數,參數之間用空格區分。
常用命令舉例:
ifconfig:
作用:查看當前系統中所有激活的網卡的狀態,如IP地址,MAC地址,流量等。
語法:ifconfig [interface]
示例:ifconfig eth0
echo:
作用:回顯,打印字符串
語法:echo [SHORT-OPTION]… [STRING]…
示例:echo -e hello mageedu
補充:
-n:默認情況下echo是會自動換行的,使用-n輸出內容將不換行
-e:讓轉義字符生效,如:\n,\t等
tty:
作用:查看終端設備
語法:tty [OPTION]…
示例:tty
startx:
作用:啟動圖形化界面
語法:直接在命令行鍵入,使用init 5亦可啟動圖形化界面
示例:startx
export:
作用:顯示或者設置環境變量
語法:export 變量=值
示例:export test=mageedu
pwd:
作用:顯示當前工作目錄(print working directory)
語法:直接在命令行鍵入
示例:pwd
history:
作用:查看當前shell所保存的歷史命令
語法:直接在命令行鍵入
示例:history
補充:
-c:清空歷史命令
-d:刪除指定的命令記錄
-a:將當前內存的命令歷史追加到文件中
-w:將歷史列表中的命令追加至文件中
-r:從文件到內存
shutdown:
作用:關機命令
用法:shutdown [OPTION]… TIME [MESSAGE]
示例:shudown -h now //立刻關機
poweroff:
作用:關機命令
用法:poweroff [OPTION]…
示例:poweroff
reboot:
作用:重啟主機
用法:reboot [OPTION]…
示例:reboot
hwclock:
作用:顯示或設置系統硬件時鐘
用法:hwclock [functions] [options]
示例:
hwclock -s, –hctosys 以硬件為準
hwclock -w, –systohc 以系統為準
date:
作用:顯示或設置系統時間
用法:date [OPTION]… [+FORMAT]
示例:
date +%Y%m%d%H%M%S
說明:%Y年,%m月,%d日,%H時,%M分,%S秒
date +%s
說明:從1970年1月1日0點0分0秒到當前時間的秒數,unix元年
date [MMDDhhmm[[CC]YY][.ss]]
說明:設置系統時間
5.如何獲取命令幫助:
獲取命令的使用幫助:
內部命令:help COMMAND
外部命令:
1.命令自帶簡要格式的使用幫助
#COMMAND –help
2.使用手冊:manual 在/usr/share/man
man1:普通用戶命令(普通用戶和管理員用戶都可以調用)
man2:系統調用命令
man3:C庫調用:
man4:設備文件及特殊文件
man5:文件格式(配置文件格式)
man6:游戲使用幫助
man7:雜項
man8:管理工具及守護進程
6.FHS:
FHS是Linux規定的文件系統規則,發行版都要遵循:
/bin:供所有用戶使用的基本命令程序文件
/sbin:供系統管理員使用的工具程序
/boot:內核及內核引導程序文件
/dev:特殊文件或設備文件
設備文件:
字符設備:顯示器 //線性設備,有時序
塊設備:硬盤(4k,32k),內存 //隨機設備
/etc:存放主機的配置文件,只能為靜態的,不能為二進制文件
/home:普通用戶的家目錄的集中位置
/lib:為系統啟動/bin,/sbin中的應用程序提供基本共享庫為內核提供內核模塊
/lib64:64位系統的庫文件
*.so:動態鏈接C庫
ld*:執行時鏈接器
modules:存儲內核模塊
/mnt:其他文件系統的臨時掛載點(沒有嚴格要求,可隨便掛)
/media:對便攜性設備提供掛載位置,光盤,U盤
/opt:附加程序(第三方應用程序oracle)的安裝位置
/root:管理員用戶的家目錄
/srv:當前主機為服務提供的數據,幾乎用不到
/tmp:存儲臨時文件的目錄,可供所有用戶執行寫入操作
/usr:層級目錄,全局共享的只讀程序路徑
/usr/bin:用戶命令
/usr/share:命令自帶文檔
/usr/include:C程序的頭文件
/usr/lib:庫文件
/usr/local:層級目錄,第三方程序的安裝目錄
/var:層級目錄,存儲常發生變化的數據的目錄
/proc:內核和進程信息的虛擬文件系統,多為內核參數,如:/proc/sys/net/ipv4/ip_forward
/sys:基于內存的文件系統,關機后就沒了,與/proc類似,為管理linux設備提供了一種統一模型接口
原創文章,作者:N24_總考十分,如若轉載,請注明出處:http://www.www58058.com/54460
內容格式把握得很好,希望可以將這段發展史和幾個關鍵性時間點熟知,加油!