当前位置: 首页 > article >正文

【读书笔记-《30天自制操作系统》-30】Day31

《30天自制操作系统》这部书的内容完结了,接下来是本书作者的后记部分和自己学习的一些体会。

在本书作者看来,这个操作系统其实还有诸多值得完善改进的地方。

首先是可以增加的功能。

比如当前的操作系统还不支持向磁盘写入,开发过程中完成的一些磁盘写入的动作其实是依赖于BIOS功能。如果实现了不依赖BIOS的磁盘写入功能,稍微改造就可以实现磁盘的读取功能。当前的操作系统在启动过程中是将所有内容都读入内存的,如果具备了磁盘读取功能,在启动过程中就不需要将全部内容都读入,可以加快启动时间。

而实现了对文件写入的功能之后,可以开发的东西就更多了。文本编辑器,画图编辑器,甚至移植了C语言编辑器后可以直接编译运行程序。

然后是需要优化的地方。

当前的操作系统内存管理没有考虑到内存不足的情况。启动多个程序可能会出现将内存耗尽的问题。这里需要进行处理,内存不足的情况下禁止再启动更多的应用程序。

大体总结一下这30天来学习的知识内容,涵盖了**使用32位模式的方法、内存段的使用方法、中断的处理方法、内存的管理方法、窗口和鼠标的处理、定时器的管理方法、命令行窗口的原理、API的方式、访问文件的方法等内容。**作者认为,书中给出的内容只是一种示例,并不是标准答案,读者更应该勇于自行探索更好的实现方式,不要被条条框框所束缚。

开发操作系统**不要一开始就想做的完美,这样会寸步难行。**先迈出一步,根据实现的情况不断进行调整,甚至将之前的工作完全推倒重来,这都是开发过程中的正常阶段。另外,基于什么样的目的进行开发也很重要。根据自己的目标,可以确定哪些是最重要的,而哪些是可以舍弃的。比如作者的目标在于让更多的读者能够读懂,因此在很多可以使用汇编语言的部分仍然选择了更易懂的C语言。如果有明确的目标,就可以排除不必要的干扰,更顺利地向目标迈进。

作者的话交代完了,接下来是自己的一些感受。

以前在阅读技术书籍的时候,总是读了前面的忘了后面的,很难整体掌握全书的知识。本书的主题很明确,结构上又很合理地分成了30天。但第一次读的时候看着前面的内容比较简单,就有轻视之心,结果越往后不明白的内容越多,终于导致读不下去了。

这一次采取的方法是步步为营。前面的部分都很基础,有些内容是反复读了几遍,直到自己完全理解为止。有了前面的基础,后面的内容也总算基本顺下来了。

此外每读完一讲的内容,还尽量把内容整合成几部分,然后用自己的语言重新解释一遍,形成一篇笔记。能把一件事情用自己的语言说明白,对于这件事情的理解也就达到了一定的程度。因此这种写笔记的方式对于学习这本书大有帮助。如果自己的笔记能对其他读者有些帮助,那就再好不过了。

但在实践方面,自己做的还不够好。对于作者提供的源代码,在看懂的基础上,只是抄写一遍了事,对于作者使用的方法和技巧还是不甚了了。不过这也没关系,毕竟这本书不会只读一遍。随着知识和技能的丰富,再读这本书一定会有新的体会。

虽然只是资质一般的普通人,但仍然可以有自己的进步方式。坚持下去,总会有自己的成绩。


http://www.kler.cn/a/353756.html

相关文章:

  • 计算机网络基础(1)
  • Python单例模式(三种实现方式:覆写__new__方法、使用装饰器、使用元类)(单例模式之线程安全)(单例的懒汉模式与饿汉模式)
  • 【python实操】python小程序之文件操作的JSON读取和JSON修改
  • 在wpf 中 用mvvm 的方式 绑定 鼠标事件
  • Java笔试03
  • Linux 线程概念及线程控制
  • 系统缺失mfc140.dll的修复方法,有效修复错误mfc140.dll详细步骤
  • VLAN概述
  • 阻塞I/O与非阻塞I/O
  • 408算法题leetcode--第36天
  • 从HCI和空口分析HFP通话和eSCO建立
  • 【进阶OpenCV】 (18)-- Dlib库 --人脸关键点定位
  • 如何高效解锁业务数据价值:多云时代应该怎么构建新一代数据平台架构
  • Allegro 小技巧
  • 二叉树与堆讲解
  • unity动态批处理
  • Spring Boot知识管理系统:安全与合规性
  • linux红帽基础命令
  • 【力扣热题100】3194. 最小元素和最大元素的最小平均值【Java】
  • mysql--数据表的操作