菜機互啄 計算機的一些基本知識 持續更新

基礎知識篇一

程序 指令+數據組成  儲裏器面存放着數據和指令linux

計算機硬件系統五大部件由運算器、控制器、存儲器、輸入設備、輸出設備組成 

 

 

1.CPU

cpu包含運算器和控制器ios

CPU主要的組成 運算器,控制器,寄存器

控制器:讀取指令,並在指令的控制下,去讀取要執行的運算,包括數據或者計算,控制器會控制告訴計算器到哪裏去取數據,數據取過來,運算器開始運算,運算結果由控制器輸出到存儲器CPU暫時存儲器程序員

運算器:運算器須要去存儲裏面讀取指令web

寄存器:cpu暫時存儲器,shell

 

地址總線:內存尋址編程

數據總線:傳輸數據小程序

控制總線:控制指令緩存

 

地址總線的位數決定了CPU可直接尋址內存空間大小,好比8位微機的地址總線爲16位,則其最大可尋址空間爲2^16=64KB,16位微型機的地址總線爲20位,其可尋址空間爲2^20=1MB。通常來講,若地址總線爲n位,則可尋址空間爲2^n位。[1] 安全

 

地址總線寬度 地址總線數據寬度決定了CPU能夠訪問的物理地址空間,簡單地說就是CPU到底可以使用多大容量的內存。對於486以上的微機系統地址線的寬度爲32位,最多能夠直接訪問4096 MB(4GB)的物理空間。Pentium Pro/Pentium Ⅱ/Pentium Ⅲ爲36位,能夠直接訪問64GB的物理空間。網絡

 

Cup緩存:CUP是從內存讀取數據,緩存是從三級到一級層層緩存。可是CPU的處理速度依然遠遠大於內存,CPU依然須要等待大量的時間從內存讀取數據,CPU性能被浪費,因此CPU引入了一級緩存,一級緩存分爲指令緩存和數據緩存 他的容量很小,只有幾十K左右,但他的讀寫速度卻已經與CPU處理速度很是接近了。

但由於這樣的一級緩存成本很是很是高,因此是不可能作的很大的,但這麼小的幾十K跟內存成百上千M的容量比,實在是不夠用,一級緩存與內存的數據傳遞又成了瓶頸,出於成本考慮一級緩存不可能增大太多,因此又加入了二級緩存,他的速度比一級緩存要小的多,但成本低,並且能夠作到比一級緩存大不少,因此就出現了二級緩存,如今二級緩存基本都是1M以上的了,甚至都6M的了。

 

 

2.存儲

Ram:全部數據都在來自於Ram 隨機訪問存儲器 ,如今主流使用的都是ram

Rom 只讀存儲器 此前適用於這臺計算的一堆指令。

 

 

 

3.輸入輸出設備稱爲I/O設備

用來與用戶進行交互

I輸入設備:鍵盤、鼠標、攝像頭、掃描儀光筆、手寫輸入板、遊戲杆、語音輸入裝置等都屬於輸入設

o輸出設備:顯示器、打印機、繪圖儀、影像輸出系統、語音輸出系

默認輸出設備也叫標準輸出

默認輸入設備也叫標準輸入

標準輸入通常都指的是:鍵盤

標準輸出和錯誤輸出:顯示器

I/O重定向:改變了數據的輸出來源和輸入來源

 

 

 

加電自檢含義:指令可以映射到內存裏面,控制器就會讀取這些指令,告訴CPU 顯卡內存是否存在 這個就叫作加電自檢

 

 

內存分爲三段:post加電自檢之後 bios自動映射到內存 第一段實現加電自檢,第二段內核空間(kernel space)載入操做系統內核,第三段被多個應用程序彼此共享

 

 

 


Interrupt含義: 中斷 能夠理解爲硬件通知機制  那麼咱們怎麼知道 中斷是鼠標或者鍵盤,計算機內部有個可中斷編程控制器,這個控制器和CUP是針腳相連的,cup有多跟線,每一根線對應一個設備,這樣CUP就能夠知道是哪裏出現中斷了

 

 

設備分南橋和北橋

南橋:低速控制總線 鏈接大量I/O外圍設備(鍵盤,鼠標,顯示器) 彙總後經過同一根線交給北橋,北橋經過控制器傳給CUP

北橋:高速控制總線  cup和內存打交道,Cup和內存須要總線相連,因此須要大量數據傳輸,須要高頻率快速數據交換

如今爲了高效率 內存直接鏈接CUP了 北橋只負責鏈接南橋,由於北橋速度快,所以能夠將固態硬盤直接鏈接到北橋,實現更高效率,這就是一種硬件調優

 

 

 

緩存工做要遵循 程序局部性原理,

時間局部性:剛訪問的數據,可能最近還須要訪問 緩存下來

空間局部性:若是訪問一個數據,離周圍的數據很是近,因此把周圍的數據一塊兒載入進來

 

 

機器只能識別二進制編程爲了方便編程,cpu芯片會有微碼也叫微程序,稱爲彙編語言 人類認識的語言,在用編譯器(編譯器也是軟件),轉換爲機器語言,微碼是芯片是自帶的,每一個廠家的芯片不同,因此沒法相互使用。

API(Application Programming Interface):應用編程接口 爲了讓不一樣廠家的芯片能夠互相使用,可讓cup直接相互經過編程接口 把指令往上傳輸 就跟翻譯器是一個道理

 

 

硬件架構:cpu芯片的不一樣系列 由於ntel公司 發展出了代號爲8086,因此這種架構的CUP叫作x86

主流架構

手持智能設備:硬件架構 移動硬件架構叫作 ARM (啊木)

X86

X86-64 也叫AMD64

32位 計算機中的位數指的是CPU一次能處理的最大位數,一次最多能處理32位數據

64位計算機中的位數指的是CPU一次能處理的最大位數,一次最多能處理64位數據

 

 

32位和64位操做系統是指:CPU一次處理數據的能力是32位仍是64位。換而言之, 32位系統的處理器最大隻支持到4G內存,而64位系統最大支持的內存高 達億位數。

支持內存的大小 這是根據他們的CUP處理的數據寬度決定的

 

 

進程

運行的程序稱之爲進程,進程是有生命週期的,處理完畢進程就結束了,而程序在內存裏保留的 因此進程和程序是不同的,

進程的原理:CUP運算是根據時間的流逝完成的CPU是時間驅動的。因此將CPU樣件切分爲CPU的時間片time slice

time sluce

第一個程序運行5ms

第二個程序運行5ms

來回交替運行

內存能夠經過訪問不動的段來進行交替也稱分段機制,例如第一個程序訪問第一段,第二個程序訪問第二段,每一個程序都是從頭開始的,那麼內存如何知道我要去訪問相應的段落呢? CPU內部也能夠分段,內部會把不一樣的任務放入相應的段落裏,來進行相互交替 ,內存分段由CPU完成

 

 

 

 

 

操做系統

 

操做系統基本組成

 

 

操做系統也是個軟件,運行在硬件上,負責管理硬件資源,將硬件資源所提供的計算能力,分配給不一樣程序,CUP分紅多個片,內存分紅爲多個段,而且負責協調,協調包括程序的啓動,終止和回收等工做,還負責程序切換等工做

負責協調硬件和程序。有了操做系統,進程不能和硬件直接打交道

要想使用硬件必須經過操做系統進行協調 進程向操做系統內核進行程序調用,

由系統內核把程序從內存中取出來返還給應用層程序和進程,

 

操做系統是由system cal(系統調用)進行協調,可是因爲這種方式過於底層 ,使用起來比較麻煩,因此將底層系統調用一個或者多個,把功能封裝打包起來,作出更高級的接口,那麼這個高級接口稱做爲庫,庫不能獨立運行,只能被調用。

除了系統調用還有庫調用(library),庫對於操做系統或者內核叫:應用編程接口API

程序員開發程序都是經過庫去開發,windos和linux庫不一樣。因此windos開發的程序不能再linux上使用 ,先要程序通用如何windos和linux使用的庫同樣,彷佛就能夠

因此操做系統 底層是硬件 操做系統就是經過系統調用

Shell:人機交互接口, 爲何咱們雙擊就能點開word呢 就是經過shell實現,把計算機的功能經過人類容易操做的方式,輸出一個接口,經過這個接頭才能操做計算機

Shell分兩種

1.GUI圖形用戶界面

2.CLT命令行接口

   

                                                                                                               

 

內核:操做系統的核心,內核負責管理硬件資源,而且將

硬件資源虛擬提供給上層所須要的運行程序。如何程序運行在硬件上那麼這個程序就能夠控制硬件的各類屬性,若是多個程序同事運行,相互之間就會產生干擾,因此須要內核負責管理和協調,內核確認硬件的運算能力經過系統調用的方式,返還給程序

 

程序的執行過程:有了操做系統,內核負責整個系統的監控和上層程序的監控,可以和程序進行交互的只有內核,軟件程序輸入信息先到達CPU,CPU通知內核進行處理,在由內核轉交給應用程序

操做系統也是一種程序,程序是由指令+數據組成,因此內核的數據再也存儲器(內存裏),若是有惡意的應用程序訪問內核那麼系統的穩定性沒有保障,因此有保護機制把應用程序和內核隔離開,因此CPU分爲4個級別,只有內核能運行在特權級別下(0級別),而其餘程序運行在最外圍級別上,cup會把級別映射到存儲器的(內存)

內核的功能:

進程管理

           內存管理

文件系統

網絡功能

硬件驅動

安全機制

ABI應用二進制接口 每一個CPU的編譯器不同,使用ABI能夠實現交叉編譯

 

 

全部程序都須要進行編譯,由於計算機內核只認識二進制,因此就有了第三方公司專門作編譯,把程序編譯完 打包封裝給系統使用,這就是redhat 紅帽公司 這些公司都不是開發者他們只是將·源代碼格式的linux在通用的計算機上編譯成通用格式,其餘人就不用編譯了,因此紅帽這些公司是linux的發行商,內核有Linux之父 李納斯維護 軟件由GNU 組織戈怒維護的 redhat負責包裝發行,可是由於紅帽有些是要服務費 升級補丁是要錢的,後來成立了組織centOS 開放社區版的linux 由於免費因此若是任何事情致使系統崩潰centOS不負責任

 

 

LINUX基本原則

  1. 由單一小程序組成,組合小程序完成複雜任務 好比搭建服務 一個安裝包須要不少個安裝包去支持和依賴 因此叫組合小程序完成複雜任務
  2. 一切皆文件,全部東西都保存爲文件格式,甚至連訪問入口都是文件
  3. 儘可能避免捕獲用戶接口,不根用戶交互,只要執行命令不須要用戶輸入任何信息
  4. 配置文件保存爲文本格式,在linux配置服務建立個文本就能夠完成全部功能

 

 

IDE:   集成開發環境IDE,Integrated Development Environment )是用於提供程序開發環境的應用程序,通常包括代碼編輯器編譯器調試器和圖形用戶界面等工具

DLL文件:動態連接庫文件 一個軟件的運行有可能調用庫裏文件,若是庫文件缺失軟件就沒法正常運行。

 

 

一個操做系統 只要有內核,shell所依賴的庫文件和shell ,一個操做系統就徹底能夠運行了算是一個操做系統的架構,若是配置一個web服務,只須要web程序和程序所依賴的庫把東西填充在架構裏,就徹底能夠運行了

相關文章
相關標籤/搜索