他们如何制作在启动时运行的程序

时间:2010-03-22 23:17:51

标签: language-agnostic service operating-system startup

sysinternals的页面碎片整理程序或启动时运行的chkdsk实用程序。请赐教。他们使用什么样的编程语言来进行这些操作。

3 个答案:

答案 0 :(得分:3)

他们需要使用内核API的特定启动时版本,因此C或C ++是通常的语言。

在“Windows Internals”中有对此的简要介绍,但没有什么能够编写这样的实用程序。

答案 1 :(得分:2)

通常情况下,开发人员会创建一个加载到存储设备上的引导加载程序(例如HDD,CD / DVD,USB等)。

引导加载程序(如果我没记错的话,已经超过8年了)512K地址指向启动寄存器(通常为08h)。 512K地址会将您的地址存储到您的环境变量,启动地址等。

然后开发人员编写程序并将其main方法设置为指向启动引导地址(通常为08h,但这不是标准的,它是特定于供应商的),以便当引导加载程序指向启动地址,启动并运行连接到启动地址的程序。

语言,硬核C / C ++ /汇编(或Pascal,因为它能够这样做)。

答案 2 :(得分:0)

这是操作系统的一个功能,而不是编程语言。

例如,在Windows上,这些类型的程序通常以service安装。一个单独的程序通常以用户身份运行,并设置(通过注册表)以便在登录时启动,以便与服务进行交互。