操作系统真象还原---系列笔记总结

2024-02-03 15:44

本文主要是介绍操作系统真象还原---系列笔记总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

闲话

最开始知道这本书是在校内论坛上,有同学通过这本书里的项目拿到大厂的ssp offer,于是就从网上订购了这本较为大部头的书,想要在简历上添加一个足够底层并且有意思的项目经历,从而帮助自己在秋招时赢得一个好的offer。
第一遍阅读时,我兢兢业业地照着书中的代码一行一行地进行抄写,时常因为一行代码抄错而debug好几天甚至通宵debug(相信有人有和我一样的困扰),但到后面的章节实在不堪其扰,一是因为书中只列出了大部分关键代码而其他代码需要自己补全,而另外debug有时候虽然可以从中收获到不少但在一些小的细节上出错反复查找反而有些得不偿失,最后还是没有抄到最后。尽管如此,读者如果本着写个项目进简历的想法,建议还是先看懂书本的代码,然后直接用作者提供的源码来运行即可。根据我的体验来说,抄写的过程基本是纯体力劳动,基本上没有任何思考,如果要提高,多复习一遍书或者改几处代码远比抄来的有效。这里留下本书前言里面作者留下的读者交流qq群:148177180,各个章节对应的代码和工具群文件里面都有。

笔记

本系列笔记的一开始是方便自己复习用,在看完本书后,由于缺乏系统的梳理和复习,在面试被问及的时候会感到很多东西很熟悉却又忘记了,于是经历过几次后我就重看了好几遍这本书,把其中的精华和面试中可以吹牛以及可能容易被问到的地方整理出来了:

  • 第0章 一些你可能正感到迷惑的问题
  • 第1章 部署工作环境
  • 第2章 编写MBR主引导记录,让我们开始掌权
  • 第3章 完善MBR
  • 第4章 保护模式入门
  • 第5章 保护模式进阶,向内核迈进
  • 第6章 完善内核
  • 第7章 中断
  • 第8章 内存管理系统
  • 第9章 线程
  • 第10章 输入输出系统
  • 第11章 用户进程
  • 第12章 进一步完善内核
  • 第13章 编写硬盘驱动程序
  • 第14章 文件系统
  • 第15章 系统交互

有的章节写的很粗糙,如果要认真看还是建议阅读原书吧。

项目介绍

另外,还有在项目介绍方面,以下是个人秋招时写进简历的版本,供大家参考:

MyTinyOS—微型操作系统                             独立开发
应用技术:汇编语言、C语言、gdb、Makefile
主要工作:
1. 搭建VirtualBox + CentOS + bochs模拟仿真环境,并在实模式下实现MBR、bootloader;
2. 构建GDT,开启A20总线,进入保护模式,启用内存分页机制,实现特权级并载入内核;
3. 实现中断处理机制,完善内存管理系统,逐步实现内核线程、用户进程,锁、输入输出等机制;
4. 进一步完善内核,实现系统调用,创建文件系统、简单的系统交互等;
项目成果:从零开始一步步实现操作系统,最终实现了一个小型的类Linux操作系统。

这篇关于操作系统真象还原---系列笔记总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/674630

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Linux中查看操作系统及其版本信息的多种方法

《Linux中查看操作系统及其版本信息的多种方法》在服务器运维或者部署系统中,经常需要确认服务器的系统版本、cpu信息等,在Linux系统中,有多种方法可以查看操作系统及其版本信息,以下是一些常用的方... 目录1. lsb_pythonrelease 命令2. /etc/os-release 文件3. h

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys