是否可以使用Delphi或Pascal创建可启动的(MBR应用程序)应用程序(我知道我们不能使用vcl,RTL和其他东西,因为它们依赖于OS),但我可以使用至少Readln和writeln.
如果是真的!!!我们可以在其他操作系统下运行该程序.
但我知道PE(windows)和ELF(Linux)格式是不同的.但至少我可以做一些小修改.
解决方法
值得一提的是,PE是一种比ELF更多样化的格式.
不仅要修改几个字节……整个布局和库访问是多种多样的,绑定是完全多样的.
不仅要修改几个字节……整个布局和库访问是多种多样的,绑定是完全多样的.
为了在控制台模式下启动Delphi应用程序,您可以放置一个小型DOS系统(例如,查看FreeDOS),然后使用例如DWPL运行您的Delphi应用程序.DWPL允许运行本机32位保护模式DOS程序用Delphi 5-7使用WDOSX DOS扩展器作为核心.我在一些带有网络适配器的旧硬件中使用它,它就像一个魅力.如果您对此感兴趣,我可以发布一些更新的DWPL代码.
对于此类目标,您应该查看Free Pascal.本质上,您可以根据需要将其自定义.甚至还有使用FPC编写的各种草案操作系统.参见例如Toro或ClassiOS – 最新使用Delphi可执行文件作为源.
您可以看到Toro from here的启动代码,以及使用它创建的“main program”源代码.
但对于直接启动应用程序,启动并不是那么困难.真正的问题是硬件层.
BIOS几乎不提供访问权限.
只是为了网络层,你将不得不看看EtherBoot网站,以获得一些低级别的网络访问…但手动重写所有这些驱动程序可能非常耗时!
简而言之:所有那些“纯粹的pascal”操作系统只是理论上的,运行控制台和一些低性能网络(模拟像NE2000这样的不良网络适配器).所以那些“pascal”操作系统只是概念的证明.远离工作解决方案!但非常好的技术挑战,在所有情况下,非常鼓舞人心.
为什么重新发明轮子?如果您想要一个轻快的系统,请使用自定义Linux内核.
然后使用CrossKylix将您的Delphi应用程序(没有用户界面)编译到Linux中,甚至更好的Free Pascal.