摘要: 26.1 应用处理器 当计算机启动时,不管其中有多少个CPU,都只有一个CPU会真正启动,这个CPU就称为引导处理器(Bootstrap Processor,BSP);而其他CPU会等待被BSP唤醒,这些CPU就称为应用处理器(Application Processor, AP)。 BSP可以在任意 阅读全文
posted @ 2024-09-01 10:29 樱雨楼 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 25.1 多处理器同步原语的实现原理 当计算机中存在不止一个CPU时,基于关中断的同步原语就失效了。这是因为每个CPU的中断是独立的,关闭一个CPU的中断并不会影响其他CPU。从本质上说,中断由rflags控制,但rflags在每个CPU中都有一个,因此,只有找到一个共享区域,才能实现多CPU间的同 阅读全文
posted @ 2024-09-01 10:29 樱雨楼 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 24.1 64位文件系统 想要实现文件系统,就需要一个超级块和一个文件系统位图。在我们的操作系统中,超级块位于98号扇区,文件系统位图位于99号扇区,文件从100号扇区开始存放。 本章代码24/FS.h定义了FCB,一个FCB的大小是32字节,一个扇区可以存放16个FCB,其中,最后一个FCB改为存 阅读全文
posted @ 2024-09-01 10:28 樱雨楼 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 23.1 什么是快速系统调用 系统调用是操作系统为3特权级任务提供服务的一种手段。在32位操作系统中,我们通过中断实现了系统调用。由于系统调用是一个使用非常频繁的机制,且中断也不是专门为系统调用设计的,因此,64位CPU提供了系统调用的专用机制:快速系统调用。 快速系统调用由专用的syscall指令 阅读全文
posted @ 2024-09-01 10:28 樱雨楼 阅读(207) 评论(0) 推荐(1) 编辑
摘要: 22.1 64位TSS与TSS描述符 想要实现任务,就需要先安装好TSS与TSS描述符。 64位TSS如下图所示: 如图所示,64位TSS的大小不变,还是104字节。64位CPU淘汰了硬件任务切换和数据段寄存器,因此,64位TSS的组成与32位TSS完全不同,其已不具备保存寄存器的功能,其中的大部分 阅读全文
posted @ 2024-09-01 10:27 樱雨楼 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 21.1 什么是高级可编程中断控制器 我们已经使用过型号为8259A的可编程中断控制器(Programmable Interrupt Controller,PIC)。在单CPU计算机中,中断的处理相对简单:所有的外设和CPU都连接在PIC上即可。然而,如果计算机中不止一个CPU,情况就会变得复杂起来 阅读全文
posted @ 2024-08-31 10:14 樱雨楼 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 20.1 64位ELF格式 在64位模式下,由于内存地址变宽,ELF格式中的内存地址也要跟着变宽。这并不是一个麻烦的问题,因为ELF格式的整体结构没有发生变化,仍然由一个文件头,加上若干程序头表组成。 对于64位ELF格式的文件头,我们需要关注的信息如下表所示: 偏移量 字节数 含义 0x18 8 阅读全文
posted @ 2024-08-31 10:13 樱雨楼 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 19.1 64位段描述符与GDT 在32位操作系统中,我们使用的是平坦模型而非分段模型,从而,段描述符的段基址和段限长均成了摆设。在64位模式下,就连CPU也淘汰了分段模型,转而固定使用平坦模型。 64位代码段描述符如下图所示: 如图所示,由于固定使用平坦模型,段描述符中的段基址、段限长、粒度等位均 阅读全文
posted @ 2024-08-31 10:12 樱雨楼 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 18.1 引言 我们已经实现了一个运行在保护模式下的操作系统,然而,读者朋友也许不会满足:如今早已是多核CPU,64位操作系统的时代,而我们的操作系统仅仅是单核CPU,32位的。因此,从本章开始,我们将在32位单核操作系统的基础上,将其升级为一个64位多核操作系统。 18.2 准备工作 我们仍然使用 阅读全文
posted @ 2024-08-31 10:11 樱雨楼 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 操作系统最终是供用户使用的,所以其需要具备与用户交互的能力,交互方式可以是命令行,图形界面,甚至是触摸屏,语音,实体按钮等。本章将要实现的是系统交互。 17.1 外壳程序 我们的操作系统使用的是基于命令行的交互模式。实现此功能的模块被称为外壳(Shell)程序。 事实上,上一章的Test.c已经是一 阅读全文
posted @ 2023-11-12 09:55 樱雨楼 阅读(17) 评论(0) 推荐(0) 编辑