2.1.1.1 計算機系統
(1)計算機系統是用cpu作為核心來執行的系統,典型的有pc機(台式電腦、筆記本)、嵌入式系統(手機、平板、遊戲機)、微控制器(電飯鍋、空調)
(2)計算機系統的組成部件很多,而且不同計算機系統的組成部件也不同,各有特色,但是所有計算機系統執行時都需要3個核心部件:cpu+外部儲存器(硬碟/flash)+內部儲存器(ddr/sram)
2.1.1.2 pc機的部署和啟動過程
(1)典型的pc機的部署:bios部署在主機板上(主機板出廠時已經預製了),作業系統映象部署在硬碟上,記憶體掉電時丟失資料,cpu掉電時不工作
(2)啟動過程:pc機上電後執行bios程式(存放bios程式的介質是norflash),bios程式初始化ddr、硬碟,初始化完成後從硬碟中將os映象讀取到ddr中,然後跳轉到ddr中去執行os直到啟動(os啟動後,bios就沒有用了)
2.1.1.3 典型嵌入式linux系統部署和啟動過程
(1)嵌入式系統的部署和啟動都是參考pc機的,只是裝置上有些差異
(2)典型嵌入式系統的部署:uboot部署在flash中(能作為啟動介質的flash),os映象部署在flash上(嵌入式系統用flash代替了硬碟),內存在掉電時丟失資料,cpu在掉電時不工作
(3)啟動過程:上電後先執行uboot,uboot負責初始化ddr、flash,初始化完成後從flash中將os映象讀取的ddr中,然後跳轉到ddr中去執行os(啟動os後,uboot就沒有用了)
2.1.1.4 android系統啟動過程
(1)android系統和典型的嵌入式linux系統的啟動幾乎一樣,只是在啟動核心後載入根檔案系統不同了
(2)可以認為啟動分為2個階段:第一階段是uboot到os啟動,第二階段是os啟動後到rootfs載入
2.1.1.5 uboot的作用
(1)初始化ddr、flash等裝置
(2)部署嵌入式系統
(3)提供乙個命令列人機介面
(4)啟動核心
為什麼要有cgroup
linux系統中經常有個需求就是希望能限制某個或者某些程序的分配資源。也就是能完成一組容器的概念,在這個容器中,有分配好的特定比例的cpu時間,io時間,可用記憶體大小等。於是就出現了cgroup的概念,cgroup就是controller group,最初由google的工程師提出,後來被整合進l...
為什麼要有多型?
include include using namespace std 岳不群 class yuebuqun virtual void fight virtual表7示修飾的乙個成員方法時乙個虛函式,和虛繼承含義不同 string kongfu 林平之類 class linpingzhi publi...
為什麼要有 hashCode
當你把物件加入 hashset 時,hashset 會先計算物件的 hashcode 值來判斷物件加入的位 置,同時也會與其他已經加入的物件的 hashcode 值作比較,如果沒有相符的hashcode,hashset會假設物件沒有重複出現。但是如果發現有相同 hashcode 值的物件,這時會呼叫...