从0创建一个OS (一) 原文介绍 + 环境搭建

OS教程——从0创建一个OS

本来这个系列的博客准备留在CSDN的,可是今天忽然想起这个系列还没更新完,之后又会一直在博客园写东西,所以就批量导入过来了,大家可能会看到图片带csdn的水印,影响不大,之后更新的该系列文章中的图片就不会带CSDN的水印了。

本文为os-tutorial—How to create an OS from scratch!的中文翻译版,旨在为国内OS社区初学者提供入门OS编写教程,文中提供了每一步的解释说明,使读者能够顺着清晰的思路完成一个OS,学习OS编写过程中的各项知识。

本文的读者需要具备以下知识:

  • 汇编语言基础
  • 操作系统基础概念

针对以上两条推荐两本书,不具备以上知识的读者可以先对这两本书加以阅读,再来看这个教程

《汇编语言(第3版) 》(王爽)

《x86_x64体系探索及编程》(邓志)

写在前面

由于操作系统涉及面非常广,如果阅读本文时只是单纯的复制粘贴代码并用nasm编译、用qemu运行,那么看完本系列文章之后肯定不会有什么大的进步,所以希望本文的读者确保自己对每一章的关键字部分有明确的认知,即知道每个关键字是什么意思具体的用处是什么每一次接触新概念时问自己这两个问题,那么阅读本系列文章将会达到事半功倍的效果。

环境配置

关键字: linux; mac; terminal; compiler; emulator; nasm; qemu

目标:安装相关软件,为后面的编写操作系统做准备

推荐操作系统:Linux/Mac

Mac

在Mac上,安装Homebrew,然后使用terminal运行以下命令:

1
2
<code-pre class="code-pre" id="pre-AmpPcj"><code-line class="line-numbers-rows"></code-line># 使用brew安装qemu和nasm
<code-line class="line-numbers-rows"></code-line>brew install qemu nasm</code-pre>

如果你安装了Xcode开发工具nasm,请不要使用它,大多数情况下该工具不起作用,请使用/usr/local/bin/nasm

注:原文章作者使用的是Mac开发环境,译者使用Linux(Ubuntu),本文以Ubuntu系统为主进行开发说明

Linux

在Ubuntu上(windows使用者尽量使用装有ubuntu的虚拟机或装一个双系统),在terminal中运行

1
2
3
4
5
<code-pre class="code-pre" id="pre-p4BJNK"><code-line class="line-numbers-rows"></code-line># 安装qemu和nasm
<code-line class="line-numbers-rows"></code-line>
<code-line class="line-numbers-rows"></code-line>sudo apt-get update
<code-line class="line-numbers-rows"></code-line>sudo apt-get install -y qemu-kvm qemu virt-manager virt-viewer libvirt-bin
<code-line class="line-numbers-rows"></code-line>sudo apt-get install nasm</code-pre>

最终查看nasm和qemu的版本

在这里插入图片描述
在这里插入图片描述
如果可以使用图片中的两个命令,即表示安装成功

附:阅读材料

  1. Wiki QEMU条目
  2. 百度百科-NASM条目

 

 

__EOF__

本文作者EwanHai
本文链接https://www.cnblogs.com/haiyonghao/p/14623207.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   EwanHai  阅读(303)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示