内核的架构分类
- 宏内核,包含多个模块,整个内核像一个完整的程序
- 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理
- 混合内核,是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序,也就是和宏内核类似
linux和window的内核架构区分
Linux 的内核设计是采用了宏内核,Window 的内核设计则是采用了混合内核。这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,扩展名通常是.elf、.bin、.exe等,Windows 可执行文件格式叫作 PE,扩展名通常是.exe、.dll、.sys等
操作系统的引导
Window下的主存是由RAM和ROM(BIOS包含:ROM引导程序),开机一旦通电,ROM就会读取磁盘中主引导记录(MBR):磁盘引导程序和分区,然后根据C盘第一部分的引导记录PBR里的程序找到启动管理器,这个启动管理器负责找到根目录下的启动管理程序,CPU在执行这个启动管理程序,执行开机的一系列的动作
Linux下,拿RK3568/RK3588/imx6ull举例,第一部分,这一部分位于不可擦除的 ROM 中(又名 BootROM),主要负责初始化一些硬件设备,以及加载第二阶段的启动程序。其地位相当于电脑上的 BIOS。BootROM 本身在上电时会被加载到特定内存 处,然后执行。它按如下顺序搜索设备中是否存在有效的 ID Block:SPI NOR Flash、SPI NAND Flash、eMMC、SD 卡。如果第二阶段的启动程序加载失败了(例如,在以上设备中均未找到),它会负责启动 MaskROM 烧写模式,以便用户可以线刷固件。第二部分,主要负责初始化 DDR 并加载下一阶段的启动程序(如 U-Boot)。第三部分,这一部分主要是U-Boot 程序,这是一个开源的启动程序,它可以从各种设备中加载内核镜像,然后启动操作系统内核。其地位相当于电脑上的 Windows 启动管理器。第二部分的程序载入器一般和 U-Boot 一起打包成一个镜像,然后写入一个设备中。U-Boot 也支持直接编译出单个可以烧写的、同时包含 SPL 和 U-Boot 的镜像,无需编译两次。第四部分,U-Boot 会从设备(即 Flash、eMMC、SD 卡等)中扫描所有分区,找到标记为可引导的分区,然后加载其中的内核镜像。第五部分,根文件系统,这是特定于 Linux 操作系统的内容了。它可能包含了你操作系统上一切重要的配置文件和关键程序,例如 /etc、/usr 等等。
中断分类
外中断
又称中断,与当前执行的命令无关,中断信号来自CPU外部,分为时钟中断和I/O中断请求
内中断
也称异常、例外,分为陷阱、陷入(这两个又应用程序故意引发)、故障(缺页)、终止(致命错误)
中断机制的基本原理
不同的中断信号,需要不同的中断处理程序来处理,例如根据中断向量表,以此来找中断处理程序在内存中的存放位置
外中断和异常有什么区别?
1、外中断是指由CPU执行指令以外的事件引起,如I/O完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。
2、而异常时由CPU执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。