一
1.X86計算機體系是馮-諾伊曼體系,包括如今不少智能設備。
2.計算機主要由CPU(運算器和控制器),存儲設備,輸入輸出設備。
3.運算器提供運算能力,可是隻是二進制運算
控制器是協調各部件
4.組件之間的鏈接 以及和存儲的鏈接 是經過總線(bus)
5.總線分爲 控制總線 數據總線和地址總線
6.CPU指令集 分爲特權指令和普通指令
CPU物理上分爲4個環,最中心的是環0,依次外爲環1,環2,環3
特權指令就是在環0上,普通指令在環3上
只有操做系統纔有權限調用特殊指令
7.從底層到高的語言分別是
機器語言----彙編語言----高級語言
8.爲何要有操做系統?
生產廠商衆多,所生產的硬件規格和接口也各自不一樣,而操做系統的做用就是將底層不統一的規格接口,向上統一成一個標準的規格和接口。
操做系統 Operating System 簡寫OS
9.編程層次:
硬件規格
系統調用
庫調用
10.什麼是程序運行?
該程序佔據了CPU一部分性能,而後逐條自上向下的運行代碼
11.用戶接口
圖形用戶接口 GUI
命令行接口 CLI
用戶接口程序:用戶經過這個程序,調用接口python
接口格式 ABI 應用編程接口 API
12.CPU的架構類型:X86 X64 ARM M68000 POWER
13.操做系統有
Windows
Linux
Unix
GNU組織發起 軟件自由運動
GNU:宣傳的口號或者說意圖 GNU
這個組織制定了一個GPL協定 (免費)
宣言開源免費的GNU組織,卻沒有應該有的操做系統,後來的Linux解決了GNU的尷尬
14.開發操做系統的程序員,必定是面向硬件規格進行開發,開發難度大,因此操做系統的更新換代會慢的多
而基於操做系統的系統調用開發,相對簡單,由於操做系統已經把底層硬件隱藏,向上提供統一和易理解的接口
固然還有基於庫調用的開發,原理是將操做系統提供的接口再次封裝成庫,調用庫完成開發
15.應用程序能夠直接調用運行普通指令,當應用程序要調用特殊指令時,會交由操做系統進行系統調用。此時,是操做系統在運行,獲得結果後,返回給應用程序。
16.程序運行有兩個模式
用戶模式(也叫用戶空間) user space
內核模式(也叫內核空間) system space
15中的現象體現了這兩個模式
17.現代操做系統都是多用戶多進程
18.在操做系統上,都有庫,C庫(也叫系統庫)
在Windows中,可運行程序格式是 .exe 庫文件格式是 .dll
在Linux中, 可運行程序格式是 elf 庫文件格式是 so (全稱shared object ) 每一個程序員均可以調用,共享對象,減小內存資源的浪費
19.程序=指令+數據
指令是CPU指令,不可修改,只讀
數據 可讀寫
程序=算法 + 數據結構
庫調用:系統調用,容許被調用的程序
被調用 不修改,只讀代碼
20.編程語言
彙編語言
(微弱編程 )系統中某些硬件相關的特有代碼,驅動程序程序員
高級語言(C C++)
系統級應用,驅動程序
(例如MySQL)
高級語言
Java python PHP
應用程序程序員