2010-03-22 47 views
2

程序如sysinternals的頁面碎片整理程序或啓動時運行的chkdsk實用程序。請賜教。他們使用哪種編程語言來完成這些操作。他們如何製作啓動時運行的程序

+2

通常他們使用圖靈完成這種操作的編程語言。 – Earlz 2010-03-22 23:21:45

+0

你打算寫一個病毒嗎?我想不是,因爲否則你已經知道這個信息。 ;) – 2010-03-22 23:27:07

+1

*「他們使用什麼樣的編程語言來進行這些操作。」*另請參閱可供800磅大猩猩使用的睡眠位置選擇。 – dmckee 2010-03-23 00:14:28

回答

2

通常會發生的情況是開發人員創建了一個可以加載到存儲設備(如HDD,CD/DVD,USB等)上的booter加載程序。

引導加載程序(如果我沒記錯的話,已經有8年多了)512K地址指向啓動寄存器(通常爲08h)。這512K地址將你的地址存儲到你的環境變量,啓動地址等

然後,開發人員編寫一個程序,並設置了main方法指向啓動引導地址(通常08h但這不是標準,它是供應商特定),以便當引導加載程序指向啓動地址時,連接到啓動地址的程序將被引導並運行。

語言,hardcore C/C++/Assembly(或者Pascal,因爲它可以這樣做)。

0

這比編程語言更多的是操作系統的功能。

例如,在Windows上,這些類型的程序通常安裝爲service。一個單獨的程序通常以用戶身份運行,並設置(通過註冊表)在登錄時啓動,以便與服務交互。

+1

系統大部分啓動並運行後,服務運行得更晚。 – Richard 2010-03-22 23:22:42

+0

@理查德:沒錯。服務將在系統啓動後基本啓動,但我不會稱之爲「太晚」 - 因爲現在加載的內核級別上沒有太多... – 2010-03-22 23:43:56

3

他們需要使用特定的引導時間版本的內核API,因此C或C++是通常的語言。

在「Windows內部」有一個簡短的報道,但沒有足夠的寫這樣的實用程序。

+0

啊... +1我以爲他是隻是說在用戶登錄時運行某些內容,而不是在啓動前類型中運行... – Earlz 2010-03-22 23:24:19

相關問題