开机的时候CPU执行BIOS,后来运行操作系统,把CPU的管理权限给了操作系统,我想问一下,CPU有很多种,不同CPU的指令集不同,操作系统是怎么和不同CPU兼容的?另外操作系统是怎么获得CPU的最高权限?我们关机的时候是不是操作系统又把CPU的管理权给BIOS,最后关机。那在启动操作系统之前,CPU就是单任务的吗?
------解决方案--------------------
不同指令集的CPU都需要重新编译操作系统源码,生成该cpu可运行的操作系统镜像。
系统启动,默认就是最高权限,执行操作系统初始化函数,操作系统起来后,才允许用户进程在低权限环境下运行。
关机不需要交管理权,直接保存相关工作,结束相关任务,操作系统直接控制断电即可。
启动操作系统前都是单任务,直到操作系统任务初始化和多核CPU初始化完成后,才开启多任务。
------解决方案--------------------
要分清楚,不同指令架构的程序是不兼容的。
比如x86 MIPS ARM之间是不兼容的
不同指令集没有关系,因为操作系统一般只用到CPU支持指令集的一个子集。