2012-06-05 162 views
28

我不是瘋了,只是重新發明輪子:D
我寫的引導裝載程序,鼠標&鍵盤迷你驅動程序,迷你操作系統等。編寫我自己的BIOS

我總是試圖避免DOS中斷,只能通過BIOS的人,試圖往前走團結迷你操作系統,但我突然決定寫我自己的BIOS :)

傳奇說:
我是高級程序員,然後是低級程序員。有一天,我將成爲機器語言程序員!

是以程序集編寫的BIOS嗎?我如何閃光它?什麼機制?我可以開始編輯我目前的BIOS嗎?

+10

希望對你有用的設備驅動程序:http://www.coreboot.org/Welcome_to_coreboot – sarnold

+0

投票關閉太寬泛。 –

回答

20

BIOS可以用匯編語言編寫,但不一定非要,因爲它們與編譯器調用約定不匹配,所以需要某些部分來獲取系統調用的參數。

你如何閃光它?從主板到主板各不相同,我將從一個開源虛擬機開始,爲此寫一個bios。或者創建一個你已經寫好BIOS的虛擬機。機制因供應商不同而不同,一般來說,你需要引導dos(dos並沒有死掉,它在PC世界非常活躍,特別是主板開發和嵌入式系統)。如果你不知道所有這些問題的答案,那麼我將不會弄亂一個真正的主板,如果你採取這種方式,你會去製造一些主板。

您可以嘗試爲您的母板進行BIOS升級並對其進行逆向工程(儘管可能會通過點擊協議來表明您不會這麼做)。如果你弄明白了,你可以加載它並在at處進行破解。我不會去那裏,你會弄清楚你的系統,然後再解決它。

正在編寫一個BIOS真的是你的後?相當古老的學校,就像寫6502代碼一樣好玩。有許多低級別的問題更有用且有趣。

如果你可以寫asm寫作機器代碼並不難,你可以去做那些有趣的事情。 x86是可怕的,你應該花一些時間學習其他系統和他們的asm和機器代碼(併爲他們編寫操作系統)。 ARM在全球佔據主導地位,並不依賴於BIOS。我被告知,要在非x86系統上獲得視頻卡,您仍然必須在x86 bios上找到x86中的某些東西,可以找出如何在不需要運行x86 bios的情況下調出主流視頻卡。看一個模擬器運行BIOS並看看它做了什麼,找出它在init中取代電源,而不需要bios這樣做......編寫指令集模擬器或反彙編器是除了編寫機器代碼之外的下一步,我不會浪費甚至儘管在x86上只花了一秒鐘時間,但我可以建議一個備選方案列表(或者你可以只使用我寫的或收集的模擬器)。

如果x86 bios是您想要去的方式,那麼您的最佳途徑是編寫,替換或破解虛擬機爲qemu,virtualbox或其他的bios。用你的替換bios可能會替換某個目錄中的文件或使用命令行選項來指定替代的bios。一旦你有豐富的經驗,那麼如果仍然有主板使用傳統bioses,也許你可以用自己的方式編程(有些需要購買幾種不同類型的主板)。有這麼多的嵌入式系統可以在20到200美元之間獲得相同級別的經驗,因此如果沒有像樣的原理圖和文檔,就無法在PC主板上進行破解。你可以挖出一臺原始的電腦,並將原理圖和BIOS列表記錄下來,並且將BIOS插入,這樣如果你的電腦無法啓動(並且不會損壞主板),那麼你可以重新編程或更換BIOS芯片。可能希望使用微控制器作爲假BIOS,因爲找到正確的硬件來重新編程更多的BIOS芯片,可能很難找到工作的原始PC ...有一個amiga社區可能更有趣,並會很高興能讓你改進/調整他們的BIOS,比如將現代硬件放在傳統的系統調用之後。

+7

一些主板具有可以使用的,如果它在更新過程中被損壞恢復主之一的第二BIOS芯片。也許這個功能將有助於避免磚塊太多的主板:) –

+0

@ old_timer 先生,我想寫一個BIOS,以瞭解計算機如何工作,因爲我沒有正式的計算機背景(但我是軟件開發人員編寫軟件使用Java)。請告訴幫我的路線圖我怎麼能知道如何微處理器,BIOS,內存,操作系統等終於我的代碼運行做一些事情值得;從哪個角度我應該開始瞭解這一點;學習的來源是什麼? 我會*急切*等待您的回覆。 –

+1

x86的是最後的地方,我就開始了,肯定不是想在最好的啓動機器,它是一場噩夢。只因爲你有一個是最糟糕的原因。先從一些$或$ 300元的微控制器,學習基礎知識造就了像GPIO和定時器一些簡單的事情,並獲得舒適與baremetal編程(大多數是C如有需要很少ASM)。然後,也許是一個覆盆子pi或mips或powerpc,然後如果你仍然覺得需要嘗試一個x86。你會發現幾乎沒有什麼信息可以替代BIOS,甚至可以用幾十年的經驗來炒幾個主板。 –

0

有辦法可以刷新BIOS而不是讓PC運行。但它需要一些硬件。雖然不應該很昂貴。

你可以嘗試像這種tecnique的: http://hackaday.com/2010/11/18/build-your-own-soic-progamming-clip/

此我今天看到: https://conference.hitb.org/hitbsecconf2015ams/sessions/how-many-million-bioses-would-you-like-to-infect/

它更詳細地解釋它,但你可能不找感染,一些tecniques用於獲取bios的內容,其中編程剪輯就是其中之一。

+1

請在鏈接中添加詳細信息,以便作出更好的回答。 –

1

FWIW Modbin是一個DOS程序,它顧名思義就是修改BIN圖像,特別是對於現有BIOS代碼的簡單和相當極端的改變。

如果你可以獲得一個老的主板(許多人被扔掉仍然工作),我會鼓勵你玩弄BIOS。這是信息豐富和有趣的,如果你是如此傾向,你似乎:)有一段時間,我從mobos下載了具有相同或類似的芯片組,雖然由不同的製造商製造的BIOS圖像...有時具有相當大的優勢,包括這種簡單的人如繼續原來的主板製造商後獲得BIOS更新丟球或倒閉,也功能和性能爲導向的選擇和改變。

這導致了「HOT閃爍」,這是拉起插座的BIOS芯片使得銷剛好取得了聯繫,一旦啓動了,拉一個,而代以一個壞的(往往是我fuxored),而仍在運行並使用保持系統活動的高速緩存BIOS功能進行閃爍。對於我們這些野人說服有趣的東西,並給了我信心寫的OS/2