💾 世界上最小的操作系统 – 小于 1 KB!

您有没有想过操作系统到底能有多小?我们已经习惯了占用千兆字节存储空间并需要强大处理器的操作系统。但是,如果我告诉你有一个操作系统声称小于 1 KB,具体来说就是512字节?

这就是背后令人震惊的主张启动操作系统,一个由杰出人士创建的开源项目奥斯卡·托莱多。它是一个完全适合单个引导扇区的操作系统,这是存储设备的最小逻辑分区。这个概念的纯粹大胆和技术优雅令人惊叹,当然,我们必须对其进行测试!

在这篇详细的文章中,我们将逐步介绍这个微小奇迹的设置、启动和交互过程。准备好回到计算的基础知识,并发现当每个字节都很重要时,一切都是可能的!


了解 Marvel:什么是 Boot OS?

在我们深入技术设置之前,让我们花点时间了解一下 Boot OS 是什么。这不仅仅是一个新奇的事物;它深刻地展示了效率和低级编程的掌握。

引导操作系统是一个操作系统引导扇区。这意味着全部的操作系统代码包含在存储设备(如硬盘驱动器或软盘映像)的第一个扇区中,通常为 512 字节。计算机的 BIOS 或 UEFI 固件在此查找启动引导过程的指令。通过驻留在此处,Boot OS 实际上成为计算机运行的第一个程序,也是运行基本操作环境所需的唯一程序。

从大小角度来看:Boot OS 的操作部分是512字节。比空白的 Microsoft Word 文档小 24 倍!它的源代码较大,大约 20 KB,但最终编译的二进制文件经过压缩以符合严格的 512 字节限制。这种对尺寸的关注迫使我们采用极其简约的设计,提供命令行界面和一些基本功能,我们稍后将对此进行探讨。

Oscar Toledo 的项目是一项出色的工程,您可以在官方 GitHub 页面上自行探索代码和文档:https://github.com/nanochess/bootOS


设置启动操作系统的分步指南🛠️

由于 Boot OS 与现代操作系统完全不同,因此我们不能将其安装在标准硬盘上。我们将使用一个虚拟机环境来安全地设置和运行它。设置过程包括获取源代码、编译源代码以及创建可启动映像。

1. 获取源代码

我们的第一步是将项目文件获取到本地计算机上。

  • 克隆 Git 项目:我们需要使用 Git 从项目的 GitHub 页面克隆 Boot OS 存储库。此过程会将所有源文件和脚本下载到您的计算机。

2. 编译操作系统

一旦源代码位于您的计算机上,就需要将其转换为小型原始二进制文件,即实际的 512 字节操作系统。

  • NASM简介:这个过程需要一个汇编器。 Boot OS 项目使用NASM(Netwide Assembler),这是一个功能强大且广泛使用的 x86 汇编器。如果您没有它,则需要将其安装在您的系统上。 NASM 获取人类可读的汇编语言源代码并将其翻译为机器代码——计算机可以执行的二进制指令。
  • 大会指挥部:为了编译操作系统,我们运行项目文档中提供的特定命令。虽然对于那些不熟悉汇编的人来说,确切的语法可能看起来像一个古老的咒语,但其目的很简单:它告诉 NASM 获取引导操作系统源文件并输出原始二进制文件。我自己并不是一个流利的汇编语言,但我最好的猜测是,这个命令有效地将相对较大的源代码压缩并转换为微小的 512 字节原始二进制文件,该文件将成为我们的引导扇区操作系统。技术洞察:输出是一个原始二进制文件因为引导扇区不能包含复杂的文件系统结构。它需要是机器在读取扇区后可以立即执行的直接指令序列。

3. 创建可启动映像

我们已经成功生成了512字节的操作系统文件。现在,我们需要一个它的“家”——一个虚拟机可以从中启动的存储设备。我们将模拟老式软盘。

  • 创建一个空软盘映像:我们首先创建一个与软盘映像大小完全相同的文件(例如,标准的 1.44 MB 映像),但用零填充。这作为我们的空虚拟“磁盘”。
  • 结合二进制和图像:下一个关键步骤是将我们的原始 512 字节操作系统二进制文件与空磁盘映像结合起来。由于操作系统是引导扇区操作系统,因此我们复制 512 字节的二进制文件直接地到软盘映像的最开头(前 512 个字节)。此操作有效地将空软盘映像变成可启动软盘映像包含启动操作系统。

到目前为止,我们已经完成了设置必要组件的出色工作——克隆源代码、编译操作系统以及创建可启动软盘映像。让我们继续下一个主要步骤:启动系统!


使用 QEMU 启动虚拟机

准备好可启动软盘映像后,就可以开始启动操作系统了!为此,我们将使用强大且流行的虚拟机模拟器。

4.QEMU介绍

我们将使用QEMU(快速模拟器)来运行我们的可启动映像。 QEMU 是一个通用的开源机器模拟器和虚拟器。由于其灵活性和模拟各种硬件配置(包括从软盘映像启动)的能力,它通常受到低级操作系统开发和运行模糊系统的青睐。

  • 启动操作系统:我们启动 QEMU 并指示它使用我们新创建的可启动软盘映像进行启动。 QEMU 将模拟计算机启动,从映像的前 512 字节读取指令,并执行引导操作系统代码。

就像这样,经过一段时间的设置后,我们就看到了 Boot OS 命令行!有用! 🎉

5. 确认尺寸

在我们享受与操作系统交互的乐趣之前,我想快速确认一下大小。在这个世界上,即使是一个简单的文本文件也可能有几千字节,这证实了运行操作系统确实,仅仅 512 字节对于这个项目的魔力来说至关重要。

  • 我们可以通过检查主机上编译的二进制文件的大小来确认这一点。它始终显示尺寸512字节。这是令人难以置信的优化壮举!虽然源代码文件确实约为 20 KB,但最终的可运行操作系统完全符合引导扇区限制。

我们已经成功启动了一个比现代文件分配最小单位还小的操作系统!让我们继续探索这个微型系统的实际功能。


与启动操作系统命令行交互 ⌨️

正如预期的那样,512 字节操作系统不提供精美的图形用户界面 (GUI)。我们牢牢扎根于命令行界面 (CLI)环境。这就是效率至上的地方,每一次击键都很重要。根据文档,我们可以使用一些核心命令。

在开始使用命令之前,我们需要执行初始设置操作。这凸显了操作系统的极简本质,即使是基本的目录结构也需要手动启动。

1. 初始化和系统检查

第一步是让系统做好准备并确认其身份。

  • 这format命令:首次启动时,必须输入命令format。这不是典型的磁盘格式化操作;它初始化操作系统的目录结构,为文件存储和管理做好准备。如果没有此步骤,您将无法创建或查看文件。
  • 检查版本:接下来,您可以检查操作系统的版本。特定关键字揭示了当前操作系统的身份。有趣的是,目前没有输出版本号,但该命令仍然输出一条确认消息,表明您确实正在使用 Boot OS,这对于这么小的操作系统来说是一个巧妙的处理。

2. 文件管理:核心功能

基本操作系统的主要用途是文件管理——创建、列出和删除文件。 Boot OS 将这些功能简化为最少的关键字和语法。

列出文件

  • 目录关键字:您可以使用特定的、简洁的关键字来检查目录的内容。最初,因为我们刚刚跑步format,它会显示我们没有文件。

创建新文件enter

这是该过程更加复杂的地方,展示了现代系统中很少见的深层交互。

  • 开始创作:您可以使用关键字启动文件创建enter。
  • 指定新行:之后enter关键字,您必须添加一个加号(+)。这个符号很关键,因为我相信它指定新行或输入块的开始,向操作系统表明您正在开始写入文件内容。
  • 输入内容(十六进制文本):这是与现代文本编辑器的一个关键区别。您可以输入文件内容,但它不是标准的、自由流动的文本区域。
    • 您最多可以输入512 个十六进制字节总共。
    • 输入被分成几行,每行最多允许128 个字符文本(对应于 64 字节的十六进制数据,因为每个字符由两个十六进制数字表示)。
    • 该文档建议将文本分成四个、八个或十六个字节的块以便组织。
  • 继续和终止:
    • 每输入一行文本后,您必须键入加号(+)再次表示您希望在新行上写入下一组字符。
    • 一旦你是完全地写完文件内容后,您必须添加最后一个加号(+)在最后。最后一个符号告诉操作系统文件有效结束的位置。
  • 命名文件:输入并终止所有内容后,您可以继续为新文件命名。对于我们的例子,我们称其为helloworld。

显示文件内容

  • 查看文件:要查看您编写的内容,只需输入文件名:helloworld。然后操作系统就会输出你精心输入的内容!

删除文件

  • 删除关键字:最后一个重要命令是删除文件。您可以使用特定关键字后跟文件名来将其从目录中删除。例如,为了清理,我们可以使用命令删除helloworld我们刚刚创建的文件。随后检查该目录将确认该文件已消失。

由于大小仅为 512 字节并实现了基本的文件系统操作(包括创建、列出和删除),该操作系统非常酷,并且是一个出色的教育工具。


探索引导扇区的概念和结构

我们已经介绍了实际步骤,但让我们更深入地研究使 Boot OS 成为可能的基本概念:引导扇区。

什么是引导扇区? 🧱

引导扇区是任何可引导存储设备(硬盘、SSD、软盘、USB 驱动器等)的重要基础组件。

  • 地点:它位于存储设备的最开始处。
  • 目的:引导扇区包含计算机固件(如 BIOS 或 UEFI)执行的基本指令(一小段代码)启动操作系统。这是计算机的点火钥匙。如果没有它,计算机将不知道在哪里可以找到主要的操作系统文件以及如何开始将它们加载到内存中。

引导操作系统如何利用引导扇区

在典型情况下,引导扇区不包含所有的操作系统;它包含一个名为引导装载程序。该引导加载程序的工作只是查找并加载较大的主要操作系统文件(例如或 Linux)存储在磁盘上的其他位置。

Boot OS 的天才在于它压缩了整个操作系统的功能——命令、文件管理、系统逻辑——以适应之内引导扇区本身的 512 字节限制!

  • 独立的:据我们所知,Boot OS 完全从这个单一的 512 字节块运行。它直接使用可用内存和计算机的基本 I/O(输入/输出)功能来运行其命令行并管理其微小的内部文件系统。这就是它成为“引导扇区操作系统”的原因。它消除了对单独的、更大的操作系统内核和文件系统结构的需要。

这证明了高度优化的低级编程的力量!


奖励内容:引导扇区程序和游戏! 🕹️

Boot OS 项目本身令人印象深刻,但乐趣还不止于此。低级汇编编程的世界通常具有非常小的独立程序,其中一些程序直接从引导扇区运行,独立于引导操作系统。

需要澄清的是,这些引导扇区软件程序通常是不是您安装的应用程序进入引导操作系统并从命令行启动。相反,它们是独立的程序,与 Boot OS 一样,被编译成 512 字节的引导扇区映像并由 QEMU 直接引导。它们完全取代了操作系统并在启动时立即启动。

设置引导扇区程序

设置这些程序的过程与我们设置引导操作系统的过程非常相似:

  1. 克隆项目:首先,将特定程序的 Git 项目(例如游戏代码)下载到您的计算机上。
  2. 编译:您切换到程序的目录并运行其文档中指定的编译命令。与之前类似,此命令可能使用汇编程序(如 NASM)将源代码转换为原始 512 字节二进制文件。
  3. 使用 QEMU 启动:然后,您指示 QEMU 启动这个 512 字节的原始二进制文件,它充当整个可启动映像。

引导扇区游戏一览:《毁灭战士》

其中一个令人惊奇的例子是一款受经典游戏启发的游戏,例如厄运,也从 512 字节引导扇区运行!

  • 游戏玩法和图形:当它启动时,您会看到一个非常简单的线框式视图。有充当敌人的彩色立方体。立方体的颜色根据它们与您的距离而变化,充当接近警告。目标自然是射杀他们!
  • 控制(时光倒流):这些控件远非现代设置,反映了最少代码和直接硬件访问的限制:
    • 左转:$\text{左控制}$
    • 右转:$\text{右 Control}$ 或 $\text{左 Alt}$
    • 前进:$\text{左移}$
    • 射击:$\text{右移}$(显示为简单的屏幕闪烁)
  • 挑战:我发现这款游戏几乎不可能在移动时玩!最好的策略似乎是站在原地,在敌人逼近时开枪。

对于一个从单个 512 字节引导扇区运行的软件(具有简单图形、移动和敌人跟踪的功能游戏)来说,它确实令人印象深刻,并且是极端优化的精彩演示。

我们已经介绍了所有步骤并探索了操作系统和奖励计划!它真正展示了在字节级别工作时可以实现的令人难以置信的工程壮举。


关于引导操作系统的常见问题 (FAQ)

Q1:Boot OS是一个适合日常使用的实用操作系统吗?

一个:绝对不是。 Boot OS纯粹是一个教育和技术示范项目。它缺乏强大的文件系统等现代功能,、复杂的内存管理、GUI 以及运行标准应用程序的能力。这是一个令人着迷的概念验证,展示了被称为操作系统的绝对最低要求,而不是 Windows 或 Linux 的竞争对手。

Q2:Boot OS 是用什么编程语言编写的?

一个:Boot OS 几乎完全写在x86 汇编语言。这种低级语言允许程序员直接控制硬件和内存,这对于实现将整个操作系统装入 512 字节所需的极端大小优化至关重要。

Q3:操作系统是512字节,为什么源代码是20KB?

一个:源代码包含所有注释、变量名称、标签和人类可读的指令,使代码易于理解和维护。这汇编程序 (NASM)负责将此源代码翻译成最终的机器代码,然后对其进行高度优化和压缩,以确保生成的原始二进制文件恰好为 512 字节。这是详细的蓝图(源代码)和高度压缩的功能机器(二进制)之间的区别。

Q4:我可以在物理计算机上运行 Boot OS 吗?

一个:从理论上讲,是的,如果您将可启动映像写入物理软盘或类似设备并将 BIOS 配置为从其启动。然而,这是非常沮丧因为它涉及低级磁盘操作,并且对于主机来说可能存在风险。使用像 QEMU 这样的虚拟机是探索 Boot OS 最安全且推荐的方法。


免责声明⚠️

这篇文章是为了仅供教育和信息用途。设置和启动低级操作系统或引导扇区程序涉及使用 Git、NASM 和 QEMU 等工具以及操作磁盘映像。如果执行不当,这些活动会带来很小的风险。请勿尝试在主硬盘或存储设备上写入或安装引导操作系统。始终在安全、隔离的虚拟机环境中执行这些实验。对于因执行本文所述步骤而可能导致的任何数据丢失或损坏,我们不承担任何责任。


结论

Boot OS 是计算领域极简主义和技术才华的绝佳范例。奥斯卡·托莱多(Oscar Toledo)为我们提供了一个功能齐全但极其基础的操作系统,可以适应最小的想象空间。这种探索将我们带回到计算的根源,提醒我们,只要有足够的奉献精神和低级掌握,当涉及到基本功能时,大小确实并不重要。我们希望您喜欢深入了解 512 字节的奇迹!

标签:#BootOS #OperatingSystem #BootSector #512Bytes #AssemblyLanguage #Programming #Minimalism #QEMU #RetroComputing #TechDeepDive

已访问 30 次,今天 1 次访问