只要具备 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