Python一種人和計算機溝通的語言也稱爲編程語言,所謂知己知彼 在學習Python以前咱們先了解一下要溝通的對象---計算機是什麼?它的結構、底層工做原理才能寫出更好的編程語言,和它進行更親密得交流、溝通。html
計算機是什麼?編程
一種幫助人類運算、存儲信息的工具。網絡
一套完整的計算機系統由硬件、操做系統、應用程序組成;併發
計算機硬件可劃分爲:CPU、內存、存儲設備、輸入設備、輸出設備、總線鏈接組成。抽象比喻到人身上 處理器至關於人類的大腦、內存比如記憶、存儲設備比如人的筆記本(幫助人永久存儲信息)、 輸入設備比如老師講課(向大腦傳入信息)、輸出設備(比如人的表情,喜怒變現於面),鏈接總線(比如人的神經系統將各個組件聯繫起來)分別瞭解一下計算機的各大組件。框架
CPU至關於人類腦負責從內存中取指令->解碼->執行,循環工做着。編程語言
1.0.CPU模式:工具
CPU在工做過程當中有2中模式,即內核態與用戶態,PSW(狀態寄存器)中有一個二進制位控制這兩種模式。學習
a.內核態: CPU能夠訪問內存全部數據, 包括外圍設備, 例如硬盤, 網卡. CPU也能夠將本身從一個程序切換到另外一個程序spa
b.用戶態: 只能受限的訪問內存, 且不容許訪問外圍設備. 佔用CPU的能力被剝奪, CPU資源能夠被其餘程序獲取操作系統
1.一、爲何要有用戶態和內核態?
因爲須要限制不一樣的程序之間的訪問能力, 防止他們獲取別的程序的內存數據, 或者獲取外圍設備的數據, 併發送到網絡, CPU劃分出兩個權限等級 -- 用戶態 和 內核態
1.二、CPU核心的組件
CPU核心組件包含 運算器、控制器、寄存器
a.運算器
arithmetic unit,計算計中執行各類算術和邏輯運算操做的部件。運算器的基本操做包括加、減、乘、除四則運算,與、或、非、異或等邏輯操做,以及移位、比較和傳b.送等操做,亦稱算術邏輯部件(ALU)。
c.控制器
內存是三維編址/全局編址的數據存放都有特定的位置,控制器負責從內存中讀取數據給運算器
d.寄存器
因爲運算器要對數據進行運算 好比運算 2+6=8但運算器只能運算沒有記憶因此 須要寄存器 存儲要參加運算的數據 2 和 6 。
1.三、寄存器的分類:
通用寄存器
保持臨時變量和運算結果
程序計數器
它保存了將要取出的下一條指令的內存地址。在指令取出後,程序計算器就被更新以便執行後期的指令。
堆棧指針寄存器
它指向內存中當前棧的頂端。該棧包含已經進入可是尚未退出的每一個過程當中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量以及那些沒有保存在寄存器中的臨時變量
程序狀態字寄存器(PSW)
這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各類其餘控制位。用戶一般讀入整個PSW,可是隻對其中少許的字段寫入。在系統調用和I/O中,PSW很是很是很是很是很是很是重要
因爲內存有易失性,斷電後不能保持信息,因此計算機必須由存儲器來永久保存數據;
2.0、 存儲器的種類
a.非易失性隨機訪問存儲如ROM(Read Only Memory,ROM)
在電源切斷以後,非易失性存儲的內容並不會丟失,ROM只讀存儲器在工廠中就被編程完畢,而後不再能修改。ROM速度快且便宜,在有些計算機中,用於啓動計算機的引導加載模塊就存放在ROM中,另一些I/O卡也採用ROM處理底層設備的控制。
b.EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和閃存(flash memory)也是非易失性的
可是與ROM相反,他們能夠擦除和重寫。不太重寫時花費的時間比寫入RAM要多。在便攜式電子設備中中,閃存一般做爲存儲媒介。閃存是數碼相機中的膠捲,是便攜式音譯播放器的磁盤,還應用於固態硬盤。閃存在速度上介於RAM和磁盤之間,但與磁盤不一樣的是,閃存擦除的次數過多,就被磨損了。
c.CMOS
它是易失性的,許多計算機利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,因此,即便計算機沒有加電,時間也仍然能夠正確地更新,除此以外CMOS還能夠保存配置的參數,好比,哪個是啓動磁盤等,之因此採用CMOS是由於它耗電很是少,一塊工廠原裝電池每每能使用若干年,可是當電池失效時,相關的配置和時間等都將丟失。
d.磁盤:
扇區: 機械硬盤的轉軸轉動帶動硬盤內的金屬盤片跟隨轉動,機械手臂上下摩擦盤面一個段稱扇區。
鏈接計算機各個組件的主線
3.0鏈接總線分類:
a.北橋:
即PCI橋:鏈接高速設備
b.南橋:
即ISA橋:鏈接慢速設備
在計算機的主板上有一個基本的輸入輸出程序(Basic Input Output system)
BIOS就至關於一個小的操做系統,它有底層的I/O軟件,包括讀鍵盤,寫屏幕,進行磁盤I/O,該程序存放於一非易失性閃存RAM中。
啓動流程以下
1.計算機加電
2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等
3.BIOS讀取CMOS存儲器中的參數,選擇啓動設備
4.從啓動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446爲引導信息,後64爲分區信息,最後兩個爲標誌位)
5.根據分區信息讀入bootloader啓動裝載模塊,啓動操做系統
6.而後操做系統詢問BIOS,以得到配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,若是沒有,系統則會要求用戶按照設備驅動程序。一旦有了所有的設備驅動程序,操做系統就將它們調入內核。而後初始有關的表格(如進程表),穿件須要的進程,並在每一個終端上啓動登陸程序或GUI
參考:http://www.cnblogs.com/linhaifeng/p/6523843.html