FreeDOS 如何启动
创始人
2024-03-02 07:34:30
0

概述你的计算机如何引导和启动一个像 FreeDOS 这样的简单操作系统。

在使用 DOS 计算机的过程中,我很欣赏的一点是,引导过程相对容易理解。在 DOS 中没有太多的变动组件。而今天,我想和大家分享一下电脑是如何引导和启动像 FreeDOS 这样的简单操作系统的概况。

初始引导

当你打开计算机的电源时,系统会进行一些自我检查,如验证内存和其他组件。这被称为 开机自检 Power On Self Test (POST)。POST 之后,计算机使用一个硬编码指令,告诉它在哪里找到加载操作系统的指令。这就是“ 引导加载程序 boot loader ”,通常它将试图找到硬盘上的 主引导记录 Master Boot Record (MBR)。然后,MBR 加载主操作系统,在这里就是 FreeDOS。

这个定位一个信息以便计算机能够加载操作系统的下一个部分的过程被称为“ 引导 bootstrapping ”,来自于“ 通过你自己的努力振作起来 picking yourself up by your bootstraps ”的古老说法。正是从这个用法中,我们采用了“ 引导 boot ”一词来表示启动你的计算机。

内核

当计算机加载 FreeDOS 内核时,内核所做的第一件事就是识别用户所表示要使用的任何参数。它被保存在一个叫做 FDCONFIG.SYS 的文件中,与内核保存在同一个根目录下。如果 FDCONFIG.SYS 不存在,那么 FreeDOS 的内核就会寻找一个叫做 CONFIG.SYS 的替代文件。

如果你在 20 世纪 80 年代或 90 年代使用过 DOS,你可能对 CONFIG.SYS 文件很熟悉。从 1999 年起,FreeDOS 首先寻找 FDCONFIG.SYS,以防你的 DOS 系统与其他 DOS(如 MS-DOS)做了 双启动。请注意,MS-DOS 只使用 CONFIG.SYS 文件。因此,如果你用同一个硬盘同时启动 FreeDOS 和 MS-DOS,MS-DOS 使用 CONFIG.SYS 来配置自己,而 FreeDOS 则使用 FDCONFIG.SYS。这样一来,双方都可以使用自己的配置。

FDCONFIG.SYS 可以包含一些配置设置,其中之一是 SHELL=SHELLHIGH=。任何一个都会指示内核加载这个程序作为用户的交互式 shell。

如果 FDCONFIG.SYSCONFIG.SYS 都不存在,那么内核就会假定几个默认值,包括在哪里找到 shell。如果你在启动 FreeDOS 系统时看到 “Bad or missing Command Interpreter” 的信息,这意味着 SHELL=SHELLHIGH= 指向了一个在你系统中不存在的 shell 程序。

Bad or missing Command Interpreter

你可以通过查看 SHELL=SHELLHIGH= 行来调试这个问题。如果做不到这一点,请确保你在 FreeDOS 系统的根目录下有一个名为 COMMAND.COM 的程序。它就是 shell,我接下来会讲到它。

shell

在 DOS 系统中,“shell” 一词通常是指一个命令行解释器:一个交互式程序,它从用户那里读取指令,然后执行它们。在这里,FreeDOS 的 shell 与 Linux 的 Bash shell 相似。

除非你用 SHELL=SHELLHIGH= 要求内核加载一个不同的 shell,否则 DOS 上的标准命令行 shell 被称为 COMMAND.COM。当 COMMAND.COM 启动时,它也寻找一个文件来配置自己。默认情况下,COMMAND.COM 会在根目录下寻找一个名为 AUTOEXEC.BAT 的文件。AUTOEXEC.BAT 是一个“批处理文件”,它包含一组启动时运行的指令,大致类似于 Linux 上 Bash 启动时读取的 ~/.bashrc “资源文件”。

你可以在 FDCONFIG.SYS 文件中用 SHELL=SHELLHIGH= 改变 shell 以及 shell 的启动文件。FreeDOS 1.3 RC4 安装程序将系统设置为读取 FDAUTO.BAT 而不是 AUTOEXEC.BAT。这与内核读取另一个配置文件的原因相同;你可以在硬盘上用另一个 DOS 双启动 FreeDOS。FreeDOS 将使用 FDAUTO.BAT 而 MS-DOS 将使用 AUTOEXEC.BAT

如果没有像 AUTOEXEC.BAT 这样的启动文件,shell 将简单地提示用户输入日期和时间。

Without AUTOEXEC.BAT, the shell will prompt for date and time

就是这些了。当 FreeDOS 加载了内核,而内核也加载了 shell,FreeDOS 就准备好让用户输入命令了。

FreeDOS is ready for you to enter your first command


via: https://opensource.com/article/21/6/freedos-boots

作者:Jim Hall 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

北京青年AI创新与潮消费案...
青年是创新的主力军,也是消费的风向标。为全面激发首都青年创新活力,...
2026-01-18 10:17:13
工信部:引导平台企业、制造...
IT之家 1 月 13 日消息,今日,工业和信息化部印发《推动工业...
2026-01-13 17:18:54
阿里巴巴与清华大学启动AI...
新榜讯 1月10日讯,近日,阿里巴巴集团与清华大学签订合作协议,正...
2026-01-10 13:46:27
治理“AI魔改”③ | 引...
唐僧不取经了,开始和女儿国国王讨论保险理赔;关羽不再过五关斩六将,...
2026-01-09 10:19:10
荣耀AI键新功能曝光,一键...
近日,荣耀WIN系列手机正式发布。 官方介绍显示,荣耀WIN系列致...
2026-01-04 06:17:33
培育AI时代“未来船长”,...
12月27日,北京科学教育发展基金会联合硅谷著名创业家史蒂夫·霍夫...
2025-12-28 19:46:42

热门资讯

如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
2024 年 Linux 和开... 让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造...
硬核观察 #1239 Deep... #1 DeepMind 制定 “机器人宪法”DeepMind 机器人团队透露了三项新进展,称它们将帮...