当前位置: 代码迷 >> 综合 >> OSDev——教程
  详细解决方案

OSDev——教程

热度:63   发布时间:2023-11-13 22:08:56.0

原文链接:https://wiki.osdev.org/Tutorials

主页:https://blog.csdn.net/qq_37422196/article/details/122591214

下面的链接如果指向原网站的话,大概是还没有翻译

在赶了在赶了……


这个wiki上有一些与操作系统开发相关的教程。此页面是这些教程的概述,按主题领域和难度排序

  • 入门——非常基础或易于理解的教程。先试试这些
  • 中等——一些更难的主题的教程,但仍然很好学。先做一些简单的事情可能是个好主意
  • 进阶——高级科目教程。不建议初学者学习
  • 大师——非常困难的主题教程。大师级别。祝你好运!
  • 未评级——尚未评级

内核基础

Bare Bones

这些bare bones教程将为你提供一个足够安全的基本内核,可以作为你自己的起点

  • 入门——Bare Bones——用C语言为x86编写一个基本的32位内核
  • 入门——Zesterer的Bare Bones教程——用C语言为x86编写一个基本的32位内核(zesterer改进的教程)
  • 入门——Stivale的Bare Bones教程——使用Limine引导加载程序编写一个简单的64位高半内核
  • 入门——Meaty Skeleton——操作系统模板
  • 中等——x86高半内核Bare Bones——展示如何编写高半内核的教程
  • 中等——设置长模式——切换到长模式
  • 中等——创建64位内核——64位内核简介
  • 入门——实模式汇编bare bones——编写基本汇编语言内核的教程系列
  • 中等——Pascal Bare Bones——Pascal编写的基本内核
  • 中等——Ada Barebones——在Ada中编写基本内核的教程
  • 中等——FreeBasic Bare Bones——FreeBasic编写的基本内核

我们也有其他平台的基本框架

  • 入门——GameBoy Advance Barebones——编写基本GBA内核的教程
  • 中等——Sparc Barebones——SparcStations的基本内核

新手教程

用汇编语言编写一个基本内核

  • 入门——新手教程1——你的第一个引导扇区
  • 入门——新手教程2——用BIOS打印消息
  • 入门——新手教程3——了解机器码
  • 入门——新手教程4——不用BIOS实现打印到屏幕
  • 入门——新手教程5——中断
  • 入门——新手教程6——进入保护模式
  • 入门——新手教程7——Unreal Mode(Big Real Mode)
  • 入门——新手教程8——32位下的打印
  • 入门——附录A——附加信息

其他内核

这些教程涵盖了替代内核设计。这些主要适用于使用其他地方未涵盖的语言的开发人员,或者与新手教程和Bare Bones教程中给出的设计方法显着不同的设计方法

  • 进阶——处理一般语言和特别是Java的Java入门,这些语言通常不适合OS开发
  • 中等——C# Bare Bones教程,使用操作系统开发中不常用的语言

第三方教程

本节涵盖与wiki和论坛无关的教程。鉴于其他地方的教程数量众多,没有办法列出它们的完整列表,因此这仅限于讨论中最常出现的那些。之所以在此处列出它们,是因为其中大多数主要关注操作系统开发的早期步骤

此外,它们的质量存在惊人的差异,并且由于这些不是wiki本身的一部分,因此wiki作者无法确保修复错误或进行更新

虽然这些是出于参考目的,但由于经常被提及,因此建议任何关注wiki教程的人将第三方教程作为补充而不是建议


懒得翻了,感兴趣自己去原站看吧


基础

  • 入门——GDT教程——关于GDT的指南
  • 入门——中断教程——如何在C中设置中断
  • 入门——创建shell——关于如何编写shell的教程
  • 中等——深入了解x86——涵盖内核内部基础知识的指南
  • 进阶——DEMO——汇编语言下的关于i386(及更高版本)和PC平台的一些基础知识的代码和文字教程

内存管理

  • 入门——设置分页——处理设置和维护启用分页的系统的教程
  • 入门——设置PAE分页——同上,但启用了PAE
  • 入门——Brendan的内存管理指南——解释基本概念的内存管理指南
  • 中等——编写内存管理器——关于如何在计算机中处理RAM的教程
  • 中等——编写页框分配器——如何编写一个简单的页框分配器

进程与线程

  • 中等——Brendan的多任务教程——内核空间多任务教程
  • 进阶——协作多任务——如何创建内核空间多任务系统
  • 进阶——进入用户模式——如何切换上下文到用户模式

图形与显示

  • 入门——在保护模式下绘图——基础知识,如何绘制像素
  • 入门——双缓冲——一种防止伪影的便捷方法
  • 入门——PC屏幕字体——使用位图字体显示文本
  • 中等——可缩放屏幕字体——使用矢量字体显示文本
  • 中等——加载图标——解码图像文件以显示图标

引导

  • 入门——引导盘——介绍如何创建引导盘(U盘)映像的教程
  • 入门——引导光盘——说明如何创建引导光盘的教程
  • 入门——带有GRUB Legacy的引导El-Torito光盘——介绍如何创建可引导GRUB光盘的教程
  • 中等——使用自己的引导加载程序——描述编写引导加载程序时要采取的步骤
  • 入门——编写引导加载程序——创建引导加载程序的基础教程
  • 中等——编写UEFI引导加载程序——关于创建UEFI引导加载程序的基本教程
  • 进阶——编写GRUB模块——编写向GRUB添加自定义功能的模块的教程

构建

  • 入门——Makefile——如何使用Makefile的指导演示
  • 进阶——适配特定操作系统的工具链——将GCC和binutils适配到平台的指南
  • 入门——CMake构建系统——演示如何适配KitWare的CMake构建系统以构建操作系统的指南
  • 入门——VSCode调试——设置VSCode以调试内核

编译器

  • 入门——GCC交叉编译器——帮助构建针对不同平台的GCC的指南
  • 入门——GDC交叉编译器——同上,但这次是针对D编程语言

可执行文件格式

  • 中等——ELF教程——详细介绍加载ELF可执行文件的过程的指南
  • 进阶——手动创建一个ELF可执行文件——演示ELF二进制文件如何工作以及如何仅使用十六进制编辑器从头开始构建的指南

移植软件

  • 中等——移植newlib——将通用C库移植到另一个操作系统的指南
  • 未定级——使用libsupc++——移植libsupc++以充分利用C++功能的指南
  • 大师——移植Python——将Python移植到另一个操作系统的指南