在运用 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.SYS和CONFIG.SYS都不生存,那么内核就会假设几个默许值,囊括在何处找到 shell。即使你在启用 FreeDOS 体例时看到 “Bad or missing Command Interpreter” 的消息,这表示着SHELL=或SHELLHIGH=指向了一个在你体例中不生存的 shell 步调。
你不妨经过察看 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 将大略地提醒用户输出日子和功夫。
即是那些了。当 FreeDOS 加载了内核,而内核也加载了 shell,FreeDOS 就筹备好让用户输出吩咐了。