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