自己动手写操作系统读书笔记——第一章:马上动手写一个最小的操作系统

本书适合初学者,详细介绍了如何从零开始构建一个简单的IA-32架构操作系统,涵盖CPU管理、进程实现等内容。通过实践,读者可以理解计算机启动原理及软盘启动流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己动手写操作系统读书笔记——第一章:马上动手写一个最小的操作系统

系列前言

最近终于将《自己动手写操作系统》,于渊著,这本书读完了。读完之后受益匪浅,对于计算机从按下启动按钮到桌面显示有了一个大体的了解,对以前总是思索的问题也有了很多了解,对于内核、优先级、进程、系统调用、驱动更是建立了一个具体的形象,软件和硬件之间如何配合也跃然纸上。
当读完这本书,我的第一感觉是这本书的内容是面向初学者的,更多的是向我这样的初学者展示了IA-32架构下的一个最最简单的操作系统是如何一步一步构建起来的,也正是因为面对初学者,所以书中并没有添加特别复杂的算法和兼顾特别多的方面,这本书的侧重点在于CPU管理和进程实现,并有一些简单的I/O请求的实现,没有实现的部分有:

  • 存储器管理这部分的内容是没有添加的,内核函数是利用gcc编译出来的,也正是因为如此,在书中框架下添加一个进程必须利用重新编写内核;
  • 仅仅初步实现了进程这个概念,进程仅仅有两个状态,就绪和运行,并没有考虑到进程通讯,这是因为书中并没有实现完整的I/O请求,并完全没有涉及内存管理和文件系统。

总体来说。当然缺失了上述这些内容这些并不是缺点,书中完全给出了一个足够简单明了的框架来供我们完成这些细节。

第一章

这章主要解答了我一个疑惑已久的问题,为什么计算机启动的时候能够自动执行代码?这些自动执行的代码位于何方?为了解答这个问题,第一章手把手教导了我们如何写一个最简单的启动软盘。
其实这个问题的答案很简单,要解答这个过程我们需要了解一下计算机按下电源键后发生了什么,其实计算机就做了两步操作:
在这里插入图片描述其中的BIOS位于主板的一块ROM中,在上电时厂家通过逻辑电路来启动其初始化代码,初始化代码的工作包括检查硬件,初始化控制器,设置中断向量表等操作。
而第二部则是解答最开始问题的关键,当BIOS自检并设置好之后,会将软盘的0面0磁道1扇区的内容复制到内存的7c00处并从7c00处开始执行。这也是我们的代码的最初的启动地方。至于为什么是7c00呢,这是行业默认的。
对于则有可能有着另外一套规定,但是本质上和软盘的启动逻辑是一致的:从外设上的约定的扇区中取出代码放到对应的位置处,并跳转到这个位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值