宏不能进bios设置u盘启动 (宏不能进bios设置u盘启动)

Yoo,你们好吗。今天我来写一些对于编程重要的、操作系统系统有关的前置知识。

从启动说起,加电后,首先执行UEFI(以前叫BIOS,UEFI比BIOS多了图形界面),UEFI是个硬件,是个写死电脑指令的芯片。UEFI的任务是自检,然后从硬盘第一个扇区加载bootloader到内存。Bootloader来选择具体哪个OS。Cmos是用来存储UEFI配置的信息,比如BIOS密码、从U盘启动等等。Cmos是通过主板上的纽扣电池来供电保存信息的。当bootloader加载OS内核的指令到内存后,CPU指向OS内核指令,这才真正进入OS。

内核的主要功能有:

CPU调度内存管理进程管理文件系统中断管理

宏内核:上述内核几大功能都载入内存。微内核:只有进程调度功能。比如有进程想访问硬盘,那么微内核系统不具备文件管理功能,文件管理功能可能在云端。物联网不支持大内存,所以用微内核(鸿蒙用微内核)。部署灵活,比如设备内存还算够,那就部署kernel+cpu调度,这样可插拔部署、弹性部署。

在虚拟化的技术路线中,有全虚拟化,即用hypervisor虚拟化出硬件,在其上安装完整的内核,这样原始操作系统其实已经有调度了,在虚拟机里面又内核调度,效率就低了,所以后来有了docker这样的技术,我们以后再谈。

CPU段寄存器的后两位表示特权级别。linux只是用了0和3,表示内核态和用户态。对于系统关键访问,需要kernel同意,保障系统健壮性。Linux内核执行的操作有200多个系统调用供用户态程序调用。

中断,有硬件产生的中断,有软件产生的中断。软中断,即INT 0x80中断。会有这样几个步骤,也叫所谓的context switch:

app发出80中断os进入内核态中断向量表找到处理例程保存app的执行状态,寄存器等执行中断例程syscall恢复app现场返回用户态app继续执行

进程、线程、用户线程(也被称为纤程、绿色线程):

进程:OS分配资源的基本单位。OS会给进程分配内存,而起线程时不会分配任何内存空间,线程使用进程的内存空间。线程:OS调度执行的基本单位。纤程的应用场景:用户空间电脑的异步编程。纤程为什么一般比线程快?因为线程是需要OS创建和管理的,需要用户态进行系统调用,而系统调用就会经历上面讲到的INT 80中断的几个步骤。

所以,线程相对于纤程来说是重量级的。


电脑