操作系统的理解
只要具備 ?CPU+內(nèi)存+時(shí)鐘(RTC+Clock) 的能力就可以是一個(gè)計(jì)算設(shè)備
而計(jì)算設(shè)備要有鎖(Lock)的能力需要CPU和內(nèi)存分別提供(比較內(nèi)存+一次取固定位數(shù)內(nèi)存值)原子操作
OS對(duì)上提供編程框架,對(duì)下提供硬件(虛擬硬件)管理
內(nèi)核線程只在在內(nèi)核空間運(yùn)行,不同內(nèi)核線程同一地址空間,可相互訪問
用戶線程只在在用戶空間運(yùn)行,同一用戶進(jìn)程的不同線程同一地址空間,可相互訪問,不同進(jìn)程不同地址空間,相互隔離
實(shí)時(shí)操作系統(tǒng)(RTOS):所有系統(tǒng)調(diào)用在規(guī)定時(shí)間內(nèi)返回
內(nèi)核:管理硬件/虛擬硬件
CRT位于框架里面
系統(tǒng)調(diào)用:應(yīng)用->(OS的)框架
===================================================================================================
本地程序運(yùn)行過程:
(1)OS啟動(dòng)時(shí)創(chuàng)建一個(gè)用戶態(tài)的加載進(jìn)程(init0)加載器
(2)加載器?創(chuàng)建進(jìn)程(設(shè)置環(huán)境_1(argc,argv,env),加載程序,指向進(jìn)CRTMainStartup函數(shù)(設(shè)置環(huán)境_2),CRT再指向進(jìn)Main函數(shù)
===================================================================================================
微內(nèi)核:把部分系統(tǒng)服務(wù)放到用戶態(tài)
宏內(nèi)核:所有系統(tǒng)服務(wù)位于內(nèi)核
===================================================================================================
crt0鏈到應(yīng)用程序(客戶端)
共享內(nèi)存存放DLL(所有的DLL都是進(jìn)程共享):加載DLL時(shí),會(huì)把DLL中線程專有數(shù)據(jù)(TLS)拷貝一份到相應(yīng)的進(jìn)程地址空間
? ? ? ?DLLMain函數(shù):加載/分離DLL調(diào)用的函數(shù),attach/detach
總結(jié)
- 上一篇: 类的继承方式
- 下一篇: socket的系统调用