美文网首页
手写操作系统 - 启动篇

手写操作系统 - 启动篇

作者: 红橙Darren | 来源:发表于2025-03-10 22:56 被阅读0次

闲来无事,想把之前学习操作系统的一些知识整理下,看了几十本操作系统的书好像都忘得差不多了,最近打算自己动手来实现一个简易操作系统,主要还是为了知行合一。

我的学习之旅

为了能够转岗 WXG 所以当时在 PCG 的时候大概花了一年的时间,当时除了工作主要就是看操作系统、JAVA 虚拟机、Android 虚拟机相关的书籍。有很多记不得了,我大概推荐一些(有印象的),排序不分先后:

《编码:隐匿在计算机软硬件背后的语言》
《穿越计算机的迷雾(第二版)》
《汇编语言》
《x86汇编语言:从实模式到保护模式(第二版)》
《计算机组成原理》
《Unix环境高级编程》
《操作系统导论》
《深入理解计算机系统》
《TCP/IP详解》
《程序员的自我修养:链接、装载与库》
《Linux是怎样工作的》
《操作系统真象还原》
《30天自制操作系统》
《一个64位操作系统的设计与实现》
《Linux内核完全注释》
《Linux内核设计艺术》
《Linux内核深度解析》

当时应该还看了跟 CPU 电路相关的一些书籍,已经找不到了。初中那会读书不努力,普高考不上只能去读职业高中,我高中就是学电子电工的,所以学习硬件知识也不费什么劲。我 bilibili 也找了一些视频推荐给大家:

一个8位二进制CPU的设计和实现
x86 汇编语言
操作系统实现

后续规划

今年的计划,上半年把操作系统的代码和文章一点点补完,下半年把 Java 虚拟机的代码和文章一点点补完。我目前只是整理和学习,因此代码我只能确保能跑起来没啥问题,肯定会有一些 bug ,性能、算法、深度和广度等各个方面肯定比不上 linux。

除了工作那我就只能早上、中午、晚上、周六日来写代码和文章,不知道我顶不顶得住,也不知道有没有那么多时间,先立一个 flag,先把我的 github 的仓库先贴出来: miniOS

去年我计划是录制分享 C++ 和 OC 的视频,今年先写一年的代码先,明年我还想周末直播一点点再敲一遍, 3 年的时间应该能知行合一。bilibili 我的 C++ 视频先烂尾了。

一些心得

操作系统涉及的内容太多了,涉及硬件、编译器、编程语言、数据结构和算法,因此学习操作系统我们还是要有一个学习目标,为什么学?想学习哪些?想学到什么程度?像我是做客户端开发的,我的侧重点就不太一样,有些同学可能是做嵌入式开发的可能又不一样。

做一天和尚轻松撞一天钟,我学习操作系统主要还是为了让自己工作没有压力,虽然当时主要是为了活水 WXG。能不能快速写出技术文档,能不能快速把需求做完,写的代码有没有问题,运行速度到底快不快,出问题能不能立即反应过来,我们其实还是可以做一些思考。我做过 Android 开发做过 iOS 开发中间还做过 Win 开发,写过 Java 写过 C/C++ 写过 OC ,发现只要我们的代码是运行在操作系统上,那么本质上不会有任何区别。

这是我的来时路我记录下来,很多同学可能觉得汇编很难、C/C++ 很难,说实话我以前一直这么认为,但当我们静下心来去学习了解,发现其实并没什么技术含量,只能说以前我们不了解而已,只能说我没花时间而已。我们并没有任何原创的东西,所以并不会有任何难度,都是站在前辈的基础上看书问 AI 看 Linux 源码,其实最难的还是创新。

相关文章

  • 虚拟机中写一个最小的操作系统

    摘要: 《自己动手写操作系统》第一章,使用软盘做引导盘,在虚拟机中启动写好的最小的操作系统。 第一章《马上动手写一...

  • 03 计算器运行过程和网络

    1 操作系统的启动流程 启动bios程序——>找到操作系统启动介质——>把系统加载到内存——>CPU运行 2 应用...

  • 学习资料

    操作系统 《自己动手写操作系统》 [于渊] 《Linux内核完全注释》[赵炯] 操作系统视频 [清华大学]http...

  • 计算机操作系统笔记(五)

    操作系统用户界面 3.1操作系统的启动过程3.2操着系统的生成3.3用户界面3.4系统调用 3.1操作系统的启动过...

  • ucore学习

    1、启动操作系统的bootloader,用于了解操作系统启动前的状态和要做的准备工作,了解运行操作系统的硬件支持,...

  • init、systemd、systemctl是什么

    init进程的来历 linux操作系统的启动过程 Linux 操作系统的启动首先从 BIOS 开始 接下来进入 b...

  • ucore实验之操作系统启动流程

    前言 本文基于 ucore 操作系统实验,简要分析操作系统的启动流程. ucore 操作系统是清华大学用于操作系统...

  • Nginx+uWSGI+Django+VPS 网站部署指南

    操作系统为Ubuntu, 启动Nginx后启动uWSGI即可。 VPS VPS意为Virtual Private ...

  • 计算机系统是如何启动的?

    本文是操作系统系列的第一篇文章,以BIOS-MBR启动过程为例,介绍计算机系统是如何启动的。原文链接,更多内容见公...

  • Linux的启动流程

    本文探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程: 启动流程 在BIOS阶段,计算机的行为基本上被...

网友评论

      本文标题:手写操作系统 - 启动篇

      本文链接:https://www.haomeiwen.com/subject/ecbemjtx.html