Delphi 编写像PartitionManager这样的低级程序

Delphi 编写像PartitionManager这样的低级程序,delphi,freepascal,bootloader,Delphi,Freepascal,Bootloader,我想学习如何编写可以在不启动操作系统的情况下运行的程序,如Norton Ghost或Paragon程序。我想能够运行从CD或U盘的程序 你能给我一些建议吗?是一个尝试使用freepascal编写一个基本操作系统。它不再是一个活动项目,但代码在那里供您尝试 是用Delphi编写的操作系统 一个更专业的解决方案是购买与win32兼容的操作系统,比如购买许可证,并在Delphi中制作一个可引导的stick/CD程序。 请注意,这是一个昂贵的解决方案,但用于许多实时关键系统。我们实现了一个或多或少的DO

我想学习如何编写可以在不启动操作系统的情况下运行的程序,如Norton Ghost或Paragon程序。我想能够运行从CD或U盘的程序

你能给我一些建议吗?

是一个尝试使用freepascal编写一个基本操作系统。它不再是一个活动项目,但代码在那里供您尝试

是用Delphi编写的操作系统

一个更专业的解决方案是购买与win32兼容的操作系统,比如购买许可证,并在Delphi中制作一个可引导的stick/CD程序。
请注意,这是一个昂贵的解决方案,但用于许多实时关键系统。我们实现了一个或多或少的DOS克隆,用于从U盘引导任何X86系统。

基本上-除非您使用现有的系统-您必须编写自己的操作系统-它可能很小,但它是一个操作系统

编写它与编写应用程序有点不同,因为您必须直接或通过BIOS与硬件接口。它需要对低级编程、硬件设备规范和处理器体系结构有很好的了解,特别是当您需要内存并且必须将x86处理器切换到保护模式时,可以使用非真实模式,尽管它使用相当复杂的机制。某些部分可能需要在汇编程序中编写,以访问在保护模式下运行在最高特权级别环0上的内核使用的特殊特权指令,并处理中断


您可以从这里开始。

Norton Ghost使用Windows PE。它仍然有一个操作系统。搜索“如何编写引导加载程序”应该可以让你开始。可能是重复的,或者至少是灵感:或者可能是现有操作系统上的标签,比如Steve Gibson用这个Spinrite应用程序做的事?-如果你的主要目标是从CD/USB运行应用程序,那么使用一个已经可用的操作系统是最快的方法。但是,如果有人没有迫切的需求,想从头开始学习如何编写操作系统,为什么不呢?这样的研究总是有建设性的,现在VMs让它变得容易多了。使用现有的操作系统,您还可以使用现有的编译器来编写在其上运行的应用程序,否则,您的操作系统支持现有的可执行格式,或者下一步是编写您自己的编译器;